@draht/ai 2026.7.13-1 → 2026.7.30

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 (508) hide show
  1. package/dist/api/anthropic-messages.d.ts.map +1 -1
  2. package/dist/api/anthropic-messages.js +129 -57
  3. package/dist/api/anthropic-messages.js.map +1 -1
  4. package/dist/api/azure-openai-responses.d.ts.map +1 -1
  5. package/dist/api/azure-openai-responses.js +26 -9
  6. package/dist/api/azure-openai-responses.js.map +1 -1
  7. package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  8. package/dist/api/bedrock-converse-stream.js +54 -23
  9. package/dist/api/bedrock-converse-stream.js.map +1 -1
  10. package/dist/api/constrained-sampling.d.ts +17 -0
  11. package/dist/api/constrained-sampling.d.ts.map +1 -0
  12. package/dist/api/constrained-sampling.js +100 -0
  13. package/dist/api/constrained-sampling.js.map +1 -0
  14. package/dist/api/google-generative-ai.d.ts.map +1 -1
  15. package/dist/api/google-generative-ai.js +19 -13
  16. package/dist/api/google-generative-ai.js.map +1 -1
  17. package/dist/api/google-shared.d.ts +4 -3
  18. package/dist/api/google-shared.d.ts.map +1 -1
  19. package/dist/api/google-shared.js +17 -3
  20. package/dist/api/google-shared.js.map +1 -1
  21. package/dist/api/google-vertex.d.ts.map +1 -1
  22. package/dist/api/google-vertex.js +19 -13
  23. package/dist/api/google-vertex.js.map +1 -1
  24. package/dist/api/lazy.d.ts.map +1 -1
  25. package/dist/api/lazy.js +9 -10
  26. package/dist/api/lazy.js.map +1 -1
  27. package/dist/api/mistral-conversations.d.ts.map +1 -1
  28. package/dist/api/mistral-conversations.js +32 -19
  29. package/dist/api/mistral-conversations.js.map +1 -1
  30. package/dist/api/openai-codex-responses.d.ts +1 -0
  31. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  32. package/dist/api/openai-codex-responses.js +88 -38
  33. package/dist/api/openai-codex-responses.js.map +1 -1
  34. package/dist/api/openai-completions.d.ts +8 -8
  35. package/dist/api/openai-completions.d.ts.map +1 -1
  36. package/dist/api/openai-completions.js +216 -46
  37. package/dist/api/openai-completions.js.map +1 -1
  38. package/dist/api/openai-responses-shared.d.ts +8 -1
  39. package/dist/api/openai-responses-shared.d.ts.map +1 -1
  40. package/dist/api/openai-responses-shared.js +233 -67
  41. package/dist/api/openai-responses-shared.js.map +1 -1
  42. package/dist/api/openai-responses.d.ts +1 -0
  43. package/dist/api/openai-responses.d.ts.map +1 -1
  44. package/dist/api/openai-responses.js +60 -16
  45. package/dist/api/openai-responses.js.map +1 -1
  46. package/dist/api/openrouter-images.d.ts.map +1 -1
  47. package/dist/api/openrouter-images.js +11 -5
  48. package/dist/api/openrouter-images.js.map +1 -1
  49. package/dist/api/pi-messages.d.ts +97 -0
  50. package/dist/api/pi-messages.d.ts.map +1 -0
  51. package/dist/api/pi-messages.js +305 -0
  52. package/dist/api/pi-messages.js.map +1 -0
  53. package/dist/api/pi-messages.lazy.d.ts +3 -0
  54. package/dist/api/pi-messages.lazy.d.ts.map +1 -0
  55. package/dist/api/pi-messages.lazy.js +3 -0
  56. package/dist/api/pi-messages.lazy.js.map +1 -0
  57. package/dist/api/simple-options.d.ts.map +1 -1
  58. package/dist/api/simple-options.js +1 -0
  59. package/dist/api/simple-options.js.map +1 -1
  60. package/dist/auth/credential-store.d.ts +2 -1
  61. package/dist/auth/credential-store.d.ts.map +1 -1
  62. package/dist/auth/credential-store.js +3 -0
  63. package/dist/auth/credential-store.js.map +1 -1
  64. package/dist/auth/helpers.d.ts +1 -0
  65. package/dist/auth/helpers.d.ts.map +1 -1
  66. package/dist/auth/helpers.js +7 -5
  67. package/dist/auth/helpers.js.map +1 -1
  68. package/dist/auth/oauth/anthropic.d.ts +9 -0
  69. package/dist/auth/oauth/anthropic.d.ts.map +1 -0
  70. package/dist/{utils → auth}/oauth/anthropic.js +51 -116
  71. package/dist/auth/oauth/anthropic.js.map +1 -0
  72. package/dist/auth/oauth/device-code.d.ts.map +1 -0
  73. package/dist/auth/oauth/device-code.js.map +1 -0
  74. package/dist/auth/oauth/github-copilot.d.ts +6 -0
  75. package/dist/auth/oauth/github-copilot.d.ts.map +1 -0
  76. package/dist/{utils → auth}/oauth/github-copilot.js +18 -77
  77. package/dist/auth/oauth/github-copilot.js.map +1 -0
  78. package/dist/auth/oauth/google-antigravity.d.ts +21 -0
  79. package/dist/auth/oauth/google-antigravity.d.ts.map +1 -0
  80. package/dist/{utils → auth}/oauth/google-antigravity.js +79 -79
  81. package/dist/auth/oauth/google-antigravity.js.map +1 -0
  82. package/dist/auth/oauth/google-gemini-cli.d.ts +21 -0
  83. package/dist/auth/oauth/google-gemini-cli.d.ts.map +1 -0
  84. package/dist/{utils → auth}/oauth/google-gemini-cli.js +79 -79
  85. package/dist/auth/oauth/google-gemini-cli.js.map +1 -0
  86. package/dist/auth/oauth/kimi-coding.d.ts +10 -0
  87. package/dist/auth/oauth/kimi-coding.d.ts.map +1 -0
  88. package/dist/auth/oauth/kimi-coding.js +249 -0
  89. package/dist/auth/oauth/kimi-coding.js.map +1 -0
  90. package/dist/auth/oauth/load.d.ts +33 -0
  91. package/dist/auth/oauth/load.d.ts.map +1 -0
  92. package/dist/auth/oauth/load.js +74 -0
  93. package/dist/auth/oauth/load.js.map +1 -0
  94. package/dist/auth/oauth/oauth-page.d.ts.map +1 -0
  95. package/dist/auth/oauth/oauth-page.js.map +1 -0
  96. package/dist/auth/oauth/openai-codex.d.ts +9 -0
  97. package/dist/auth/oauth/openai-codex.d.ts.map +1 -0
  98. package/dist/{utils → auth}/oauth/openai-codex.js +61 -155
  99. package/dist/auth/oauth/openai-codex.js.map +1 -0
  100. package/dist/auth/oauth/opencode-go.d.ts +14 -0
  101. package/dist/auth/oauth/opencode-go.d.ts.map +1 -0
  102. package/dist/auth/oauth/opencode-go.js +41 -0
  103. package/dist/auth/oauth/opencode-go.js.map +1 -0
  104. package/dist/auth/oauth/openrouter.d.ts +15 -0
  105. package/dist/auth/oauth/openrouter.d.ts.map +1 -0
  106. package/dist/auth/oauth/openrouter.js +277 -0
  107. package/dist/auth/oauth/openrouter.js.map +1 -0
  108. package/dist/auth/oauth/pkce.d.ts.map +1 -0
  109. package/dist/auth/oauth/pkce.js.map +1 -0
  110. package/dist/auth/oauth/radius.d.ts +17 -0
  111. package/dist/auth/oauth/radius.d.ts.map +1 -0
  112. package/dist/auth/oauth/radius.js +318 -0
  113. package/dist/auth/oauth/radius.js.map +1 -0
  114. package/dist/auth/oauth/xai.d.ts +17 -0
  115. package/dist/auth/oauth/xai.d.ts.map +1 -0
  116. package/dist/{utils → auth}/oauth/xai.js +54 -89
  117. package/dist/auth/oauth/xai.js.map +1 -0
  118. package/dist/auth/resolve.d.ts +4 -4
  119. package/dist/auth/resolve.d.ts.map +1 -1
  120. package/dist/auth/resolve.js +36 -16
  121. package/dist/auth/resolve.js.map +1 -1
  122. package/dist/auth/types.d.ts +49 -10
  123. package/dist/auth/types.d.ts.map +1 -1
  124. package/dist/auth/types.js.map +1 -1
  125. package/dist/bun-oauth.d.ts +3 -0
  126. package/dist/bun-oauth.d.ts.map +1 -0
  127. package/dist/bun-oauth.js +27 -0
  128. package/dist/bun-oauth.js.map +1 -0
  129. package/dist/cli.js +58 -76
  130. package/dist/cli.js.map +1 -1
  131. package/dist/compat/extension-oauth-types.d.ts +39 -0
  132. package/dist/compat/extension-oauth-types.d.ts.map +1 -0
  133. package/dist/compat/extension-oauth-types.js +2 -0
  134. package/dist/compat/extension-oauth-types.js.map +1 -0
  135. package/dist/compat.d.ts +2 -0
  136. package/dist/compat.d.ts.map +1 -1
  137. package/dist/compat.js +25 -8
  138. package/dist/compat.js.map +1 -1
  139. package/dist/env-api-keys.d.ts +3 -0
  140. package/dist/env-api-keys.d.ts.map +1 -1
  141. package/dist/env-api-keys.js +12 -3
  142. package/dist/env-api-keys.js.map +1 -1
  143. package/dist/image-models.generated.d.ts +75 -0
  144. package/dist/image-models.generated.d.ts.map +1 -1
  145. package/dist/image-models.generated.js +251 -176
  146. package/dist/image-models.generated.js.map +1 -1
  147. package/dist/images-models.d.ts +4 -2
  148. package/dist/images-models.d.ts.map +1 -1
  149. package/dist/images-models.js +5 -4
  150. package/dist/images-models.js.map +1 -1
  151. package/dist/index.d.ts +5 -1
  152. package/dist/index.d.ts.map +1 -1
  153. package/dist/index.js +3 -0
  154. package/dist/index.js.map +1 -1
  155. package/dist/model-catalog.d.ts +17 -0
  156. package/dist/model-catalog.d.ts.map +1 -0
  157. package/dist/model-catalog.js +4 -0
  158. package/dist/model-catalog.js.map +1 -0
  159. package/dist/models-store.d.ts +32 -0
  160. package/dist/models-store.d.ts.map +1 -0
  161. package/dist/models-store.js +16 -0
  162. package/dist/models-store.js.map +1 -0
  163. package/dist/models.d.ts +66 -30
  164. package/dist/models.d.ts.map +1 -1
  165. package/dist/models.generated.d.ts +74 -21970
  166. package/dist/models.generated.d.ts.map +1 -1
  167. package/dist/models.generated.js +4 -0
  168. package/dist/models.generated.js.map +1 -1
  169. package/dist/models.js +213 -29
  170. package/dist/models.js.map +1 -1
  171. package/dist/oauth.d.ts +2 -1
  172. package/dist/oauth.d.ts.map +1 -1
  173. package/dist/oauth.js +1 -1
  174. package/dist/oauth.js.map +1 -1
  175. package/dist/providers/all.d.ts +13 -6
  176. package/dist/providers/all.d.ts.map +1 -1
  177. package/dist/providers/all.js +13 -0
  178. package/dist/providers/all.js.map +1 -1
  179. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  180. package/dist/providers/amazon-bedrock.js +54 -8
  181. package/dist/providers/amazon-bedrock.js.map +1 -1
  182. package/dist/providers/amazon-bedrock.models.d.ts +3 -1931
  183. package/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
  184. package/dist/providers/amazon-bedrock.models.js +3 -1838
  185. package/dist/providers/amazon-bedrock.models.js.map +1 -1
  186. package/dist/providers/ant-ling.models.d.ts +3 -85
  187. package/dist/providers/ant-ling.models.d.ts.map +1 -1
  188. package/dist/providers/ant-ling.models.js +3 -57
  189. package/dist/providers/ant-ling.models.js.map +1 -1
  190. package/dist/providers/anthropic.d.ts.map +1 -1
  191. package/dist/providers/anthropic.js +31 -4
  192. package/dist/providers/anthropic.js.map +1 -1
  193. package/dist/providers/anthropic.models.d.ts +3 -283
  194. package/dist/providers/anthropic.models.d.ts.map +1 -1
  195. package/dist/providers/anthropic.models.js +3 -252
  196. package/dist/providers/anthropic.models.js.map +1 -1
  197. package/dist/providers/azure-openai-responses.models.d.ts +3 -886
  198. package/dist/providers/azure-openai-responses.models.d.ts.map +1 -1
  199. package/dist/providers/azure-openai-responses.models.js +3 -811
  200. package/dist/providers/azure-openai-responses.models.js.map +1 -1
  201. package/dist/providers/cerebras.models.d.ts +3 -65
  202. package/dist/providers/cerebras.models.d.ts.map +1 -1
  203. package/dist/providers/cerebras.models.js +3 -56
  204. package/dist/providers/cerebras.models.js.map +1 -1
  205. package/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -1
  206. package/dist/providers/cloudflare-ai-gateway.js +4 -3
  207. package/dist/providers/cloudflare-ai-gateway.js.map +1 -1
  208. package/dist/providers/cloudflare-ai-gateway.models.d.ts +3 -887
  209. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -1
  210. package/dist/providers/cloudflare-ai-gateway.models.js +3 -755
  211. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
  212. package/dist/providers/cloudflare-auth.d.ts.map +1 -1
  213. package/dist/providers/cloudflare-auth.js +22 -26
  214. package/dist/providers/cloudflare-auth.js.map +1 -1
  215. package/dist/providers/cloudflare-stream.d.ts +8 -0
  216. package/dist/providers/cloudflare-stream.d.ts.map +1 -0
  217. package/dist/providers/cloudflare-stream.js +21 -0
  218. package/dist/providers/cloudflare-stream.js.map +1 -0
  219. package/dist/providers/cloudflare-workers-ai.d.ts.map +1 -1
  220. package/dist/providers/cloudflare-workers-ai.js +2 -1
  221. package/dist/providers/cloudflare-workers-ai.js.map +1 -1
  222. package/dist/providers/cloudflare-workers-ai.models.d.ts +3 -301
  223. package/dist/providers/cloudflare-workers-ai.models.d.ts.map +1 -1
  224. package/dist/providers/cloudflare-workers-ai.models.js +3 -236
  225. package/dist/providers/cloudflare-workers-ai.models.js.map +1 -1
  226. package/dist/providers/data/.manifest.json +1 -0
  227. package/dist/providers/data/amazon-bedrock.json +1 -0
  228. package/dist/providers/data/ant-ling.json +1 -0
  229. package/dist/providers/data/anthropic.json +1 -0
  230. package/dist/providers/data/azure-openai-responses.json +1 -0
  231. package/dist/providers/data/cerebras.json +1 -0
  232. package/dist/providers/data/cloudflare-ai-gateway.json +1 -0
  233. package/dist/providers/data/cloudflare-workers-ai.json +1 -0
  234. package/dist/providers/data/deepseek.json +1 -0
  235. package/dist/providers/data/fireworks.json +1 -0
  236. package/dist/providers/data/github-copilot.json +1 -0
  237. package/dist/providers/data/google-vertex.json +1 -0
  238. package/dist/providers/data/google.json +1 -0
  239. package/dist/providers/data/groq.json +1 -0
  240. package/dist/providers/data/huggingface.json +1 -0
  241. package/dist/providers/data/kimi-coding.json +1 -0
  242. package/dist/providers/data/minimax-cn.json +1 -0
  243. package/dist/providers/data/minimax.json +1 -0
  244. package/dist/providers/data/mistral.json +1 -0
  245. package/dist/providers/data/moonshotai-cn.json +1 -0
  246. package/dist/providers/data/moonshotai.json +1 -0
  247. package/dist/providers/data/nvidia.json +1 -0
  248. package/dist/providers/data/openai-codex.json +1 -0
  249. package/dist/providers/data/openai.json +1 -0
  250. package/dist/providers/data/opencode-go.json +1 -0
  251. package/dist/providers/data/opencode.json +1 -0
  252. package/dist/providers/data/openrouter.json +1 -0
  253. package/dist/providers/data/qwen-token-plan-cn.json +1 -0
  254. package/dist/providers/data/qwen-token-plan.json +1 -0
  255. package/dist/providers/data/together.json +1 -0
  256. package/dist/providers/data/vercel-ai-gateway.json +1 -0
  257. package/dist/providers/data/xai.json +1 -0
  258. package/dist/providers/data/xiaomi-token-plan-ams.json +1 -0
  259. package/dist/providers/data/xiaomi-token-plan-cn.json +1 -0
  260. package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -0
  261. package/dist/providers/data/xiaomi.json +1 -0
  262. package/dist/providers/data/zai-coding-cn.json +1 -0
  263. package/dist/providers/data/zai.json +1 -0
  264. package/dist/providers/deepseek.models.d.ts +3 -62
  265. package/dist/providers/deepseek.models.d.ts.map +1 -1
  266. package/dist/providers/deepseek.models.js +3 -40
  267. package/dist/providers/deepseek.models.js.map +1 -1
  268. package/dist/providers/faux.d.ts.map +1 -1
  269. package/dist/providers/faux.js +4 -1
  270. package/dist/providers/faux.js.map +1 -1
  271. package/dist/providers/fireworks.models.d.ts +3 -380
  272. package/dist/providers/fireworks.models.d.ts.map +1 -1
  273. package/dist/providers/fireworks.models.js +3 -292
  274. package/dist/providers/fireworks.models.js.map +1 -1
  275. package/dist/providers/github-copilot.d.ts.map +1 -1
  276. package/dist/providers/github-copilot.js +11 -1
  277. package/dist/providers/github-copilot.js.map +1 -1
  278. package/dist/providers/github-copilot.models.d.ts +3 -790
  279. package/dist/providers/github-copilot.models.d.ts.map +1 -1
  280. package/dist/providers/github-copilot.models.js +3 -538
  281. package/dist/providers/github-copilot.models.js.map +1 -1
  282. package/dist/providers/google-vertex.d.ts.map +1 -1
  283. package/dist/providers/google-vertex.js +56 -5
  284. package/dist/providers/google-vertex.js.map +1 -1
  285. package/dist/providers/google-vertex.models.d.ts +3 -201
  286. package/dist/providers/google-vertex.models.d.ts.map +1 -1
  287. package/dist/providers/google-vertex.models.js +3 -179
  288. package/dist/providers/google-vertex.models.js.map +1 -1
  289. package/dist/providers/google.models.d.ts +3 -327
  290. package/dist/providers/google.models.d.ts.map +1 -1
  291. package/dist/providers/google.models.js +3 -285
  292. package/dist/providers/google.models.js.map +1 -1
  293. package/dist/providers/groq.models.d.ts +3 -127
  294. package/dist/providers/groq.models.d.ts.map +1 -1
  295. package/dist/providers/groq.models.js +3 -122
  296. package/dist/providers/groq.models.js.map +1 -1
  297. package/dist/providers/huggingface.models.d.ts +3 -982
  298. package/dist/providers/huggingface.models.d.ts.map +1 -1
  299. package/dist/providers/huggingface.models.js +3 -884
  300. package/dist/providers/huggingface.models.js.map +1 -1
  301. package/dist/providers/kimi-coding.d.ts.map +1 -1
  302. package/dist/providers/kimi-coding.js +10 -2
  303. package/dist/providers/kimi-coding.js.map +1 -1
  304. package/dist/providers/kimi-coding.models.d.ts +3 -62
  305. package/dist/providers/kimi-coding.models.d.ts.map +1 -1
  306. package/dist/providers/kimi-coding.models.js +3 -56
  307. package/dist/providers/kimi-coding.models.js.map +1 -1
  308. package/dist/providers/minimax-cn.models.d.ts +3 -53
  309. package/dist/providers/minimax-cn.models.d.ts.map +1 -1
  310. package/dist/providers/minimax-cn.models.js +3 -53
  311. package/dist/providers/minimax-cn.models.js.map +1 -1
  312. package/dist/providers/minimax.models.d.ts +3 -53
  313. package/dist/providers/minimax.models.d.ts.map +1 -1
  314. package/dist/providers/minimax.models.js +3 -53
  315. package/dist/providers/minimax.models.js.map +1 -1
  316. package/dist/providers/mistral.models.d.ts +3 -512
  317. package/dist/providers/mistral.models.d.ts.map +1 -1
  318. package/dist/providers/mistral.models.js +3 -512
  319. package/dist/providers/mistral.models.js.map +1 -1
  320. package/dist/providers/moonshotai-cn.models.d.ts +3 -233
  321. package/dist/providers/moonshotai-cn.models.d.ts.map +1 -1
  322. package/dist/providers/moonshotai-cn.models.js +3 -166
  323. package/dist/providers/moonshotai-cn.models.js.map +1 -1
  324. package/dist/providers/moonshotai.models.d.ts +3 -233
  325. package/dist/providers/moonshotai.models.d.ts.map +1 -1
  326. package/dist/providers/moonshotai.models.js +3 -166
  327. package/dist/providers/moonshotai.models.js.map +1 -1
  328. package/dist/providers/nvidia.models.d.ts +3 -562
  329. package/dist/providers/nvidia.models.d.ts.map +1 -1
  330. package/dist/providers/nvidia.models.js +3 -382
  331. package/dist/providers/nvidia.models.js.map +1 -1
  332. package/dist/providers/openai-codex.d.ts.map +1 -1
  333. package/dist/providers/openai-codex.js +1 -1
  334. package/dist/providers/openai-codex.js.map +1 -1
  335. package/dist/providers/openai-codex.models.d.ts +3 -187
  336. package/dist/providers/openai-codex.models.d.ts.map +1 -1
  337. package/dist/providers/openai-codex.models.js +3 -133
  338. package/dist/providers/openai-codex.models.js.map +1 -1
  339. package/dist/providers/openai.models.d.ts +3 -936
  340. package/dist/providers/openai.models.d.ts.map +1 -1
  341. package/dist/providers/openai.models.js +3 -818
  342. package/dist/providers/openai.models.js.map +1 -1
  343. package/dist/providers/opencode-go.d.ts +1 -1
  344. package/dist/providers/opencode-go.d.ts.map +1 -1
  345. package/dist/providers/opencode-go.js +15 -3
  346. package/dist/providers/opencode-go.js.map +1 -1
  347. package/dist/providers/opencode-go.models.d.ts +3 -308
  348. package/dist/providers/opencode-go.models.d.ts.map +1 -1
  349. package/dist/providers/opencode-go.models.js +3 -237
  350. package/dist/providers/opencode-go.models.js.map +1 -1
  351. package/dist/providers/opencode.models.d.ts +3 -1183
  352. package/dist/providers/opencode.models.d.ts.map +1 -1
  353. package/dist/providers/opencode.models.js +3 -977
  354. package/dist/providers/opencode.models.js.map +1 -1
  355. package/dist/providers/openrouter-images.d.ts.map +1 -1
  356. package/dist/providers/openrouter-images.js +10 -2
  357. package/dist/providers/openrouter-images.js.map +1 -1
  358. package/dist/providers/openrouter.d.ts.map +1 -1
  359. package/dist/providers/openrouter.js +10 -2
  360. package/dist/providers/openrouter.js.map +1 -1
  361. package/dist/providers/openrouter.models.d.ts +3 -5684
  362. package/dist/providers/openrouter.models.d.ts.map +1 -1
  363. package/dist/providers/openrouter.models.js +3 -4855
  364. package/dist/providers/openrouter.models.js.map +1 -1
  365. package/dist/providers/qwen-token-plan-cn.d.ts +3 -0
  366. package/dist/providers/qwen-token-plan-cn.d.ts.map +1 -0
  367. package/dist/providers/qwen-token-plan-cn.js +15 -0
  368. package/dist/providers/qwen-token-plan-cn.js.map +1 -0
  369. package/dist/providers/qwen-token-plan-cn.models.d.ts +4 -0
  370. package/dist/providers/qwen-token-plan-cn.models.d.ts.map +1 -0
  371. package/dist/providers/qwen-token-plan-cn.models.js +6 -0
  372. package/dist/providers/qwen-token-plan-cn.models.js.map +1 -0
  373. package/dist/providers/qwen-token-plan.d.ts +3 -0
  374. package/dist/providers/qwen-token-plan.d.ts.map +1 -0
  375. package/dist/providers/qwen-token-plan.js +15 -0
  376. package/dist/providers/qwen-token-plan.js.map +1 -0
  377. package/dist/providers/qwen-token-plan.models.d.ts +4 -0
  378. package/dist/providers/qwen-token-plan.models.d.ts.map +1 -0
  379. package/dist/providers/qwen-token-plan.models.js +6 -0
  380. package/dist/providers/qwen-token-plan.models.js.map +1 -0
  381. package/dist/providers/radius-config.d.ts +26 -0
  382. package/dist/providers/radius-config.d.ts.map +1 -0
  383. package/dist/providers/radius-config.js +63 -0
  384. package/dist/providers/radius-config.js.map +1 -0
  385. package/dist/providers/radius.d.ts +9 -0
  386. package/dist/providers/radius.d.ts.map +1 -0
  387. package/dist/providers/radius.js +54 -0
  388. package/dist/providers/radius.js.map +1 -0
  389. package/dist/providers/together.models.d.ts +3 -597
  390. package/dist/providers/together.models.d.ts.map +1 -1
  391. package/dist/providers/together.models.js +3 -377
  392. package/dist/providers/together.models.js.map +1 -1
  393. package/dist/providers/vercel-ai-gateway.models.d.ts +3 -3255
  394. package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  395. package/dist/providers/vercel-ai-gateway.models.js +3 -3191
  396. package/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  397. package/dist/providers/xai.d.ts +1 -1
  398. package/dist/providers/xai.d.ts.map +1 -1
  399. package/dist/providers/xai.js +11 -3
  400. package/dist/providers/xai.js.map +1 -1
  401. package/dist/providers/xai.models.d.ts +3 -178
  402. package/dist/providers/xai.models.d.ts.map +1 -1
  403. package/dist/providers/xai.models.js +3 -146
  404. package/dist/providers/xai.models.js.map +1 -1
  405. package/dist/providers/xiaomi-token-plan-ams.models.d.ts +3 -65
  406. package/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -1
  407. package/dist/providers/xiaomi-token-plan-ams.models.js +3 -56
  408. package/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
  409. package/dist/providers/xiaomi-token-plan-cn.models.d.ts +3 -65
  410. package/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -1
  411. package/dist/providers/xiaomi-token-plan-cn.models.js +3 -56
  412. package/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
  413. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts +3 -65
  414. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -1
  415. package/dist/providers/xiaomi-token-plan-sgp.models.js +3 -56
  416. package/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
  417. package/dist/providers/xiaomi.models.d.ts +3 -128
  418. package/dist/providers/xiaomi.models.d.ts.map +1 -1
  419. package/dist/providers/xiaomi.models.js +3 -110
  420. package/dist/providers/xiaomi.models.js.map +1 -1
  421. package/dist/providers/zai-coding-cn.models.d.ts +3 -152
  422. package/dist/providers/zai-coding-cn.models.d.ts.map +1 -1
  423. package/dist/providers/zai-coding-cn.models.js +3 -111
  424. package/dist/providers/zai-coding-cn.models.js.map +1 -1
  425. package/dist/providers/zai.models.d.ts +3 -152
  426. package/dist/providers/zai.models.d.ts.map +1 -1
  427. package/dist/providers/zai.models.js +3 -111
  428. package/dist/providers/zai.models.js.map +1 -1
  429. package/dist/types.d.ts +74 -8
  430. package/dist/types.d.ts.map +1 -1
  431. package/dist/types.js.map +1 -1
  432. package/dist/utils/deferred-tools.d.ts +9 -0
  433. package/dist/utils/deferred-tools.d.ts.map +1 -0
  434. package/dist/utils/deferred-tools.js +36 -0
  435. package/dist/utils/deferred-tools.js.map +1 -0
  436. package/dist/utils/error-body.d.ts.map +1 -1
  437. package/dist/utils/error-body.js +8 -3
  438. package/dist/utils/error-body.js.map +1 -1
  439. package/dist/utils/estimate.d.ts.map +1 -1
  440. package/dist/utils/estimate.js +18 -5
  441. package/dist/utils/estimate.js.map +1 -1
  442. package/dist/utils/overflow.d.ts +1 -0
  443. package/dist/utils/overflow.d.ts.map +1 -1
  444. package/dist/utils/overflow.js +3 -0
  445. package/dist/utils/overflow.js.map +1 -1
  446. package/dist/utils/provider-retry.d.ts +16 -0
  447. package/dist/utils/provider-retry.d.ts.map +1 -0
  448. package/dist/utils/provider-retry.js +94 -0
  449. package/dist/utils/provider-retry.js.map +1 -0
  450. package/dist/utils/retry.d.ts +41 -0
  451. package/dist/utils/retry.d.ts.map +1 -1
  452. package/dist/utils/retry.js +83 -0
  453. package/dist/utils/retry.js.map +1 -1
  454. package/dist/utils/text.d.ts +6 -0
  455. package/dist/utils/text.d.ts.map +1 -0
  456. package/dist/utils/text.js +10 -0
  457. package/dist/utils/text.js.map +1 -0
  458. package/dist/utils/uuid.d.ts +3 -0
  459. package/dist/utils/uuid.d.ts.map +1 -0
  460. package/dist/utils/uuid.js +47 -0
  461. package/dist/utils/uuid.js.map +1 -0
  462. package/package.json +12 -6
  463. package/dist/utils/oauth/anthropic.d.ts +0 -27
  464. package/dist/utils/oauth/anthropic.d.ts.map +0 -1
  465. package/dist/utils/oauth/anthropic.js.map +0 -1
  466. package/dist/utils/oauth/device-code.d.ts.map +0 -1
  467. package/dist/utils/oauth/device-code.js.map +0 -1
  468. package/dist/utils/oauth/github-copilot.d.ts +0 -32
  469. package/dist/utils/oauth/github-copilot.d.ts.map +0 -1
  470. package/dist/utils/oauth/github-copilot.js.map +0 -1
  471. package/dist/utils/oauth/google-antigravity.d.ts +0 -26
  472. package/dist/utils/oauth/google-antigravity.d.ts.map +0 -1
  473. package/dist/utils/oauth/google-antigravity.js.map +0 -1
  474. package/dist/utils/oauth/google-gemini-cli.d.ts +0 -26
  475. package/dist/utils/oauth/google-gemini-cli.d.ts.map +0 -1
  476. package/dist/utils/oauth/google-gemini-cli.js.map +0 -1
  477. package/dist/utils/oauth/index.d.ts +0 -60
  478. package/dist/utils/oauth/index.d.ts.map +0 -1
  479. package/dist/utils/oauth/index.js +0 -130
  480. package/dist/utils/oauth/index.js.map +0 -1
  481. package/dist/utils/oauth/load.d.ts +0 -6
  482. package/dist/utils/oauth/load.d.ts.map +0 -1
  483. package/dist/utils/oauth/load.js +0 -23
  484. package/dist/utils/oauth/load.js.map +0 -1
  485. package/dist/utils/oauth/oauth-page.d.ts.map +0 -1
  486. package/dist/utils/oauth/oauth-page.js.map +0 -1
  487. package/dist/utils/oauth/openai-codex.d.ts +0 -45
  488. package/dist/utils/oauth/openai-codex.d.ts.map +0 -1
  489. package/dist/utils/oauth/openai-codex.js.map +0 -1
  490. package/dist/utils/oauth/opencode-go.d.ts +0 -23
  491. package/dist/utils/oauth/opencode-go.d.ts.map +0 -1
  492. package/dist/utils/oauth/opencode-go.js +0 -46
  493. package/dist/utils/oauth/opencode-go.js.map +0 -1
  494. package/dist/utils/oauth/pkce.d.ts.map +0 -1
  495. package/dist/utils/oauth/pkce.js.map +0 -1
  496. package/dist/utils/oauth/types.d.ts +0 -64
  497. package/dist/utils/oauth/types.d.ts.map +0 -1
  498. package/dist/utils/oauth/types.js +0 -2
  499. package/dist/utils/oauth/types.js.map +0 -1
  500. package/dist/utils/oauth/xai.d.ts +0 -34
  501. package/dist/utils/oauth/xai.d.ts.map +0 -1
  502. package/dist/utils/oauth/xai.js.map +0 -1
  503. /package/dist/{utils → auth}/oauth/device-code.d.ts +0 -0
  504. /package/dist/{utils → auth}/oauth/device-code.js +0 -0
  505. /package/dist/{utils → auth}/oauth/oauth-page.d.ts +0 -0
  506. /package/dist/{utils → auth}/oauth/oauth-page.js +0 -0
  507. /package/dist/{utils → auth}/oauth/pkce.d.ts +0 -0
  508. /package/dist/{utils → auth}/oauth/pkce.js +0 -0
