@earendil-works/pi-ai 0.79.10 → 0.80.2

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 (531) hide show
  1. package/README.md +646 -521
  2. package/dist/api/anthropic-messages.d.ts +71 -0
  3. package/dist/api/anthropic-messages.d.ts.map +1 -0
  4. package/dist/api/anthropic-messages.js +963 -0
  5. package/dist/api/anthropic-messages.js.map +1 -0
  6. package/dist/api/anthropic-messages.lazy.d.ts +3 -0
  7. package/dist/api/anthropic-messages.lazy.d.ts.map +1 -0
  8. package/dist/api/anthropic-messages.lazy.js +3 -0
  9. package/dist/api/anthropic-messages.lazy.js.map +1 -0
  10. package/dist/api/azure-openai-responses.d.ts +15 -0
  11. package/dist/api/azure-openai-responses.d.ts.map +1 -0
  12. package/dist/api/azure-openai-responses.js +225 -0
  13. package/dist/api/azure-openai-responses.js.map +1 -0
  14. package/dist/api/azure-openai-responses.lazy.d.ts +3 -0
  15. package/dist/api/azure-openai-responses.lazy.d.ts.map +1 -0
  16. package/dist/api/azure-openai-responses.lazy.js +3 -0
  17. package/dist/api/azure-openai-responses.lazy.js.map +1 -0
  18. package/dist/api/bedrock-converse-stream.d.ts +38 -0
  19. package/dist/api/bedrock-converse-stream.d.ts.map +1 -0
  20. package/dist/api/bedrock-converse-stream.js +863 -0
  21. package/dist/api/bedrock-converse-stream.js.map +1 -0
  22. package/dist/api/bedrock-converse-stream.lazy.d.ts +9 -0
  23. package/dist/api/bedrock-converse-stream.lazy.d.ts.map +1 -0
  24. package/dist/api/bedrock-converse-stream.lazy.js +30 -0
  25. package/dist/api/bedrock-converse-stream.lazy.js.map +1 -0
  26. package/dist/{providers → api}/cloudflare.d.ts +0 -4
  27. package/dist/api/cloudflare.d.ts.map +1 -0
  28. package/dist/{providers → api}/cloudflare.js +0 -18
  29. package/dist/api/cloudflare.js.map +1 -0
  30. package/dist/api/github-copilot-headers.d.ts.map +1 -0
  31. package/dist/api/github-copilot-headers.js.map +1 -0
  32. package/dist/api/google-generative-ai.d.ts +13 -0
  33. package/dist/api/google-generative-ai.d.ts.map +1 -0
  34. package/dist/api/google-generative-ai.js +405 -0
  35. package/dist/api/google-generative-ai.js.map +1 -0
  36. package/dist/api/google-generative-ai.lazy.d.ts +3 -0
  37. package/dist/api/google-generative-ai.lazy.d.ts.map +1 -0
  38. package/dist/api/google-generative-ai.lazy.js +3 -0
  39. package/dist/api/google-generative-ai.lazy.js.map +1 -0
  40. package/dist/api/google-shared.d.ts.map +1 -0
  41. package/dist/api/google-shared.js.map +1 -0
  42. package/dist/api/google-vertex.d.ts +15 -0
  43. package/dist/api/google-vertex.d.ts.map +1 -0
  44. package/dist/api/google-vertex.js +454 -0
  45. package/dist/api/google-vertex.js.map +1 -0
  46. package/dist/api/google-vertex.lazy.d.ts +3 -0
  47. package/dist/api/google-vertex.lazy.d.ts.map +1 -0
  48. package/dist/api/google-vertex.lazy.js +3 -0
  49. package/dist/api/google-vertex.lazy.js.map +1 -0
  50. package/dist/api/lazy.d.ts +15 -0
  51. package/dist/api/lazy.d.ts.map +1 -0
  52. package/dist/api/lazy.js +59 -0
  53. package/dist/api/lazy.js.map +1 -0
  54. package/dist/api/mistral-conversations.d.ts +25 -0
  55. package/dist/api/mistral-conversations.d.ts.map +1 -0
  56. package/dist/api/mistral-conversations.js +555 -0
  57. package/dist/api/mistral-conversations.js.map +1 -0
  58. package/dist/api/mistral-conversations.lazy.d.ts +3 -0
  59. package/dist/api/mistral-conversations.lazy.d.ts.map +1 -0
  60. package/dist/api/mistral-conversations.lazy.js +3 -0
  61. package/dist/api/mistral-conversations.lazy.js.map +1 -0
  62. package/dist/{providers → api}/openai-codex-responses.d.ts +2 -3
  63. package/dist/api/openai-codex-responses.d.ts.map +1 -0
  64. package/dist/{providers → api}/openai-codex-responses.js +66 -45
  65. package/dist/api/openai-codex-responses.js.map +1 -0
  66. package/dist/api/openai-codex-responses.lazy.d.ts +3 -0
  67. package/dist/api/openai-codex-responses.lazy.d.ts.map +1 -0
  68. package/dist/api/openai-codex-responses.lazy.js +3 -0
  69. package/dist/api/openai-codex-responses.lazy.js.map +1 -0
  70. package/dist/{providers → api}/openai-completions.d.ts +2 -3
  71. package/dist/api/openai-completions.d.ts.map +1 -0
  72. package/dist/{providers → api}/openai-completions.js +32 -37
  73. package/dist/api/openai-completions.js.map +1 -0
  74. package/dist/api/openai-completions.lazy.d.ts +3 -0
  75. package/dist/api/openai-completions.lazy.d.ts.map +1 -0
  76. package/dist/api/openai-completions.lazy.js +3 -0
  77. package/dist/api/openai-completions.lazy.js.map +1 -0
  78. package/dist/api/openai-prompt-cache.d.ts.map +1 -0
  79. package/dist/api/openai-prompt-cache.js.map +1 -0
  80. package/dist/api/openai-responses-shared.d.ts.map +1 -0
  81. package/dist/{providers → api}/openai-responses-shared.js +37 -29
  82. package/dist/api/openai-responses-shared.js.map +1 -0
  83. package/dist/{providers → api}/openai-responses.d.ts +2 -3
  84. package/dist/api/openai-responses.d.ts.map +1 -0
  85. package/dist/{providers → api}/openai-responses.js +27 -32
  86. package/dist/api/openai-responses.js.map +1 -0
  87. package/dist/api/openai-responses.lazy.d.ts +3 -0
  88. package/dist/api/openai-responses.lazy.d.ts.map +1 -0
  89. package/dist/api/openai-responses.lazy.js +3 -0
  90. package/dist/api/openai-responses.lazy.js.map +1 -0
  91. package/dist/api/openrouter-images.d.ts +3 -0
  92. package/dist/api/openrouter-images.d.ts.map +1 -0
  93. package/dist/{providers/images/openrouter.js → api/openrouter-images.js} +5 -15
  94. package/dist/api/openrouter-images.js.map +1 -0
  95. package/dist/api/openrouter-images.lazy.d.ts +3 -0
  96. package/dist/api/openrouter-images.lazy.d.ts.map +1 -0
  97. package/dist/api/openrouter-images.lazy.js +4 -0
  98. package/dist/api/openrouter-images.lazy.js.map +1 -0
  99. package/dist/api/simple-options.d.ts.map +1 -0
  100. package/dist/api/simple-options.js.map +1 -0
  101. package/dist/api/transform-messages.d.ts.map +1 -0
  102. package/dist/api/transform-messages.js.map +1 -0
  103. package/dist/auth/context.d.ts +7 -0
  104. package/dist/auth/context.d.ts.map +1 -0
  105. package/dist/auth/context.js +42 -0
  106. package/dist/auth/context.js.map +1 -0
  107. package/dist/auth/credential-store.d.ts +16 -0
  108. package/dist/auth/credential-store.d.ts.map +1 -0
  109. package/dist/auth/credential-store.js +37 -0
  110. package/dist/auth/credential-store.js.map +1 -0
  111. package/dist/auth/helpers.d.ts +20 -0
  112. package/dist/auth/helpers.d.ts.map +1 -0
  113. package/dist/auth/helpers.js +46 -0
  114. package/dist/auth/helpers.js.map +1 -0
  115. package/dist/auth/resolve.d.ts +26 -0
  116. package/dist/auth/resolve.d.ts.map +1 -0
  117. package/dist/auth/resolve.js +101 -0
  118. package/dist/auth/resolve.js.map +1 -0
  119. package/dist/auth/types.d.ts +180 -0
  120. package/dist/auth/types.d.ts.map +1 -0
  121. package/dist/auth/types.js +2 -0
  122. package/dist/auth/types.js.map +1 -0
  123. package/dist/bedrock-provider.d.ts +2 -4
  124. package/dist/bedrock-provider.d.ts.map +1 -1
  125. package/dist/bedrock-provider.js +3 -4
  126. package/dist/bedrock-provider.js.map +1 -1
  127. package/dist/compat.d.ts +65 -0
  128. package/dist/compat.d.ts.map +1 -0
  129. package/dist/compat.js +182 -0
  130. package/dist/compat.js.map +1 -0
  131. package/dist/images-api-registry.d.ts +0 -1
  132. package/dist/images-api-registry.d.ts.map +1 -1
  133. package/dist/images-api-registry.js +0 -3
  134. package/dist/images-api-registry.js.map +1 -1
  135. package/dist/images-models.d.ts +93 -0
  136. package/dist/images-models.d.ts.map +1 -0
  137. package/dist/images-models.js +141 -0
  138. package/dist/images-models.js.map +1 -0
  139. package/dist/images.d.ts +1 -0
  140. package/dist/images.d.ts.map +1 -1
  141. package/dist/images.js +1 -0
  142. package/dist/images.js.map +1 -1
  143. package/dist/index.d.ts +29 -2
  144. package/dist/index.d.ts.map +1 -1
  145. package/dist/index.js +17 -4
  146. package/dist/index.js.map +1 -1
  147. package/dist/legacy-api-aliases.d.ts +42 -0
  148. package/dist/legacy-api-aliases.d.ts.map +1 -0
  149. package/dist/legacy-api-aliases.js +49 -0
  150. package/dist/legacy-api-aliases.js.map +1 -0
  151. package/dist/models.d.ts +133 -9
  152. package/dist/models.d.ts.map +1 -1
  153. package/dist/models.generated.d.ts +1766 -156
  154. package/dist/models.generated.d.ts.map +1 -1
  155. package/dist/models.generated.js +70 -17172
  156. package/dist/models.generated.js.map +1 -1
  157. package/dist/models.js +181 -17
  158. package/dist/models.js.map +1 -1
  159. package/dist/providers/all.d.ts +21 -0
  160. package/dist/providers/all.d.ts.map +1 -0
  161. package/dist/providers/all.js +114 -0
  162. package/dist/providers/all.js.map +1 -0
  163. package/dist/providers/amazon-bedrock.d.ts +2 -38
  164. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  165. package/dist/providers/amazon-bedrock.js +35 -865
  166. package/dist/providers/amazon-bedrock.js.map +1 -1
  167. package/dist/providers/amazon-bedrock.models.d.ts +1718 -0
  168. package/dist/providers/amazon-bedrock.models.d.ts.map +1 -0
  169. package/dist/providers/amazon-bedrock.models.js +1675 -0
  170. package/dist/providers/amazon-bedrock.models.js.map +1 -0
  171. package/dist/providers/ant-ling.d.ts +3 -0
  172. package/dist/providers/ant-ling.d.ts.map +1 -0
  173. package/dist/providers/ant-ling.js +15 -0
  174. package/dist/providers/ant-ling.js.map +1 -0
  175. package/dist/providers/ant-ling.models.d.ts +86 -0
  176. package/dist/providers/ant-ling.models.d.ts.map +1 -0
  177. package/dist/providers/ant-ling.models.js +60 -0
  178. package/dist/providers/ant-ling.models.js.map +1 -0
  179. package/dist/providers/anthropic.d.ts +2 -71
  180. package/dist/providers/anthropic.d.ts.map +1 -1
  181. package/dist/providers/anthropic.js +17 -973
  182. package/dist/providers/anthropic.js.map +1 -1
  183. package/dist/providers/anthropic.models.d.ts +458 -0
  184. package/dist/providers/anthropic.models.d.ts.map +1 -0
  185. package/dist/providers/anthropic.models.js +439 -0
  186. package/dist/providers/anthropic.models.js.map +1 -0
  187. package/dist/providers/azure-openai-responses.d.ts +2 -15
  188. package/dist/providers/azure-openai-responses.d.ts.map +1 -1
  189. package/dist/providers/azure-openai-responses.js +11 -230
  190. package/dist/providers/azure-openai-responses.js.map +1 -1
  191. package/dist/providers/azure-openai-responses.models.d.ts +804 -0
  192. package/dist/providers/azure-openai-responses.models.d.ts.map +1 -0
  193. package/dist/providers/azure-openai-responses.models.js +743 -0
  194. package/dist/providers/azure-openai-responses.models.js.map +1 -0
  195. package/dist/providers/cerebras.d.ts +3 -0
  196. package/dist/providers/cerebras.d.ts.map +1 -0
  197. package/dist/providers/cerebras.js +15 -0
  198. package/dist/providers/cerebras.js.map +1 -0
  199. package/dist/providers/cerebras.models.d.ts +45 -0
  200. package/dist/providers/cerebras.models.d.ts.map +1 -0
  201. package/dist/providers/cerebras.models.js +41 -0
  202. package/dist/providers/cerebras.models.js.map +1 -0
  203. package/dist/providers/cloudflare-ai-gateway.d.ts +3 -0
  204. package/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -0
  205. package/dist/providers/cloudflare-ai-gateway.js +20 -0
  206. package/dist/providers/cloudflare-ai-gateway.js.map +1 -0
  207. package/dist/providers/cloudflare-ai-gateway.models.d.ts +765 -0
  208. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -0
  209. package/dist/providers/cloudflare-ai-gateway.models.js +666 -0
  210. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -0
  211. package/dist/providers/cloudflare-auth.d.ts +4 -0
  212. package/dist/providers/cloudflare-auth.d.ts.map +1 -0
  213. package/dist/providers/cloudflare-auth.js +85 -0
  214. package/dist/providers/cloudflare-auth.js.map +1 -0
  215. package/dist/providers/cloudflare-workers-ai.d.ts +3 -0
  216. package/dist/providers/cloudflare-workers-ai.d.ts.map +1 -0
  217. package/dist/providers/cloudflare-workers-ai.js +14 -0
  218. package/dist/providers/cloudflare-workers-ai.js.map +1 -0
  219. package/dist/providers/cloudflare-workers-ai.models.d.ts +302 -0
  220. package/dist/providers/cloudflare-workers-ai.models.d.ts.map +1 -0
  221. package/dist/providers/cloudflare-workers-ai.models.js +239 -0
  222. package/dist/providers/cloudflare-workers-ai.models.js.map +1 -0
  223. package/dist/providers/deepseek.d.ts +3 -0
  224. package/dist/providers/deepseek.d.ts.map +1 -0
  225. package/dist/providers/deepseek.js +15 -0
  226. package/dist/providers/deepseek.js.map +1 -0
  227. package/dist/providers/deepseek.models.d.ts +63 -0
  228. package/dist/providers/deepseek.models.d.ts.map +1 -0
  229. package/dist/providers/deepseek.models.js +43 -0
  230. package/dist/providers/deepseek.models.js.map +1 -0
  231. package/dist/providers/faux.d.ts +43 -2
  232. package/dist/providers/faux.d.ts.map +1 -1
  233. package/dist/providers/faux.js +34 -7
  234. package/dist/providers/faux.js.map +1 -1
  235. package/dist/providers/fireworks.d.ts +3 -0
  236. package/dist/providers/fireworks.d.ts.map +1 -0
  237. package/dist/providers/fireworks.js +19 -0
  238. package/dist/providers/fireworks.js.map +1 -0
  239. package/dist/providers/fireworks.models.d.ts +353 -0
  240. package/dist/providers/fireworks.models.d.ts.map +1 -0
  241. package/dist/providers/fireworks.models.js +276 -0
  242. package/dist/providers/fireworks.models.js.map +1 -0
  243. package/dist/providers/github-copilot.d.ts +3 -0
  244. package/dist/providers/github-copilot.d.ts.map +1 -0
  245. package/dist/providers/github-copilot.js +25 -0
  246. package/dist/providers/github-copilot.js.map +1 -0
  247. package/dist/providers/github-copilot.models.d.ts +616 -0
  248. package/dist/providers/github-copilot.models.d.ts.map +1 -0
  249. package/dist/providers/github-copilot.models.js +426 -0
  250. package/dist/providers/github-copilot.models.js.map +1 -0
  251. package/dist/providers/google-vertex.d.ts +2 -15
  252. package/dist/providers/google-vertex.d.ts.map +1 -1
  253. package/dist/providers/google-vertex.js +30 -455
  254. package/dist/providers/google-vertex.js.map +1 -1
  255. package/dist/providers/google-vertex.models.d.ts +202 -0
  256. package/dist/providers/google-vertex.models.d.ts.map +1 -0
  257. package/dist/providers/google-vertex.models.js +182 -0
  258. package/dist/providers/google-vertex.models.js.map +1 -0
  259. package/dist/providers/google.d.ts +2 -13
  260. package/dist/providers/google.d.ts.map +1 -1
  261. package/dist/providers/google.js +12 -408
  262. package/dist/providers/google.js.map +1 -1
  263. package/dist/providers/google.models.d.ts +328 -0
  264. package/dist/providers/google.models.d.ts.map +1 -0
  265. package/dist/providers/google.models.js +288 -0
  266. package/dist/providers/google.models.js.map +1 -0
  267. package/dist/providers/groq.d.ts +3 -0
  268. package/dist/providers/groq.d.ts.map +1 -0
  269. package/dist/providers/groq.js +15 -0
  270. package/dist/providers/groq.js.map +1 -0
  271. package/dist/providers/groq.models.d.ts +128 -0
  272. package/dist/providers/groq.models.d.ts.map +1 -0
  273. package/dist/providers/groq.models.js +125 -0
  274. package/dist/providers/groq.models.js.map +1 -0
  275. package/dist/providers/huggingface.d.ts +3 -0
  276. package/dist/providers/huggingface.d.ts.map +1 -0
  277. package/dist/providers/huggingface.js +15 -0
  278. package/dist/providers/huggingface.js.map +1 -0
  279. package/dist/providers/huggingface.models.d.ts +883 -0
  280. package/dist/providers/huggingface.models.d.ts.map +1 -0
  281. package/dist/providers/huggingface.models.js +797 -0
  282. package/dist/providers/huggingface.models.js.map +1 -0
  283. package/dist/providers/images/{openrouter.d.ts → register-builtins.d.ts} +2 -2
  284. package/dist/providers/images/register-builtins.d.ts.map +1 -0
  285. package/dist/providers/images/register-builtins.js +34 -0
  286. package/dist/providers/images/register-builtins.js.map +1 -0
  287. package/dist/providers/kimi-coding.d.ts +3 -0
  288. package/dist/providers/kimi-coding.d.ts.map +1 -0
  289. package/dist/providers/kimi-coding.js +15 -0
  290. package/dist/providers/kimi-coding.js.map +1 -0
  291. package/dist/providers/kimi-coding.models.d.ts +63 -0
  292. package/dist/providers/kimi-coding.models.d.ts.map +1 -0
  293. package/dist/providers/kimi-coding.models.js +59 -0
  294. package/dist/providers/kimi-coding.models.js.map +1 -0
  295. package/dist/providers/minimax-cn.d.ts +3 -0
  296. package/dist/providers/minimax-cn.d.ts.map +1 -0
  297. package/dist/providers/minimax-cn.js +15 -0
  298. package/dist/providers/minimax-cn.js.map +1 -0
  299. package/dist/providers/minimax-cn.models.d.ts +54 -0
  300. package/dist/providers/minimax-cn.models.d.ts.map +1 -0
  301. package/dist/providers/minimax-cn.models.js +56 -0
  302. package/dist/providers/minimax-cn.models.js.map +1 -0
  303. package/dist/providers/minimax.d.ts +3 -0
  304. package/dist/providers/minimax.d.ts.map +1 -0
  305. package/dist/providers/minimax.js +15 -0
  306. package/dist/providers/minimax.js.map +1 -0
  307. package/dist/providers/minimax.models.d.ts +54 -0
  308. package/dist/providers/minimax.models.d.ts.map +1 -0
  309. package/dist/providers/minimax.models.js +56 -0
  310. package/dist/providers/minimax.models.js.map +1 -0
  311. package/dist/providers/mistral.d.ts +2 -25
  312. package/dist/providers/mistral.d.ts.map +1 -1
  313. package/dist/providers/mistral.js +12 -560
  314. package/dist/providers/mistral.js.map +1 -1
  315. package/dist/providers/mistral.models.d.ts +513 -0
  316. package/dist/providers/mistral.models.d.ts.map +1 -0
  317. package/dist/providers/mistral.models.js +515 -0
  318. package/dist/providers/mistral.models.js.map +1 -0
  319. package/dist/providers/moonshotai-cn.d.ts +3 -0
  320. package/dist/providers/moonshotai-cn.d.ts.map +1 -0
  321. package/dist/providers/moonshotai-cn.js +15 -0
  322. package/dist/providers/moonshotai-cn.js.map +1 -0
  323. package/dist/providers/moonshotai-cn.models.d.ts +234 -0
  324. package/dist/providers/moonshotai-cn.models.d.ts.map +1 -0
  325. package/dist/providers/moonshotai-cn.models.js +169 -0
  326. package/dist/providers/moonshotai-cn.models.js.map +1 -0
  327. package/dist/providers/moonshotai.d.ts +3 -0
  328. package/dist/providers/moonshotai.d.ts.map +1 -0
  329. package/dist/providers/moonshotai.js +15 -0
  330. package/dist/providers/moonshotai.js.map +1 -0
  331. package/dist/providers/moonshotai.models.d.ts +234 -0
  332. package/dist/providers/moonshotai.models.d.ts.map +1 -0
  333. package/dist/providers/moonshotai.models.js +169 -0
  334. package/dist/providers/moonshotai.models.js.map +1 -0
  335. package/dist/providers/nvidia.d.ts +3 -0
  336. package/dist/providers/nvidia.d.ts.map +1 -0
  337. package/dist/providers/nvidia.js +15 -0
  338. package/dist/providers/nvidia.js.map +1 -0
  339. package/dist/providers/nvidia.models.d.ts +535 -0
  340. package/dist/providers/nvidia.models.d.ts.map +1 -0
  341. package/dist/providers/nvidia.models.js +366 -0
  342. package/dist/providers/nvidia.models.js.map +1 -0
  343. package/dist/providers/openai-codex.d.ts +3 -0
  344. package/dist/providers/openai-codex.d.ts.map +1 -0
  345. package/dist/providers/openai-codex.js +18 -0
  346. package/dist/providers/openai-codex.js.map +1 -0
  347. package/dist/providers/openai-codex.models.d.ts +87 -0
  348. package/dist/providers/openai-codex.models.d.ts.map +1 -0
  349. package/dist/providers/openai-codex.models.js +77 -0
  350. package/dist/providers/openai-codex.models.js.map +1 -0
  351. package/dist/providers/openai.d.ts +3 -0
  352. package/dist/providers/openai.d.ts.map +1 -0
  353. package/dist/providers/openai.js +15 -0
  354. package/dist/providers/openai.js.map +1 -0
  355. package/dist/providers/openai.models.d.ts +805 -0
  356. package/dist/providers/openai.models.d.ts.map +1 -0
  357. package/dist/providers/openai.models.js +743 -0
  358. package/dist/providers/openai.models.js.map +1 -0
  359. package/dist/providers/opencode-go.d.ts +3 -0
  360. package/dist/providers/opencode-go.d.ts.map +1 -0
  361. package/dist/providers/opencode-go.js +18 -0
  362. package/dist/providers/opencode-go.js.map +1 -0
  363. package/dist/providers/opencode-go.models.d.ts +309 -0
  364. package/dist/providers/opencode-go.models.d.ts.map +1 -0
  365. package/dist/providers/opencode-go.models.js +240 -0
  366. package/dist/providers/opencode-go.models.js.map +1 -0
  367. package/dist/providers/opencode.d.ts +3 -0
  368. package/dist/providers/opencode.d.ts.map +1 -0
  369. package/dist/providers/opencode.js +22 -0
  370. package/dist/providers/opencode.js.map +1 -0
  371. package/dist/providers/opencode.models.d.ts +976 -0
  372. package/dist/providers/opencode.models.d.ts.map +1 -0
  373. package/dist/providers/opencode.models.js +815 -0
  374. package/dist/providers/opencode.models.js.map +1 -0
  375. package/dist/providers/openrouter-images.d.ts +3 -0
  376. package/dist/providers/openrouter-images.d.ts.map +1 -0
  377. package/dist/providers/openrouter-images.js +14 -0
  378. package/dist/providers/openrouter-images.js.map +1 -0
  379. package/dist/providers/openrouter.d.ts +3 -0
  380. package/dist/providers/openrouter.d.ts.map +1 -0
  381. package/dist/providers/openrouter.js +15 -0
  382. package/dist/providers/openrouter.js.map +1 -0
  383. package/dist/providers/openrouter.models.d.ts +5405 -0
  384. package/dist/providers/openrouter.models.d.ts.map +1 -0
  385. package/dist/providers/openrouter.models.js +4635 -0
  386. package/dist/providers/openrouter.models.js.map +1 -0
  387. package/dist/providers/together.d.ts +3 -0
  388. package/dist/providers/together.d.ts.map +1 -0
  389. package/dist/providers/together.js +15 -0
  390. package/dist/providers/together.js.map +1 -0
  391. package/dist/providers/together.models.d.ts +567 -0
  392. package/dist/providers/together.models.d.ts.map +1 -0
  393. package/dist/providers/together.models.js +361 -0
  394. package/dist/providers/together.models.js.map +1 -0
  395. package/dist/providers/vercel-ai-gateway.d.ts +3 -0
  396. package/dist/providers/vercel-ai-gateway.d.ts.map +1 -0
  397. package/dist/providers/vercel-ai-gateway.js +15 -0
  398. package/dist/providers/vercel-ai-gateway.js.map +1 -0
  399. package/dist/providers/vercel-ai-gateway.models.d.ts +2938 -0
  400. package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -0
  401. package/dist/providers/vercel-ai-gateway.models.js +2897 -0
  402. package/dist/providers/vercel-ai-gateway.models.js.map +1 -0
  403. package/dist/providers/xai.d.ts +3 -0
  404. package/dist/providers/xai.d.ts.map +1 -0
  405. package/dist/providers/xai.js +15 -0
  406. package/dist/providers/xai.js.map +1 -0
  407. package/dist/providers/xai.models.d.ts +157 -0
  408. package/dist/providers/xai.models.d.ts.map +1 -0
  409. package/dist/providers/xai.models.js +131 -0
  410. package/dist/providers/xai.models.js.map +1 -0
  411. package/dist/providers/xiaomi-token-plan-ams.d.ts +3 -0
  412. package/dist/providers/xiaomi-token-plan-ams.d.ts.map +1 -0
  413. package/dist/providers/xiaomi-token-plan-ams.js +15 -0
  414. package/dist/providers/xiaomi-token-plan-ams.js.map +1 -0
  415. package/dist/providers/xiaomi-token-plan-ams.models.d.ts +108 -0
  416. package/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -0
  417. package/dist/providers/xiaomi-token-plan-ams.models.js +95 -0
  418. package/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -0
  419. package/dist/providers/xiaomi-token-plan-cn.d.ts +3 -0
  420. package/dist/providers/xiaomi-token-plan-cn.d.ts.map +1 -0
  421. package/dist/providers/xiaomi-token-plan-cn.js +15 -0
  422. package/dist/providers/xiaomi-token-plan-cn.js.map +1 -0
  423. package/dist/providers/xiaomi-token-plan-cn.models.d.ts +108 -0
  424. package/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -0
  425. package/dist/providers/xiaomi-token-plan-cn.models.js +95 -0
  426. package/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -0
  427. package/dist/providers/xiaomi-token-plan-sgp.d.ts +3 -0
  428. package/dist/providers/xiaomi-token-plan-sgp.d.ts.map +1 -0
  429. package/dist/providers/xiaomi-token-plan-sgp.js +15 -0
  430. package/dist/providers/xiaomi-token-plan-sgp.js.map +1 -0
  431. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts +108 -0
  432. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -0
  433. package/dist/providers/xiaomi-token-plan-sgp.models.js +95 -0
  434. package/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -0
  435. package/dist/providers/xiaomi.d.ts +3 -0
  436. package/dist/providers/xiaomi.d.ts.map +1 -0
  437. package/dist/providers/xiaomi.js +15 -0
  438. package/dist/providers/xiaomi.js.map +1 -0
  439. package/dist/providers/xiaomi.models.d.ts +129 -0
  440. package/dist/providers/xiaomi.models.d.ts.map +1 -0
  441. package/dist/providers/xiaomi.models.js +113 -0
  442. package/dist/providers/xiaomi.models.js.map +1 -0
  443. package/dist/providers/zai-coding-cn.d.ts +3 -0
  444. package/dist/providers/zai-coding-cn.d.ts.map +1 -0
  445. package/dist/providers/zai-coding-cn.js +15 -0
  446. package/dist/providers/zai-coding-cn.js.map +1 -0
  447. package/dist/providers/zai-coding-cn.models.d.ts +153 -0
  448. package/dist/providers/zai-coding-cn.models.d.ts.map +1 -0
  449. package/dist/providers/zai-coding-cn.models.js +114 -0
  450. package/dist/providers/zai-coding-cn.models.js.map +1 -0
  451. package/dist/providers/zai.d.ts +3 -0
  452. package/dist/providers/zai.d.ts.map +1 -0
  453. package/dist/providers/zai.js +15 -0
  454. package/dist/providers/zai.js.map +1 -0
  455. package/dist/providers/zai.models.d.ts +153 -0
  456. package/dist/providers/zai.models.d.ts.map +1 -0
  457. package/dist/providers/zai.models.js +114 -0
  458. package/dist/providers/zai.models.js.map +1 -0
  459. package/dist/types.d.ts +67 -8
  460. package/dist/types.d.ts.map +1 -1
  461. package/dist/types.js.map +1 -1
  462. package/dist/utils/headers.d.ts +2 -0
  463. package/dist/utils/headers.d.ts.map +1 -1
  464. package/dist/utils/headers.js +10 -0
  465. package/dist/utils/headers.js.map +1 -1
  466. package/dist/utils/oauth/anthropic.d.ts +2 -0
  467. package/dist/utils/oauth/anthropic.d.ts.map +1 -1
  468. package/dist/utils/oauth/anthropic.js +31 -0
  469. package/dist/utils/oauth/anthropic.js.map +1 -1
  470. package/dist/utils/oauth/github-copilot.d.ts +2 -0
  471. package/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  472. package/dist/utils/oauth/github-copilot.js +33 -2
  473. package/dist/utils/oauth/github-copilot.js.map +1 -1
  474. package/dist/utils/oauth/load.d.ts +5 -0
  475. package/dist/utils/oauth/load.d.ts.map +1 -0
  476. package/dist/utils/oauth/load.js +22 -0
  477. package/dist/utils/oauth/load.js.map +1 -0
  478. package/dist/utils/oauth/openai-codex.d.ts +2 -0
  479. package/dist/utils/oauth/openai-codex.d.ts.map +1 -1
  480. package/dist/utils/oauth/openai-codex.js +49 -0
  481. package/dist/utils/oauth/openai-codex.js.map +1 -1
  482. package/package.json +15 -42
  483. package/dist/api-registry.d.ts +0 -20
  484. package/dist/api-registry.d.ts.map +0 -1
  485. package/dist/api-registry.js +0 -44
  486. package/dist/api-registry.js.map +0 -1
  487. package/dist/base.d.ts +0 -30
  488. package/dist/base.d.ts.map +0 -1
  489. package/dist/base.js +0 -18
  490. package/dist/base.js.map +0 -1
  491. package/dist/providers/cloudflare.d.ts.map +0 -1
  492. package/dist/providers/cloudflare.js.map +0 -1
  493. package/dist/providers/github-copilot-headers.d.ts.map +0 -1
  494. package/dist/providers/github-copilot-headers.js.map +0 -1
  495. package/dist/providers/google-shared.d.ts.map +0 -1
  496. package/dist/providers/google-shared.js.map +0 -1
  497. package/dist/providers/images/openrouter.d.ts.map +0 -1
  498. package/dist/providers/images/openrouter.js.map +0 -1
  499. package/dist/providers/openai-codex-responses.d.ts.map +0 -1
  500. package/dist/providers/openai-codex-responses.js.map +0 -1
  501. package/dist/providers/openai-completions.d.ts.map +0 -1
  502. package/dist/providers/openai-completions.js.map +0 -1
  503. package/dist/providers/openai-prompt-cache.d.ts.map +0 -1
  504. package/dist/providers/openai-prompt-cache.js.map +0 -1
  505. package/dist/providers/openai-responses-shared.d.ts.map +0 -1
  506. package/dist/providers/openai-responses-shared.js.map +0 -1
  507. package/dist/providers/openai-responses.d.ts.map +0 -1
  508. package/dist/providers/openai-responses.js.map +0 -1
  509. package/dist/providers/register-builtins.d.ts +0 -37
  510. package/dist/providers/register-builtins.d.ts.map +0 -1
  511. package/dist/providers/register-builtins.js +0 -191
  512. package/dist/providers/register-builtins.js.map +0 -1
  513. package/dist/providers/simple-options.d.ts.map +0 -1
  514. package/dist/providers/simple-options.js.map +0 -1
  515. package/dist/providers/transform-messages.d.ts.map +0 -1
  516. package/dist/providers/transform-messages.js.map +0 -1
  517. package/dist/stream.d.ts +0 -6
  518. package/dist/stream.d.ts.map +0 -1
  519. package/dist/stream.js +0 -37
  520. package/dist/stream.js.map +0 -1
  521. /package/dist/{providers → api}/github-copilot-headers.d.ts +0 -0
  522. /package/dist/{providers → api}/github-copilot-headers.js +0 -0
  523. /package/dist/{providers → api}/google-shared.d.ts +0 -0
  524. /package/dist/{providers → api}/google-shared.js +0 -0
  525. /package/dist/{providers → api}/openai-prompt-cache.d.ts +0 -0
  526. /package/dist/{providers → api}/openai-prompt-cache.js +0 -0
  527. /package/dist/{providers → api}/openai-responses-shared.d.ts +0 -0
  528. /package/dist/{providers → api}/simple-options.d.ts +0 -0
  529. /package/dist/{providers → api}/simple-options.js +0 -0
  530. /package/dist/{providers → api}/transform-messages.d.ts +0 -0
  531. /package/dist/{providers → api}/transform-messages.js +0 -0
