/**
* Constants for the Gemini Docs MCP server.
*/
export const BASE_URL = "https://ai.google.dev";
export const DOCS_BASE_URL = `${BASE_URL}/gemini-api/docs`;
export const CHARACTER_LIMIT = 50000;
export const USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";
/**
* Known documentation paths for the Gemini API docs.
* This serves as an index for search functionality.
*/
export const DOC_INDEX: Array<{ path: string; title: string; category: string; keywords: string[] }> = [
// Get Started
{ path: "", title: "Gemini API Overview", category: "Get Started", keywords: ["overview", "introduction", "getting started", "quickstart"] },
{ path: "quickstart", title: "Quickstart", category: "Get Started", keywords: ["quickstart", "getting started", "first api call", "setup"] },
{ path: "api-key", title: "API Keys", category: "Get Started", keywords: ["api key", "authentication", "credentials", "setup"] },
{ path: "libraries", title: "Libraries", category: "Get Started", keywords: ["sdk", "library", "python", "javascript", "node", "go", "java"] },
{ path: "interactions", title: "Interactions API", category: "Get Started", keywords: ["interactions", "api", "conversation"] },
// Models
{ path: "models", title: "Gemini Models", category: "Models", keywords: ["models", "gemini", "model selection", "capabilities"] },
{ path: "gemini-3", title: "Gemini 3", category: "Models", keywords: ["gemini 3", "latest model", "new model"] },
{ path: "image-generation", title: "Image Generation (Imagen)", category: "Models", keywords: ["image generation", "imagen", "generate images", "ai images"] },
{ path: "video", title: "Veo Video Generation", category: "Models", keywords: ["video", "veo", "video generation"] },
{ path: "music-generation", title: "Music Generation", category: "Models", keywords: ["music", "audio generation", "lyria"] },
{ path: "imagen", title: "Imagen", category: "Models", keywords: ["imagen", "image model"] },
{ path: "pricing", title: "Pricing", category: "Models", keywords: ["pricing", "cost", "tokens", "billing"] },
{ path: "rate-limits", title: "Rate Limits", category: "Models", keywords: ["rate limits", "quotas", "limits", "throttling"] },
// Core Capabilities
{ path: "text-generation", title: "Text Generation", category: "Core Capabilities", keywords: ["text generation", "generate text", "completion", "chat"] },
{ path: "image-understanding", title: "Image Understanding", category: "Core Capabilities", keywords: ["image understanding", "vision", "image analysis", "multimodal"] },
{ path: "video-understanding", title: "Video Understanding", category: "Core Capabilities", keywords: ["video understanding", "video analysis", "multimodal"] },
{ path: "document-processing", title: "Document Processing", category: "Core Capabilities", keywords: ["document", "pdf", "document processing", "file"] },
{ path: "speech-generation", title: "Speech Generation", category: "Core Capabilities", keywords: ["speech", "tts", "text to speech", "audio"] },
{ path: "audio", title: "Audio Understanding", category: "Core Capabilities", keywords: ["audio", "speech recognition", "transcription"] },
{ path: "thinking", title: "Thinking and Reasoning", category: "Core Capabilities", keywords: ["thinking", "reasoning", "chain of thought"] },
{ path: "thought-signatures", title: "Thought Signatures", category: "Core Capabilities", keywords: ["thought signatures", "thinking signatures"] },
{ path: "structured-output", title: "Structured Output", category: "Core Capabilities", keywords: ["structured output", "json", "schema", "json mode"] },
{ path: "function-calling", title: "Function Calling", category: "Core Capabilities", keywords: ["function calling", "tools", "tool use", "functions"] },
{ path: "long-context", title: "Long Context", category: "Core Capabilities", keywords: ["long context", "large context", "context window"] },
{ path: "embeddings", title: "Embeddings", category: "Core Capabilities", keywords: ["embeddings", "vector", "semantic search", "similarity"] },
// Tools and Agents
{ path: "tools", title: "Tools Overview", category: "Tools and Agents", keywords: ["tools", "agents", "tool use"] },
{ path: "deep-research", title: "Deep Research", category: "Tools and Agents", keywords: ["deep research", "research", "analysis"] },
{ path: "google-search", title: "Google Search Grounding", category: "Tools and Agents", keywords: ["google search", "grounding", "search", "web search"] },
{ path: "maps-grounding", title: "Google Maps Grounding", category: "Tools and Agents", keywords: ["maps", "google maps", "location", "places"] },
{ path: "code-execution", title: "Code Execution", category: "Tools and Agents", keywords: ["code execution", "run code", "execute code", "python"] },
{ path: "url-context", title: "URL Context", category: "Tools and Agents", keywords: ["url", "web page", "url context", "fetch url"] },
{ path: "computer-use", title: "Computer Use", category: "Tools and Agents", keywords: ["computer use", "automation", "browser", "desktop"] },
{ path: "file-search", title: "File Search", category: "Tools and Agents", keywords: ["file search", "search files", "document search"] },
// Live API
{ path: "live", title: "Live API Overview", category: "Live API", keywords: ["live api", "real-time", "streaming", "websocket"] },
{ path: "live-guide", title: "Live API Guide", category: "Live API", keywords: ["live guide", "live api tutorial"] },
{ path: "live-tools", title: "Live API Tools", category: "Live API", keywords: ["live tools", "live api tools"] },
{ path: "live-session", title: "Session Management", category: "Live API", keywords: ["session", "session management", "live session"] },
{ path: "ephemeral-tokens", title: "Ephemeral Tokens", category: "Live API", keywords: ["ephemeral tokens", "temporary tokens", "client tokens"] },
// Guides
{ path: "batch-api", title: "Batch API", category: "Guides", keywords: ["batch", "batch api", "bulk requests"] },
{ path: "file-input-methods", title: "File Input Methods", category: "Guides", keywords: ["file input", "upload", "file upload", "media"] },
{ path: "context-caching", title: "Context Caching", category: "Guides", keywords: ["context caching", "caching", "cache", "performance"] },
{ path: "openai-compatibility", title: "OpenAI Compatibility", category: "Guides", keywords: ["openai", "compatibility", "migration", "openai api"] },
{ path: "media-resolution", title: "Media Resolution", category: "Guides", keywords: ["media", "resolution", "image size", "video size"] },
{ path: "token-counting", title: "Token Counting", category: "Guides", keywords: ["tokens", "token counting", "token limit", "context length"] },
{ path: "prompt-engineering", title: "Prompt Engineering", category: "Guides", keywords: ["prompt engineering", "prompts", "prompt design", "best practices"] },
// Safety
{ path: "safety", title: "Safety Settings", category: "Safety", keywords: ["safety", "content filtering", "moderation", "harm categories"] },
{ path: "safety-guidance", title: "Safety Guidance", category: "Safety", keywords: ["safety guidance", "responsible ai", "guidelines"] },
// Resources
{ path: "migrate-to-gen-ai-sdk", title: "Migrate to Gen AI SDK", category: "Resources", keywords: ["migration", "gen ai sdk", "upgrade"] },
{ path: "release-notes", title: "Release Notes", category: "Resources", keywords: ["release notes", "changelog", "updates", "new features"] },
{ path: "deprecations", title: "Deprecations", category: "Resources", keywords: ["deprecations", "deprecated", "removed features"] },
{ path: "api-troubleshooting", title: "API Troubleshooting", category: "Resources", keywords: ["troubleshooting", "errors", "debugging", "issues"] },
{ path: "billing-info", title: "Billing Info", category: "Resources", keywords: ["billing", "payment", "costs", "usage"] },
];