package/dist/compat.js CHANGED
@@ -18,6 +18,7 @@ export * from "./api/mistral-conversations.lazy.js";
18
18
  export * from "./api/openai-codex-responses.lazy.js";
19
19
  export * from "./api/openai-completions.lazy.js";
20
20
  export * from "./api/openai-responses.lazy.js";
21
+ export * from "./api/pi-messages.lazy.js";
21
22
  export * from "./env-api-keys.js";
22
23
  export * from "./image-models.js";
23
24
  export * from "./images.js";
@@ -34,6 +35,7 @@ import { mistralConversationsApi } from "./api/mistral-conversations.lazy.js";
34
35
  import { openAICodexResponsesApi } from "./api/openai-codex-responses.lazy.js";
35
36
  import { openAICompletionsApi } from "./api/openai-completions.lazy.js";
36
37
  import { openAIResponsesApi } from "./api/openai-responses.lazy.js";
38
+ import { piMessagesApi } from "./api/pi-messages.lazy.js";
37
39
  import { getEnvApiKey } from "./env-api-keys.js";
38
40
  import { builtinModels, getBuiltinModel, getBuiltinModels, getBuiltinProviders } from "./providers/all.js";
39
41
  import { createFauxCore } from "./providers/faux.js";
@@ -113,6 +115,7 @@ const BUILTIN_APIS = [
113
115
  ["google-vertex", googleVertexApi()],
114
116
  ["mistral-conversations", mistralConversationsApi()],
115
117
  ["bedrock-converse-stream", bedrockConverseStreamApi()],
118
+ ["pi-messages", piMessagesApi()],
116
119
  ];
