@earendil-works/pi-ai 0.80.6 → 0.80.8

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 (252) hide show
  1. package/README.md +79 -24
  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/lazy.d.ts.map +1 -1
  9. package/dist/api/lazy.js +9 -10
  10. package/dist/api/lazy.js.map +1 -1
  11. package/dist/api/openai-codex-responses.d.ts +1 -0
  12. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  13. package/dist/api/openai-codex-responses.js +9 -5
  14. package/dist/api/openai-codex-responses.js.map +1 -1
  15. package/dist/api/openai-completions.d.ts.map +1 -1
  16. package/dist/api/openai-completions.js +12 -3
  17. package/dist/api/openai-completions.js.map +1 -1
  18. package/dist/api/openai-responses-shared.d.ts +3 -1
  19. package/dist/api/openai-responses-shared.d.ts.map +1 -1
  20. package/dist/api/openai-responses-shared.js +51 -0
  21. package/dist/api/openai-responses-shared.js.map +1 -1
  22. package/dist/api/openai-responses.d.ts +1 -0
  23. package/dist/api/openai-responses.d.ts.map +1 -1
  24. package/dist/api/openai-responses.js +26 -8
  25. package/dist/api/openai-responses.js.map +1 -1
  26. package/dist/api/pi-messages.d.ts +97 -0
  27. package/dist/api/pi-messages.d.ts.map +1 -0
  28. package/dist/api/pi-messages.js +309 -0
  29. package/dist/api/pi-messages.js.map +1 -0
  30. package/dist/api/pi-messages.lazy.d.ts +3 -0
  31. package/dist/api/pi-messages.lazy.d.ts.map +1 -0
  32. package/dist/api/pi-messages.lazy.js +3 -0
  33. package/dist/api/pi-messages.lazy.js.map +1 -0
  34. package/dist/auth/credential-store.d.ts +2 -1
  35. package/dist/auth/credential-store.d.ts.map +1 -1
  36. package/dist/auth/credential-store.js +3 -0
  37. package/dist/auth/credential-store.js.map +1 -1
  38. package/dist/auth/helpers.d.ts.map +1 -1
  39. package/dist/auth/helpers.js +3 -3
  40. package/dist/auth/helpers.js.map +1 -1
  41. package/dist/auth/oauth/anthropic.d.ts +9 -0
  42. package/dist/auth/oauth/anthropic.d.ts.map +1 -0
  43. package/dist/{utils → auth}/oauth/anthropic.js +51 -116
  44. package/dist/auth/oauth/anthropic.js.map +1 -0
  45. package/dist/auth/oauth/device-code.d.ts.map +1 -0
  46. package/dist/auth/oauth/device-code.js.map +1 -0
  47. package/dist/auth/oauth/github-copilot.d.ts +6 -0
  48. package/dist/auth/oauth/github-copilot.d.ts.map +1 -0
  49. package/dist/{utils → auth}/oauth/github-copilot.js +18 -77
  50. package/dist/auth/oauth/github-copilot.js.map +1 -0
  51. package/dist/auth/oauth/load.d.ts +23 -0
  52. package/dist/auth/oauth/load.d.ts.map +1 -0
  53. package/dist/auth/oauth/load.js +49 -0
  54. package/dist/auth/oauth/load.js.map +1 -0
  55. package/dist/auth/oauth/oauth-page.d.ts.map +1 -0
  56. package/dist/auth/oauth/oauth-page.js.map +1 -0
  57. package/dist/auth/oauth/openai-codex.d.ts +9 -0
  58. package/dist/auth/oauth/openai-codex.d.ts.map +1 -0
  59. package/dist/{utils → auth}/oauth/openai-codex.js +61 -155
  60. package/dist/auth/oauth/openai-codex.js.map +1 -0
  61. package/dist/auth/oauth/pkce.d.ts.map +1 -0
  62. package/dist/auth/oauth/pkce.js.map +1 -0
  63. package/dist/auth/oauth/radius.d.ts +16 -0
  64. package/dist/auth/oauth/radius.d.ts.map +1 -0
  65. package/dist/auth/oauth/radius.js +318 -0
  66. package/dist/auth/oauth/radius.js.map +1 -0
  67. package/dist/auth/oauth/xai.d.ts +6 -0
  68. package/dist/auth/oauth/xai.d.ts.map +1 -0
  69. package/dist/auth/oauth/xai.js +184 -0
  70. package/dist/auth/oauth/xai.js.map +1 -0
  71. package/dist/auth/resolve.d.ts +2 -4
  72. package/dist/auth/resolve.d.ts.map +1 -1
  73. package/dist/auth/resolve.js +9 -7
  74. package/dist/auth/resolve.js.map +1 -1
  75. package/dist/auth/types.d.ts +47 -10
  76. package/dist/auth/types.d.ts.map +1 -1
  77. package/dist/auth/types.js.map +1 -1
  78. package/dist/bun-oauth.d.ts +3 -0
  79. package/dist/bun-oauth.d.ts.map +1 -0
  80. package/dist/bun-oauth.js +17 -0
  81. package/dist/bun-oauth.js.map +1 -0
  82. package/dist/cli.d.ts.map +1 -1
  83. package/dist/cli.js +58 -76
  84. package/dist/cli.js.map +1 -1
  85. package/dist/compat/extension-oauth-types.d.ts +39 -0
  86. package/dist/compat/extension-oauth-types.d.ts.map +1 -0
  87. package/dist/compat/extension-oauth-types.js +2 -0
  88. package/dist/compat/extension-oauth-types.js.map +1 -0
  89. package/dist/compat.d.ts +2 -0
  90. package/dist/compat.d.ts.map +1 -1
  91. package/dist/compat.js +25 -8
  92. package/dist/compat.js.map +1 -1
  93. package/dist/env-api-keys.d.ts.map +1 -1
  94. package/dist/env-api-keys.js +1 -0
  95. package/dist/env-api-keys.js.map +1 -1
  96. package/dist/images-models.d.ts +4 -2
  97. package/dist/images-models.d.ts.map +1 -1
  98. package/dist/images-models.js +5 -4
  99. package/dist/images-models.js.map +1 -1
  100. package/dist/index.d.ts +3 -1
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +1 -0
  103. package/dist/index.js.map +1 -1
  104. package/dist/models-store.d.ts +25 -0
  105. package/dist/models-store.d.ts.map +1 -0
  106. package/dist/models-store.js +14 -0
  107. package/dist/models-store.js.map +1 -0
  108. package/dist/models.d.ts +66 -30
  109. package/dist/models.d.ts.map +1 -1
  110. package/dist/models.generated.d.ts +570 -163
  111. package/dist/models.generated.d.ts.map +1 -1
  112. package/dist/models.js +214 -29
  113. package/dist/models.js.map +1 -1
  114. package/dist/oauth.d.ts +2 -1
  115. package/dist/oauth.d.ts.map +1 -1
  116. package/dist/oauth.js +1 -1
  117. package/dist/oauth.js.map +1 -1
  118. package/dist/providers/all.d.ts +11 -6
  119. package/dist/providers/all.d.ts.map +1 -1
  120. package/dist/providers/all.js +3 -0
  121. package/dist/providers/all.js.map +1 -1
  122. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  123. package/dist/providers/amazon-bedrock.js +51 -6
  124. package/dist/providers/amazon-bedrock.js.map +1 -1
  125. package/dist/providers/amazon-bedrock.models.d.ts +60 -0
  126. package/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
  127. package/dist/providers/amazon-bedrock.models.js +54 -0
  128. package/dist/providers/amazon-bedrock.models.js.map +1 -1
  129. package/dist/providers/anthropic.d.ts.map +1 -1
  130. package/dist/providers/anthropic.js +1 -1
  131. package/dist/providers/anthropic.js.map +1 -1
  132. package/dist/providers/azure-openai-responses.models.d.ts +17 -0
  133. package/dist/providers/azure-openai-responses.models.d.ts.map +1 -1
  134. package/dist/providers/azure-openai-responses.models.js +17 -0
  135. package/dist/providers/azure-openai-responses.models.js.map +1 -1
  136. package/dist/providers/cerebras.models.d.ts.map +1 -1
  137. package/dist/providers/cerebras.models.js +1 -1
  138. package/dist/providers/cerebras.models.js.map +1 -1
  139. package/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -1
  140. package/dist/providers/cloudflare-ai-gateway.js +4 -3
  141. package/dist/providers/cloudflare-ai-gateway.js.map +1 -1
  142. package/dist/providers/cloudflare-ai-gateway.models.d.ts +92 -0
  143. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -1
  144. package/dist/providers/cloudflare-ai-gateway.models.js +72 -0
  145. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
  146. package/dist/providers/cloudflare-auth.d.ts.map +1 -1
  147. package/dist/providers/cloudflare-auth.js +22 -26
  148. package/dist/providers/cloudflare-auth.js.map +1 -1
  149. package/dist/providers/cloudflare-stream.d.ts +8 -0
  150. package/dist/providers/cloudflare-stream.d.ts.map +1 -0
  151. package/dist/providers/cloudflare-stream.js +21 -0
  152. package/dist/providers/cloudflare-stream.js.map +1 -0
  153. package/dist/providers/cloudflare-workers-ai.d.ts.map +1 -1
  154. package/dist/providers/cloudflare-workers-ai.js +2 -1
  155. package/dist/providers/cloudflare-workers-ai.js.map +1 -1
  156. package/dist/providers/github-copilot.d.ts.map +1 -1
  157. package/dist/providers/github-copilot.js +11 -1
  158. package/dist/providers/github-copilot.js.map +1 -1
  159. package/dist/providers/github-copilot.models.d.ts +93 -6
  160. package/dist/providers/github-copilot.models.d.ts.map +1 -1
  161. package/dist/providers/github-copilot.models.js +60 -3
  162. package/dist/providers/github-copilot.models.js.map +1 -1
  163. package/dist/providers/google-vertex.d.ts.map +1 -1
  164. package/dist/providers/google-vertex.js +56 -5
  165. package/dist/providers/google-vertex.js.map +1 -1
  166. package/dist/providers/kimi-coding.models.d.ts +20 -0
  167. package/dist/providers/kimi-coding.models.d.ts.map +1 -1
  168. package/dist/providers/kimi-coding.models.js +18 -0
  169. package/dist/providers/kimi-coding.models.js.map +1 -1
  170. package/dist/providers/openai-codex.d.ts.map +1 -1
  171. package/dist/providers/openai-codex.js +1 -1
  172. package/dist/providers/openai-codex.js.map +1 -1
  173. package/dist/providers/openai-codex.models.d.ts +18 -0
  174. package/dist/providers/openai-codex.models.d.ts.map +1 -1
  175. package/dist/providers/openai-codex.models.js +6 -0
  176. package/dist/providers/openai-codex.models.js.map +1 -1
  177. package/dist/providers/openai.models.d.ts +38 -0
  178. package/dist/providers/openai.models.d.ts.map +1 -1
  179. package/dist/providers/openai.models.js +24 -0
  180. package/dist/providers/openai.models.js.map +1 -1
  181. package/dist/providers/opencode.models.d.ts +123 -0
  182. package/dist/providers/opencode.models.d.ts.map +1 -1
  183. package/dist/providers/opencode.models.js +74 -1
  184. package/dist/providers/opencode.models.js.map +1 -1
  185. package/dist/providers/openrouter.models.d.ts +28 -43
  186. package/dist/providers/openrouter.models.d.ts.map +1 -1
  187. package/dist/providers/openrouter.models.js +186 -203
  188. package/dist/providers/openrouter.models.js.map +1 -1
  189. package/dist/providers/radius-config.d.ts +26 -0
  190. package/dist/providers/radius-config.d.ts.map +1 -0
  191. package/dist/providers/radius-config.js +59 -0
  192. package/dist/providers/radius-config.js.map +1 -0
  193. package/dist/providers/radius.d.ts +9 -0
  194. package/dist/providers/radius.d.ts.map +1 -0
  195. package/dist/providers/radius.js +54 -0
  196. package/dist/providers/radius.js.map +1 -0
  197. package/dist/providers/vercel-ai-gateway.models.d.ts +71 -106
  198. package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  199. package/dist/providers/vercel-ai-gateway.models.js +89 -136
  200. package/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  201. package/dist/providers/xai.d.ts +1 -1
  202. package/dist/providers/xai.d.ts.map +1 -1
  203. package/dist/providers/xai.js +11 -3
  204. package/dist/providers/xai.js.map +1 -1
  205. package/dist/providers/xai.models.d.ts +6 -4
  206. package/dist/providers/xai.models.d.ts.map +1 -1
  207. package/dist/providers/xai.models.js +3 -2
  208. package/dist/providers/xai.models.js.map +1 -1
  209. package/dist/types.d.ts +25 -6
  210. package/dist/types.d.ts.map +1 -1
  211. package/dist/types.js.map +1 -1
  212. package/dist/utils/deferred-tools.d.ts +9 -0
  213. package/dist/utils/deferred-tools.d.ts.map +1 -0
  214. package/dist/utils/deferred-tools.js +36 -0
  215. package/dist/utils/deferred-tools.js.map +1 -0
  216. package/dist/utils/estimate.d.ts.map +1 -1
  217. package/dist/utils/estimate.js +18 -5
  218. package/dist/utils/estimate.js.map +1 -1
  219. package/package.json +6 -1
  220. package/dist/utils/oauth/anthropic.d.ts +0 -27
  221. package/dist/utils/oauth/anthropic.d.ts.map +0 -1
  222. package/dist/utils/oauth/anthropic.js.map +0 -1
  223. package/dist/utils/oauth/device-code.d.ts.map +0 -1
  224. package/dist/utils/oauth/device-code.js.map +0 -1
  225. package/dist/utils/oauth/github-copilot.d.ts +0 -32
  226. package/dist/utils/oauth/github-copilot.d.ts.map +0 -1
  227. package/dist/utils/oauth/github-copilot.js.map +0 -1
  228. package/dist/utils/oauth/index.d.ts +0 -58
  229. package/dist/utils/oauth/index.d.ts.map +0 -1
  230. package/dist/utils/oauth/index.js +0 -122
  231. package/dist/utils/oauth/index.js.map +0 -1
  232. package/dist/utils/oauth/load.d.ts +0 -5
  233. package/dist/utils/oauth/load.d.ts.map +0 -1
  234. package/dist/utils/oauth/load.js +0 -22
  235. package/dist/utils/oauth/load.js.map +0 -1
  236. package/dist/utils/oauth/oauth-page.d.ts.map +0 -1
  237. package/dist/utils/oauth/oauth-page.js.map +0 -1
  238. package/dist/utils/oauth/openai-codex.d.ts +0 -45
  239. package/dist/utils/oauth/openai-codex.d.ts.map +0 -1
  240. package/dist/utils/oauth/openai-codex.js.map +0 -1
  241. package/dist/utils/oauth/pkce.d.ts.map +0 -1
  242. package/dist/utils/oauth/pkce.js.map +0 -1
  243. package/dist/utils/oauth/types.d.ts +0 -64
  244. package/dist/utils/oauth/types.d.ts.map +0 -1
  245. package/dist/utils/oauth/types.js +0 -2
  246. package/dist/utils/oauth/types.js.map +0 -1
  247. /package/dist/{utils → auth}/oauth/device-code.d.ts +0 -0
  248. /package/dist/{utils → auth}/oauth/device-code.js +0 -0
  249. /package/dist/{utils → auth}/oauth/oauth-page.d.ts +0 -0
  250. /package/dist/{utils → auth}/oauth/oauth-page.js +0 -0
  251. /package/dist/{utils → auth}/oauth/pkce.d.ts +0 -0
  252. /package/dist/{utils → auth}/oauth/pkce.js +0 -0
