@fractaal/pi-ai 0.85.3 → 0.86.1

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 (713) hide show
  1. package/README.md +322 -46
  2. package/dist/api/anthropic-messages.d.ts.map +1 -1
  3. package/dist/api/anthropic-messages.js +403 -140
  4. package/dist/api/anthropic-messages.js.map +1 -1
  5. package/dist/api/anthropic-messages.lazy.d.ts.map +1 -1
  6. package/dist/api/azure-openai-config.d.ts +15 -0
  7. package/dist/api/azure-openai-config.d.ts.map +1 -0
  8. package/dist/api/azure-openai-config.js +76 -0
  9. package/dist/api/azure-openai-config.js.map +1 -0
  10. package/dist/api/azure-openai-responses.d.ts +5 -6
  11. package/dist/api/azure-openai-responses.d.ts.map +1 -1
  12. package/dist/api/azure-openai-responses.js +42 -86
  13. package/dist/api/azure-openai-responses.js.map +1 -1
  14. package/dist/api/azure-openai-responses.lazy.d.ts.map +1 -1
  15. package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  16. package/dist/api/bedrock-converse-stream.js +233 -24
  17. package/dist/api/bedrock-converse-stream.js.map +1 -1
  18. package/dist/api/bedrock-converse-stream.lazy.d.ts.map +1 -1
  19. package/dist/api/bedrock-converse-stream.lazy.js.map +1 -1
  20. package/dist/api/cloudflare-ai-binding.d.ts +77 -0
  21. package/dist/api/cloudflare-ai-binding.d.ts.map +1 -0
  22. package/dist/api/cloudflare-ai-binding.js +72 -0
  23. package/dist/api/cloudflare-ai-binding.js.map +1 -0
  24. package/dist/api/cloudflare-workers-ai-system-one.d.ts +4 -0
  25. package/dist/api/cloudflare-workers-ai-system-one.d.ts.map +1 -0
  26. package/dist/api/cloudflare-workers-ai-system-one.js +48 -0
  27. package/dist/api/cloudflare-workers-ai-system-one.js.map +1 -0
  28. package/dist/api/cloudflare-workers-ai-system-one.lazy.d.ts +3 -0
  29. package/dist/api/cloudflare-workers-ai-system-one.lazy.d.ts.map +1 -0
  30. package/dist/api/cloudflare-workers-ai-system-one.lazy.js +4 -0
  31. package/dist/api/cloudflare-workers-ai-system-one.lazy.js.map +1 -0
  32. package/dist/api/cloudflare.d.ts +2 -0
  33. package/dist/api/cloudflare.d.ts.map +1 -1
  34. package/dist/api/cloudflare.js +2 -0
  35. package/dist/api/cloudflare.js.map +1 -1
  36. package/dist/api/constrained-sampling.d.ts +10 -1
  37. package/dist/api/constrained-sampling.d.ts.map +1 -1
  38. package/dist/api/constrained-sampling.js +137 -4
  39. package/dist/api/constrained-sampling.js.map +1 -1
  40. package/dist/api/github-copilot-headers.d.ts.map +1 -1
  41. package/dist/api/github-copilot-headers.js.map +1 -1
  42. package/dist/api/google-generative-ai.d.ts +2 -2
  43. package/dist/api/google-generative-ai.d.ts.map +1 -1
  44. package/dist/api/google-generative-ai.js +39 -82
  45. package/dist/api/google-generative-ai.js.map +1 -1
  46. package/dist/api/google-generative-ai.lazy.d.ts.map +1 -1
  47. package/dist/api/google-shared.d.ts +27 -5
  48. package/dist/api/google-shared.d.ts.map +1 -1
  49. package/dist/api/google-shared.js +126 -18
  50. package/dist/api/google-shared.js.map +1 -1
  51. package/dist/api/google-vertex.d.ts +2 -2
  52. package/dist/api/google-vertex.d.ts.map +1 -1
  53. package/dist/api/google-vertex.js +42 -73
  54. package/dist/api/google-vertex.js.map +1 -1
  55. package/dist/api/google-vertex.lazy.d.ts.map +1 -1
  56. package/dist/api/lazy.d.ts +5 -1
  57. package/dist/api/lazy.d.ts.map +1 -1
  58. package/dist/api/lazy.js +19 -7
  59. package/dist/api/lazy.js.map +1 -1
  60. package/dist/api/llama-cpp-classify.d.ts +33 -0
  61. package/dist/api/llama-cpp-classify.d.ts.map +1 -0
  62. package/dist/api/llama-cpp-classify.js +365 -0
  63. package/dist/api/llama-cpp-classify.js.map +1 -0
  64. package/dist/api/llama-cpp-classify.lazy.d.ts +3 -0
  65. package/dist/api/llama-cpp-classify.lazy.d.ts.map +1 -0
  66. package/dist/api/llama-cpp-classify.lazy.js +4 -0
  67. package/dist/api/llama-cpp-classify.lazy.js.map +1 -0
  68. package/dist/api/mistral-conversations.d.ts +2 -2
  69. package/dist/api/mistral-conversations.d.ts.map +1 -1
  70. package/dist/api/mistral-conversations.js +250 -69
  71. package/dist/api/mistral-conversations.js.map +1 -1
  72. package/dist/api/mistral-conversations.lazy.d.ts.map +1 -1
  73. package/dist/api/openai-codex-compaction-history.d.ts +2 -2
  74. package/dist/api/openai-codex-compaction-history.d.ts.map +1 -1
  75. package/dist/api/openai-codex-compaction-history.js +1 -2
  76. package/dist/api/openai-codex-compaction-history.js.map +1 -1
  77. package/dist/api/openai-codex-responses.d.ts +1 -1
  78. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  79. package/dist/api/openai-codex-responses.js +107 -60
  80. package/dist/api/openai-codex-responses.js.map +1 -1
  81. package/dist/api/openai-codex-responses.lazy.d.ts.map +1 -1
  82. package/dist/api/openai-codex-responses.lazy.js.map +1 -1
  83. package/dist/api/openai-completions.d.ts +11 -4
  84. package/dist/api/openai-completions.d.ts.map +1 -1
  85. package/dist/api/openai-completions.js +250 -134
  86. package/dist/api/openai-completions.js.map +1 -1
  87. package/dist/api/openai-completions.lazy.d.ts.map +1 -1
  88. package/dist/api/openai-prompt-cache.d.ts.map +1 -1
  89. package/dist/api/openai-prompt-cache.js.map +1 -1
  90. package/dist/api/openai-responses-shared.d.ts +8 -4
  91. package/dist/api/openai-responses-shared.d.ts.map +1 -1
  92. package/dist/api/openai-responses-shared.js +114 -62
  93. package/dist/api/openai-responses-shared.js.map +1 -1
  94. package/dist/api/openai-responses.d.ts.map +1 -1
  95. package/dist/api/openai-responses.js +55 -23
  96. package/dist/api/openai-responses.js.map +1 -1
  97. package/dist/api/openai-responses.lazy.d.ts.map +1 -1
  98. package/dist/api/openrouter-images.d.ts +2 -1
  99. package/dist/api/openrouter-images.d.ts.map +1 -1
  100. package/dist/api/openrouter-images.js +1 -0
  101. package/dist/api/openrouter-images.js.map +1 -1
  102. package/dist/api/openrouter-images.lazy.d.ts.map +1 -1
  103. package/dist/api/openrouter-images.lazy.js.map +1 -1
  104. package/dist/api/pi-messages.d.ts +5 -3
  105. package/dist/api/pi-messages.d.ts.map +1 -1
  106. package/dist/api/pi-messages.js +10 -3
  107. package/dist/api/pi-messages.js.map +1 -1
  108. package/dist/api/pi-messages.lazy.d.ts.map +1 -1
  109. package/dist/api/simple-options.d.ts +10 -3
  110. package/dist/api/simple-options.d.ts.map +1 -1
  111. package/dist/api/simple-options.js +31 -11
  112. package/dist/api/simple-options.js.map +1 -1
  113. package/dist/api/system-one-shared.d.ts +23 -0
  114. package/dist/api/system-one-shared.d.ts.map +1 -0
  115. package/dist/api/system-one-shared.js +183 -0
  116. package/dist/api/system-one-shared.js.map +1 -0
  117. package/dist/api/transform-messages.d.ts.map +1 -1
  118. package/dist/api/transform-messages.js +21 -7
  119. package/dist/api/transform-messages.js.map +1 -1
  120. package/dist/api/typesafe-system-one.d.ts +4 -0
  121. package/dist/api/typesafe-system-one.d.ts.map +1 -0
  122. package/dist/api/typesafe-system-one.js +19 -0
  123. package/dist/api/typesafe-system-one.js.map +1 -0
  124. package/dist/api/typesafe-system-one.lazy.d.ts +3 -0
  125. package/dist/api/typesafe-system-one.lazy.d.ts.map +1 -0
  126. package/dist/api/typesafe-system-one.lazy.js +4 -0
  127. package/dist/api/typesafe-system-one.lazy.js.map +1 -0
  128. package/dist/auth/context.d.ts.map +1 -1
  129. package/dist/auth/context.js.map +1 -1
  130. package/dist/auth/credential-store.d.ts +6 -6
  131. package/dist/auth/credential-store.d.ts.map +1 -1
  132. package/dist/auth/credential-store.js +22 -11
  133. package/dist/auth/credential-store.js.map +1 -1
  134. package/dist/auth/helpers.d.ts +1 -0
  135. package/dist/auth/helpers.d.ts.map +1 -1
  136. package/dist/auth/helpers.js +8 -3
  137. package/dist/auth/helpers.js.map +1 -1
  138. package/dist/auth/oauth/anthropic.d.ts.map +1 -1
  139. package/dist/auth/oauth/anthropic.js +78 -131
  140. package/dist/auth/oauth/anthropic.js.map +1 -1
  141. package/dist/auth/oauth/callback-server.d.ts +55 -0
  142. package/dist/auth/oauth/callback-server.d.ts.map +1 -0
  143. package/dist/auth/oauth/callback-server.js +146 -0
  144. package/dist/auth/oauth/callback-server.js.map +1 -0
  145. package/dist/auth/oauth/device-code.d.ts +2 -1
  146. package/dist/auth/oauth/device-code.d.ts.map +1 -1
  147. package/dist/auth/oauth/device-code.js +5 -5
  148. package/dist/auth/oauth/device-code.js.map +1 -1
  149. package/dist/auth/oauth/github-copilot.d.ts.map +1 -1
  150. package/dist/auth/oauth/github-copilot.js +121 -41
  151. package/dist/auth/oauth/github-copilot.js.map +1 -1
  152. package/dist/auth/oauth/kimi-coding.d.ts.map +1 -1
  153. package/dist/auth/oauth/kimi-coding.js +5 -6
  154. package/dist/auth/oauth/kimi-coding.js.map +1 -1
  155. package/dist/auth/oauth/load.d.ts +4 -0
  156. package/dist/auth/oauth/load.d.ts.map +1 -1
  157. package/dist/auth/oauth/load.js +10 -0
  158. package/dist/auth/oauth/load.js.map +1 -1
  159. package/dist/auth/oauth/meta.d.ts +17 -0
  160. package/dist/auth/oauth/meta.d.ts.map +1 -0
  161. package/dist/auth/oauth/meta.js +190 -0
  162. package/dist/auth/oauth/meta.js.map +1 -0
  163. package/dist/auth/oauth/openai-chatgpt.d.ts +9 -0
  164. package/dist/auth/oauth/openai-chatgpt.d.ts.map +1 -0
  165. package/dist/auth/oauth/openai-chatgpt.js +263 -0
  166. package/dist/auth/oauth/openai-chatgpt.js.map +1 -0
  167. package/dist/auth/oauth/openai-codex-errors.d.ts.map +1 -1
  168. package/dist/auth/oauth/openai-codex-errors.js.map +1 -1
  169. package/dist/auth/oauth/openai-codex.d.ts +1 -1
  170. package/dist/auth/oauth/openai-codex.d.ts.map +1 -1
  171. package/dist/auth/oauth/openai-codex.js +23 -152
  172. package/dist/auth/oauth/openai-codex.js.map +1 -1
  173. package/dist/auth/oauth/openrouter.d.ts +1 -1
  174. package/dist/auth/oauth/openrouter.d.ts.map +1 -1
  175. package/dist/auth/oauth/openrouter.js +25 -144
  176. package/dist/auth/oauth/openrouter.js.map +1 -1
  177. package/dist/auth/oauth/pkce.d.ts.map +1 -1
  178. package/dist/auth/oauth/pkce.js.map +1 -1
  179. package/dist/auth/oauth/radius.d.ts +1 -1
  180. package/dist/auth/oauth/radius.d.ts.map +1 -1
  181. package/dist/auth/oauth/radius.js +26 -93
  182. package/dist/auth/oauth/radius.js.map +1 -1
  183. package/dist/auth/oauth/xai.d.ts.map +1 -1
  184. package/dist/auth/oauth/xai.js +3 -2
  185. package/dist/auth/oauth/xai.js.map +1 -1
  186. package/dist/auth/resolve.d.ts +19 -9
  187. package/dist/auth/resolve.d.ts.map +1 -1
  188. package/dist/auth/resolve.js +72 -53
  189. package/dist/auth/resolve.js.map +1 -1
  190. package/dist/auth/types.d.ts +29 -8
  191. package/dist/auth/types.d.ts.map +1 -1
  192. package/dist/auth/types.js.map +1 -1
  193. package/dist/bedrock-provider.d.ts.map +1 -1
  194. package/dist/bun-oauth.d.ts.map +1 -1
  195. package/dist/bun-oauth.js +4 -0
  196. package/dist/bun-oauth.js.map +1 -1
  197. package/dist/cli.d.ts.map +1 -1
  198. package/dist/cli.js +4 -1
  199. package/dist/cli.js.map +1 -1
  200. package/dist/compat/extension-oauth-types.d.ts.map +1 -1
  201. package/dist/compat.d.ts +3 -3
  202. package/dist/compat.d.ts.map +1 -1
  203. package/dist/compat.js +9 -6
  204. package/dist/compat.js.map +1 -1
  205. package/dist/env-api-keys.d.ts +5 -0
  206. package/dist/env-api-keys.d.ts.map +1 -1
  207. package/dist/env-api-keys.js +10 -1
  208. package/dist/env-api-keys.js.map +1 -1
  209. package/dist/image-models.d.ts +19 -8
  210. package/dist/image-models.d.ts.map +1 -1
  211. package/dist/image-models.js +14 -13
  212. package/dist/image-models.js.map +1 -1
  213. package/dist/images-api-registry.d.ts +7 -7
  214. package/dist/images-api-registry.d.ts.map +1 -1
  215. package/dist/images-api-registry.js.map +1 -1
  216. package/dist/images.d.ts +7 -2
  217. package/dist/images.d.ts.map +1 -1
  218. package/dist/images.js +5 -0
  219. package/dist/images.js.map +1 -1
  220. package/dist/index.d.ts +4 -3
  221. package/dist/index.d.ts.map +1 -1
  222. package/dist/index.js +3 -2
  223. package/dist/index.js.map +1 -1
  224. package/dist/legacy-api-aliases.d.ts.map +1 -1
  225. package/dist/model-catalog.d.ts +25 -9
  226. package/dist/model-catalog.d.ts.map +1 -1
  227. package/dist/model-catalog.js +14 -2
  228. package/dist/model-catalog.js.map +1 -1
  229. package/dist/models-store.d.ts +14 -14
  230. package/dist/models-store.d.ts.map +1 -1
  231. package/dist/models-store.js +6 -3
  232. package/dist/models-store.js.map +1 -1
  233. package/dist/models.d.ts +138 -47
  234. package/dist/models.d.ts.map +1 -1
  235. package/dist/models.generated.d.ts +136 -38
  236. package/dist/models.generated.d.ts.map +1 -1
  237. package/dist/models.generated.js +136 -38
  238. package/dist/models.generated.js.map +1 -1
  239. package/dist/models.js +390 -104
  240. package/dist/models.js.map +1 -1
  241. package/dist/oauth.d.ts.map +1 -1
  242. package/dist/providers/all.d.ts +19 -13
  243. package/dist/providers/all.d.ts.map +1 -1
  244. package/dist/providers/all.js +33 -23
  245. package/dist/providers/all.js.map +1 -1
  246. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  247. package/dist/providers/amazon-bedrock.js +15 -7
  248. package/dist/providers/amazon-bedrock.js.map +1 -1
  249. package/dist/providers/amazon-bedrock.models.d.ts +4 -2
  250. package/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
  251. package/dist/providers/amazon-bedrock.models.js +4 -2
  252. package/dist/providers/amazon-bedrock.models.js.map +1 -1
  253. package/dist/providers/ant-ling.d.ts.map +1 -1
  254. package/dist/providers/ant-ling.js.map +1 -1
  255. package/dist/providers/ant-ling.models.d.ts +4 -2
  256. package/dist/providers/ant-ling.models.d.ts.map +1 -1
  257. package/dist/providers/ant-ling.models.js +4 -2
  258. package/dist/providers/ant-ling.models.js.map +1 -1
  259. package/dist/providers/anthropic.d.ts.map +1 -1
  260. package/dist/providers/anthropic.js +39 -8
  261. package/dist/providers/anthropic.js.map +1 -1
  262. package/dist/providers/anthropic.models.d.ts +4 -2
  263. package/dist/providers/anthropic.models.d.ts.map +1 -1
  264. package/dist/providers/anthropic.models.js +4 -2
  265. package/dist/providers/anthropic.models.js.map +1 -1
  266. package/dist/providers/azure.d.ts +3 -0
  267. package/dist/providers/azure.d.ts.map +1 -0
  268. package/dist/providers/azure.js +46 -0
  269. package/dist/providers/azure.js.map +1 -0
  270. package/dist/providers/azure.models.d.ts +6 -0
  271. package/dist/providers/azure.models.d.ts.map +1 -0
  272. package/dist/providers/azure.models.js +8 -0
  273. package/dist/providers/azure.models.js.map +1 -0
  274. package/dist/providers/baseten.d.ts +3 -0
  275. package/dist/providers/baseten.d.ts.map +1 -0
  276. package/dist/providers/baseten.js +15 -0
  277. package/dist/providers/baseten.js.map +1 -0
  278. package/dist/providers/baseten.models.d.ts +6 -0
  279. package/dist/providers/baseten.models.d.ts.map +1 -0
  280. package/dist/providers/baseten.models.js +8 -0
  281. package/dist/providers/baseten.models.js.map +1 -0
  282. package/dist/providers/cerebras.d.ts.map +1 -1
  283. package/dist/providers/cerebras.js.map +1 -1
  284. package/dist/providers/cerebras.models.d.ts +4 -2
  285. package/dist/providers/cerebras.models.d.ts.map +1 -1
  286. package/dist/providers/cerebras.models.js +4 -2
  287. package/dist/providers/cerebras.models.js.map +1 -1
  288. package/dist/providers/cloudflare-ai-gateway.d.ts +3 -1
  289. package/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -1
  290. package/dist/providers/cloudflare-ai-gateway.js +4 -0
  291. package/dist/providers/cloudflare-ai-gateway.js.map +1 -1
  292. package/dist/providers/cloudflare-ai-gateway.models.d.ts +4 -2
  293. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -1
  294. package/dist/providers/cloudflare-ai-gateway.models.js +4 -2
  295. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
  296. package/dist/providers/cloudflare-auth.d.ts.map +1 -1
  297. package/dist/providers/cloudflare-auth.js +15 -10
  298. package/dist/providers/cloudflare-auth.js.map +1 -1
  299. package/dist/providers/cloudflare-stream.d.ts +6 -2
  300. package/dist/providers/cloudflare-stream.d.ts.map +1 -1
  301. package/dist/providers/cloudflare-stream.js +6 -0
  302. package/dist/providers/cloudflare-stream.js.map +1 -1
  303. package/dist/providers/cloudflare-workers-ai.d.ts.map +1 -1
  304. package/dist/providers/cloudflare-workers-ai.js +10 -3
  305. package/dist/providers/cloudflare-workers-ai.js.map +1 -1
  306. package/dist/providers/cloudflare-workers-ai.models.d.ts +4 -2
  307. package/dist/providers/cloudflare-workers-ai.models.d.ts.map +1 -1
  308. package/dist/providers/cloudflare-workers-ai.models.js +4 -2
  309. package/dist/providers/cloudflare-workers-ai.models.js.map +1 -1
  310. package/dist/providers/data/.manifest.json +1 -1
  311. package/dist/providers/data/amazon-bedrock.json +1 -1
  312. package/dist/providers/data/ant-ling.json +1 -1
  313. package/dist/providers/data/anthropic.json +1 -1
  314. package/dist/providers/data/azure.json +1 -0
  315. package/dist/providers/data/baseten.json +1 -0
  316. package/dist/providers/data/cerebras.json +1 -1
  317. package/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  318. package/dist/providers/data/cloudflare-workers-ai.json +1 -1
  319. package/dist/providers/data/deepseek.json +1 -1
  320. package/dist/providers/data/fireworks.json +1 -1
  321. package/dist/providers/data/github-copilot.json +1 -1
  322. package/dist/providers/data/google-vertex.json +1 -1
  323. package/dist/providers/data/google.json +1 -1
  324. package/dist/providers/data/groq.json +1 -1
  325. package/dist/providers/data/huggingface.json +1 -1
  326. package/dist/providers/data/kimi-coding.json +1 -1
  327. package/dist/providers/data/meta.json +1 -0
  328. package/dist/providers/data/minimax-cn.json +1 -1
  329. package/dist/providers/data/minimax.json +1 -1
  330. package/dist/providers/data/mistral.json +1 -1
  331. package/dist/providers/data/moonshotai-cn.json +1 -1
  332. package/dist/providers/data/moonshotai.json +1 -1
  333. package/dist/providers/data/nvidia.json +1 -1
  334. package/dist/providers/data/openai-codex.json +1 -1
  335. package/dist/providers/data/openai.json +1 -1
  336. package/dist/providers/data/opencode-go.json +1 -1
  337. package/dist/providers/data/opencode.json +1 -1
  338. package/dist/providers/data/openrouter.json +1 -1
  339. package/dist/providers/data/qwen-token-plan-cn.json +1 -1
  340. package/dist/providers/data/qwen-token-plan-individual.json +1 -0
  341. package/dist/providers/data/qwen-token-plan.json +1 -1
  342. package/dist/providers/data/radius.json +1 -0
  343. package/dist/providers/data/together.json +1 -1
  344. package/dist/providers/data/typesafe.json +1 -0
  345. package/dist/providers/data/vercel-ai-gateway.json +1 -1
  346. package/dist/providers/data/xai.json +1 -1
  347. package/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
  348. package/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
  349. package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
  350. package/dist/providers/data/xiaomi.json +1 -1
  351. package/dist/providers/data/zai-coding-cn.json +1 -1
  352. package/dist/providers/data/zai.json +1 -1
  353. package/dist/providers/deepseek.d.ts.map +1 -1
  354. package/dist/providers/deepseek.js.map +1 -1
  355. package/dist/providers/deepseek.models.d.ts +4 -2
  356. package/dist/providers/deepseek.models.d.ts.map +1 -1
  357. package/dist/providers/deepseek.models.js +4 -2
  358. package/dist/providers/deepseek.models.js.map +1 -1
  359. package/dist/providers/faux.d.ts +19 -13
  360. package/dist/providers/faux.d.ts.map +1 -1
  361. package/dist/providers/faux.js +109 -18
  362. package/dist/providers/faux.js.map +1 -1
  363. package/dist/providers/fireworks.d.ts.map +1 -1
  364. package/dist/providers/fireworks.js.map +1 -1
  365. package/dist/providers/fireworks.models.d.ts +4 -2
  366. package/dist/providers/fireworks.models.d.ts.map +1 -1
  367. package/dist/providers/fireworks.models.js +4 -2
  368. package/dist/providers/fireworks.models.js.map +1 -1
  369. package/dist/providers/github-copilot.d.ts.map +1 -1
  370. package/dist/providers/github-copilot.js +1 -1
  371. package/dist/providers/github-copilot.js.map +1 -1
  372. package/dist/providers/github-copilot.models.d.ts +4 -2
  373. package/dist/providers/github-copilot.models.d.ts.map +1 -1
  374. package/dist/providers/github-copilot.models.js +4 -2
  375. package/dist/providers/github-copilot.models.js.map +1 -1
  376. package/dist/providers/google-vertex.d.ts.map +1 -1
  377. package/dist/providers/google-vertex.js +15 -7
  378. package/dist/providers/google-vertex.js.map +1 -1
  379. package/dist/providers/google-vertex.models.d.ts +4 -2
  380. package/dist/providers/google-vertex.models.d.ts.map +1 -1
  381. package/dist/providers/google-vertex.models.js +4 -2
  382. package/dist/providers/google-vertex.models.js.map +1 -1
  383. package/dist/providers/google.d.ts.map +1 -1
  384. package/dist/providers/google.js.map +1 -1
  385. package/dist/providers/google.models.d.ts +4 -2
  386. package/dist/providers/google.models.d.ts.map +1 -1
  387. package/dist/providers/google.models.js +4 -2
  388. package/dist/providers/google.models.js.map +1 -1
  389. package/dist/providers/groq.d.ts.map +1 -1
  390. package/dist/providers/groq.js.map +1 -1
  391. package/dist/providers/groq.models.d.ts +4 -2
  392. package/dist/providers/groq.models.d.ts.map +1 -1
  393. package/dist/providers/groq.models.js +4 -2
  394. package/dist/providers/groq.models.js.map +1 -1
  395. package/dist/providers/huggingface.d.ts.map +1 -1
  396. package/dist/providers/huggingface.js.map +1 -1
  397. package/dist/providers/huggingface.models.d.ts +4 -2
  398. package/dist/providers/huggingface.models.d.ts.map +1 -1
  399. package/dist/providers/huggingface.models.js +4 -2
  400. package/dist/providers/huggingface.models.js.map +1 -1
  401. package/dist/providers/images/register-builtins.d.ts +1 -1
  402. package/dist/providers/images/register-builtins.d.ts.map +1 -1
  403. package/dist/providers/images/register-builtins.js.map +1 -1
  404. package/dist/providers/kimi-coding.d.ts.map +1 -1
  405. package/dist/providers/kimi-coding.js +1 -0
  406. package/dist/providers/kimi-coding.js.map +1 -1
  407. package/dist/providers/kimi-coding.models.d.ts +4 -2
  408. package/dist/providers/kimi-coding.models.d.ts.map +1 -1
  409. package/dist/providers/kimi-coding.models.js +4 -2
  410. package/dist/providers/kimi-coding.models.js.map +1 -1
  411. package/dist/providers/meta.d.ts +3 -0
  412. package/dist/providers/meta.d.ts.map +1 -0
  413. package/dist/providers/meta.js +24 -0
  414. package/dist/providers/meta.js.map +1 -0
  415. package/dist/providers/meta.models.d.ts +6 -0
  416. package/dist/providers/meta.models.d.ts.map +1 -0
  417. package/dist/providers/meta.models.js +8 -0
  418. package/dist/providers/meta.models.js.map +1 -0
  419. package/dist/providers/minimax-cn.d.ts.map +1 -1
  420. package/dist/providers/minimax-cn.js.map +1 -1
  421. package/dist/providers/minimax-cn.models.d.ts +4 -2
  422. package/dist/providers/minimax-cn.models.d.ts.map +1 -1
  423. package/dist/providers/minimax-cn.models.js +4 -2
  424. package/dist/providers/minimax-cn.models.js.map +1 -1
  425. package/dist/providers/minimax.d.ts.map +1 -1
  426. package/dist/providers/minimax.js.map +1 -1
  427. package/dist/providers/minimax.models.d.ts +4 -2
  428. package/dist/providers/minimax.models.d.ts.map +1 -1
  429. package/dist/providers/minimax.models.js +4 -2
  430. package/dist/providers/minimax.models.js.map +1 -1
  431. package/dist/providers/mistral.d.ts.map +1 -1
  432. package/dist/providers/mistral.js.map +1 -1
  433. package/dist/providers/mistral.models.d.ts +4 -2
  434. package/dist/providers/mistral.models.d.ts.map +1 -1
  435. package/dist/providers/mistral.models.js +4 -2
  436. package/dist/providers/mistral.models.js.map +1 -1
  437. package/dist/providers/moonshotai-cn.d.ts.map +1 -1
  438. package/dist/providers/moonshotai-cn.js.map +1 -1
  439. package/dist/providers/moonshotai-cn.models.d.ts +4 -2
  440. package/dist/providers/moonshotai-cn.models.d.ts.map +1 -1
  441. package/dist/providers/moonshotai-cn.models.js +4 -2
  442. package/dist/providers/moonshotai-cn.models.js.map +1 -1
  443. package/dist/providers/moonshotai.d.ts.map +1 -1
  444. package/dist/providers/moonshotai.js.map +1 -1
  445. package/dist/providers/moonshotai.models.d.ts +4 -2
  446. package/dist/providers/moonshotai.models.d.ts.map +1 -1
  447. package/dist/providers/moonshotai.models.js +4 -2
  448. package/dist/providers/moonshotai.models.js.map +1 -1
  449. package/dist/providers/nvidia.d.ts.map +1 -1
  450. package/dist/providers/nvidia.js.map +1 -1
  451. package/dist/providers/nvidia.models.d.ts +4 -2
  452. package/dist/providers/nvidia.models.d.ts.map +1 -1
  453. package/dist/providers/nvidia.models.js +4 -2
  454. package/dist/providers/nvidia.models.js.map +1 -1
  455. package/dist/providers/openai-codex-catalog.d.ts +19 -0
  456. package/dist/providers/openai-codex-catalog.d.ts.map +1 -0
  457. package/dist/providers/openai-codex-catalog.js +242 -0
  458. package/dist/providers/openai-codex-catalog.js.map +1 -0
  459. package/dist/providers/openai-codex.d.ts +3 -1
  460. package/dist/providers/openai-codex.d.ts.map +1 -1
  461. package/dist/providers/openai-codex.js +10 -3
  462. package/dist/providers/openai-codex.js.map +1 -1
  463. package/dist/providers/openai-codex.models.d.ts +4 -2
  464. package/dist/providers/openai-codex.models.d.ts.map +1 -1
  465. package/dist/providers/openai-codex.models.js +4 -2
  466. package/dist/providers/openai-codex.models.js.map +1 -1
  467. package/dist/providers/openai.d.ts.map +1 -1
  468. package/dist/providers/openai.js +11 -2
  469. package/dist/providers/openai.js.map +1 -1
  470. package/dist/providers/openai.models.d.ts +4 -2
  471. package/dist/providers/openai.models.d.ts.map +1 -1
  472. package/dist/providers/openai.models.js +4 -2
  473. package/dist/providers/openai.models.js.map +1 -1
  474. package/dist/providers/opencode-go.d.ts.map +1 -1
  475. package/dist/providers/opencode-go.js +5 -4
  476. package/dist/providers/opencode-go.js.map +1 -1
  477. package/dist/providers/opencode-go.models.d.ts +4 -2
  478. package/dist/providers/opencode-go.models.d.ts.map +1 -1
  479. package/dist/providers/opencode-go.models.js +4 -2
  480. package/dist/providers/opencode-go.models.js.map +1 -1
  481. package/dist/providers/opencode-headers.d.ts +4 -0
  482. package/dist/providers/opencode-headers.d.ts.map +1 -0
  483. package/dist/providers/opencode-headers.js +22 -0
  484. package/dist/providers/opencode-headers.js.map +1 -0
  485. package/dist/providers/opencode.d.ts +3 -1
  486. package/dist/providers/opencode.d.ts.map +1 -1
  487. package/dist/providers/opencode.js +10 -6
  488. package/dist/providers/opencode.js.map +1 -1
  489. package/dist/providers/opencode.models.d.ts +4 -2
  490. package/dist/providers/opencode.models.d.ts.map +1 -1
  491. package/dist/providers/opencode.models.js +4 -2
  492. package/dist/providers/opencode.models.js.map +1 -1
  493. package/dist/providers/openrouter.d.ts +1 -1
  494. package/dist/providers/openrouter.d.ts.map +1 -1
  495. package/dist/providers/openrouter.js +16 -3
  496. package/dist/providers/openrouter.js.map +1 -1
  497. package/dist/providers/openrouter.models.d.ts +4 -2
  498. package/dist/providers/openrouter.models.d.ts.map +1 -1
  499. package/dist/providers/openrouter.models.js +4 -2
  500. package/dist/providers/openrouter.models.js.map +1 -1
  501. package/dist/providers/qwen-token-plan-cn.d.ts.map +1 -1
  502. package/dist/providers/qwen-token-plan-cn.js.map +1 -1
  503. package/dist/providers/qwen-token-plan-cn.models.d.ts +4 -2
  504. package/dist/providers/qwen-token-plan-cn.models.d.ts.map +1 -1
  505. package/dist/providers/qwen-token-plan-cn.models.js +4 -2
  506. package/dist/providers/qwen-token-plan-cn.models.js.map +1 -1
  507. package/dist/providers/qwen-token-plan-individual.d.ts +3 -0
  508. package/dist/providers/qwen-token-plan-individual.d.ts.map +1 -0
  509. package/dist/providers/qwen-token-plan-individual.js +15 -0
  510. package/dist/providers/qwen-token-plan-individual.js.map +1 -0
  511. package/dist/providers/qwen-token-plan-individual.models.d.ts +6 -0
  512. package/dist/providers/qwen-token-plan-individual.models.d.ts.map +1 -0
  513. package/dist/providers/qwen-token-plan-individual.models.js +8 -0
  514. package/dist/providers/qwen-token-plan-individual.models.js.map +1 -0
  515. package/dist/providers/qwen-token-plan.d.ts.map +1 -1
  516. package/dist/providers/qwen-token-plan.js.map +1 -1
  517. package/dist/providers/qwen-token-plan.models.d.ts +4 -2
  518. package/dist/providers/qwen-token-plan.models.d.ts.map +1 -1
  519. package/dist/providers/qwen-token-plan.models.js +4 -2
  520. package/dist/providers/qwen-token-plan.models.js.map +1 -1
  521. package/dist/providers/radius-config.d.ts.map +1 -1
  522. package/dist/providers/radius-config.js.map +1 -1
  523. package/dist/providers/radius.d.ts.map +1 -1
  524. package/dist/providers/radius.js +53 -29
  525. package/dist/providers/radius.js.map +1 -1
  526. package/dist/providers/radius.models.d.ts +6 -0
  527. package/dist/providers/radius.models.d.ts.map +1 -0
  528. package/dist/providers/radius.models.js +8 -0
  529. package/dist/providers/radius.models.js.map +1 -0
  530. package/dist/providers/together.d.ts.map +1 -1
  531. package/dist/providers/together.js.map +1 -1
  532. package/dist/providers/together.models.d.ts +4 -2
  533. package/dist/providers/together.models.d.ts.map +1 -1
  534. package/dist/providers/together.models.js +4 -2
  535. package/dist/providers/together.models.js.map +1 -1
  536. package/dist/providers/typesafe.d.ts +3 -0
  537. package/dist/providers/typesafe.d.ts.map +1 -0
  538. package/dist/providers/typesafe.js +18 -0
  539. package/dist/providers/typesafe.js.map +1 -0
  540. package/dist/providers/typesafe.models.d.ts +6 -0
  541. package/dist/providers/typesafe.models.d.ts.map +1 -0
  542. package/dist/providers/typesafe.models.js +8 -0
  543. package/dist/providers/typesafe.models.js.map +1 -0
  544. package/dist/providers/vercel-ai-gateway.d.ts.map +1 -1
  545. package/dist/providers/vercel-ai-gateway.js +5 -2
  546. package/dist/providers/vercel-ai-gateway.js.map +1 -1
  547. package/dist/providers/vercel-ai-gateway.models.d.ts +4 -2
  548. package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  549. package/dist/providers/vercel-ai-gateway.models.js +4 -2
  550. package/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  551. package/dist/providers/xai.d.ts +1 -1
  552. package/dist/providers/xai.d.ts.map +1 -1
  553. package/dist/providers/xai.js +2 -5
  554. package/dist/providers/xai.js.map +1 -1
  555. package/dist/providers/xai.models.d.ts +4 -2
  556. package/dist/providers/xai.models.d.ts.map +1 -1
  557. package/dist/providers/xai.models.js +4 -2
  558. package/dist/providers/xai.models.js.map +1 -1
  559. package/dist/providers/xiaomi-token-plan-ams.d.ts.map +1 -1
  560. package/dist/providers/xiaomi-token-plan-ams.js.map +1 -1
  561. package/dist/providers/xiaomi-token-plan-ams.models.d.ts +4 -2
  562. package/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -1
  563. package/dist/providers/xiaomi-token-plan-ams.models.js +4 -2
  564. package/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
  565. package/dist/providers/xiaomi-token-plan-cn.d.ts.map +1 -1
  566. package/dist/providers/xiaomi-token-plan-cn.js.map +1 -1
  567. package/dist/providers/xiaomi-token-plan-cn.models.d.ts +4 -2
  568. package/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -1
  569. package/dist/providers/xiaomi-token-plan-cn.models.js +4 -2
  570. package/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
  571. package/dist/providers/xiaomi-token-plan-sgp.d.ts.map +1 -1
  572. package/dist/providers/xiaomi-token-plan-sgp.js.map +1 -1
  573. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts +4 -2
  574. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -1
  575. package/dist/providers/xiaomi-token-plan-sgp.models.js +4 -2
  576. package/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
  577. package/dist/providers/xiaomi.d.ts.map +1 -1
  578. package/dist/providers/xiaomi.js.map +1 -1
  579. package/dist/providers/xiaomi.models.d.ts +4 -2
  580. package/dist/providers/xiaomi.models.d.ts.map +1 -1
  581. package/dist/providers/xiaomi.models.js +4 -2
  582. package/dist/providers/xiaomi.models.js.map +1 -1
  583. package/dist/providers/zai-coding-cn.d.ts.map +1 -1
  584. package/dist/providers/zai-coding-cn.js.map +1 -1
  585. package/dist/providers/zai-coding-cn.models.d.ts +4 -2
  586. package/dist/providers/zai-coding-cn.models.d.ts.map +1 -1
  587. package/dist/providers/zai-coding-cn.models.js +4 -2
  588. package/dist/providers/zai-coding-cn.models.js.map +1 -1
  589. package/dist/providers/zai.d.ts.map +1 -1
  590. package/dist/providers/zai.js.map +1 -1
  591. package/dist/providers/zai.models.d.ts +4 -2
  592. package/dist/providers/zai.models.d.ts.map +1 -1
  593. package/dist/providers/zai.models.js +4 -2
  594. package/dist/providers/zai.models.js.map +1 -1
  595. package/dist/session-resources.d.ts.map +1 -1
  596. package/dist/session-resources.js.map +1 -1
  597. package/dist/types.d.ts +417 -126
  598. package/dist/types.d.ts.map +1 -1
  599. package/dist/types.js.map +1 -1
  600. package/dist/utils/abort-signals.d.ts.map +1 -1
  601. package/dist/utils/abort-signals.js.map +1 -1
  602. package/dist/utils/abort.d.ts +8 -0
  603. package/dist/utils/abort.d.ts.map +1 -0
  604. package/dist/utils/abort.js +49 -0
  605. package/dist/utils/abort.js.map +1 -0
  606. package/dist/utils/assistant-message-frame.d.ts +77 -0
  607. package/dist/utils/assistant-message-frame.d.ts.map +1 -0
  608. package/dist/utils/assistant-message-frame.js +425 -0
  609. package/dist/utils/assistant-message-frame.js.map +1 -0
  610. package/dist/utils/diagnostics.d.ts +3 -2
  611. package/dist/utils/diagnostics.d.ts.map +1 -1
  612. package/dist/utils/diagnostics.js.map +1 -1
  613. package/dist/utils/error-body.d.ts.map +1 -1
  614. package/dist/utils/error-body.js +23 -4
  615. package/dist/utils/error-body.js.map +1 -1
  616. package/dist/utils/estimate.d.ts +2 -2
  617. package/dist/utils/estimate.d.ts.map +1 -1
  618. package/dist/utils/estimate.js +8 -29
  619. package/dist/utils/estimate.js.map +1 -1
  620. package/dist/utils/event-stream.d.ts.map +1 -1
  621. package/dist/utils/event-stream.js +25 -7
  622. package/dist/utils/event-stream.js.map +1 -1
  623. package/dist/utils/hash.d.ts.map +1 -1
  624. package/dist/utils/hash.js.map +1 -1
  625. package/dist/utils/headers.d.ts +1 -1
  626. package/dist/utils/headers.d.ts.map +1 -1
  627. package/dist/utils/headers.js +10 -8
  628. package/dist/utils/headers.js.map +1 -1
  629. package/dist/utils/json-parse.d.ts.map +1 -1
  630. package/dist/utils/json-parse.js.map +1 -1
  631. package/dist/utils/model-operations.d.ts +11 -0
  632. package/dist/utils/model-operations.d.ts.map +1 -0
  633. package/dist/utils/model-operations.js +47 -0
  634. package/dist/utils/model-operations.js.map +1 -0
  635. package/dist/utils/models-error.d.ts +8 -0
  636. package/dist/utils/models-error.d.ts.map +1 -0
  637. package/dist/utils/models-error.js +19 -0
  638. package/dist/utils/models-error.js.map +1 -0
  639. package/dist/utils/node-http-proxy.d.ts.map +1 -1
  640. package/dist/utils/node-http-proxy.js +53 -12
  641. package/dist/utils/node-http-proxy.js.map +1 -1
  642. package/dist/utils/oauth-page.d.ts.map +1 -0
  643. package/dist/{auth/oauth → utils}/oauth-page.js +1 -1
  644. package/dist/utils/oauth-page.js.map +1 -0
  645. package/dist/utils/overflow.d.ts +11 -1
  646. package/dist/utils/overflow.d.ts.map +1 -1
  647. package/dist/utils/overflow.js +24 -6
  648. package/dist/utils/overflow.js.map +1 -1
  649. package/dist/utils/pi-user-agent.d.ts +2 -0
  650. package/dist/utils/pi-user-agent.d.ts.map +1 -0
  651. package/dist/utils/pi-user-agent.js +12 -0
  652. package/dist/utils/pi-user-agent.js.map +1 -0
  653. package/dist/utils/provider-env.d.ts.map +1 -1
  654. package/dist/utils/provider-env.js.map +1 -1
  655. package/dist/utils/provider-retry.d.ts.map +1 -1
  656. package/dist/utils/provider-retry.js +3 -2
  657. package/dist/utils/provider-retry.js.map +1 -1
  658. package/dist/utils/retry.d.ts +6 -1
  659. package/dist/utils/retry.d.ts.map +1 -1
  660. package/dist/utils/retry.js +23 -2
  661. package/dist/utils/retry.js.map +1 -1
  662. package/dist/utils/sanitize-unicode.d.ts.map +1 -1
  663. package/dist/utils/sanitize-unicode.js.map +1 -1
  664. package/dist/utils/sleep.d.ts +2 -0
  665. package/dist/utils/sleep.d.ts.map +1 -0
  666. package/dist/utils/sleep.js +15 -0
  667. package/dist/utils/sleep.js.map +1 -0
  668. package/dist/utils/text.d.ts +9 -1
  669. package/dist/utils/text.d.ts.map +1 -1
  670. package/dist/utils/text.js +26 -0
  671. package/dist/utils/text.js.map +1 -1
  672. package/dist/utils/transcript.d.ts +87 -0
  673. package/dist/utils/transcript.d.ts.map +1 -0
  674. package/dist/utils/transcript.js +207 -0
  675. package/dist/utils/transcript.js.map +1 -0
  676. package/dist/utils/typebox-helpers.d.ts.map +1 -1
  677. package/dist/utils/typebox-helpers.js.map +1 -1
  678. package/dist/utils/uuid.d.ts +2 -2
  679. package/dist/utils/uuid.d.ts.map +1 -1
  680. package/dist/utils/uuid.js +35 -39
  681. package/dist/utils/uuid.js.map +1 -1
  682. package/dist/utils/validation.d.ts.map +1 -1
  683. package/dist/utils/validation.js +40 -0
  684. package/dist/utils/validation.js.map +1 -1
  685. package/package.json +21 -15
  686. package/dist/auth/oauth/oauth-page.d.ts.map +0 -1
  687. package/dist/auth/oauth/oauth-page.js.map +0 -1
  688. package/dist/image-models.generated.d.ts +0 -605
  689. package/dist/image-models.generated.d.ts.map +0 -1
  690. package/dist/image-models.generated.js +0 -607
  691. package/dist/image-models.generated.js.map +0 -1
  692. package/dist/images-models.d.ts +0 -95
  693. package/dist/images-models.d.ts.map +0 -1
  694. package/dist/images-models.js +0 -142
  695. package/dist/images-models.js.map +0 -1
  696. package/dist/providers/azure-openai-responses.d.ts +0 -3
  697. package/dist/providers/azure-openai-responses.d.ts.map +0 -1
  698. package/dist/providers/azure-openai-responses.js +0 -14
  699. package/dist/providers/azure-openai-responses.js.map +0 -1
  700. package/dist/providers/azure-openai-responses.models.d.ts +0 -4
  701. package/dist/providers/azure-openai-responses.models.d.ts.map +0 -1
  702. package/dist/providers/azure-openai-responses.models.js +0 -6
  703. package/dist/providers/azure-openai-responses.models.js.map +0 -1
  704. package/dist/providers/data/azure-openai-responses.json +0 -1
  705. package/dist/providers/openrouter-images.d.ts +0 -3
  706. package/dist/providers/openrouter-images.d.ts.map +0 -1
  707. package/dist/providers/openrouter-images.js +0 -22
  708. package/dist/providers/openrouter-images.js.map +0 -1
  709. package/dist/utils/deferred-tools.d.ts +0 -9
  710. package/dist/utils/deferred-tools.d.ts.map +0 -1
  711. package/dist/utils/deferred-tools.js +0 -36
  712. package/dist/utils/deferred-tools.js.map +0 -1
  713. /package/dist/{auth/oauth → utils}/oauth-page.d.ts +0 -0