117
120
  const builtinApiProviderInstances = new Map();
118
121
  /**
@@ -135,6 +138,7 @@ export function resetApiProviders() {
135
138
  }
136
139
  registerBuiltInApiProviders();
137
140
  const compatModels = builtinModels();
141
+ const AMBIENT_AUTH_MARKER = "<authenticated>";
138
142
  function hasExplicitApiKey(apiKey) {
139
143
  return typeof apiKey === "string" && apiKey.trim().length > 0;
140
144
  }
@@ -142,13 +146,18 @@ function withEnvApiKey(model, options) {
142
146
  if (hasExplicitApiKey(options?.apiKey))
143
147
  return options;
144
148
  const apiKey = getEnvApiKey(model.provider, options?.env);
145
- if (!apiKey)
149
+ if (!apiKey || apiKey === AMBIENT_AUTH_MARKER)
146
150
  return options;
147
151
  return { ...options, apiKey };
148
152
  }
149
- function shouldUseBuiltinModels(model) {
150
- const builtin = compatModels.getModel(model.provider, model.id);
151
- return builtin?.api === model.api && getApiProvider(model.api) === builtinApiProviderInstances.get(model.api);
153
+ function hasResolvedCloudflareAuth(options) {
154
+ return hasExplicitApiKey(options?.apiKey) || typeof options?.headers?.["cf-aig-authorization"] === "string";
155
+ }
156
+ function getBuiltinProviderForModel(model) {
157
+ if (getApiProvider(model.api) !== builtinApiProviderInstances.get(model.api))
158
+ return undefined;
159
+ const provider = compatModels.getProvider(model.provider);
160
+ return provider?.getModels().some((candidate) => candidate.api === model.api) ? provider : undefined;
152
161
  }
153
162
  function resolveApiProvider(api) {
154
163
  const provider = getApiProvider(api);
@@ -158,8 +167,12 @@ function resolveApiProvider(api) {
158
167
  return provider;
159
168
  }
160
169
  export function stream(model, context, options) {
161
- if (shouldUseBuiltinModels(model)) {
162
- return compatModels.stream(model, context, options);
170
+ const builtinProvider = getBuiltinProviderForModel(model);
171
+ if (builtinProvider) {
172
+ if (model.provider.startsWith("cloudflare-") && !hasResolvedCloudflareAuth(options)) {
173
+ return compatModels.stream(model, context, options);
174
+ }
175
+ return builtinProvider.stream(model, context, withEnvApiKey(model, options));
163
176
  }
164
177
  const provider = resolveApiProvider(model.api);
165
178
  return provider.stream(model, context, withEnvApiKey(model, options));
@@ -169,8 +182,12 @@ export async function complete(model, context, options) {
169
182
  return s.result();
170
183
  }
171
184
  export function streamSimple(model, context, options) {
172
- if (shouldUseBuiltinModels(model)) {
173
- return compatModels.streamSimple(model, context, options);
185
+ const builtinProvider = getBuiltinProviderForModel(model);
186
+ if (builtinProvider) {
187
+ if (model.provider.startsWith("cloudflare-") && !hasResolvedCloudflareAuth(options)) {
188
+ return compatModels.streamSimple(model, context, options);
189
+ }
190
+ return builtinProvider.streamSimple(model, context, withEnvApiKey(model, options));
174
191
  }
175
192
  const provider = resolveApiProvider(model.api);
176
193
  return provider.streamSimple(model, context, withEnvApiKey(model, options));
@@ -1 +1 @@
1
- {"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Temporary compatibility entrypoint preserving the old global pi-ai API\n * surface: api-dispatch `stream()`/`complete()` with env API key injection,\n * the api-registry, generated catalog reads (`getModel`/`getModels`/\n * `getProviders`), per-API lazy stream wrappers, and image generation.\n *\n * Existing apps switch imports from \"@draht/ai\" to\n * \"@draht/ai/compat\" unchanged; new code uses `createModels()`\n * and the provider factories. This module is deleted with the coding-agent\n * ModelManager migration.\n */\n\nexport * from \"./api/anthropic-messages.lazy.ts\";\nexport * from \"./api/azure-openai-responses.lazy.ts\";\nexport * from \"./api/bedrock-converse-stream.lazy.ts\";\nexport * from \"./api/google-generative-ai.lazy.ts\";\nexport * from \"./api/google-vertex.lazy.ts\";\nexport * from \"./api/mistral-conversations.lazy.ts\";\nexport * from \"./api/openai-codex-responses.lazy.ts\";\nexport * from \"./api/openai-completions.lazy.ts\";\nexport * from \"./api/openai-responses.lazy.ts\";\nexport * from \"./env-api-keys.ts\";\nexport * from \"./image-models.ts\";\nexport * from \"./images.ts\";\nexport * from \"./images-api-registry.ts\";\nexport * from \"./index.ts\";\nexport * from \"./legacy-api-aliases.ts\";\nexport * from \"./providers/images/register-builtins.ts\";\n\nimport { anthropicMessagesApi } from \"./api/anthropic-messages.lazy.ts\";\nimport { azureOpenAIResponsesApi } from \"./api/azure-openai-responses.lazy.ts\";\nimport { bedrockConverseStreamApi } from \"./api/bedrock-converse-stream.lazy.ts\";\nimport { googleGenerativeAIApi } from \"./api/google-generative-ai.lazy.ts\";\nimport { googleVertexApi } from \"./api/google-vertex.lazy.ts\";\nimport { mistralConversationsApi } from \"./api/mistral-conversations.lazy.ts\";\nimport { openAICodexResponsesApi } from \"./api/openai-codex-responses.lazy.ts\";\nimport { openAICompletionsApi } from \"./api/openai-completions.lazy.ts\";\nimport { openAIResponsesApi } from \"./api/openai-responses.lazy.ts\";\nimport { getEnvApiKey } from \"./env-api-keys.ts\";\nimport { builtinModels, getBuiltinModel, getBuiltinModels, getBuiltinProviders } from \"./providers/all.ts\";\nimport { createFauxCore, type FauxProviderRegistration, type RegisterFauxProviderOptions } from \"./providers/faux.ts\";\nimport type {\n\tApi,\n\tApiStreamOptions,\n\tAssistantMessage,\n\tAssistantMessageEventStream,\n\tContext,\n\tModel,\n\tProviderStreamOptions,\n\tProviderStreams,\n\tSimpleStreamOptions,\n\tStreamFunction,\n\tStreamOptions,\n} from \"./types.ts\";\n\n/** @deprecated Static catalog read. Use `getBuiltinModel` from \"@draht/ai/providers/all\" or `Models.getModel()`. */\nexport const getModel = getBuiltinModel;\n\n/** @deprecated Static catalog read. Use `getBuiltinModels` from \"@draht/ai/providers/all\" or `Models.getModels()`. */\nexport const getModels = getBuiltinModels;\n\n/** @deprecated Static catalog read. Use `getBuiltinProviders` from \"@draht/ai/providers/all\" or `Models.getProviders()`. */\nexport const getProviders = getBuiltinProviders;\n\nexport type ApiStreamFunction = (\n\tmodel: Model<Api>,\n\tcontext: Context,\n\toptions?: StreamOptions,\n) => AssistantMessageEventStream;\n\nexport type ApiStreamSimpleFunction = (\n\tmodel: Model<Api>,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n) => AssistantMessageEventStream;\n\nexport interface ApiProvider<TApi extends Api = Api, TOptions extends StreamOptions = StreamOptions> {\n\tapi: TApi;\n\tstream: StreamFunction<TApi, TOptions>;\n\tstreamSimple: StreamFunction<TApi, SimpleStreamOptions>;\n}\n\ninterface ApiProviderInternal {\n\tapi: Api;\n\tstream: ApiStreamFunction;\n\tstreamSimple: ApiStreamSimpleFunction;\n}\n\ntype RegisteredApiProvider = {\n\tprovider: ApiProviderInternal;\n\tsourceId?: string;\n};\n\nconst apiProviderRegistry = new Map<string, RegisteredApiProvider>();\n\nfunction wrapStream<TApi extends Api, TOptions extends StreamOptions>(\n\tapi: TApi,\n\tstream: StreamFunction<TApi, TOptions>,\n): ApiStreamFunction {\n\treturn (model, context, options) => {\n\t\tif (model.api !== api) {\n\t\t\tthrow new Error(`Mismatched api: ${model.api} expected ${api}`);\n\t\t}\n\t\treturn stream(model as Model<TApi>, context, options as TOptions);\n\t};\n}\n\nfunction wrapStreamSimple<TApi extends Api>(\n\tapi: TApi,\n\tstreamSimple: StreamFunction<TApi, SimpleStreamOptions>,\n): ApiStreamSimpleFunction {\n\treturn (model, context, options) => {\n\t\tif (model.api !== api) {\n\t\t\tthrow new Error(`Mismatched api: ${model.api} expected ${api}`);\n\t\t}\n\t\treturn streamSimple(model as Model<TApi>, context, options);\n\t};\n}\n\nexport function registerApiProvider<TApi extends Api, TOptions extends StreamOptions>(\n\tprovider: ApiProvider<TApi, TOptions>,\n\tsourceId?: string,\n): void {\n\tapiProviderRegistry.set(provider.api, {\n\t\tprovider: {\n\t\t\tapi: provider.api,\n\t\t\tstream: wrapStream(provider.api, provider.stream),\n\t\t\tstreamSimple: wrapStreamSimple(provider.api, provider.streamSimple),\n\t\t},\n\t\tsourceId,\n\t});\n}\n\nexport function getApiProvider(api: Api): ApiProviderInternal | undefined {\n\treturn apiProviderRegistry.get(api)?.provider;\n}\n\nexport function getApiProviders(): ApiProviderInternal[] {\n\treturn Array.from(apiProviderRegistry.values(), (entry) => entry.provider);\n}\n\nexport function unregisterApiProviders(sourceId: string): void {\n\tfor (const [api, entry] of apiProviderRegistry.entries()) {\n\t\tif (entry.sourceId === sourceId) {\n\t\t\tapiProviderRegistry.delete(api);\n\t\t}\n\t}\n}\n\nfunction clearApiProviders(): void {\n\tapiProviderRegistry.clear();\n}\n\nexport function registerFauxProvider(options: RegisterFauxProviderOptions = {}): FauxProviderRegistration {\n\tconst core = createFauxCore(options);\n\tconst sourceId = `faux-provider-${Math.random().toString(36).slice(2, 10)}`;\n\tregisterApiProvider({ api: core.api, stream: core.stream, streamSimple: core.streamSimple }, sourceId);\n\treturn {\n\t\tapi: core.api,\n\t\tmodels: core.models,\n\t\tgetModel: core.getModel,\n\t\tstate: core.state,\n\t\tsetResponses: core.setResponses,\n\t\tappendResponses: core.appendResponses,\n\t\tgetPendingResponseCount: core.getPendingResponseCount,\n\t\tunregister() {\n\t\t\tunregisterApiProviders(sourceId);\n\t\t},\n\t};\n}\n\nconst BUILTIN_APIS: [Api, ProviderStreams][] = [\n\t[\"anthropic-messages\", anthropicMessagesApi()],\n\t[\"openai-completions\", openAICompletionsApi()],\n\t[\"openai-responses\", openAIResponsesApi()],\n\t[\"openai-codex-responses\", openAICodexResponsesApi()],\n\t[\"azure-openai-responses\", azureOpenAIResponsesApi()],\n\t[\"google-generative-ai\", googleGenerativeAIApi()],\n\t[\"google-vertex\", googleVertexApi()],\n\t[\"mistral-conversations\", mistralConversationsApi()],\n\t[\"bedrock-converse-stream\", bedrockConverseStreamApi()],\n];\n\nconst builtinApiProviderInstances = new Map<Api, ReturnType<typeof getApiProvider>>();\n\n/**\n * Registers the builtin API implementations into the api-registry without\n * clobbering existing entries: compat may load after a test or extension has\n * already registered an override for a builtin api id.\n */\nexport function registerBuiltInApiProviders(): void {\n\tfor (const [api, streams] of BUILTIN_APIS) {\n\t\tif (!getApiProvider(api)) {\n\t\t\tregisterApiProvider({ api, stream: streams.stream, streamSimple: streams.streamSimple });\n\t\t}\n\t\tbuiltinApiProviderInstances.set(api, getApiProvider(api));\n\t}\n}\n\nexport function resetApiProviders(): void {\n\tclearApiProviders();\n\tbuiltinApiProviderInstances.clear();\n\tregisterBuiltInApiProviders();\n}\n\nregisterBuiltInApiProviders();\n\nconst compatModels = builtinModels();\n\nfunction hasExplicitApiKey(apiKey: string | undefined): apiKey is string {\n\treturn typeof apiKey === \"string\" && apiKey.trim().length > 0;\n}\n\nfunction withEnvApiKey<TOptions extends StreamOptions>(\n\tmodel: Model<Api>,\n\toptions: TOptions | undefined,\n): TOptions | undefined {\n\tif (hasExplicitApiKey(options?.apiKey)) return options;\n\tconst apiKey = getEnvApiKey(model.provider, options?.env);\n\tif (!apiKey) return options;\n\treturn { ...options, apiKey } as TOptions;\n}\n\nfunction shouldUseBuiltinModels(model: Model<Api>): boolean {\n\tconst builtin = compatModels.getModel(model.provider, model.id);\n\treturn builtin?.api === model.api && getApiProvider(model.api) === builtinApiProviderInstances.get(model.api);\n}\n\nfunction resolveApiProvider(api: Api) {\n\tconst provider = getApiProvider(api);\n\tif (!provider) {\n\t\tthrow new Error(`No API provider registered for api: ${api}`);\n\t}\n\treturn provider;\n}\n\nexport function stream<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: ProviderStreamOptions,\n): AssistantMessageEventStream {\n\tif (shouldUseBuiltinModels(model)) {\n\t\treturn compatModels.stream(model, context, options as ApiStreamOptions<TApi> | undefined);\n\t}\n\tconst provider = resolveApiProvider(model.api);\n\treturn provider.stream(model, context, withEnvApiKey(model, options) as StreamOptions);\n}\n\nexport async function complete<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: ProviderStreamOptions,\n): Promise<AssistantMessage> {\n\tconst s = stream(model, context, options);\n\treturn s.result();\n}\n\nexport function streamSimple<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): AssistantMessageEventStream {\n\tif (shouldUseBuiltinModels(model)) {\n\t\treturn compatModels.streamSimple(model, context, options);\n\t}\n\tconst provider = resolveApiProvider(model.api);\n\treturn provider.streamSimple(model, context, withEnvApiKey(model, options));\n}\n\nexport async function completeSimple<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): Promise<AssistantMessage> {\n\tconst s = streamSimple(model, context, options);\n\treturn s.result();\n}\n"]}
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Temporary compatibility entrypoint preserving the old global pi-ai API\n * surface: api-dispatch `stream()`/`complete()` with env API key injection,\n * the api-registry, generated catalog reads (`getModel`/`getModels`/\n * `getProviders`), per-API lazy stream wrappers, and image generation.\n *\n * Existing apps switch imports from \"@draht/ai\" to\n * \"@draht/ai/compat\" unchanged; new code uses `createModels()`\n * and the provider factories. This module is deleted with the coding-agent\n * ModelManager migration.\n */\n\nexport * from \"./api/anthropic-messages.lazy.ts\";\nexport * from \"./api/azure-openai-responses.lazy.ts\";\nexport * from \"./api/bedrock-converse-stream.lazy.ts\";\nexport * from \"./api/google-generative-ai.lazy.ts\";\nexport * from \"./api/google-vertex.lazy.ts\";\nexport * from \"./api/mistral-conversations.lazy.ts\";\nexport * from \"./api/openai-codex-responses.lazy.ts\";\nexport * from \"./api/openai-completions.lazy.ts\";\nexport * from \"./api/openai-responses.lazy.ts\";\nexport * from \"./api/pi-messages.lazy.ts\";\nexport * from \"./env-api-keys.ts\";\nexport * from \"./image-models.ts\";\nexport * from \"./images.ts\";\nexport * from \"./images-api-registry.ts\";\nexport * from \"./index.ts\";\nexport * from \"./legacy-api-aliases.ts\";\nexport * from \"./providers/images/register-builtins.ts\";\n\nimport { anthropicMessagesApi } from \"./api/anthropic-messages.lazy.ts\";\nimport { azureOpenAIResponsesApi } from \"./api/azure-openai-responses.lazy.ts\";\nimport { bedrockConverseStreamApi } from \"./api/bedrock-converse-stream.lazy.ts\";\nimport { googleGenerativeAIApi } from \"./api/google-generative-ai.lazy.ts\";\nimport { googleVertexApi } from \"./api/google-vertex.lazy.ts\";\nimport { mistralConversationsApi } from \"./api/mistral-conversations.lazy.ts\";\nimport { openAICodexResponsesApi } from \"./api/openai-codex-responses.lazy.ts\";\nimport { openAICompletionsApi } from \"./api/openai-completions.lazy.ts\";\nimport { openAIResponsesApi } from \"./api/openai-responses.lazy.ts\";\nimport { piMessagesApi } from \"./api/pi-messages.lazy.ts\";\nimport { getEnvApiKey } from \"./env-api-keys.ts\";\nimport type { ModelsApiStreamOptions } from \"./models.ts\";\nimport { builtinModels, getBuiltinModel, getBuiltinModels, getBuiltinProviders } from \"./providers/all.ts\";\n\nexport type { BuiltinProvider } from \"./providers/all.ts\";\n\nimport { createFauxCore, type FauxProviderRegistration, type RegisterFauxProviderOptions } from \"./providers/faux.ts\";\nimport type {\n\tApi,\n\tApiStreamOptions,\n\tAssistantMessage,\n\tAssistantMessageEventStream,\n\tContext,\n\tModel,\n\tProviderStreamOptions,\n\tProviderStreams,\n\tSimpleStreamOptions,\n\tStreamFunction,\n\tStreamOptions,\n} from \"./types.ts\";\n\n/** @deprecated Static catalog read. Use `getBuiltinModel` from \"@draht/ai/providers/all\" or `Models.getModel()`. */\nexport const getModel = getBuiltinModel;\n\n/** @deprecated Static catalog read. Use `getBuiltinModels` from \"@draht/ai/providers/all\" or `Models.getModels()`. */\nexport const getModels = getBuiltinModels;\n\n/** @deprecated Static catalog read. Use `getBuiltinProviders` from \"@draht/ai/providers/all\" or `Models.getProviders()`. */\nexport const getProviders = getBuiltinProviders;\n\nexport type ApiStreamFunction = (\n\tmodel: Model<Api>,\n\tcontext: Context,\n\toptions?: StreamOptions,\n) => AssistantMessageEventStream;\n\nexport type ApiStreamSimpleFunction = (\n\tmodel: Model<Api>,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n) => AssistantMessageEventStream;\n\nexport interface ApiProvider<TApi extends Api = Api, TOptions extends StreamOptions = StreamOptions> {\n\tapi: TApi;\n\tstream: StreamFunction<TApi, TOptions>;\n\tstreamSimple: StreamFunction<TApi, SimpleStreamOptions>;\n}\n\ninterface ApiProviderInternal {\n\tapi: Api;\n\tstream: ApiStreamFunction;\n\tstreamSimple: ApiStreamSimpleFunction;\n}\n\ntype RegisteredApiProvider = {\n\tprovider: ApiProviderInternal;\n\tsourceId?: string;\n};\n\nconst apiProviderRegistry = new Map<string, RegisteredApiProvider>();\n\nfunction wrapStream<TApi extends Api, TOptions extends StreamOptions>(\n\tapi: TApi,\n\tstream: StreamFunction<TApi, TOptions>,\n): ApiStreamFunction {\n\treturn (model, context, options) => {\n\t\tif (model.api !== api) {\n\t\t\tthrow new Error(`Mismatched api: ${model.api} expected ${api}`);\n\t\t}\n\t\treturn stream(model as Model<TApi>, context, options as TOptions);\n\t};\n}\n\nfunction wrapStreamSimple<TApi extends Api>(\n\tapi: TApi,\n\tstreamSimple: StreamFunction<TApi, SimpleStreamOptions>,\n): ApiStreamSimpleFunction {\n\treturn (model, context, options) => {\n\t\tif (model.api !== api) {\n\t\t\tthrow new Error(`Mismatched api: ${model.api} expected ${api}`);\n\t\t}\n\t\treturn streamSimple(model as Model<TApi>, context, options);\n\t};\n}\n\nexport function registerApiProvider<TApi extends Api, TOptions extends StreamOptions>(\n\tprovider: ApiProvider<TApi, TOptions>,\n\tsourceId?: string,\n): void {\n\tapiProviderRegistry.set(provider.api, {\n\t\tprovider: {\n\t\t\tapi: provider.api,\n\t\t\tstream: wrapStream(provider.api, provider.stream),\n\t\t\tstreamSimple: wrapStreamSimple(provider.api, provider.streamSimple),\n\t\t},\n\t\tsourceId,\n\t});\n}\n\nexport function getApiProvider(api: Api): ApiProviderInternal | undefined {\n\treturn apiProviderRegistry.get(api)?.provider;\n}\n\nexport function getApiProviders(): ApiProviderInternal[] {\n\treturn Array.from(apiProviderRegistry.values(), (entry) => entry.provider);\n}\n\nexport function unregisterApiProviders(sourceId: string): void {\n\tfor (const [api, entry] of apiProviderRegistry.entries()) {\n\t\tif (entry.sourceId === sourceId) {\n\t\t\tapiProviderRegistry.delete(api);\n\t\t}\n\t}\n}\n\nfunction clearApiProviders(): void {\n\tapiProviderRegistry.clear();\n}\n\nexport function registerFauxProvider(options: RegisterFauxProviderOptions = {}): FauxProviderRegistration {\n\tconst core = createFauxCore(options);\n\tconst sourceId = `faux-provider-${Math.random().toString(36).slice(2, 10)}`;\n\tregisterApiProvider({ api: core.api, stream: core.stream, streamSimple: core.streamSimple }, sourceId);\n\treturn {\n\t\tapi: core.api,\n\t\tmodels: core.models,\n\t\tgetModel: core.getModel,\n\t\tstate: core.state,\n\t\tsetResponses: core.setResponses,\n\t\tappendResponses: core.appendResponses,\n\t\tgetPendingResponseCount: core.getPendingResponseCount,\n\t\tunregister() {\n\t\t\tunregisterApiProviders(sourceId);\n\t\t},\n\t};\n}\n\nconst BUILTIN_APIS: [Api, ProviderStreams][] = [\n\t[\"anthropic-messages\", anthropicMessagesApi()],\n\t[\"openai-completions\", openAICompletionsApi()],\n\t[\"openai-responses\", openAIResponsesApi()],\n\t[\"openai-codex-responses\", openAICodexResponsesApi()],\n\t[\"azure-openai-responses\", azureOpenAIResponsesApi()],\n\t[\"google-generative-ai\", googleGenerativeAIApi()],\n\t[\"google-vertex\", googleVertexApi()],\n\t[\"mistral-conversations\", mistralConversationsApi()],\n\t[\"bedrock-converse-stream\", bedrockConverseStreamApi()],\n\t[\"pi-messages\", piMessagesApi()],\n];\n\nconst builtinApiProviderInstances = new Map<Api, ReturnType<typeof getApiProvider>>();\n\n/**\n * Registers the builtin API implementations into the api-registry without\n * clobbering existing entries: compat may load after a test or extension has\n * already registered an override for a builtin api id.\n */\nexport function registerBuiltInApiProviders(): void {\n\tfor (const [api, streams] of BUILTIN_APIS) {\n\t\tif (!getApiProvider(api)) {\n\t\t\tregisterApiProvider({ api, stream: streams.stream, streamSimple: streams.streamSimple });\n\t\t}\n\t\tbuiltinApiProviderInstances.set(api, getApiProvider(api));\n\t}\n}\n\nexport function resetApiProviders(): void {\n\tclearApiProviders();\n\tbuiltinApiProviderInstances.clear();\n\tregisterBuiltInApiProviders();\n}\n\nregisterBuiltInApiProviders();\n\nconst compatModels = builtinModels();\nconst AMBIENT_AUTH_MARKER = \"<authenticated>\";\n\nfunction hasExplicitApiKey(apiKey: string | undefined): apiKey is string {\n\treturn typeof apiKey === \"string\" && apiKey.trim().length > 0;\n}\n\nfunction withEnvApiKey<TOptions extends StreamOptions>(\n\tmodel: Model<Api>,\n\toptions: TOptions | undefined,\n): TOptions | undefined {\n\tif (hasExplicitApiKey(options?.apiKey)) return options;\n\tconst apiKey = getEnvApiKey(model.provider, options?.env);\n\tif (!apiKey || apiKey === AMBIENT_AUTH_MARKER) return options;\n\treturn { ...options, apiKey } as TOptions;\n}\n\nfunction hasResolvedCloudflareAuth(options: StreamOptions | undefined): boolean {\n\treturn hasExplicitApiKey(options?.apiKey) || typeof options?.headers?.[\"cf-aig-authorization\"] === \"string\";\n}\n\nfunction getBuiltinProviderForModel(model: Model<Api>) {\n\tif (getApiProvider(model.api) !== builtinApiProviderInstances.get(model.api)) return undefined;\n\tconst provider = compatModels.getProvider(model.provider);\n\treturn provider?.getModels().some((candidate) => candidate.api === model.api) ? provider : undefined;\n}\n\nfunction resolveApiProvider(api: Api) {\n\tconst provider = getApiProvider(api);\n\tif (!provider) {\n\t\tthrow new Error(`No API provider registered for api: ${api}`);\n\t}\n\treturn provider;\n}\n\nexport function stream<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: ProviderStreamOptions,\n): AssistantMessageEventStream {\n\tconst builtinProvider = getBuiltinProviderForModel(model);\n\tif (builtinProvider) {\n\t\tif (model.provider.startsWith(\"cloudflare-\") && !hasResolvedCloudflareAuth(options)) {\n\t\t\treturn compatModels.stream(model, context, options as ModelsApiStreamOptions<TApi> | undefined);\n\t\t}\n\t\treturn builtinProvider.stream(model, context, withEnvApiKey(model, options) as ApiStreamOptions<TApi>);\n\t}\n\tconst provider = resolveApiProvider(model.api);\n\treturn provider.stream(model, context, withEnvApiKey(model, options) as StreamOptions);\n}\n\nexport async function complete<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: ProviderStreamOptions,\n): Promise<AssistantMessage> {\n\tconst s = stream(model, context, options);\n\treturn s.result();\n}\n\nexport function streamSimple<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): AssistantMessageEventStream {\n\tconst builtinProvider = getBuiltinProviderForModel(model);\n\tif (builtinProvider) {\n\t\tif (model.provider.startsWith(\"cloudflare-\") && !hasResolvedCloudflareAuth(options)) {\n\t\t\treturn compatModels.streamSimple(model, context, options);\n\t\t}\n\t\treturn builtinProvider.streamSimple(model, context, withEnvApiKey(model, options));\n\t}\n\tconst provider = resolveApiProvider(model.api);\n\treturn provider.streamSimple(model, context, withEnvApiKey(model, options));\n}\n\nexport async function completeSimple<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): Promise<AssistantMessage> {\n\tconst s = streamSimple(model, context, options);\n\treturn s.result();\n}\n"]}
@@ -1,4 +1,7 @@
1
1
  import type { KnownProvider, ProviderEnv } from "./types.ts";
