@earendil-works/pi-ai 0.80.6 → 0.80.7

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.
Files changed (109) hide show
  1. package/README.md +3 -2
  2. package/dist/api/anthropic-messages.d.ts.map +1 -1
  3. package/dist/api/anthropic-messages.js +95 -46
  4. package/dist/api/anthropic-messages.js.map +1 -1
  5. package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  6. package/dist/api/bedrock-converse-stream.js +14 -7
  7. package/dist/api/bedrock-converse-stream.js.map +1 -1
  8. package/dist/api/openai-codex-responses.d.ts +1 -0
  9. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  10. package/dist/api/openai-codex-responses.js +6 -3
  11. package/dist/api/openai-codex-responses.js.map +1 -1
  12. package/dist/api/openai-completions.d.ts.map +1 -1
  13. package/dist/api/openai-completions.js +12 -3
  14. package/dist/api/openai-completions.js.map +1 -1
  15. package/dist/api/openai-responses-shared.d.ts +3 -1
  16. package/dist/api/openai-responses-shared.d.ts.map +1 -1
  17. package/dist/api/openai-responses-shared.js +51 -0
  18. package/dist/api/openai-responses-shared.js.map +1 -1
  19. package/dist/api/openai-responses.d.ts +1 -0
  20. package/dist/api/openai-responses.d.ts.map +1 -1
  21. package/dist/api/openai-responses.js +24 -8
  22. package/dist/api/openai-responses.js.map +1 -1
  23. package/dist/api/pi-messages.d.ts +97 -0
  24. package/dist/api/pi-messages.d.ts.map +1 -0
  25. package/dist/api/pi-messages.js +309 -0
  26. package/dist/api/pi-messages.js.map +1 -0
  27. package/dist/api/pi-messages.lazy.d.ts +3 -0
  28. package/dist/api/pi-messages.lazy.d.ts.map +1 -0
  29. package/dist/api/pi-messages.lazy.js +3 -0
  30. package/dist/api/pi-messages.lazy.js.map +1 -0
  31. package/dist/compat.d.ts +2 -0
  32. package/dist/compat.d.ts.map +1 -1
  33. package/dist/compat.js +5 -1
  34. package/dist/compat.js.map +1 -1
  35. package/dist/env-api-keys.d.ts.map +1 -1
  36. package/dist/env-api-keys.js +1 -0
  37. package/dist/env-api-keys.js.map +1 -1
  38. package/dist/index.d.ts +1 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/models.generated.d.ts +498 -180
  42. package/dist/models.generated.d.ts.map +1 -1
  43. package/dist/providers/all.d.ts +9 -5
  44. package/dist/providers/all.d.ts.map +1 -1
  45. package/dist/providers/all.js.map +1 -1
  46. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  47. package/dist/providers/amazon-bedrock.js +5 -1
  48. package/dist/providers/amazon-bedrock.js.map +1 -1
  49. package/dist/providers/amazon-bedrock.models.d.ts +60 -0
  50. package/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
  51. package/dist/providers/amazon-bedrock.models.js +54 -0
  52. package/dist/providers/amazon-bedrock.models.js.map +1 -1
  53. package/dist/providers/azure-openai-responses.models.d.ts +17 -0
  54. package/dist/providers/azure-openai-responses.models.d.ts.map +1 -1
  55. package/dist/providers/azure-openai-responses.models.js +17 -0
  56. package/dist/providers/azure-openai-responses.models.js.map +1 -1
  57. package/dist/providers/cerebras.models.d.ts.map +1 -1
  58. package/dist/providers/cerebras.models.js +1 -1
  59. package/dist/providers/cerebras.models.js.map +1 -1
  60. package/dist/providers/cloudflare-ai-gateway.models.d.ts +92 -0
  61. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -1
  62. package/dist/providers/cloudflare-ai-gateway.models.js +72 -0
  63. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
  64. package/dist/providers/cloudflare-auth.d.ts.map +1 -1
  65. package/dist/providers/cloudflare-auth.js +9 -6
  66. package/dist/providers/cloudflare-auth.js.map +1 -1
  67. package/dist/providers/github-copilot.models.d.ts +93 -6
  68. package/dist/providers/github-copilot.models.d.ts.map +1 -1
  69. package/dist/providers/github-copilot.models.js +60 -3
  70. package/dist/providers/github-copilot.models.js.map +1 -1
  71. package/dist/providers/openai-codex.models.d.ts +18 -0
  72. package/dist/providers/openai-codex.models.d.ts.map +1 -1
  73. package/dist/providers/openai-codex.models.js +6 -0
  74. package/dist/providers/openai-codex.models.js.map +1 -1
  75. package/dist/providers/openai.models.d.ts +38 -0
  76. package/dist/providers/openai.models.d.ts.map +1 -1
  77. package/dist/providers/openai.models.js +24 -0
  78. package/dist/providers/openai.models.js.map +1 -1
  79. package/dist/providers/opencode.models.d.ts +123 -0
  80. package/dist/providers/opencode.models.d.ts.map +1 -1
  81. package/dist/providers/opencode.models.js +74 -1
  82. package/dist/providers/opencode.models.js.map +1 -1
  83. package/dist/providers/openrouter.models.d.ts +28 -43
  84. package/dist/providers/openrouter.models.d.ts.map +1 -1
  85. package/dist/providers/openrouter.models.js +92 -109
  86. package/dist/providers/openrouter.models.js.map +1 -1
  87. package/dist/providers/vercel-ai-gateway.models.d.ts +7 -109
  88. package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  89. package/dist/providers/vercel-ai-gateway.models.js +34 -136
  90. package/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  91. package/dist/types.d.ts +25 -6
  92. package/dist/types.d.ts.map +1 -1
  93. package/dist/types.js.map +1 -1
  94. package/dist/utils/deferred-tools.d.ts +9 -0
  95. package/dist/utils/deferred-tools.d.ts.map +1 -0
  96. package/dist/utils/deferred-tools.js +36 -0
  97. package/dist/utils/deferred-tools.js.map +1 -0
  98. package/dist/utils/estimate.d.ts.map +1 -1
  99. package/dist/utils/estimate.js +18 -5
  100. package/dist/utils/estimate.js.map +1 -1
  101. package/dist/utils/oauth/index.d.ts +1 -0
  102. package/dist/utils/oauth/index.d.ts.map +1 -1
  103. package/dist/utils/oauth/index.js +9 -0
  104. package/dist/utils/oauth/index.js.map +1 -1
  105. package/dist/utils/oauth/radius.d.ts +39 -0
  106. package/dist/utils/oauth/radius.d.ts.map +1 -0
  107. package/dist/utils/oauth/radius.js +415 -0
  108. package/dist/utils/oauth/radius.js.map +1 -0
  109. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-ai-gateway.models.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.models.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0qB/B,CAAC","sourcesContent":["// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport type { Model } from \"../types.ts\";\n\nexport const CLOUDFLARE_AI_GATEWAY_MODELS = {\n\t\"claude-3-5-haiku\": {\n\t\tid: \"claude-3-5-haiku\",\n\t\tname: \"Claude Haiku 3.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.8,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 1,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-haiku\": {\n\t\tid: \"claude-3-haiku\",\n\t\tname: \"Claude Haiku 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.25,\n\t\t\toutput: 1.25,\n\t\t\tcacheRead: 0.03,\n\t\t\tcacheWrite: 0.3,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-opus\": {\n\t\tid: \"claude-3-opus\",\n\t\tname: \"Claude Opus 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-sonnet\": {\n\t\tid: \"claude-3-sonnet\",\n\t\tname: \"Claude Sonnet 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 0.3,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3.5-haiku\": {\n\t\tid: \"claude-3.5-haiku\",\n\t\tname: \"Claude Haiku 3.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.8,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 1,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3.5-sonnet\": {\n\t\tid: \"claude-3.5-sonnet\",\n\t\tname: \"Claude Sonnet 3.5 v2\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-fable-5\": {\n\t\tid: \"claude-fable-5\",\n\t\tname: \"Claude Fable 5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 10,\n\t\t\toutput: 50,\n\t\t\tcacheRead: 1,\n\t\t\tcacheWrite: 12.5,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-haiku-4-5\": {\n\t\tid: \"claude-haiku-4-5\",\n\t\tname: \"Claude Haiku 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 5,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 1.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4\": {\n\t\tid: \"claude-opus-4\",\n\t\tname: \"Claude Opus 4 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-1\": {\n\t\tid: \"claude-opus-4-1\",\n\t\tname: \"Claude Opus 4.1 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-5\": {\n\t\tid: \"claude-opus-4-5\",\n\t\tname: \"Claude Opus 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-6\": {\n\t\tid: \"claude-opus-4-6\",\n\t\tname: \"Claude Opus 4.6 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-7\": {\n\t\tid: \"claude-opus-4-7\",\n\t\tname: \"Claude Opus 4.7\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-8\": {\n\t\tid: \"claude-opus-4-8\",\n\t\tname: \"Claude Opus 4.8\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4\": {\n\t\tid: \"claude-sonnet-4\",\n\t\tname: \"Claude Sonnet 4 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-5\": {\n\t\tid: \"claude-sonnet-4-5\",\n\t\tname: \"Claude Sonnet 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-6\": {\n\t\tid: \"claude-sonnet-4-6\",\n\t\tname: \"Claude Sonnet 4.6\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-5\": {\n\t\tid: \"claude-sonnet-5\",\n\t\tname: \"Claude Sonnet 5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 2.5,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"gpt-4\": {\n\t\tid: \"gpt-4\",\n\t\tname: \"GPT-4\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 30,\n\t\t\toutput: 60,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 8192,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4-turbo\": {\n\t\tid: \"gpt-4-turbo\",\n\t\tname: \"GPT-4 Turbo\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 10,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4o\": {\n\t\tid: \"gpt-4o\",\n\t\tname: \"GPT-4o\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 1.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 16384,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4o-mini\": {\n\t\tid: \"gpt-4o-mini\",\n\t\tname: \"GPT-4o mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.15,\n\t\t\toutput: 0.6,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 16384,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1\": {\n\t\tid: \"gpt-5.1\",\n\t\tname: \"GPT-5.1\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.13,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1-codex\": {\n\t\tid: \"gpt-5.1-codex\",\n\t\tname: \"GPT-5.1 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.125,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2\": {\n\t\tid: \"gpt-5.2\",\n\t\tname: \"GPT-5.2\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2-codex\": {\n\t\tid: \"gpt-5.2-codex\",\n\t\tname: \"GPT-5.2 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.3-codex\": {\n\t\tid: \"gpt-5.3-codex\",\n\t\tname: \"GPT-5.3 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4\": {\n\t\tid: \"gpt-5.4\",\n\t\tname: \"GPT-5.4\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.5\": {\n\t\tid: \"gpt-5.5\",\n\t\tname: \"GPT-5.5\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o1\": {\n\t\tid: \"o1\",\n\t\tname: \"o1\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 60,\n\t\t\tcacheRead: 7.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3\": {\n\t\tid: \"o3\",\n\t\tname: \"o3\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 8,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3-mini\": {\n\t\tid: \"o3-mini\",\n\t\tname: \"o3-mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.1,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.55,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3-pro\": {\n\t\tid: \"o3-pro\",\n\t\tname: \"o3-pro\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 20,\n\t\t\toutput: 80,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o4-mini\": {\n\t\tid: \"o4-mini\",\n\t\tname: \"o4-mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.1,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.28,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"workers-ai/@cf/moonshotai/kimi-k2.5\": {\n\t\tid: \"workers-ai/@cf/moonshotai/kimi-k2.5\",\n\t\tname: \"Kimi K2.5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.6,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/moonshotai/kimi-k2.6\": {\n\t\tid: \"workers-ai/@cf/moonshotai/kimi-k2.6\",\n\t\tname: \"Kimi K2.6\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.95,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.16,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/nvidia/nemotron-3-120b-a12b\": {\n\t\tid: \"workers-ai/@cf/nvidia/nemotron-3-120b-a12b\",\n\t\tname: \"Nemotron 3 Super 120B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.5,\n\t\t\toutput: 1.5,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/zai-org/glm-4.7-flash\": {\n\t\tid: \"workers-ai/@cf/zai-org/glm-4.7-flash\",\n\t\tname: \"GLM-4.7-Flash\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.06,\n\t\t\toutput: 0.4,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 131072,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n} as const;\n"]}
