{"version":3,"sources":["../src/pricing/ai-provider-openai.ts","../src/pricing/aws-ses.ts","../src/pricing/brave.ts","../src/pricing/ai-provider-anthropic.ts","../src/pricing/ai-provider-google.ts","../src/pricing/ai-provider-deepseek.ts","../src/pricing/pricing.ts","../src/sdk.ts","../src/types/index.ts"],"sourcesContent":["const commonPricingPrompt = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million prompt token',\n};\n\nconst commonPricingCompletion = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million completion token',\n};\n\nexport const OpenAIPricingConfig = {\n  ['ai-provider-openai']: {\n    type: 'llm',\n    // GPT-4.1 Models\n    ['gpt-4.1']: {\n      promptToken: {\n        basePriceUSD: 2.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 8.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4.1-2025-04-14']: {\n      promptToken: {\n        basePriceUSD: 2.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 8.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4.1-mini']: {\n      promptToken: {\n        basePriceUSD: 0.4,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 1.6,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4.1-mini-2025-04-14']: {\n      promptToken: {\n        basePriceUSD: 0.4,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 1.6,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4.1-nano']: {\n      promptToken: {\n        basePriceUSD: 0.1,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.4,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4.1-nano-2025-04-14']: {\n      promptToken: {\n        basePriceUSD: 0.1,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.4,\n        ...commonPricingCompletion,\n      },\n    },\n    // GPT-4.5 Models\n    ['gpt-4.5-preview']: {\n      promptToken: {\n        basePriceUSD: 75.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 150.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4.5-preview-2025-02-27']: {\n      promptToken: {\n        basePriceUSD: 75.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 150.0,\n        ...commonPricingCompletion,\n      },\n    },\n    // GPT-4o Models\n    ['gpt-4o']: {\n      promptToken: {\n        basePriceUSD: 2.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 10.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-2024-08-06']: {\n      promptToken: {\n        basePriceUSD: 2.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 10.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-2024-11-20']: {\n      promptToken: {\n        basePriceUSD: 2.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 10.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-2024-05-13']: {\n      promptToken: {\n        basePriceUSD: 5.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-mini']: {\n      promptToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.6,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4-0613']: {\n      promptToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.6,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-mini-2024-07-18']: {\n      promptToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.6,\n        ...commonPricingCompletion,\n      },\n    },\n    // Audio Models\n    ['gpt-4o-audio-preview']: {\n      promptToken: {\n        basePriceUSD: 2.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 10.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-audio-preview-2024-12-17']: {\n      promptToken: {\n        basePriceUSD: 2.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 10.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-audio-preview-2024-10-01']: {\n      promptToken: {\n        basePriceUSD: 2.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 10.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-mini-audio-preview']: {\n      promptToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.6,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-mini-audio-preview-2024-12-17']: {\n      promptToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.6,\n        ...commonPricingCompletion,\n      },\n    },\n    // Realtime Models\n    ['gpt-4o-realtime-preview']: {\n      promptToken: {\n        basePriceUSD: 5.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 20.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-realtime-preview-2024-12-17']: {\n      promptToken: {\n        basePriceUSD: 5.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 20.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-realtime-preview-2024-10-01']: {\n      promptToken: {\n        basePriceUSD: 5.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 20.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-mini-realtime-preview']: {\n      promptToken: {\n        basePriceUSD: 0.6,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 2.4,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-4o-mini-realtime-preview-2024-12-17']: {\n      promptToken: {\n        basePriceUSD: 0.6,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 2.4,\n        ...commonPricingCompletion,\n      },\n    },\n    // O1 Models\n    ['o1']: {\n      promptToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 60.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['o1-2024-12-17']: {\n      promptToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 60.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['o1-preview-2024-09-12']: {\n      promptToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 60.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['o1-pro']: {\n      promptToken: {\n        basePriceUSD: 150.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 600.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['o1-pro-2025-03-19']: {\n      promptToken: {\n        basePriceUSD: 150.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 600.0,\n        ...commonPricingCompletion,\n      },\n    },\n    // O3 Models\n    ['o3']: {\n      promptToken: {\n        basePriceUSD: 10.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 40.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['o3-2025-04-16']: {\n      promptToken: {\n        basePriceUSD: 10.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 40.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['o3-mini']: {\n      promptToken: {\n        basePriceUSD: 1.1,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 4.4,\n        ...commonPricingCompletion,\n      },\n    },\n    ['o3-mini-2025-01-31']: {\n      promptToken: {\n        basePriceUSD: 1.1,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 4.4,\n        ...commonPricingCompletion,\n      },\n    },\n    // O4 Models\n    ['o4-mini']: {\n      promptToken: {\n        basePriceUSD: 1.1,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 4.4,\n        ...commonPricingCompletion,\n      },\n    },\n    ['o4-mini-2025-04-16']: {\n      promptToken: {\n        basePriceUSD: 1.1,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 4.4,\n        ...commonPricingCompletion,\n      },\n    },\n    // GPT-3.5 Models\n    ['gpt-3.5-turbo']: {\n      promptToken: {\n        basePriceUSD: 0.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 1.5,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-3.5-turbo-0125']: {\n      promptToken: {\n        basePriceUSD: 0.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 1.5,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-3.5-turbo-1106']: {\n      promptToken: {\n        basePriceUSD: 1.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 2.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-3.5-turbo-0613']: {\n      promptToken: {\n        basePriceUSD: 1.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 2.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gpt-3.5-turbo-16k-0613']: {\n      promptToken: {\n        basePriceUSD: 3.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 4.0,\n        ...commonPricingCompletion,\n      },\n    },\n    // Embeddings Models\n    ['text-embedding-3-small']: {\n      promptToken: {\n        basePriceUSD: 0.02,\n        dataUnit: 'token',\n        per: 1_000_000,\n        description: 'Per 1 million tokens',\n      },\n    },\n    ['text-embedding-3-large']: {\n      promptToken: {\n        basePriceUSD: 0.13,\n        dataUnit: 'token',\n        per: 1_000_000,\n        description: 'Per 1 million tokens',\n      },\n    },\n    ['text-embedding-ada-002']: {\n      promptToken: {\n        basePriceUSD: 0.1,\n        dataUnit: 'token',\n        per: 1_000_000,\n        description: 'Per 1 million tokens',\n      },\n    },\n  },\n};\n","export const AwsSesPricingConfig = {\n  ['aws-ses']: {\n    type: 'api_1',\n    outboundEmail: {\n      requestCount: {\n        basePriceUSD: 0.1,\n        dataUnit: 'email',\n        per: 1000,\n        description: 'Per email sent',\n      },\n      requestData: {\n        basepriceUSD: 0.12, // per GB\n        per: 1,\n        dataUnit: 'GB', // \"GB, MB, KB, B\"\n        description: 'Per byte of data in the attachments you send',\n      },\n    },\n  },\n};\n","export const BravePricingConfig = {\n  ['brave']: {\n    type: 'api_1',\n    dataForSearch: {\n      requestCount: {\n        basePriceUSD: 5,\n        dataUnit: 'search',\n        per: 1000,\n        description: 'Per 1000 search requests',\n      },\n    },\n  },\n};\n","const commonPricingPrompt = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million prompt token',\n};\n\nconst commonPricingCompletion = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million completion token',\n};\n\nconst commonPricingCache5m = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million tokens for 5-minute cache writes',\n};\n\nconst commonPricingCache1h = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million tokens for 1-hour cache writes',\n};\n\nconst commonPricingCacheHits = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million tokens for cache hits & refreshes',\n};\n\nexport const AnthropicAIPricingConfig = {\n  ['ai-provider-anthropic']: {\n    type: 'llm',\n    // Claude 4 Models\n    ['claude-4-opus-20250514']: {\n      promptToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 75.0,\n        ...commonPricingCompletion,\n      },\n      cache5mToken: {\n        basePriceUSD: 18.75,\n        ...commonPricingCache5m,\n      },\n      cache1hToken: {\n        basePriceUSD: 30.0,\n        ...commonPricingCache1h,\n      },\n      cacheHitsToken: {\n        basePriceUSD: 1.5,\n        ...commonPricingCacheHits,\n      },\n    },\n    ['claude-4-sonnet-20250514']: {\n      promptToken: {\n        basePriceUSD: 3.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingCompletion,\n      },\n      cache5mToken: {\n        basePriceUSD: 3.75,\n        ...commonPricingCache5m,\n      },\n      cache1hToken: {\n        basePriceUSD: 6.0,\n        ...commonPricingCache1h,\n      },\n      cacheHitsToken: {\n        basePriceUSD: 0.3,\n        ...commonPricingCacheHits,\n      },\n    },\n    // Claude 3.7 Models\n    ['claude-3-7-sonnet-20250219']: {\n      promptToken: {\n        basePriceUSD: 3.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingCompletion,\n      },\n      cache5mToken: {\n        basePriceUSD: 3.75,\n        ...commonPricingCache5m,\n      },\n      cache1hToken: {\n        basePriceUSD: 6.0,\n        ...commonPricingCache1h,\n      },\n      cacheHitsToken: {\n        basePriceUSD: 0.3,\n        ...commonPricingCacheHits,\n      },\n    },\n    // Claude 3.5 Models\n    ['claude-3-5-sonnet-20241022']: {\n      promptToken: {\n        basePriceUSD: 3.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingCompletion,\n      },\n      cache5mToken: {\n        basePriceUSD: 3.75,\n        ...commonPricingCache5m,\n      },\n      cache1hToken: {\n        basePriceUSD: 6.0,\n        ...commonPricingCache1h,\n      },\n      cacheHitsToken: {\n        basePriceUSD: 0.3,\n        ...commonPricingCacheHits,\n      },\n    },\n    ['claude-3-5-sonnet-20240620']: {\n      promptToken: {\n        basePriceUSD: 3.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingCompletion,\n      },\n      cache5mToken: {\n        basePriceUSD: 3.75,\n        ...commonPricingCache5m,\n      },\n      cache1hToken: {\n        basePriceUSD: 6.0,\n        ...commonPricingCache1h,\n      },\n      cacheHitsToken: {\n        basePriceUSD: 0.3,\n        ...commonPricingCacheHits,\n      },\n    },\n    ['claude-3-5-haiku-20241022']: {\n      promptToken: {\n        basePriceUSD: 0.8,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 4.0,\n        ...commonPricingCompletion,\n      },\n      cache5mToken: {\n        basePriceUSD: 1.0,\n        ...commonPricingCache5m,\n      },\n      cache1hToken: {\n        basePriceUSD: 1.6,\n        ...commonPricingCache1h,\n      },\n      cacheHitsToken: {\n        basePriceUSD: 0.08,\n        ...commonPricingCacheHits,\n      },\n    },\n    // Claude 3 Models\n    ['claude-3-opus-20240229']: {\n      promptToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 75.0,\n        ...commonPricingCompletion,\n      },\n      cache5mToken: {\n        basePriceUSD: 18.75,\n        ...commonPricingCache5m,\n      },\n      cache1hToken: {\n        basePriceUSD: 30.0,\n        ...commonPricingCache1h,\n      },\n      cacheHitsToken: {\n        basePriceUSD: 1.5,\n        ...commonPricingCacheHits,\n      },\n    },\n    ['claude-3-sonnet-20240229']: {\n      promptToken: {\n        basePriceUSD: 3.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingCompletion,\n      },\n      cache5mToken: {\n        basePriceUSD: 3.75,\n        ...commonPricingCache5m,\n      },\n      cache1hToken: {\n        basePriceUSD: 6.0,\n        ...commonPricingCache1h,\n      },\n      cacheHitsToken: {\n        basePriceUSD: 0.3,\n        ...commonPricingCacheHits,\n      },\n    },\n    ['claude-3-haiku-20240307']: {\n      promptToken: {\n        basePriceUSD: 0.25,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 1.25,\n        ...commonPricingCompletion,\n      },\n      cache5mToken: {\n        basePriceUSD: 0.3,\n        ...commonPricingCache5m,\n      },\n      cache1hToken: {\n        basePriceUSD: 0.5,\n        ...commonPricingCache1h,\n      },\n      cacheHitsToken: {\n        basePriceUSD: 0.03,\n        ...commonPricingCacheHits,\n      },\n    },\n  },\n};\n","const commonPricingPrompt = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million prompt token',\n};\n\nconst commonPricingCompletion = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million completion token',\n};\n\nexport const GoogleAIPricingConfig = {\n  ['ai-provider-google']: {\n    type: 'llm',\n    // Gemini 2.5 Models\n    ['gemini-2.5-pro-preview-05-06']: {\n      promptToken: {\n        basePriceUSD: 1.25,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 10.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.5-pro-preview-05-06-long-context']: {\n      promptToken: {\n        basePriceUSD: 2.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 15.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.5-flash-preview-05-20']: {\n      promptToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.6,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.5-flash-preview-05-20-thinking']: {\n      promptToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 3.5,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.5-flash-preview-native-audio-dialog']: {\n      promptToken: {\n        basePriceUSD: 1.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.6,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.5-flash-exp-native-audio-thinking-dialog']: {\n      // Pricing unsure, needs to be checked\n      promptToken: {\n        basePriceUSD: 1.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.6,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.5-flash-preview-tts']: {\n      promptToken: {\n        basePriceUSD: 0.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 10.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.5-pro-preview-tts']: {\n      promptToken: {\n        basePriceUSD: 1.0,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 20.0,\n        ...commonPricingCompletion,\n      },\n    },\n    // Gemini 2.0 Models\n    ['gemini-2.0-flash']: {\n      promptToken: {\n        basePriceUSD: 0.1,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.4,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.0-flash-audio']: {\n      promptToken: {\n        basePriceUSD: 0.7,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.4,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.0-flash-live-001']: {\n      promptToken: {\n        basePriceUSD: 0.35,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 1.5,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.0-flash-live-001-audio']: {\n      promptToken: {\n        basePriceUSD: 2.1,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 8.5,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.0-flash-lite']: {\n      promptToken: {\n        basePriceUSD: 0.075,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.3,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.0-flash-preview-image-generation']: {\n      promptToken: {\n        basePriceUSD: 0.039,\n        dataUnit: 'image',\n        per: 1,\n        description: 'Per image',\n      },\n    },\n    // Gemini 1.5 Models\n    ['gemini-1.5-pro']: {\n      promptToken: {\n        basePriceUSD: 1.25,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 5.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-1.5-pro-long-context']: {\n      promptToken: {\n        basePriceUSD: 2.5,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 10.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-1.5-flash']: {\n      promptToken: {\n        basePriceUSD: 0.075,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.3,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-1.5-flash-long-context']: {\n      promptToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.6,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-1.5-flash-8b']: {\n      promptToken: {\n        basePriceUSD: 0.0375,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-1.5-flash-8b-long-context']: {\n      promptToken: {\n        basePriceUSD: 0.075,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.3,\n        ...commonPricingCompletion,\n      },\n    },\n    // Image Generation Models\n    ['imagen-3.0-generate-002']: {\n      promptToken: {\n        basePriceUSD: 0.03,\n        dataUnit: 'image',\n        per: 1,\n        description: 'Per image',\n      },\n    },\n    // Video Generation Models\n    ['veo-2.0-generate-001']: {\n      promptToken: {\n        basePriceUSD: 0.35,\n        dataUnit: 'second',\n        per: 1,\n        description: 'Per second of video',\n      },\n    },\n    // Embeddings Models\n    ['gemini-embedding-exp']: {\n      promptToken: {\n        basePriceUSD: 0.15,\n        dataUnit: 'token',\n        per: 1_000,\n        description: 'Per 1,000 tokens',\n      },\n    },\n    ['text-embedding-004']: {\n      promptToken: {\n        basePriceUSD: 0.025,\n        dataUnit: 'token',\n        per: 1_000,\n        description: 'Per 1,000 tokens',\n      },\n    },\n    ['embedding-001']: {\n      // Pricing unsure, needs to be checked\n      promptToken: {\n        basePriceUSD: 0.025,\n        dataUnit: 'token',\n        per: 1_000,\n        description: 'Per 1,000 tokens',\n      },\n    },\n    // Experimental Models\n    ['gemini-2.0-pro-exp-02-05']: {\n      // Pricing unsure, needs to be checked\n      promptToken: {\n        basePriceUSD: 1.25,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 5.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-2.0-flash-thinking-exp-01-21']: {\n      // Pricing unsure, needs to be checked\n      promptToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 3.5,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-exp-1206']: {\n      // Pricing unsure, needs to be checked\n      promptToken: {\n        basePriceUSD: 1.25,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 5.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-exp-1121']: {\n      // Pricing unsure, needs to be checked\n      promptToken: {\n        basePriceUSD: 1.25,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 5.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-exp-1114']: {\n      // Pricing unsure, needs to be checked\n      promptToken: {\n        basePriceUSD: 1.25,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 5.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-1.5-pro-exp-0827']: {\n      // Pricing unsure, needs to be checked\n      promptToken: {\n        basePriceUSD: 1.25,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 5.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-1.5-pro-exp-0801']: {\n      // Pricing unsure, needs to be checked\n      promptToken: {\n        basePriceUSD: 1.25,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 5.0,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-1.5-flash-8b-exp-0924']: {\n      // Pricing unsure, needs to be checked\n      promptToken: {\n        basePriceUSD: 0.0375,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingCompletion,\n      },\n    },\n    ['gemini-1.5-flash-8b-exp-0827']: {\n      // Pricing unsure, needs to be checked\n      promptToken: {\n        basePriceUSD: 0.0375,\n        ...commonPricingPrompt,\n      },\n      completionToken: {\n        basePriceUSD: 0.15,\n        ...commonPricingCompletion,\n      },\n    },\n  },\n};\n","import { AIPricingConfig } from '../types';\n\nconst commonPricingInputCacheHit = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million input tokens (cache hit)',\n};\n\nconst commonPricingInputCacheMiss = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million input tokens (cache miss)',\n};\n\nconst commonPricingOutput = {\n  dataUnit: 'token',\n  per: 1_000_000,\n  description: 'Per 1 million output tokens',\n};\n\nexport const DeepSeekAIPricingConfig = {\n  ['ai-provider-deepseek']: {\n    type: 'llm',\n    // DeepSeek Chat Models\n    ['deepseek-chat']: {\n      promptToken: {\n        basePriceUSD: 0.07,\n        ...commonPricingInputCacheHit,\n      },\n      promptTokenCacheMiss: {\n        basePriceUSD: 0.27,\n        ...commonPricingInputCacheMiss,\n      },\n      completionToken: {\n        basePriceUSD: 1.1,\n        ...commonPricingOutput,\n      },\n      discountHours: {\n        start: '16:30', // UTC\n        end: '00:30', // UTC\n      },\n      discountRates: {\n        promptToken: 0.5, // 50% off\n        promptTokenCacheMiss: 0.5, // 50% off\n        completionToken: 0.5, // 50% off\n      },\n      features: {\n        jsonOutput: true,\n        functionCalling: true,\n        chatPrefixCompletion: true,\n        fimCompletion: true,\n      },\n    },\n    // DeepSeek Reasoner Models\n    ['deepseek-reasoner']: {\n      promptToken: {\n        basePriceUSD: 0.14,\n        ...commonPricingInputCacheHit,\n      },\n      promptTokenCacheMiss: {\n        basePriceUSD: 0.55,\n        ...commonPricingInputCacheMiss,\n      },\n      completionToken: {\n        basePriceUSD: 2.19,\n        ...commonPricingOutput,\n      },\n      discountHours: {\n        start: '16:30', // UTC\n        end: '00:30', // UTC\n      },\n      discountRates: {\n        promptToken: 0.75, // 75% off\n        promptTokenCacheMiss: 0.75, // 75% off\n        completionToken: 0.75, // 75% off\n      },\n      features: {\n        jsonOutput: true,\n        functionCalling: true,\n        chatPrefixCompletion: true,\n        fimCompletion: false,\n      },\n    },\n  },\n};\n","import { Usage, LLMUsage, BaseUsage } from '@microfox/usage-tracker';\nimport { OpenAIPricingConfig } from './ai-provider-openai';\nimport { AwsSesPricingConfig } from './aws-ses';\nimport { BravePricingConfig } from './brave';\nimport { UsageWithPricing } from '../types';\nimport { AnthropicAIPricingConfig } from './ai-provider-anthropic';\nimport { GoogleAIPricingConfig } from './ai-provider-google';\nimport { DeepSeekAIPricingConfig } from './ai-provider-deepseek';\n\n/**\n * Configuration object containing pricing information for different services and providers.\n * Includes configurations for AWS SES, OpenAI, Google AI, Anthropic AI, and Brave.\n */\nexport const PricingConfig = {\n  ...AwsSesPricingConfig,\n  ...OpenAIPricingConfig,\n  ...GoogleAIPricingConfig,\n  ...AnthropicAIPricingConfig,\n  ...DeepSeekAIPricingConfig,\n  ...BravePricingConfig,\n};\n\n// Create a type that combines the base usage fields with LLM usage fields\ntype LLMUsageWithBase = Omit<LLMUsage, 'type'> &\n  Omit<BaseUsage, 'package'> & {\n    package?: string;\n    type?: 'llm';\n  };\n\n/**\n * Attaches pricing information to API usage data.\n * Calculates the price based on request count and request data if available.\n *\n * @param usage - The usage data to attach pricing to\n * @returns Usage data with attached pricing information including priceUSD and originalPriceUSD\n */\nexport const attachPricingApi1 = (usage: Usage): UsageWithPricing => {\n  if (usage.type !== 'api_1' || !usage.requestKey) {\n    return {\n      ...usage,\n      priceUSD: 0,\n      originalPriceUSD: 0,\n    };\n  }\n  const pricingPkgConfig = (PricingConfig as any)[usage.package];\n  if (!pricingPkgConfig) {\n    return {\n      ...usage,\n      priceUSD: 0,\n      originalPriceUSD: 0,\n    };\n  }\n  const pricingKeyConfig = (pricingPkgConfig as any)[usage.requestKey];\n  if (!pricingKeyConfig) {\n    return {\n      ...usage,\n      priceUSD: 0,\n      originalPriceUSD: 0,\n    };\n  }\n  let usagePriceUSD = 0;\n  if (\n    usage.type === 'api_1' &&\n    usage.requestCount &&\n    pricingKeyConfig.requestCount\n  ) {\n    usagePriceUSD +=\n      pricingKeyConfig.requestCount.basePriceUSD *\n      (usage.requestCount / pricingKeyConfig.requestCount.per);\n  }\n  if (\n    usage.type === 'api_1' &&\n    usage.requestData &&\n    pricingKeyConfig.requestData\n  ) {\n    usagePriceUSD +=\n      pricingKeyConfig.requestData.basePriceUSD *\n      (usage.requestData / pricingKeyConfig.requestData.per);\n  }\n  return {\n    ...usage,\n    priceUSD: usagePriceUSD * (1 - (usage.markup ?? 0) / 100),\n    originalPriceUSD: usagePriceUSD,\n  } as UsageWithPricing;\n};\n\n/**\n * Fetches the provider package name for a given model.\n * Searches through all LLM configurations to find the matching provider.\n *\n * @param model - The model name to find the provider for\n * @returns The provider package name or undefined if not found\n */\nexport const fetchProviderPackage = (model: string) => {\n  const allLLmConfigs = Object.entries(PricingConfig)\n    .map(([key, config]) => ({\n      key,\n      config,\n    }))\n    .filter(({ config }) => config.type === 'llm');\n  const pricingConfigPackage = allLLmConfigs.find(({ config }) =>\n    Object.keys(config).includes(model),\n  )?.key;\n  return pricingConfigPackage;\n};\n\n/**\n * Attaches pricing information to LLM usage data.\n * Calculates the price based on prompt tokens and completion tokens.\n *\n * @param usage - The LLM usage data to attach pricing to\n * @returns Usage data with attached pricing information including priceUSD and originalPriceUSD\n */\nexport const attachPricingLLM = (usage: LLMUsageWithBase): UsageWithPricing => {\n  let _package: string | undefined = usage.package;\n  if (!usage.model) {\n    return {\n      ...usage,\n      priceUSD: 0,\n      originalPriceUSD: 0,\n    } as UsageWithPricing;\n  }\n  if (!usage.package) {\n    _package = fetchProviderPackage(usage.model);\n  }\n  if (!_package) {\n    return {\n      ...usage,\n      priceUSD: 0,\n      originalPriceUSD: 0,\n    } as UsageWithPricing;\n  }\n  const pricingConfig = (PricingConfig as any)[_package];\n  if (!pricingConfig) {\n    return {\n      ...usage,\n      priceUSD: 0,\n      originalPriceUSD: 0,\n    } as UsageWithPricing;\n  }\n  let usagePriceUSD = 0;\n  let modelPricingConfig = (pricingConfig as any)[usage.model];\n  if (!modelPricingConfig) {\n    return {\n      ...usage,\n      priceUSD: 0,\n      originalPriceUSD: 0,\n    } as UsageWithPricing;\n  }\n  usagePriceUSD +=\n    modelPricingConfig.promptToken.basePriceUSD *\n    ((usage.promptTokens ?? 0) / modelPricingConfig.promptToken.per);\n  usagePriceUSD +=\n    modelPricingConfig.completionToken.basePriceUSD *\n    ((usage.completionTokens ?? 0) / modelPricingConfig.completionToken.per);\n  return {\n    ...usage,\n    package: _package,\n    priceUSD: usagePriceUSD * (1 - (usage.markup ?? 0) / 100),\n    originalPriceUSD: usagePriceUSD,\n  } as UsageWithPricing;\n};\n\n/**\n * Main function to attach pricing information to any type of usage data.\n * Routes the usage data to the appropriate pricing calculator based on the usage type.\n *\n * @param usage - The usage data to attach pricing to\n * @returns Usage data with attached pricing information\n */\nexport const attachPricing = (usage: Usage): UsageWithPricing => {\n  if (usage.type === 'llm') {\n    return attachPricingLLM(usage);\n  }\n  if (usage.type === 'api_1') {\n    return attachPricingApi1(usage);\n  }\n  return usage;\n};\n\nexport const getPricingForLLM = (props: {\n  model: string;\n  promptTokens: number;\n  completionTokens: number;\n  markup?: number;\n}) => {\n  const _package = fetchProviderPackage(props.model);\n  if (!_package) {\n    return {\n      priceUSD: 0,\n      originalPriceUSD: 0,\n    };\n  }\n  const pricingConfig = (PricingConfig as any)[_package];\n  if (!pricingConfig || !pricingConfig[props.model]) {\n    return {\n      priceUSD: 0,\n      originalPriceUSD: 0,\n    };\n  }\n  const modelPricingConfig = (pricingConfig as any)[props.model];\n  const usagePriceUSD =\n    modelPricingConfig.promptToken.basePriceUSD *\n      (props.promptTokens / modelPricingConfig.promptToken.per) +\n    modelPricingConfig.completionToken.basePriceUSD *\n      (props.completionTokens / modelPricingConfig.completionToken.per);\n  return {\n    provider: _package?.replace('ai-provider-', ''),\n    priceUSD: usagePriceUSD * (1 - (props.markup ?? 0) / 100),\n    originalPriceUSD: usagePriceUSD,\n  };\n};\n","import { Redis } from '@upstash/redis';\nimport { UsageTrackerConstructorOptions, Usage } from '@microfox/usage-tracker';\nimport { attachPricing } from './pricing/pricing';\nimport { UsageWithPricing } from './types';\n\n// return YYYY-MM-DD\nconst getDateKey = () => {\n  return new Date().toISOString().split('T')[0];\n};\n\n// return YYYY-MM\nconst getDateKeyUntilMonth = () => {\n  const date = new Date();\n  return date.toISOString().split('T')[0].split('-').slice(0, 2).join('-');\n};\n\n// return YYYY\nconst getDateKeyUntilYear = () => {\n  const date = new Date();\n  return date.toISOString().split('T')[0].split('-')[0];\n};\n\nconst getTimestampKey = () => {\n  return new Date().toISOString();\n};\n\nconst cleanPackageName = (packageName: string) => {\n  return packageName\n    .replace('@microfox/', '')\n    .replace('#', '/')\n    .replace('@ext_', '');\n};\n\nexport class MicrofoxUsagePricing {\n  private readonly redis: Redis;\n  private readonly prefix?: string;\n\n  constructor(config: UsageTrackerConstructorOptions) {\n    this.redis = new Redis({\n      url: config.redisOptions?.url ?? process.env.MICROFOX_REDIS_URL_TRACKER,\n      token:\n        config.redisOptions?.token ?? process.env.MICROFOX_REDIS_TOKEN_TRACKER,\n    });\n    this.prefix =\n      config.prefix ??\n      process.env.MICROFOX_CLIENT_REQUEST_ID ??\n      process.env.MICROFOX_BOT_PROJECT_ID;\n  }\n\n  private processUsageEntries(\n    usage: Record<string, unknown>,\n    packageName?: string,\n  ): Usage[] {\n    return Object.entries(usage)\n      .map(([key, value]) => {\n        try {\n          let json = typeof value === 'string' ? JSON.parse(value) : value;\n          if ('model' in json) {\n            json.type = 'llm';\n          }\n          if ('requestKey' in json) {\n            json.type = 'api_1';\n          }\n          return {\n            ...json,\n            timestamp: key,\n          };\n        } catch {\n          console.error('Failed to parse usage entry', value);\n          return null;\n        }\n      })\n      .filter(entry => entry != null && entry !== undefined)\n      .filter(entry =>\n        packageName ? entry.package === cleanPackageName(packageName) : true,\n      ) as Usage[];\n  }\n\n  async getUsage(\n    packageName?: string,\n    prefixDateKey?: string,\n    options?: {\n      limit?: number;\n      offset?: number;\n    },\n  ) {\n    const usageKey = `${this.prefix}:${prefixDateKey ?? '*'}`;\n    const limit = options?.limit ?? 100;\n    const offset = options?.offset ?? 0;\n\n    let cursor = '0';\n    const keys: string[] = [];\n    let totalItems = 0;\n\n    do {\n      const [nextCursor, matchedKeys] = await this.redis.scan(cursor, {\n        match: usageKey,\n        count: limit,\n      });\n      cursor = nextCursor;\n      keys.push(...matchedKeys);\n      totalItems += matchedKeys.length;\n    } while (cursor !== '0' && keys.length < offset + limit);\n\n    const pageKeys = keys.slice(offset, offset + limit);\n\n    const usages: Usage[] = (\n      await Promise.all(\n        pageKeys.map(async usageKey => {\n          const usage = await this.redis.hgetall(usageKey);\n          if (!usage) return [];\n          return this.processUsageEntries(usage, packageName);\n        }),\n      )\n    ).flat();\n\n    return {\n      data: usages.map(attachPricing),\n      total: totalItems,\n      limit,\n      offset,\n      hasMore: totalItems > offset + limit,\n    };\n  }\n\n  async getDailyUsage(\n    packageName?: string,\n    options?: { limit?: number; offset?: number },\n  ) {\n    return this.getUsage(packageName, `${getDateKey()}:*`, options);\n  }\n\n  async getMonthlyUsage(\n    packageName?: string,\n    options?: { limit?: number; offset?: number },\n  ) {\n    return this.getUsage(packageName, `${getDateKeyUntilMonth()}*`, options);\n  }\n\n  async getYearlyUsage(\n    packageName?: string,\n    options?: { limit?: number; offset?: number },\n  ) {\n    return this.getUsage(packageName, `${getDateKeyUntilYear()}*`, options);\n  }\n\n  async getFullUsage(packageName?: string, prefixDateKey?: string) {\n    const usageKey = `${this.prefix}:${prefixDateKey ?? '*'}`;\n    const keys = await this.redis.keys(usageKey);\n\n    const usages: Usage[] = (\n      await Promise.all(\n        keys.map(async usageKey => {\n          const usage = await this.redis.hgetall(usageKey);\n          if (!usage) return [];\n          return this.processUsageEntries(usage, packageName);\n        }),\n      )\n    ).flat();\n\n    return usages.map(attachPricing);\n  }\n\n  async getFullDailyUsage(packageName?: string) {\n    return this.getFullUsage(packageName, `${getDateKey()}:*`);\n  }\n\n  async getFullMonthlyUsage(packageName?: string) {\n    return this.getFullUsage(packageName, `${getDateKeyUntilMonth()}*`);\n  }\n\n  async getFullYearlyUsage(packageName?: string) {\n    return this.getFullUsage(packageName, `${getDateKeyUntilYear()}*`);\n  }\n}\n\nexport const createMicrofoxUsagePricing = (\n  config: UsageTrackerConstructorOptions,\n) => {\n  return new MicrofoxUsagePricing(config);\n};\n\nexport const createDefaultMicrofoxUsagePricing = () => {\n  if (\n    !process.env.MICROFOX_REDIS_URL_TRACKER ||\n    !process.env.MICROFOX_REDIS_TOKEN_TRACKER\n  ) {\n    return;\n  }\n  if (!process.env.MICROFOX_CLIENT_REQUEST_ID) {\n    return;\n  }\n  return new MicrofoxUsagePricing({});\n};\n","import { UsageSchema } from '@microfox/usage-tracker';\nimport { z } from 'zod';\n\nexport const UsageWithPricingSchema = z\n  .object({\n    priceUSD: z.number(),\n    originalPriceUSD: z.number().optional(),\n  })\n  .and(UsageSchema);\n\nexport type UsageWithPricing = z.infer<typeof UsageWithPricingSchema>;\n\nexport interface AIPricingConfig {\n  provider: string;\n  models: {\n    [modelName: string]: {\n      contextLength: number;\n      maxOutput: number;\n      pricing: {\n        standard: {\n          inputCacheHit: number;\n          inputCacheMiss: number;\n          output: number;\n        };\n        discount: {\n          inputCacheHit: number;\n          inputCacheMiss: number;\n          output: number;\n        };\n        discountHours: {\n          start: string;\n          end: string;\n        };\n      };\n      features: {\n        jsonOutput: boolean;\n        functionCalling: boolean;\n        chatPrefixCompletion: boolean;\n        fimCompletion: boolean;\n      };\n    };\n  };\n}\n"],"mappings":"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","names":["commonPricingPrompt","commonPricingCompletion","commonPricingPrompt","commonPricingCompletion","usageKey"]}