2
+ export declare const ANTHROPIC_AUTH_TOKEN_ENV = "ANTHROPIC_AUTH_TOKEN";
3
+ export declare const ANTHROPIC_OAUTH_TOKEN_ENV = "ANTHROPIC_OAUTH_TOKEN";
4
+ export declare const ANTHROPIC_API_KEY_ENV = "ANTHROPIC_API_KEY";
2
5
  /**
3
6
  * Find configured environment variables that can provide an API key for a provider.
4
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"env-api-keys.d.ts","sourceRoot":"","sources":["../src/env-api-keys.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAsF7D;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAC9F,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AASvF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AAC7F,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"env-api-keys.d.ts","sourceRoot":"","sources":["../src/env-api-keys.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG7D,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AACjE,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAyFzD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAC9F,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AASvF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AAC7F,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC"}
@@ -27,6 +27,9 @@ if (typeof process !== "undefined" && (process.versions?.node || process.version
27
27
  });
28
28
  }
29
29
  import { getProviderEnvValue } from "./utils/provider-env.js";
30
+ export const ANTHROPIC_AUTH_TOKEN_ENV = "ANTHROPIC_AUTH_TOKEN";
31
+ export const ANTHROPIC_OAUTH_TOKEN_ENV = "ANTHROPIC_OAUTH_TOKEN";
32
+ export const ANTHROPIC_API_KEY_ENV = "ANTHROPIC_API_KEY";
30
33
  let cachedVertexAdcCredentialsExists = null;
31
34
  function hasVertexAdcCredentials(env) {
32
35
  const explicitCredentialsPath = env?.GOOGLE_APPLICATION_CREDENTIALS;
@@ -61,12 +64,15 @@ function getApiKeyEnvVars(provider) {
61
64
  if (provider === "github-copilot") {
62
65
  return ["COPILOT_GITHUB_TOKEN"];
63
66
  }
64
- // ANTHROPIC_OAUTH_TOKEN takes precedence over ANTHROPIC_API_KEY
67
+ // ANTHROPIC_AUTH_TOKEN participates in env discovery/status, but
68
+ // getEnvApiKey() skips it because requests must pass it as Authorization: Bearer.
65
69
  if (provider === "anthropic") {
66
- return ["ANTHROPIC_OAUTH_TOKEN", "ANTHROPIC_API_KEY"];
70
+ return [ANTHROPIC_AUTH_TOKEN_ENV, ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_API_KEY_ENV];
67
71
  }
68
72
  const envMap = {
69
73
  "ant-ling": "ANT_LING_API_KEY",
74
+ "qwen-token-plan": "QWEN_TOKEN_PLAN_API_KEY",
75
+ "qwen-token-plan-cn": "QWEN_TOKEN_PLAN_CN_API_KEY",
70
76
  openai: "OPENAI_API_KEY",
71
77
  "azure-openai-responses": "AZURE_OPENAI_API_KEY",
72
78
  nvidia: "NVIDIA_API_KEY",
@@ -76,6 +82,7 @@ function getApiKeyEnvVars(provider) {
76
82
  groq: "GROQ_API_KEY",
77
83
  cerebras: "CEREBRAS_API_KEY",
78
84
  xai: "XAI_API_KEY",
85
+ radius: "RADIUS_API_KEY",
79
86
  openrouter: "OPENROUTER_API_KEY",
80
87
  "vercel-ai-gateway": "AI_GATEWAY_API_KEY",
81
88
  zai: "ZAI_API_KEY",
@@ -111,7 +118,9 @@ export function findEnvKeys(provider, env) {
111
118
  export function getEnvApiKey(provider, env) {
112
119
  const envKeys = findEnvKeys(provider, env);
113
120
  if (envKeys?.[0]) {
114
- return getProviderEnvValue(envKeys[0], env);
121
+ const apiKeyEnv = provider === "anthropic" ? envKeys.find((key) => key !== ANTHROPIC_AUTH_TOKEN_ENV) : envKeys[0];
122
+ if (apiKeyEnv)
123
+ return getProviderEnvValue(apiKeyEnv, env);
115
124
  }
116
125
  // Vertex AI supports either an explicit API key or Application Default Credentials.
117
126
  // Auth is configured via `gcloud auth application-default login`.
@@ -1 +1 @@
1
- {"version":3,"file":"env-api-keys.js","sourceRoot":"","sources":["../src/env-api-keys.ts"],"names":[],"mappings":"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","sourcesContent":["// NEVER convert to top-level imports - breaks browser/Vite builds\nlet _existsSync: typeof import(\"node:fs\").existsSync | null = null;\nlet _homedir: typeof import(\"node:os\").homedir | null = null;\nlet _join: typeof import(\"node:path\").join | null = null;\n\ntype DynamicImport = (specifier: string) => Promise<unknown>;\n\nconst dynamicImport: DynamicImport = (specifier) => import(specifier);\nconst NODE_FS_SPECIFIER = \"node:\" + \"fs\";\nconst NODE_OS_SPECIFIER = \"node:\" + \"os\";\nconst NODE_PATH_SPECIFIER = \"node:\" + \"path\";\n\n// Eagerly load in Node.js/Bun environment only\nif (typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun)) {\n\tdynamicImport(NODE_FS_SPECIFIER).then((m) => {\n\t\t_existsSync = (m as typeof import(\"node:fs\")).existsSync;\n\t});\n\tdynamicImport(NODE_OS_SPECIFIER).then((m) => {\n\t\t_homedir = (m as typeof import(\"node:os\")).homedir;\n\t});\n\tdynamicImport(NODE_PATH_SPECIFIER).then((m) => {\n\t\t_join = (m as typeof import(\"node:path\")).join;\n\t});\n}\n\nimport type { KnownProvider, ProviderEnv } from \"./types.ts\";\nimport { getProviderEnvValue } from \"./utils/provider-env.ts\";\n\nlet cachedVertexAdcCredentialsExists: boolean | null = null;\n\nfunction hasVertexAdcCredentials(env?: ProviderEnv): boolean {\n\tconst explicitCredentialsPath = env?.GOOGLE_APPLICATION_CREDENTIALS;\n\tif (explicitCredentialsPath) {\n\t\treturn _existsSync ? _existsSync(explicitCredentialsPath) : false;\n\t}\n\n\tif (cachedVertexAdcCredentialsExists === null) {\n\t\t// If node modules haven't loaded yet (async import race at startup),\n\t\t// return false WITHOUT caching so the next call retries once they're ready.\n\t\t// Only cache false permanently in a browser environment where fs is never available.\n\t\tif (!_existsSync || !_homedir || !_join) {\n\t\t\tconst isNode = typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun);\n\t\t\tif (!isNode) {\n\t\t\t\t// Definitively in a browser — safe to cache false permanently\n\t\t\t\tcachedVertexAdcCredentialsExists = false;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check GOOGLE_APPLICATION_CREDENTIALS env var first (standard way)\n\t\tconst gacPath = getProviderEnvValue(\"GOOGLE_APPLICATION_CREDENTIALS\", env);\n\t\tif (gacPath) {\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(gacPath);\n\t\t} else {\n\t\t\t// Fall back to default ADC path (lazy evaluation)\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(\n\t\t\t\t_join(_homedir(), \".config\", \"gcloud\", \"application_default_credentials.json\"),\n\t\t\t);\n\t\t}\n\t}\n\treturn cachedVertexAdcCredentialsExists;\n}\n\nfunction getApiKeyEnvVars(provider: string): readonly string[] | undefined {\n\tif (provider === \"github-copilot\") {\n\t\treturn [\"COPILOT_GITHUB_TOKEN\"];\n\t}\n\n\t// ANTHROPIC_OAUTH_TOKEN takes precedence over ANTHROPIC_API_KEY\n\tif (provider === \"anthropic\") {\n\t\treturn [\"ANTHROPIC_OAUTH_TOKEN\", \"ANTHROPIC_API_KEY\"];\n\t}\n\n\tconst envMap: Record<string, string> = {\n\t\t\"ant-ling\": \"ANT_LING_API_KEY\",\n\t\topenai: \"OPENAI_API_KEY\",\n\t\t\"azure-openai-responses\": \"AZURE_OPENAI_API_KEY\",\n\t\tnvidia: \"NVIDIA_API_KEY\",\n\t\tdeepseek: \"DEEPSEEK_API_KEY\",\n\t\tgoogle: \"GEMINI_API_KEY\",\n\t\t\"google-vertex\": \"GOOGLE_CLOUD_API_KEY\",\n\t\tgroq: \"GROQ_API_KEY\",\n\t\tcerebras: \"CEREBRAS_API_KEY\",\n\t\txai: \"XAI_API_KEY\",\n\t\topenrouter: \"OPENROUTER_API_KEY\",\n\t\t\"vercel-ai-gateway\": \"AI_GATEWAY_API_KEY\",\n\t\tzai: \"ZAI_API_KEY\",\n\t\t\"zai-coding-cn\": \"ZAI_CODING_CN_API_KEY\",\n\t\tmistral: \"MISTRAL_API_KEY\",\n\t\tminimax: \"MINIMAX_API_KEY\",\n\t\t\"minimax-cn\": \"MINIMAX_CN_API_KEY\",\n\t\tmoonshotai: \"MOONSHOT_API_KEY\",\n\t\t\"moonshotai-cn\": \"MOONSHOT_API_KEY\",\n\t\thuggingface: \"HF_TOKEN\",\n\t\tfireworks: \"FIREWORKS_API_KEY\",\n\t\ttogether: \"TOGETHER_API_KEY\",\n\t\topencode: \"OPENCODE_API_KEY\",\n\t\t\"opencode-go\": \"OPENCODE_API_KEY\",\n\t\t\"kimi-coding\": \"KIMI_API_KEY\",\n\t\t\"cloudflare-workers-ai\": \"CLOUDFLARE_API_KEY\",\n\t\t\"cloudflare-ai-gateway\": \"CLOUDFLARE_API_KEY\",\n\t\txiaomi: \"XIAOMI_API_KEY\",\n\t\t\"xiaomi-token-plan-cn\": \"XIAOMI_TOKEN_PLAN_CN_API_KEY\",\n\t\t\"xiaomi-token-plan-ams\": \"XIAOMI_TOKEN_PLAN_AMS_API_KEY\",\n\t\t\"xiaomi-token-plan-sgp\": \"XIAOMI_TOKEN_PLAN_SGP_API_KEY\",\n\t};\n\n\tconst envVar = envMap[provider];\n\treturn envVar ? [envVar] : undefined;\n}\n\n/**\n * Find configured environment variables that can provide an API key for a provider.\n *\n * This only reports actual API key variables. It intentionally excludes ambient\n * credential sources such as AWS profiles, AWS IAM credentials, and Google\n * Application Default Credentials.\n */\nexport function findEnvKeys(provider: KnownProvider, env?: ProviderEnv): string[] | undefined;\nexport function findEnvKeys(provider: string, env?: ProviderEnv): string[] | undefined;\nexport function findEnvKeys(provider: string, env?: ProviderEnv): string[] | undefined {\n\tconst envVars = getApiKeyEnvVars(provider);\n\tif (!envVars) return undefined;\n\n\tconst found = envVars.filter((envVar) => !!getProviderEnvValue(envVar, env));\n\treturn found.length > 0 ? found : undefined;\n}\n\n/**\n * Get API key for provider from known environment variables, e.g. OPENAI_API_KEY.\n *\n * Will not return API keys for providers that require OAuth tokens.\n */\nexport function getEnvApiKey(provider: KnownProvider, env?: ProviderEnv): string | undefined;\nexport function getEnvApiKey(provider: string, env?: ProviderEnv): string | undefined;\nexport function getEnvApiKey(provider: string, env?: ProviderEnv): string | undefined {\n\tconst envKeys = findEnvKeys(provider, env);\n\tif (envKeys?.[0]) {\n\t\treturn getProviderEnvValue(envKeys[0], env);\n\t}\n\n\t// Vertex AI supports either an explicit API key or Application Default Credentials.\n\t// Auth is configured via `gcloud auth application-default login`.\n\tif (provider === \"google-vertex\") {\n\t\tconst hasCredentials = hasVertexAdcCredentials(env);\n\t\tconst hasProject = !!(\n\t\t\tgetProviderEnvValue(\"GOOGLE_CLOUD_PROJECT\", env) || getProviderEnvValue(\"GCLOUD_PROJECT\", env)\n\t\t);\n\t\tconst hasLocation = !!getProviderEnvValue(\"GOOGLE_CLOUD_LOCATION\", env);\n\n\t\tif (hasCredentials && hasProject && hasLocation) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\tif (provider === \"amazon-bedrock\") {\n\t\t// Amazon Bedrock supports multiple credential sources:\n\t\t// 1. AWS_PROFILE - named profile from ~/.aws/credentials\n\t\t// 2. AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY - standard IAM keys\n\t\t// 3. AWS_BEARER_TOKEN_BEDROCK - Bedrock bearer token\n\t\t// 4. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI - ECS task roles\n\t\t// 5. AWS_CONTAINER_CREDENTIALS_FULL_URI - ECS task roles (full URI)\n\t\t// 6. AWS_WEB_IDENTITY_TOKEN_FILE - IRSA (IAM Roles for Service Accounts)\n\t\tif (\n\t\t\tgetProviderEnvValue(\"AWS_PROFILE\", env) ||\n\t\t\t(getProviderEnvValue(\"AWS_ACCESS_KEY_ID\", env) && getProviderEnvValue(\"AWS_SECRET_ACCESS_KEY\", env)) ||\n\t\t\tgetProviderEnvValue(\"AWS_BEARER_TOKEN_BEDROCK\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_CONTAINER_CREDENTIALS_FULL_URI\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_WEB_IDENTITY_TOKEN_FILE\", env)\n\t\t) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\treturn undefined;\n}\n"]}
1
+ {"version":3,"file":"env-api-keys.js","sourceRoot":"","sources":["../src/env-api-keys.ts"],"names":[],"mappings":"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","sourcesContent":["// NEVER convert to top-level imports - breaks browser/Vite builds\nlet _existsSync: typeof import(\"node:fs\").existsSync | null = null;\nlet _homedir: typeof import(\"node:os\").homedir | null = null;\nlet _join: typeof import(\"node:path\").join | null = null;\n\ntype DynamicImport = (specifier: string) => Promise<unknown>;\n\nconst dynamicImport: DynamicImport = (specifier) => import(specifier);\nconst NODE_FS_SPECIFIER = \"node:\" + \"fs\";\nconst NODE_OS_SPECIFIER = \"node:\" + \"os\";\nconst NODE_PATH_SPECIFIER = \"node:\" + \"path\";\n\n// Eagerly load in Node.js/Bun environment only\nif (typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun)) {\n\tdynamicImport(NODE_FS_SPECIFIER).then((m) => {\n\t\t_existsSync = (m as typeof import(\"node:fs\")).existsSync;\n\t});\n\tdynamicImport(NODE_OS_SPECIFIER).then((m) => {\n\t\t_homedir = (m as typeof import(\"node:os\")).homedir;\n\t});\n\tdynamicImport(NODE_PATH_SPECIFIER).then((m) => {\n\t\t_join = (m as typeof import(\"node:path\")).join;\n\t});\n}\n\nimport type { KnownProvider, ProviderEnv } from \"./types.ts\";\nimport { getProviderEnvValue } from \"./utils/provider-env.ts\";\n\nexport const ANTHROPIC_AUTH_TOKEN_ENV = \"ANTHROPIC_AUTH_TOKEN\";\nexport const ANTHROPIC_OAUTH_TOKEN_ENV = \"ANTHROPIC_OAUTH_TOKEN\";\nexport const ANTHROPIC_API_KEY_ENV = \"ANTHROPIC_API_KEY\";\n\nlet cachedVertexAdcCredentialsExists: boolean | null = null;\n\nfunction hasVertexAdcCredentials(env?: ProviderEnv): boolean {\n\tconst explicitCredentialsPath = env?.GOOGLE_APPLICATION_CREDENTIALS;\n\tif (explicitCredentialsPath) {\n\t\treturn _existsSync ? _existsSync(explicitCredentialsPath) : false;\n\t}\n\n\tif (cachedVertexAdcCredentialsExists === null) {\n\t\t// If node modules haven't loaded yet (async import race at startup),\n\t\t// return false WITHOUT caching so the next call retries once they're ready.\n\t\t// Only cache false permanently in a browser environment where fs is never available.\n\t\tif (!_existsSync || !_homedir || !_join) {\n\t\t\tconst isNode = typeof process !== \"undefined\" && (process.versions?.node || process.versions?.bun);\n\t\t\tif (!isNode) {\n\t\t\t\t// Definitively in a browser — safe to cache false permanently\n\t\t\t\tcachedVertexAdcCredentialsExists = false;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check GOOGLE_APPLICATION_CREDENTIALS env var first (standard way)\n\t\tconst gacPath = getProviderEnvValue(\"GOOGLE_APPLICATION_CREDENTIALS\", env);\n\t\tif (gacPath) {\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(gacPath);\n\t\t} else {\n\t\t\t// Fall back to default ADC path (lazy evaluation)\n\t\t\tcachedVertexAdcCredentialsExists = _existsSync(\n\t\t\t\t_join(_homedir(), \".config\", \"gcloud\", \"application_default_credentials.json\"),\n\t\t\t);\n\t\t}\n\t}\n\treturn cachedVertexAdcCredentialsExists;\n}\n\nfunction getApiKeyEnvVars(provider: string): readonly string[] | undefined {\n\tif (provider === \"github-copilot\") {\n\t\treturn [\"COPILOT_GITHUB_TOKEN\"];\n\t}\n\n\t// ANTHROPIC_AUTH_TOKEN participates in env discovery/status, but\n\t// getEnvApiKey() skips it because requests must pass it as Authorization: Bearer.\n\tif (provider === \"anthropic\") {\n\t\treturn [ANTHROPIC_AUTH_TOKEN_ENV, ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_API_KEY_ENV];\n\t}\n\n\tconst envMap: Record<string, string> = {\n\t\t\"ant-ling\": \"ANT_LING_API_KEY\",\n\t\t\"qwen-token-plan\": \"QWEN_TOKEN_PLAN_API_KEY\",\n\t\t\"qwen-token-plan-cn\": \"QWEN_TOKEN_PLAN_CN_API_KEY\",\n\t\topenai: \"OPENAI_API_KEY\",\n\t\t\"azure-openai-responses\": \"AZURE_OPENAI_API_KEY\",\n\t\tnvidia: \"NVIDIA_API_KEY\",\n\t\tdeepseek: \"DEEPSEEK_API_KEY\",\n\t\tgoogle: \"GEMINI_API_KEY\",\n\t\t\"google-vertex\": \"GOOGLE_CLOUD_API_KEY\",\n\t\tgroq: \"GROQ_API_KEY\",\n\t\tcerebras: \"CEREBRAS_API_KEY\",\n\t\txai: \"XAI_API_KEY\",\n\t\tradius: \"RADIUS_API_KEY\",\n\t\topenrouter: \"OPENROUTER_API_KEY\",\n\t\t\"vercel-ai-gateway\": \"AI_GATEWAY_API_KEY\",\n\t\tzai: \"ZAI_API_KEY\",\n\t\t\"zai-coding-cn\": \"ZAI_CODING_CN_API_KEY\",\n\t\tmistral: \"MISTRAL_API_KEY\",\n\t\tminimax: \"MINIMAX_API_KEY\",\n\t\t\"minimax-cn\": \"MINIMAX_CN_API_KEY\",\n\t\tmoonshotai: \"MOONSHOT_API_KEY\",\n\t\t\"moonshotai-cn\": \"MOONSHOT_API_KEY\",\n\t\thuggingface: \"HF_TOKEN\",\n\t\tfireworks: \"FIREWORKS_API_KEY\",\n\t\ttogether: \"TOGETHER_API_KEY\",\n\t\topencode: \"OPENCODE_API_KEY\",\n\t\t\"opencode-go\": \"OPENCODE_API_KEY\",\n\t\t\"kimi-coding\": \"KIMI_API_KEY\",\n\t\t\"cloudflare-workers-ai\": \"CLOUDFLARE_API_KEY\",\n\t\t\"cloudflare-ai-gateway\": \"CLOUDFLARE_API_KEY\",\n\t\txiaomi: \"XIAOMI_API_KEY\",\n\t\t\"xiaomi-token-plan-cn\": \"XIAOMI_TOKEN_PLAN_CN_API_KEY\",\n\t\t\"xiaomi-token-plan-ams\": \"XIAOMI_TOKEN_PLAN_AMS_API_KEY\",\n\t\t\"xiaomi-token-plan-sgp\": \"XIAOMI_TOKEN_PLAN_SGP_API_KEY\",\n\t};\n\n\tconst envVar = envMap[provider];\n\treturn envVar ? [envVar] : undefined;\n}\n\n/**\n * Find configured environment variables that can provide an API key for a provider.\n *\n * This only reports actual API key variables. It intentionally excludes ambient\n * credential sources such as AWS profiles, AWS IAM credentials, and Google\n * Application Default Credentials.\n */\nexport function findEnvKeys(provider: KnownProvider, env?: ProviderEnv): string[] | undefined;\nexport function findEnvKeys(provider: string, env?: ProviderEnv): string[] | undefined;\nexport function findEnvKeys(provider: string, env?: ProviderEnv): string[] | undefined {\n\tconst envVars = getApiKeyEnvVars(provider);\n\tif (!envVars) return undefined;\n\n\tconst found = envVars.filter((envVar) => !!getProviderEnvValue(envVar, env));\n\treturn found.length > 0 ? found : undefined;\n}\n\n/**\n * Get API key for provider from known environment variables, e.g. OPENAI_API_KEY.\n *\n * Will not return API keys for providers that require OAuth tokens.\n */\nexport function getEnvApiKey(provider: KnownProvider, env?: ProviderEnv): string | undefined;\nexport function getEnvApiKey(provider: string, env?: ProviderEnv): string | undefined;\nexport function getEnvApiKey(provider: string, env?: ProviderEnv): string | undefined {\n\tconst envKeys = findEnvKeys(provider, env);\n\tif (envKeys?.[0]) {\n\t\tconst apiKeyEnv = provider === \"anthropic\" ? envKeys.find((key) => key !== ANTHROPIC_AUTH_TOKEN_ENV) : envKeys[0];\n\t\tif (apiKeyEnv) return getProviderEnvValue(apiKeyEnv, env);\n\t}\n\n\t// Vertex AI supports either an explicit API key or Application Default Credentials.\n\t// Auth is configured via `gcloud auth application-default login`.\n\tif (provider === \"google-vertex\") {\n\t\tconst hasCredentials = hasVertexAdcCredentials(env);\n\t\tconst hasProject = !!(\n\t\t\tgetProviderEnvValue(\"GOOGLE_CLOUD_PROJECT\", env) || getProviderEnvValue(\"GCLOUD_PROJECT\", env)\n\t\t);\n\t\tconst hasLocation = !!getProviderEnvValue(\"GOOGLE_CLOUD_LOCATION\", env);\n\n\t\tif (hasCredentials && hasProject && hasLocation) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\tif (provider === \"amazon-bedrock\") {\n\t\t// Amazon Bedrock supports multiple credential sources:\n\t\t// 1. AWS_PROFILE - named profile from ~/.aws/credentials\n\t\t// 2. AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY - standard IAM keys\n\t\t// 3. AWS_BEARER_TOKEN_BEDROCK - Bedrock bearer token\n\t\t// 4. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI - ECS task roles\n\t\t// 5. AWS_CONTAINER_CREDENTIALS_FULL_URI - ECS task roles (full URI)\n\t\t// 6. AWS_WEB_IDENTITY_TOKEN_FILE - IRSA (IAM Roles for Service Accounts)\n\t\tif (\n\t\t\tgetProviderEnvValue(\"AWS_PROFILE\", env) ||\n\t\t\t(getProviderEnvValue(\"AWS_ACCESS_KEY_ID\", env) && getProviderEnvValue(\"AWS_SECRET_ACCESS_KEY\", env)) ||\n\t\t\tgetProviderEnvValue(\"AWS_BEARER_TOKEN_BEDROCK\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_CONTAINER_CREDENTIALS_FULL_URI\", env) ||\n\t\t\tgetProviderEnvValue(\"AWS_WEB_IDENTITY_TOKEN_FILE\", env)\n\t\t) {\n\t\t\treturn \"<authenticated>\";\n\t\t}\n\t}\n\n\treturn undefined;\n}\n"]}
@@ -165,6 +165,51 @@ export declare const IMAGE_MODELS: {
165
165
  cacheWrite: number;
166
166
  };
167
167
  };