1
+ {"version":3,"file":"cloudflare-ai-gateway.models.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.models.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkvB/B,CAAC","sourcesContent":["// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport type { Model } from \"../types.ts\";\n\nexport const CLOUDFLARE_AI_GATEWAY_MODELS = {\n\t\"claude-3-5-haiku\": {\n\t\tid: \"claude-3-5-haiku\",\n\t\tname: \"Claude Haiku 3.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.8,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 1,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-haiku\": {\n\t\tid: \"claude-3-haiku\",\n\t\tname: \"Claude Haiku 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.25,\n\t\t\toutput: 1.25,\n\t\t\tcacheRead: 0.03,\n\t\t\tcacheWrite: 0.3,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-opus\": {\n\t\tid: \"claude-3-opus\",\n\t\tname: \"Claude Opus 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-sonnet\": {\n\t\tid: \"claude-3-sonnet\",\n\t\tname: \"Claude Sonnet 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 0.3,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3.5-haiku\": {\n\t\tid: \"claude-3.5-haiku\",\n\t\tname: \"Claude Haiku 3.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.8,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 1,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3.5-sonnet\": {\n\t\tid: \"claude-3.5-sonnet\",\n\t\tname: \"Claude Sonnet 3.5 v2\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-fable-5\": {\n\t\tid: \"claude-fable-5\",\n\t\tname: \"Claude Fable 5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 10,\n\t\t\toutput: 50,\n\t\t\tcacheRead: 1,\n\t\t\tcacheWrite: 12.5,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-haiku-4-5\": {\n\t\tid: \"claude-haiku-4-5\",\n\t\tname: \"Claude Haiku 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 5,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 1.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4\": {\n\t\tid: \"claude-opus-4\",\n\t\tname: \"Claude Opus 4 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-1\": {\n\t\tid: \"claude-opus-4-1\",\n\t\tname: \"Claude Opus 4.1 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-5\": {\n\t\tid: \"claude-opus-4-5\",\n\t\tname: \"Claude Opus 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-6\": {\n\t\tid: \"claude-opus-4-6\",\n\t\tname: \"Claude Opus 4.6 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-7\": {\n\t\tid: \"claude-opus-4-7\",\n\t\tname: \"Claude Opus 4.7\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-8\": {\n\t\tid: \"claude-opus-4-8\",\n\t\tname: \"Claude Opus 4.8\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4\": {\n\t\tid: \"claude-sonnet-4\",\n\t\tname: \"Claude Sonnet 4 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-5\": {\n\t\tid: \"claude-sonnet-4-5\",\n\t\tname: \"Claude Sonnet 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-6\": {\n\t\tid: \"claude-sonnet-4-6\",\n\t\tname: \"Claude Sonnet 4.6\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-5\": {\n\t\tid: \"claude-sonnet-5\",\n\t\tname: \"Claude Sonnet 5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 2.5,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"gpt-4\": {\n\t\tid: \"gpt-4\",\n\t\tname: \"GPT-4\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 30,\n\t\t\toutput: 60,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 8192,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4-turbo\": {\n\t\tid: \"gpt-4-turbo\",\n\t\tname: \"GPT-4 Turbo\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 10,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4o\": {\n\t\tid: \"gpt-4o\",\n\t\tname: \"GPT-4o\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 1.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 16384,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4o-mini\": {\n\t\tid: \"gpt-4o-mini\",\n\t\tname: \"GPT-4o mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.15,\n\t\t\toutput: 0.6,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 16384,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1\": {\n\t\tid: \"gpt-5.1\",\n\t\tname: \"GPT-5.1\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.13,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1-codex\": {\n\t\tid: \"gpt-5.1-codex\",\n\t\tname: \"GPT-5.1 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.125,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2\": {\n\t\tid: \"gpt-5.2\",\n\t\tname: \"GPT-5.2\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2-codex\": {\n\t\tid: \"gpt-5.2-codex\",\n\t\tname: \"GPT-5.2 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.3-codex\": {\n\t\tid: \"gpt-5.3-codex\",\n\t\tname: \"GPT-5.3 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4\": {\n\t\tid: \"gpt-5.4\",\n\t\tname: \"GPT-5.4\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.5\": {\n\t\tid: \"gpt-5.5\",\n\t\tname: \"GPT-5.5\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.6-luna\": {\n\t\tid: \"gpt-5.6-luna\",\n\t\tname: \"GPT-5.6 Luna\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 6,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.6-sol\": {\n\t\tid: \"gpt-5.6-sol\",\n\t\tname: \"GPT-5.6 Sol\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.6-terra\": {\n\t\tid: \"gpt-5.6-terra\",\n\t\tname: \"GPT-5.6 Terra\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o1\": {\n\t\tid: \"o1\",\n\t\tname: \"o1\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 60,\n\t\t\tcacheRead: 7.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3\": {\n\t\tid: \"o3\",\n\t\tname: \"o3\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 8,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3-mini\": {\n\t\tid: \"o3-mini\",\n\t\tname: \"o3-mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.1,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.55,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3-pro\": {\n\t\tid: \"o3-pro\",\n\t\tname: \"o3-pro\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 20,\n\t\t\toutput: 80,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o4-mini\": {\n\t\tid: \"o4-mini\",\n\t\tname: \"o4-mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.1,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.28,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"workers-ai/@cf/moonshotai/kimi-k2.5\": {\n\t\tid: \"workers-ai/@cf/moonshotai/kimi-k2.5\",\n\t\tname: \"Kimi K2.5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.6,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/moonshotai/kimi-k2.6\": {\n\t\tid: \"workers-ai/@cf/moonshotai/kimi-k2.6\",\n\t\tname: \"Kimi K2.6\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.95,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.16,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/nvidia/nemotron-3-120b-a12b\": {\n\t\tid: \"workers-ai/@cf/nvidia/nemotron-3-120b-a12b\",\n\t\tname: \"Nemotron 3 Super 120B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.5,\n\t\t\toutput: 1.5,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/zai-org/glm-4.7-flash\": {\n\t\tid: \"workers-ai/@cf/zai-org/glm-4.7-flash\",\n\t\tname: \"GLM-4.7-Flash\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.06,\n\t\t\toutput: 0.4,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 131072,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/zai-org/glm-5.2\": {\n\t\tid: \"workers-ai/@cf/zai-org/glm-5.2\",\n\t\tname: \"Glm 5.2\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.4,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.26,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 262144,\n\t} satisfies Model<\"openai-completions\">,\n} as const;\n"]}
@@ -525,6 +525,60 @@ export const CLOUDFLARE_AI_GATEWAY_MODELS = {
525
525
  contextWindow: 1050000,
526
526
  maxTokens: 128000,
527
527
  },