@@ -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;AA8ClF,wBAAgB,uBAAuB,IAAI,UAAU,CAkBpD;AAED,wBAAgB,uBAAuB,IAAI,UAAU,CA6BpD","sourcesContent":["import type { ApiKeyAuth, ApiKeyCredential, AuthContext } from \"../auth/types.ts\";\nimport type { 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\nasync function resolveCloudflareEnv(\n\tkind: CloudflareAuthKind,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n): Promise<{ apiKey: string; env: ProviderEnv; 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\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 (interaction) => {\n\t\t\tconst key = await interaction.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await interaction.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 ({ ctx, credential }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"workers-ai\", ctx, credential);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: { apiKey: resolved.apiKey },\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 (interaction) => {\n\t\t\tconst key = await interaction.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await interaction.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\tconst gatewayId = await interaction.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 ({ ctx, credential }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"ai-gateway\", 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},\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,19 +2,17 @@ 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
- function resolveCloudflareBaseUrl(model, accountId, gatewayId) {
13
- return model.baseUrl
14
- .replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, accountId)
15
- .replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, gatewayId ?? "");
16
- }
17
- async function resolveCloudflareEnv(kind, model, ctx, credential) {
15
+ async function resolveCloudflareEnv(kind, ctx, credential) {
18
16
  const apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential);
19
17
  const accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential);