168
+ readonly "krea/krea-2-large": {
169
+ id: string;
170
+ name: string;
171
+ api: "openrouter-images";
172
+ provider: string;
173
+ baseUrl: string;
174
+ input: ("image" | "text")[];
175
+ output: "image"[];
176
+ cost: {
177
+ input: number;
178
+ output: number;
179
+ cacheRead: number;
180
+ cacheWrite: number;
181
+ };
182
+ };
183
+ readonly "krea/krea-2-medium": {
184
+ id: string;
185
+ name: string;
186
+ api: "openrouter-images";
187
+ provider: string;
188
+ baseUrl: string;
189
+ input: ("image" | "text")[];
190
+ output: "image"[];
191
+ cost: {
192
+ input: number;
193
+ output: number;
194
+ cacheRead: number;
195
+ cacheWrite: number;
196
+ };
197
+ };
198
+ readonly "krea/krea-2-medium-turbo": {
199
+ id: string;
200
+ name: string;
201
+ api: "openrouter-images";
202
+ provider: string;
203
+ baseUrl: string;
204
+ input: ("image" | "text")[];
205
+ output: "image"[];
206
+ cost: {
207
+ input: number;
208
+ output: number;
209
+ cacheRead: number;
210
+ cacheWrite: number;
211
+ };
212
+ };
168
213
  readonly "microsoft/mai-image-2.5": {
169
214
  id: string;
170
215
  name: string;
@@ -180,6 +225,21 @@ export declare const IMAGE_MODELS: {
180
225
  cacheWrite: number;
181
226
  };
182
227
  };