528
+ "gpt-5.6-luna": {
529
+ id: "gpt-5.6-luna",
530
+ name: "GPT-5.6 Luna",
531
+ api: "openai-responses",
532
+ provider: "cloudflare-ai-gateway",
533
+ baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
534
+ reasoning: true,
535
+ thinkingLevelMap: { "off": null, "xhigh": "xhigh", "max": "max" },
536
+ input: ["text", "image"],
537
+ cost: {
538
+ input: 1,
539
+ output: 6,
540
+ cacheRead: 0.1,
541
+ cacheWrite: 0,
542
+ },
543
+ contextWindow: 1050000,
544
+ maxTokens: 128000,
545
+ },
546
+ "gpt-5.6-sol": {
547
+ id: "gpt-5.6-sol",
548
+ name: "GPT-5.6 Sol",
549
+ api: "openai-responses",
550
+ provider: "cloudflare-ai-gateway",
551
+ baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
552
+ reasoning: true,
553
+ thinkingLevelMap: { "off": null, "xhigh": "xhigh", "max": "max" },
554
+ input: ["text", "image"],
555
+ cost: {
556
+ input: 5,
557
+ output: 30,
558
+ cacheRead: 0.5,
559
+ cacheWrite: 0,
560
+ },
561
+ contextWindow: 1050000,
562
+ maxTokens: 128000,
563
+ },
564
+ "gpt-5.6-terra": {
565
+ id: "gpt-5.6-terra",
566
+ name: "GPT-5.6 Terra",
567
+ api: "openai-responses",
568
+ provider: "cloudflare-ai-gateway",
569
+ baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai",
570
+ reasoning: true,
571
+ thinkingLevelMap: { "off": null, "xhigh": "xhigh", "max": "max" },
572
+ input: ["text", "image"],
573
+ cost: {
574
+ input: 2.5,
575
+ output: 15,
576
+ cacheRead: 0.25,
577
+ cacheWrite: 0,
578
+ },
579
+ contextWindow: 1050000,
580
+ maxTokens: 128000,
581
+ },
528
582
  "o1": {
529
583
  id: "o1",
530
584
  name: "o1",
@@ -682,5 +736,23 @@ export const CLOUDFLARE_AI_GATEWAY_MODELS = {
682
736
  contextWindow: 131072,
683
737
  maxTokens: 131072,
684
738
  },
739
+ "workers-ai/@cf/zai-org/glm-5.2": {
740
+ id: "workers-ai/@cf/zai-org/glm-5.2",
741
+ name: "Glm 5.2",
742
+ api: "openai-completions",
743
+ provider: "cloudflare-ai-gateway",
744
+ baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",
745
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "supportsReasoningEffort": false, "maxTokensField": "max_tokens", "supportsStrictMode": false, "supportsLongCacheRetention": false, "sendSessionAffinityHeaders": true },
746
+ reasoning: true,
747
+ input: ["text"],
748
+ cost: {
749
+ input: 1.4,
750
+ output: 4.4,
751
+ cacheRead: 0.26,
752
+ cacheWrite: 0,
753
+ },
754
+ contextWindow: 262144,
755
+ maxTokens: 262144,
756
+ },
685
757
  };