@@ -0,0 +1,141 @@
1
+ import { defaultProviderAuthContext as defaultAuthContext } from "./auth/context.js";
2
+ import { InMemoryCredentialStore } from "./auth/credential-store.js";
3
+ import { ModelsError, resolveProviderAuth } from "./auth/resolve.js";
4
+ class ImagesModelsImpl {
5
+ providers = new Map();
6
+ credentials;
7
+ authContext;
8
+ constructor(options) {
9
+ this.credentials = options?.credentials ?? new InMemoryCredentialStore();
10
+ this.authContext = options?.authContext ?? defaultAuthContext();
11
+ }
12
+ setProvider(provider) {
13
+ this.providers.set(provider.id, provider);
14
+ }
15
+ deleteProvider(id) {
16
+ this.providers.delete(id);
17
+ }
18
+ clearProviders() {
19
+ this.providers.clear();
20
+ }
21
+ getProviders() {
22
+ return Array.from(this.providers.values());
23
+ }
24
+ getProvider(id) {
25
+ return this.providers.get(id);
26
+ }
27
+ getModels(provider) {
28
+ if (provider !== undefined) {
29
+ const entry = this.providers.get(provider);
30
+ if (!entry)
31
+ return [];
32
+ try {
33
+ return entry.getModels();
34
+ }
35
+ catch {
36
+ return [];
37
+ }
38
+ }
39
+ const models = [];
40
+ for (const entry of this.providers.values()) {
41
+ try {
42
+ models.push(...entry.getModels());
43
+ }
44
+ catch {
45
+ // Best-effort: ill-behaved providers yield no models.
46
+ }
47
+ }
48
+ return models;
49
+ }
50
+ getModel(provider, id) {
51
+ return this.getModels(provider).find((model) => model.id === id);
52
+ }
53
+ async refresh(provider) {
54
+ if (provider !== undefined) {
55
+ const entry = this.providers.get(provider);
56
+ if (!entry?.refreshModels)
57
+ return;
58
+ try {
59
+ await entry.refreshModels();
60
+ }
61
+ catch (error) {
62
+ if (error instanceof ModelsError)
63
+ throw error;
64
+ throw new ModelsError("model_source", `Model refresh failed for ${provider}`, { cause: error });
65
+ }
66
+ return;
67
+ }
68
+ // Cannot reject: the async mapper turns even sync throws from ill-behaved
69
+ // providers into rejections, and allSettled captures all of them.
70
+ await Promise.allSettled(Array.from(this.providers.values(), async (entry) => entry.refreshModels?.()));
71
+ }
72
+ async getAuth(model) {
73
+ const provider = this.providers.get(model.provider);
74
+ if (!provider)
75
+ return undefined;
76
+ return resolveProviderAuth(provider, model, this.credentials, this.authContext);
77
+ }
78
+ async generateImages(model, context, options) {
79
+ try {
80
+ const provider = this.providers.get(model.provider);
81
+ if (!provider) {
82
+ throw new ModelsError("provider", `Unknown provider: ${model.provider}`);
83
+ }
84
+ const resolution = await resolveProviderAuth(provider, model, this.credentials, this.authContext, {
85
+ apiKey: options?.apiKey,
86
+ env: options?.env,
87
+ });
88
+ const auth = resolution?.auth;
89
+ if (!auth) {
90
+ return provider.generateImages(model, context, options);
91
+ }
92
+ const requestModel = auth.baseUrl ? { ...model, baseUrl: auth.baseUrl } : model;
93
+ // Explicit request options win per-field; headers/env merge per key.
94
+ const apiKey = options?.apiKey ?? auth.apiKey;
95
+ const headers = auth.headers || options?.headers ? { ...auth.headers, ...options?.headers } : undefined;
96
+ const env = resolution.env || options?.env ? { ...(resolution.env ?? {}), ...(options?.env ?? {}) } : undefined;
97
+ return await provider.generateImages(requestModel, context, { ...options, apiKey, headers, env });
98
+ }
99
+ catch (error) {
100
+ return {
101
+ api: model.api,
102
+ provider: model.provider,
103
+ model: model.id,
104
+ output: [],
105
+ stopReason: "error",
106
+ errorMessage: error instanceof Error ? error.message : String(error),
107
+ timestamp: Date.now(),
108
+ };
109
+ }
110
+ }
111
+ }
112
+ export function createImagesModels(options) {
113
+ return new ImagesModelsImpl(options);
114
+ }
115
+ /** Builds an image-generation provider from parts. */
116
+ export function createImagesProvider(input) {
117
+ let models = input.models;
118
+ let inflightRefresh;
119
+ const refreshModels = input.refreshModels;
120
+ return {
121
+ id: input.id,
122
+ name: input.name ?? input.id,
123
+ auth: input.auth,
124
+ getModels: () => models,
125
+ refreshModels: refreshModels
126
+ ? () => {
127
+ inflightRefresh ??= (async () => {
128
+ try {
129
+ models = await refreshModels();
130
+ }
131
+ finally {
132
+ inflightRefresh = undefined;
133
+ }
134
+ })();
135
+ return inflightRefresh;
136
+ }
137
+ : undefined,
138
+ generateImages: (model, context, options) => input.api.generateImages(model, context, options),
139
+ };
140
+ }
141
+ //# sourceMappingURL=images-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images-models.js","sourceRoot":"","sources":["../src/images-models.ts"],"names":[],"mappings":"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","sourcesContent":["import { defaultProviderAuthContext as defaultAuthContext } from \"./auth/context.ts\";\nimport { InMemoryCredentialStore } from \"./auth/credential-store.ts\";\nimport { ModelsError, resolveProviderAuth } from \"./auth/resolve.ts\";\nimport type { AuthContext, AuthResult, CredentialStore, ProviderAuth } from \"./auth/types.ts\";\nimport type { CreateModelsOptions } from \"./models.ts\";\nimport type { AssistantImages, ImagesApi, ImagesContext, ImagesModel, ImagesOptions, ProviderImages } from \"./types.ts\";\n\n/**\n * An image-generation provider: the image-side counterpart of `Provider`.\n * Owns id/name metadata, auth, model listing, and generation behavior.\n */\nexport interface ImagesProvider {\n\treadonly id: string;\n\treadonly name: string;\n\n\t/**\n\t * Required: at least one of `apiKey`/`oauth`. Same semantics as chat\n\t * providers; `ImagesModels.getAuth()` returns undefined when the provider\n\t * is unconfigured.\n\t */\n\treadonly auth: ProviderAuth;\n\n\t/**\n\t * Current known models, sync. Static providers return their catalog;\n\t * dynamic providers return the list as of the last `refreshModels()`\n\t * (empty before the first). Must not throw; `ImagesModels` treats a\n\t * throwing implementation as having no models.\n\t */\n\tgetModels(): readonly ImagesModel<ImagesApi>[];\n\n\t/**\n\t * Dynamic providers only: fetch and update the model list. May reject\n\t * (network); on rejection the model list stays at its last-known state\n\t * and a later call retries.\n\t */\n\trefreshModels?(): Promise<void>;\n\n\tgenerateImages(\n\t\tmodel: ImagesModel<ImagesApi>,\n\t\tcontext: ImagesContext,\n\t\toptions?: ImagesOptions,\n\t): Promise<AssistantImages>;\n}\n\n/**\n * Runtime collection of image-generation providers plus auth application and\n * generation convenience: the image-side counterpart of `Models`.\n */\nexport interface ImagesModels {\n\tgetProviders(): readonly ImagesProvider[];\n\tgetProvider(id: string): ImagesProvider | undefined;\n\n\t/**\n\t * Sync read of last-known models from one provider or all providers.\n\t * Best-effort: a provider whose `getModels()` throws yields no models.\n\t */\n\tgetModels(provider?: string): readonly ImagesModel<ImagesApi>[];\n\n\t/** Sync runtime model lookup against last-known lists. */\n\tgetModel(provider: string, id: string): ImagesModel<ImagesApi> | undefined;\n\n\t/**\n\t * Ask dynamic providers to re-fetch their model lists. With a provider id,\n\t * rejects with `ModelsError` (\"model_source\") on that provider's fetch\n\t * failure; without one, refreshes all providers concurrently best-effort.\n\t * Static providers (no `refreshModels`) are no-ops.\n\t */\n\trefresh(provider?: string): Promise<void>;\n\n\t/**\n\t * Resolve request auth for an image model. Same contract as\n\t * `Models.getAuth()`: undefined when unknown/unconfigured, rejects with\n\t * `ModelsError` (\"oauth\"/\"auth\") on real failures.\n\t */\n\tgetAuth(model: ImagesModel<ImagesApi>): Promise<AuthResult | undefined>;\n\n\t/**\n\t * Generate images through the owning provider with auth resolved and\n\t * merged (explicit options win per field). Never rejects; failures are\n\t * returned as an `AssistantImages` with `stopReason: \"error\"`.\n\t */\n\tgenerateImages(\n\t\tmodel: ImagesModel<ImagesApi>,\n\t\tcontext: ImagesContext,\n\t\toptions?: ImagesOptions,\n\t): Promise<AssistantImages>;\n}\n\nexport interface MutableImagesModels extends ImagesModels {\n\t/** Upsert/replace by provider.id. Provider ids are unique. */\n\tsetProvider(provider: ImagesProvider): void;\n\tdeleteProvider(id: string): void;\n\tclearProviders(): void;\n}\n\nclass ImagesModelsImpl implements MutableImagesModels {\n\tprivate providers = new Map<string, ImagesProvider>();\n\tprivate credentials: CredentialStore;\n\tprivate authContext: AuthContext;\n\n\tconstructor(options?: CreateModelsOptions) {\n\t\tthis.credentials = options?.credentials ?? new InMemoryCredentialStore();\n\t\tthis.authContext = options?.authContext ?? defaultAuthContext();\n\t}\n\n\tsetProvider(provider: ImagesProvider): void {\n\t\tthis.providers.set(provider.id, provider);\n\t}\n\n\tdeleteProvider(id: string): void {\n\t\tthis.providers.delete(id);\n\t}\n\n\tclearProviders(): void {\n\t\tthis.providers.clear();\n\t}\n\n\tgetProviders(): readonly ImagesProvider[] {\n\t\treturn Array.from(this.providers.values());\n\t}\n\n\tgetProvider(id: string): ImagesProvider | undefined {\n\t\treturn this.providers.get(id);\n\t}\n\n\tgetModels(provider?: string): readonly ImagesModel<ImagesApi>[] {\n\t\tif (provider !== undefined) {\n\t\t\tconst entry = this.providers.get(provider);\n\t\t\tif (!entry) return [];\n\t\t\ttry {\n\t\t\t\treturn entry.getModels();\n\t\t\t} catch {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t}\n\n\t\tconst models: ImagesModel<ImagesApi>[] = [];\n\t\tfor (const entry of this.providers.values()) {\n\t\t\ttry {\n\t\t\t\tmodels.push(...entry.getModels());\n\t\t\t} catch {\n\t\t\t\t// Best-effort: ill-behaved providers yield no models.\n\t\t\t}\n\t\t}\n\t\treturn models;\n\t}\n\n\tgetModel(provider: string, id: string): ImagesModel<ImagesApi> | undefined {\n\t\treturn this.getModels(provider).find((model) => model.id === id);\n\t}\n\n\tasync refresh(provider?: string): Promise<void> {\n\t\tif (provider !== undefined) {\n\t\t\tconst entry = this.providers.get(provider);\n\t\t\tif (!entry?.refreshModels) return;\n\t\t\ttry {\n\t\t\t\tawait entry.refreshModels();\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof ModelsError) throw error;\n\t\t\t\tthrow new ModelsError(\"model_source\", `Model refresh failed for ${provider}`, { cause: error });\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Cannot reject: the async mapper turns even sync throws from ill-behaved\n\t\t// providers into rejections, and allSettled captures all of them.\n\t\tawait Promise.allSettled(Array.from(this.providers.values(), async (entry) => entry.refreshModels?.()));\n\t}\n\n\tasync getAuth(model: ImagesModel<ImagesApi>): Promise<AuthResult | undefined> {\n\t\tconst provider = this.providers.get(model.provider);\n\t\tif (!provider) return undefined;\n\t\treturn resolveProviderAuth(provider, model, this.credentials, this.authContext);\n\t}\n\n\tasync generateImages(\n\t\tmodel: ImagesModel<ImagesApi>,\n\t\tcontext: ImagesContext,\n\t\toptions?: ImagesOptions,\n\t): Promise<AssistantImages> {\n\t\ttry {\n\t\t\tconst provider = this.providers.get(model.provider);\n\t\t\tif (!provider) {\n\t\t\t\tthrow new ModelsError(\"provider\", `Unknown provider: ${model.provider}`);\n\t\t\t}\n\n\t\t\tconst resolution = await resolveProviderAuth(provider, model, this.credentials, this.authContext, {\n\t\t\t\tapiKey: options?.apiKey,\n\t\t\t\tenv: options?.env,\n\t\t\t});\n\t\t\tconst auth = resolution?.auth;\n\t\t\tif (!auth) {\n\t\t\t\treturn provider.generateImages(model, context, options);\n\t\t\t}\n\n\t\t\tconst requestModel = auth.baseUrl ? { ...model, baseUrl: auth.baseUrl } : model;\n\n\t\t\t// Explicit request options win per-field; headers/env merge per key.\n\t\t\tconst apiKey = options?.apiKey ?? auth.apiKey;\n\t\t\tconst headers = auth.headers || options?.headers ? { ...auth.headers, ...options?.headers } : undefined;\n\t\t\tconst env =\n\t\t\t\tresolution.env || options?.env ? { ...(resolution.env ?? {}), ...(options?.env ?? {}) } : undefined;\n\n\t\t\treturn await provider.generateImages(requestModel, context, { ...options, apiKey, headers, env });\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tapi: model.api,\n\t\t\t\tprovider: model.provider,\n\t\t\t\tmodel: model.id,\n\t\t\t\toutput: [],\n\t\t\t\tstopReason: \"error\",\n\t\t\t\terrorMessage: error instanceof Error ? error.message : String(error),\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t}\n\t}\n}\n\nexport function createImagesModels(options?: CreateModelsOptions): MutableImagesModels {\n\treturn new ImagesModelsImpl(options);\n}\n\nexport interface CreateImagesProviderOptions {\n\tid: string;\n\t/** Display name. Default: `id`. */\n\tname?: string;\n\t/** Required — every provider has auth semantics, even ambient/keyless ones. */\n\tauth: ProviderAuth;\n\t/** Initial model list (empty for purely dynamic providers). */\n\tmodels: readonly ImagesModel<ImagesApi>[];\n\t/**\n\t * Dynamic providers: fetch the current list. Stored on success; concurrent\n\t * calls share one in-flight fetch. May reject: the stored list then stays\n\t * at its last-known state, the rejection propagates to the caller of\n\t * `refreshModels()` (wrapped as ModelsError \"model_source\" by\n\t * `ImagesModels.refresh(provider)`), and a later call retries.\n\t */\n\trefreshModels?: () => Promise<readonly ImagesModel<ImagesApi>[]>;\n\tapi: ProviderImages;\n}\n\n/** Builds an image-generation provider from parts. */\nexport function createImagesProvider(input: CreateImagesProviderOptions): ImagesProvider {\n\tlet models = input.models;\n\tlet inflightRefresh: Promise<void> | undefined;\n\tconst refreshModels = input.refreshModels;\n\n\treturn {\n\t\tid: input.id,\n\t\tname: input.name ?? input.id,\n\t\tauth: input.auth,\n\t\tgetModels: () => models,\n\t\trefreshModels: refreshModels\n\t\t\t? () => {\n\t\t\t\t\tinflightRefresh ??= (async () => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tmodels = await refreshModels();\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tinflightRefresh = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t})();\n\t\t\t\t\treturn inflightRefresh;\n\t\t\t\t}\n\t\t\t: undefined,\n\t\tgenerateImages: (model, context, options) => input.api.generateImages(model, context, options),\n\t};\n}\n"]}
package/dist/images.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import "./providers/images/register-builtins.ts";
1
2
  import type { AssistantImages, ImagesApi, ImagesContext, ImagesModel, ProviderImagesOptions } from "./types.ts";
