{
  "condensation": {
    "provider_id": "gemini",
    "model": "gemini-1.5-flash",
    "enabled": true,
    "max_context": 8000
  },
  "providers": {
    "gemini": {
      "id": "gemini",
      "name": "Google AI Studio",
      "endpoint": "https://generativelanguage.googleapis.com/v1beta",
      "type": "google",
      "api_key_required": true,
      "api_key": "YOUR_GEMINI_API_KEY",
      "rate_limit": 0,
      "enable_native_caching": false,
      "cache_ttl": 3600,
      "min_cacheable_tokens": 1024,
      "models": [
        {
          "name": "gemini-2.0-flash",
          "nsfw": false,
          "privacy": false,
          "rate_limit": 0,
          "max_request_tokens": 1000000,
          "rate_limit_TPM": 15000,
          "rate_limit_TPH": 100000,
          "rate_limit_TPD": 1000000,
          "context_size": 1000000,
          "condense_context": 80,
          "condense_method": ["hierarchical", "semantic"],
          "capabilities": ["t2t", "vision", "function_calling"]
        },
        {
          "name": "gemini-1.5-pro",
          "nsfw": false,
          "privacy": false,
          "rate_limit": 0,
          "max_request_tokens": 2000000,
          "rate_limit_TPM": 15000,
          "rate_limit_TPH": 100000,
          "rate_limit_TPD": 1000000,
          "context_size": 2000000,
          "condense_context": 85,
          "condense_method": "conversational",
          "capabilities": ["t2t", "vision", "function_calling"]
        }
      ]
    },
    "openai": {
      "id": "openai",
      "name": "OpenAI",
      "endpoint": "https://api.openai.com/v1",
      "type": "openai",
      "api_key_required": true,
      "api_key": "YOUR_OPENAI_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "anthropic": {
      "id": "anthropic",
      "name": "Anthropic",
      "endpoint": "https://api.anthropic.com/v1",
      "type": "anthropic",
      "api_key_required": true,
      "api_key": "YOUR_ANTHROPIC_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0,
      "enable_native_caching": false,
      "cache_ttl": null,
      "min_cacheable_tokens": 1024
    },
    "ollama": {
      "id": "ollama",
      "name": "Ollama",
      "endpoint": "http://localhost:11434",
      "type": "ollama",
      "api_key_required": false,
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "azure_openai": {
      "id": "azure_openai",
      "name": "Azure OpenAI",
      "endpoint": "https://your-azure-endpoint.openai.azure.com",
      "type": "openai",
      "api_key_required": true,
      "api_key": "YOUR_AZURE_OPENAI_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "cohere": {
      "id": "cohere",
      "name": "Cohere",
      "endpoint": "https://api.cohere.com/v1",
      "type": "cohere",
      "api_key_required": true,
      "api_key": "YOUR_COHERE_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "huggingface": {
      "id": "huggingface",
      "name": "Hugging Face",
      "endpoint": "https://api-inference.huggingface.co",
      "type": "huggingface",
      "api_key_required": true,
      "api_key": "YOUR_HUGGINGFACE_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "replicate": {
      "id": "replicate",
      "name": "Replicate",
      "endpoint": "https://api.replicate.com/v1",
      "type": "replicate",
      "api_key_required": true,
      "api_key": "YOUR_REPLICATE_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "togetherai": {
      "id": "togetherai",
      "name": "Together AI",
      "endpoint": "https://api.together.xyz/v1",
      "type": "openai",
      "api_key_required": true,
      "api_key": "YOUR_TOGETHERAI_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "groq": {
      "id": "groq",
      "name": "Groq",
      "endpoint": "https://api.groq.com/openai/v1",
      "type": "openai",
      "api_key_required": true,
      "api_key": "YOUR_GROQ_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "mistralai": {
      "id": "mistralai",
      "name": "Mistral AI",
      "endpoint": "https://api.mistral.ai/v1",
      "type": "openai",
      "api_key_required": true,
      "api_key": "YOUR_MISTRALAI_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "stabilityai": {
      "id": "stabilityai",
      "name": "Stability AI",
      "endpoint": "https://api.stability.ai/v2beta",
      "type": "stabilityai",
      "api_key_required": true,
      "api_key": "YOUR_STABILITYAI_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "kilo": {
      "id": "kilo",
      "name": "KiloCode",
      "endpoint": "https://kilo.ai/api/openrouter/v1",
      "type": "kilo",
      "api_key_required": false,
      "api_key": "",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0,
      "kilo_config": {
        "_comment": "Uses Kilo OAuth2 Device Authorization Grant flow",
        "credentials_file": "~/.kilo_credentials.json",
        "api_base": "https://api.kilo.ai"
      }
    },
    "perplexity": {
      "id": "perplexity",
      "name": "Perplexity AI",
      "endpoint": "https://api.perplexity.ai",
      "type": "openai",
      "api_key_required": true,
      "api_key": "YOUR_PERPLEXITY_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "poe": {
      "id": "poe",
      "name": "Poe",
      "endpoint": "https://api.poe.com/v1",
      "type": "poe",
      "api_key_required": true,
      "api_key": "YOUR_POE_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "lanai": {
      "id": "lanai",
      "name": "Llama AI",
      "endpoint": "https://api.lanai.ai/v1",
      "type": "lanai",
      "api_key_required": true,
      "api_key": "YOUR_LANAI_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "amazon": {
      "id": "amazon",
      "name": "Amazon Bedrock",
      "endpoint": "https://api.amazon.com/bedrock/v1",
      "type": "amazon",
      "api_key_required": true,
      "api_key": "YOUR_AMAZON_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "ibm": {
      "id": "ibm",
      "name": "IBM Watson",
      "endpoint": "https://api.ibm.com/watson/v1",
      "type": "ibm",
      "api_key_required": true,
      "api_key": "YOUR_IBM_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "microsoft": {
      "id": "microsoft",
      "name": "Microsoft Azure AI",
      "endpoint": "https://api.microsoft.com/v1",
      "type": "microsoft",
      "api_key_required": true,
      "api_key": "YOUR_MICROSOFT_API_KEY",
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0
    },
    "kiro": {
      "id": "kiro",
      "name": "Kiro IDE (Amazon Q Developer)",
      "endpoint": "https://q.us-east-1.amazonaws.com",
      "type": "kiro",
      "api_key_required": false,
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0,
      "kiro_config": {
        "_comment": "Uses Kiro IDE credentials (VS Code extension)",
        "creds_file": "~/.config/Code/User/globalStorage/amazon.q/credentials.json",
        "region": "us-east-1"
      }
    },
    "kiro-cli": {
      "id": "kiro-cli",
      "name": "Kiro CLI (Amazon Q Developer)",
      "endpoint": "https://q.us-east-1.amazonaws.com",
      "type": "kiro",
      "api_key_required": false,
      "nsfw": false,
      "privacy": false,
      "rate_limit": 0,
      "kiro_config": {
        "_comment": "Uses kiro-cli credentials (SQLite database)",
        "sqlite_db": "~/.local/share/kiro-cli/data.sqlite3",
        "region": "us-east-1"
      }
    },
    "claude": {
      "id": "claude",
      "name": "Claude Code (OAuth2)",
      "endpoint": "https://api.anthropic.com/v1",
      "type": "claude",
      "api_key_required": false,
      "nsfw": false,
      "privacy": false,
      "rate_limit": 5,
      "claude_config": {
        "_comment": "Uses OAuth2 authentication flow (claude-cli compatible)",
        "credentials_file": "~/.claude_credentials.json"
      },
      "models": [
        {
          "name": "claude-3-7-sonnet-20250219",
          "nsfw": false,
          "privacy": false,
          "rate_limit": 5,
          "max_request_tokens": 200000,
          "context_size": 200000,
          "capabilities": ["t2t", "vision", "function_calling"]
        },
        {
          "name": "claude-3-5-sonnet-20241022",
          "nsfw": false,
          "privacy": false,
          "rate_limit": 5,
          "max_request_tokens": 200000,
          "context_size": 200000,
          "capabilities": ["t2t", "vision", "function_calling"]
        },
        {
          "name": "claude-3-5-haiku-20241022",
          "nsfw": false,
          "privacy": false,
          "rate_limit": 5,
          "max_request_tokens": 200000,
          "context_size": 200000,
          "capabilities": ["t2t", "vision", "function_calling"]
        }
      ]
    }
  }
}