@@ -6,6 +6,10 @@ import { CLOUDFLARE_AI_GATEWAY_MODELS } from "./cloudflare-ai-gateway.models.js"
6
6
  import { cloudflareAIGatewayAuth } from "./cloudflare-auth.js";
7
7
  import { cloudflareStreams } from "./cloudflare-stream.js";
8
8
  export function cloudflareAIGatewayProvider() {
9
+ // The api map is pinned to all three APIs: models.dev's gateway catalog drops and
10
+ // restores `workers-ai/*` (openai-completions) entries over time, and inference from
11
+ // `models` alone would otherwise reject the openai-completions entry whenever the
12
+ // generated catalog happens to contain none.
9
13
  return createProvider({
10
14
  id: "cloudflare-ai-gateway",
11
15
  name: "Cloudflare AI Gateway",
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-ai-gateway.js","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,2BAA2B,GAEzC;IACD,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC;QACnD,GAAG,EAAE;YACJ,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAC/D,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAC/D,kBAAkB,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;SAC3D;KACD,CAAC,CAAC;AAAA,CACH","sourcesContent":["import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.ts\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { openAIResponsesApi } from \"../api/openai-responses.lazy.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { CLOUDFLARE_AI_GATEWAY_MODELS } from \"./cloudflare-ai-gateway.models.ts\";\nimport { cloudflareAIGatewayAuth } from \"./cloudflare-auth.ts\";\nimport { cloudflareStreams } from \"./cloudflare-stream.ts\";\n\nexport function cloudflareAIGatewayProvider(): Provider<\n\t\"anthropic-messages\" | \"openai-completions\" | \"openai-responses\"\n> {\n\treturn createProvider({\n\t\tid: \"cloudflare-ai-gateway\",\n\t\tname: \"Cloudflare AI Gateway\",\n\t\tauth: { apiKey: cloudflareAIGatewayAuth() },\n\t\tmodels: Object.values(CLOUDFLARE_AI_GATEWAY_MODELS),\n\t\tapi: {\n\t\t\t\"anthropic-messages\": cloudflareStreams(anthropicMessagesApi()),\n\t\t\t\"openai-completions\": cloudflareStreams(openAICompletionsApi()),\n\t\t\t\"openai-responses\": cloudflareStreams(openAIResponsesApi()),\n\t\t},\n\t});\n}\n"]}
1
+ {"version":3,"file":"cloudflare-ai-gateway.js","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,MAAM,UAAU,2BAA2B;IAC1C,kFAAkF;IAClF,qFAAqF;IACrF,kFAAkF;IAClF,6CAA6C;IAC7C,OAAO,cAAc,CAAyB;QAC7C,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC;QACnD,GAAG,EAAE;YACJ,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAC/D,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAC/D,kBAAkB,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;SAC3D;KACD,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.ts\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { openAIResponsesApi } from \"../api/openai-responses.lazy.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { CLOUDFLARE_AI_GATEWAY_MODELS } from \"./cloudflare-ai-gateway.models.ts\";\nimport { cloudflareAIGatewayAuth } from \"./cloudflare-auth.ts\";\nimport { cloudflareStreams } from \"./cloudflare-stream.ts\";\n\ntype CloudflareAIGatewayApi = \"anthropic-messages\" | \"openai-completions\" | \"openai-responses\";\n\nexport function cloudflareAIGatewayProvider(): Provider<CloudflareAIGatewayApi> {\n\t// The api map is pinned to all three APIs: models.dev's gateway catalog drops and\n\t// restores `workers-ai/*` (openai-completions) entries over time, and inference from\n\t// `models` alone would otherwise reject the openai-completions entry whenever the\n\t// generated catalog happens to contain none.\n\treturn createProvider<CloudflareAIGatewayApi>({\n\t\tid: \"cloudflare-ai-gateway\",\n\t\tname: \"Cloudflare AI Gateway\",\n\t\tauth: { apiKey: cloudflareAIGatewayAuth() },\n\t\tmodels: Object.values(CLOUDFLARE_AI_GATEWAY_MODELS),\n\t\tapi: {\n\t\t\t\"anthropic-messages\": cloudflareStreams(anthropicMessagesApi()),\n\t\t\t\"openai-completions\": cloudflareStreams(openAICompletionsApi()),\n\t\t\t\"openai-responses\": cloudflareStreams(openAIResponsesApi()),\n\t\t},\n\t});\n}\n"]}
@@ -1,4 +1,6 @@
1
1
  import values from "./data/cloudflare-ai-gateway.json";