228
+ readonly "microsoft/mai-image-2.5-pro": {
229
+ id: string;
230
+ name: string;
231
+ api: "openrouter-images";
232
+ provider: string;
233
+ baseUrl: string;
234
+ input: ("image" | "text")[];
235
+ output: "image"[];
236
+ cost: {
237
+ input: number;
238
+ output: number;
239
+ cacheRead: number;
240
+ cacheWrite: number;
241
+ };
242
+ };
183
243
  readonly "openai/gpt-5-image": {
184
244
  id: string;
185
245
  name: string;
@@ -285,6 +345,21 @@ export declare const IMAGE_MODELS: {
285
345
  cacheWrite: number;
286
346
  };
287
347
  };
348
+ readonly "openrouter/auto-beta": {
349
+ id: string;
350
+ name: string;
351
+ api: "openrouter-images";
352
+ provider: string;
353
+ baseUrl: string;
354
+ input: ("image" | "text")[];
355
+ output: ("image" | "text")[];
356
+ cost: {
357
+ input: number;
358
+ output: number;
359
+ cacheRead: number;
360
+ cacheWrite: number;
361
+ };
362
+ };
288
363
  readonly "recraft/recraft-v3": {
289
364
  id: string;
290
365
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"image-models.generated.d.ts","sourceRoot":"","sources":["../src/image-models.generated.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY;;;;;;;;;;;gBAWtB,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;;;;;;;;;gBAYZ,KAAO;gBACP,MAAQ;gBACR,SAAW;gBACX,UAAY;;;;CAI4D,CAAC"}
1
+ {"version":3,"file":"image-models.generated.d.ts","sourceRoot":"","sources":["../src/image-models.generated.ts"],"names":[],"mappings":"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"}