@agentproto/model-catalog 0.3.0 → 0.5.0
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.
- package/dist/access/index.d.ts +5 -5
- package/dist/audio/index.d.ts +1 -1
- package/dist/{audio-DcaMq62v.d.ts → audio-BbeLA_4x.d.ts} +1 -0
- package/dist/{base-BJo3zO1J.d.ts → base-C4kz9Dxc.d.ts} +45 -1
- package/dist/{catalog-BXCENAMh.d.ts → catalog-BPDMuxzf.d.ts} +184 -2
- package/dist/{chunk-OCVWDFVT.mjs → chunk-FCPS2VGK.mjs} +258 -3
- package/dist/chunk-FCPS2VGK.mjs.map +1 -0
- package/dist/{chunk-7FUGMXL4.mjs → chunk-GCDMRPDR.mjs} +4 -4
- package/dist/{chunk-7FUGMXL4.mjs.map → chunk-GCDMRPDR.mjs.map} +1 -1
- package/dist/{chunk-2LUKUCDK.mjs → chunk-S74S3Q7Z.mjs} +3 -3
- package/dist/{chunk-2LUKUCDK.mjs.map → chunk-S74S3Q7Z.mjs.map} +1 -1
- package/dist/{chunk-XEYWCRAJ.mjs → chunk-TQSSXYY5.mjs} +9 -3
- package/dist/chunk-TQSSXYY5.mjs.map +1 -0
- package/dist/{chunk-PNWSXXRU.mjs → chunk-VIVKDMAT.mjs} +3 -3
- package/dist/{chunk-PNWSXXRU.mjs.map → chunk-VIVKDMAT.mjs.map} +1 -1
- package/dist/cost/index.mjs +3 -3
- package/dist/curation/index.d.ts +4 -4
- package/dist/curation/index.mjs +3 -3
- package/dist/{evaluate-BWuQauRR.d.ts → evaluate-CVzfLCd0.d.ts} +2 -2
- package/dist/{index-BgW4RQUV.d.ts → index-CgOxudo5.d.ts} +3 -3
- package/dist/{index-DL-GcOAF.d.ts → index-DSgqNd3Z.d.ts} +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.mjs +6 -6
- package/dist/llm/index.d.ts +2 -2
- package/dist/llm/index.mjs +1 -1
- package/dist/overlay/index.d.ts +3 -3
- package/dist/picker/index.d.ts +6 -6
- package/dist/route-identity/index.d.ts +3 -2
- package/dist/route-identity/index.mjs +3759 -1
- package/dist/route-identity/index.mjs.map +1 -1
- package/dist/schema/index.d.ts +9 -2
- package/dist/schema/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-OCVWDFVT.mjs.map +0 -1
- package/dist/chunk-XEYWCRAJ.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/route-identity/index.ts"],"names":["pricing"],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Route-aware model identity.\n *\n * Canonical reference syntax:\n * vendor/product[@route]\n *\n * A model product (who built it + what product) is separate from its serving\n * route (how we reach it / how we are billed).\n *\n * Examples:\n * openai/gpt-4o → vendor openai, product gpt-4o, route openai (direct)\n * openai/gpt-4o@openrouter → same product, routed through OpenRouter\n * openai/gpt-4o@agentik-proxy → same product, operator-configured proxy route\n *\n * Design invariants:\n * - `vendor` is who built the model; `route` is how we reach it.\n * - `provider/model` strings parse as vendor/product with implicit route = vendor\n * (backward-compatible reference form).\n * - Unscoped `xx@yy` is rejected.\n * - Route metadata (pricing, limits, transport, availability) is separate from\n * product metadata and computed at resolution time.\n * - The abstraction is generic across model kinds; only LLM has a concrete\n * resolver today.\n */\n\nimport type { LLMPricing } from \"../llm/catalog.js\"\nimport {\n resolvePricing,\n resolveAlias,\n DEFAULT_PRICING,\n} from \"../llm/catalog.js\"\nimport { OPENROUTER_ROUTES } from \"../llm/openrouter-routes.generated.js\"\n\n// ── Parser ─────────────────────────────────────────────────────────────────\n\nconst SEGMENT_RE = /^[a-zA-Z0-9_.-]+$/\nconst REF_RE = /^([^/@]+)\\/([^/@]+)(?:@([^/@]+))?$/\n\nexport interface ModelRef {\n /** The original, trimmed string. */\n raw: string\n /** Model author / builder (permanent identity). */\n vendor: string\n /** Specific model product. */\n product: string\n /** Routing target — defaults to vendor for direct vendor access. */\n route: string\n}\n\nexport class InvalidModelRefError extends Error {\n readonly name = \"InvalidModelRefError\"\n constructor(\n public readonly raw: string,\n message: string\n ) {\n super(`Invalid model reference \"${raw}\": ${message}`)\n }\n}\n\n/**\n * Parse a model reference in `vendor/product[@route]` form.\n *\n * - `openai/gpt-4o` → `{ vendor: \"openai\", product: \"gpt-4o\", route: \"openai\" }`\n * - `openai/gpt-4o@openrouter` → route \"openrouter\"\n *\n * Rejects empty strings, unscoped `@` refs, missing segments, and segments\n * containing `/` or `@`.\n */\nexport function parseModelRef(raw: string): ModelRef {\n const input = raw.trim()\n if (input.length === 0) {\n throw new InvalidModelRefError(raw, \"model reference is empty\")\n }\n\n // Reject unscoped `xx@yy` before attempting the slash-based regex.\n if (input.includes(\"@\") && !input.includes(\"/\")) {\n throw new InvalidModelRefError(\n raw,\n \"unscoped @ route is not allowed; use vendor/product[@route]\"\n )\n }\n\n const match = REF_RE.exec(input)\n if (!match) {\n throw new InvalidModelRefError(\n raw,\n \"expected vendor/product[@route] (e.g. openai/gpt-4o or openai/gpt-4o@openrouter)\"\n )\n }\n\n const vendor = match[1]!.trim()\n const product = match[2]!.trim()\n const route = (match[3] ?? vendor).trim()\n\n for (const [label, value] of [\n [\"vendor\", vendor],\n [\"product\", product],\n [\"route\", route],\n ] as const) {\n if (value.length === 0) {\n throw new InvalidModelRefError(raw, `${label} segment is empty`)\n }\n if (!SEGMENT_RE.test(value)) {\n throw new InvalidModelRefError(\n raw,\n `${label} \"${value}\" contains invalid characters (no '/' or '@')`\n )\n }\n }\n\n return { raw: input, vendor, product, route }\n}\n\n/**\n * Format a {@link ModelRef} back to its canonical string.\n * Implicit direct routes omit the `@route` suffix.\n */\nexport function formatModelRef(ref: ModelRef): string {\n if (ref.route === ref.vendor) {\n return `${ref.vendor}/${ref.product}`\n }\n return `${ref.vendor}/${ref.product}@${ref.route}`\n}\n\n/** True when `raw` matches the `vendor/product[@route]` shape. */\nexport function isModelRefString(raw: string): boolean {\n try {\n parseModelRef(raw)\n return true\n } catch {\n return false\n }\n}\n\n// ── Product vs route metadata ──────────────────────────────────────────────\n\nexport interface ModelRouteLimits {\n contextWindow?: number\n maxInputTokens?: number\n maxOutputTokens?: number\n}\n\nexport type ModelRouteAvailability = \"available\" | \"preview\" | \"unavailable\"\n\nexport interface ModelRouteTransport {\n /** API/schema flavor: e.g. \"openai\", \"anthropic\", \"openrouter\", \"custom\". */\n flavor: string\n /** Optional explicit base URL for the route. */\n baseUrl?: string\n}\n\n/** Product metadata — independent of the serving route. */\nexport interface ModelProductMeta {\n vendor: string\n product: string\n /** Canonical product id after alias resolution. */\n canonicalProductId: string\n}\n\n/** Route metadata — pricing, limits, transport, availability. */\nexport interface ModelRouteMeta<TPricing = unknown> {\n route: string\n transport: ModelRouteTransport\n availability: ModelRouteAvailability\n limits: ModelRouteLimits\n pricing: TPricing\n}\n\n/** Fully resolved model route: product identity + route metadata. */\nexport interface ResolvedModelRoute<TPricing = unknown>\n extends ModelProductMeta,\n ModelRouteMeta<TPricing> {\n /** The parsed reference. */\n ref: ModelRef\n}\n\nexport type ResolvedLlmModelRoute = ResolvedModelRoute<LLMPricing>\n\n// ── Custom route config ────────────────────────────────────────────────────\n\n/**\n * Operator-configurable custom route.\n *\n * No credential values live here — only the *name* of an env var (`authEnv`)\n * so adapters can resolve secrets at runtime. `agentik-proxy` is registered\n * through this shape; it is never hardcoded in the catalog. No private\n * models, hosts, or prices are committed.\n */\nexport interface CustomRouteConfig {\n label?: string\n /** API/schema flavor the route speaks. */\n flavor?: string\n /** Base URL the adapter should hit. */\n baseUrl?: string\n /** Name of the env var holding the API key/secret (not the value). */\n authEnv?: string\n availability?: ModelRouteAvailability\n limits?: ModelRouteLimits\n /** Route-level pricing override. Unset fields fall back to product pricing. */\n pricing?: Partial<LLMPricing>\n}\n\nconst customRoutes = new Map<string, CustomRouteConfig>()\n\nexport function registerCustomRoute(\n id: string,\n config: CustomRouteConfig\n): void {\n customRoutes.set(id, config)\n}\n\nexport function resolveCustomRoute(id: string): CustomRouteConfig | undefined {\n return customRoutes.get(id)\n}\n\n/** Test helper: clear all registered custom routes. */\nexport function clearCustomRoutes(): void {\n customRoutes.clear()\n}\n\n// ── LLM route resolution ───────────────────────────────────────────────────\n\n/**\n * Resolve a model reference to an LLM route, distinguishing direct vendor\n * access from explicit router/proxy routes.\n *\n * openai/gpt-4o → direct OpenAI pricing / transport\n * openai/gpt-4o@openrouter → OpenRouter route pricing / transport\n * openai/gpt-4o@agentik-proxy → custom route config (if registered)\n *\n * Bare legacy ids (e.g. `gpt-4o`, `claude-sonnet-4-5`) are also accepted and\n * resolved through the legacy pricing catalog, with the route inferred from\n * the catalog entry's provider/vendor.\n *\n * Returns `undefined` when the product or route is unknown.\n */\nexport function resolveLlmModelRoute(\n input: string | ModelRef\n): ResolvedLlmModelRoute | undefined {\n const ref =\n typeof input === \"string\"\n ? tryParseOrLegacy(input)\n : { ref: input, legacy: false }\n\n if (!ref) return undefined\n\n const { ref: modelRef, legacy } = ref\n const directPricing = resolvePricing(modelRef.product)\n const canonicalProductId = resolveAlias(modelRef.product)\n\n // ── Direct vendor route ─────────────────────────────────────────────────\n if (modelRef.route === modelRef.vendor) {\n if (!directPricing) return undefined\n return buildLlmRoute(modelRef, canonicalProductId, directPricing, {\n flavor: modelRef.vendor,\n })\n }\n\n // ── OpenRouter route ────────────────────────────────────────────────────\n if (modelRef.route === \"openrouter\") {\n const key = `${modelRef.vendor}/${modelRef.product}`\n const pricing = OPENROUTER_ROUTES[key]\n if (!pricing) return undefined\n return buildLlmRoute(modelRef, canonicalProductId, pricing, {\n flavor: \"openrouter\",\n })\n }\n\n // ── Custom route (e.g. agentik-proxy) ───────────────────────────────────\n const custom = resolveCustomRoute(modelRef.route)\n if (!custom) return undefined\n\n const basePricing = directPricing ?? DEFAULT_PRICING\n const pricing: LLMPricing = {\n ...basePricing,\n ...custom.pricing,\n vendor: custom.pricing?.vendor ?? basePricing.vendor,\n }\n\n return buildLlmRoute(\n modelRef,\n canonicalProductId,\n pricing,\n {\n flavor: custom.flavor ?? \"custom\",\n baseUrl: custom.baseUrl,\n },\n custom\n )\n}\n\nfunction buildLlmRoute(\n ref: ModelRef,\n canonicalProductId: string,\n pricing: LLMPricing,\n transport: ModelRouteTransport,\n custom?: CustomRouteConfig\n): ResolvedLlmModelRoute {\n return {\n ref,\n vendor: ref.vendor,\n product: ref.product,\n canonicalProductId,\n route: ref.route,\n transport,\n availability: custom?.availability ?? \"available\",\n limits: custom?.limits ?? {},\n pricing,\n }\n}\n\ninterface ParseResult {\n ref: ModelRef\n legacy: boolean\n}\n\n/**\n * Parse a canonical ref, or interpret a bare legacy id as a product-only ref\n * when it resolves through the legacy catalog.\n */\nfunction tryParseOrLegacy(raw: string): ParseResult | undefined {\n if (raw.includes(\"/\")) {\n return { ref: parseModelRef(raw), legacy: false }\n }\n const pricing = resolvePricing(raw)\n if (!pricing) return undefined\n const vendor = pricing.vendor ?? pricing.provider ?? \"unknown\"\n const route = pricing.provider ?? vendor\n return {\n ref: { raw, vendor, product: raw, route },\n legacy: true,\n }\n}\n\n// ── Diagnostics ────────────────────────────────────────────────────────────\n\nexport interface ModelRefDiagnostic {\n ref: ModelRef\n /** True if this string is a legacy bare id rather than vendor/product. */\n legacyBareId: boolean\n /** True if a direct vendor route exists for the product. */\n directAvailable: boolean\n /** True if an OpenRouter route exists for vendor/product. */\n openRouterAvailable: boolean\n /** True if a custom route is registered for the route segment. */\n customRouteAvailable: boolean\n /** Human-readable note when ambiguity or a deprecation applies. */\n note?: string\n}\n\n/**\n * Inspect a model reference and report what routes are available for it.\n *\n * Useful for CLI/UI warnings when a user types `openai/gpt-4o` and an\n * explicit `@openrouter` form also exists: the direct form is chosen, but\n * the note explains how to request the OpenRouter route explicitly.\n */\nexport function diagnoseModelRef(\n input: string | ModelRef\n): ModelRefDiagnostic | undefined {\n const parsed =\n typeof input === \"string\" ? tryParseOrLegacy(input) : { ref: input, legacy: false }\n if (!parsed) return undefined\n\n const { ref, legacy } = parsed\n const directPricing = resolvePricing(ref.product)\n const openRouterKey = `${ref.vendor}/${ref.product}`\n const openRouterPricing = OPENROUTER_ROUTES[openRouterKey]\n const custom = resolveCustomRoute(ref.route)\n\n const directAvailable = !!directPricing\n const openRouterAvailable = !!openRouterPricing\n const customRouteAvailable = !!custom\n\n let note: string | undefined\n if (legacy) {\n note = `Bare product id \"${ref.product}\" is a legacy form; prefer ${ref.vendor}/${ref.product}.`\n } else if (ref.route === ref.vendor && openRouterAvailable) {\n note = `Direct vendor route selected. Use ${ref.vendor}/${ref.product}@openrouter for the OpenRouter route.`\n }\n\n return {\n ref,\n legacyBareId: legacy,\n directAvailable,\n openRouterAvailable,\n customRouteAvailable,\n note,\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/llm/requesty-routes.generated.ts","../../src/route-identity/index.ts"],"names":["pricing"],"mappings":"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","file":"index.mjs","sourcesContent":["// AUTO-GENERATED by @agentproto/catalog-sync (llm:requesty).\n// Do not edit by hand — re-run `pnpm --filter @agentproto/catalog-sync generate`.\n// Source: https://router.requesty.ai/v1/models\n// Pricing carries provider USD (inputPer1M / outputPer1M) plus a cache\n// multiplier (cacheReadMultiplier) derived from the source's cached_price\n// per-token field when `supports_caching` is true. Requesty has no\n// cache-write price, so cacheWriteMultiplier is never emitted.\n\nimport type { LLMPricing } from \"./catalog.js\"\n\nexport const REQUESTY_ROUTES: Record<string, LLMPricing> = {\n \"alibaba/qwen-max\": {\n inputPer1M: 1.6,\n outputPer1M: 6.4,\n vendor: \"alibaba\",\n provider: \"requesty\",\n },\n \"alibaba/qwen-plus\": {\n inputPer1M: 0.4,\n outputPer1M: 1.2,\n vendor: \"alibaba\",\n provider: \"requesty\",\n },\n \"alibaba/qwen-turbo\": {\n inputPer1M: 0.05,\n outputPer1M: 0.2,\n vendor: \"alibaba\",\n provider: \"requesty\",\n },\n \"alibaba/qwen3-30b-a3b-instruct-2507\": {\n inputPer1M: 0.2,\n outputPer1M: 0.8,\n cacheReadMultiplier: 1,\n vendor: \"alibaba\",\n provider: \"requesty\",\n },\n \"alibaba/qwen3-coder-flash\": {\n inputPer1M: 0.3,\n outputPer1M: 1.5,\n cacheReadMultiplier: 0.266667,\n vendor: \"alibaba\",\n provider: \"requesty\",\n },\n \"alibaba/qwen3-coder-plus\": {\n inputPer1M: 1,\n outputPer1M: 5,\n vendor: \"alibaba\",\n provider: \"requesty\",\n },\n \"alibaba/qwen3-max\": {\n inputPer1M: 0.861,\n outputPer1M: 3.441,\n vendor: \"alibaba\",\n provider: \"requesty\",\n },\n \"alibaba/qwen3.6-plus\": {\n inputPer1M: 0.5,\n outputPer1M: 3,\n cacheReadMultiplier: 0.1,\n vendor: \"alibaba\",\n provider: \"requesty\",\n },\n \"alibaba/qwen3.7-max\": {\n inputPer1M: 2.5,\n outputPer1M: 7.5,\n cacheReadMultiplier: 0.1,\n vendor: \"alibaba\",\n provider: \"requesty\",\n },\n \"alibaba/qwen3.7-plus\": {\n inputPer1M: 0.32,\n outputPer1M: 1.28,\n cacheReadMultiplier: 0.1,\n vendor: \"alibaba\",\n provider: \"requesty\",\n },\n \"anthropic/claude-fable-5\": {\n inputPer1M: 10,\n outputPer1M: 50,\n cacheReadMultiplier: 0.1,\n vendor: \"anthropic\",\n provider: \"requesty\",\n },\n \"anthropic/claude-haiku-4-5\": {\n inputPer1M: 1,\n outputPer1M: 5,\n cacheReadMultiplier: 0.1,\n vendor: \"anthropic\",\n provider: \"requesty\",\n },\n \"anthropic/claude-opus-4-1\": {\n inputPer1M: 15,\n outputPer1M: 75,\n cacheReadMultiplier: 0.1,\n vendor: \"anthropic\",\n provider: \"requesty\",\n },\n \"anthropic/claude-opus-4-5\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"anthropic\",\n provider: \"requesty\",\n },\n \"anthropic/claude-opus-4-6\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"anthropic\",\n provider: \"requesty\",\n },\n \"anthropic/claude-opus-4-7\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"anthropic\",\n provider: \"requesty\",\n },\n \"anthropic/claude-opus-4-8\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"anthropic\",\n provider: \"requesty\",\n },\n \"anthropic/claude-sonnet-4-5\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"anthropic\",\n provider: \"requesty\",\n },\n \"anthropic/claude-sonnet-4-6\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"anthropic\",\n provider: \"requesty\",\n },\n \"anthropic/claude-sonnet-5\": {\n inputPer1M: 2,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"anthropic\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1-mini@eastus2\": {\n inputPer1M: 0.4,\n outputPer1M: 1.6,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1-mini@francecentral\": {\n inputPer1M: 0.4,\n outputPer1M: 1.6,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1-mini@uksouth\": {\n inputPer1M: 0.4,\n outputPer1M: 1.6,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1-mini@westus3\": {\n inputPer1M: 0.4,\n outputPer1M: 1.6,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1-nano\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1-nano@eastus2\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1-nano@francecentral\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1-nano@swedencentral\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1-nano@uksouth\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1-nano@westus3\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1@eastus2\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1@francecentral\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1@swedencentral\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1@uksouth\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4.1@westus3\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4o-mini@eastus2\": {\n inputPer1M: 0.15,\n outputPer1M: 0.6,\n cacheReadMultiplier: 0.5,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-4o-mini@swedencentral\": {\n inputPer1M: 0.15,\n outputPer1M: 0.6,\n cacheReadMultiplier: 0.5,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5-mini\": {\n inputPer1M: 0.25,\n outputPer1M: 2,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5-mini@eastus2\": {\n inputPer1M: 0.25,\n outputPer1M: 2,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5-mini@francecentral\": {\n inputPer1M: 0.25,\n outputPer1M: 2,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5-mini@swedencentral\": {\n inputPer1M: 0.25,\n outputPer1M: 2,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5-mini@uksouth\": {\n inputPer1M: 0.25,\n outputPer1M: 2,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5-nano\": {\n inputPer1M: 0.05,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5-nano@eastus2\": {\n inputPer1M: 0.05,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5-nano@francecentral\": {\n inputPer1M: 0.05,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5-nano@swedencentral\": {\n inputPer1M: 0.05,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.1@eastus2\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.1@francecentral\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.1@swedencentral\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.2-codex@eastus2\": {\n inputPer1M: 1.75,\n outputPer1M: 14,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.2@eastus2\": {\n inputPer1M: 1.75,\n outputPer1M: 14,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.3-codex@eastus2\": {\n inputPer1M: 1.75,\n outputPer1M: 14,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.4\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.4-mini\": {\n inputPer1M: 0.75,\n outputPer1M: 4.5,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.4-mini@eastus2\": {\n inputPer1M: 0.75,\n outputPer1M: 4.5,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.4@eastus2\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.4@francecentral\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.4@swedencentral\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.5@eastus2\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.5@swedencentral\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.6-luna@eastus2\": {\n inputPer1M: 1,\n outputPer1M: 6,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.6-luna@swedencentral\": {\n inputPer1M: 1,\n outputPer1M: 6,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.6-sol@eastus2\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.6-sol@swedencentral\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.6-terra@eastus2\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5.6-terra@swedencentral\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5@eastus2\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5@francecentral\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5@swedencentral\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/gpt-5@uksouth\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/o4-mini@eastus2\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/o4-mini@francecentral\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/o4-mini@swedencentral\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/o4-mini@westus3\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1-mini@eastus2\": {\n inputPer1M: 0.4,\n outputPer1M: 1.6,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1-mini@francecentral\": {\n inputPer1M: 0.4,\n outputPer1M: 1.6,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1-mini@westus3\": {\n inputPer1M: 0.4,\n outputPer1M: 1.6,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1-nano\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1-nano@eastus2\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1-nano@francecentral\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1-nano@swedencentral\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1-nano@westus3\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1@eastus2\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1@francecentral\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1@swedencentral\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-4.1@westus3\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.4-pro@eastus2\": {\n inputPer1M: 30,\n outputPer1M: 180,\n cacheReadMultiplier: 1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.4@eastus2\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.4@francecentral\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.4@swedencentral\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.5@eastus2\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.5@swedencentral\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.6-luna@eastus2\": {\n inputPer1M: 1,\n outputPer1M: 6,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.6-luna@swedencentral\": {\n inputPer1M: 1,\n outputPer1M: 6,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.6-sol@eastus2\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.6-sol@swedencentral\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.6-terra@eastus2\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"azure/openai-responses/gpt-5.6-terra@swedencentral\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"azure\",\n provider: \"requesty\",\n },\n \"bedrock/claude-fable-5@us-east-1\": {\n inputPer1M: 11,\n outputPer1M: 55,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-haiku-4-5\": {\n inputPer1M: 1,\n outputPer1M: 5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-haiku-4-5@ap-northeast-1\": {\n inputPer1M: 1.1,\n outputPer1M: 5.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-haiku-4-5@eu-central-1\": {\n inputPer1M: 1.1,\n outputPer1M: 5.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-haiku-4-5@eu-north-1\": {\n inputPer1M: 1.1,\n outputPer1M: 5.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-haiku-4-5@eu-west-1\": {\n inputPer1M: 1.1,\n outputPer1M: 5.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-haiku-4-5@eu-west-3\": {\n inputPer1M: 1.1,\n outputPer1M: 5.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-haiku-4-5@us-east-1\": {\n inputPer1M: 1.1,\n outputPer1M: 5.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-haiku-4-5@us-east-2\": {\n inputPer1M: 1.1,\n outputPer1M: 5.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-haiku-4-5@us-west-2\": {\n inputPer1M: 1.1,\n outputPer1M: 5.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-5\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-5@eu-central-1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-5@eu-north-1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-5@eu-west-1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-5@eu-west-3\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-5@us-east-1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-5@us-east-2\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-5@us-west-2\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-6\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-7\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-7@eu-central-1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-7@eu-north-1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-7@eu-west-1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-7@eu-west-3\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-8\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-8@ap-northeast-1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-8@eu-central-1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-8@eu-north-1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-8@eu-west-1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-opus-4-8@eu-west-3\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-5\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-5@eu-central-1\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-5@eu-north-1\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-5@eu-west-1\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-5@eu-west-3\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-5@us-east-1\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-5@us-east-2\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-5@us-west-2\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-6\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-6@ap-northeast-1\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-6@eu-central-1\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-6@eu-north-1\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-6@eu-west-1\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-6@eu-west-3\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-6@us-east-1\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-6@us-east-2\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4-6@us-west-2\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.090909,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4@eu-central-1\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4@eu-north-1\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4@eu-west-1\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4@eu-west-3\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4@us-east-1\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4@us-east-2\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-4@us-west-2\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/claude-sonnet-5\": {\n inputPer1M: 2,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/gpt-5.4@us-east-1\": {\n inputPer1M: 2.75,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/gpt-5.4@us-east-2\": {\n inputPer1M: 2.75,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/gpt-5.4@us-west-2\": {\n inputPer1M: 2.75,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/gpt-5.5@us-east-1\": {\n inputPer1M: 5.5,\n outputPer1M: 33,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/gpt-5.5@us-east-2\": {\n inputPer1M: 5.5,\n outputPer1M: 33,\n cacheReadMultiplier: 0.1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/kimi-k2.5@eu-north-1\": {\n inputPer1M: 0.72,\n outputPer1M: 3.6,\n cacheReadMultiplier: 1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/kimi-k2.5@eu-west-2\": {\n inputPer1M: 0.72,\n outputPer1M: 3.6,\n cacheReadMultiplier: 1,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/kimi-k2.5@us-east-1\": {\n inputPer1M: 0.6,\n outputPer1M: 3,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/kimi-k2.5@us-east-2\": {\n inputPer1M: 0.6,\n outputPer1M: 3,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/kimi-k2.5@us-west-2\": {\n inputPer1M: 0.6,\n outputPer1M: 3,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/minimax-m2.5@eu-central-1\": {\n inputPer1M: 0.36,\n outputPer1M: 1.44,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/minimax-m2.5@eu-north-1\": {\n inputPer1M: 0.36,\n outputPer1M: 1.44,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/minimax-m2.5@eu-south-1\": {\n inputPer1M: 0.36,\n outputPer1M: 1.44,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/minimax-m2.5@eu-west-1\": {\n inputPer1M: 0.36,\n outputPer1M: 1.44,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/minimax-m2.5@us-east-1\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/minimax-m2.5@us-east-2\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"bedrock/minimax-m2.5@us-west-2\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n vendor: \"bedrock\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-flash\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-flash@europe-central2\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-flash@europe-north1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-flash@europe-west1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-flash@europe-west4\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-flash@europe-west8\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-flash@us-central1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-flash@us-east1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-flash@us-east5\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-flash@us-south1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-flash@us-west1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-pro\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-pro@europe-central2\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-pro@europe-north1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-pro@europe-west1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-pro@europe-west4\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-pro@europe-west8\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-pro@us-central1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-pro@us-east1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-pro@us-east5\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-pro@us-south1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"coding/gemini-2.5-pro@us-west1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"coding\",\n provider: \"requesty\",\n },\n \"deepinfra/ByteDance/Seed-1.8\": {\n inputPer1M: 0.25,\n outputPer1M: 2,\n cacheReadMultiplier: 0.2,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/ByteDance/Seed-2.0-code\": {\n inputPer1M: 0.5,\n outputPer1M: 3,\n cacheReadMultiplier: 0.2,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/ByteDance/Seed-2.0-mini\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.2,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/ByteDance/Seed-2.0-pro\": {\n inputPer1M: 0.5,\n outputPer1M: 3,\n cacheReadMultiplier: 0.2,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Kimi K2.5\": {\n inputPer1M: 0.45,\n outputPer1M: 2.25,\n cacheReadMultiplier: 0.155556,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen2.5-72B-Instruct\": {\n inputPer1M: 0.23,\n outputPer1M: 0.4,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen2.5-Coder-32B-Instruct\": {\n inputPer1M: 0.07,\n outputPer1M: 0.16,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen3-235B-A22B\": {\n inputPer1M: 0.2,\n outputPer1M: 0.6,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen3-235B-A22B-Instruct-2507\": {\n inputPer1M: 0.071,\n outputPer1M: 0.1,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen3-235B-A22B-Thinking-2507\": {\n inputPer1M: 0.23,\n outputPer1M: 2.3,\n cacheReadMultiplier: 0.869565,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen3-32B\": {\n inputPer1M: 0.1,\n outputPer1M: 0.3,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen3-Coder-480B-A35B-Instruct\": {\n inputPer1M: 0.4,\n outputPer1M: 1.6,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo\": {\n inputPer1M: 0.3,\n outputPer1M: 1,\n cacheReadMultiplier: 0.333333,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen3-Max\": {\n inputPer1M: 1.2,\n outputPer1M: 6,\n cacheReadMultiplier: 0.2,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen3.5-27B\": {\n inputPer1M: 0.26,\n outputPer1M: 2.6,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen3.5-2B\": {\n inputPer1M: 0.02,\n outputPer1M: 0.1,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen3.5-35B-A3B\": {\n inputPer1M: 0.14,\n outputPer1M: 1,\n cacheReadMultiplier: 0.357143,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/Qwen/Qwen3.5-397B-A17B\": {\n inputPer1M: 0.49,\n outputPer1M: 3.6,\n cacheReadMultiplier: 0.612245,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/XiaomiMiMo/MiMo-V2.5\": {\n inputPer1M: 0.4,\n outputPer1M: 2,\n cacheReadMultiplier: 0.2,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/XiaomiMiMo/MiMo-V2.5-Pro\": {\n inputPer1M: 1,\n outputPer1M: 3,\n cacheReadMultiplier: 0.2,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/deepseek-ai/DeepSeek-R1\": {\n inputPer1M: 0.85,\n outputPer1M: 2.5,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/deepseek-ai/DeepSeek-R1-Distill-Llama-70B\": {\n inputPer1M: 0.23,\n outputPer1M: 0.69,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/deepseek-ai/DeepSeek-V3\": {\n inputPer1M: 0.85,\n outputPer1M: 0.9,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/deepseek-ai/DeepSeek-V3.1\": {\n inputPer1M: 0.3,\n outputPer1M: 1,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/deepseek-ai/DeepSeek-V4-Flash\": {\n inputPer1M: 0.1,\n outputPer1M: 0.2,\n cacheReadMultiplier: 0.2,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/deepseek-ai/DeepSeek-V4-Pro\": {\n inputPer1M: 1.3,\n outputPer1M: 2.6,\n cacheReadMultiplier: 0.076923,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/google/gemma-4-26B-A4B-it\": {\n inputPer1M: 0.07,\n outputPer1M: 0.34,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/google/gemma-4-31B-it\": {\n inputPer1M: 0.13,\n outputPer1M: 0.38,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/meta-llama/Llama-3.2-90B-Vision-Instruct\": {\n inputPer1M: 0.35,\n outputPer1M: 0.4,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/meta-llama/Llama-3.3-70B-Instruct\": {\n inputPer1M: 0.23,\n outputPer1M: 0.4,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/meta-llama/Llama-3.3-70B-Instruct-Turbo\": {\n inputPer1M: 0.12,\n outputPer1M: 0.3,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/meta-llama/Meta-Llama-3.1-405B-Instruct\": {\n inputPer1M: 0.8,\n outputPer1M: 0.8,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/meta-llama/Meta-Llama-3.1-70B-Instruct\": {\n inputPer1M: 0.23,\n outputPer1M: 0.4,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo\": {\n inputPer1M: 0.02,\n outputPer1M: 0.05,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/microsoft/phi-4\": {\n inputPer1M: 0.07,\n outputPer1M: 0.14,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/moonshotai/Kimi-K2.6\": {\n inputPer1M: 0.75,\n outputPer1M: 3.5,\n cacheReadMultiplier: 0.2,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/nvidia/NVIDIA-Nemotron-3-Super-120B-A12B\": {\n inputPer1M: 0.1,\n outputPer1M: 0.5,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/nvidia/Nemotron-3-Nano-30B-A3B\": {\n inputPer1M: 0.05,\n outputPer1M: 0.2,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/zai-org/GLM-4.5\": {\n inputPer1M: 0.6,\n outputPer1M: 2.2,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/zai-org/GLM-4.5-Air\": {\n inputPer1M: 0.2,\n outputPer1M: 1.1,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepinfra/zai-org/GLM-5.1\": {\n inputPer1M: 1.05,\n outputPer1M: 3.5,\n cacheReadMultiplier: 0.195238,\n vendor: \"deepinfra\",\n provider: \"requesty\",\n },\n \"deepseek/deepseek-chat\": {\n inputPer1M: 0.14,\n outputPer1M: 0.28,\n cacheReadMultiplier: 0.2,\n vendor: \"deepseek\",\n provider: \"requesty\",\n },\n \"deepseek/deepseek-reasoner\": {\n inputPer1M: 0.14,\n outputPer1M: 0.28,\n cacheReadMultiplier: 0.2,\n vendor: \"deepseek\",\n provider: \"requesty\",\n },\n \"deepseek/deepseek-v4-flash\": {\n inputPer1M: 0.14,\n outputPer1M: 0.28,\n cacheReadMultiplier: 0.02,\n vendor: \"deepseek\",\n provider: \"requesty\",\n },\n \"deepseek/deepseek-v4-pro\": {\n inputPer1M: 0.435,\n outputPer1M: 0.87,\n cacheReadMultiplier: 0.033333,\n vendor: \"deepseek\",\n provider: \"requesty\",\n },\n \"doubleword/deepseek-v4-flash\": {\n inputPer1M: 0.14,\n outputPer1M: 0.28,\n vendor: \"doubleword\",\n provider: \"requesty\",\n },\n \"doubleword/deepseek-v4-flash:flex\": {\n inputPer1M: 0.1,\n outputPer1M: 0.2,\n vendor: \"doubleword\",\n provider: \"requesty\",\n },\n \"doubleword/deepseek-v4-pro\": {\n inputPer1M: 1.74,\n outputPer1M: 3.48,\n vendor: \"doubleword\",\n provider: \"requesty\",\n },\n \"doubleword/deepseek-v4-pro:flex\": {\n inputPer1M: 1.31,\n outputPer1M: 2.75,\n vendor: \"doubleword\",\n provider: \"requesty\",\n },\n \"doubleword/glm-5.2\": {\n inputPer1M: 1.4,\n outputPer1M: 4.4,\n vendor: \"doubleword\",\n provider: \"requesty\",\n },\n \"doubleword/glm-5.2:flex\": {\n inputPer1M: 1.05,\n outputPer1M: 3.3,\n vendor: \"doubleword\",\n provider: \"requesty\",\n },\n \"doubleword/nvidia-nemotron-3-ultra\": {\n inputPer1M: 0.5,\n outputPer1M: 2.5,\n vendor: \"doubleword\",\n provider: \"requesty\",\n },\n \"doubleword/nvidia-nemotron-3-ultra:flex\": {\n inputPer1M: 0.37,\n outputPer1M: 1.87,\n vendor: \"doubleword\",\n provider: \"requesty\",\n },\n \"fireworks/deepseek-v4-flash\": {\n inputPer1M: 0.14,\n outputPer1M: 0.28,\n cacheReadMultiplier: 0.214286,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/deepseek-v4-pro\": {\n inputPer1M: 1.74,\n outputPer1M: 3.48,\n cacheReadMultiplier: 0.086207,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/glm-5.1\": {\n inputPer1M: 1.4,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.185714,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/glm-5.2\": {\n inputPer1M: 1.4,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.1,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/glm-5.2-fast\": {\n inputPer1M: 2.1,\n outputPer1M: 6.6,\n cacheReadMultiplier: 0.1,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/gpt-oss-120b\": {\n inputPer1M: 0.15,\n outputPer1M: 0.6,\n cacheReadMultiplier: 0.1,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/gpt-oss-20b\": {\n inputPer1M: 0.07,\n outputPer1M: 0.3,\n cacheReadMultiplier: 0.5,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/kimi-k2.6\": {\n inputPer1M: 0.95,\n outputPer1M: 4,\n cacheReadMultiplier: 0.168421,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/kimi-k2.7-code\": {\n inputPer1M: 0.95,\n outputPer1M: 4,\n cacheReadMultiplier: 0.2,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/minimax-m2.7\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n cacheReadMultiplier: 0.2,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/minimax-m3\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n cacheReadMultiplier: 0.2,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/nemotron-3-ultra-nvfp4\": {\n inputPer1M: 0.6,\n outputPer1M: 2.4,\n cacheReadMultiplier: 0.2,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"fireworks/qwen3.7-plus\": {\n inputPer1M: 0.4,\n outputPer1M: 1.6,\n cacheReadMultiplier: 0.2,\n vendor: \"fireworks\",\n provider: \"requesty\",\n },\n \"google/gemini-2.5-flash\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"google\",\n provider: \"requesty\",\n },\n \"google/gemini-2.5-flash-lite\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"google\",\n provider: \"requesty\",\n },\n \"google/gemini-2.5-pro\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"google\",\n provider: \"requesty\",\n },\n \"google/gemini-3-flash-preview\": {\n inputPer1M: 0.5,\n outputPer1M: 3,\n cacheReadMultiplier: 0.1,\n vendor: \"google\",\n provider: \"requesty\",\n },\n \"google/gemini-3-pro-preview\": {\n inputPer1M: 2,\n outputPer1M: 12,\n cacheReadMultiplier: 0.1,\n vendor: \"google\",\n provider: \"requesty\",\n },\n \"google/gemini-3.1-flash-image-preview\": {\n inputPer1M: 0.5,\n outputPer1M: 2,\n cacheReadMultiplier: 0,\n vendor: \"google\",\n provider: \"requesty\",\n },\n \"google/gemini-3.1-flash-lite\": {\n inputPer1M: 0.25,\n outputPer1M: 1.5,\n cacheReadMultiplier: 0.1,\n vendor: \"google\",\n provider: \"requesty\",\n },\n \"google/gemini-3.1-pro-preview\": {\n inputPer1M: 2,\n outputPer1M: 12,\n cacheReadMultiplier: 0.1,\n vendor: \"google\",\n provider: \"requesty\",\n },\n \"groq/openai/gpt-oss-120b\": {\n inputPer1M: 0.15,\n outputPer1M: 0.75,\n vendor: \"groq\",\n provider: \"requesty\",\n },\n \"groq/openai/gpt-oss-20b\": {\n inputPer1M: 0.1,\n outputPer1M: 0.5,\n vendor: \"groq\",\n provider: \"requesty\",\n },\n \"inceptron/glm-5.2\": {\n inputPer1M: 1.2,\n outputPer1M: 4.2,\n cacheReadMultiplier: 0.216667,\n vendor: \"inceptron\",\n provider: \"requesty\",\n },\n \"inceptron/kimi-k2.6\": {\n inputPer1M: 0.8,\n outputPer1M: 3.5,\n cacheReadMultiplier: 0.25,\n vendor: \"inceptron\",\n provider: \"requesty\",\n },\n \"inceptron/kimi-k2.7-Code\": {\n inputPer1M: 0.75,\n outputPer1M: 3.5,\n cacheReadMultiplier: 0.266667,\n vendor: \"inceptron\",\n provider: \"requesty\",\n },\n \"inceptron/minimax-m2.5\": {\n inputPer1M: 0.28,\n outputPer1M: 1.1,\n cacheReadMultiplier: 0.107143,\n vendor: \"inceptron\",\n provider: \"requesty\",\n },\n \"minimaxi/MiniMax-M2\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n vendor: \"minimaxi\",\n provider: \"requesty\",\n },\n \"minimaxi/MiniMax-M2.5\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n cacheReadMultiplier: 0.2,\n vendor: \"minimaxi\",\n provider: \"requesty\",\n },\n \"minimaxi/MiniMax-M2.5-highspeed\": {\n inputPer1M: 0.6,\n outputPer1M: 2.4,\n cacheReadMultiplier: 0.1,\n vendor: \"minimaxi\",\n provider: \"requesty\",\n },\n \"minimaxi/MiniMax-M2.7\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n cacheReadMultiplier: 0.2,\n vendor: \"minimaxi\",\n provider: \"requesty\",\n },\n \"minimaxi/MiniMax-M2.7-highspeed\": {\n inputPer1M: 0.6,\n outputPer1M: 2.4,\n cacheReadMultiplier: 0.1,\n vendor: \"minimaxi\",\n provider: \"requesty\",\n },\n \"minimaxi/minimax-m3\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n cacheReadMultiplier: 0.2,\n vendor: \"minimaxi\",\n provider: \"requesty\",\n },\n \"mistral/codestral-latest\": {\n inputPer1M: 0.3,\n outputPer1M: 0.9,\n vendor: \"mistral\",\n provider: \"requesty\",\n },\n \"mistral/devstral-latest\": {\n inputPer1M: 0.4,\n outputPer1M: 2,\n vendor: \"mistral\",\n provider: \"requesty\",\n },\n \"mistral/devstral-small-latest\": {\n inputPer1M: 0.1,\n outputPer1M: 0.3,\n vendor: \"mistral\",\n provider: \"requesty\",\n },\n \"mistral/mistral-large-latest\": {\n inputPer1M: 0.5,\n outputPer1M: 1.5,\n vendor: \"mistral\",\n provider: \"requesty\",\n },\n \"mistral/mistral-medium-3-5\": {\n inputPer1M: 1.5,\n outputPer1M: 7.5,\n vendor: \"mistral\",\n provider: \"requesty\",\n },\n \"mistral/mistral-medium-latest\": {\n inputPer1M: 0.4,\n outputPer1M: 2,\n vendor: \"mistral\",\n provider: \"requesty\",\n },\n \"mistral/mistral-small-2503\": {\n inputPer1M: 0.1,\n outputPer1M: 0.3,\n vendor: \"mistral\",\n provider: \"requesty\",\n },\n \"mistral/mistral-small-2603\": {\n inputPer1M: 0.15,\n outputPer1M: 0.6,\n vendor: \"mistral\",\n provider: \"requesty\",\n },\n \"mistral/mistral-small-latest\": {\n inputPer1M: 0.15,\n outputPer1M: 0.6,\n vendor: \"mistral\",\n provider: \"requesty\",\n },\n \"mistral/open-mistral-7b\": {\n inputPer1M: 0.25,\n outputPer1M: 0.25,\n vendor: \"mistral\",\n provider: \"requesty\",\n },\n \"moonshot/kimi-k2.5\": {\n inputPer1M: 0.6,\n outputPer1M: 3,\n cacheReadMultiplier: 0.166667,\n vendor: \"moonshot\",\n provider: \"requesty\",\n },\n \"moonshot/kimi-k2.6\": {\n inputPer1M: 0.95,\n outputPer1M: 4,\n cacheReadMultiplier: 0.168421,\n vendor: \"moonshot\",\n provider: \"requesty\",\n },\n \"moonshot/kimi-k2.7-code\": {\n inputPer1M: 0.95,\n outputPer1M: 4,\n cacheReadMultiplier: 0.2,\n vendor: \"moonshot\",\n provider: \"requesty\",\n },\n \"moonshot/kimi-k3\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"moonshot\",\n provider: \"requesty\",\n },\n \"nebius/deepseek-ai/deepseek-v4-pro\": {\n inputPer1M: 1.75,\n outputPer1M: 3.5,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/glm-5.2\": {\n inputPer1M: 1.4,\n outputPer1M: 4.4,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/google/gemma-3-27b-it\": {\n inputPer1M: 0.1,\n outputPer1M: 0.3,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/meta-llama/Llama-3.3-70B-Instruct\": {\n inputPer1M: 0.13,\n outputPer1M: 0.4,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/minimaxi/minimax-m2.5\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/moonshotai/kimi-k2.6\": {\n inputPer1M: 0.95,\n outputPer1M: 4,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/nousresearch/hermes-4-405b\": {\n inputPer1M: 1,\n outputPer1M: 3,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/nousresearch/hermes-4-70b\": {\n inputPer1M: 0.13,\n outputPer1M: 0.4,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/nvidia/nemotron-3-nano-omni\": {\n inputPer1M: 0.06,\n outputPer1M: 0.24,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/nvidia/nemotron-3-super-120b-a12b\": {\n inputPer1M: 0.3,\n outputPer1M: 0.9,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/nvidia/nemotron-3-ultra-550b-a55b\": {\n inputPer1M: 1,\n outputPer1M: 3,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/openai/gpt-oss-120b\": {\n inputPer1M: 0.15,\n outputPer1M: 0.6,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/qwen/qwen3-235b-a22b-instruct-2507\": {\n inputPer1M: 0.2,\n outputPer1M: 0.6,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/qwen/qwen3-30b-a3b-instruct-2507\": {\n inputPer1M: 0.1,\n outputPer1M: 0.3,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/qwen/qwen3-32b\": {\n inputPer1M: 0.1,\n outputPer1M: 0.3,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/qwen/qwen3-next-80b-a3b-thinking\": {\n inputPer1M: 0.15,\n outputPer1M: 1.2,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/qwen/qwen3.5-397b-a17b\": {\n inputPer1M: 0.6,\n outputPer1M: 3.6,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"nebius/zai-org/glm-5.1\": {\n inputPer1M: 1.4,\n outputPer1M: 4.4,\n vendor: \"nebius\",\n provider: \"requesty\",\n },\n \"novita/GLM-5\": {\n inputPer1M: 1,\n outputPer1M: 3.2,\n cacheReadMultiplier: 0.2,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/Sao10K/L3-8B-Stheno-v3.2\": {\n inputPer1M: 0.05,\n outputPer1M: 0.05,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/baichuan/baichuan-m2-32b\": {\n inputPer1M: 0.07,\n outputPer1M: 0.07,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/deepseek/deepseek-r1\": {\n inputPer1M: 4,\n outputPer1M: 4,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/deepseek/deepseek-r1-distill-llama-70b\": {\n inputPer1M: 0.8,\n outputPer1M: 0.8,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/deepseek/deepseek-r1-turbo\": {\n inputPer1M: 0.7,\n outputPer1M: 2.5,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/deepseek/deepseek-v3-0324\": {\n inputPer1M: 0.4,\n outputPer1M: 1.3,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/deepseek/deepseek-v3-turbo\": {\n inputPer1M: 0.4,\n outputPer1M: 1.3,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/deepseek/deepseek-v3.2\": {\n inputPer1M: 0.269,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.5,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/deepseek/deepseek-v4-flash\": {\n inputPer1M: 0.14,\n outputPer1M: 0.28,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/deepseek/deepseek_v3\": {\n inputPer1M: 0.89,\n outputPer1M: 0.89,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/google/gemma-4-26b-a4b-it\": {\n inputPer1M: 0.13,\n outputPer1M: 0.4,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/gryphe/mythomax-l2-13b\": {\n inputPer1M: 0.09,\n outputPer1M: 0.09,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/inclusionai/ling-2.6-1t\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/inclusionai/ling-2.6-flash\": {\n inputPer1M: 0.1,\n outputPer1M: 0.3,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/inclusionai/ring-2.6-1t\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/kwaipilot/kat-coder-pro\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/meta-llama/llama-3.1-8b-instruct\": {\n inputPer1M: 0.05,\n outputPer1M: 0.05,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/meta-llama/llama-3.3-70b-instruct\": {\n inputPer1M: 0.39,\n outputPer1M: 0.39,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/meta-llama/llama-4-maverick-17b-128e-instruct-fp8\": {\n inputPer1M: 0.2,\n outputPer1M: 0.85,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/microsoft/wizardlm-2-8x22b\": {\n inputPer1M: 0.62,\n outputPer1M: 0.62,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/minimax/minimax-m2.7\": {\n inputPer1M: 0.3,\n outputPer1M: 1.2,\n cacheReadMultiplier: 0.2,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/minimax/minimax-m2.7-highspeed\": {\n inputPer1M: 0.6,\n outputPer1M: 2.4,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/mistralai/mistral-nemo\": {\n inputPer1M: 0.17,\n outputPer1M: 0.17,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/moonshotai/kimi-k2-instruct\": {\n inputPer1M: 0.57,\n outputPer1M: 2.3,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/qwen/qwen-2.5-72b-instruct\": {\n inputPer1M: 0.38,\n outputPer1M: 0.4,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/qwen/qwen3-235b-a22b-fp8\": {\n inputPer1M: 0.2,\n outputPer1M: 0.8,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/qwen/qwen3.5-397b-a17b\": {\n inputPer1M: 0.6,\n outputPer1M: 3.6,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/sao10k/l3-8b-lunaris\": {\n inputPer1M: 0.05,\n outputPer1M: 0.05,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/sao10k/l31-70b-euryale-v2.2\": {\n inputPer1M: 1.48,\n outputPer1M: 1.48,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/zai-org/glm-4.6\": {\n inputPer1M: 0.6,\n outputPer1M: 2.2,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"novita/zai-org/glm-5.1\": {\n inputPer1M: 1.38,\n outputPer1M: 4.4,\n vendor: \"novita\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-4.1\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-4.1-mini\": {\n inputPer1M: 0.4,\n outputPer1M: 1.6,\n cacheReadMultiplier: 0.25,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-4.1-nano\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5-codex\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5-mini\": {\n inputPer1M: 0.25,\n outputPer1M: 2,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5-nano\": {\n inputPer1M: 0.05,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5-pro\": {\n inputPer1M: 15,\n outputPer1M: 120,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.1-codex\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.2\": {\n inputPer1M: 1.75,\n outputPer1M: 14,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.2-codex\": {\n inputPer1M: 1.75,\n outputPer1M: 14,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.3-chat\": {\n inputPer1M: 1.75,\n outputPer1M: 14,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.3-codex\": {\n inputPer1M: 1.75,\n outputPer1M: 14,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.4\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.4-mini\": {\n inputPer1M: 0.75,\n outputPer1M: 4.5,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.4-nano\": {\n inputPer1M: 0.2,\n outputPer1M: 1.25,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.4-pro\": {\n inputPer1M: 30,\n outputPer1M: 180,\n cacheReadMultiplier: 1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.5\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.5-pro\": {\n inputPer1M: 30,\n outputPer1M: 180,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.6-luna\": {\n inputPer1M: 1,\n outputPer1M: 6,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.6-sol\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/gpt-5.6-terra\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/o3-mini\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.5,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/o3-pro\": {\n inputPer1M: 20,\n outputPer1M: 80,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai-responses/o4-mini\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.25,\n vendor: \"openai-responses\",\n provider: \"requesty\",\n },\n \"openai/gpt-4.1\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-4.1-mini\": {\n inputPer1M: 0.4,\n outputPer1M: 1.6,\n cacheReadMultiplier: 0.25,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-4.1-nano\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.25,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-4o\": {\n inputPer1M: 2.5,\n outputPer1M: 10,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-4o-2024-05-13\": {\n inputPer1M: 2.5,\n outputPer1M: 10,\n cacheReadMultiplier: 1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-4o-2024-08-06\": {\n inputPer1M: 2.5,\n outputPer1M: 10,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-4o-2024-11-20\": {\n inputPer1M: 2.5,\n outputPer1M: 10,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-4o-mini\": {\n inputPer1M: 0.15,\n outputPer1M: 0.6,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5-chat\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5-mini\": {\n inputPer1M: 0.25,\n outputPer1M: 2,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5-mini:flex\": {\n inputPer1M: 0.125,\n outputPer1M: 1,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5-mini:priority\": {\n inputPer1M: 0.45,\n outputPer1M: 3.6,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5-nano\": {\n inputPer1M: 0.05,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5-nano:flex\": {\n inputPer1M: 0.025,\n outputPer1M: 0.2,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.1-chat\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.2\": {\n inputPer1M: 1.75,\n outputPer1M: 14,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.2-chat\": {\n inputPer1M: 1.75,\n outputPer1M: 14,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.3-chat\": {\n inputPer1M: 1.75,\n outputPer1M: 14,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.4\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.4-mini\": {\n inputPer1M: 0.75,\n outputPer1M: 4.5,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.4-nano\": {\n inputPer1M: 0.2,\n outputPer1M: 1.25,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.5\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.6-luna\": {\n inputPer1M: 1,\n outputPer1M: 6,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.6-sol\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5.6-terra\": {\n inputPer1M: 2.5,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5:flex\": {\n inputPer1M: 0.625,\n outputPer1M: 5,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/gpt-5:priority\": {\n inputPer1M: 2.5,\n outputPer1M: 20,\n cacheReadMultiplier: 0.1,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o1\": {\n inputPer1M: 15,\n outputPer1M: 60,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o1:high\": {\n inputPer1M: 15,\n outputPer1M: 60,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o1:low\": {\n inputPer1M: 15,\n outputPer1M: 60,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o1:medium\": {\n inputPer1M: 15,\n outputPer1M: 60,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o3\": {\n inputPer1M: 2,\n outputPer1M: 8,\n cacheReadMultiplier: 0.25,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o3-mini\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o3-mini:high\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o3-mini:low\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o3-mini:medium\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.5,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o3:flex\": {\n inputPer1M: 1,\n outputPer1M: 4,\n cacheReadMultiplier: 0.25,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o4-mini\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.25,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o4-mini:flex\": {\n inputPer1M: 0.55,\n outputPer1M: 2.2,\n cacheReadMultiplier: 0.250909,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o4-mini:high\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.25,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o4-mini:low\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.25,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"openai/o4-mini:medium\": {\n inputPer1M: 1.1,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.25,\n vendor: \"openai\",\n provider: \"requesty\",\n },\n \"parasail/google/gemma-4-26B-A4B-it\": {\n inputPer1M: 0.13,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.384615,\n vendor: \"parasail\",\n provider: \"requesty\",\n },\n \"parasail/kimi-k2.7-code\": {\n inputPer1M: 0.75,\n outputPer1M: 3.5,\n cacheReadMultiplier: 0.213333,\n vendor: \"parasail\",\n provider: \"requesty\",\n },\n \"parasail/parasail-deepseek-v4-flash\": {\n inputPer1M: 0.14,\n outputPer1M: 0.28,\n cacheReadMultiplier: 0.5,\n vendor: \"parasail\",\n provider: \"requesty\",\n },\n \"parasail/parasail-gemma3-27b-it\": {\n inputPer1M: 0.3,\n outputPer1M: 0.5,\n vendor: \"parasail\",\n provider: \"requesty\",\n },\n \"parasail/parasail-qwen25-vl-72b-instruct\": {\n inputPer1M: 0.7,\n outputPer1M: 0.7,\n vendor: \"parasail\",\n provider: \"requesty\",\n },\n \"parasail/parasail-qwen3-235b-a22b-instruct-2507\": {\n inputPer1M: 0.15,\n outputPer1M: 0.85,\n vendor: \"parasail\",\n provider: \"requesty\",\n },\n \"perplexity/sonar\": {\n inputPer1M: 1,\n outputPer1M: 1,\n vendor: \"perplexity\",\n provider: \"requesty\",\n },\n \"perplexity/sonar-pro\": {\n inputPer1M: 3,\n outputPer1M: 15,\n vendor: \"perplexity\",\n provider: \"requesty\",\n },\n \"perplexity/sonar-reasoning-pro\": {\n inputPer1M: 2,\n outputPer1M: 8,\n vendor: \"perplexity\",\n provider: \"requesty\",\n },\n \"sakana/fugu-ultra\": {\n inputPer1M: 5,\n outputPer1M: 30,\n cacheReadMultiplier: 0.1,\n vendor: \"sakana\",\n provider: \"requesty\",\n },\n \"sference/glm-5.2\": {\n inputPer1M: 1.2,\n outputPer1M: 4.2,\n cacheReadMultiplier: 0.216667,\n vendor: \"sference\",\n provider: \"requesty\",\n },\n \"sference/thinkingcap-qwen3.6-27b\": {\n inputPer1M: 0.4,\n outputPer1M: 3,\n vendor: \"sference\",\n provider: \"requesty\",\n },\n \"tensorx/deepseek-v4-flash\": {\n inputPer1M: 0.15,\n outputPer1M: 0.3,\n cacheReadMultiplier: 0.266667,\n vendor: \"tensorx\",\n provider: \"requesty\",\n },\n \"tensorx/deepseek-v4-pro\": {\n inputPer1M: 1.75,\n outputPer1M: 3.5,\n cacheReadMultiplier: 0.251429,\n vendor: \"tensorx\",\n provider: \"requesty\",\n },\n \"tensorx/glm-5.2\": {\n inputPer1M: 1.5,\n outputPer1M: 4.5,\n cacheReadMultiplier: 0.253333,\n vendor: \"tensorx\",\n provider: \"requesty\",\n },\n \"tensorx/kimi-k2.7-code\": {\n inputPer1M: 1.25,\n outputPer1M: 4.5,\n cacheReadMultiplier: 0.248,\n vendor: \"tensorx\",\n provider: \"requesty\",\n },\n \"tensorx/minimax-m3\": {\n inputPer1M: 0.4,\n outputPer1M: 2,\n cacheReadMultiplier: 0.25,\n vendor: \"tensorx\",\n provider: \"requesty\",\n },\n \"thinkingmachines/inkling\": {\n inputPer1M: 1.87,\n outputPer1M: 4.68,\n cacheReadMultiplier: 0.2,\n vendor: \"thinkingmachines\",\n provider: \"requesty\",\n },\n \"thinkingmachines/inkling-256k\": {\n inputPer1M: 1.87,\n outputPer1M: 4.68,\n cacheReadMultiplier: 0.2,\n vendor: \"thinkingmachines\",\n provider: \"requesty\",\n },\n \"vertex/claude-fable-5\": {\n inputPer1M: 10,\n outputPer1M: 50,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-fable-5@eu\": {\n inputPer1M: 11,\n outputPer1M: 55,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-haiku-4-5\": {\n inputPer1M: 1,\n outputPer1M: 5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-haiku-4-5@europe-west1\": {\n inputPer1M: 1.1,\n outputPer1M: 5.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-haiku-4-5@us-east5\": {\n inputPer1M: 1.1,\n outputPer1M: 5.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4\": {\n inputPer1M: 15,\n outputPer1M: 75,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-1\": {\n inputPer1M: 15,\n outputPer1M: 75,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-1@us-east5\": {\n inputPer1M: 15,\n outputPer1M: 75,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-5\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-5@europe-west1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-5@us-east5\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-6\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-6@europe-west1\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-6@us-east5\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-7\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-7@eu\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-7@us\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-8\": {\n inputPer1M: 5,\n outputPer1M: 25,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-8@eu\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4-8@us\": {\n inputPer1M: 5.5,\n outputPer1M: 27.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-opus-4@us-east5\": {\n inputPer1M: 15,\n outputPer1M: 75,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-4\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-4-5\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-4-5@europe-west1\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-4-5@us-east5\": {\n inputPer1M: 3.3,\n outputPer1M: 16.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-4-6\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-4-6@europe-west1\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-4-6@us-east5\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-4@europe-west1\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-4@us-east5\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-5\": {\n inputPer1M: 2,\n outputPer1M: 10,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-5@eu\": {\n inputPer1M: 2.2,\n outputPer1M: 11,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/claude-sonnet-5@us\": {\n inputPer1M: 2.2,\n outputPer1M: 11,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/deepseek-v3.2\": {\n inputPer1M: 0.56,\n outputPer1M: 1.68,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@europe-central2\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@europe-north1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@europe-southwest1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@europe-west1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@europe-west4\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@europe-west8\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@us-central1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@us-east1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@us-east4\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@us-east5\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@us-south1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@us-west1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-image@us-west4\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-lite\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-lite@europe-central2\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-lite@europe-north1\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-lite@europe-west1\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-lite@europe-west4\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-lite@europe-west8\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-lite@us-central1\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-lite@us-east1\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-lite@us-east5\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-lite@us-south1\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash-lite@us-west1\": {\n inputPer1M: 0.1,\n outputPer1M: 0.4,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash@europe-central2\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash@europe-north1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash@europe-west1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash@europe-west4\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash@europe-west8\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash@us-central1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash@us-east1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash@us-east5\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash@us-south1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-flash@us-west1\": {\n inputPer1M: 0.3,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.25,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-pro\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-pro@europe-central2\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-pro@europe-north1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-pro@europe-west1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-pro@europe-west4\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-pro@europe-west8\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-pro@us-central1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-pro@us-east1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-pro@us-east5\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-pro@us-south1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-2.5-pro@us-west1\": {\n inputPer1M: 1.25,\n outputPer1M: 10,\n cacheReadMultiplier: 0.248,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3-flash-preview\": {\n inputPer1M: 0.5,\n outputPer1M: 3,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3-flash-preview:flex\": {\n inputPer1M: 0.25,\n outputPer1M: 1.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3-pro-image-preview\": {\n inputPer1M: 2,\n outputPer1M: 12,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3-pro-preview\": {\n inputPer1M: 2,\n outputPer1M: 12,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3.1-flash-image-preview\": {\n inputPer1M: 0.5,\n outputPer1M: 2,\n cacheReadMultiplier: 0,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3.1-flash-lite\": {\n inputPer1M: 0.25,\n outputPer1M: 1.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3.1-flash-lite@eu\": {\n inputPer1M: 0.25,\n outputPer1M: 1.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3.1-flash-lite@us\": {\n inputPer1M: 0.25,\n outputPer1M: 1.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3.1-pro-preview\": {\n inputPer1M: 2,\n outputPer1M: 12,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3.1-pro-preview:flex\": {\n inputPer1M: 1,\n outputPer1M: 6,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3.5-flash\": {\n inputPer1M: 1.5,\n outputPer1M: 9,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3.5-flash@eu\": {\n inputPer1M: 1.5,\n outputPer1M: 9,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/gemini-3.5-flash@us\": {\n inputPer1M: 1.5,\n outputPer1M: 9,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"vertex/kimi-k2\": {\n inputPer1M: 0.6,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.1,\n vendor: \"vertex\",\n provider: \"requesty\",\n },\n \"xai/grok-3\": {\n inputPer1M: 5,\n outputPer1M: 25,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-3-mini\": {\n inputPer1M: 0.3,\n outputPer1M: 0.5,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-3-mini:high\": {\n inputPer1M: 0.3,\n outputPer1M: 0.5,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-3-mini:low\": {\n inputPer1M: 0.3,\n outputPer1M: 0.5,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-4\": {\n inputPer1M: 3,\n outputPer1M: 15,\n cacheReadMultiplier: 0.25,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-4-1-fast-non-reasoning\": {\n inputPer1M: 0.2,\n outputPer1M: 0.5,\n cacheReadMultiplier: 0.25,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-4-1-fast-reasoning\": {\n inputPer1M: 0.2,\n outputPer1M: 0.5,\n cacheReadMultiplier: 0.25,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-4-fast\": {\n inputPer1M: 0.2,\n outputPer1M: 0.5,\n cacheReadMultiplier: 0.25,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-4-fast-non-reasoning\": {\n inputPer1M: 0.2,\n outputPer1M: 0.5,\n cacheReadMultiplier: 0.25,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-4.2-beta\": {\n inputPer1M: 2,\n outputPer1M: 6,\n cacheReadMultiplier: 0.1,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-4.3\": {\n inputPer1M: 1.25,\n outputPer1M: 2.5,\n cacheReadMultiplier: 0.16,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-4.5\": {\n inputPer1M: 2,\n outputPer1M: 6,\n cacheReadMultiplier: 0.25,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-build-0.1\": {\n inputPer1M: 1,\n outputPer1M: 2,\n cacheReadMultiplier: 0.1,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xai/grok-code-fast-1\": {\n inputPer1M: 0.2,\n outputPer1M: 1.5,\n cacheReadMultiplier: 0.1,\n vendor: \"xai\",\n provider: \"requesty\",\n },\n \"xiaomi/mimo-v2.5\": {\n inputPer1M: 0.14,\n outputPer1M: 0.28,\n cacheReadMultiplier: 0.02,\n vendor: \"xiaomi\",\n provider: \"requesty\",\n },\n \"xiaomi/mimo-v2.5-pro\": {\n inputPer1M: 0.435,\n outputPer1M: 0.87,\n cacheReadMultiplier: 0.008276,\n vendor: \"xiaomi\",\n provider: \"requesty\",\n },\n \"zai/GLM-4.5\": {\n inputPer1M: 0.6,\n outputPer1M: 2.2,\n vendor: \"zai\",\n provider: \"requesty\",\n },\n \"zai/GLM-4.6\": {\n inputPer1M: 0.6,\n outputPer1M: 2.2,\n vendor: \"zai\",\n provider: \"requesty\",\n },\n \"zai/GLM-4.7\": {\n inputPer1M: 0.6,\n outputPer1M: 2.2,\n vendor: \"zai\",\n provider: \"requesty\",\n },\n \"zai/GLM-5\": {\n inputPer1M: 1,\n outputPer1M: 3.2,\n cacheReadMultiplier: 0.2,\n vendor: \"zai\",\n provider: \"requesty\",\n },\n \"zai/glm-5.1\": {\n inputPer1M: 1.4,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.185714,\n vendor: \"zai\",\n provider: \"requesty\",\n },\n \"zai/glm-5.2\": {\n inputPer1M: 1.4,\n outputPer1M: 4.4,\n cacheReadMultiplier: 0.185714,\n vendor: \"zai\",\n provider: \"requesty\",\n },\n}\n\n/** Provider slugs treated as Requesty routes by the picker. */\nexport const REQUESTY_PROVIDERS: readonly string[] = [\n \"alibaba\",\n \"anthropic\",\n \"azure\",\n \"bedrock\",\n \"coding\",\n \"deepinfra\",\n \"deepseek\",\n \"doubleword\",\n \"fireworks\",\n \"google\",\n \"groq\",\n \"inceptron\",\n \"minimaxi\",\n \"mistral\",\n \"moonshot\",\n \"nebius\",\n \"novita\",\n \"openai\",\n \"openai-responses\",\n \"parasail\",\n \"perplexity\",\n \"sakana\",\n \"sference\",\n \"tensorx\",\n \"thinkingmachines\",\n \"vertex\",\n \"xai\",\n \"xiaomi\",\n \"zai\",\n]\n","/**\n * Route-aware model identity.\n *\n * Canonical reference syntax:\n * vendor/product[@route]\n *\n * A model product (who built it + what product) is separate from its serving\n * route (how we reach it / how we are billed).\n *\n * Examples:\n * openai/gpt-4o → vendor openai, product gpt-4o, route openai (direct)\n * openai/gpt-4o@openrouter → same product, routed through OpenRouter\n * openai/gpt-4o@agentik-proxy → same product, operator-configured proxy route\n *\n * Design invariants:\n * - `vendor` is who built the model; `route` is how we reach it.\n * - `provider/model` strings parse as vendor/product with implicit route = vendor\n * (backward-compatible reference form).\n * - Unscoped `xx@yy` is rejected.\n * - Route metadata (pricing, limits, transport, availability) is separate from\n * product metadata and computed at resolution time.\n * - The abstraction is generic across model kinds; only LLM has a concrete\n * resolver today.\n */\n\nimport type { LLMPricing } from \"../llm/catalog.js\"\nimport {\n resolvePricing,\n resolveAlias,\n DEFAULT_PRICING,\n} from \"../llm/catalog.js\"\nimport { OPENROUTER_ROUTES } from \"../llm/openrouter-routes.generated.js\"\nimport { REQUESTY_ROUTES } from \"../llm/requesty-routes.generated.js\"\n\n// ── Parser ─────────────────────────────────────────────────────────────────\n\nconst SEGMENT_RE = /^[a-zA-Z0-9_.-]+$/\nconst REF_RE = /^([^/@]+)\\/([^/@]+)(?:@([^/@]+))?$/\n\nexport interface ModelRef {\n /** The original, trimmed string. */\n raw: string\n /** Model author / builder (permanent identity). */\n vendor: string\n /** Specific model product. */\n product: string\n /** Routing target — defaults to vendor for direct vendor access. */\n route: string\n}\n\nexport class InvalidModelRefError extends Error {\n readonly name = \"InvalidModelRefError\"\n constructor(\n public readonly raw: string,\n message: string\n ) {\n super(`Invalid model reference \"${raw}\": ${message}`)\n }\n}\n\n/**\n * Parse a model reference in `vendor/product[@route]` form.\n *\n * - `openai/gpt-4o` → `{ vendor: \"openai\", product: \"gpt-4o\", route: \"openai\" }`\n * - `openai/gpt-4o@openrouter` → route \"openrouter\"\n *\n * Rejects empty strings, unscoped `@` refs, missing segments, and segments\n * containing `/` or `@`.\n */\nexport function parseModelRef(raw: string): ModelRef {\n const input = raw.trim()\n if (input.length === 0) {\n throw new InvalidModelRefError(raw, \"model reference is empty\")\n }\n\n // Reject unscoped `xx@yy` before attempting the slash-based regex.\n if (input.includes(\"@\") && !input.includes(\"/\")) {\n throw new InvalidModelRefError(\n raw,\n \"unscoped @ route is not allowed; use vendor/product[@route]\"\n )\n }\n\n const match = REF_RE.exec(input)\n if (!match) {\n throw new InvalidModelRefError(\n raw,\n \"expected vendor/product[@route] (e.g. openai/gpt-4o or openai/gpt-4o@openrouter)\"\n )\n }\n\n const vendor = match[1]!.trim()\n const product = match[2]!.trim()\n const route = (match[3] ?? vendor).trim()\n\n for (const [label, value] of [\n [\"vendor\", vendor],\n [\"product\", product],\n [\"route\", route],\n ] as const) {\n if (value.length === 0) {\n throw new InvalidModelRefError(raw, `${label} segment is empty`)\n }\n if (!SEGMENT_RE.test(value)) {\n throw new InvalidModelRefError(\n raw,\n `${label} \"${value}\" contains invalid characters (no '/' or '@')`\n )\n }\n }\n\n return { raw: input, vendor, product, route }\n}\n\n/**\n * Format a {@link ModelRef} back to its canonical string.\n * Implicit direct routes omit the `@route` suffix.\n */\nexport function formatModelRef(ref: ModelRef): string {\n if (ref.route === ref.vendor) {\n return `${ref.vendor}/${ref.product}`\n }\n return `${ref.vendor}/${ref.product}@${ref.route}`\n}\n\n/** True when `raw` matches the `vendor/product[@route]` shape. */\nexport function isModelRefString(raw: string): boolean {\n try {\n parseModelRef(raw)\n return true\n } catch {\n return false\n }\n}\n\n// ── Product vs route metadata ──────────────────────────────────────────────\n\nexport interface ModelRouteLimits {\n contextWindow?: number\n maxInputTokens?: number\n maxOutputTokens?: number\n}\n\nexport type ModelRouteAvailability = \"available\" | \"preview\" | \"unavailable\"\n\nexport interface ModelRouteTransport {\n /** API/schema flavor: e.g. \"openai\", \"anthropic\", \"openrouter\", \"custom\". */\n flavor: string\n /** Optional explicit base URL for the route. */\n baseUrl?: string\n}\n\n/** Product metadata — independent of the serving route. */\nexport interface ModelProductMeta {\n vendor: string\n product: string\n /** Canonical product id after alias resolution. */\n canonicalProductId: string\n}\n\n/** Route metadata — pricing, limits, transport, availability. */\nexport interface ModelRouteMeta<TPricing = unknown> {\n route: string\n transport: ModelRouteTransport\n availability: ModelRouteAvailability\n limits: ModelRouteLimits\n pricing: TPricing\n}\n\n/** Fully resolved model route: product identity + route metadata. */\nexport interface ResolvedModelRoute<TPricing = unknown>\n extends ModelProductMeta,\n ModelRouteMeta<TPricing> {\n /** The parsed reference. */\n ref: ModelRef\n}\n\nexport type ResolvedLlmModelRoute = ResolvedModelRoute<LLMPricing>\n\n// ── Custom route config ────────────────────────────────────────────────────\n\n/**\n * Operator-configurable custom route.\n *\n * No credential values live here — only the *name* of an env var (`authEnv`)\n * so adapters can resolve secrets at runtime. `agentik-proxy` is registered\n * through this shape; it is never hardcoded in the catalog. No private\n * models, hosts, or prices are committed.\n */\nexport interface CustomRouteConfig {\n label?: string\n /** API/schema flavor the route speaks. */\n flavor?: string\n /** Base URL the adapter should hit. */\n baseUrl?: string\n /** Name of the env var holding the API key/secret (not the value). */\n authEnv?: string\n availability?: ModelRouteAvailability\n limits?: ModelRouteLimits\n /** Route-level pricing override. Unset fields fall back to product pricing. */\n pricing?: Partial<LLMPricing>\n}\n\nconst customRoutes = new Map<string, CustomRouteConfig>()\n\nexport function registerCustomRoute(\n id: string,\n config: CustomRouteConfig\n): void {\n customRoutes.set(id, config)\n}\n\nexport function resolveCustomRoute(id: string): CustomRouteConfig | undefined {\n return customRoutes.get(id)\n}\n\n/** Test helper: clear all registered custom routes. */\nexport function clearCustomRoutes(): void {\n customRoutes.clear()\n}\n\n// ── LLM route resolution ───────────────────────────────────────────────────\n\n/**\n * Resolve a model reference to an LLM route, distinguishing direct vendor\n * access from explicit router/proxy routes.\n *\n * openai/gpt-4o → direct OpenAI pricing / transport\n * openai/gpt-4o@openrouter → OpenRouter route pricing / transport\n * openai/gpt-4o@requesty → Requesty route pricing / transport\n * openai/gpt-4o@agentik-proxy → custom route config (if registered)\n *\n * Bare legacy ids (e.g. `gpt-4o`, `claude-sonnet-4-5`) are also accepted and\n * resolved through the legacy pricing catalog, with the route inferred from\n * the catalog entry's provider/vendor.\n *\n * Returns `undefined` when the product or route is unknown.\n */\nexport function resolveLlmModelRoute(\n input: string | ModelRef\n): ResolvedLlmModelRoute | undefined {\n const ref =\n typeof input === \"string\"\n ? tryParseOrLegacy(input)\n : { ref: input, legacy: false }\n\n if (!ref) return undefined\n\n const { ref: modelRef, legacy } = ref\n const directPricing = resolvePricing(modelRef.product)\n const canonicalProductId = resolveAlias(modelRef.product)\n\n // ── Direct vendor route ─────────────────────────────────────────────────\n if (modelRef.route === modelRef.vendor) {\n if (!directPricing) return undefined\n return buildLlmRoute(modelRef, canonicalProductId, directPricing, {\n flavor: modelRef.vendor,\n })\n }\n\n // ── OpenRouter route ────────────────────────────────────────────────────\n if (modelRef.route === \"openrouter\") {\n const key = `${modelRef.vendor}/${modelRef.product}`\n const pricing = OPENROUTER_ROUTES[key]\n if (!pricing) return undefined\n return buildLlmRoute(modelRef, canonicalProductId, pricing, {\n flavor: \"openrouter\",\n })\n }\n\n // ── Requesty route ──────────────────────────────────────────────────────\n // Same shape as the OpenRouter branch: the router's own price table is keyed\n // by bare vendor/product, and the route lives in the ref rather than the key,\n // so `openai/gpt-4.1` (direct) and `openai/gpt-4.1@requesty` price\n // independently. REQUESTY_ROUTES is deliberately NOT spread into\n // LLM_PRICING_CATALOG — that map is the legacy bare-id path, and spreading a\n // second router into it would repoint direct-vendor ids at router pricing.\n if (modelRef.route === \"requesty\") {\n const key = `${modelRef.vendor}/${modelRef.product}`\n const pricing = REQUESTY_ROUTES[key]\n if (!pricing) return undefined\n return buildLlmRoute(modelRef, canonicalProductId, pricing, {\n flavor: \"requesty\",\n })\n }\n\n // ── Custom route (e.g. agentik-proxy) ───────────────────────────────────\n const custom = resolveCustomRoute(modelRef.route)\n if (!custom) return undefined\n\n const basePricing = directPricing ?? DEFAULT_PRICING\n const pricing: LLMPricing = {\n ...basePricing,\n ...custom.pricing,\n vendor: custom.pricing?.vendor ?? basePricing.vendor,\n }\n\n return buildLlmRoute(\n modelRef,\n canonicalProductId,\n pricing,\n {\n flavor: custom.flavor ?? \"custom\",\n baseUrl: custom.baseUrl,\n },\n custom\n )\n}\n\nfunction buildLlmRoute(\n ref: ModelRef,\n canonicalProductId: string,\n pricing: LLMPricing,\n transport: ModelRouteTransport,\n custom?: CustomRouteConfig\n): ResolvedLlmModelRoute {\n return {\n ref,\n vendor: ref.vendor,\n product: ref.product,\n canonicalProductId,\n route: ref.route,\n transport,\n availability: custom?.availability ?? \"available\",\n limits: custom?.limits ?? {},\n pricing,\n }\n}\n\ninterface ParseResult {\n ref: ModelRef\n legacy: boolean\n}\n\n/**\n * Parse a canonical ref, or interpret a bare legacy id as a product-only ref\n * when it resolves through the legacy catalog.\n */\nfunction tryParseOrLegacy(raw: string): ParseResult | undefined {\n if (raw.includes(\"/\")) {\n return { ref: parseModelRef(raw), legacy: false }\n }\n const pricing = resolvePricing(raw)\n if (!pricing) return undefined\n const vendor = pricing.vendor ?? pricing.provider ?? \"unknown\"\n const route = pricing.provider ?? vendor\n return {\n ref: { raw, vendor, product: raw, route },\n legacy: true,\n }\n}\n\n// ── Diagnostics ────────────────────────────────────────────────────────────\n\nexport interface ModelRefDiagnostic {\n ref: ModelRef\n /** True if this string is a legacy bare id rather than vendor/product. */\n legacyBareId: boolean\n /** True if a direct vendor route exists for the product. */\n directAvailable: boolean\n /** True if an OpenRouter route exists for vendor/product. */\n openRouterAvailable: boolean\n /** True if a custom route is registered for the route segment. */\n customRouteAvailable: boolean\n /** Human-readable note when ambiguity or a deprecation applies. */\n note?: string\n}\n\n/**\n * Inspect a model reference and report what routes are available for it.\n *\n * Useful for CLI/UI warnings when a user types `openai/gpt-4o` and an\n * explicit `@openrouter` form also exists: the direct form is chosen, but\n * the note explains how to request the OpenRouter route explicitly.\n */\nexport function diagnoseModelRef(\n input: string | ModelRef\n): ModelRefDiagnostic | undefined {\n const parsed =\n typeof input === \"string\" ? tryParseOrLegacy(input) : { ref: input, legacy: false }\n if (!parsed) return undefined\n\n const { ref, legacy } = parsed\n const directPricing = resolvePricing(ref.product)\n const openRouterKey = `${ref.vendor}/${ref.product}`\n const openRouterPricing = OPENROUTER_ROUTES[openRouterKey]\n const custom = resolveCustomRoute(ref.route)\n\n const directAvailable = !!directPricing\n const openRouterAvailable = !!openRouterPricing\n const customRouteAvailable = !!custom\n\n let note: string | undefined\n if (legacy) {\n note = `Bare product id \"${ref.product}\" is a legacy form; prefer ${ref.vendor}/${ref.product}.`\n } else if (ref.route === ref.vendor && openRouterAvailable) {\n note = `Direct vendor route selected. Use ${ref.vendor}/${ref.product}@openrouter for the OpenRouter route.`\n }\n\n return {\n ref,\n legacyBareId: legacy,\n directAvailable,\n openRouterAvailable,\n customRouteAvailable,\n note,\n }\n}\n"]}
|