@everworker/oneringai 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/Vendor.ts","../../src/domain/entities/Model.ts","../../src/domain/entities/Services.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Supported AI Vendors\n *\n * Use this enum instead of string literals for type safety.\n * These map to specific provider implementations.\n */\nexport const Vendor = {\n OpenAI: 'openai',\n Anthropic: 'anthropic',\n Google: 'google',\n GoogleVertex: 'google-vertex',\n Groq: 'groq',\n Together: 'together',\n Perplexity: 'perplexity',\n Grok: 'grok',\n DeepSeek: 'deepseek',\n Mistral: 'mistral',\n Ollama: 'ollama',\n Custom: 'custom', // OpenAI-compatible endpoint\n} as const;\n\nexport type Vendor = (typeof Vendor)[keyof typeof Vendor];\n\n/**\n * All vendor values as array (useful for validation)\n */\nexport const VENDORS = Object.values(Vendor);\n\n/**\n * Check if a string is a valid vendor\n */\nexport function isVendor(value: string): value is Vendor {\n return VENDORS.includes(value as Vendor);\n}\n","import { Vendor } from '../../core/Vendor.js';\nimport type { Vendor as VendorType } from '../../core/Vendor.js';\n\n/**\n * Complete description of an LLM model including capabilities, pricing, and features\n */\nexport interface ILLMDescription {\n /** Model identifier (e.g., \"gpt-5.2-instant\") */\n name: string;\n\n /** Vendor/provider (Vendor.OpenAI, Vendor.Anthropic, etc.) */\n provider: string;\n\n /** Optional description of the model */\n description?: string;\n\n /** Whether the model is currently available for use */\n isActive: boolean;\n\n /** Release date (YYYY-MM-DD format) */\n releaseDate?: string;\n\n /** Knowledge cutoff date */\n knowledgeCutoff?: string;\n\n /** Model capabilities and pricing */\n features: {\n /** Supports extended reasoning/thinking */\n reasoning?: boolean;\n\n /** Supports streaming responses */\n streaming: boolean;\n\n /** Supports structured output (JSON mode) */\n structuredOutput?: boolean;\n\n /** Supports function/tool calling */\n functionCalling?: boolean;\n\n /** Supports fine-tuning */\n fineTuning?: boolean;\n\n /** Supports predicted outputs */\n predictedOutputs?: boolean;\n\n /** Supports realtime API */\n realtime?: boolean;\n\n /** Supports image input (vision) */\n vision?: boolean;\n\n /** Supports audio input/output */\n audio?: boolean;\n\n /** Supports video input */\n video?: boolean;\n\n /** Supports extended thinking (Claude-specific) */\n extendedThinking?: boolean;\n\n /** Supports batch API */\n batchAPI?: boolean;\n\n /** Supports prompt caching */\n promptCaching?: boolean;\n\n /** Parameter support - indicates which sampling parameters are supported */\n parameters?: {\n /** Supports temperature parameter */\n temperature?: boolean;\n /** Supports top_p parameter */\n topP?: boolean;\n /** Supports frequency_penalty parameter */\n frequencyPenalty?: boolean;\n /** Supports presence_penalty parameter */\n presencePenalty?: boolean;\n };\n\n /** Input specifications */\n input: {\n /** Maximum input context window (in tokens) */\n tokens: number;\n\n /** Supports text input */\n text: boolean;\n\n /** Supports image input */\n image?: boolean;\n\n /** Supports audio input */\n audio?: boolean;\n\n /** Supports video input */\n video?: boolean;\n\n /** Cost per million tokens (input) */\n cpm: number;\n\n /** Cost per million cached tokens (if prompt caching supported) */\n cpmCached?: number;\n };\n\n /** Output specifications */\n output: {\n /** Maximum output tokens */\n tokens: number;\n\n /** Supports text output */\n text: boolean;\n\n /** Supports image output */\n image?: boolean;\n\n /** Supports audio output */\n audio?: boolean;\n\n /** Cost per million tokens (output) */\n cpm: number;\n };\n };\n}\n\n/**\n * Model name constants organized by vendor\n * Updated: January 2026 - Contains only verified, currently available models\n */\nexport const LLM_MODELS = {\n [Vendor.OpenAI]: {\n // GPT-5.2 Series (Current Flagship)\n GPT_5_2: 'gpt-5.2',\n GPT_5_2_PRO: 'gpt-5.2-pro',\n // GPT-5 Series\n GPT_5: 'gpt-5',\n GPT_5_MINI: 'gpt-5-mini',\n GPT_5_NANO: 'gpt-5-nano',\n // GPT-4.1 Series\n GPT_4_1: 'gpt-4.1',\n GPT_4_1_MINI: 'gpt-4.1-mini',\n GPT_4_1_NANO: 'gpt-4.1-nano',\n // GPT-4o Series (Legacy, Audio Capable)\n GPT_4O: 'gpt-4o',\n GPT_4O_MINI: 'gpt-4o-mini',\n // Reasoning Models (o-series)\n O3_MINI: 'o3-mini',\n O1: 'o1',\n },\n [Vendor.Anthropic]: {\n // Claude 4.5 Series (Current)\n CLAUDE_OPUS_4_5: 'claude-opus-4-5-20251101',\n CLAUDE_SONNET_4_5: 'claude-sonnet-4-5-20250929',\n CLAUDE_HAIKU_4_5: 'claude-haiku-4-5-20251001',\n // Claude 4.x Legacy\n CLAUDE_OPUS_4_1: 'claude-opus-4-1-20250805',\n CLAUDE_SONNET_4: 'claude-sonnet-4-20250514',\n CLAUDE_SONNET_3_7: 'claude-3-7-sonnet-20250219',\n // Claude 3.x Legacy\n CLAUDE_HAIKU_3: 'claude-3-haiku-20240307',\n },\n [Vendor.Google]: {\n // Gemini 3 Series (Preview)\n GEMINI_3_FLASH_PREVIEW: 'gemini-3-flash-preview',\n GEMINI_3_PRO_PREVIEW: 'gemini-3-pro-preview',\n GEMINI_3_PRO_IMAGE_PREVIEW: 'gemini-3-pro-image-preview',\n // Gemini 2.5 Series (Production)\n GEMINI_2_5_PRO: 'gemini-2.5-pro',\n GEMINI_2_5_FLASH: 'gemini-2.5-flash',\n GEMINI_2_5_FLASH_LITE: 'gemini-2.5-flash-lite',\n GEMINI_2_5_FLASH_IMAGE: 'gemini-2.5-flash-image',\n },\n [Vendor.Grok]: {\n // Grok 4.1 Series (2M context, fast)\n GROK_4_1_FAST_REASONING: 'grok-4-1-fast-reasoning',\n GROK_4_1_FAST_NON_REASONING: 'grok-4-1-fast-non-reasoning',\n // Grok 4 Series\n GROK_4_FAST_REASONING: 'grok-4-fast-reasoning',\n GROK_4_FAST_NON_REASONING: 'grok-4-fast-non-reasoning',\n GROK_4_0709: 'grok-4-0709',\n // Grok Code\n GROK_CODE_FAST_1: 'grok-code-fast-1',\n // Grok 3 Series\n GROK_3: 'grok-3',\n GROK_3_MINI: 'grok-3-mini',\n // Grok 2 Series (Vision)\n GROK_2_VISION_1212: 'grok-2-vision-1212',\n },\n} as const;\n\n/**\n * Complete model registry with all model metadata\n * Updated: January 2026 - Verified from official vendor documentation\n */\nexport const MODEL_REGISTRY: Record<string, ILLMDescription> = {\n // ============================================================================\n // OpenAI Models (Verified from platform.openai.com)\n // ============================================================================\n\n // GPT-5.2 Series (Current Flagship)\n 'gpt-5.2': {\n name: 'gpt-5.2',\n provider: Vendor.OpenAI,\n description: 'Flagship model for coding and agentic tasks. Reasoning.effort: none, low, medium, high, xhigh',\n isActive: true,\n releaseDate: '2025-12-01',\n knowledgeCutoff: '2025-08-31',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: true,\n parameters: {\n temperature: false,\n topP: false,\n frequencyPenalty: false,\n presencePenalty: false,\n },\n input: {\n tokens: 400000,\n text: true,\n image: true,\n cpm: 1.75,\n },\n output: {\n tokens: 128000,\n text: true,\n cpm: 14,\n },\n },\n },\n\n 'gpt-5.2-pro': {\n name: 'gpt-5.2-pro',\n provider: Vendor.OpenAI,\n description: 'GPT-5.2 pro produces smarter and more precise responses. Reasoning.effort: medium, high, xhigh',\n isActive: true,\n releaseDate: '2025-12-01',\n knowledgeCutoff: '2025-08-31',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: true,\n parameters: {\n temperature: false,\n topP: false,\n frequencyPenalty: false,\n presencePenalty: false,\n },\n input: {\n tokens: 400000,\n text: true,\n image: true,\n cpm: 21,\n },\n output: {\n tokens: 128000,\n text: true,\n cpm: 168,\n },\n },\n },\n\n // GPT-5 Series\n 'gpt-5': {\n name: 'gpt-5',\n provider: Vendor.OpenAI,\n description: 'Previous intelligent reasoning model for coding and agentic tasks. Reasoning.effort: minimal, low, medium, high',\n isActive: true,\n releaseDate: '2025-08-01',\n knowledgeCutoff: '2024-09-30',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: true,\n parameters: {\n temperature: false,\n topP: false,\n frequencyPenalty: false,\n presencePenalty: false,\n },\n input: {\n tokens: 400000,\n text: true,\n image: true,\n cpm: 1.25,\n },\n output: {\n tokens: 128000,\n text: true,\n cpm: 10,\n },\n },\n },\n\n 'gpt-5-mini': {\n name: 'gpt-5-mini',\n provider: Vendor.OpenAI,\n description: 'Faster, cost-efficient version of GPT-5 for well-defined tasks and precise prompts',\n isActive: true,\n releaseDate: '2025-08-01',\n knowledgeCutoff: '2024-05-31',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: true,\n parameters: {\n temperature: false,\n topP: false,\n frequencyPenalty: false,\n presencePenalty: false,\n },\n input: {\n tokens: 400000,\n text: true,\n image: true,\n cpm: 0.25,\n },\n output: {\n tokens: 128000,\n text: true,\n cpm: 2,\n },\n },\n },\n\n 'gpt-5-nano': {\n name: 'gpt-5-nano',\n provider: Vendor.OpenAI,\n description: 'Fastest, most cost-efficient GPT-5. Great for summarization and classification tasks',\n isActive: true,\n releaseDate: '2025-08-01',\n knowledgeCutoff: '2024-05-31',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: true,\n parameters: {\n temperature: false,\n topP: false,\n frequencyPenalty: false,\n presencePenalty: false,\n },\n input: {\n tokens: 400000,\n text: true,\n image: true,\n cpm: 0.05,\n },\n output: {\n tokens: 128000,\n text: true,\n cpm: 0.4,\n },\n },\n },\n\n // GPT-4.1 Series\n 'gpt-4.1': {\n name: 'gpt-4.1',\n provider: Vendor.OpenAI,\n description: 'GPT-4.1 specialized for coding with 1M token context window',\n isActive: true,\n releaseDate: '2025-04-14',\n knowledgeCutoff: '2025-04-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 1000000,\n text: true,\n image: true,\n cpm: 2,\n },\n output: {\n tokens: 32768,\n text: true,\n cpm: 8,\n },\n },\n },\n\n 'gpt-4.1-mini': {\n name: 'gpt-4.1-mini',\n provider: Vendor.OpenAI,\n description: 'Efficient GPT-4.1 model, beats GPT-4o in many benchmarks at 83% lower cost',\n isActive: true,\n releaseDate: '2025-04-14',\n knowledgeCutoff: '2025-04-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 1000000,\n text: true,\n image: true,\n cpm: 0.4,\n },\n output: {\n tokens: 16384,\n text: true,\n cpm: 1.6,\n },\n },\n },\n\n 'gpt-4.1-nano': {\n name: 'gpt-4.1-nano',\n provider: Vendor.OpenAI,\n description: 'Fastest and cheapest model with 1M context. 80.1% MMLU, ideal for classification/autocompletion',\n isActive: true,\n releaseDate: '2025-04-14',\n knowledgeCutoff: '2025-04-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 1000000,\n text: true,\n image: true,\n cpm: 0.1,\n },\n output: {\n tokens: 16384,\n text: true,\n cpm: 0.4,\n },\n },\n },\n\n // GPT-4o Series (Legacy, Audio Capable)\n 'gpt-4o': {\n name: 'gpt-4o',\n provider: Vendor.OpenAI,\n description: 'Versatile omni model with audio support. Legacy but still available',\n isActive: true,\n releaseDate: '2024-05-13',\n knowledgeCutoff: '2024-04-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: true,\n realtime: true,\n vision: true,\n audio: true,\n video: false,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 128000,\n text: true,\n image: true,\n audio: true,\n cpm: 2.5,\n },\n output: {\n tokens: 16384,\n text: true,\n audio: true,\n cpm: 10,\n },\n },\n },\n\n 'gpt-4o-mini': {\n name: 'gpt-4o-mini',\n provider: Vendor.OpenAI,\n description: 'Fast, affordable omni model with audio support',\n isActive: true,\n releaseDate: '2024-07-18',\n knowledgeCutoff: '2024-04-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: true,\n predictedOutputs: false,\n realtime: true,\n vision: true,\n audio: true,\n video: false,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 128000,\n text: true,\n image: true,\n audio: true,\n cpm: 0.15,\n },\n output: {\n tokens: 16384,\n text: true,\n audio: true,\n cpm: 0.6,\n },\n },\n },\n\n // Reasoning Models (o-series)\n 'o3-mini': {\n name: 'o3-mini',\n provider: Vendor.OpenAI,\n description: 'Fast reasoning model tailored for coding, math, and science',\n isActive: true,\n releaseDate: '2025-01-31',\n knowledgeCutoff: '2024-10-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: false,\n parameters: {\n temperature: false,\n topP: false,\n frequencyPenalty: false,\n presencePenalty: false,\n },\n input: {\n tokens: 200000,\n text: true,\n image: true,\n cpm: 1.1,\n },\n output: {\n tokens: 100000,\n text: true,\n cpm: 4.4,\n },\n },\n },\n\n 'o1': {\n name: 'o1',\n provider: Vendor.OpenAI,\n description: 'Advanced reasoning model for complex problems',\n isActive: true,\n releaseDate: '2024-12-17',\n knowledgeCutoff: '2024-10-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: false,\n parameters: {\n temperature: false,\n topP: false,\n frequencyPenalty: false,\n presencePenalty: false,\n },\n input: {\n tokens: 200000,\n text: true,\n image: true,\n cpm: 15,\n },\n output: {\n tokens: 100000,\n text: true,\n cpm: 60,\n },\n },\n },\n\n // ============================================================================\n // Anthropic Models (Verified from platform.claude.com)\n // ============================================================================\n\n // Claude 4.5 Series (Current)\n 'claude-opus-4-5-20251101': {\n name: 'claude-opus-4-5-20251101',\n provider: Vendor.Anthropic,\n description: 'Premium model combining maximum intelligence with practical performance',\n isActive: true,\n releaseDate: '2025-11-01',\n knowledgeCutoff: '2025-05-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n extendedThinking: true,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 200000,\n text: true,\n image: true,\n cpm: 5,\n cpmCached: 0.5,\n },\n output: {\n tokens: 64000,\n text: true,\n cpm: 25,\n },\n },\n },\n\n 'claude-sonnet-4-5-20250929': {\n name: 'claude-sonnet-4-5-20250929',\n provider: Vendor.Anthropic,\n description: 'Smart model for complex agents and coding. Best balance of intelligence, speed, cost',\n isActive: true,\n releaseDate: '2025-09-29',\n knowledgeCutoff: '2025-01-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n extendedThinking: true,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 200000,\n text: true,\n image: true,\n cpm: 3,\n cpmCached: 0.3,\n },\n output: {\n tokens: 64000,\n text: true,\n cpm: 15,\n },\n },\n },\n\n 'claude-haiku-4-5-20251001': {\n name: 'claude-haiku-4-5-20251001',\n provider: Vendor.Anthropic,\n description: 'Fastest model with near-frontier intelligence. Matches Sonnet 4 on coding',\n isActive: true,\n releaseDate: '2025-10-01',\n knowledgeCutoff: '2025-02-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n extendedThinking: true,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 200000,\n text: true,\n image: true,\n cpm: 1,\n cpmCached: 0.1,\n },\n output: {\n tokens: 64000,\n text: true,\n cpm: 5,\n },\n },\n },\n\n // Claude 4.x Legacy\n 'claude-opus-4-1-20250805': {\n name: 'claude-opus-4-1-20250805',\n provider: Vendor.Anthropic,\n description: 'Legacy Opus 4.1 focused on agentic tasks, real-world coding, and reasoning',\n isActive: true,\n releaseDate: '2025-08-05',\n knowledgeCutoff: '2025-01-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n extendedThinking: true,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 200000,\n text: true,\n image: true,\n cpm: 15,\n cpmCached: 1.5,\n },\n output: {\n tokens: 32000,\n text: true,\n cpm: 75,\n },\n },\n },\n\n 'claude-sonnet-4-20250514': {\n name: 'claude-sonnet-4-20250514',\n provider: Vendor.Anthropic,\n description: 'Legacy Sonnet 4. Default for most users, supports 1M context beta',\n isActive: true,\n releaseDate: '2025-05-14',\n knowledgeCutoff: '2025-01-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n extendedThinking: true,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 200000, // 1M with beta header\n text: true,\n image: true,\n cpm: 3,\n cpmCached: 0.3,\n },\n output: {\n tokens: 64000,\n text: true,\n cpm: 15,\n },\n },\n },\n\n 'claude-3-7-sonnet-20250219': {\n name: 'claude-3-7-sonnet-20250219',\n provider: Vendor.Anthropic,\n description: 'Claude 3.7 Sonnet with extended thinking, supports 128K output beta',\n isActive: true,\n releaseDate: '2025-02-19',\n knowledgeCutoff: '2024-10-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n extendedThinking: true,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 200000,\n text: true,\n image: true,\n cpm: 3,\n cpmCached: 0.3,\n },\n output: {\n tokens: 64000, // 128K with beta header\n text: true,\n cpm: 15,\n },\n },\n },\n\n // Claude 3.x Legacy\n 'claude-3-haiku-20240307': {\n name: 'claude-3-haiku-20240307',\n provider: Vendor.Anthropic,\n description: 'Fast legacy model. Recommend migrating to Haiku 4.5',\n isActive: true,\n releaseDate: '2024-03-07',\n knowledgeCutoff: '2023-08-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n extendedThinking: false,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 200000,\n text: true,\n image: true,\n cpm: 0.25,\n cpmCached: 0.03,\n },\n output: {\n tokens: 4096,\n text: true,\n cpm: 1.25,\n },\n },\n },\n\n // ============================================================================\n // Google Models (Verified from ai.google.dev)\n // ============================================================================\n\n // Gemini 3 Series (Preview)\n 'gemini-3-flash-preview': {\n name: 'gemini-3-flash-preview',\n provider: Vendor.Google,\n description: 'Pro-grade reasoning with Flash-level latency and efficiency',\n isActive: true,\n releaseDate: '2025-11-18',\n knowledgeCutoff: '2025-08-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: true,\n video: true,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 1000000,\n text: true,\n image: true,\n audio: true,\n video: true,\n cpm: 0.15,\n },\n output: {\n tokens: 65536,\n text: true,\n cpm: 0.6,\n },\n },\n },\n\n 'gemini-3-pro-preview': {\n name: 'gemini-3-pro-preview',\n provider: Vendor.Google,\n description: 'Most advanced reasoning Gemini model for complex tasks',\n isActive: true,\n releaseDate: '2025-11-18',\n knowledgeCutoff: '2025-08-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: true,\n video: true,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 1000000,\n text: true,\n image: true,\n audio: true,\n video: true,\n cpm: 1.25,\n },\n output: {\n tokens: 65536,\n text: true,\n cpm: 10,\n },\n },\n },\n\n 'gemini-3-pro-image-preview': {\n name: 'gemini-3-pro-image-preview',\n provider: Vendor.Google,\n description: 'Highest quality image generation model',\n isActive: true,\n releaseDate: '2025-11-18',\n knowledgeCutoff: '2025-08-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: false,\n functionCalling: false,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 1000000,\n text: true,\n image: true,\n cpm: 1.25,\n },\n output: {\n tokens: 65536,\n text: true,\n image: true,\n cpm: 10,\n },\n },\n },\n\n // Gemini 2.5 Series (Production)\n 'gemini-2.5-pro': {\n name: 'gemini-2.5-pro',\n provider: Vendor.Google,\n description: 'Advanced multimodal model built for deep reasoning and agents',\n isActive: true,\n releaseDate: '2025-03-01',\n knowledgeCutoff: '2025-01-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: true,\n video: true,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 1000000,\n text: true,\n image: true,\n audio: true,\n video: true,\n cpm: 1.25,\n },\n output: {\n tokens: 65536,\n text: true,\n cpm: 10,\n },\n },\n },\n\n 'gemini-2.5-flash': {\n name: 'gemini-2.5-flash',\n provider: Vendor.Google,\n description: 'Fast, cost-effective model with excellent reasoning',\n isActive: true,\n releaseDate: '2025-06-17',\n knowledgeCutoff: '2025-01-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: true,\n video: true,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 1000000,\n text: true,\n image: true,\n audio: true,\n video: true,\n cpm: 0.15,\n },\n output: {\n tokens: 65536,\n text: true,\n cpm: 0.6,\n },\n },\n },\n\n 'gemini-2.5-flash-lite': {\n name: 'gemini-2.5-flash-lite',\n provider: Vendor.Google,\n description: 'Lowest latency for high-volume tasks, summarization, classification',\n isActive: true,\n releaseDate: '2025-06-17',\n knowledgeCutoff: '2025-01-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: true,\n video: true,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 1000000,\n text: true,\n image: true,\n audio: true,\n video: true,\n cpm: 0.075,\n },\n output: {\n tokens: 65536,\n text: true,\n cpm: 0.3,\n },\n },\n },\n\n 'gemini-2.5-flash-image': {\n name: 'gemini-2.5-flash-image',\n provider: Vendor.Google,\n description: 'Image generation and editing model',\n isActive: true,\n releaseDate: '2025-09-01',\n knowledgeCutoff: '2025-01-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: false,\n functionCalling: false,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: true,\n promptCaching: true,\n input: {\n tokens: 1000000,\n text: true,\n image: true,\n cpm: 0.15,\n },\n output: {\n tokens: 65536,\n text: true,\n image: true,\n cpm: 0.6,\n },\n },\n },\n\n // ============================================================================\n // xAI Grok Models (Verified from docs.x.ai - January 2026)\n // ============================================================================\n\n // Grok 4.1 Series (2M context, fast)\n 'grok-4-1-fast-reasoning': {\n name: 'grok-4-1-fast-reasoning',\n provider: Vendor.Grok,\n description: 'Fast Grok 4.1 with reasoning capabilities, 2M context window, vision support',\n isActive: true,\n releaseDate: '2025-11-01',\n knowledgeCutoff: '2024-11-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: false,\n promptCaching: false,\n input: {\n tokens: 2000000,\n text: true,\n image: true,\n cpm: 0.20,\n },\n output: {\n tokens: 65536,\n text: true,\n cpm: 0.50,\n },\n },\n },\n\n 'grok-4-1-fast-non-reasoning': {\n name: 'grok-4-1-fast-non-reasoning',\n provider: Vendor.Grok,\n description: 'Fast Grok 4.1 without reasoning, 2M context window, vision support',\n isActive: true,\n releaseDate: '2025-11-01',\n knowledgeCutoff: '2024-11-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: false,\n promptCaching: false,\n input: {\n tokens: 2000000,\n text: true,\n image: true,\n cpm: 0.20,\n },\n output: {\n tokens: 65536,\n text: true,\n cpm: 0.50,\n },\n },\n },\n\n // Grok Code Series\n 'grok-code-fast-1': {\n name: 'grok-code-fast-1',\n provider: Vendor.Grok,\n description: 'Specialized coding model with reasoning capabilities, 256K context',\n isActive: true,\n releaseDate: '2025-10-01',\n knowledgeCutoff: '2024-11-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: false,\n audio: false,\n video: false,\n batchAPI: false,\n promptCaching: false,\n input: {\n tokens: 256000,\n text: true,\n cpm: 0.20,\n },\n output: {\n tokens: 32768,\n text: true,\n cpm: 1.50,\n },\n },\n },\n\n // Grok 4 Series\n 'grok-4-fast-reasoning': {\n name: 'grok-4-fast-reasoning',\n provider: Vendor.Grok,\n description: 'Fast Grok 4 with reasoning capabilities, 2M context window',\n isActive: true,\n releaseDate: '2025-09-01',\n knowledgeCutoff: '2024-11-01',\n features: {\n reasoning: true,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: false,\n audio: false,\n video: false,\n batchAPI: false,\n promptCaching: false,\n input: {\n tokens: 2000000,\n text: true,\n cpm: 0.20,\n },\n output: {\n tokens: 65536,\n text: true,\n cpm: 0.50,\n },\n },\n },\n\n 'grok-4-fast-non-reasoning': {\n name: 'grok-4-fast-non-reasoning',\n provider: Vendor.Grok,\n description: 'Fast Grok 4 without reasoning, 2M context window, vision support',\n isActive: true,\n releaseDate: '2025-09-01',\n knowledgeCutoff: '2024-11-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: false,\n promptCaching: false,\n input: {\n tokens: 2000000,\n text: true,\n image: true,\n cpm: 0.20,\n },\n output: {\n tokens: 65536,\n text: true,\n cpm: 0.50,\n },\n },\n },\n\n 'grok-4-0709': {\n name: 'grok-4-0709',\n provider: Vendor.Grok,\n description: 'Grok 4 flagship model (July 2025 release), 256K context, vision support',\n isActive: true,\n releaseDate: '2025-07-09',\n knowledgeCutoff: '2024-11-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: false,\n promptCaching: false,\n input: {\n tokens: 256000,\n text: true,\n image: true,\n cpm: 3.00,\n },\n output: {\n tokens: 32768,\n text: true,\n cpm: 15.00,\n },\n },\n },\n\n // Grok 3 Series\n 'grok-3-mini': {\n name: 'grok-3-mini',\n provider: Vendor.Grok,\n description: 'Lightweight, cost-efficient model for simpler tasks, 131K context',\n isActive: true,\n releaseDate: '2025-06-01',\n knowledgeCutoff: '2024-11-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: false,\n audio: false,\n video: false,\n batchAPI: false,\n promptCaching: false,\n input: {\n tokens: 131072,\n text: true,\n cpm: 0.30,\n },\n output: {\n tokens: 32768,\n text: true,\n cpm: 0.50,\n },\n },\n },\n\n 'grok-3': {\n name: 'grok-3',\n provider: Vendor.Grok,\n description: 'Production model for general-purpose tasks, 131K context',\n isActive: true,\n releaseDate: '2025-06-01',\n knowledgeCutoff: '2024-11-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: false,\n audio: false,\n video: false,\n batchAPI: false,\n promptCaching: false,\n input: {\n tokens: 131072,\n text: true,\n cpm: 3.00,\n },\n output: {\n tokens: 32768,\n text: true,\n cpm: 15.00,\n },\n },\n },\n\n // Grok 2 Series (Vision)\n 'grok-2-vision-1212': {\n name: 'grok-2-vision-1212',\n provider: Vendor.Grok,\n description: 'Vision-capable model for image understanding, 32K context',\n isActive: true,\n releaseDate: '2024-12-12',\n knowledgeCutoff: '2024-11-01',\n features: {\n reasoning: false,\n streaming: true,\n structuredOutput: true,\n functionCalling: true,\n fineTuning: false,\n predictedOutputs: false,\n realtime: false,\n vision: true,\n audio: false,\n video: false,\n batchAPI: false,\n promptCaching: false,\n input: {\n tokens: 32768,\n text: true,\n image: true,\n cpm: 2.00,\n },\n output: {\n tokens: 8192,\n text: true,\n cpm: 10.00,\n },\n },\n },\n};\n\n/**\n * Get model information by name\n * @param modelName The model identifier\n * @returns Model description or undefined if not found\n */\nexport function getModelInfo(modelName: string): ILLMDescription | undefined {\n return MODEL_REGISTRY[modelName];\n}\n\n/**\n * Get all models for a specific vendor\n * @param vendor The vendor to filter by\n * @returns Array of model descriptions for the vendor\n */\nexport function getModelsByVendor(vendor: VendorType): ILLMDescription[] {\n return Object.values(MODEL_REGISTRY).filter((model) => model.provider === vendor);\n}\n\n/**\n * Get all currently active models\n * @returns Array of active model descriptions\n */\nexport function getActiveModels(): ILLMDescription[] {\n return Object.values(MODEL_REGISTRY).filter((model) => model.isActive);\n}\n\n/**\n * Calculate the cost for a given model and token usage\n * @param model Model name\n * @param inputTokens Number of input tokens\n * @param outputTokens Number of output tokens\n * @param options Optional calculation options\n * @returns Total cost in dollars, or null if model not found\n */\nexport function calculateCost(\n model: string,\n inputTokens: number,\n outputTokens: number,\n options?: { useCachedInput?: boolean }\n): number | null {\n const modelInfo = getModelInfo(model);\n if (!modelInfo) {\n return null;\n }\n\n const inputCPM = options?.useCachedInput && modelInfo.features.input.cpmCached !== undefined\n ? modelInfo.features.input.cpmCached\n : modelInfo.features.input.cpm;\n\n const outputCPM = modelInfo.features.output.cpm;\n\n const inputCost = (inputTokens / 1_000_000) * inputCPM;\n const outputCost = (outputTokens / 1_000_000) * outputCPM;\n\n return inputCost + outputCost;\n}\n","/**\n * Services - Single source of truth for external service definitions\n *\n * All service metadata is defined in one place (SERVICE_DEFINITIONS).\n * Other exports are derived from this to maintain DRY principles.\n */\n\n/**\n * Service category type\n */\nexport type ServiceCategory =\n | 'major-vendors'\n | 'communication'\n | 'development'\n | 'productivity'\n | 'crm'\n | 'payments'\n | 'cloud'\n | 'storage'\n | 'email'\n | 'monitoring'\n | 'search'\n | 'scrape'\n | 'other';\n\n/**\n * Complete service definition - single source of truth\n */\nexport interface ServiceDefinition {\n /** Unique identifier (e.g., 'slack', 'github') */\n id: string;\n /** Human-readable name (e.g., 'Slack', 'GitHub') */\n name: string;\n /** Service category */\n category: ServiceCategory;\n /** URL pattern for auto-detection from baseURL */\n urlPattern: RegExp;\n /** Default base URL for API calls */\n baseURL: string;\n /** Documentation URL */\n docsURL?: string;\n /** Common OAuth scopes */\n commonScopes?: string[];\n}\n\n/**\n * Master list of all service definitions\n * This is the SINGLE SOURCE OF TRUTH - all other exports derive from this\n */\nexport const SERVICE_DEFINITIONS: readonly ServiceDefinition[] = [\n // ============ Major Vendors ============\n {\n id: 'microsoft',\n name: 'Microsoft',\n category: 'major-vendors',\n urlPattern: /graph\\.microsoft\\.com|login\\.microsoftonline\\.com/i,\n baseURL: 'https://graph.microsoft.com/v1.0',\n docsURL: 'https://learn.microsoft.com/en-us/graph/',\n commonScopes: ['User.Read', 'Files.ReadWrite', 'Mail.Read', 'Calendars.ReadWrite'],\n },\n {\n id: 'google',\n name: 'Google',\n category: 'major-vendors',\n urlPattern: /googleapis\\.com|accounts\\.google\\.com/i,\n baseURL: 'https://www.googleapis.com',\n docsURL: 'https://developers.google.com/',\n commonScopes: [\n 'https://www.googleapis.com/auth/drive',\n 'https://www.googleapis.com/auth/calendar',\n 'https://www.googleapis.com/auth/gmail.readonly',\n ],\n },\n\n // ============ Communication ============\n {\n id: 'slack',\n name: 'Slack',\n category: 'communication',\n urlPattern: /slack\\.com/i,\n baseURL: 'https://slack.com/api',\n docsURL: 'https://api.slack.com/methods',\n commonScopes: ['chat:write', 'channels:read', 'users:read'],\n },\n {\n id: 'discord',\n name: 'Discord',\n category: 'communication',\n urlPattern: /discord\\.com|discordapp\\.com/i,\n baseURL: 'https://discord.com/api/v10',\n docsURL: 'https://discord.com/developers/docs',\n commonScopes: ['bot', 'messages.read'],\n },\n {\n id: 'telegram',\n name: 'Telegram',\n category: 'communication',\n urlPattern: /api\\.telegram\\.org/i,\n baseURL: 'https://api.telegram.org',\n docsURL: 'https://core.telegram.org/bots/api',\n },\n\n // ============ Development & Project Management ============\n {\n id: 'github',\n name: 'GitHub',\n category: 'development',\n urlPattern: /api\\.github\\.com/i,\n baseURL: 'https://api.github.com',\n docsURL: 'https://docs.github.com/en/rest',\n commonScopes: ['repo', 'read:user', 'read:org'],\n },\n {\n id: 'gitlab',\n name: 'GitLab',\n category: 'development',\n urlPattern: /gitlab\\.com|gitlab\\./i,\n baseURL: 'https://gitlab.com/api/v4',\n docsURL: 'https://docs.gitlab.com/ee/api/',\n commonScopes: ['api', 'read_user', 'read_repository'],\n },\n {\n id: 'bitbucket',\n name: 'Bitbucket',\n category: 'development',\n urlPattern: /api\\.bitbucket\\.org|bitbucket\\.org/i,\n baseURL: 'https://api.bitbucket.org/2.0',\n docsURL: 'https://developer.atlassian.com/cloud/bitbucket/rest/',\n commonScopes: ['repository', 'pullrequest'],\n },\n {\n id: 'jira',\n name: 'Jira',\n category: 'development',\n urlPattern: /atlassian\\.net.*jira|jira\\./i,\n baseURL: 'https://your-domain.atlassian.net/rest/api/3',\n docsURL: 'https://developer.atlassian.com/cloud/jira/platform/rest/v3/',\n commonScopes: ['read:jira-work', 'write:jira-work'],\n },\n {\n id: 'linear',\n name: 'Linear',\n category: 'development',\n urlPattern: /api\\.linear\\.app/i,\n baseURL: 'https://api.linear.app/graphql',\n docsURL: 'https://developers.linear.app/docs',\n commonScopes: ['read', 'write'],\n },\n {\n id: 'asana',\n name: 'Asana',\n category: 'development',\n urlPattern: /api\\.asana\\.com/i,\n baseURL: 'https://app.asana.com/api/1.0',\n docsURL: 'https://developers.asana.com/docs',\n },\n {\n id: 'trello',\n name: 'Trello',\n category: 'development',\n urlPattern: /api\\.trello\\.com/i,\n baseURL: 'https://api.trello.com/1',\n docsURL: 'https://developer.atlassian.com/cloud/trello/rest/',\n commonScopes: ['read', 'write'],\n },\n\n // ============ Productivity & Collaboration ============\n {\n id: 'notion',\n name: 'Notion',\n category: 'productivity',\n urlPattern: /api\\.notion\\.com/i,\n baseURL: 'https://api.notion.com/v1',\n docsURL: 'https://developers.notion.com/reference',\n },\n {\n id: 'airtable',\n name: 'Airtable',\n category: 'productivity',\n urlPattern: /api\\.airtable\\.com/i,\n baseURL: 'https://api.airtable.com/v0',\n docsURL: 'https://airtable.com/developers/web/api',\n commonScopes: ['data.records:read', 'data.records:write'],\n },\n {\n id: 'confluence',\n name: 'Confluence',\n category: 'productivity',\n urlPattern: /atlassian\\.net.*wiki|confluence\\./i,\n baseURL: 'https://your-domain.atlassian.net/wiki/rest/api',\n docsURL: 'https://developer.atlassian.com/cloud/confluence/rest/',\n commonScopes: ['read:confluence-content.all', 'write:confluence-content'],\n },\n\n // ============ CRM & Sales ============\n {\n id: 'salesforce',\n name: 'Salesforce',\n category: 'crm',\n urlPattern: /salesforce\\.com|force\\.com/i,\n baseURL: 'https://your-instance.salesforce.com/services/data/v58.0',\n docsURL: 'https://developer.salesforce.com/docs/apis',\n commonScopes: ['api', 'refresh_token'],\n },\n {\n id: 'hubspot',\n name: 'HubSpot',\n category: 'crm',\n urlPattern: /api\\.hubapi\\.com|api\\.hubspot\\.com/i,\n baseURL: 'https://api.hubapi.com',\n docsURL: 'https://developers.hubspot.com/docs/api',\n commonScopes: ['crm.objects.contacts.read', 'crm.objects.contacts.write'],\n },\n {\n id: 'pipedrive',\n name: 'Pipedrive',\n category: 'crm',\n urlPattern: /api\\.pipedrive\\.com/i,\n baseURL: 'https://api.pipedrive.com/v1',\n docsURL: 'https://developers.pipedrive.com/docs/api/v1',\n },\n\n // ============ Payments & Finance ============\n {\n id: 'stripe',\n name: 'Stripe',\n category: 'payments',\n urlPattern: /api\\.stripe\\.com/i,\n baseURL: 'https://api.stripe.com/v1',\n docsURL: 'https://stripe.com/docs/api',\n },\n {\n id: 'paypal',\n name: 'PayPal',\n category: 'payments',\n urlPattern: /api\\.paypal\\.com|api-m\\.paypal\\.com/i,\n baseURL: 'https://api-m.paypal.com/v2',\n docsURL: 'https://developer.paypal.com/docs/api/',\n },\n\n // ============ Cloud Providers ============\n {\n id: 'aws',\n name: 'Amazon Web Services',\n category: 'cloud',\n urlPattern: /amazonaws\\.com/i,\n baseURL: 'https://aws.amazon.com',\n docsURL: 'https://docs.aws.amazon.com/',\n },\n\n // ============ Storage ============\n {\n id: 'dropbox',\n name: 'Dropbox',\n category: 'storage',\n urlPattern: /api\\.dropboxapi\\.com|dropbox\\.com/i,\n baseURL: 'https://api.dropboxapi.com/2',\n docsURL: 'https://www.dropbox.com/developers/documentation',\n commonScopes: ['files.content.read', 'files.content.write'],\n },\n {\n id: 'box',\n name: 'Box',\n category: 'storage',\n urlPattern: /api\\.box\\.com/i,\n baseURL: 'https://api.box.com/2.0',\n docsURL: 'https://developer.box.com/reference/',\n },\n\n // ============ Email ============\n {\n id: 'sendgrid',\n name: 'SendGrid',\n category: 'email',\n urlPattern: /api\\.sendgrid\\.com/i,\n baseURL: 'https://api.sendgrid.com/v3',\n docsURL: 'https://docs.sendgrid.com/api-reference',\n },\n {\n id: 'mailchimp',\n name: 'Mailchimp',\n category: 'email',\n urlPattern: /api\\.mailchimp\\.com|mandrillapp\\.com/i,\n baseURL: 'https://server.api.mailchimp.com/3.0',\n docsURL: 'https://mailchimp.com/developer/marketing/api/',\n },\n {\n id: 'postmark',\n name: 'Postmark',\n category: 'email',\n urlPattern: /api\\.postmarkapp\\.com/i,\n baseURL: 'https://api.postmarkapp.com',\n docsURL: 'https://postmarkapp.com/developer',\n },\n\n // ============ Monitoring & Observability ============\n {\n id: 'datadog',\n name: 'Datadog',\n category: 'monitoring',\n urlPattern: /api\\.datadoghq\\.com/i,\n baseURL: 'https://api.datadoghq.com/api/v2',\n docsURL: 'https://docs.datadoghq.com/api/',\n },\n {\n id: 'pagerduty',\n name: 'PagerDuty',\n category: 'monitoring',\n urlPattern: /api\\.pagerduty\\.com/i,\n baseURL: 'https://api.pagerduty.com',\n docsURL: 'https://developer.pagerduty.com/api-reference/',\n },\n {\n id: 'sentry',\n name: 'Sentry',\n category: 'monitoring',\n urlPattern: /sentry\\.io/i,\n baseURL: 'https://sentry.io/api/0',\n docsURL: 'https://docs.sentry.io/api/',\n },\n\n // ============ Search ============\n {\n id: 'serper',\n name: 'Serper',\n category: 'search',\n urlPattern: /serper\\.dev/i,\n baseURL: 'https://google.serper.dev',\n docsURL: 'https://serper.dev/docs',\n },\n {\n id: 'brave-search',\n name: 'Brave Search',\n category: 'search',\n urlPattern: /api\\.search\\.brave\\.com/i,\n baseURL: 'https://api.search.brave.com/res/v1',\n docsURL: 'https://brave.com/search/api/',\n },\n {\n id: 'tavily',\n name: 'Tavily',\n category: 'search',\n urlPattern: /api\\.tavily\\.com/i,\n baseURL: 'https://api.tavily.com',\n docsURL: 'https://tavily.com/docs',\n },\n {\n id: 'rapidapi-search',\n name: 'RapidAPI Search',\n category: 'search',\n urlPattern: /real-time-web-search\\.p\\.rapidapi\\.com/i,\n baseURL: 'https://real-time-web-search.p.rapidapi.com',\n docsURL: 'https://rapidapi.com/letscrape-6bRBa3QguO5/api/real-time-web-search',\n },\n\n // ============ Scraping ============\n {\n id: 'zenrows',\n name: 'ZenRows',\n category: 'scrape',\n urlPattern: /api\\.zenrows\\.com/i,\n baseURL: 'https://api.zenrows.com/v1',\n docsURL: 'https://docs.zenrows.com/universal-scraper-api/api-reference',\n },\n\n // ============ Other ============\n {\n id: 'twilio',\n name: 'Twilio',\n category: 'other',\n urlPattern: /api\\.twilio\\.com/i,\n baseURL: 'https://api.twilio.com/2010-04-01',\n docsURL: 'https://www.twilio.com/docs/usage/api',\n },\n {\n id: 'zendesk',\n name: 'Zendesk',\n category: 'other',\n urlPattern: /zendesk\\.com/i,\n baseURL: 'https://your-subdomain.zendesk.com/api/v2',\n docsURL: 'https://developer.zendesk.com/api-reference/',\n commonScopes: ['read', 'write'],\n },\n {\n id: 'intercom',\n name: 'Intercom',\n category: 'other',\n urlPattern: /api\\.intercom\\.io/i,\n baseURL: 'https://api.intercom.io',\n docsURL: 'https://developers.intercom.com/docs/',\n },\n {\n id: 'shopify',\n name: 'Shopify',\n category: 'other',\n urlPattern: /shopify\\.com.*admin/i,\n baseURL: 'https://your-store.myshopify.com/admin/api/2024-01',\n docsURL: 'https://shopify.dev/docs/api',\n commonScopes: ['read_products', 'write_products', 'read_orders'],\n },\n] as const;\n\n// ============ Derived Exports (all from SERVICE_DEFINITIONS) ============\n\n/**\n * Service type - union of all service IDs\n */\nexport type ServiceType = (typeof SERVICE_DEFINITIONS)[number]['id'];\n\n/**\n * Services constant object for easy access\n * Usage: Services.Slack, Services.GitHub, etc.\n */\nexport const Services = Object.fromEntries(\n SERVICE_DEFINITIONS.map((def) => [\n // Convert kebab-case to PascalCase for object key\n def.id\n .split('-')\n .map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n .join(''),\n def.id,\n ])\n) as { [K in string]: ServiceType };\n\n/**\n * URL patterns for auto-detection (derived from SERVICE_DEFINITIONS)\n */\nexport const SERVICE_URL_PATTERNS: ReadonlyArray<{ service: string; pattern: RegExp }> =\n SERVICE_DEFINITIONS.map((def) => ({\n service: def.id,\n pattern: def.urlPattern,\n }));\n\n/**\n * Service info lookup (derived from SERVICE_DEFINITIONS)\n */\nexport interface ServiceInfo {\n id: string;\n name: string;\n category: ServiceCategory;\n baseURL: string;\n docsURL?: string;\n commonScopes?: string[];\n}\n\n/**\n * Service info map (derived from SERVICE_DEFINITIONS)\n */\nexport const SERVICE_INFO: Record<string, ServiceInfo> = Object.fromEntries(\n SERVICE_DEFINITIONS.map((def) => [\n def.id,\n {\n id: def.id,\n name: def.name,\n category: def.category,\n baseURL: def.baseURL,\n docsURL: def.docsURL,\n commonScopes: def.commonScopes,\n },\n ])\n);\n\n// ============ Utility Functions ============\n\n// Pre-compiled pattern cache for faster detection\nlet compiledPatterns: Array<{ service: string; pattern: RegExp }> | null = null;\n\n/**\n * Get compiled patterns (lazy initialization)\n */\nfunction getCompiledPatterns(): Array<{ service: string; pattern: RegExp }> {\n if (!compiledPatterns) {\n compiledPatterns = SERVICE_DEFINITIONS.map((def) => ({\n service: def.id,\n pattern: def.urlPattern,\n }));\n }\n return compiledPatterns;\n}\n\n/**\n * Detect service type from a URL\n * @param url - Base URL or full URL to check\n * @returns Service type string or undefined if not recognized\n */\nexport function detectServiceFromURL(url: string): string | undefined {\n const patterns = getCompiledPatterns();\n\n for (const { service, pattern } of patterns) {\n if (pattern.test(url)) {\n return service;\n }\n }\n\n return undefined;\n}\n\n/**\n * Get service info by service type\n */\nexport function getServiceInfo(serviceType: string): ServiceInfo | undefined {\n return SERVICE_INFO[serviceType];\n}\n\n/**\n * Get service definition by service type\n */\nexport function getServiceDefinition(serviceType: string): ServiceDefinition | undefined {\n return SERVICE_DEFINITIONS.find((def) => def.id === serviceType);\n}\n\n/**\n * Get all services in a category\n */\nexport function getServicesByCategory(category: ServiceCategory): ServiceDefinition[] {\n return SERVICE_DEFINITIONS.filter((def) => def.category === category);\n}\n\n/**\n * Get all service IDs\n */\nexport function getAllServiceIds(): string[] {\n return SERVICE_DEFINITIONS.map((def) => def.id);\n}\n\n/**\n * Check if a service ID is known\n */\nexport function isKnownService(serviceId: string): boolean {\n return SERVICE_DEFINITIONS.some((def) => def.id === serviceId);\n}\n"]}
@@ -0,0 +1,266 @@
1
+ import { V as Vendor } from '../Vendor-DYh_bzwo.cjs';
2
+ export { a as VENDORS, i as isVendor } from '../Vendor-DYh_bzwo.cjs';
3
+
4
+ /**
5
+ * Complete description of an LLM model including capabilities, pricing, and features
6
+ */
7
+ interface ILLMDescription {
8
+ /** Model identifier (e.g., "gpt-5.2-instant") */
9
+ name: string;
10
+ /** Vendor/provider (Vendor.OpenAI, Vendor.Anthropic, etc.) */
11
+ provider: string;
12
+ /** Optional description of the model */
13
+ description?: string;
14
+ /** Whether the model is currently available for use */
15
+ isActive: boolean;
16
+ /** Release date (YYYY-MM-DD format) */
17
+ releaseDate?: string;
18
+ /** Knowledge cutoff date */
19
+ knowledgeCutoff?: string;
20
+ /** Model capabilities and pricing */
21
+ features: {
22
+ /** Supports extended reasoning/thinking */
23
+ reasoning?: boolean;
24
+ /** Supports streaming responses */
25
+ streaming: boolean;
26
+ /** Supports structured output (JSON mode) */
27
+ structuredOutput?: boolean;
28
+ /** Supports function/tool calling */
29
+ functionCalling?: boolean;
30
+ /** Supports fine-tuning */
31
+ fineTuning?: boolean;
32
+ /** Supports predicted outputs */
33
+ predictedOutputs?: boolean;
34
+ /** Supports realtime API */
35
+ realtime?: boolean;
36
+ /** Supports image input (vision) */
37
+ vision?: boolean;
38
+ /** Supports audio input/output */
39
+ audio?: boolean;
40
+ /** Supports video input */
41
+ video?: boolean;
42
+ /** Supports extended thinking (Claude-specific) */
43
+ extendedThinking?: boolean;
44
+ /** Supports batch API */
45
+ batchAPI?: boolean;
46
+ /** Supports prompt caching */
47
+ promptCaching?: boolean;
48
+ /** Parameter support - indicates which sampling parameters are supported */
49
+ parameters?: {
50
+ /** Supports temperature parameter */
51
+ temperature?: boolean;
52
+ /** Supports top_p parameter */
53
+ topP?: boolean;
54
+ /** Supports frequency_penalty parameter */
55
+ frequencyPenalty?: boolean;
56
+ /** Supports presence_penalty parameter */
57
+ presencePenalty?: boolean;
58
+ };
59
+ /** Input specifications */
60
+ input: {
61
+ /** Maximum input context window (in tokens) */
62
+ tokens: number;
63
+ /** Supports text input */
64
+ text: boolean;
65
+ /** Supports image input */
66
+ image?: boolean;
67
+ /** Supports audio input */
68
+ audio?: boolean;
69
+ /** Supports video input */
70
+ video?: boolean;
71
+ /** Cost per million tokens (input) */
72
+ cpm: number;
73
+ /** Cost per million cached tokens (if prompt caching supported) */
74
+ cpmCached?: number;
75
+ };
76
+ /** Output specifications */
77
+ output: {
78
+ /** Maximum output tokens */
79
+ tokens: number;
80
+ /** Supports text output */
81
+ text: boolean;
82
+ /** Supports image output */
83
+ image?: boolean;
84
+ /** Supports audio output */
85
+ audio?: boolean;
86
+ /** Cost per million tokens (output) */
87
+ cpm: number;
88
+ };
89
+ };
90
+ }
91
+ /**
92
+ * Model name constants organized by vendor
93
+ * Updated: January 2026 - Contains only verified, currently available models
94
+ */
95
+ declare const LLM_MODELS: {
96
+ readonly openai: {
97
+ readonly GPT_5_2: "gpt-5.2";
98
+ readonly GPT_5_2_PRO: "gpt-5.2-pro";
99
+ readonly GPT_5: "gpt-5";
100
+ readonly GPT_5_MINI: "gpt-5-mini";
101
+ readonly GPT_5_NANO: "gpt-5-nano";
102
+ readonly GPT_4_1: "gpt-4.1";
103
+ readonly GPT_4_1_MINI: "gpt-4.1-mini";
104
+ readonly GPT_4_1_NANO: "gpt-4.1-nano";
105
+ readonly GPT_4O: "gpt-4o";
106
+ readonly GPT_4O_MINI: "gpt-4o-mini";
107
+ readonly O3_MINI: "o3-mini";
108
+ readonly O1: "o1";
109
+ };
110
+ readonly anthropic: {
111
+ readonly CLAUDE_OPUS_4_5: "claude-opus-4-5-20251101";
112
+ readonly CLAUDE_SONNET_4_5: "claude-sonnet-4-5-20250929";
113
+ readonly CLAUDE_HAIKU_4_5: "claude-haiku-4-5-20251001";
114
+ readonly CLAUDE_OPUS_4_1: "claude-opus-4-1-20250805";
115
+ readonly CLAUDE_SONNET_4: "claude-sonnet-4-20250514";
116
+ readonly CLAUDE_SONNET_3_7: "claude-3-7-sonnet-20250219";
117
+ readonly CLAUDE_HAIKU_3: "claude-3-haiku-20240307";
118
+ };
119
+ readonly google: {
120
+ readonly GEMINI_3_FLASH_PREVIEW: "gemini-3-flash-preview";
121
+ readonly GEMINI_3_PRO_PREVIEW: "gemini-3-pro-preview";
122
+ readonly GEMINI_3_PRO_IMAGE_PREVIEW: "gemini-3-pro-image-preview";
123
+ readonly GEMINI_2_5_PRO: "gemini-2.5-pro";
124
+ readonly GEMINI_2_5_FLASH: "gemini-2.5-flash";
125
+ readonly GEMINI_2_5_FLASH_LITE: "gemini-2.5-flash-lite";
126
+ readonly GEMINI_2_5_FLASH_IMAGE: "gemini-2.5-flash-image";
127
+ };
128
+ readonly grok: {
129
+ readonly GROK_4_1_FAST_REASONING: "grok-4-1-fast-reasoning";
130
+ readonly GROK_4_1_FAST_NON_REASONING: "grok-4-1-fast-non-reasoning";
131
+ readonly GROK_4_FAST_REASONING: "grok-4-fast-reasoning";
132
+ readonly GROK_4_FAST_NON_REASONING: "grok-4-fast-non-reasoning";
133
+ readonly GROK_4_0709: "grok-4-0709";
134
+ readonly GROK_CODE_FAST_1: "grok-code-fast-1";
135
+ readonly GROK_3: "grok-3";
136
+ readonly GROK_3_MINI: "grok-3-mini";
137
+ readonly GROK_2_VISION_1212: "grok-2-vision-1212";
138
+ };
139
+ };
140
+ /**
141
+ * Complete model registry with all model metadata
142
+ * Updated: January 2026 - Verified from official vendor documentation
143
+ */
144
+ declare const MODEL_REGISTRY: Record<string, ILLMDescription>;
145
+ /**
146
+ * Get model information by name
147
+ * @param modelName The model identifier
148
+ * @returns Model description or undefined if not found
149
+ */
150
+ declare function getModelInfo(modelName: string): ILLMDescription | undefined;
151
+ /**
152
+ * Get all models for a specific vendor
153
+ * @param vendor The vendor to filter by
154
+ * @returns Array of model descriptions for the vendor
155
+ */
156
+ declare function getModelsByVendor(vendor: Vendor): ILLMDescription[];
157
+ /**
158
+ * Get all currently active models
159
+ * @returns Array of active model descriptions
160
+ */
161
+ declare function getActiveModels(): ILLMDescription[];
162
+ /**
163
+ * Calculate the cost for a given model and token usage
164
+ * @param model Model name
165
+ * @param inputTokens Number of input tokens
166
+ * @param outputTokens Number of output tokens
167
+ * @param options Optional calculation options
168
+ * @returns Total cost in dollars, or null if model not found
169
+ */
170
+ declare function calculateCost(model: string, inputTokens: number, outputTokens: number, options?: {
171
+ useCachedInput?: boolean;
172
+ }): number | null;
173
+
174
+ /**
175
+ * Services - Single source of truth for external service definitions
176
+ *
177
+ * All service metadata is defined in one place (SERVICE_DEFINITIONS).
178
+ * Other exports are derived from this to maintain DRY principles.
179
+ */
180
+ /**
181
+ * Service category type
182
+ */
183
+ type ServiceCategory = 'major-vendors' | 'communication' | 'development' | 'productivity' | 'crm' | 'payments' | 'cloud' | 'storage' | 'email' | 'monitoring' | 'search' | 'scrape' | 'other';
184
+ /**
185
+ * Complete service definition - single source of truth
186
+ */
187
+ interface ServiceDefinition {
188
+ /** Unique identifier (e.g., 'slack', 'github') */
189
+ id: string;
190
+ /** Human-readable name (e.g., 'Slack', 'GitHub') */
191
+ name: string;
192
+ /** Service category */
193
+ category: ServiceCategory;
194
+ /** URL pattern for auto-detection from baseURL */
195
+ urlPattern: RegExp;
196
+ /** Default base URL for API calls */
197
+ baseURL: string;
198
+ /** Documentation URL */
199
+ docsURL?: string;
200
+ /** Common OAuth scopes */
201
+ commonScopes?: string[];
202
+ }
203
+ /**
204
+ * Master list of all service definitions
205
+ * This is the SINGLE SOURCE OF TRUTH - all other exports derive from this
206
+ */
207
+ declare const SERVICE_DEFINITIONS: readonly ServiceDefinition[];
208
+ /**
209
+ * Service type - union of all service IDs
210
+ */
211
+ type ServiceType = (typeof SERVICE_DEFINITIONS)[number]['id'];
212
+ /**
213
+ * Services constant object for easy access
214
+ * Usage: Services.Slack, Services.GitHub, etc.
215
+ */
216
+ declare const Services: { [K in string]: ServiceType; };
217
+ /**
218
+ * URL patterns for auto-detection (derived from SERVICE_DEFINITIONS)
219
+ */
220
+ declare const SERVICE_URL_PATTERNS: ReadonlyArray<{
221
+ service: string;
222
+ pattern: RegExp;
223
+ }>;
224
+ /**
225
+ * Service info lookup (derived from SERVICE_DEFINITIONS)
226
+ */
227
+ interface ServiceInfo {
228
+ id: string;
229
+ name: string;
230
+ category: ServiceCategory;
231
+ baseURL: string;
232
+ docsURL?: string;
233
+ commonScopes?: string[];
234
+ }
235
+ /**
236
+ * Service info map (derived from SERVICE_DEFINITIONS)
237
+ */
238
+ declare const SERVICE_INFO: Record<string, ServiceInfo>;
239
+ /**
240
+ * Detect service type from a URL
241
+ * @param url - Base URL or full URL to check
242
+ * @returns Service type string or undefined if not recognized
243
+ */
244
+ declare function detectServiceFromURL(url: string): string | undefined;
245
+ /**
246
+ * Get service info by service type
247
+ */
248
+ declare function getServiceInfo(serviceType: string): ServiceInfo | undefined;
249
+ /**
250
+ * Get service definition by service type
251
+ */
252
+ declare function getServiceDefinition(serviceType: string): ServiceDefinition | undefined;
253
+ /**
254
+ * Get all services in a category
255
+ */
256
+ declare function getServicesByCategory(category: ServiceCategory): ServiceDefinition[];
257
+ /**
258
+ * Get all service IDs
259
+ */
260
+ declare function getAllServiceIds(): string[];
261
+ /**
262
+ * Check if a service ID is known
263
+ */
264
+ declare function isKnownService(serviceId: string): boolean;
265
+
266
+ export { type ILLMDescription, LLM_MODELS, MODEL_REGISTRY, SERVICE_DEFINITIONS, SERVICE_INFO, SERVICE_URL_PATTERNS, type ServiceCategory, type ServiceDefinition, type ServiceInfo, type ServiceType, Services, Vendor, Vendor as VendorType, calculateCost, detectServiceFromURL, getActiveModels, getAllServiceIds, getModelInfo, getModelsByVendor, getServiceDefinition, getServiceInfo, getServicesByCategory, isKnownService };