2
- import { type ModelCatalog } from "../model-catalog.ts";
3
- export declare const CLOUDFLARE_AI_GATEWAY_MODELS: ModelCatalog<typeof values, "cloudflare-ai-gateway">;
2
+ import { type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from "../model-catalog.ts";
3
+ export declare const CLOUDFLARE_AI_GATEWAY_MODELS: ChatModelCatalog<typeof values, "cloudflare-ai-gateway">;
4
+ export declare const CLOUDFLARE_AI_GATEWAY_IMAGE_MODELS: ImageModelCatalog<typeof values, "cloudflare-ai-gateway">;
5
+ export declare const CLOUDFLARE_AI_GATEWAY_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, "cloudflare-ai-gateway">;
4
6
  //# sourceMappingURL=cloudflare-ai-gateway.models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-ai-gateway.models.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.models.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,mCAAmC,CAAuB;AAC7E,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7E,eAAO,MAAM,4BAA4B,EAAE,YAAY,CAAC,OAAO,MAAM,EAAE,uBAAuB,CACzC,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 values from \"./data/cloudflare-ai-gateway.json\" with { type: \"json\" };\nimport { flattenModelCatalog, type ModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_AI_GATEWAY_MODELS: ModelCatalog<typeof values, \"cloudflare-ai-gateway\"> =\n\tflattenModelCatalog(\"cloudflare-ai-gateway\", values);\n"]}
1
+ {"version":3,"file":"cloudflare-ai-gateway.models.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.models.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,mCAAmC,CAAuB;AAC7E,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,CAAC,OAAO,MAAM,EAAE,uBAAuB,CACzC,CAAC;AAE1D,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,OAAO,MAAM,EAAE,uBAAuB,CAC/C,CAAC;AAE3D,eAAO,MAAM,uCAAuC,EAAE,sBAAsB,CAAC,OAAO,MAAM,EAAE,uBAAuB,CACpD,CAAC"}
@@ -1,6 +1,8 @@
1
1
  // This file is auto-generated by scripts/generate-models.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/cloudflare-ai-gateway.json" with { type: "json" };
4
- import { flattenModelCatalog } from "../model-catalog.js";
5
- export const CLOUDFLARE_AI_GATEWAY_MODELS = flattenModelCatalog("cloudflare-ai-gateway", values);
4
+ import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
5
+ export const CLOUDFLARE_AI_GATEWAY_MODELS = flattenChatModelCatalog("cloudflare-ai-gateway", values);
6
+ export const CLOUDFLARE_AI_GATEWAY_IMAGE_MODELS = flattenImageModelCatalog("cloudflare-ai-gateway", values);
7
+ export const CLOUDFLARE_AI_GATEWAY_CLASSIFIER_MODELS = flattenClassifierModelCatalog("cloudflare-ai-gateway", values);
6
8
  //# 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":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAqB,MAAM,qBAAqB,CAAC;AAE7E,MAAM,CAAC,MAAM,4BAA4B,GACxC,mBAAmB,CAAC,uBAAuB,EAAE,MAAM,CAAC,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 values from \"./data/cloudflare-ai-gateway.json\" with { type: \"json\" };\nimport { flattenModelCatalog, type ModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_AI_GATEWAY_MODELS: ModelCatalog<typeof values, \"cloudflare-ai-gateway\"> =\n\tflattenModelCatalog(\"cloudflare-ai-gateway\", values);\n"]}
1
+ {"version":3,"file":"cloudflare-ai-gateway.models.js","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,4BAA4B,GACxC,uBAAuB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,kCAAkC,GAC9C,wBAAwB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,uCAAuC,GACnD,6BAA6B,CAAC,uBAAuB,EAAE,MAAM,CAAC,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 values from \"./data/cloudflare-ai-gateway.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_AI_GATEWAY_MODELS: ChatModelCatalog<typeof values, \"cloudflare-ai-gateway\"> =\n\tflattenChatModelCatalog(\"cloudflare-ai-gateway\", values);\n\nexport const CLOUDFLARE_AI_GATEWAY_IMAGE_MODELS: ImageModelCatalog<typeof values, \"cloudflare-ai-gateway\"> =\n\tflattenImageModelCatalog(\"cloudflare-ai-gateway\", values);\n\nexport const CLOUDFLARE_AI_GATEWAY_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"cloudflare-ai-gateway\"> =\n\tflattenClassifierModelCatalog(\"cloudflare-ai-gateway\", values);\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;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"]}
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;AAqDlF,wBAAgB,uBAAuB,IAAI,UAAU,CAkBpD;AAED,wBAAgB,uBAAuB,IAAI,UAAU,CA6BpD"}
@@ -1,7 +1,7 @@
1
1
  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