20
18
  const gatewayId = kind === "ai-gateway" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential) : undefined;
@@ -26,24 +24,23 @@ async function resolveCloudflareEnv(kind, model, ctx, credential) {
26
24
  CLOUDFLARE_ACCOUNT_ID: accountId,
27
25
  ...(gatewayId ? { CLOUDFLARE_GATEWAY_ID: gatewayId } : {}),
28
26
  },
29
- baseUrl: resolveCloudflareBaseUrl(model, accountId, gatewayId),
30
27
  source: credential ? "stored credential" : CLOUDFLARE_API_KEY,
31
28
  };
32
29
  }
33
30
  export function cloudflareWorkersAIAuth() {
34
31
  return {
35
32
  name: "Cloudflare API key",
36
- login: async (callbacks) => {
37
- const key = await callbacks.prompt({ type: "secret", message: "Enter Cloudflare API key" });
38
- const accountId = await callbacks.prompt({ type: "text", message: "Enter Cloudflare account ID" });
33
+ login: async (interaction) => {
34
+ const key = await interaction.prompt({ type: "secret", message: "Enter Cloudflare API key" });
35
+ const accountId = await interaction.prompt({ type: "text", message: "Enter Cloudflare account ID" });
39
36
  return { type: "api_key", key, env: { CLOUDFLARE_ACCOUNT_ID: accountId } };
40
37
  },
41
- resolve: async ({ model, ctx, credential }) => {
42
- const resolved = await resolveCloudflareEnv("workers-ai", model, ctx, credential);
38
+ resolve: async ({ ctx, credential }) => {
39
+ const resolved = await resolveCloudflareEnv("workers-ai", ctx, credential);
43
40
  if (!resolved)
44
41
  return undefined;
45
42
  return {
46
- auth: { apiKey: resolved.apiKey, baseUrl: resolved.baseUrl },
43
+ auth: { apiKey: resolved.apiKey },
47
44
  env: resolved.env,
48
45
  source: resolved.source,
49
46
  };
@@ -53,18 +50,18 @@ export function cloudflareWorkersAIAuth() {
53
50
  export function cloudflareAIGatewayAuth() {
54
51
  return {
55
52
  name: "Cloudflare API key",
56
- login: async (callbacks) => {
57
- const key = await callbacks.prompt({ type: "secret", message: "Enter Cloudflare API key" });
58
- const accountId = await callbacks.prompt({ type: "text", message: "Enter Cloudflare account ID" });
59
- const gatewayId = await callbacks.prompt({ type: "text", message: "Enter Cloudflare AI Gateway ID" });
53
+ login: async (interaction) => {
54
+ const key = await interaction.prompt({ type: "secret", message: "Enter Cloudflare API key" });
55
+ const accountId = await interaction.prompt({ type: "text", message: "Enter Cloudflare account ID" });
56
+ const gatewayId = await interaction.prompt({ type: "text", message: "Enter Cloudflare AI Gateway ID" });
60
57
  return {
61
58
  type: "api_key",
62
59
  key,
63
60
  env: { CLOUDFLARE_ACCOUNT_ID: accountId, CLOUDFLARE_GATEWAY_ID: gatewayId },
64
61
  };
65
62
  },
66
- resolve: async ({ model, ctx, credential }) => {
67
- const resolved = await resolveCloudflareEnv("ai-gateway", model, ctx, credential);
63
+ resolve: async ({ ctx, credential }) => {
64
+ const resolved = await resolveCloudflareEnv("ai-gateway", ctx, credential);
68
65
  if (!resolved)
69
66
  return undefined;
70
67
  return {
@@ -74,7 +71,6 @@ export function cloudflareAIGatewayAuth() {
74
71
  Authorization: null,
75
72
  "x-api-key": null,
76
73
  },
77
- baseUrl: resolved.baseUrl,
78
74
  },
79
75
  env: resolved.env,
80
76
  source: resolved.source,