@bastani/pi-ai 0.9.21-alpha.1 → 0.9.21

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 (336) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/NOTICE.md +1 -1
  3. package/dist/api/anthropic-messages.d.ts.map +1 -1
  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-responses.d.ts.map +1 -1
  7. package/dist/api/azure-openai-responses.js +2 -4
  8. package/dist/api/azure-openai-responses.js.map +1 -1
  9. package/dist/api/azure-openai-responses.lazy.d.ts.map +1 -1
  10. package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  11. package/dist/api/bedrock-converse-stream.js.map +1 -1
  12. package/dist/api/bedrock-converse-stream.lazy.d.ts.map +1 -1
  13. package/dist/api/bedrock-converse-stream.lazy.js.map +1 -1
  14. package/dist/api/cloudflare-gateway-binding.d.ts.map +1 -1
  15. package/dist/api/cloudflare-gateway-binding.js.map +1 -1
  16. package/dist/api/cloudflare-workers-ai-system-one.d.ts.map +1 -1
  17. package/dist/api/cloudflare-workers-ai-system-one.js.map +1 -1
  18. package/dist/api/cloudflare-workers-ai-system-one.lazy.d.ts.map +1 -1
  19. package/dist/api/cloudflare.d.ts.map +1 -1
  20. package/dist/api/cloudflare.js.map +1 -1
  21. package/dist/api/constrained-sampling.d.ts.map +1 -1
  22. package/dist/api/constrained-sampling.js.map +1 -1
  23. package/dist/api/github-copilot-headers.d.ts.map +1 -1
  24. package/dist/api/github-copilot-headers.js.map +1 -1
  25. package/dist/api/google-generative-ai.d.ts.map +1 -1
  26. package/dist/api/google-generative-ai.js.map +1 -1
  27. package/dist/api/google-generative-ai.lazy.d.ts.map +1 -1
  28. package/dist/api/google-shared.d.ts.map +1 -1
  29. package/dist/api/google-shared.js.map +1 -1
  30. package/dist/api/google-vertex.d.ts.map +1 -1
  31. package/dist/api/google-vertex.js.map +1 -1
  32. package/dist/api/google-vertex.lazy.d.ts.map +1 -1
  33. package/dist/api/lazy.d.ts.map +1 -1
  34. package/dist/api/lazy.js.map +1 -1
  35. package/dist/api/mistral-conversations.d.ts.map +1 -1
  36. package/dist/api/mistral-conversations.js +6 -0
  37. package/dist/api/mistral-conversations.js.map +1 -1
  38. package/dist/api/mistral-conversations.lazy.d.ts.map +1 -1
  39. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  40. package/dist/api/openai-codex-responses.js.map +1 -1
  41. package/dist/api/openai-codex-responses.lazy.d.ts.map +1 -1
  42. package/dist/api/openai-completions.d.ts.map +1 -1
  43. package/dist/api/openai-completions.js +5 -6
  44. package/dist/api/openai-completions.js.map +1 -1
  45. package/dist/api/openai-completions.lazy.d.ts.map +1 -1
  46. package/dist/api/openai-prompt-cache.d.ts.map +1 -1
  47. package/dist/api/openai-prompt-cache.js.map +1 -1
  48. package/dist/api/openai-responses-shared.d.ts.map +1 -1
  49. package/dist/api/openai-responses-shared.js.map +1 -1
  50. package/dist/api/openai-responses.d.ts.map +1 -1
  51. package/dist/api/openai-responses.js +3 -4
  52. package/dist/api/openai-responses.js.map +1 -1
  53. package/dist/api/openai-responses.lazy.d.ts.map +1 -1
  54. package/dist/api/openrouter-images.d.ts.map +1 -1
  55. package/dist/api/openrouter-images.js.map +1 -1
  56. package/dist/api/openrouter-images.lazy.d.ts.map +1 -1
  57. package/dist/api/pi-messages.d.ts.map +1 -1
  58. package/dist/api/pi-messages.js.map +1 -1
  59. package/dist/api/pi-messages.lazy.d.ts.map +1 -1
  60. package/dist/api/simple-options.d.ts.map +1 -1
  61. package/dist/api/simple-options.js +1 -4
  62. package/dist/api/simple-options.js.map +1 -1
  63. package/dist/api/system-one-shared.d.ts.map +1 -1
  64. package/dist/api/system-one-shared.js.map +1 -1
  65. package/dist/api/transform-messages.d.ts.map +1 -1
  66. package/dist/api/transform-messages.js.map +1 -1
  67. package/dist/api/typesafe-system-one.d.ts.map +1 -1
  68. package/dist/api/typesafe-system-one.js.map +1 -1
  69. package/dist/api/typesafe-system-one.lazy.d.ts.map +1 -1
  70. package/dist/auth/context.d.ts.map +1 -1
  71. package/dist/auth/context.js.map +1 -1
  72. package/dist/auth/credential-store.d.ts.map +1 -1
  73. package/dist/auth/credential-store.js.map +1 -1
  74. package/dist/auth/helpers.d.ts.map +1 -1
  75. package/dist/auth/helpers.js.map +1 -1
  76. package/dist/auth/oauth/anthropic.d.ts.map +1 -1
  77. package/dist/auth/oauth/anthropic.js.map +1 -1
  78. package/dist/auth/oauth/device-code.d.ts.map +1 -1
  79. package/dist/auth/oauth/device-code.js.map +1 -1
  80. package/dist/auth/oauth/github-copilot.d.ts.map +1 -1
  81. package/dist/auth/oauth/github-copilot.js.map +1 -1
  82. package/dist/auth/oauth/kimi-coding.d.ts.map +1 -1
  83. package/dist/auth/oauth/kimi-coding.js.map +1 -1
  84. package/dist/auth/oauth/load.d.ts.map +1 -1
  85. package/dist/auth/oauth/load.js.map +1 -1
  86. package/dist/auth/oauth/meta.d.ts.map +1 -1
  87. package/dist/auth/oauth/meta.js.map +1 -1
  88. package/dist/auth/oauth/oauth-page.d.ts.map +1 -1
  89. package/dist/auth/oauth/oauth-page.js.map +1 -1
  90. package/dist/auth/oauth/openai-codex.d.ts.map +1 -1
  91. package/dist/auth/oauth/openai-codex.js.map +1 -1
  92. package/dist/auth/oauth/openrouter.d.ts.map +1 -1
  93. package/dist/auth/oauth/openrouter.js.map +1 -1
  94. package/dist/auth/oauth/pkce.d.ts.map +1 -1
  95. package/dist/auth/oauth/pkce.js.map +1 -1
  96. package/dist/auth/oauth/radius.d.ts.map +1 -1
  97. package/dist/auth/oauth/radius.js.map +1 -1
  98. package/dist/auth/oauth/xai.d.ts.map +1 -1
  99. package/dist/auth/oauth/xai.js.map +1 -1
  100. package/dist/auth/resolve.d.ts.map +1 -1
  101. package/dist/auth/resolve.js.map +1 -1
  102. package/dist/auth/types.d.ts.map +1 -1
  103. package/dist/bedrock-provider.d.ts.map +1 -1
  104. package/dist/bun-oauth.d.ts.map +1 -1
  105. package/dist/bun-oauth.js.map +1 -1
  106. package/dist/cli.d.ts.map +1 -1
  107. package/dist/cli.js.map +1 -1
  108. package/dist/compat/extension-oauth-types.d.ts.map +1 -1
  109. package/dist/compat.d.ts.map +1 -1
  110. package/dist/compat.js.map +1 -1
  111. package/dist/decision-models.d.ts.map +1 -1
  112. package/dist/decision-models.generated.d.ts.map +1 -1
  113. package/dist/decision-models.js.map +1 -1
  114. package/dist/env-api-keys.d.ts.map +1 -1
  115. package/dist/env-api-keys.js.map +1 -1
  116. package/dist/image-models.d.ts.map +1 -1
  117. package/dist/image-models.js.map +1 -1
  118. package/dist/images-api-registry.d.ts.map +1 -1
  119. package/dist/images-api-registry.js.map +1 -1
  120. package/dist/images.d.ts.map +1 -1
  121. package/dist/images.js.map +1 -1
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/legacy-api-aliases.d.ts.map +1 -1
  124. package/dist/model-catalog.d.ts.map +1 -1
  125. package/dist/model-catalog.js.map +1 -1
  126. package/dist/models-store.d.ts.map +1 -1
  127. package/dist/models-store.js.map +1 -1
  128. package/dist/models.d.ts.map +1 -1
  129. package/dist/models.generated.d.ts.map +1 -1
  130. package/dist/models.js.map +1 -1
  131. package/dist/oauth.d.ts.map +1 -1
  132. package/dist/providers/all.d.ts.map +1 -1
  133. package/dist/providers/all.js.map +1 -1
  134. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  135. package/dist/providers/amazon-bedrock.js.map +1 -1
  136. package/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
  137. package/dist/providers/ant-ling.d.ts.map +1 -1
  138. package/dist/providers/ant-ling.js.map +1 -1
  139. package/dist/providers/ant-ling.models.d.ts.map +1 -1
  140. package/dist/providers/anthropic.d.ts.map +1 -1
  141. package/dist/providers/anthropic.js.map +1 -1
  142. package/dist/providers/anthropic.models.d.ts.map +1 -1
  143. package/dist/providers/azure-openai-responses.d.ts.map +1 -1
  144. package/dist/providers/azure-openai-responses.js.map +1 -1
  145. package/dist/providers/azure-openai-responses.models.d.ts.map +1 -1
  146. package/dist/providers/baseten.d.ts.map +1 -1
  147. package/dist/providers/baseten.js.map +1 -1
  148. package/dist/providers/baseten.models.d.ts.map +1 -1
  149. package/dist/providers/cerebras.d.ts.map +1 -1
  150. package/dist/providers/cerebras.js.map +1 -1
  151. package/dist/providers/cerebras.models.d.ts.map +1 -1
  152. package/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -1
  153. package/dist/providers/cloudflare-ai-gateway.js.map +1 -1
  154. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -1
  155. package/dist/providers/cloudflare-auth.d.ts.map +1 -1
  156. package/dist/providers/cloudflare-auth.js.map +1 -1
  157. package/dist/providers/cloudflare-stream.d.ts.map +1 -1
  158. package/dist/providers/cloudflare-stream.js.map +1 -1
  159. package/dist/providers/cloudflare-workers-ai.d.ts.map +1 -1
  160. package/dist/providers/cloudflare-workers-ai.js.map +1 -1
  161. package/dist/providers/cloudflare-workers-ai.models.d.ts.map +1 -1
  162. package/dist/providers/data/.manifest.json +1 -1
  163. package/dist/providers/data/fireworks.json +1 -1
  164. package/dist/providers/data/opencode-go.json +1 -1
  165. package/dist/providers/data/opencode.json +1 -1
  166. package/dist/providers/data/openrouter.json +1 -1
  167. package/dist/providers/data/vercel-ai-gateway.json +1 -1
  168. package/dist/providers/deepseek.d.ts.map +1 -1
  169. package/dist/providers/deepseek.js.map +1 -1
  170. package/dist/providers/deepseek.models.d.ts.map +1 -1
  171. package/dist/providers/faux.d.ts +2 -2
  172. package/dist/providers/faux.d.ts.map +1 -1
  173. package/dist/providers/faux.js.map +1 -1
  174. package/dist/providers/fireworks.d.ts.map +1 -1
  175. package/dist/providers/fireworks.js.map +1 -1
  176. package/dist/providers/fireworks.models.d.ts.map +1 -1
  177. package/dist/providers/github-copilot-env.d.ts.map +1 -1
  178. package/dist/providers/github-copilot-env.js.map +1 -1
  179. package/dist/providers/github-copilot.d.ts.map +1 -1
  180. package/dist/providers/github-copilot.js.map +1 -1
  181. package/dist/providers/github-copilot.models.d.ts.map +1 -1
  182. package/dist/providers/google-vertex.d.ts.map +1 -1
  183. package/dist/providers/google-vertex.js.map +1 -1
  184. package/dist/providers/google-vertex.models.d.ts.map +1 -1
  185. package/dist/providers/google.d.ts.map +1 -1
  186. package/dist/providers/google.js.map +1 -1
  187. package/dist/providers/google.models.d.ts.map +1 -1
  188. package/dist/providers/groq.d.ts.map +1 -1
  189. package/dist/providers/groq.js.map +1 -1
  190. package/dist/providers/groq.models.d.ts.map +1 -1
  191. package/dist/providers/huggingface.d.ts.map +1 -1
  192. package/dist/providers/huggingface.js.map +1 -1
  193. package/dist/providers/huggingface.models.d.ts.map +1 -1
  194. package/dist/providers/images/register-builtins.d.ts.map +1 -1
  195. package/dist/providers/images/register-builtins.js.map +1 -1
  196. package/dist/providers/kimi-coding.d.ts.map +1 -1
  197. package/dist/providers/kimi-coding.js.map +1 -1
  198. package/dist/providers/kimi-coding.models.d.ts.map +1 -1
  199. package/dist/providers/meta.d.ts.map +1 -1
  200. package/dist/providers/meta.js.map +1 -1
  201. package/dist/providers/meta.models.d.ts.map +1 -1
  202. package/dist/providers/minimax-cn.d.ts.map +1 -1
  203. package/dist/providers/minimax-cn.js.map +1 -1
  204. package/dist/providers/minimax-cn.models.d.ts.map +1 -1
  205. package/dist/providers/minimax.d.ts.map +1 -1
  206. package/dist/providers/minimax.js.map +1 -1
  207. package/dist/providers/minimax.models.d.ts.map +1 -1
  208. package/dist/providers/mistral.d.ts.map +1 -1
  209. package/dist/providers/mistral.js.map +1 -1
  210. package/dist/providers/mistral.models.d.ts.map +1 -1
  211. package/dist/providers/moonshotai-cn.d.ts.map +1 -1
  212. package/dist/providers/moonshotai-cn.js.map +1 -1
  213. package/dist/providers/moonshotai-cn.models.d.ts.map +1 -1
  214. package/dist/providers/moonshotai.d.ts.map +1 -1
  215. package/dist/providers/moonshotai.js.map +1 -1
  216. package/dist/providers/moonshotai.models.d.ts.map +1 -1
  217. package/dist/providers/nvidia.d.ts.map +1 -1
  218. package/dist/providers/nvidia.js.map +1 -1
  219. package/dist/providers/nvidia.models.d.ts.map +1 -1
  220. package/dist/providers/openai-codex.d.ts.map +1 -1
  221. package/dist/providers/openai-codex.js.map +1 -1
  222. package/dist/providers/openai-codex.models.d.ts.map +1 -1
  223. package/dist/providers/openai.d.ts.map +1 -1
  224. package/dist/providers/openai.js.map +1 -1
  225. package/dist/providers/openai.models.d.ts.map +1 -1
  226. package/dist/providers/opencode-go.d.ts.map +1 -1
  227. package/dist/providers/opencode-go.js.map +1 -1
  228. package/dist/providers/opencode-go.models.d.ts.map +1 -1
  229. package/dist/providers/opencode.d.ts.map +1 -1
  230. package/dist/providers/opencode.js.map +1 -1
  231. package/dist/providers/opencode.models.d.ts.map +1 -1
  232. package/dist/providers/openrouter.d.ts.map +1 -1
  233. package/dist/providers/openrouter.js.map +1 -1
  234. package/dist/providers/openrouter.models.d.ts.map +1 -1
  235. package/dist/providers/qwen-token-plan-cn.d.ts.map +1 -1
  236. package/dist/providers/qwen-token-plan-cn.js.map +1 -1
  237. package/dist/providers/qwen-token-plan-cn.models.d.ts.map +1 -1
  238. package/dist/providers/qwen-token-plan-individual.d.ts.map +1 -1
  239. package/dist/providers/qwen-token-plan-individual.js.map +1 -1
  240. package/dist/providers/qwen-token-plan-individual.models.d.ts.map +1 -1
  241. package/dist/providers/qwen-token-plan.d.ts.map +1 -1
  242. package/dist/providers/qwen-token-plan.js.map +1 -1
  243. package/dist/providers/qwen-token-plan.models.d.ts.map +1 -1
  244. package/dist/providers/radius-config.d.ts.map +1 -1
  245. package/dist/providers/radius-config.js.map +1 -1
  246. package/dist/providers/radius.d.ts.map +1 -1
  247. package/dist/providers/radius.js.map +1 -1
  248. package/dist/providers/radius.models.d.ts.map +1 -1
  249. package/dist/providers/together.d.ts.map +1 -1
  250. package/dist/providers/together.js.map +1 -1
  251. package/dist/providers/together.models.d.ts.map +1 -1
  252. package/dist/providers/typesafe.d.ts.map +1 -1
  253. package/dist/providers/typesafe.js.map +1 -1
  254. package/dist/providers/typesafe.models.d.ts.map +1 -1
  255. package/dist/providers/vercel-ai-gateway.d.ts.map +1 -1
  256. package/dist/providers/vercel-ai-gateway.js.map +1 -1
  257. package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  258. package/dist/providers/xai.d.ts.map +1 -1
  259. package/dist/providers/xai.js.map +1 -1
  260. package/dist/providers/xai.models.d.ts.map +1 -1
  261. package/dist/providers/xiaomi-token-plan-ams.d.ts.map +1 -1
  262. package/dist/providers/xiaomi-token-plan-ams.js.map +1 -1
  263. package/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -1
  264. package/dist/providers/xiaomi-token-plan-cn.d.ts.map +1 -1
  265. package/dist/providers/xiaomi-token-plan-cn.js.map +1 -1
  266. package/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -1
  267. package/dist/providers/xiaomi-token-plan-sgp.d.ts.map +1 -1
  268. package/dist/providers/xiaomi-token-plan-sgp.js.map +1 -1
  269. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -1
  270. package/dist/providers/xiaomi.d.ts.map +1 -1
  271. package/dist/providers/xiaomi.js.map +1 -1
  272. package/dist/providers/xiaomi.models.d.ts.map +1 -1
  273. package/dist/providers/zai-coding-cn.d.ts.map +1 -1
  274. package/dist/providers/zai-coding-cn.js.map +1 -1
  275. package/dist/providers/zai-coding-cn.models.d.ts.map +1 -1
  276. package/dist/providers/zai.d.ts.map +1 -1
  277. package/dist/providers/zai.js.map +1 -1
  278. package/dist/providers/zai.models.d.ts.map +1 -1
  279. package/dist/session-resources.d.ts.map +1 -1
  280. package/dist/session-resources.js.map +1 -1
  281. package/dist/types.d.ts.map +1 -1
  282. package/dist/utils/abort-signals.d.ts.map +1 -1
  283. package/dist/utils/abort-signals.js.map +1 -1
  284. package/dist/utils/abort.d.ts.map +1 -1
  285. package/dist/utils/abort.js.map +1 -1
  286. package/dist/utils/assistant-message-frame.d.ts.map +1 -1
  287. package/dist/utils/assistant-message-frame.js.map +1 -1
  288. package/dist/utils/diagnostics.d.ts.map +1 -1
  289. package/dist/utils/diagnostics.js.map +1 -1
  290. package/dist/utils/document-input.d.ts.map +1 -1
  291. package/dist/utils/document-input.js.map +1 -1
  292. package/dist/utils/error-body.d.ts.map +1 -1
  293. package/dist/utils/error-body.js.map +1 -1
  294. package/dist/utils/estimate.d.ts.map +1 -1
  295. package/dist/utils/estimate.js.map +1 -1
  296. package/dist/utils/event-stream.d.ts.map +1 -1
  297. package/dist/utils/event-stream.js.map +1 -1
  298. package/dist/utils/hash.d.ts.map +1 -1
  299. package/dist/utils/hash.js.map +1 -1
  300. package/dist/utils/headers.d.ts.map +1 -1
  301. package/dist/utils/headers.js.map +1 -1
  302. package/dist/utils/json-parse.d.ts.map +1 -1
  303. package/dist/utils/json-parse.js.map +1 -1
  304. package/dist/utils/model-operations.d.ts.map +1 -1
  305. package/dist/utils/model-operations.js.map +1 -1
  306. package/dist/utils/models-error.d.ts.map +1 -1
  307. package/dist/utils/models-error.js.map +1 -1
  308. package/dist/utils/node-http-proxy.d.ts.map +1 -1
  309. package/dist/utils/node-http-proxy.js.map +1 -1
  310. package/dist/utils/overflow.d.ts.map +1 -1
  311. package/dist/utils/overflow.js.map +1 -1
  312. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  313. package/dist/utils/pi-user-agent.js.map +1 -1
  314. package/dist/utils/provider-env.d.ts.map +1 -1
  315. package/dist/utils/provider-env.js.map +1 -1
  316. package/dist/utils/provider-retry.d.ts.map +1 -1
  317. package/dist/utils/provider-retry.js.map +1 -1
  318. package/dist/utils/retry.d.ts.map +1 -1
  319. package/dist/utils/retry.js.map +1 -1
  320. package/dist/utils/sanitize-unicode.d.ts.map +1 -1
  321. package/dist/utils/sanitize-unicode.js.map +1 -1
  322. package/dist/utils/sleep.d.ts.map +1 -1
  323. package/dist/utils/sleep.js.map +1 -1
  324. package/dist/utils/stream-deadline.d.ts.map +1 -1
  325. package/dist/utils/stream-deadline.js.map +1 -1
  326. package/dist/utils/text.d.ts.map +1 -1
  327. package/dist/utils/text.js.map +1 -1
  328. package/dist/utils/transcript.d.ts.map +1 -1
  329. package/dist/utils/transcript.js.map +1 -1
  330. package/dist/utils/typebox-helpers.d.ts.map +1 -1
  331. package/dist/utils/typebox-helpers.js.map +1 -1
  332. package/dist/utils/uuid.d.ts.map +1 -1
  333. package/dist/utils/uuid.js.map +1 -1
  334. package/dist/utils/validation.d.ts.map +1 -1
  335. package/dist/utils/validation.js.map +1 -1
  336. package/package.json +5 -6
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAKA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAqC7D,wBAAgB,iBAAiB,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAgBlE","sourcesContent":["import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.ts\";\nimport { lazyOAuth } from \"../auth/helpers.ts\";\nimport { loadAnthropicOAuth } from \"../auth/oauth/load.ts\";\nimport type { ApiKeyAuth } from \"../auth/types.ts\";\nimport { ANTHROPIC_API_KEY_ENV, ANTHROPIC_AUTH_TOKEN_ENV, ANTHROPIC_OAUTH_TOKEN_ENV } from \"../env-api-keys.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { ANTHROPIC_MODELS } from \"./anthropic.models.ts\";\n\nfunction anthropicApiKeyAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Anthropic API key\",\n\t\tlogin: async (interaction) => {\n\t\t\tinteraction.signal.throwIfAborted();\n\t\t\tconst key = await interaction.prompt({ type: \"secret\", message: \"Enter Anthropic API key\" });\n\t\t\tinteraction.signal.throwIfAborted();\n\t\t\treturn { type: \"api_key\", key };\n\t\t},\n\t\tresolve: async ({ ctx, credential, signal }) => {\n\t\t\tsignal.throwIfAborted();\n\t\t\tif (credential?.key) {\n\t\t\t\treturn { auth: { apiKey: credential.key }, env: credential.env, source: \"stored credential\" };\n\t\t\t}\n\n\t\t\tconst authToken = await ctx.env(ANTHROPIC_AUTH_TOKEN_ENV);\n\t\t\tsignal.throwIfAborted();\n\t\t\tif (authToken) {\n\t\t\t\treturn {\n\t\t\t\t\tauth: { headers: { Authorization: `Bearer ${authToken}` } },\n\t\t\t\t\tsource: ANTHROPIC_AUTH_TOKEN_ENV,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfor (const envVar of [ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_API_KEY_ENV]) {\n\t\t\t\tconst apiKey = await ctx.env(envVar);\n\t\t\t\tsignal.throwIfAborted();\n\t\t\t\tif (apiKey) return { auth: { apiKey }, source: envVar };\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t};\n}\n\nexport function anthropicProvider(): Provider<\"anthropic-messages\"> {\n\treturn createProvider({\n\t\tid: \"anthropic\",\n\t\tname: \"Anthropic\",\n\t\tbaseUrl: \"https://api.anthropic.com\",\n\t\tauth: {\n\t\t\tapiKey: anthropicApiKeyAuth(),\n\t\t\toauth: lazyOAuth({\n\t\t\t\tname: \"Anthropic (Claude Pro/Max)\",\n\t\t\t\tisSubscription: true,\n\t\t\t\tload: loadAnthropicOAuth,\n\t\t\t}),\n\t\t},\n\t\tmodels: Object.values(ANTHROPIC_MODELS),\n\t\tapi: anthropicMessagesApi(),\n\t});\n}\n"]}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAKA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAqC7D,wBAAgB,iBAAiB,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAgBlE"}
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,SAAS,mBAAmB,GAAe;IAC1C,OAAO;QACN,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;YAC7B,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAC7F,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACpC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QAAA,CAChC;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAC/C,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,UAAU,EAAE,GAAG,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;YAC/F,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YAC1D,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,SAAS,EAAE,CAAC;gBACf,OAAO;oBACN,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,SAAS,EAAE,EAAE,EAAE;oBAC3D,MAAM,EAAE,wBAAwB;iBAChC,CAAC;YACH,CAAC;YAED,KAAK,MAAM,MAAM,IAAI,CAAC,yBAAyB,EAAE,qBAAqB,CAAC,EAAE,CAAC;gBACzE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACrC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,MAAM;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YACzD,CAAC;YACD,OAAO,SAAS,CAAC;QAAA,CACjB;KACD,CAAC;AAAA,CACF;AAED,MAAM,UAAU,iBAAiB,GAAmC;IACnE,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,2BAA2B;QACpC,IAAI,EAAE;YACL,MAAM,EAAE,mBAAmB,EAAE;YAC7B,KAAK,EAAE,SAAS,CAAC;gBAChB,IAAI,EAAE,4BAA4B;gBAClC,cAAc,EAAE,IAAI;gBACpB,IAAI,EAAE,kBAAkB;aACxB,CAAC;SACF;QACD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACvC,GAAG,EAAE,oBAAoB,EAAE;KAC3B,CAAC,CAAC;AAAA,CACH","sourcesContent":["import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.ts\";\nimport { lazyOAuth } from \"../auth/helpers.ts\";\nimport { loadAnthropicOAuth } from \"../auth/oauth/load.ts\";\nimport type { ApiKeyAuth } from \"../auth/types.ts\";\nimport { ANTHROPIC_API_KEY_ENV, ANTHROPIC_AUTH_TOKEN_ENV, ANTHROPIC_OAUTH_TOKEN_ENV } from \"../env-api-keys.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { ANTHROPIC_MODELS } from \"./anthropic.models.ts\";\n\nfunction anthropicApiKeyAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Anthropic API key\",\n\t\tlogin: async (interaction) => {\n\t\t\tinteraction.signal.throwIfAborted();\n\t\t\tconst key = await interaction.prompt({ type: \"secret\", message: \"Enter Anthropic API key\" });\n\t\t\tinteraction.signal.throwIfAborted();\n\t\t\treturn { type: \"api_key\", key };\n\t\t},\n\t\tresolve: async ({ ctx, credential, signal }) => {\n\t\t\tsignal.throwIfAborted();\n\t\t\tif (credential?.key) {\n\t\t\t\treturn { auth: { apiKey: credential.key }, env: credential.env, source: \"stored credential\" };\n\t\t\t}\n\n\t\t\tconst authToken = await ctx.env(ANTHROPIC_AUTH_TOKEN_ENV);\n\t\t\tsignal.throwIfAborted();\n\t\t\tif (authToken) {\n\t\t\t\treturn {\n\t\t\t\t\tauth: { headers: { Authorization: `Bearer ${authToken}` } },\n\t\t\t\t\tsource: ANTHROPIC_AUTH_TOKEN_ENV,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfor (const envVar of [ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_API_KEY_ENV]) {\n\t\t\t\tconst apiKey = await ctx.env(envVar);\n\t\t\t\tsignal.throwIfAborted();\n\t\t\t\tif (apiKey) return { auth: { apiKey }, source: envVar };\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t};\n}\n\nexport function anthropicProvider(): Provider<\"anthropic-messages\"> {\n\treturn createProvider({\n\t\tid: \"anthropic\",\n\t\tname: \"Anthropic\",\n\t\tbaseUrl: \"https://api.anthropic.com\",\n\t\tauth: {\n\t\t\tapiKey: anthropicApiKeyAuth(),\n\t\t\toauth: lazyOAuth({\n\t\t\t\tname: \"Anthropic (Claude Pro/Max)\",\n\t\t\t\tisSubscription: true,\n\t\t\t\tload: loadAnthropicOAuth,\n\t\t\t}),\n\t\t},\n\t\tmodels: Object.values(ANTHROPIC_MODELS),\n\t\tapi: anthropicMessagesApi(),\n\t});\n}\n"]}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,SAAS,mBAAmB;IAC3B,OAAO;QACN,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YAC5B,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAC7F,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACpC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;YAC9C,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,UAAU,EAAE,GAAG,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;YAC/F,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YAC1D,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,SAAS,EAAE,CAAC;gBACf,OAAO;oBACN,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,SAAS,EAAE,EAAE,EAAE;oBAC3D,MAAM,EAAE,wBAAwB;iBAChC,CAAC;YACH,CAAC;YAED,KAAK,MAAM,MAAM,IAAI,CAAC,yBAAyB,EAAE,qBAAqB,CAAC,EAAE,CAAC;gBACzE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACrC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,MAAM;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YACzD,CAAC;YACD,OAAO,SAAS,CAAC;QAClB,CAAC;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB;IAChC,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,2BAA2B;QACpC,IAAI,EAAE;YACL,MAAM,EAAE,mBAAmB,EAAE;YAC7B,KAAK,EAAE,SAAS,CAAC;gBAChB,IAAI,EAAE,4BAA4B;gBAClC,cAAc,EAAE,IAAI;gBACpB,IAAI,EAAE,kBAAkB;aACxB,CAAC;SACF;QACD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACvC,GAAG,EAAE,oBAAoB,EAAE;KAC3B,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.ts\";\nimport { lazyOAuth } from \"../auth/helpers.ts\";\nimport { loadAnthropicOAuth } from \"../auth/oauth/load.ts\";\nimport type { ApiKeyAuth } from \"../auth/types.ts\";\nimport { ANTHROPIC_API_KEY_ENV, ANTHROPIC_AUTH_TOKEN_ENV, ANTHROPIC_OAUTH_TOKEN_ENV } from \"../env-api-keys.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { ANTHROPIC_MODELS } from \"./anthropic.models.ts\";\n\nfunction anthropicApiKeyAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Anthropic API key\",\n\t\tlogin: async (interaction) => {\n\t\t\tinteraction.signal.throwIfAborted();\n\t\t\tconst key = await interaction.prompt({ type: \"secret\", message: \"Enter Anthropic API key\" });\n\t\t\tinteraction.signal.throwIfAborted();\n\t\t\treturn { type: \"api_key\", key };\n\t\t},\n\t\tresolve: async ({ ctx, credential, signal }) => {\n\t\t\tsignal.throwIfAborted();\n\t\t\tif (credential?.key) {\n\t\t\t\treturn { auth: { apiKey: credential.key }, env: credential.env, source: \"stored credential\" };\n\t\t\t}\n\n\t\t\tconst authToken = await ctx.env(ANTHROPIC_AUTH_TOKEN_ENV);\n\t\t\tsignal.throwIfAborted();\n\t\t\tif (authToken) {\n\t\t\t\treturn {\n\t\t\t\t\tauth: { headers: { Authorization: `Bearer ${authToken}` } },\n\t\t\t\t\tsource: ANTHROPIC_AUTH_TOKEN_ENV,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfor (const envVar of [ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_API_KEY_ENV]) {\n\t\t\t\tconst apiKey = await ctx.env(envVar);\n\t\t\t\tsignal.throwIfAborted();\n\t\t\t\tif (apiKey) return { auth: { apiKey }, source: envVar };\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t};\n}\n\nexport function anthropicProvider(): Provider<\"anthropic-messages\"> {\n\treturn createProvider({\n\t\tid: \"anthropic\",\n\t\tname: \"Anthropic\",\n\t\tbaseUrl: \"https://api.anthropic.com\",\n\t\tauth: {\n\t\t\tapiKey: anthropicApiKeyAuth(),\n\t\t\toauth: lazyOAuth({\n\t\t\t\tname: \"Anthropic (Claude Pro/Max)\",\n\t\t\t\tisSubscription: true,\n\t\t\t\tload: loadAnthropicOAuth,\n\t\t\t}),\n\t\t},\n\t\tmodels: Object.values(ANTHROPIC_MODELS),\n\t\tapi: anthropicMessagesApi(),\n\t});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.models.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.models.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,cAAc,uBAAuB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,WAAW,CAClF,CAAC;AAE9C,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,cAAc,uBAAuB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,WAAW,CACxF,CAAC;AAE/C,eAAO,MAAM,2BAA2B,EAAE,sBAAsB,CAAC,cAAc,uBAAuB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,WAAW,CAC7F,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/anthropic.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenImageModelCatalog, flattenClassifierModelCatalog, type ChatModelCatalog, type ImageModelCatalog, type ClassifierModelCatalog } from \"../model-catalog.ts\";\n\nexport const ANTHROPIC_MODELS: ChatModelCatalog<typeof import(\"./data/anthropic.json\", { with: { type: \"json\" } }), \"anthropic\"> =\n\tflattenChatModelCatalog(\"anthropic\", values);\n\nexport const ANTHROPIC_IMAGE_MODELS: ImageModelCatalog<typeof import(\"./data/anthropic.json\", { with: { type: \"json\" } }), \"anthropic\"> =\n\tflattenImageModelCatalog(\"anthropic\", values);\n\nexport const ANTHROPIC_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof import(\"./data/anthropic.json\", { with: { type: \"json\" } }), \"anthropic\"> =\n\tflattenClassifierModelCatalog(\"anthropic\", values);\n"]}
1
+ {"version":3,"file":"anthropic.models.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.models.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,cAAc,uBAAuB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,WAAW,CAClF,CAAC;AAE9C,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,CAAC,cAAc,uBAAuB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,WAAW,CACxF,CAAC;AAE/C,eAAO,MAAM,2BAA2B,EAAE,sBAAsB,CAAC,cAAc,uBAAuB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,WAAW,CAC7F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"azure-openai-responses.d.ts","sourceRoot":"","sources":["../../src/providers/azure-openai-responses.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7D,wBAAgB,4BAA4B,IAAI,QAAQ,CAAC,wBAAwB,CAAC,CAQjF","sourcesContent":["import { azureOpenAIResponsesApi } from \"../api/azure-openai-responses.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { AZURE_OPENAI_RESPONSES_MODELS } from \"./azure-openai-responses.models.ts\";\n\nexport function azureOpenAIResponsesProvider(): Provider<\"azure-openai-responses\"> {\n\treturn createProvider({\n\t\tid: \"azure-openai-responses\",\n\t\tname: \"Azure OpenAI\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Azure OpenAI API key\", [\"AZURE_OPENAI_API_KEY\"]) },\n\t\tmodels: Object.values(AZURE_OPENAI_RESPONSES_MODELS),\n\t\tapi: azureOpenAIResponsesApi(),\n\t});\n}\n"]}
1
+ {"version":3,"file":"azure-openai-responses.d.ts","sourceRoot":"","sources":["../../src/providers/azure-openai-responses.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7D,wBAAgB,4BAA4B,IAAI,QAAQ,CAAC,wBAAwB,CAAC,CAQjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"azure-openai-responses.js","sourceRoot":"","sources":["../../src/providers/azure-openai-responses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,MAAM,UAAU,4BAA4B,GAAuC;IAClF,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,sBAAsB,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE;QACjF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC;QACpD,GAAG,EAAE,uBAAuB,EAAE;KAC9B,CAAC,CAAC;AAAA,CACH","sourcesContent":["import { azureOpenAIResponsesApi } from \"../api/azure-openai-responses.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { AZURE_OPENAI_RESPONSES_MODELS } from \"./azure-openai-responses.models.ts\";\n\nexport function azureOpenAIResponsesProvider(): Provider<\"azure-openai-responses\"> {\n\treturn createProvider({\n\t\tid: \"azure-openai-responses\",\n\t\tname: \"Azure OpenAI\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Azure OpenAI API key\", [\"AZURE_OPENAI_API_KEY\"]) },\n\t\tmodels: Object.values(AZURE_OPENAI_RESPONSES_MODELS),\n\t\tapi: azureOpenAIResponsesApi(),\n\t});\n}\n"]}
1
+ {"version":3,"file":"azure-openai-responses.js","sourceRoot":"","sources":["../../src/providers/azure-openai-responses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,MAAM,UAAU,4BAA4B;IAC3C,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,sBAAsB,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE;QACjF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC;QACpD,GAAG,EAAE,uBAAuB,EAAE;KAC9B,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { azureOpenAIResponsesApi } from \"../api/azure-openai-responses.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { AZURE_OPENAI_RESPONSES_MODELS } from \"./azure-openai-responses.models.ts\";\n\nexport function azureOpenAIResponsesProvider(): Provider<\"azure-openai-responses\"> {\n\treturn createProvider({\n\t\tid: \"azure-openai-responses\",\n\t\tname: \"Azure OpenAI\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Azure OpenAI API key\", [\"AZURE_OPENAI_API_KEY\"]) },\n\t\tmodels: Object.values(AZURE_OPENAI_RESPONSES_MODELS),\n\t\tapi: azureOpenAIResponsesApi(),\n\t});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"azure-openai-responses.models.d.ts","sourceRoot":"","sources":["../../src/providers/azure-openai-responses.models.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,CAAC,cAAc,oCAAoC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,wBAAwB,CAC5G,CAAC;AAE3D,eAAO,MAAM,mCAAmC,EAAE,iBAAiB,CAAC,cAAc,oCAAoC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,wBAAwB,CAClH,CAAC;AAE5D,eAAO,MAAM,wCAAwC,EAAE,sBAAsB,CAAC,cAAc,oCAAoC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,wBAAwB,CACvH,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/azure-openai-responses.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenImageModelCatalog, flattenClassifierModelCatalog, type ChatModelCatalog, type ImageModelCatalog, type ClassifierModelCatalog } from \"../model-catalog.ts\";\n\nexport const AZURE_OPENAI_RESPONSES_MODELS: ChatModelCatalog<typeof import(\"./data/azure-openai-responses.json\", { with: { type: \"json\" } }), \"azure-openai-responses\"> =\n\tflattenChatModelCatalog(\"azure-openai-responses\", values);\n\nexport const AZURE_OPENAI_RESPONSES_IMAGE_MODELS: ImageModelCatalog<typeof import(\"./data/azure-openai-responses.json\", { with: { type: \"json\" } }), \"azure-openai-responses\"> =\n\tflattenImageModelCatalog(\"azure-openai-responses\", values);\n\nexport const AZURE_OPENAI_RESPONSES_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof import(\"./data/azure-openai-responses.json\", { with: { type: \"json\" } }), \"azure-openai-responses\"> =\n\tflattenClassifierModelCatalog(\"azure-openai-responses\", values);\n"]}
1
+ {"version":3,"file":"azure-openai-responses.models.d.ts","sourceRoot":"","sources":["../../src/providers/azure-openai-responses.models.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,CAAC,cAAc,oCAAoC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,wBAAwB,CAC5G,CAAC;AAE3D,eAAO,MAAM,mCAAmC,EAAE,iBAAiB,CAAC,cAAc,oCAAoC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,wBAAwB,CAClH,CAAC;AAE5D,eAAO,MAAM,wCAAwC,EAAE,sBAAsB,CAAC,cAAc,oCAAoC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,wBAAwB,CACvH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"baseten.d.ts","sourceRoot":"","sources":["../../src/providers/baseten.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7D,wBAAgB,eAAe,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAShE","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { BASETEN_MODELS } from \"./baseten.models.ts\";\n\nexport function basetenProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"baseten\",\n\t\tname: \"Baseten\",\n\t\tbaseUrl: \"https://inference.baseten.co/v1\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Baseten API key\", [\"BASETEN_API_KEY\"]) },\n\t\tmodels: Object.values(BASETEN_MODELS),\n\t\tapi: openAICompletionsApi(),\n\t});\n}\n"]}
1
+ {"version":3,"file":"baseten.d.ts","sourceRoot":"","sources":["../../src/providers/baseten.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7D,wBAAgB,eAAe,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAShE"}
@@ -1 +1 @@
1
- {"version":3,"file":"baseten.js","sourceRoot":"","sources":["../../src/providers/baseten.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,UAAU,eAAe,GAAmC;IACjE,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,iCAAiC;QAC1C,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE;QACvE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;QACrC,GAAG,EAAE,oBAAoB,EAAE;KAC3B,CAAC,CAAC;AAAA,CACH","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { BASETEN_MODELS } from \"./baseten.models.ts\";\n\nexport function basetenProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"baseten\",\n\t\tname: \"Baseten\",\n\t\tbaseUrl: \"https://inference.baseten.co/v1\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Baseten API key\", [\"BASETEN_API_KEY\"]) },\n\t\tmodels: Object.values(BASETEN_MODELS),\n\t\tapi: openAICompletionsApi(),\n\t});\n}\n"]}
1
+ {"version":3,"file":"baseten.js","sourceRoot":"","sources":["../../src/providers/baseten.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,UAAU,eAAe;IAC9B,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,iCAAiC;QAC1C,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE;QACvE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;QACrC,GAAG,EAAE,oBAAoB,EAAE;KAC3B,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { BASETEN_MODELS } from \"./baseten.models.ts\";\n\nexport function basetenProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"baseten\",\n\t\tname: \"Baseten\",\n\t\tbaseUrl: \"https://inference.baseten.co/v1\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Baseten API key\", [\"BASETEN_API_KEY\"]) },\n\t\tmodels: Object.values(BASETEN_MODELS),\n\t\tapi: openAICompletionsApi(),\n\t});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"baseten.models.d.ts","sourceRoot":"","sources":["../../src/providers/baseten.models.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,cAAc,EAAE,gBAAgB,CAAC,cAAc,qBAAqB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,SAAS,CAC9E,CAAC;AAE5C,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,cAAc,qBAAqB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,SAAS,CACpF,CAAC;AAE7C,eAAO,MAAM,yBAAyB,EAAE,sBAAsB,CAAC,cAAc,qBAAqB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,SAAS,CACzF,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/baseten.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenImageModelCatalog, flattenClassifierModelCatalog, type ChatModelCatalog, type ImageModelCatalog, type ClassifierModelCatalog } from \"../model-catalog.ts\";\n\nexport const BASETEN_MODELS: ChatModelCatalog<typeof import(\"./data/baseten.json\", { with: { type: \"json\" } }), \"baseten\"> =\n\tflattenChatModelCatalog(\"baseten\", values);\n\nexport const BASETEN_IMAGE_MODELS: ImageModelCatalog<typeof import(\"./data/baseten.json\", { with: { type: \"json\" } }), \"baseten\"> =\n\tflattenImageModelCatalog(\"baseten\", values);\n\nexport const BASETEN_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof import(\"./data/baseten.json\", { with: { type: \"json\" } }), \"baseten\"> =\n\tflattenClassifierModelCatalog(\"baseten\", values);\n"]}
1
+ {"version":3,"file":"baseten.models.d.ts","sourceRoot":"","sources":["../../src/providers/baseten.models.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,cAAc,EAAE,gBAAgB,CAAC,cAAc,qBAAqB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,SAAS,CAC9E,CAAC;AAE5C,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,cAAc,qBAAqB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,SAAS,CACpF,CAAC;AAE7C,eAAO,MAAM,yBAAyB,EAAE,sBAAsB,CAAC,cAAc,qBAAqB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,SAAS,CACzF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cerebras.d.ts","sourceRoot":"","sources":["../../src/providers/cerebras.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7D,wBAAgB,gBAAgB,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CASjE","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { CEREBRAS_MODELS } from \"./cerebras.models.ts\";\n\nexport function cerebrasProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"cerebras\",\n\t\tname: \"Cerebras\",\n\t\tbaseUrl: \"https://api.cerebras.ai/v1\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Cerebras API key\", [\"CEREBRAS_API_KEY\"]) },\n\t\tmodels: Object.values(CEREBRAS_MODELS),\n\t\tapi: openAICompletionsApi(),\n\t});\n}\n"]}
1
+ {"version":3,"file":"cerebras.d.ts","sourceRoot":"","sources":["../../src/providers/cerebras.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7D,wBAAgB,gBAAgB,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CASjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"cerebras.js","sourceRoot":"","sources":["../../src/providers/cerebras.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,UAAU,gBAAgB,GAAmC;IAClE,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,4BAA4B;QACrC,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,kBAAkB,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE;QACzE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;QACtC,GAAG,EAAE,oBAAoB,EAAE;KAC3B,CAAC,CAAC;AAAA,CACH","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { CEREBRAS_MODELS } from \"./cerebras.models.ts\";\n\nexport function cerebrasProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"cerebras\",\n\t\tname: \"Cerebras\",\n\t\tbaseUrl: \"https://api.cerebras.ai/v1\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Cerebras API key\", [\"CEREBRAS_API_KEY\"]) },\n\t\tmodels: Object.values(CEREBRAS_MODELS),\n\t\tapi: openAICompletionsApi(),\n\t});\n}\n"]}
1
+ {"version":3,"file":"cerebras.js","sourceRoot":"","sources":["../../src/providers/cerebras.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,UAAU,gBAAgB;IAC/B,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,4BAA4B;QACrC,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,kBAAkB,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE;QACzE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;QACtC,GAAG,EAAE,oBAAoB,EAAE;KAC3B,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { CEREBRAS_MODELS } from \"./cerebras.models.ts\";\n\nexport function cerebrasProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"cerebras\",\n\t\tname: \"Cerebras\",\n\t\tbaseUrl: \"https://api.cerebras.ai/v1\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Cerebras API key\", [\"CEREBRAS_API_KEY\"]) },\n\t\tmodels: Object.values(CEREBRAS_MODELS),\n\t\tapi: openAICompletionsApi(),\n\t});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"cerebras.models.d.ts","sourceRoot":"","sources":["../../src/providers/cerebras.models.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,cAAc,sBAAsB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,UAAU,CAChF,CAAC;AAE7C,eAAO,MAAM,qBAAqB,EAAE,iBAAiB,CAAC,cAAc,sBAAsB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,UAAU,CACtF,CAAC;AAE9C,eAAO,MAAM,0BAA0B,EAAE,sBAAsB,CAAC,cAAc,sBAAsB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,UAAU,CAC3F,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/cerebras.json\" with { type: \"json\" };\nimport { flattenChatModelCatalog, flattenImageModelCatalog, flattenClassifierModelCatalog, type ChatModelCatalog, type ImageModelCatalog, type ClassifierModelCatalog } from \"../model-catalog.ts\";\n\nexport const CEREBRAS_MODELS: ChatModelCatalog<typeof import(\"./data/cerebras.json\", { with: { type: \"json\" } }), \"cerebras\"> =\n\tflattenChatModelCatalog(\"cerebras\", values);\n\nexport const CEREBRAS_IMAGE_MODELS: ImageModelCatalog<typeof import(\"./data/cerebras.json\", { with: { type: \"json\" } }), \"cerebras\"> =\n\tflattenImageModelCatalog(\"cerebras\", values);\n\nexport const CEREBRAS_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof import(\"./data/cerebras.json\", { with: { type: \"json\" } }), \"cerebras\"> =\n\tflattenClassifierModelCatalog(\"cerebras\", values);\n"]}
1
+ {"version":3,"file":"cerebras.models.d.ts","sourceRoot":"","sources":["../../src/providers/cerebras.models.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,cAAc,sBAAsB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,UAAU,CAChF,CAAC;AAE7C,eAAO,MAAM,qBAAqB,EAAE,iBAAiB,CAAC,cAAc,sBAAsB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,UAAU,CACtF,CAAC;AAE9C,eAAO,MAAM,0BAA0B,EAAE,sBAAsB,CAAC,cAAc,sBAAsB,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,UAAU,CAC3F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-ai-gateway.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAK7D,KAAK,sBAAsB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAE/F,wBAAgB,2BAA2B,IAAI,QAAQ,CAAC,sBAAsB,CAAC,CAY9E","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\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
+ {"version":3,"file":"cloudflare-ai-gateway.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAK7D,KAAK,sBAAsB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAE/F,wBAAgB,2BAA2B,IAAI,QAAQ,CAAC,sBAAsB,CAAC,CAY9E"}
@@ -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;AAI3D,MAAM,UAAU,2BAA2B,GAAqC;IAC/E,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;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\ntype CloudflareAIGatewayApi = \"anthropic-messages\" | \"openai-completions\" | \"openai-responses\";\n\nexport function cloudflareAIGatewayProvider(): Provider<CloudflareAIGatewayApi> {\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
+ {"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,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\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 +1 @@
1
- {"version":3,"file":"cloudflare-ai-gateway.models.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.models.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CAC1G,CAAC;AAE1D,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CAChH,CAAC;AAE3D,eAAO,MAAM,uCAAuC,EAAE,sBAAsB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CACrH,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, flattenImageModelCatalog, flattenClassifierModelCatalog, type ChatModelCatalog, type ImageModelCatalog, type ClassifierModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_AI_GATEWAY_MODELS: ChatModelCatalog<typeof import(\"./data/cloudflare-ai-gateway.json\", { with: { type: \"json\" } }), \"cloudflare-ai-gateway\"> =\n\tflattenChatModelCatalog(\"cloudflare-ai-gateway\", values);\n\nexport const CLOUDFLARE_AI_GATEWAY_IMAGE_MODELS: ImageModelCatalog<typeof import(\"./data/cloudflare-ai-gateway.json\", { with: { type: \"json\" } }), \"cloudflare-ai-gateway\"> =\n\tflattenImageModelCatalog(\"cloudflare-ai-gateway\", values);\n\nexport const CLOUDFLARE_AI_GATEWAY_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof import(\"./data/cloudflare-ai-gateway.json\", { with: { type: \"json\" } }), \"cloudflare-ai-gateway\"> =\n\tflattenClassifierModelCatalog(\"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":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CAC1G,CAAC;AAE1D,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CAChH,CAAC;AAE3D,eAAO,MAAM,uCAAuC,EAAE,sBAAsB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CACrH,CAAC"}
@@ -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;AAqDlF,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\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
+ {"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 +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\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
+ {"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 +1 @@
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","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
+ {"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"}
@@ -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,KAAa,EACb,GAA4B,EACnB;IACT,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;AAED,2DAA2D;AAC3D,MAAM,UAAU,oBAAoB,CAAC,UAA8B,EAAsB;IACxF,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;AAAA,CACF","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
+ {"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":"AAEA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAQ7D,wBAAgB,2BAA2B,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAc5E","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
+ {"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 +1 @@
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,GAAmC;IAC7E,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;AAAA,CACH","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
+ {"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 +1 @@
1
- {"version":3,"file":"cloudflare-workers-ai.models.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.models.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CAC1G,CAAC;AAE1D,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CAChH,CAAC;AAE3D,eAAO,MAAM,uCAAuC,EAAE,sBAAsB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CACrH,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, flattenImageModelCatalog, flattenClassifierModelCatalog, type ChatModelCatalog, type ImageModelCatalog, type ClassifierModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_WORKERS_AI_MODELS: ChatModelCatalog<typeof import(\"./data/cloudflare-workers-ai.json\", { with: { type: \"json\" } }), \"cloudflare-workers-ai\"> =\n\tflattenChatModelCatalog(\"cloudflare-workers-ai\", values);\n\nexport const CLOUDFLARE_WORKERS_AI_IMAGE_MODELS: ImageModelCatalog<typeof import(\"./data/cloudflare-workers-ai.json\", { with: { type: \"json\" } }), \"cloudflare-workers-ai\"> =\n\tflattenImageModelCatalog(\"cloudflare-workers-ai\", values);\n\nexport const CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof import(\"./data/cloudflare-workers-ai.json\", { with: { type: \"json\" } }), \"cloudflare-workers-ai\"> =\n\tflattenClassifierModelCatalog(\"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":"AAIA,OAAO,EAAoF,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEnM,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CAC1G,CAAC;AAE1D,eAAO,MAAM,kCAAkC,EAAE,iBAAiB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CAChH,CAAC;AAE3D,eAAO,MAAM,uCAAuC,EAAE,sBAAsB,CAAC,cAAc,mCAAmC,EAAU,UAAE,IAAI,EAAE,MAAM,IAAE,CAAG,EAAE,uBAAuB,CACrH,CAAC"}
@@ -1 +1 @@
1
- {"schemaVersion":6,"generatedAt":"2026-09-25T08:04:15.706Z","structureHash":"3ab5959887f4ca82e685af1ae5b5bb8a4f72cc7135d7bd5c9429244fc1c0547b","files":{"amazon-bedrock.json":"4aaaacf510450685dd0959e679c277251ae6897f8b96a6f4a0a7a67ea608efde","ant-ling.json":"628feab3ef6c7d80ce96f75999804e1d9f05fec3851e5302e30fff3b69db90f6","anthropic.json":"a0d4e7cd3acbce548f310c5149ee2a8aed6d19657849d19d1aa829c4da0700c1","azure-openai-responses.json":"02cf256c8c3536e81704aac20929266635220ae10a695771d6bd90abb250f5df","baseten.json":"883cdb952fd9eb8d8e3605c460744af36802d325f9a38f75998365e2871a5bcc","cerebras.json":"c07ed7880030c5c85a89520ec4e0fceaf2b2988356345cb1287538337971badd","cloudflare-ai-gateway.json":"67aa638885159c307561c908c218734c17ecbf541a509481b9774f9257faaa9a","cloudflare-workers-ai.json":"3f0a7654180c72fce112986567bb899f4a19815a9e8655e95876729b67e9529e","deepseek.json":"10a296fb3e898f7715c80890c8af0af4f5fd58f22dbcd6612fdc5d762157ccdc","fireworks.json":"9efd5fd4f42999d170d07f4a13b9c69ef9224742185bf8bba6d558282a4dd776","github-copilot.json":"38caa1163101094b640032e2896c17861bee3f30aa4a4bf6b1de0a276df56358","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":"790517a3abf5f652251f42658d6b285ecebe5a653bebe1fe69887caa1dd05f1d","moonshotai-cn.json":"79c9585dc84ee525ebaebbc78b3c55f3d369ec884d4f943488f1e0b14e3587f5","moonshotai.json":"1da2c4e34f22aef17a07c974d85bdee8e1b68b6dc712e3769c935b3f1e7dadca","nvidia.json":"3b4e7b799bf3eaacd1af0491eef77fe33147ea7f72a3a9fa54d77af0e7eacf4c","openai-codex.json":"3c45b36f6f0bcaf4b171f573492513d86873b19d20e4b90bb5612c529d91def5","openai.json":"c38b47e2e10a81ef308a9777c7e85fc52df24d2db13028e3f5b40e9c1e00a6ff","opencode-go.json":"41db161844de0829193e41c3a8bcea2277e68265de53304478d7ac831141a3db","opencode.json":"927b9d3c91fd496a4cc78bfaf79cb7c558835a1b1b2df289b339c9ab8b9c63d6","openrouter.json":"690b8fad629826c19913651f324b86b6d1749a311a1fd3a1e9937c0d3464137f","qwen-token-plan-cn.json":"2469a4091c474ec3db0a49a9962d8d2726c074ad9065b96bc4e0c87861c4c6c5","qwen-token-plan-individual.json":"0fb7cf64faf39d1a3b0a884210a86c87084b805eda15644f5f39293287b959dd","qwen-token-plan.json":"eff10620cb577142de4ec02698d5961a71fda2fe4f6ae7ea9432bad9d6844176","radius.json":"834a2315ceaab47b333967ae63abf906bde6520ea1d4427bc44f7b5a5848348e","together.json":"9b801ea54d982885f94ca16fa054a85a80c083653ac19fc9e741e73478dd78d4","typesafe.json":"a4429a2f696d5cc5273969af61a7310bda07d6bdcd27bf9ac9c76c534cc43716","vercel-ai-gateway.json":"3e2322c0ec84279f91aaa6282e4a71d9c987380839ece3a73b5f13768ee98a33","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"}}
1
+ {"schemaVersion":6,"generatedAt":"2026-09-26T17:36:16.618Z","structureHash":"819054d204d10563ce23d1e69d38084673bcffb0e225827c0f564eac899a1bf1","files":{"amazon-bedrock.json":"4aaaacf510450685dd0959e679c277251ae6897f8b96a6f4a0a7a67ea608efde","ant-ling.json":"628feab3ef6c7d80ce96f75999804e1d9f05fec3851e5302e30fff3b69db90f6","anthropic.json":"a0d4e7cd3acbce548f310c5149ee2a8aed6d19657849d19d1aa829c4da0700c1","azure-openai-responses.json":"02cf256c8c3536e81704aac20929266635220ae10a695771d6bd90abb250f5df","baseten.json":"883cdb952fd9eb8d8e3605c460744af36802d325f9a38f75998365e2871a5bcc","cerebras.json":"c07ed7880030c5c85a89520ec4e0fceaf2b2988356345cb1287538337971badd","cloudflare-ai-gateway.json":"67aa638885159c307561c908c218734c17ecbf541a509481b9774f9257faaa9a","cloudflare-workers-ai.json":"3f0a7654180c72fce112986567bb899f4a19815a9e8655e95876729b67e9529e","deepseek.json":"10a296fb3e898f7715c80890c8af0af4f5fd58f22dbcd6612fdc5d762157ccdc","fireworks.json":"d6144ba451bd7a0617669527bec1898f97a633f7d7ea5035d8e03234550340c0","github-copilot.json":"38caa1163101094b640032e2896c17861bee3f30aa4a4bf6b1de0a276df56358","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":"790517a3abf5f652251f42658d6b285ecebe5a653bebe1fe69887caa1dd05f1d","moonshotai-cn.json":"79c9585dc84ee525ebaebbc78b3c55f3d369ec884d4f943488f1e0b14e3587f5","moonshotai.json":"1da2c4e34f22aef17a07c974d85bdee8e1b68b6dc712e3769c935b3f1e7dadca","nvidia.json":"3b4e7b799bf3eaacd1af0491eef77fe33147ea7f72a3a9fa54d77af0e7eacf4c","openai-codex.json":"3c45b36f6f0bcaf4b171f573492513d86873b19d20e4b90bb5612c529d91def5","openai.json":"c38b47e2e10a81ef308a9777c7e85fc52df24d2db13028e3f5b40e9c1e00a6ff","opencode-go.json":"90d881cc5aa7fab776fa6f797d11156af2472863e623f830ae9a9d76837458f9","opencode.json":"4ae245f18c18440b814129b885d92f571b4606396b8a7f36a251c9ddfc8c67ff","openrouter.json":"9d63d19c988dc9bc795ebf172b80d8770b672e0c97cea93a672e88db1d0fdd10","qwen-token-plan-cn.json":"2469a4091c474ec3db0a49a9962d8d2726c074ad9065b96bc4e0c87861c4c6c5","qwen-token-plan-individual.json":"0fb7cf64faf39d1a3b0a884210a86c87084b805eda15644f5f39293287b959dd","qwen-token-plan.json":"eff10620cb577142de4ec02698d5961a71fda2fe4f6ae7ea9432bad9d6844176","radius.json":"834a2315ceaab47b333967ae63abf906bde6520ea1d4427bc44f7b5a5848348e","together.json":"9b801ea54d982885f94ca16fa054a85a80c083653ac19fc9e741e73478dd78d4","typesafe.json":"a4429a2f696d5cc5273969af61a7310bda07d6bdcd27bf9ac9c76c534cc43716","vercel-ai-gateway.json":"6171d18ccd9dc77475768ead6a5c17aa4bab33e48cd4cb1b1c564828278ef856","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"}}
@@ -1 +1 @@
1
- {"anthropic-messages":{"chat:accounts/fireworks/models/deepseek-v4-flash-0731":{"id":"accounts/fireworks/models/deepseek-v4-flash-0731","name":"DeepSeek V4 Flash 0731","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.22,"output":0.66,"cacheRead":0.007,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/models/deepseek-v4-flash-vision-exp":{"id":"accounts/fireworks/models/deepseek-v4-flash-vision-exp","name":"DeepSeek V4 Flash Vision Exp","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.22,"output":0.66,"cacheRead":0.007,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/deepseek-v4-pro":{"id":"accounts/fireworks/models/deepseek-v4-pro","name":"DeepSeek V4 Pro","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.2,"output":1.2,"cacheRead":0.6,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/models/deepseek-v4-pro-0813":{"id":"accounts/fireworks/models/deepseek-v4-pro-0813","name":"DeepSeek V4 Pro 0813","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.32,"output":3.96,"cacheRead":0.044,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/models/deepseek-v4p1-flash":{"id":"accounts/fireworks/models/deepseek-v4p1-flash","name":"DeepSeek V4.1 Flash","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.22,"output":0.66,"cacheRead":0.007,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/ember-1":{"id":"accounts/fireworks/models/ember-1","name":"Ember-1","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/gpt-oss-120b":{"id":"accounts/fireworks/models/gpt-oss-120b","name":"GPT OSS 120B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.15,"output":0.6,"cacheRead":0.015,"cacheWrite":0},"contextWindow":131072,"maxTokens":32768,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/models/inkling":{"id":"accounts/fireworks/models/inkling","name":"Inkling","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":4.05,"cacheRead":0.17,"cacheWrite":0},"contextWindow":1048576,"maxTokens":1048576,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/kimi-k2p6":{"id":"accounts/fireworks/models/kimi-k2p6","name":"Kimi K2.6","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.16,"cacheWrite":0},"contextWindow":262000,"maxTokens":262000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/kimi-k2p7-code":{"id":"accounts/fireworks/models/kimi-k2p7-code","name":"Kimi K2.7 Code","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.19,"cacheWrite":0},"contextWindow":262000,"maxTokens":262000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/minimax-m2p7":{"id":"accounts/fireworks/models/minimax-m2p7","name":"MiniMax-M2.7","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.2,"output":1.2,"cacheRead":0.6,"cacheWrite":0},"contextWindow":196608,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/models/minimax-m3":{"id":"accounts/fireworks/models/minimax-m3","name":"MiniMax-M3","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"contextWindow":512000,"maxTokens":512000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/models/muse-glimmer-30b":{"id":"accounts/fireworks/models/muse-glimmer-30b","name":"Muse Glimmer 30B","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.35,"output":1.5,"cacheRead":0.04,"cacheWrite":0},"contextWindow":131072,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/nemotron-3-ultra-nvfp4":{"id":"accounts/fireworks/models/nemotron-3-ultra-nvfp4","name":"Nemotron 3 Ultra 550B A55B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.6,"output":2.4,"cacheRead":0.12,"cacheWrite":0},"contextWindow":262144,"maxTokens":128000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"type":"chat"},"chat:accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b":{"id":"accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b","name":"Nemotron 3.5 Lightning 30B A3B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.05,"output":0.2,"cacheRead":0.01,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"type":"chat"},"chat:accounts/fireworks/models/qwen3p7-plus":{"id":"accounts/fireworks/models/qwen3p7-plus","name":"Qwen 3.7 Plus","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.4,"output":1.6,"cacheRead":0.08,"cacheWrite":0},"contextWindow":262144,"maxTokens":65536,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/qwen3p8-2p4t-a95b":{"id":"accounts/fireworks/models/qwen3p8-2p4t-a95b","name":"Qwen3.8 2.4T A95B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":null,"xhigh":"xhigh","max":null},"type":"chat"},"chat:accounts/fireworks/models/qwen3p8-max":{"id":"accounts/fireworks/models/qwen3p8-max","name":"Qwen3.8 Max","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":null,"xhigh":"xhigh","max":null},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/deepseek-flash-latest":{"id":"accounts/fireworks/routers/deepseek-flash-latest","name":"DeepSeek Flash Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.22,"output":0.66,"cacheRead":0.007,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/deepseek-pro-latest":{"id":"accounts/fireworks/routers/deepseek-pro-latest","name":"DeepSeek Pro Latest","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.32,"output":3.96,"cacheRead":0.044,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/kimi-fast-latest":{"id":"accounts/fireworks/routers/kimi-fast-latest","name":"Kimi Fast Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":4.5,"output":22.5,"cacheRead":0.45,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/kimi-latest":{"id":"accounts/fireworks/routers/kimi-latest","name":"Kimi Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/minimax-latest":{"id":"accounts/fireworks/routers/minimax-latest","name":"MiniMax Latest","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"contextWindow":512000,"maxTokens":512000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/routers/qwen-max-latest":{"id":"accounts/fireworks/routers/qwen-max-latest","name":"Qwen Max Latest (Qwen3.8 Max)","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"}},"openai-completions":{"chat:accounts/fireworks/models/glm-5p2":{"id":"accounts/fireworks/models/glm-5p2","name":"GLM 5.2","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.14,"cacheWrite":0},"contextWindow":1048575,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":"none","minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/models/glm-5p3":{"id":"accounts/fireworks/models/glm-5p3","name":"GLM 5.3","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"contextWindow":1048573,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/models/glm-5p3-flash":{"id":"accounts/fireworks/models/glm-5p3-flash","name":"GLM 5.3 Flash","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.15,"output":0.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048573,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/kimi-k3":{"id":"accounts/fireworks/models/kimi-k3","name":"Kimi K3","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"openai","supportsMidConvoSystemMessages":true,"supportsMidConvoToolAdditions":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/glm-5p2-fast":{"id":"accounts/fireworks/routers/glm-5p2-fast","name":"GLM 5.2 Fast","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2.1,"output":6.6,"cacheRead":0.21,"cacheWrite":0},"contextWindow":1048575,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":"none","minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/glm-5p3-fast":{"id":"accounts/fireworks/routers/glm-5p3-fast","name":"GLM 5.3 Fast","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2.1,"output":6.6,"cacheRead":0.39,"cacheWrite":0},"contextWindow":1048572,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/glm-fast-latest":{"id":"accounts/fireworks/routers/glm-fast-latest","name":"GLM 5.3 Fast (Latest)","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2.1,"output":6.6,"cacheRead":0.39,"cacheWrite":0},"contextWindow":1048572,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/glm-flash-latest":{"id":"accounts/fireworks/routers/glm-flash-latest","name":"GLM Flash Latest (GLM 5.3 Flash)","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.15,"output":0.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048573,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/glm-latest":{"id":"accounts/fireworks/routers/glm-latest","name":"GLM Latest","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"contextWindow":1048573,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/kimi-k3-fast":{"id":"accounts/fireworks/routers/kimi-k3-fast","name":"Kimi K3 Fast","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":4.5,"output":22.5,"cacheRead":0.45,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"openai","supportsMidConvoSystemMessages":true,"supportsMidConvoToolAdditions":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"}}}
1
+ {"anthropic-messages":{"chat:accounts/fireworks/models/deepseek-v4p1-flash":{"id":"accounts/fireworks/models/deepseek-v4p1-flash","name":"DeepSeek V4.1 Flash","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.22,"output":0.66,"cacheRead":0.007,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/ember-1":{"id":"accounts/fireworks/models/ember-1","name":"Ember-1","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/gpt-oss-120b":{"id":"accounts/fireworks/models/gpt-oss-120b","name":"GPT OSS 120B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.15,"output":0.6,"cacheRead":0.015,"cacheWrite":0},"contextWindow":131072,"maxTokens":32768,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/models/inkling":{"id":"accounts/fireworks/models/inkling","name":"Inkling","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":4.05,"cacheRead":0.17,"cacheWrite":0},"contextWindow":1048576,"maxTokens":1048576,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/minimax-m3":{"id":"accounts/fireworks/models/minimax-m3","name":"MiniMax-M3","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"contextWindow":512000,"maxTokens":512000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/models/nemotron-3-ultra-nvfp4":{"id":"accounts/fireworks/models/nemotron-3-ultra-nvfp4","name":"Nemotron 3 Ultra 550B A55B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.6,"output":2.4,"cacheRead":0.12,"cacheWrite":0},"contextWindow":262144,"maxTokens":128000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"type":"chat"},"chat:accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b":{"id":"accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b","name":"Nemotron 3.5 Lightning 30B A3B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.05,"output":0.2,"cacheRead":0.01,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"type":"chat"},"chat:accounts/fireworks/models/qwen3p8-2p4t-a95b":{"id":"accounts/fireworks/models/qwen3p8-2p4t-a95b","name":"Qwen3.8 2.4T A95B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":null,"xhigh":"xhigh","max":null},"type":"chat"},"chat:accounts/fireworks/models/qwen3p8-max":{"id":"accounts/fireworks/models/qwen3p8-max","name":"Qwen3.8 Max","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":null,"xhigh":"xhigh","max":null},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/deepseek-flash-latest":{"id":"accounts/fireworks/routers/deepseek-flash-latest","name":"DeepSeek Flash Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.22,"output":0.66,"cacheRead":0.007,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/kimi-fast-latest":{"id":"accounts/fireworks/routers/kimi-fast-latest","name":"Kimi Fast Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":4.5,"output":22.5,"cacheRead":0.45,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/kimi-latest":{"id":"accounts/fireworks/routers/kimi-latest","name":"Kimi Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/minimax-latest":{"id":"accounts/fireworks/routers/minimax-latest","name":"MiniMax Latest","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"contextWindow":512000,"maxTokens":512000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/routers/qwen-max-latest":{"id":"accounts/fireworks/routers/qwen-max-latest","name":"Qwen Max Latest (Qwen3.8 Max)","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"}},"openai-completions":{"chat:accounts/fireworks/models/glm-5p3":{"id":"accounts/fireworks/models/glm-5p3","name":"GLM 5.3","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"contextWindow":1048573,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/models/glm-5p3-flash":{"id":"accounts/fireworks/models/glm-5p3-flash","name":"GLM 5.3 Flash","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.15,"output":0.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048573,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/kimi-k3":{"id":"accounts/fireworks/models/kimi-k3","name":"Kimi K3","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"openai","supportsMidConvoSystemMessages":true,"supportsMidConvoToolAdditions":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/glm-5p3-fast":{"id":"accounts/fireworks/routers/glm-5p3-fast","name":"GLM 5.3 Fast","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2.1,"output":6.6,"cacheRead":0.39,"cacheWrite":0},"contextWindow":1048572,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/glm-fast-latest":{"id":"accounts/fireworks/routers/glm-fast-latest","name":"GLM 5.3 Fast (Latest)","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2.1,"output":6.6,"cacheRead":0.39,"cacheWrite":0},"contextWindow":1048572,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/glm-flash-latest":{"id":"accounts/fireworks/routers/glm-flash-latest","name":"GLM Flash Latest (GLM 5.3 Flash)","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.15,"output":0.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048573,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/glm-latest":{"id":"accounts/fireworks/routers/glm-latest","name":"GLM Latest","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"contextWindow":1048573,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/kimi-k3-fast":{"id":"accounts/fireworks/routers/kimi-k3-fast","name":"Kimi K3 Fast","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":4.5,"output":22.5,"cacheRead":0.45,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"openai","supportsMidConvoSystemMessages":true,"supportsMidConvoToolAdditions":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"}}}