2
3
  export declare function generateImages<TApi extends ImagesApi>(model: ImagesModel<TApi>, context: ImagesContext, options?: ProviderImagesOptions): Promise<AssistantImages>;
3
4
  //# sourceMappingURL=images.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAUhH,wBAAsB,cAAc,CAAC,IAAI,SAAS,SAAS,EAC1D,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,EACxB,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAG1B","sourcesContent":["import { getImagesApiProvider } from \"./images-api-registry.ts\";\nimport type { AssistantImages, ImagesApi, ImagesContext, ImagesModel, ProviderImagesOptions } from \"./types.ts\";\n\nfunction resolveImagesApiProvider(api: ImagesApi) {\n\tconst provider = getImagesApiProvider(api);\n\tif (!provider) {\n\t\tthrow new Error(`No API provider registered for api: ${api}`);\n\t}\n\treturn provider;\n}\n\nexport async function generateImages<TApi extends ImagesApi>(\n\tmodel: ImagesModel<TApi>,\n\tcontext: ImagesContext,\n\toptions?: ProviderImagesOptions,\n): Promise<AssistantImages> {\n\tconst provider = resolveImagesApiProvider(model.api);\n\treturn provider.generateImages(model, context, options);\n}\n"]}
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAAA,OAAO,yCAAyC,CAAC;AAGjD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAUhH,wBAAsB,cAAc,CAAC,IAAI,SAAS,SAAS,EAC1D,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,EACxB,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAG1B","sourcesContent":["import \"./providers/images/register-builtins.ts\";\n\nimport { getImagesApiProvider } from \"./images-api-registry.ts\";\nimport type { AssistantImages, ImagesApi, ImagesContext, ImagesModel, ProviderImagesOptions } from \"./types.ts\";\n\nfunction resolveImagesApiProvider(api: ImagesApi) {\n\tconst provider = getImagesApiProvider(api);\n\tif (!provider) {\n\t\tthrow new Error(`No API provider registered for api: ${api}`);\n\t}\n\treturn provider;\n}\n\nexport async function generateImages<TApi extends ImagesApi>(\n\tmodel: ImagesModel<TApi>,\n\tcontext: ImagesContext,\n\toptions?: ProviderImagesOptions,\n): Promise<AssistantImages> {\n\tconst provider = resolveImagesApiProvider(model.api);\n\treturn provider.generateImages(model, context, options);\n}\n"]}
package/dist/images.js CHANGED
@@ -1,3 +1,4 @@
1
+ import "./providers/images/register-builtins.js";
1
2
  import { getImagesApiProvider } from "./images-api-registry.js";