- async function resolveValue(name, ctx, credential) {
4
+ async function resolveValue(name, ctx, credential, signal) {
5
5
  // Per-field merge: prefer the credential value, fall back to ambient env.
6
6
  // A credential carrying only the API key must still pick up the account /
7
7
  // gateway id from the environment.
@@ -10,12 +10,17 @@ async function resolveValue(name, ctx, credential) {
10
10
  ? credential.key
11
11
  : credential.env?.[name]
12
12
  : undefined;
13
- return fromCredential ?? (await ctx.env(name));
13
+ if (fromCredential !== undefined)
14
+ return fromCredential;
15
+ signal.throwIfAborted();
16
+ const value = await ctx.env(name);
17
+ signal.throwIfAborted();
18
+ return value;
14
19
  }
15
- async function resolveCloudflareEnv(kind, ctx, credential) {
16
- const apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential);
17
- const accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential);
18
- const gatewayId = kind === "ai-gateway" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential) : undefined;
20
+ async function resolveCloudflareEnv(kind, ctx, credential, signal) {
21
+ const apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential, signal);
22
+ const accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential, signal);
23
+ const gatewayId = kind === "ai-gateway" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential, signal) : undefined;
19
24
  if (!apiKey || !accountId || (kind === "ai-gateway" && !gatewayId))