686
758
  //# sourceMappingURL=cloudflare-ai-gateway.models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-ai-gateway.models.js","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.models.ts"],"names":[],"mappings":"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","sourcesContent":["// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport type { Model } from \"../types.ts\";\n\nexport const CLOUDFLARE_AI_GATEWAY_MODELS = {\n\t\"claude-3-5-haiku\": {\n\t\tid: \"claude-3-5-haiku\",\n\t\tname: \"Claude Haiku 3.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.8,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 1,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-haiku\": {\n\t\tid: \"claude-3-haiku\",\n\t\tname: \"Claude Haiku 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.25,\n\t\t\toutput: 1.25,\n\t\t\tcacheRead: 0.03,\n\t\t\tcacheWrite: 0.3,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-opus\": {\n\t\tid: \"claude-3-opus\",\n\t\tname: \"Claude Opus 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-sonnet\": {\n\t\tid: \"claude-3-sonnet\",\n\t\tname: \"Claude Sonnet 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 0.3,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3.5-haiku\": {\n\t\tid: \"claude-3.5-haiku\",\n\t\tname: \"Claude Haiku 3.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.8,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 1,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3.5-sonnet\": {\n\t\tid: \"claude-3.5-sonnet\",\n\t\tname: \"Claude Sonnet 3.5 v2\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-fable-5\": {\n\t\tid: \"claude-fable-5\",\n\t\tname: \"Claude Fable 5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 10,\n\t\t\toutput: 50,\n\t\t\tcacheRead: 1,\n\t\t\tcacheWrite: 12.5,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-haiku-4-5\": {\n\t\tid: \"claude-haiku-4-5\",\n\t\tname: \"Claude Haiku 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 5,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 1.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4\": {\n\t\tid: \"claude-opus-4\",\n\t\tname: \"Claude Opus 4 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-1\": {\n\t\tid: \"claude-opus-4-1\",\n\t\tname: \"Claude Opus 4.1 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-5\": {\n\t\tid: \"claude-opus-4-5\",\n\t\tname: \"Claude Opus 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-6\": {\n\t\tid: \"claude-opus-4-6\",\n\t\tname: \"Claude Opus 4.6 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-7\": {\n\t\tid: \"claude-opus-4-7\",\n\t\tname: \"Claude Opus 4.7\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-8\": {\n\t\tid: \"claude-opus-4-8\",\n\t\tname: \"Claude Opus 4.8\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4\": {\n\t\tid: \"claude-sonnet-4\",\n\t\tname: \"Claude Sonnet 4 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-5\": {\n\t\tid: \"claude-sonnet-4-5\",\n\t\tname: \"Claude Sonnet 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-6\": {\n\t\tid: \"claude-sonnet-4-6\",\n\t\tname: \"Claude Sonnet 4.6\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-5\": {\n\t\tid: \"claude-sonnet-5\",\n\t\tname: \"Claude Sonnet 5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 2.5,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"gpt-4\": {\n\t\tid: \"gpt-4\",\n\t\tname: \"GPT-4\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 30,\n\t\t\toutput: 60,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 8192,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4-turbo\": {\n\t\tid: \"gpt-4-turbo\",\n\t\tname: \"GPT-4 Turbo\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 10,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4o\": {\n\t\tid: \"gpt-4o\",\n\t\tname: \"GPT-4o\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 1.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 16384,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4o-mini\": {\n\t\tid: \"gpt-4o-mini\",\n\t\tname: \"GPT-4o mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.15,\n\t\t\toutput: 0.6,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 16384,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1\": {\n\t\tid: \"gpt-5.1\",\n\t\tname: \"GPT-5.1\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.13,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1-codex\": {\n\t\tid: \"gpt-5.1-codex\",\n\t\tname: \"GPT-5.1 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.125,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2\": {\n\t\tid: \"gpt-5.2\",\n\t\tname: \"GPT-5.2\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2-codex\": {\n\t\tid: \"gpt-5.2-codex\",\n\t\tname: \"GPT-5.2 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.3-codex\": {\n\t\tid: \"gpt-5.3-codex\",\n\t\tname: \"GPT-5.3 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4\": {\n\t\tid: \"gpt-5.4\",\n\t\tname: \"GPT-5.4\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.5\": {\n\t\tid: \"gpt-5.5\",\n\t\tname: \"GPT-5.5\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o1\": {\n\t\tid: \"o1\",\n\t\tname: \"o1\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 60,\n\t\t\tcacheRead: 7.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3\": {\n\t\tid: \"o3\",\n\t\tname: \"o3\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 8,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3-mini\": {\n\t\tid: \"o3-mini\",\n\t\tname: \"o3-mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.1,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.55,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3-pro\": {\n\t\tid: \"o3-pro\",\n\t\tname: \"o3-pro\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 20,\n\t\t\toutput: 80,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o4-mini\": {\n\t\tid: \"o4-mini\",\n\t\tname: \"o4-mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.1,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.28,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"workers-ai/@cf/moonshotai/kimi-k2.5\": {\n\t\tid: \"workers-ai/@cf/moonshotai/kimi-k2.5\",\n\t\tname: \"Kimi K2.5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.6,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/moonshotai/kimi-k2.6\": {\n\t\tid: \"workers-ai/@cf/moonshotai/kimi-k2.6\",\n\t\tname: \"Kimi K2.6\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.95,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.16,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/nvidia/nemotron-3-120b-a12b\": {\n\t\tid: \"workers-ai/@cf/nvidia/nemotron-3-120b-a12b\",\n\t\tname: \"Nemotron 3 Super 120B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.5,\n\t\t\toutput: 1.5,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/zai-org/glm-4.7-flash\": {\n\t\tid: \"workers-ai/@cf/zai-org/glm-4.7-flash\",\n\t\tname: \"GLM-4.7-Flash\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.06,\n\t\t\toutput: 0.4,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 131072,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n} as const;\n"]}