2
3
  function resolveImagesApiProvider(api) {
3
4
  const provider = getImagesApiProvider(api);
@@ -1 +1 @@
1
- {"version":3,"file":"images.js","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,SAAS,wBAAwB,CAAC,GAAc,EAAE;IACjD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,QAAQ,CAAC;AAAA,CAChB;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,KAAwB,EACxB,OAAsB,EACtB,OAA+B,EACJ;IAC3B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAAA,CACxD","sourcesContent":["import { getImagesApiProvider } from \"./images-api-registry.ts\";\nimport type { AssistantImages, ImagesApi, ImagesContext, ImagesModel, ProviderImagesOptions } from \"./types.ts\";\n\nfunction resolveImagesApiProvider(api: ImagesApi) {\n\tconst provider = getImagesApiProvider(api);\n\tif (!provider) {\n\t\tthrow new Error(`No API provider registered for api: ${api}`);\n\t}\n\treturn provider;\n}\n\nexport async function generateImages<TApi extends ImagesApi>(\n\tmodel: ImagesModel<TApi>,\n\tcontext: ImagesContext,\n\toptions?: ProviderImagesOptions,\n): Promise<AssistantImages> {\n\tconst provider = resolveImagesApiProvider(model.api);\n\treturn provider.generateImages(model, context, options);\n}\n"]}
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAAA,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,SAAS,wBAAwB,CAAC,GAAc,EAAE;IACjD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,QAAQ,CAAC;AAAA,CAChB;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,KAAwB,EACxB,OAAsB,EACtB,OAA+B,EACJ;IAC3B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAAA,CACxD","sourcesContent":["import \"./providers/images/register-builtins.ts\";\n\nimport { getImagesApiProvider } from \"./images-api-registry.ts\";\nimport type { AssistantImages, ImagesApi, ImagesContext, ImagesModel, ProviderImagesOptions } from \"./types.ts\";\n\nfunction resolveImagesApiProvider(api: ImagesApi) {\n\tconst provider = getImagesApiProvider(api);\n\tif (!provider) {\n\t\tthrow new Error(`No API provider registered for api: ${api}`);\n\t}\n\treturn provider;\n}\n\nexport async function generateImages<TApi extends ImagesApi>(\n\tmodel: ImagesModel<TApi>,\n\tcontext: ImagesContext,\n\toptions?: ProviderImagesOptions,\n): Promise<AssistantImages> {\n\tconst provider = resolveImagesApiProvider(model.api);\n\treturn provider.generateImages(model, context, options);\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,30 @@
1
- export * from "./base.ts";
2
- export * from "./providers/register-builtins.ts";
1
+ export type { Static, TSchema } from "typebox";
2
+ export { Type } from "typebox";
3
+ export type { AnthropicEffort, AnthropicOptions, AnthropicThinkingDisplay } from "./api/anthropic-messages.ts";
4
+ export type { AzureOpenAIResponsesOptions } from "./api/azure-openai-responses.ts";
5
+ export type { BedrockOptions, BedrockThinkingDisplay } from "./api/bedrock-converse-stream.ts";
6
+ export type { GoogleOptions } from "./api/google-generative-ai.ts";
7
+ export type { GoogleThinkingLevel } from "./api/google-shared.ts";
8
+ export type { GoogleVertexOptions } from "./api/google-vertex.ts";
9
+ export * from "./api/lazy.ts";
10
+ export type { MistralOptions } from "./api/mistral-conversations.ts";
11
+ export type { OpenAICodexResponsesOptions, OpenAICodexWebSocketDebugStats } from "./api/openai-codex-responses.ts";
12
+ export type { OpenAICompletionsOptions } from "./api/openai-completions.ts";
13
+ export type { OpenAIResponsesOptions } from "./api/openai-responses.ts";
14
+ export * from "./auth/context.ts";
15
+ export * from "./auth/credential-store.ts";
16
+ export * from "./auth/helpers.ts";
17
+ export * from "./auth/types.ts";
18
+ export * from "./images-models.ts";
19
+ export * from "./models.ts";
20
+ export * from "./providers/faux.ts";
21
+ export * from "./session-resources.ts";
22
+ export * from "./types.ts";
23
+ export * from "./utils/diagnostics.ts";
24
+ export * from "./utils/event-stream.ts";
25
+ export * from "./utils/json-parse.ts";
26
+ export type { OAuthAuthInfo, OAuthCredentials, OAuthDeviceCodeInfo, OAuthLoginCallbacks, OAuthPrompt, OAuthProvider, OAuthProviderId, OAuthProviderInfo, OAuthProviderInterface, OAuthSelectOption, OAuthSelectPrompt, } from "./utils/oauth/types.ts";
27
+ export * from "./utils/overflow.ts";
28
+ export * from "./utils/typebox-helpers.ts";
29
+ export * from "./utils/validation.ts";
3
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAC;AAC1B,cAAc,kCAAkC,CAAC","sourcesContent":["import { registerBuiltInImagesApiProviders } from \"./providers/register-builtins.ts\";\n\nexport * from \"./base.ts\";\nexport * from \"./providers/register-builtins.ts\";\n\nregisterBuiltInImagesApiProviders();\n"]}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAO/B,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC/G,YAAY,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACnF,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC/F,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACnH,YAAY,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,YAAY,EACX,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,wBAAwB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC","sourcesContent":["export type { Static, TSchema } from \"typebox\";\nexport { Type } from \"typebox\";\n\n// Core only, side-effect free: no generated catalogs, no provider factories,\n// no api-registry, no OAuth implementations, no compat. Provider factories\n// live under \"@earendil-works/pi-ai/providers/*\", API implementations under\n// \"@earendil-works/pi-ai/api/*\", the old global API under\n// \"@earendil-works/pi-ai/compat\".\nexport type { AnthropicEffort, AnthropicOptions, AnthropicThinkingDisplay } from \"./api/anthropic-messages.ts\";\nexport type { AzureOpenAIResponsesOptions } from \"./api/azure-openai-responses.ts\";\nexport type { BedrockOptions, BedrockThinkingDisplay } from \"./api/bedrock-converse-stream.ts\";\nexport type { GoogleOptions } from \"./api/google-generative-ai.ts\";\nexport type { GoogleThinkingLevel } from \"./api/google-shared.ts\";\nexport type { GoogleVertexOptions } from \"./api/google-vertex.ts\";\nexport * from \"./api/lazy.ts\";\nexport type { MistralOptions } from \"./api/mistral-conversations.ts\";\nexport type { OpenAICodexResponsesOptions, OpenAICodexWebSocketDebugStats } from \"./api/openai-codex-responses.ts\";\nexport type { OpenAICompletionsOptions } from \"./api/openai-completions.ts\";\nexport type { OpenAIResponsesOptions } from \"./api/openai-responses.ts\";\nexport * from \"./auth/context.ts\";\nexport * from \"./auth/credential-store.ts\";\nexport * from \"./auth/helpers.ts\";\nexport * from \"./auth/types.ts\";\nexport * from \"./images-models.ts\";\nexport * from \"./models.ts\";\nexport * from \"./providers/faux.ts\";\nexport * from \"./session-resources.ts\";\nexport * from \"./types.ts\";\nexport * from \"./utils/diagnostics.ts\";\nexport * from \"./utils/event-stream.ts\";\nexport * from \"./utils/json-parse.ts\";\nexport type {\n\tOAuthAuthInfo,\n\tOAuthCredentials,\n\tOAuthDeviceCodeInfo,\n\tOAuthLoginCallbacks,\n\tOAuthPrompt,\n\tOAuthProvider,\n\tOAuthProviderId,\n\tOAuthProviderInfo,\n\tOAuthProviderInterface,\n\tOAuthSelectOption,\n\tOAuthSelectPrompt,\n} from \"./utils/oauth/types.ts\";\nexport * from \"./utils/overflow.ts\";\nexport * from \"./utils/typebox-helpers.ts\";\nexport * from \"./utils/validation.ts\";\n"]}
package/dist/index.js CHANGED
@@ -1,5 +1,18 @@
1
- import { registerBuiltInImagesApiProviders } from "./providers/register-builtins.js";
2
- export * from "./base.js";
3
- export * from "./providers/register-builtins.js";
4
- registerBuiltInImagesApiProviders();
1
+ export { Type } from "typebox";
2
+ export * from "./api/lazy.js";
3
+ export * from "./auth/context.js";
4
+ export * from "./auth/credential-store.js";
5
+ export * from "./auth/helpers.js";
6
+ export * from "./auth/types.js";
7
+ export * from "./images-models.js";
8
+ export * from "./models.js";
9
+ export * from "./providers/faux.js";
10
+ export * from "./session-resources.js";
11
+ export * from "./types.js";
12
+ export * from "./utils/diagnostics.js";
13
+ export * from "./utils/event-stream.js";
14
+ export * from "./utils/json-parse.js";
15
+ export * from "./utils/overflow.js";
16
+ export * from "./utils/typebox-helpers.js";
17
+ export * from "./utils/validation.js";
5
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AAErF,cAAc,WAAW,CAAC;AAC1B,cAAc,kCAAkC,CAAC;AAEjD,iCAAiC,EAAE,CAAC","sourcesContent":["import { registerBuiltInImagesApiProviders } from \"./providers/register-builtins.ts\";\n\nexport * from \"./base.ts\";\nexport * from \"./providers/register-builtins.ts\";\n\nregisterBuiltInImagesApiProviders();\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAa/B,cAAc,eAAe,CAAC;AAK9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AActC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC","sourcesContent":["export type { Static, TSchema } from \"typebox\";\nexport { Type } from \"typebox\";\n\n// Core only, side-effect free: no generated catalogs, no provider factories,\n// no api-registry, no OAuth implementations, no compat. Provider factories\n// live under \"@earendil-works/pi-ai/providers/*\", API implementations under\n// \"@earendil-works/pi-ai/api/*\", the old global API under\n// \"@earendil-works/pi-ai/compat\".\nexport type { AnthropicEffort, AnthropicOptions, AnthropicThinkingDisplay } from \"./api/anthropic-messages.ts\";\nexport type { AzureOpenAIResponsesOptions } from \"./api/azure-openai-responses.ts\";\nexport type { BedrockOptions, BedrockThinkingDisplay } from \"./api/bedrock-converse-stream.ts\";\nexport type { GoogleOptions } from \"./api/google-generative-ai.ts\";\nexport type { GoogleThinkingLevel } from \"./api/google-shared.ts\";\nexport type { GoogleVertexOptions } from \"./api/google-vertex.ts\";\nexport * from \"./api/lazy.ts\";\nexport type { MistralOptions } from \"./api/mistral-conversations.ts\";\nexport type { OpenAICodexResponsesOptions, OpenAICodexWebSocketDebugStats } from \"./api/openai-codex-responses.ts\";\nexport type { OpenAICompletionsOptions } from \"./api/openai-completions.ts\";\nexport type { OpenAIResponsesOptions } from \"./api/openai-responses.ts\";\nexport * from \"./auth/context.ts\";\nexport * from \"./auth/credential-store.ts\";\nexport * from \"./auth/helpers.ts\";\nexport * from \"./auth/types.ts\";\nexport * from \"./images-models.ts\";\nexport * from \"./models.ts\";\nexport * from \"./providers/faux.ts\";\nexport * from \"./session-resources.ts\";\nexport * from \"./types.ts\";\nexport * from \"./utils/diagnostics.ts\";\nexport * from \"./utils/event-stream.ts\";\nexport * from \"./utils/json-parse.ts\";\nexport type {\n\tOAuthAuthInfo,\n\tOAuthCredentials,\n\tOAuthDeviceCodeInfo,\n\tOAuthLoginCallbacks,\n\tOAuthPrompt,\n\tOAuthProvider,\n\tOAuthProviderId,\n\tOAuthProviderInfo,\n\tOAuthProviderInterface,\n\tOAuthSelectOption,\n\tOAuthSelectPrompt,\n} from \"./utils/oauth/types.ts\";\nexport * from \"./utils/overflow.ts\";\nexport * from \"./utils/typebox-helpers.ts\";\nexport * from \"./utils/validation.ts\";\n"]}
@@ -0,0 +1,42 @@
1
+ import type { AnthropicOptions } from "./api/anthropic-messages.ts";
2
+ import type { AzureOpenAIResponsesOptions } from "./api/azure-openai-responses.ts";
3
+ import type { GoogleOptions } from "./api/google-generative-ai.ts";
4
+ import type { GoogleVertexOptions } from "./api/google-vertex.ts";
5
+ import type { MistralOptions } from "./api/mistral-conversations.ts";
6
+ import type { OpenAICodexResponsesOptions } from "./api/openai-codex-responses.ts";
7
+ import type { OpenAICompletionsOptions } from "./api/openai-completions.ts";
8
+ import type { OpenAIResponsesOptions } from "./api/openai-responses.ts";
9
+ import type { SimpleStreamOptions, StreamFunction } from "./types.ts";
10
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/anthropic-messages` or `anthropicMessagesApi().stream`. */
11
+ export declare const streamAnthropic: StreamFunction<"anthropic-messages", AnthropicOptions>;
12
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/anthropic-messages` or `anthropicMessagesApi().streamSimple`. */
13
+ export declare const streamSimpleAnthropic: StreamFunction<"anthropic-messages", SimpleStreamOptions>;
14
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().stream`. */
15
+ export declare const streamAzureOpenAIResponses: StreamFunction<"azure-openai-responses", AzureOpenAIResponsesOptions>;
16
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().streamSimple`. */
17
+ export declare const streamSimpleAzureOpenAIResponses: StreamFunction<"azure-openai-responses", SimpleStreamOptions>;
18
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/google-generative-ai` or `googleGenerativeAIApi().stream`. */
19
+ export declare const streamGoogle: StreamFunction<"google-generative-ai", GoogleOptions>;
20
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/google-generative-ai` or `googleGenerativeAIApi().streamSimple`. */
21
+ export declare const streamSimpleGoogle: StreamFunction<"google-generative-ai", SimpleStreamOptions>;
22
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/google-vertex` or `googleVertexApi().stream`. */
23
+ export declare const streamGoogleVertex: StreamFunction<"google-vertex", GoogleVertexOptions>;
24
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/google-vertex` or `googleVertexApi().streamSimple`. */
25
+ export declare const streamSimpleGoogleVertex: StreamFunction<"google-vertex", SimpleStreamOptions>;
26
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/mistral-conversations` or `mistralConversationsApi().stream`. */
27
+ export declare const streamMistral: StreamFunction<"mistral-conversations", MistralOptions>;
28
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/mistral-conversations` or `mistralConversationsApi().streamSimple`. */
29
+ export declare const streamSimpleMistral: StreamFunction<"mistral-conversations", SimpleStreamOptions>;
30
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-codex-responses` or `openAICodexResponsesApi().stream`. */
31
+ export declare const streamOpenAICodexResponses: StreamFunction<"openai-codex-responses", OpenAICodexResponsesOptions>;
32
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-codex-responses` or `openAICodexResponsesApi().streamSimple`. */
33
+ export declare const streamSimpleOpenAICodexResponses: StreamFunction<"openai-codex-responses", SimpleStreamOptions>;
34
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-completions` or `openAICompletionsApi().stream`. */
35
+ export declare const streamOpenAICompletions: StreamFunction<"openai-completions", OpenAICompletionsOptions>;
36
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-completions` or `openAICompletionsApi().streamSimple`. */
37
+ export declare const streamSimpleOpenAICompletions: StreamFunction<"openai-completions", SimpleStreamOptions>;
38
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-responses` or `openAIResponsesApi().stream`. */
39
+ export declare const streamOpenAIResponses: StreamFunction<"openai-responses", OpenAIResponsesOptions>;
40
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-responses` or `openAIResponsesApi().streamSimple`. */
41
+ export declare const streamSimpleOpenAIResponses: StreamFunction<"openai-responses", SimpleStreamOptions>;
42
+ //# sourceMappingURL=legacy-api-aliases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-api-aliases.d.ts","sourceRoot":"","sources":["../src/legacy-api-aliases.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAEnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAEnF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAE5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAWtE,uHAAuH;AACvH,eAAO,MAAM,eAAe,wDAG3B,CAAC;AACF,mIAAmI;AACnI,eAAO,MAAM,qBAAqB,2DAGjC,CAAC;AAEF,8HAA8H;AAC9H,eAAO,MAAM,0BAA0B,uEAGtC,CAAC;AACF,0IAA0I;AAC1I,eAAO,MAAM,gCAAgC,+DAG5C,CAAC;AAEF,0HAA0H;AAC1H,eAAO,MAAM,YAAY,uDAA4F,CAAC;AACtH,sIAAsI;AACtI,eAAO,MAAM,kBAAkB,6DAG9B,CAAC;AAEF,6GAA6G;AAC7G,eAAO,MAAM,kBAAkB,sDAAqF,CAAC;AACrH,yHAAyH;AACzH,eAAO,MAAM,wBAAwB,sDAGpC,CAAC;AAEF,6HAA6H;AAC7H,eAAO,MAAM,aAAa,yDAGzB,CAAC;AACF,yIAAyI;AACzI,eAAO,MAAM,mBAAmB,8DAG/B,CAAC;AAEF,8HAA8H;AAC9H,eAAO,MAAM,0BAA0B,uEAGtC,CAAC;AACF,0IAA0I;AAC1I,eAAO,MAAM,gCAAgC,+DAG5C,CAAC;AAEF,uHAAuH;AACvH,eAAO,MAAM,uBAAuB,gEAGnC,CAAC;AACF,mIAAmI;AACnI,eAAO,MAAM,6BAA6B,2DAGzC,CAAC;AAEF,mHAAmH;AACnH,eAAO,MAAM,qBAAqB,4DAGjC,CAAC;AACF,+HAA+H;AAC/H,eAAO,MAAM,2BAA2B,yDAGvC,CAAC","sourcesContent":["import { anthropicMessagesApi } from \"./api/anthropic-messages.lazy.ts\";\nimport type { AnthropicOptions } from \"./api/anthropic-messages.ts\";\nimport { azureOpenAIResponsesApi } from \"./api/azure-openai-responses.lazy.ts\";\nimport type { AzureOpenAIResponsesOptions } from \"./api/azure-openai-responses.ts\";\nimport { googleGenerativeAIApi } from \"./api/google-generative-ai.lazy.ts\";\nimport type { GoogleOptions } from \"./api/google-generative-ai.ts\";\nimport { googleVertexApi } from \"./api/google-vertex.lazy.ts\";\nimport type { GoogleVertexOptions } from \"./api/google-vertex.ts\";\nimport { mistralConversationsApi } from \"./api/mistral-conversations.lazy.ts\";\nimport type { MistralOptions } from \"./api/mistral-conversations.ts\";\nimport { openAICodexResponsesApi } from \"./api/openai-codex-responses.lazy.ts\";\nimport type { OpenAICodexResponsesOptions } from \"./api/openai-codex-responses.ts\";\nimport { openAICompletionsApi } from \"./api/openai-completions.lazy.ts\";\nimport type { OpenAICompletionsOptions } from \"./api/openai-completions.ts\";\nimport { openAIResponsesApi } from \"./api/openai-responses.lazy.ts\";\nimport type { OpenAIResponsesOptions } from \"./api/openai-responses.ts\";\nimport type { SimpleStreamOptions, StreamFunction } from \"./types.ts\";\n\nconst anthropicMessagesStreams = anthropicMessagesApi();\nconst azureOpenAIResponsesStreams = azureOpenAIResponsesApi();\nconst googleGenerativeAIStreams = googleGenerativeAIApi();\nconst googleVertexStreams = googleVertexApi();\nconst mistralConversationsStreams = mistralConversationsApi();\nconst openAICodexResponsesStreams = openAICodexResponsesApi();\nconst openAICompletionsStreams = openAICompletionsApi();\nconst openAIResponsesStreams = openAIResponsesApi();\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/anthropic-messages` or `anthropicMessagesApi().stream`. */\nexport const streamAnthropic = anthropicMessagesStreams.stream as StreamFunction<\n\t\"anthropic-messages\",\n\tAnthropicOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/anthropic-messages` or `anthropicMessagesApi().streamSimple`. */\nexport const streamSimpleAnthropic = anthropicMessagesStreams.streamSimple as StreamFunction<\n\t\"anthropic-messages\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().stream`. */\nexport const streamAzureOpenAIResponses = azureOpenAIResponsesStreams.stream as StreamFunction<\n\t\"azure-openai-responses\",\n\tAzureOpenAIResponsesOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().streamSimple`. */\nexport const streamSimpleAzureOpenAIResponses = azureOpenAIResponsesStreams.streamSimple as StreamFunction<\n\t\"azure-openai-responses\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/google-generative-ai` or `googleGenerativeAIApi().stream`. */\nexport const streamGoogle = googleGenerativeAIStreams.stream as StreamFunction<\"google-generative-ai\", GoogleOptions>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/google-generative-ai` or `googleGenerativeAIApi().streamSimple`. */\nexport const streamSimpleGoogle = googleGenerativeAIStreams.streamSimple as StreamFunction<\n\t\"google-generative-ai\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/google-vertex` or `googleVertexApi().stream`. */\nexport const streamGoogleVertex = googleVertexStreams.stream as StreamFunction<\"google-vertex\", GoogleVertexOptions>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/google-vertex` or `googleVertexApi().streamSimple`. */\nexport const streamSimpleGoogleVertex = googleVertexStreams.streamSimple as StreamFunction<\n\t\"google-vertex\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/mistral-conversations` or `mistralConversationsApi().stream`. */\nexport const streamMistral = mistralConversationsStreams.stream as StreamFunction<\n\t\"mistral-conversations\",\n\tMistralOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/mistral-conversations` or `mistralConversationsApi().streamSimple`. */\nexport const streamSimpleMistral = mistralConversationsStreams.streamSimple as StreamFunction<\n\t\"mistral-conversations\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-codex-responses` or `openAICodexResponsesApi().stream`. */\nexport const streamOpenAICodexResponses = openAICodexResponsesStreams.stream as StreamFunction<\n\t\"openai-codex-responses\",\n\tOpenAICodexResponsesOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-codex-responses` or `openAICodexResponsesApi().streamSimple`. */\nexport const streamSimpleOpenAICodexResponses = openAICodexResponsesStreams.streamSimple as StreamFunction<\n\t\"openai-codex-responses\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-completions` or `openAICompletionsApi().stream`. */\nexport const streamOpenAICompletions = openAICompletionsStreams.stream as StreamFunction<\n\t\"openai-completions\",\n\tOpenAICompletionsOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-completions` or `openAICompletionsApi().streamSimple`. */\nexport const streamSimpleOpenAICompletions = openAICompletionsStreams.streamSimple as StreamFunction<\n\t\"openai-completions\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-responses` or `openAIResponsesApi().stream`. */\nexport const streamOpenAIResponses = openAIResponsesStreams.stream as StreamFunction<\n\t\"openai-responses\",\n\tOpenAIResponsesOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-responses` or `openAIResponsesApi().streamSimple`. */\nexport const streamSimpleOpenAIResponses = openAIResponsesStreams.streamSimple as StreamFunction<\n\t\"openai-responses\",\n\tSimpleStreamOptions\n>;\n"]}
@@ -0,0 +1,49 @@
1
+ import { anthropicMessagesApi } from "./api/anthropic-messages.lazy.js";
2
+ import { azureOpenAIResponsesApi } from "./api/azure-openai-responses.lazy.js";
3
+ import { googleGenerativeAIApi } from "./api/google-generative-ai.lazy.js";
4
+ import { googleVertexApi } from "./api/google-vertex.lazy.js";
5
+ import { mistralConversationsApi } from "./api/mistral-conversations.lazy.js";
6
+ import { openAICodexResponsesApi } from "./api/openai-codex-responses.lazy.js";
7
+ import { openAICompletionsApi } from "./api/openai-completions.lazy.js";
8
+ import { openAIResponsesApi } from "./api/openai-responses.lazy.js";
9
+ const anthropicMessagesStreams = anthropicMessagesApi();
10
+ const azureOpenAIResponsesStreams = azureOpenAIResponsesApi();
11
+ const googleGenerativeAIStreams = googleGenerativeAIApi();
12
+ const googleVertexStreams = googleVertexApi();
13
+ const mistralConversationsStreams = mistralConversationsApi();
14
+ const openAICodexResponsesStreams = openAICodexResponsesApi();
15
+ const openAICompletionsStreams = openAICompletionsApi();
16
+ const openAIResponsesStreams = openAIResponsesApi();
17
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/anthropic-messages` or `anthropicMessagesApi().stream`. */
18
+ export const streamAnthropic = anthropicMessagesStreams.stream;
19
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/anthropic-messages` or `anthropicMessagesApi().streamSimple`. */
20
+ export const streamSimpleAnthropic = anthropicMessagesStreams.streamSimple;
21
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().stream`. */
22
+ export const streamAzureOpenAIResponses = azureOpenAIResponsesStreams.stream;
23
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().streamSimple`. */
24
+ export const streamSimpleAzureOpenAIResponses = azureOpenAIResponsesStreams.streamSimple;
25
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/google-generative-ai` or `googleGenerativeAIApi().stream`. */
26
+ export const streamGoogle = googleGenerativeAIStreams.stream;
27
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/google-generative-ai` or `googleGenerativeAIApi().streamSimple`. */
28
+ export const streamSimpleGoogle = googleGenerativeAIStreams.streamSimple;
29
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/google-vertex` or `googleVertexApi().stream`. */
30
+ export const streamGoogleVertex = googleVertexStreams.stream;
31
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/google-vertex` or `googleVertexApi().streamSimple`. */
32
+ export const streamSimpleGoogleVertex = googleVertexStreams.streamSimple;
33
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/mistral-conversations` or `mistralConversationsApi().stream`. */
34
+ export const streamMistral = mistralConversationsStreams.stream;
35
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/mistral-conversations` or `mistralConversationsApi().streamSimple`. */
36
+ export const streamSimpleMistral = mistralConversationsStreams.streamSimple;
37
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-codex-responses` or `openAICodexResponsesApi().stream`. */
38
+ export const streamOpenAICodexResponses = openAICodexResponsesStreams.stream;
39
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-codex-responses` or `openAICodexResponsesApi().streamSimple`. */
40
+ export const streamSimpleOpenAICodexResponses = openAICodexResponsesStreams.streamSimple;
41
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-completions` or `openAICompletionsApi().stream`. */
42
+ export const streamOpenAICompletions = openAICompletionsStreams.stream;
43
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-completions` or `openAICompletionsApi().streamSimple`. */
44
+ export const streamSimpleOpenAICompletions = openAICompletionsStreams.streamSimple;
45
+ /** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-responses` or `openAIResponsesApi().stream`. */
46
+ export const streamOpenAIResponses = openAIResponsesStreams.stream;
47
+ /** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-responses` or `openAIResponsesApi().streamSimple`. */
48
+ export const streamSimpleOpenAIResponses = openAIResponsesStreams.streamSimple;
49
+ //# sourceMappingURL=legacy-api-aliases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-api-aliases.js","sourceRoot":"","sources":["../src/legacy-api-aliases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIpE,MAAM,wBAAwB,GAAG,oBAAoB,EAAE,CAAC;AACxD,MAAM,2BAA2B,GAAG,uBAAuB,EAAE,CAAC;AAC9D,MAAM,yBAAyB,GAAG,qBAAqB,EAAE,CAAC;AAC1D,MAAM,mBAAmB,GAAG,eAAe,EAAE,CAAC;AAC9C,MAAM,2BAA2B,GAAG,uBAAuB,EAAE,CAAC;AAC9D,MAAM,2BAA2B,GAAG,uBAAuB,EAAE,CAAC;AAC9D,MAAM,wBAAwB,GAAG,oBAAoB,EAAE,CAAC;AACxD,MAAM,sBAAsB,GAAG,kBAAkB,EAAE,CAAC;AAEpD,uHAAuH;AACvH,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC,MAGvD,CAAC;AACF,mIAAmI;AACnI,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,YAG7D,CAAC;AAEF,8HAA8H;AAC9H,MAAM,CAAC,MAAM,0BAA0B,GAAG,2BAA2B,CAAC,MAGrE,CAAC;AACF,0IAA0I;AAC1I,MAAM,CAAC,MAAM,gCAAgC,GAAG,2BAA2B,CAAC,YAG3E,CAAC;AAEF,0HAA0H;AAC1H,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,CAAC,MAA+D,CAAC;AACtH,sIAAsI;AACtI,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,YAG3D,CAAC;AAEF,6GAA6G;AAC7G,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,MAA8D,CAAC;AACrH,yHAAyH;AACzH,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,YAG3D,CAAC;AAEF,6HAA6H;AAC7H,MAAM,CAAC,MAAM,aAAa,GAAG,2BAA2B,CAAC,MAGxD,CAAC;AACF,yIAAyI;AACzI,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,YAG9D,CAAC;AAEF,8HAA8H;AAC9H,MAAM,CAAC,MAAM,0BAA0B,GAAG,2BAA2B,CAAC,MAGrE,CAAC;AACF,0IAA0I;AAC1I,MAAM,CAAC,MAAM,gCAAgC,GAAG,2BAA2B,CAAC,YAG3E,CAAC;AAEF,uHAAuH;AACvH,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC,MAG/D,CAAC;AACF,mIAAmI;AACnI,MAAM,CAAC,MAAM,6BAA6B,GAAG,wBAAwB,CAAC,YAGrE,CAAC;AAEF,mHAAmH;AACnH,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,MAG3D,CAAC;AACF,+HAA+H;AAC/H,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB,CAAC,YAGjE,CAAC","sourcesContent":["import { anthropicMessagesApi } from \"./api/anthropic-messages.lazy.ts\";\nimport type { AnthropicOptions } from \"./api/anthropic-messages.ts\";\nimport { azureOpenAIResponsesApi } from \"./api/azure-openai-responses.lazy.ts\";\nimport type { AzureOpenAIResponsesOptions } from \"./api/azure-openai-responses.ts\";\nimport { googleGenerativeAIApi } from \"./api/google-generative-ai.lazy.ts\";\nimport type { GoogleOptions } from \"./api/google-generative-ai.ts\";\nimport { googleVertexApi } from \"./api/google-vertex.lazy.ts\";\nimport type { GoogleVertexOptions } from \"./api/google-vertex.ts\";\nimport { mistralConversationsApi } from \"./api/mistral-conversations.lazy.ts\";\nimport type { MistralOptions } from \"./api/mistral-conversations.ts\";\nimport { openAICodexResponsesApi } from \"./api/openai-codex-responses.lazy.ts\";\nimport type { OpenAICodexResponsesOptions } from \"./api/openai-codex-responses.ts\";\nimport { openAICompletionsApi } from \"./api/openai-completions.lazy.ts\";\nimport type { OpenAICompletionsOptions } from \"./api/openai-completions.ts\";\nimport { openAIResponsesApi } from \"./api/openai-responses.lazy.ts\";\nimport type { OpenAIResponsesOptions } from \"./api/openai-responses.ts\";\nimport type { SimpleStreamOptions, StreamFunction } from \"./types.ts\";\n\nconst anthropicMessagesStreams = anthropicMessagesApi();\nconst azureOpenAIResponsesStreams = azureOpenAIResponsesApi();\nconst googleGenerativeAIStreams = googleGenerativeAIApi();\nconst googleVertexStreams = googleVertexApi();\nconst mistralConversationsStreams = mistralConversationsApi();\nconst openAICodexResponsesStreams = openAICodexResponsesApi();\nconst openAICompletionsStreams = openAICompletionsApi();\nconst openAIResponsesStreams = openAIResponsesApi();\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/anthropic-messages` or `anthropicMessagesApi().stream`. */\nexport const streamAnthropic = anthropicMessagesStreams.stream as StreamFunction<\n\t\"anthropic-messages\",\n\tAnthropicOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/anthropic-messages` or `anthropicMessagesApi().streamSimple`. */\nexport const streamSimpleAnthropic = anthropicMessagesStreams.streamSimple as StreamFunction<\n\t\"anthropic-messages\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().stream`. */\nexport const streamAzureOpenAIResponses = azureOpenAIResponsesStreams.stream as StreamFunction<\n\t\"azure-openai-responses\",\n\tAzureOpenAIResponsesOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().streamSimple`. */\nexport const streamSimpleAzureOpenAIResponses = azureOpenAIResponsesStreams.streamSimple as StreamFunction<\n\t\"azure-openai-responses\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/google-generative-ai` or `googleGenerativeAIApi().stream`. */\nexport const streamGoogle = googleGenerativeAIStreams.stream as StreamFunction<\"google-generative-ai\", GoogleOptions>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/google-generative-ai` or `googleGenerativeAIApi().streamSimple`. */\nexport const streamSimpleGoogle = googleGenerativeAIStreams.streamSimple as StreamFunction<\n\t\"google-generative-ai\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/google-vertex` or `googleVertexApi().stream`. */\nexport const streamGoogleVertex = googleVertexStreams.stream as StreamFunction<\"google-vertex\", GoogleVertexOptions>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/google-vertex` or `googleVertexApi().streamSimple`. */\nexport const streamSimpleGoogleVertex = googleVertexStreams.streamSimple as StreamFunction<\n\t\"google-vertex\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/mistral-conversations` or `mistralConversationsApi().stream`. */\nexport const streamMistral = mistralConversationsStreams.stream as StreamFunction<\n\t\"mistral-conversations\",\n\tMistralOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/mistral-conversations` or `mistralConversationsApi().streamSimple`. */\nexport const streamSimpleMistral = mistralConversationsStreams.streamSimple as StreamFunction<\n\t\"mistral-conversations\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-codex-responses` or `openAICodexResponsesApi().stream`. */\nexport const streamOpenAICodexResponses = openAICodexResponsesStreams.stream as StreamFunction<\n\t\"openai-codex-responses\",\n\tOpenAICodexResponsesOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-codex-responses` or `openAICodexResponsesApi().streamSimple`. */\nexport const streamSimpleOpenAICodexResponses = openAICodexResponsesStreams.streamSimple as StreamFunction<\n\t\"openai-codex-responses\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-completions` or `openAICompletionsApi().stream`. */\nexport const streamOpenAICompletions = openAICompletionsStreams.stream as StreamFunction<\n\t\"openai-completions\",\n\tOpenAICompletionsOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-completions` or `openAICompletionsApi().streamSimple`. */\nexport const streamSimpleOpenAICompletions = openAICompletionsStreams.streamSimple as StreamFunction<\n\t\"openai-completions\",\n\tSimpleStreamOptions\n>;\n\n/** @deprecated Use `stream` from `@earendil-works/pi-ai/api/openai-responses` or `openAIResponsesApi().stream`. */\nexport const streamOpenAIResponses = openAIResponsesStreams.stream as StreamFunction<\n\t\"openai-responses\",\n\tOpenAIResponsesOptions\n>;\n/** @deprecated Use `streamSimple` from `@earendil-works/pi-ai/api/openai-responses` or `openAIResponsesApi().streamSimple`. */\nexport const streamSimpleOpenAIResponses = openAIResponsesStreams.streamSimple as StreamFunction<\n\t\"openai-responses\",\n\tSimpleStreamOptions\n>;\n"]}
package/dist/models.d.ts CHANGED
@@ -1,11 +1,136 @@
1
- import { MODELS } from "./models.generated.ts";
2
- import type { Api, KnownProvider, Model, ModelThinkingLevel, Usage } from "./types.ts";
3
- type ModelApi<TProvider extends KnownProvider, TModelId extends keyof (typeof MODELS)[TProvider]> = (typeof MODELS)[TProvider][TModelId] extends {
4
- api: infer TApi;
5
- } ? (TApi extends Api ? TApi : never) : never;
6
- export declare function getModel<TProvider extends KnownProvider, TModelId extends keyof (typeof MODELS)[TProvider]>(provider: TProvider, modelId: TModelId): Model<ModelApi<TProvider, TModelId>>;
7
- export declare function getProviders(): KnownProvider[];
8
- export declare function getModels<TProvider extends KnownProvider>(provider: TProvider): Model<ModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[];
1
+ import type { AuthContext, AuthResult, CredentialStore, ProviderAuth } from "./auth/types.ts";
2
+ import type { Api, ApiStreamOptions, AssistantMessage, AssistantMessageEventStream, Context, Model, ModelThinkingLevel, ProviderHeaders, ProviderStreams, SimpleStreamOptions, Usage } from "./types.ts";
3
+ export { type AuthModel, ModelsError, type ModelsErrorCode } from "./auth/resolve.ts";
4
+ /**
5
+ * A provider is the concrete runtime unit. It owns id/name/base metadata,
6
+ * auth methods, model listing, and stream behavior.
7
+ *
8
+ * `TApi` lets concrete provider factories declare which APIs their models
9
+ * use (e.g. `openaiProvider(): Provider<"openai-responses" | "openai-completions">`),
10
+ * giving typed model lists to direct factory users. Inside a `Models`
11
+ * collection providers are held as `Provider<Api>`.
12
+ */
13
+ export interface Provider<TApi extends Api = Api> {
14
+ readonly id: string;
15
+ readonly name: string;
16
+ readonly baseUrl?: string;
17
+ readonly headers?: ProviderHeaders;
18
+ /**
19
+ * Required: at least one of `apiKey`/`oauth`. Every provider has auth
20
+ * semantics — even providers with only ambient credentials (env vars, AWS
21
+ * profiles, ADC files) and keyless local servers provide `apiKey` auth
22
+ * whose `resolve()` reports whether the provider is configured.
23
+ * `Models.getAuth()` returns undefined when the provider is unconfigured.
24
+ */
25
+ readonly auth: ProviderAuth;
26
+ /**
27
+ * Current known models, sync. Static providers return their catalog;
28
+ * dynamic providers return the list as of the last `refreshModels()`
29
+ * (empty before the first). Must not throw; `Models` treats a throwing
30
+ * implementation as having no models.
31
+ */
32
+ getModels(): readonly Model<TApi>[];
33
+ /**
34
+ * Dynamic providers only: fetch and update the model list. Side-effect-free
35
+ * discovery (no loading/downloading); provider-specific model lifecycle
36
+ * belongs in app commands. Concurrent calls share one in-flight fetch.
37
+ * May reject (network); on rejection the model list stays at its last-known
38
+ * state and a later call retries.
39
+ */
40
+ refreshModels?(): Promise<void>;
41
+ stream<T extends TApi>(model: Model<T>, context: Context, options?: ApiStreamOptions<T>): AssistantMessageEventStream;
42
+ streamSimple(model: Model<TApi>, context: Context, options?: SimpleStreamOptions): AssistantMessageEventStream;
43
+ }
44
+ /**
45
+ * Runtime collection of providers plus auth application and stream
46
+ * convenience. Providers own stream behavior; `Models` resolves auth and
47
+ * delegates each request to the provider that owns the model.
48
+ */
49
+ export interface Models {
50
+ getProviders(): readonly Provider[];
51
+ getProvider(id: string): Provider | undefined;
52
+ /**
53
+ * Sync read of last-known models from one provider or all providers.
54
+ * Best-effort: a provider whose `getModels()` throws yields no models.
55
+ */
56
+ getModels(provider?: string): readonly Model<Api>[];
57
+ /**
58
+ * Sync runtime model lookup against last-known lists. Dynamic model lists
59
+ * are typed as `Model<Api>`; narrow with the `hasApi()` type guard.
60
+ */
61
+ getModel(provider: string, id: string): Model<Api> | undefined;
62
+ /**
63
+ * Ask dynamic providers to re-fetch their model lists. With a provider id,
64
+ * rejects with `ModelsError` ("model_source") on that provider's fetch
65
+ * failure; without one, refreshes all providers concurrently best-effort.
66
+ * Static providers (no `refreshModels`) are no-ops.
67
+ */
68
+ refresh(provider?: string): Promise<void>;
69
+ /**
70
+ * Resolve request auth for a model. Includes a source label for status UI.
71
+ * Resolves `undefined` when the provider is unknown or unconfigured.
72
+ * Rejects with `ModelsError`: code "oauth" when a token refresh fails (the
73
+ * stored credential is preserved for retry; re-login fixes it), code "auth"
74
+ * when api-key resolution or the credential store fails. Request paths
75
+ * surface rejections as stream errors; status/availability UIs catch them
76
+ * and render "needs re-login" instead of treating them as unconfigured.
77
+ */
78
+ getAuth(model: Model<Api>): Promise<AuthResult | undefined>;
79
+ stream<TApi extends Api>(model: Model<TApi>, context: Context, options?: ApiStreamOptions<TApi>): AssistantMessageEventStream;
80
+ complete<TApi extends Api>(model: Model<TApi>, context: Context, options?: ApiStreamOptions<TApi>): Promise<AssistantMessage>;
81
+ streamSimple(model: Model<Api>, context: Context, options?: SimpleStreamOptions): AssistantMessageEventStream;
82
+ completeSimple(model: Model<Api>, context: Context, options?: SimpleStreamOptions): Promise<AssistantMessage>;
83
+ }
84
+ export interface MutableModels extends Models {
85
+ /** Upsert/replace by provider.id. Provider ids are unique. */
86
+ setProvider(provider: Provider): void;
87
+ deleteProvider(id: string): void;
88
+ clearProviders(): void;
89
+ }
90
+ export interface CreateModelsOptions {
91
+ credentials?: CredentialStore;
92
+ authContext?: AuthContext;
93
+ }
94
+ export declare function createModels(options?: CreateModelsOptions): MutableModels;
95
+ export interface CreateProviderOptions<TApi extends Api = Api> {
96
+ id: string;
97
+ /** Display name. Default: `id`. */
98
+ name?: string;
99
+ baseUrl?: string;
100
+ headers?: ProviderHeaders;
101
+ /** Required — every provider has auth semantics, even ambient/keyless ones. */
102
+ auth: ProviderAuth;
103
+ /** Initial model list (empty for purely dynamic providers). */
104
+ models: readonly Model<TApi>[];
105
+ /**
106
+ * Dynamic providers: fetch the current list. Stored on success; concurrent
107
+ * calls share one in-flight fetch. May reject: the stored list then stays
108
+ * at its last-known state, the rejection propagates to the caller of
109
+ * `refreshModels()` (wrapped as ModelsError "model_source" by
110
+ * `Models.refresh(provider)`), and a later call retries.
111
+ */
112
+ refreshModels?: () => Promise<readonly Model<TApi>[]>;
113
+ /** Single implementation, or map keyed by `model.api` for mixed-API providers. */
114
+ api: ProviderStreams | Partial<Record<TApi, ProviderStreams>>;
115
+ }
116
+ /**
117
+ * Builds a provider from parts. Built-in provider factories and models.json
118
+ * custom providers both go through this. A single `api` streams all models;
119
+ * an `api` map dispatches on `model.api`, and a model whose api has no entry
120
+ * produces a stream error.
121
+ */
122
+ export declare function createProvider<TApi extends Api = Api>(input: CreateProviderOptions<TApi>): Provider<TApi>;
123
+ /**
124
+ * Runtime-checked narrowing for dynamically looked-up models:
125
+ *
126
+ * ```ts
127
+ * const model = models.getModel("anthropic", "claude-opus-4-7");
128
+ * if (model && hasApi(model, "anthropic-messages")) {
129
+ * // model: Model<"anthropic-messages">, stream options fully typed
130
+ * }
131
+ * ```
132
+ */
133
+ export declare function hasApi<TApi extends Api>(model: Model<Api>, api: TApi): model is Model<TApi>;
9
134
  export declare function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage["cost"];
10
135
  export declare function getSupportedThinkingLevels<TApi extends Api>(model: Model<TApi>): ModelThinkingLevel[];
11
136
  export declare function clampThinkingLevel<TApi extends Api>(model: Model<TApi>, level: ModelThinkingLevel): ModelThinkingLevel;
@@ -14,5 +139,4 @@ export declare function clampThinkingLevel<TApi extends Api>(model: Model<TApi>,
14
139
  * Returns false if either model is null or undefined.
15
140
  */
16
141
  export declare function modelsAreEqual<TApi extends Api>(a: Model<TApi> | null | undefined, b: Model<TApi> | null | undefined): boolean;
17
- export {};
18
142
  //# sourceMappingURL=models.d.ts.map