20
25
  return undefined;
21
26
  return {
@@ -35,8 +40,8 @@ export function cloudflareWorkersAIAuth() {
35
40
  const accountId = await interaction.prompt({ type: "text", message: "Enter Cloudflare account ID" });
36
41
  return { type: "api_key", key, env: { CLOUDFLARE_ACCOUNT_ID: accountId } };
37
42
  },
38
- resolve: async ({ ctx, credential }) => {
39
- const resolved = await resolveCloudflareEnv("workers-ai", ctx, credential);
43
+ resolve: async ({ ctx, credential, signal }) => {
44
+ const resolved = await resolveCloudflareEnv("workers-ai", ctx, credential, signal);
40
45
  if (!resolved)
41
46
  return undefined;
42
47
  return {
@@ -60,8 +65,8 @@ export function cloudflareAIGatewayAuth() {
60
65
  env: { CLOUDFLARE_ACCOUNT_ID: accountId, CLOUDFLARE_GATEWAY_ID: gatewayId },
61
66
  };
62
67
  },
63
- resolve: async ({ ctx, credential }) => {
64
- const resolved = await resolveCloudflareEnv("ai-gateway", ctx, credential);
68
+ resolve: async ({ ctx, credential, signal }) => {
69
+ const resolved = await resolveCloudflareEnv("ai-gateway", ctx, credential, signal);
65
70
  if (!resolved)
66
71
  return undefined;
67
72
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-auth.js","sourceRoot":"","sources":["../../src/providers/cloudflare-auth.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ApiKeyAuth, ApiKeyCredential, AuthContext } from \"../auth/types.ts\";\nimport type { 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"]}
1
+ {"version":3,"file":"cloudflare-auth.js","sourceRoot":"","sources":["../../src/providers/cloudflare-auth.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ApiKeyAuth, ApiKeyCredential, AuthContext } from \"../auth/types.ts\";\nimport type { 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\tsignal: AbortSignal,\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\tif (fromCredential !== undefined) return fromCredential;\n\tsignal.throwIfAborted();\n\tconst value = await ctx.env(name);\n\tsignal.throwIfAborted();\n\treturn value;\n}\n\nasync function resolveCloudflareEnv(\n\tkind: CloudflareAuthKind,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n\tsignal: AbortSignal,\n): Promise<{ apiKey: string; env: ProviderEnv; source: string } | undefined> {\n\tconst apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential, signal);\n\tconst accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential, signal);\n\tconst gatewayId =\n\t\tkind === \"ai-gateway\" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential, signal) : 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, signal }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"workers-ai\", ctx, credential, signal);\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, signal }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"ai-gateway\", ctx, credential, signal);\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"]}
@@ -1,8 +1,12 @@
1
- import type { Api, Model, ProviderEnv, ProviderStreams } from "../types.ts";
2
- export declare function resolveCloudflareModel<TApi extends Api>(model: Model<TApi>, env: ProviderEnv | undefined): Model<TApi>;
1
+ import type { ProviderClassifier, ProviderEnv, ProviderStreams } from "../types.ts";
2
+ export declare function resolveCloudflareModel<TModel extends {
3
+ baseUrl: string;
4
+ }>(model: TModel, env: ProviderEnv | undefined): TModel;
3
5
  /**
4
6
  * Wrap an API implementation so Cloudflare account/gateway endpoint
5
7
  * placeholders materialize from the resolved provider env before dispatch.
6
8
  */
7
9
  export declare function cloudflareStreams(streams: ProviderStreams): ProviderStreams;
10
+ /** Classifier counterpart of {@link cloudflareStreams}. */
11
+ export declare function cloudflareClassifier(classifier: ProviderClassifier): ProviderClassifier;
8
12
  //# sourceMappingURL=cloudflare-stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-stream.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK5E,wBAAgB,sBAAsB,CAAC,IAAI,SAAS,GAAG,EACtD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,GAAG,EAAE,WAAW,GAAG,SAAS,GAC1B,KAAK,CAAC,IAAI,CAAC,CAMb;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAO3E","sourcesContent":["import type { Api, Model, ProviderEnv, ProviderStreams } from \"../types.ts\";\n\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\n\nexport function resolveCloudflareModel<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tenv: ProviderEnv | undefined,\n): Model<TApi> {\n\tif (!env) return model;\n\tconst baseUrl = model.baseUrl\n\t\t.replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, env[CLOUDFLARE_ACCOUNT_ID] ?? `{${CLOUDFLARE_ACCOUNT_ID}}`)\n\t\t.replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, env[CLOUDFLARE_GATEWAY_ID] ?? `{${CLOUDFLARE_GATEWAY_ID}}`);\n\treturn baseUrl === model.baseUrl ? model : { ...model, baseUrl };\n}\n\n/**\n * Wrap an API implementation so Cloudflare account/gateway endpoint\n * placeholders materialize from the resolved provider env before dispatch.\n */\nexport function cloudflareStreams(streams: ProviderStreams): ProviderStreams {\n\treturn {\n\t\tstream: (model, context, options) =>\n\t\t\tstreams.stream(resolveCloudflareModel(model, options?.env), context, options),\n\t\tstreamSimple: (model, context, options) =>\n\t\t\tstreams.streamSimple(resolveCloudflareModel(model, options?.env), context, options),\n\t};\n}\n"]}
1
+ {"version":3,"file":"cloudflare-stream.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKpF,wBAAgB,sBAAsB,CAAC,MAAM,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EACxE,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,WAAW,GAAG,SAAS,GAC1B,MAAM,CAMR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAO3E;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,kBAAkB,GAAG,kBAAkB,CAKvF"}
@@ -18,4 +18,10 @@ export function cloudflareStreams(streams) {
18
18
  streamSimple: (model, context, options) => streams.streamSimple(resolveCloudflareModel(model, options?.env), context, options),
19
19
  };
20
20
  }
21
+ /** Classifier counterpart of {@link cloudflareStreams}. */
22
+ export function cloudflareClassifier(classifier) {
23
+ return {
24
+ classify: (model, context, options) => classifier.classify(resolveCloudflareModel(model, options?.env), context, options),
25
+ };
26
+ }
21
27
  //# sourceMappingURL=cloudflare-stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-stream.js","sourceRoot":"","sources":["../../src/providers/cloudflare-stream.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AACtD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAEtD,MAAM,UAAU,sBAAsB,CACrC,KAAkB,EAClB,GAA4B,EACd;IACd,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;SAC3B,UAAU,CAAC,IAAI,qBAAqB,GAAG,EAAE,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI,qBAAqB,GAAG,CAAC;SACpG,UAAU,CAAC,IAAI,qBAAqB,GAAG,EAAE,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI,qBAAqB,GAAG,CAAC,CAAC;IACvG,OAAO,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;AAAA,CACjE;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAwB,EAAmB;IAC5E,OAAO;QACN,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CACnC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QAC9E,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CACzC,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;KACpF,CAAC;AAAA,CACF","sourcesContent":["import type { Api, Model, ProviderEnv, ProviderStreams } from \"../types.ts\";\n\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\n\nexport function resolveCloudflareModel<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tenv: ProviderEnv | undefined,\n): Model<TApi> {\n\tif (!env) return model;\n\tconst baseUrl = model.baseUrl\n\t\t.replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, env[CLOUDFLARE_ACCOUNT_ID] ?? `{${CLOUDFLARE_ACCOUNT_ID}}`)\n\t\t.replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, env[CLOUDFLARE_GATEWAY_ID] ?? `{${CLOUDFLARE_GATEWAY_ID}}`);\n\treturn baseUrl === model.baseUrl ? model : { ...model, baseUrl };\n}\n\n/**\n * Wrap an API implementation so Cloudflare account/gateway endpoint\n * placeholders materialize from the resolved provider env before dispatch.\n */\nexport function cloudflareStreams(streams: ProviderStreams): ProviderStreams {\n\treturn {\n\t\tstream: (model, context, options) =>\n\t\t\tstreams.stream(resolveCloudflareModel(model, options?.env), context, options),\n\t\tstreamSimple: (model, context, options) =>\n\t\t\tstreams.streamSimple(resolveCloudflareModel(model, options?.env), context, options),\n\t};\n}\n"]}
1
+ {"version":3,"file":"cloudflare-stream.js","sourceRoot":"","sources":["../../src/providers/cloudflare-stream.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AACtD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAEtD,MAAM,UAAU,sBAAsB,CACrC,KAAa,EACb,GAA4B;IAE5B,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;SAC3B,UAAU,CAAC,IAAI,qBAAqB,GAAG,EAAE,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI,qBAAqB,GAAG,CAAC;SACpG,UAAU,CAAC,IAAI,qBAAqB,GAAG,EAAE,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI,qBAAqB,GAAG,CAAC,CAAC;IACvG,OAAO,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAwB;IACzD,OAAO;QACN,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CACnC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QAC9E,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CACzC,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;KACpF,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,oBAAoB,CAAC,UAA8B;IAClE,OAAO;QACN,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CACrC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;KACnF,CAAC;AACH,CAAC","sourcesContent":["import type { ProviderClassifier, ProviderEnv, ProviderStreams } from \"../types.ts\";\n\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\n\nexport function resolveCloudflareModel<TModel extends { baseUrl: string }>(\n\tmodel: TModel,\n\tenv: ProviderEnv | undefined,\n): TModel {\n\tif (!env) return model;\n\tconst baseUrl = model.baseUrl\n\t\t.replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, env[CLOUDFLARE_ACCOUNT_ID] ?? `{${CLOUDFLARE_ACCOUNT_ID}}`)\n\t\t.replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, env[CLOUDFLARE_GATEWAY_ID] ?? `{${CLOUDFLARE_GATEWAY_ID}}`);\n\treturn baseUrl === model.baseUrl ? model : { ...model, baseUrl };\n}\n\n/**\n * Wrap an API implementation so Cloudflare account/gateway endpoint\n * placeholders materialize from the resolved provider env before dispatch.\n */\nexport function cloudflareStreams(streams: ProviderStreams): ProviderStreams {\n\treturn {\n\t\tstream: (model, context, options) =>\n\t\t\tstreams.stream(resolveCloudflareModel(model, options?.env), context, options),\n\t\tstreamSimple: (model, context, options) =>\n\t\t\tstreams.streamSimple(resolveCloudflareModel(model, options?.env), context, options),\n\t};\n}\n\n/** Classifier counterpart of {@link cloudflareStreams}. */\nexport function cloudflareClassifier(classifier: ProviderClassifier): ProviderClassifier {\n\treturn {\n\t\tclassify: (model, context, options) =>\n\t\t\tclassifier.classify(resolveCloudflareModel(model, options?.env), context, options),\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-workers-ai.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAK7D,wBAAgB,2BAA2B,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAQ5E","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { cloudflareWorkersAIAuth } from \"./cloudflare-auth.ts\";\nimport { cloudflareStreams } from \"./cloudflare-stream.ts\";\nimport { CLOUDFLARE_WORKERS_AI_MODELS } from \"./cloudflare-workers-ai.models.ts\";\n\nexport function cloudflareWorkersAIProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"cloudflare-workers-ai\",\n\t\tname: \"Cloudflare Workers AI\",\n\t\tauth: { apiKey: cloudflareWorkersAIAuth() },\n\t\tmodels: Object.values(CLOUDFLARE_WORKERS_AI_MODELS),\n\t\tapi: cloudflareStreams(openAICompletionsApi()),\n\t});\n}\n"]}
1
+ {"version":3,"file":"cloudflare-workers-ai.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAQ7D,wBAAgB,2BAA2B,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAc5E"}
@@ -1,15 +1,22 @@
1
+ import { cloudflareWorkersAISystemOneApi } from "../api/cloudflare-workers-ai-system-one.lazy.js";
1
2
  import { openAICompletionsApi } from "../api/openai-completions.lazy.js";
2
3
  import { createProvider } from "../models.js";
3
4
  import { cloudflareWorkersAIAuth } from "./cloudflare-auth.js";
4
- import { cloudflareStreams } from "./cloudflare-stream.js";
5
- import { CLOUDFLARE_WORKERS_AI_MODELS } from "./cloudflare-workers-ai.models.js";
5
+ import { cloudflareClassifier, cloudflareStreams } from "./cloudflare-stream.js";
6
+ import { CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS, CLOUDFLARE_WORKERS_AI_MODELS, } from "./cloudflare-workers-ai.models.js";
6
7
  export function cloudflareWorkersAIProvider() {
7
8
  return createProvider({
8
9
  id: "cloudflare-workers-ai",
9
10
  name: "Cloudflare Workers AI",
10
11
  auth: { apiKey: cloudflareWorkersAIAuth() },
11
- models: Object.values(CLOUDFLARE_WORKERS_AI_MODELS),
12
+ models: [
13
+ ...Object.values(CLOUDFLARE_WORKERS_AI_MODELS),
14
+ ...Object.values(CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS),
15
+ ],
12
16
  api: cloudflareStreams(openAICompletionsApi()),
17
+ classifiers: {
18
+ "cloudflare-workers-ai-system-one": cloudflareClassifier(cloudflareWorkersAISystemOneApi()),
19
+ },
13
20
  });
14
21
  }
15
22
  //# sourceMappingURL=cloudflare-workers-ai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-workers-ai.js","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF,MAAM,UAAU,2BAA2B,GAAmC;IAC7E,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC;QACnD,GAAG,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;KAC9C,CAAC,CAAC;AAAA,CACH","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { cloudflareWorkersAIAuth } from \"./cloudflare-auth.ts\";\nimport { cloudflareStreams } from \"./cloudflare-stream.ts\";\nimport { CLOUDFLARE_WORKERS_AI_MODELS } from \"./cloudflare-workers-ai.models.ts\";\n\nexport function cloudflareWorkersAIProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"cloudflare-workers-ai\",\n\t\tname: \"Cloudflare Workers AI\",\n\t\tauth: { apiKey: cloudflareWorkersAIAuth() },\n\t\tmodels: Object.values(CLOUDFLARE_WORKERS_AI_MODELS),\n\t\tapi: cloudflareStreams(openAICompletionsApi()),\n\t});\n}\n"]}
1
+ {"version":3,"file":"cloudflare-workers-ai.js","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EACN,uCAAuC,EACvC,4BAA4B,GAC5B,MAAM,mCAAmC,CAAC;AAE3C,MAAM,UAAU,2BAA2B;IAC1C,OAAO,cAAc,CAAuB;QAC3C,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE;QAC3C,MAAM,EAAE;YACP,GAAG,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC;YAC9C,GAAG,MAAM,CAAC,MAAM,CAAC,uCAAuC,CAAC;SACzD;QACD,GAAG,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;QAC9C,WAAW,EAAE;YACZ,kCAAkC,EAAE,oBAAoB,CAAC,+BAA+B,EAAE,CAAC;SAC3F;KACD,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { cloudflareWorkersAISystemOneApi } from \"../api/cloudflare-workers-ai-system-one.lazy.ts\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { cloudflareWorkersAIAuth } from \"./cloudflare-auth.ts\";\nimport { cloudflareClassifier, cloudflareStreams } from \"./cloudflare-stream.ts\";\nimport {\n\tCLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS,\n\tCLOUDFLARE_WORKERS_AI_MODELS,\n} from \"./cloudflare-workers-ai.models.ts\";\n\nexport function cloudflareWorkersAIProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider<\"openai-completions\">({\n\t\tid: \"cloudflare-workers-ai\",\n\t\tname: \"Cloudflare Workers AI\",\n\t\tauth: { apiKey: cloudflareWorkersAIAuth() },\n\t\tmodels: [\n\t\t\t...Object.values(CLOUDFLARE_WORKERS_AI_MODELS),\n\t\t\t...Object.values(CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS),\n\t\t],\n\t\tapi: cloudflareStreams(openAICompletionsApi()),\n\t\tclassifiers: {\n\t\t\t\"cloudflare-workers-ai-system-one\": cloudflareClassifier(cloudflareWorkersAISystemOneApi()),\n\t\t},\n\t});\n}\n"]}
@@ -1,4 +1,6 @@
1
1
  import values from "./data/cloudflare-workers-ai.json";
2
- import { type ModelCatalog } from "../model-catalog.ts";
3
- export declare const CLOUDFLARE_WORKERS_AI_MODELS: ModelCatalog<typeof values, "cloudflare-workers-ai">;
2
+ import { type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from "../model-catalog.ts";
3
+ export declare const CLOUDFLARE_WORKERS_AI_MODELS: ChatModelCatalog<typeof values, "cloudflare-workers-ai">;
4
+ export declare const CLOUDFLARE_WORKERS_AI_IMAGE_MODELS: ImageModelCatalog<typeof values, "cloudflare-workers-ai">;
5
+ export declare const CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, "cloudflare-workers-ai">;
4
6
  //# sourceMappingURL=cloudflare-workers-ai.models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-workers-ai.models.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.models.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,mCAAmC,CAAuB;AAC7E,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7E,eAAO,MAAM,4BAA4B,EAAE,YAAY,CAAC,OAAO,MAAM,EAAE,uBAAuB,CACzC,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 values from \"./data/cloudflare-workers-ai.json\" with { type: \"json\" };\nimport { flattenModelCatalog, type ModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_WORKERS_AI_MODELS: ModelCatalog<typeof values, \"cloudflare-workers-ai\"> =\n\tflattenModelCatalog(\"cloudflare-workers-ai\", values);\n"]}
1
+ {"version":3,"file":"cloudflare-workers-ai.models.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.models.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,mCAAmC,CAAuB;AAC7E,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,CAAC,OAAO,MAAM,EAAE,uBAAuB,CACzC,CAAC;AAE1D,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,OAAO,MAAM,EAAE,uBAAuB,CAC/C,CAAC;AAE3D,eAAO,MAAM,uCAAuC,EAAE,sBAAsB,CAAC,OAAO,MAAM,EAAE,uBAAuB,CACpD,CAAC"}
@@ -1,6 +1,8 @@
1
1
  // This file is auto-generated by scripts/generate-models.ts
2
2
  // Do not edit manually - run 'npm run generate-models' to update
3
3
  import values from "./data/cloudflare-workers-ai.json" with { type: "json" };
4
- import { flattenModelCatalog } from "../model-catalog.js";
5
- export const CLOUDFLARE_WORKERS_AI_MODELS = flattenModelCatalog("cloudflare-workers-ai", values);
4
+ import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog } from "../model-catalog.js";
5
+ export const CLOUDFLARE_WORKERS_AI_MODELS = flattenChatModelCatalog("cloudflare-workers-ai", values);
6
+ export const CLOUDFLARE_WORKERS_AI_IMAGE_MODELS = flattenImageModelCatalog("cloudflare-workers-ai", values);
7
+ export const CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS = flattenClassifierModelCatalog("cloudflare-workers-ai", values);
6
8
  //# sourceMappingURL=cloudflare-workers-ai.models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-workers-ai.models.js","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAqB,MAAM,qBAAqB,CAAC;AAE7E,MAAM,CAAC,MAAM,4BAA4B,GACxC,mBAAmB,CAAC,uBAAuB,EAAE,MAAM,CAAC,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 values from \"./data/cloudflare-workers-ai.json\" with { type: \"json\" };\nimport { flattenModelCatalog, type ModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_WORKERS_AI_MODELS: ModelCatalog<typeof values, \"cloudflare-workers-ai\"> =\n\tflattenModelCatalog(\"cloudflare-workers-ai\", values);\n"]}
1
+ {"version":3,"file":"cloudflare-workers-ai.models.js","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAA8E,MAAM,qBAAqB,CAAC;AAEnM,MAAM,CAAC,MAAM,4BAA4B,GACxC,uBAAuB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,kCAAkC,GAC9C,wBAAwB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,uCAAuC,GACnD,6BAA6B,CAAC,uBAAuB,EAAE,MAAM,CAAC,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 values from \"./data/cloudflare-workers-ai.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_WORKERS_AI_MODELS: ChatModelCatalog<typeof values, \"cloudflare-workers-ai\"> =\n\tflattenChatModelCatalog(\"cloudflare-workers-ai\", values);\n\nexport const CLOUDFLARE_WORKERS_AI_IMAGE_MODELS: ImageModelCatalog<typeof values, \"cloudflare-workers-ai\"> =\n\tflattenImageModelCatalog(\"cloudflare-workers-ai\", values);\n\nexport const CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"cloudflare-workers-ai\"> =\n\tflattenClassifierModelCatalog(\"cloudflare-workers-ai\", values);\n"]}
@@ -1 +1 @@
1
- {"schemaVersion":3,"generatedAt":"2026-09-22T20:18:28.118Z","structureHash":"3bae01a4b0e8963a28d99c23639dc64ead6c0a22c1c22bba67c3d98e45a65169","files":{"amazon-bedrock.json":"a71a2ed7d8a51c8fc382664b0b656a1676d99315fd98644d2abe002283882baf","ant-ling.json":"4979fe79d99ed97382d7ce40170c6132e932e77906de1eb54464c042e7d63633","anthropic.json":"b9d49a9722ecfd8d0f183a072edde8b203bd55f01a4350d957303309f6af2666","azure-openai-responses.json":"5e15d5b8c36451e59de70e1401870278f232b67983a06f53872452e88b43b9c0","cerebras.json":"9eaa554e1b02f3665f8f63e6432d253bf81351af7c72001054dd8108aa528a52","cloudflare-ai-gateway.json":"0631e2e8fe90a18df8d7be25de4591bc01159bc0b538b3127df95f0067eb247d","cloudflare-workers-ai.json":"7fafe70c396bfeced683d348d743ca7ae109f03b8a6083a37a36d3698090a197","deepseek.json":"0dcc807a4e5827b488c6ceac87884ff6e735e01cf4f2ddfec9dd812e6fde041b","fireworks.json":"b40900e231600af32b5e9fe58270910f9a56f0317672e01cac947880f7acb276","github-copilot.json":"4ad4a2ad9988763812f5ea0c04d949a21c266b753e2059e8078ad921ae59503b","google-vertex.json":"e1631109172dc1f7d7977570420a5bb86258bdd1088427e244a2c51545c4f24d","google.json":"7619bf03edd2a7acb06a2274a14b13c3a61354288abe029a758401d4de36a8fd","groq.json":"e390a39c78567092673afc93e4f6506af8942e8f2ed74aaf1fedde49dc9ba458","huggingface.json":"2f93082144a7b2a1cbf79148244ce7559e0428d6310c5eb0648bca89b15a8b4b","kimi-coding.json":"9da7ea8e9eb8df5d8f73acc25d3da5b41164f522c0f09b45265b4bf104743ac1","minimax-cn.json":"65d37e55a6d9585855f94b3fb7739308d107fe248ebd9e1001d1c5d4606ad2c4","minimax.json":"c7dc5765995ae77242916430929c7cc9a782589f7e483e13f7e01663190d028e","mistral.json":"be522597b22bceeb0bb9a0ba1781647649ffd19637d0c8e67b056d7b0ec33d52","moonshotai-cn.json":"63f77de8782dce6a8d4649b6075ee04c9732863ae85561e0867871220c558bde","moonshotai.json":"2a8dfb97eb905e991c22081dc09bd4a61c05b7fa9ac0d5c72d6930f601f490f1","nvidia.json":"6493e09b5db8b8fe9c8fae5bc15dc287645f37f83a4ed3a1ad1181e5830b5ff7","openai-codex.json":"4a589ec9f6eba725e0b583a20f90774a1c2abf3f9760f8f235763953becb2686","openai.json":"215e76f7f6f4a7e1577028d355588dad9ef5c44ee9283a9a2ff4577761f1d43b","opencode-go.json":"fbee0643daa3ca694a8e543f130a2033848bb43f12cc2ba753475f40eb976ff8","opencode.json":"ced05b097049fa4768742e9053e5ac7d37aef958a8511c86e0345759d59a0411","openrouter.json":"412d52305c2d8d24e383162183965b95a8021a45ecce4ab643f742cdc4e43a17","qwen-token-plan-cn.json":"5e504dfffed7366a0d3c3411bf90995b1c96db88ba5fb062f0bb021f83617cc4","qwen-token-plan.json":"8a80cc62609e2242543bfe29952e3d33387b17540ddbab33c8517e82369752df","together.json":"927c707d06f2236cdab13f14c870fb58bce0614ba7287bbcd57cc9fd66d191ed","vercel-ai-gateway.json":"06cb71e139f7f4fcbe8f2b2dc36a0dd4295cbdb35944fbb42b04a4dc18abfb87","xai.json":"d036f5d1ececd7280c09ca1a6249553f39a7a1087ddb129a0d689a427fc944c4","xiaomi-token-plan-ams.json":"9581074003df2c31dbe483221dbbd1891e92d05102fcb816d51cbb22542174cf","xiaomi-token-plan-cn.json":"df9f18cca62ed29398124b3c9f50b157eea83c32167579a40ac129a3a673e4d6","xiaomi-token-plan-sgp.json":"5681a7eed774bc4b4e296cdae1a5028176b856b48af96cbd7776a03ba905aab1","xiaomi.json":"506eef7c189328cabce83768a48ec3e59c3f8a575f840d8ffcefa6966c340562","zai-coding-cn.json":"abf4cbc22507b9d545842072b5e34bce230025fc20f7b1cc67db3782c1dc4b56","zai.json":"089af736a622b0a25e417493819f4e174884afba43235c5a1f17814057875627"}}
1
+ {"schemaVersion":6,"generatedAt":"2026-10-05T22:01:37.059Z","structureHash":"a907117564782a9905f2630a85a279d2d17e0e4233888732bbbb82f729307140","files":{"amazon-bedrock.json":"a0256dd49b0b7f4fee8a2853aeaecc65e74f643e96348c5be55d2d912b82c6ce","ant-ling.json":"628feab3ef6c7d80ce96f75999804e1d9f05fec3851e5302e30fff3b69db90f6","anthropic.json":"3ff00b68990382e42626ebd1b65dcc28ae3cad9e6faa8920331ba92f067f1b3a","azure.json":"46c4e25b84463c6475e706c581196d2735c35feb9612d2efca0ab932c917d727","baseten.json":"b04d1423d6958bec857ffccc36726f091ec1a8f3a09cf0836b64cc94b0ee697d","cerebras.json":"3eccb58c5de3d0dc7ba49dc6e477ba29f00cb3150ce0a35cc90d59e6b5ab368e","cloudflare-ai-gateway.json":"9030456decc3f3edacc3388165ab87cb3db0360f6b191f4a12e063f5c9464332","cloudflare-workers-ai.json":"d04336a61cacfd0cadbc2f3d30cd3b552e3d153e5a320658a31ba1bab8f01c83","deepseek.json":"10a296fb3e898f7715c80890c8af0af4f5fd58f22dbcd6612fdc5d762157ccdc","fireworks.json":"8db3c11f65a5d76260d5040a5dc5a9ef0f35b92de8505a30907c2355c2837b36","github-copilot.json":"573f05c2dfc0c8158e252dd286d6b174cd323f965284d7ae157439d8e3dea92c","google-vertex.json":"40090c680538bc867f2624d986a449f361be4dfa6ba96d7a27402050f036e009","google.json":"c0f5a633e5e5a5044432db3e537f4bc674d4de18df09325c6349547fcc13cabe","groq.json":"910952ad9dad07856983459d63fce0148dba1203edd7b10d801a77c5824f3405","huggingface.json":"1b8604bd31a5e05fe43a40ec1ec6dfc1a51a28b0b020151ef057fab43f57c923","kimi-coding.json":"582250b920454d98940da3e7e99d30b807edbea28f2eb8ac15f658d2ef41e8fc","meta.json":"0c7e9a370a7005c5a89dc94f0f93bc67b8935c3f802de324f11af6ff56fff429","minimax-cn.json":"f962c20ee6a6a342820f778e9dc363a18a524bf11998f6e2c57f2989915d62e5","minimax.json":"17a432f80d0ea6dd26eade80a4314250d3a855678601728a5f70dd8fa0d21dd2","mistral.json":"10f33bff9adf1248f7e6848e5890c265399f1f94e5b42cfdc28c109d547af98d","moonshotai-cn.json":"79c9585dc84ee525ebaebbc78b3c55f3d369ec884d4f943488f1e0b14e3587f5","moonshotai.json":"1da2c4e34f22aef17a07c974d85bdee8e1b68b6dc712e3769c935b3f1e7dadca","nvidia.json":"a75e963dc81779e3eec01c051b12277c15ec37c5b94ab51ece9e9ccb3b16407c","openai-codex.json":"3cc35a7e122e5c77ee8ec30a9a3bd8bd59629997e85ba2cb3f9e0ed62e9a09c0","openai.json":"87faafcdd168c9b6fdaef521137834a207437daf0d71641fd0a2f3dddf4d1ecb","opencode-go.json":"542a62ae86ec34d55b2927927a3fe007a54aab2729026e578d7ede1bab51e532","opencode.json":"7cf6c2e34b4defd50135572da48030402d33101bcb8c43c7612841e5b3afcd43","openrouter.json":"bfcfe5a6cb4fcf8bc6d002c8c3c29a570069165ddc579e48bc3e88d3e800323f","qwen-token-plan-cn.json":"2469a4091c474ec3db0a49a9962d8d2726c074ad9065b96bc4e0c87861c4c6c5","qwen-token-plan-individual.json":"0fb7cf64faf39d1a3b0a884210a86c87084b805eda15644f5f39293287b959dd","qwen-token-plan.json":"eff10620cb577142de4ec02698d5961a71fda2fe4f6ae7ea9432bad9d6844176","radius.json":"88a3f060a851882df89015bcd346e03238b4b0725bd72c8ad501fcffff782768","together.json":"52293df62191c8e799ae3632f8ab1b3f52ee626aee0280677086627b32864bf7","typesafe.json":"a4429a2f696d5cc5273969af61a7310bda07d6bdcd27bf9ac9c76c534cc43716","vercel-ai-gateway.json":"60f7bd7ae18ade8b8240010d3b7623bfd6c7fb7142460a680ea6791505b6d49d","xai.json":"879c49b78b663a52a220ac4ee013e726b10c4f50aaa03bc58ee53a4b54c76928","xiaomi-token-plan-ams.json":"ca65178f4525d9705bc8d085ed136cecbe149c4080e857ea6a64ae643d2ac00a","xiaomi-token-plan-cn.json":"b065326926681c2262084e59c1c19ebdaf146c07107b5242c76b456becf74db0","xiaomi-token-plan-sgp.json":"92c3d6d707f81fd9cd2b6d1fb57dc431d90ba51e10fe49d97bc8806035c23492","xiaomi.json":"b81d01a374f7b558728c78d81f4168efa9c8996e6e2b5618409a8094b083c759","zai-coding-cn.json":"ee5ee705fb6e413a6088db5e3616c27fce802a8ece6c355f1db35490d787f610","zai.json":"58e6642fdfb736f0b9a4a277c760c536a3cea66a030abbfb2615f7b2851d5c6f"}}