1
+ {"version":3,"file":"cloudflare-ai-gateway.models.js","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.models.ts"],"names":[],"mappings":"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","sourcesContent":["// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport type { Model } from \"../types.ts\";\n\nexport const CLOUDFLARE_AI_GATEWAY_MODELS = {\n\t\"claude-3-5-haiku\": {\n\t\tid: \"claude-3-5-haiku\",\n\t\tname: \"Claude Haiku 3.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.8,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 1,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-haiku\": {\n\t\tid: \"claude-3-haiku\",\n\t\tname: \"Claude Haiku 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.25,\n\t\t\toutput: 1.25,\n\t\t\tcacheRead: 0.03,\n\t\t\tcacheWrite: 0.3,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-opus\": {\n\t\tid: \"claude-3-opus\",\n\t\tname: \"Claude Opus 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3-sonnet\": {\n\t\tid: \"claude-3-sonnet\",\n\t\tname: \"Claude Sonnet 3\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 0.3,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3.5-haiku\": {\n\t\tid: \"claude-3.5-haiku\",\n\t\tname: \"Claude Haiku 3.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.8,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 1,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-3.5-sonnet\": {\n\t\tid: \"claude-3.5-sonnet\",\n\t\tname: \"Claude Sonnet 3.5 v2\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-fable-5\": {\n\t\tid: \"claude-fable-5\",\n\t\tname: \"Claude Fable 5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 10,\n\t\t\toutput: 50,\n\t\t\tcacheRead: 1,\n\t\t\tcacheWrite: 12.5,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-haiku-4-5\": {\n\t\tid: \"claude-haiku-4-5\",\n\t\tname: \"Claude Haiku 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 5,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 1.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4\": {\n\t\tid: \"claude-opus-4\",\n\t\tname: \"Claude Opus 4 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-1\": {\n\t\tid: \"claude-opus-4-1\",\n\t\tname: \"Claude Opus 4.1 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-5\": {\n\t\tid: \"claude-opus-4-5\",\n\t\tname: \"Claude Opus 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-6\": {\n\t\tid: \"claude-opus-4-6\",\n\t\tname: \"Claude Opus 4.6 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-7\": {\n\t\tid: \"claude-opus-4-7\",\n\t\tname: \"Claude Opus 4.7\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-8\": {\n\t\tid: \"claude-opus-4-8\",\n\t\tname: \"Claude Opus 4.8\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4\": {\n\t\tid: \"claude-sonnet-4\",\n\t\tname: \"Claude Sonnet 4 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-5\": {\n\t\tid: \"claude-sonnet-4-5\",\n\t\tname: \"Claude Sonnet 4.5 (latest)\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-6\": {\n\t\tid: \"claude-sonnet-4-6\",\n\t\tname: \"Claude Sonnet 4.6\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-5\": {\n\t\tid: \"claude-sonnet-5\",\n\t\tname: \"Claude Sonnet 5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic\",\n\t\tcompat: {\"sendSessionAffinityHeaders\":true,\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 2.5,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"gpt-4\": {\n\t\tid: \"gpt-4\",\n\t\tname: \"GPT-4\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 30,\n\t\t\toutput: 60,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 8192,\n\t\tmaxTokens: 8192,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4-turbo\": {\n\t\tid: \"gpt-4-turbo\",\n\t\tname: \"GPT-4 Turbo\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 10,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 4096,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4o\": {\n\t\tid: \"gpt-4o\",\n\t\tname: \"GPT-4o\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 1.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 16384,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-4o-mini\": {\n\t\tid: \"gpt-4o-mini\",\n\t\tname: \"GPT-4o mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: false,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.15,\n\t\t\toutput: 0.6,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 128000,\n\t\tmaxTokens: 16384,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1\": {\n\t\tid: \"gpt-5.1\",\n\t\tname: \"GPT-5.1\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.13,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1-codex\": {\n\t\tid: \"gpt-5.1-codex\",\n\t\tname: \"GPT-5.1 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.125,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2\": {\n\t\tid: \"gpt-5.2\",\n\t\tname: \"GPT-5.2\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2-codex\": {\n\t\tid: \"gpt-5.2-codex\",\n\t\tname: \"GPT-5.2 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.3-codex\": {\n\t\tid: \"gpt-5.3-codex\",\n\t\tname: \"GPT-5.3 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4\": {\n\t\tid: \"gpt-5.4\",\n\t\tname: \"GPT-5.4\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.5\": {\n\t\tid: \"gpt-5.5\",\n\t\tname: \"GPT-5.5\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.6-luna\": {\n\t\tid: \"gpt-5.6-luna\",\n\t\tname: \"GPT-5.6 Luna\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 6,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.6-sol\": {\n\t\tid: \"gpt-5.6-sol\",\n\t\tname: \"GPT-5.6 Sol\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.6-terra\": {\n\t\tid: \"gpt-5.6-terra\",\n\t\tname: \"GPT-5.6 Terra\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o1\": {\n\t\tid: \"o1\",\n\t\tname: \"o1\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 60,\n\t\t\tcacheRead: 7.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3\": {\n\t\tid: \"o3\",\n\t\tname: \"o3\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 8,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3-mini\": {\n\t\tid: \"o3-mini\",\n\t\tname: \"o3-mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.1,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.55,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o3-pro\": {\n\t\tid: \"o3-pro\",\n\t\tname: \"o3-pro\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 20,\n\t\t\toutput: 80,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"o4-mini\": {\n\t\tid: \"o4-mini\",\n\t\tname: \"o4-mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.1,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.28,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 100000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"workers-ai/@cf/moonshotai/kimi-k2.5\": {\n\t\tid: \"workers-ai/@cf/moonshotai/kimi-k2.5\",\n\t\tname: \"Kimi K2.5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.6,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/moonshotai/kimi-k2.6\": {\n\t\tid: \"workers-ai/@cf/moonshotai/kimi-k2.6\",\n\t\tname: \"Kimi K2.6\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.95,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.16,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/nvidia/nemotron-3-120b-a12b\": {\n\t\tid: \"workers-ai/@cf/nvidia/nemotron-3-120b-a12b\",\n\t\tname: \"Nemotron 3 Super 120B\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.5,\n\t\t\toutput: 1.5,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/zai-org/glm-4.7-flash\": {\n\t\tid: \"workers-ai/@cf/zai-org/glm-4.7-flash\",\n\t\tname: \"GLM-4.7-Flash\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.06,\n\t\t\toutput: 0.4,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 131072,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"workers-ai/@cf/zai-org/glm-5.2\": {\n\t\tid: \"workers-ai/@cf/zai-org/glm-5.2\",\n\t\tname: \"Glm 5.2\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"cloudflare-ai-gateway\",\n\t\tbaseUrl: \"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsStrictMode\":false,\"supportsLongCacheRetention\":false,\"sendSessionAffinityHeaders\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.4,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.26,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 262144,\n\t} satisfies Model<\"openai-completions\">,\n} as const;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-auth.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiC,MAAM,kBAAkB,CAAC;AAsDlF,wBAAgB,uBAAuB,IAAI,UAAU,CAkBpD;AAED,wBAAgB,uBAAuB,IAAI,UAAU,CA8BpD","sourcesContent":["import type { ApiKeyAuth, ApiKeyCredential, AuthContext } from \"../auth/types.ts\";\nimport type { Api, ImagesApi, ImagesModel, Model, ProviderEnv } from \"../types.ts\";\n\nconst CLOUDFLARE_API_KEY = \"CLOUDFLARE_API_KEY\";\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\n\ntype CloudflareAuthKind = \"workers-ai\" | \"ai-gateway\";\n\nasync function resolveValue(\n\tname: string,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n): Promise<string | undefined> {\n\tif (credential) {\n\t\tif (name === CLOUDFLARE_API_KEY) return credential.key;\n\t\treturn credential.env?.[name];\n\t}\n\treturn ctx.env(name);\n}\n\nfunction resolveCloudflareBaseUrl(\n\tmodel: Model<Api> | ImagesModel<ImagesApi>,\n\taccountId: string,\n\tgatewayId: string | undefined,\n): string {\n\treturn model.baseUrl\n\t\t.replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, accountId)\n\t\t.replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, gatewayId ?? \"\");\n}\n\nasync function resolveCloudflareEnv(\n\tkind: CloudflareAuthKind,\n\tmodel: Model<Api> | ImagesModel<ImagesApi>,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n): Promise<{ apiKey: string; env: ProviderEnv; baseUrl: string; source: string } | undefined> {\n\tconst apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential);\n\tconst accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential);\n\tconst gatewayId = kind === \"ai-gateway\" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential) : undefined;\n\n\tif (!apiKey || !accountId || (kind === \"ai-gateway\" && !gatewayId)) return undefined;\n\n\treturn {\n\t\tapiKey,\n\t\tenv: {\n\t\t\tCLOUDFLARE_ACCOUNT_ID: accountId,\n\t\t\t...(gatewayId ? { CLOUDFLARE_GATEWAY_ID: gatewayId } : {}),\n\t\t},\n\t\tbaseUrl: resolveCloudflareBaseUrl(model, accountId, gatewayId),\n\t\tsource: credential ? \"stored credential\" : CLOUDFLARE_API_KEY,\n\t};\n}\n\nexport function cloudflareWorkersAIAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (callbacks) => {\n\t\t\tconst key = await callbacks.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\treturn { type: \"api_key\", key, env: { CLOUDFLARE_ACCOUNT_ID: accountId } };\n\t\t},\n\t\tresolve: async ({ model, ctx, credential }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"workers-ai\", model, ctx, credential);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: { apiKey: resolved.apiKey, baseUrl: resolved.baseUrl },\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n\nexport function cloudflareAIGatewayAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (callbacks) => {\n\t\t\tconst key = await callbacks.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\tconst gatewayId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare AI Gateway ID\" });\n\t\t\treturn {\n\t\t\t\ttype: \"api_key\",\n\t\t\t\tkey,\n\t\t\t\tenv: { CLOUDFLARE_ACCOUNT_ID: accountId, CLOUDFLARE_GATEWAY_ID: gatewayId },\n\t\t\t};\n\t\t},\n\t\tresolve: async ({ model, ctx, credential }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"ai-gateway\", model, ctx, credential);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"cf-aig-authorization\": `Bearer ${resolved.apiKey}`,\n\t\t\t\t\t\tAuthorization: null,\n\t\t\t\t\t\t\"x-api-key\": null,\n\t\t\t\t\t},\n\t\t\t\t\tbaseUrl: resolved.baseUrl,\n\t\t\t\t},\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"file":"cloudflare-auth.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiC,MAAM,kBAAkB,CAAC;AA0DlF,wBAAgB,uBAAuB,IAAI,UAAU,CAkBpD;AAED,wBAAgB,uBAAuB,IAAI,UAAU,CA8BpD","sourcesContent":["import type { ApiKeyAuth, ApiKeyCredential, AuthContext } from \"../auth/types.ts\";\nimport type { Api, ImagesApi, ImagesModel, Model, ProviderEnv } from \"../types.ts\";\n\nconst CLOUDFLARE_API_KEY = \"CLOUDFLARE_API_KEY\";\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\n\ntype CloudflareAuthKind = \"workers-ai\" | \"ai-gateway\";\n\nasync function resolveValue(\n\tname: string,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n): Promise<string | undefined> {\n\t// Per-field merge: prefer the credential value, fall back to ambient env.\n\t// A credential carrying only the API key must still pick up the account /\n\t// gateway id from the environment.\n\tconst fromCredential = credential\n\t\t? name === CLOUDFLARE_API_KEY\n\t\t\t? credential.key\n\t\t\t: credential.env?.[name]\n\t\t: undefined;\n\treturn fromCredential ?? (await ctx.env(name));\n}\n\nfunction resolveCloudflareBaseUrl(\n\tmodel: Model<Api> | ImagesModel<ImagesApi>,\n\taccountId: string,\n\tgatewayId: string | undefined,\n): string {\n\treturn model.baseUrl\n\t\t.replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, accountId)\n\t\t.replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, gatewayId ?? \"\");\n}\n\nasync function resolveCloudflareEnv(\n\tkind: CloudflareAuthKind,\n\tmodel: Model<Api> | ImagesModel<ImagesApi>,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n): Promise<{ apiKey: string; env: ProviderEnv; baseUrl: string; source: string } | undefined> {\n\tconst apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential);\n\tconst accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential);\n\tconst gatewayId = kind === \"ai-gateway\" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential) : undefined;\n\n\tif (!apiKey || !accountId || (kind === \"ai-gateway\" && !gatewayId)) return undefined;\n\n\treturn {\n\t\tapiKey,\n\t\tenv: {\n\t\t\tCLOUDFLARE_ACCOUNT_ID: accountId,\n\t\t\t...(gatewayId ? { CLOUDFLARE_GATEWAY_ID: gatewayId } : {}),\n\t\t},\n\t\tbaseUrl: resolveCloudflareBaseUrl(model, accountId, gatewayId),\n\t\tsource: credential ? \"stored credential\" : CLOUDFLARE_API_KEY,\n\t};\n}\n\nexport function cloudflareWorkersAIAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (callbacks) => {\n\t\t\tconst key = await callbacks.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\treturn { type: \"api_key\", key, env: { CLOUDFLARE_ACCOUNT_ID: accountId } };\n\t\t},\n\t\tresolve: async ({ model, ctx, credential }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"workers-ai\", model, ctx, credential);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: { apiKey: resolved.apiKey, baseUrl: resolved.baseUrl },\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n\nexport function cloudflareAIGatewayAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (callbacks) => {\n\t\t\tconst key = await callbacks.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\tconst gatewayId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare AI Gateway ID\" });\n\t\t\treturn {\n\t\t\t\ttype: \"api_key\",\n\t\t\t\tkey,\n\t\t\t\tenv: { CLOUDFLARE_ACCOUNT_ID: accountId, CLOUDFLARE_GATEWAY_ID: gatewayId },\n\t\t\t};\n\t\t},\n\t\tresolve: async ({ model, ctx, credential }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"ai-gateway\", model, ctx, credential);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"cf-aig-authorization\": `Bearer ${resolved.apiKey}`,\n\t\t\t\t\t\tAuthorization: null,\n\t\t\t\t\t\t\"x-api-key\": null,\n\t\t\t\t\t},\n\t\t\t\t\tbaseUrl: resolved.baseUrl,\n\t\t\t\t},\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n"]}
@@ -2,12 +2,15 @@ const CLOUDFLARE_API_KEY = "CLOUDFLARE_API_KEY";
2
2
  const CLOUDFLARE_ACCOUNT_ID = "CLOUDFLARE_ACCOUNT_ID";
3
3
  const CLOUDFLARE_GATEWAY_ID = "CLOUDFLARE_GATEWAY_ID";
4
4
  async function resolveValue(name, ctx, credential) {
5
- if (credential) {
6
- if (name === CLOUDFLARE_API_KEY)
7
- return credential.key;
8
- return credential.env?.[name];
9
- }
10
- return ctx.env(name);
5
+ // Per-field merge: prefer the credential value, fall back to ambient env.
6
+ // A credential carrying only the API key must still pick up the account /
7
+ // gateway id from the environment.
8
+ const fromCredential = credential
9
+ ? name === CLOUDFLARE_API_KEY
10
+ ? credential.key
11
+ : credential.env?.[name]
12
+ : undefined;
13
+ return fromCredential ?? (await ctx.env(name));
11
14
  }
12
15
  function resolveCloudflareBaseUrl(model, accountId, gatewayId) {
13
16
  return model.baseUrl
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-auth.js","sourceRoot":"","sources":["../../src/providers/cloudflare-auth.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ApiKeyAuth, ApiKeyCredential, AuthContext } from \"../auth/types.ts\";\nimport type { Api, ImagesApi, ImagesModel, Model, ProviderEnv } from \"../types.ts\";\n\nconst CLOUDFLARE_API_KEY = \"CLOUDFLARE_API_KEY\";\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\n\ntype CloudflareAuthKind = \"workers-ai\" | \"ai-gateway\";\n\nasync function resolveValue(\n\tname: string,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n): Promise<string | undefined> {\n\tif (credential) {\n\t\tif (name === CLOUDFLARE_API_KEY) return credential.key;\n\t\treturn credential.env?.[name];\n\t}\n\treturn ctx.env(name);\n}\n\nfunction resolveCloudflareBaseUrl(\n\tmodel: Model<Api> | ImagesModel<ImagesApi>,\n\taccountId: string,\n\tgatewayId: string | undefined,\n): string {\n\treturn model.baseUrl\n\t\t.replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, accountId)\n\t\t.replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, gatewayId ?? \"\");\n}\n\nasync function resolveCloudflareEnv(\n\tkind: CloudflareAuthKind,\n\tmodel: Model<Api> | ImagesModel<ImagesApi>,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n): Promise<{ apiKey: string; env: ProviderEnv; baseUrl: string; source: string } | undefined> {\n\tconst apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential);\n\tconst accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential);\n\tconst gatewayId = kind === \"ai-gateway\" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential) : undefined;\n\n\tif (!apiKey || !accountId || (kind === \"ai-gateway\" && !gatewayId)) return undefined;\n\n\treturn {\n\t\tapiKey,\n\t\tenv: {\n\t\t\tCLOUDFLARE_ACCOUNT_ID: accountId,\n\t\t\t...(gatewayId ? { CLOUDFLARE_GATEWAY_ID: gatewayId } : {}),\n\t\t},\n\t\tbaseUrl: resolveCloudflareBaseUrl(model, accountId, gatewayId),\n\t\tsource: credential ? \"stored credential\" : CLOUDFLARE_API_KEY,\n\t};\n}\n\nexport function cloudflareWorkersAIAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (callbacks) => {\n\t\t\tconst key = await callbacks.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\treturn { type: \"api_key\", key, env: { CLOUDFLARE_ACCOUNT_ID: accountId } };\n\t\t},\n\t\tresolve: async ({ model, ctx, credential }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"workers-ai\", model, ctx, credential);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: { apiKey: resolved.apiKey, baseUrl: resolved.baseUrl },\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n\nexport function cloudflareAIGatewayAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (callbacks) => {\n\t\t\tconst key = await callbacks.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\tconst gatewayId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare AI Gateway ID\" });\n\t\t\treturn {\n\t\t\t\ttype: \"api_key\",\n\t\t\t\tkey,\n\t\t\t\tenv: { CLOUDFLARE_ACCOUNT_ID: accountId, CLOUDFLARE_GATEWAY_ID: gatewayId },\n\t\t\t};\n\t\t},\n\t\tresolve: async ({ model, ctx, credential }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"ai-gateway\", model, ctx, credential);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"cf-aig-authorization\": `Bearer ${resolved.apiKey}`,\n\t\t\t\t\t\tAuthorization: null,\n\t\t\t\t\t\t\"x-api-key\": null,\n\t\t\t\t\t},\n\t\t\t\t\tbaseUrl: resolved.baseUrl,\n\t\t\t\t},\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"file":"cloudflare-auth.js","sourceRoot":"","sources":["../../src/providers/cloudflare-auth.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ApiKeyAuth, ApiKeyCredential, AuthContext } from \"../auth/types.ts\";\nimport type { Api, ImagesApi, ImagesModel, Model, ProviderEnv } from \"../types.ts\";\n\nconst CLOUDFLARE_API_KEY = \"CLOUDFLARE_API_KEY\";\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\n\ntype CloudflareAuthKind = \"workers-ai\" | \"ai-gateway\";\n\nasync function resolveValue(\n\tname: string,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n): Promise<string | undefined> {\n\t// Per-field merge: prefer the credential value, fall back to ambient env.\n\t// A credential carrying only the API key must still pick up the account /\n\t// gateway id from the environment.\n\tconst fromCredential = credential\n\t\t? name === CLOUDFLARE_API_KEY\n\t\t\t? credential.key\n\t\t\t: credential.env?.[name]\n\t\t: undefined;\n\treturn fromCredential ?? (await ctx.env(name));\n}\n\nfunction resolveCloudflareBaseUrl(\n\tmodel: Model<Api> | ImagesModel<ImagesApi>,\n\taccountId: string,\n\tgatewayId: string | undefined,\n): string {\n\treturn model.baseUrl\n\t\t.replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, accountId)\n\t\t.replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, gatewayId ?? \"\");\n}\n\nasync function resolveCloudflareEnv(\n\tkind: CloudflareAuthKind,\n\tmodel: Model<Api> | ImagesModel<ImagesApi>,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n): Promise<{ apiKey: string; env: ProviderEnv; baseUrl: string; source: string } | undefined> {\n\tconst apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential);\n\tconst accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential);\n\tconst gatewayId = kind === \"ai-gateway\" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential) : undefined;\n\n\tif (!apiKey || !accountId || (kind === \"ai-gateway\" && !gatewayId)) return undefined;\n\n\treturn {\n\t\tapiKey,\n\t\tenv: {\n\t\t\tCLOUDFLARE_ACCOUNT_ID: accountId,\n\t\t\t...(gatewayId ? { CLOUDFLARE_GATEWAY_ID: gatewayId } : {}),\n\t\t},\n\t\tbaseUrl: resolveCloudflareBaseUrl(model, accountId, gatewayId),\n\t\tsource: credential ? \"stored credential\" : CLOUDFLARE_API_KEY,\n\t};\n}\n\nexport function cloudflareWorkersAIAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (callbacks) => {\n\t\t\tconst key = await callbacks.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\treturn { type: \"api_key\", key, env: { CLOUDFLARE_ACCOUNT_ID: accountId } };\n\t\t},\n\t\tresolve: async ({ model, ctx, credential }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"workers-ai\", model, ctx, credential);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: { apiKey: resolved.apiKey, baseUrl: resolved.baseUrl },\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n\nexport function cloudflareAIGatewayAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (callbacks) => {\n\t\t\tconst key = await callbacks.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\tconst gatewayId = await callbacks.prompt({ type: \"text\", message: \"Enter Cloudflare AI Gateway ID\" });\n\t\t\treturn {\n\t\t\t\ttype: \"api_key\",\n\t\t\t\tkey,\n\t\t\t\tenv: { CLOUDFLARE_ACCOUNT_ID: accountId, CLOUDFLARE_GATEWAY_ID: gatewayId },\n\t\t\t};\n\t\t},\n\t\tresolve: async ({ model, ctx, credential }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"ai-gateway\", model, ctx, credential);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"cf-aig-authorization\": `Bearer ${resolved.apiKey}`,\n\t\t\t\t\t\tAuthorization: null,\n\t\t\t\t\t\t\"x-api-key\": null,\n\t\t\t\t\t},\n\t\t\t\t\tbaseUrl: resolved.baseUrl,\n\t\t\t\t},\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n"]}