@averyyy/pi-ai 0.80.3-piclient.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/README.md +1564 -0
  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 +972 -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 +219 -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 +872 -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/api/cloudflare.d.ts +9 -0
  27. package/dist/api/cloudflare.d.ts.map +1 -0
  28. package/dist/api/cloudflare.js +9 -0
  29. package/dist/api/cloudflare.js.map +1 -0
  30. package/dist/api/github-copilot-headers.d.ts +8 -0
  31. package/dist/api/github-copilot-headers.d.ts.map +1 -0
  32. package/dist/api/github-copilot-headers.js +29 -0
  33. package/dist/api/github-copilot-headers.js.map +1 -0
  34. package/dist/api/google-generative-ai.d.ts +13 -0
  35. package/dist/api/google-generative-ai.d.ts.map +1 -0
  36. package/dist/api/google-generative-ai.js +407 -0
  37. package/dist/api/google-generative-ai.js.map +1 -0
  38. package/dist/api/google-generative-ai.lazy.d.ts +3 -0
  39. package/dist/api/google-generative-ai.lazy.d.ts.map +1 -0
  40. package/dist/api/google-generative-ai.lazy.js +3 -0
  41. package/dist/api/google-generative-ai.lazy.js.map +1 -0
  42. package/dist/api/google-shared.d.ts +70 -0
  43. package/dist/api/google-shared.d.ts.map +1 -0
  44. package/dist/api/google-shared.js +329 -0
  45. package/dist/api/google-shared.js.map +1 -0
  46. package/dist/api/google-vertex.d.ts +15 -0
  47. package/dist/api/google-vertex.d.ts.map +1 -0
  48. package/dist/api/google-vertex.js +456 -0
  49. package/dist/api/google-vertex.js.map +1 -0
  50. package/dist/api/google-vertex.lazy.d.ts +3 -0
  51. package/dist/api/google-vertex.lazy.d.ts.map +1 -0
  52. package/dist/api/google-vertex.lazy.js +3 -0
  53. package/dist/api/google-vertex.lazy.js.map +1 -0
  54. package/dist/api/lazy.d.ts +15 -0
  55. package/dist/api/lazy.d.ts.map +1 -0
  56. package/dist/api/lazy.js +59 -0
  57. package/dist/api/lazy.js.map +1 -0
  58. package/dist/api/mistral-conversations.d.ts +25 -0
  59. package/dist/api/mistral-conversations.d.ts.map +1 -0
  60. package/dist/api/mistral-conversations.js +555 -0
  61. package/dist/api/mistral-conversations.js.map +1 -0
  62. package/dist/api/mistral-conversations.lazy.d.ts +3 -0
  63. package/dist/api/mistral-conversations.lazy.d.ts.map +1 -0
  64. package/dist/api/mistral-conversations.lazy.js +3 -0
  65. package/dist/api/mistral-conversations.lazy.js.map +1 -0
  66. package/dist/api/openai-codex-responses.d.ts +30 -0
  67. package/dist/api/openai-codex-responses.d.ts.map +1 -0
  68. package/dist/api/openai-codex-responses.js +1215 -0
  69. package/dist/api/openai-codex-responses.js.map +1 -0
  70. package/dist/api/openai-codex-responses.lazy.d.ts +3 -0
  71. package/dist/api/openai-codex-responses.lazy.d.ts.map +1 -0
  72. package/dist/api/openai-codex-responses.lazy.js +3 -0
  73. package/dist/api/openai-codex-responses.lazy.js.map +1 -0
  74. package/dist/api/openai-completions.d.ts +19 -0
  75. package/dist/api/openai-completions.d.ts.map +1 -0
  76. package/dist/api/openai-completions.js +1058 -0
  77. package/dist/api/openai-completions.js.map +1 -0
  78. package/dist/api/openai-completions.lazy.d.ts +3 -0
  79. package/dist/api/openai-completions.lazy.d.ts.map +1 -0
  80. package/dist/api/openai-completions.lazy.js +3 -0
  81. package/dist/api/openai-completions.lazy.js.map +1 -0
  82. package/dist/api/openai-prompt-cache.d.ts +3 -0
  83. package/dist/api/openai-prompt-cache.d.ts.map +1 -0
  84. package/dist/api/openai-prompt-cache.js +10 -0
  85. package/dist/api/openai-prompt-cache.js.map +1 -0
  86. package/dist/api/openai-responses-shared.d.ts +18 -0
  87. package/dist/api/openai-responses-shared.d.ts.map +1 -0
  88. package/dist/api/openai-responses-shared.js +482 -0
  89. package/dist/api/openai-responses-shared.js.map +1 -0
  90. package/dist/api/openai-responses.d.ts +13 -0
  91. package/dist/api/openai-responses.d.ts.map +1 -0
  92. package/dist/api/openai-responses.js +226 -0
  93. package/dist/api/openai-responses.js.map +1 -0
  94. package/dist/api/openai-responses.lazy.d.ts +3 -0
  95. package/dist/api/openai-responses.lazy.d.ts.map +1 -0
  96. package/dist/api/openai-responses.lazy.js +3 -0
  97. package/dist/api/openai-responses.lazy.js.map +1 -0
  98. package/dist/api/openrouter-images.d.ts +3 -0
  99. package/dist/api/openrouter-images.d.ts.map +1 -0
  100. package/dist/api/openrouter-images.js +126 -0
  101. package/dist/api/openrouter-images.js.map +1 -0
  102. package/dist/api/openrouter-images.lazy.d.ts +3 -0
  103. package/dist/api/openrouter-images.lazy.d.ts.map +1 -0
  104. package/dist/api/openrouter-images.lazy.js +4 -0
  105. package/dist/api/openrouter-images.lazy.js.map +1 -0
  106. package/dist/api/simple-options.d.ts +9 -0
  107. package/dist/api/simple-options.d.ts.map +1 -0
  108. package/dist/api/simple-options.js +52 -0
  109. package/dist/api/simple-options.js.map +1 -0
  110. package/dist/api/transform-messages.d.ts +8 -0
  111. package/dist/api/transform-messages.d.ts.map +1 -0
  112. package/dist/api/transform-messages.js +184 -0
  113. package/dist/api/transform-messages.js.map +1 -0
  114. package/dist/api-registry.d.ts +20 -0
  115. package/dist/api-registry.d.ts.map +1 -0
  116. package/dist/api-registry.js +44 -0
  117. package/dist/api-registry.js.map +1 -0
  118. package/dist/auth/context.d.ts +7 -0
  119. package/dist/auth/context.d.ts.map +1 -0
  120. package/dist/auth/context.js +42 -0
  121. package/dist/auth/context.js.map +1 -0
  122. package/dist/auth/credential-store.d.ts +16 -0
  123. package/dist/auth/credential-store.d.ts.map +1 -0
  124. package/dist/auth/credential-store.js +37 -0
  125. package/dist/auth/credential-store.js.map +1 -0
  126. package/dist/auth/helpers.d.ts +20 -0
  127. package/dist/auth/helpers.d.ts.map +1 -0
  128. package/dist/auth/helpers.js +46 -0
  129. package/dist/auth/helpers.js.map +1 -0
  130. package/dist/auth/resolve.d.ts +26 -0
  131. package/dist/auth/resolve.d.ts.map +1 -0
  132. package/dist/auth/resolve.js +101 -0
  133. package/dist/auth/resolve.js.map +1 -0
  134. package/dist/auth/types.d.ts +180 -0
  135. package/dist/auth/types.d.ts.map +1 -0
  136. package/dist/auth/types.js +2 -0
  137. package/dist/auth/types.js.map +1 -0
  138. package/dist/bedrock-provider.d.ts +5 -0
  139. package/dist/bedrock-provider.d.ts.map +1 -0
  140. package/dist/bedrock-provider.js +6 -0
  141. package/dist/bedrock-provider.js.map +1 -0
  142. package/dist/cli.d.ts +3 -0
  143. package/dist/cli.d.ts.map +1 -0
  144. package/dist/cli.js +130 -0
  145. package/dist/cli.js.map +1 -0
  146. package/dist/compat.d.ts +65 -0
  147. package/dist/compat.d.ts.map +1 -0
  148. package/dist/compat.js +182 -0
  149. package/dist/compat.js.map +1 -0
  150. package/dist/env-api-keys.d.ts +18 -0
  151. package/dist/env-api-keys.d.ts.map +1 -0
  152. package/dist/env-api-keys.js +145 -0
  153. package/dist/env-api-keys.js.map +1 -0
  154. package/dist/image-models.d.ts +10 -0
  155. package/dist/image-models.d.ts.map +1 -0
  156. package/dist/image-models.generated.d.ts +530 -0
  157. package/dist/image-models.generated.d.ts.map +1 -0
  158. package/dist/image-models.generated.js +532 -0
  159. package/dist/image-models.generated.js.map +1 -0
  160. package/dist/image-models.js +23 -0
  161. package/dist/image-models.js.map +1 -0
  162. package/dist/images-api-registry.d.ts +14 -0
  163. package/dist/images-api-registry.d.ts.map +1 -0
  164. package/dist/images-api-registry.js +22 -0
  165. package/dist/images-api-registry.js.map +1 -0
  166. package/dist/images-models.d.ts +93 -0
  167. package/dist/images-models.d.ts.map +1 -0
  168. package/dist/images-models.js +141 -0
  169. package/dist/images-models.js.map +1 -0
  170. package/dist/images.d.ts +4 -0
  171. package/dist/images.d.ts.map +1 -0
  172. package/dist/images.js +14 -0
  173. package/dist/images.js.map +1 -0
  174. package/dist/index.d.ts +31 -0
  175. package/dist/index.d.ts.map +1 -0
  176. package/dist/index.js +19 -0
  177. package/dist/index.js.map +1 -0
  178. package/dist/legacy-api-aliases.d.ts +42 -0
  179. package/dist/legacy-api-aliases.d.ts.map +1 -0
  180. package/dist/legacy-api-aliases.js +49 -0
  181. package/dist/legacy-api-aliases.js.map +1 -0
  182. package/dist/models.d.ts +142 -0
  183. package/dist/models.d.ts.map +1 -0
  184. package/dist/models.generated.d.ts +20965 -0
  185. package/dist/models.generated.d.ts.map +1 -0
  186. package/dist/models.generated.js +75 -0
  187. package/dist/models.generated.js.map +1 -0
  188. package/dist/models.js +238 -0
  189. package/dist/models.js.map +1 -0
  190. package/dist/oauth.d.ts +2 -0
  191. package/dist/oauth.d.ts.map +1 -0
  192. package/dist/oauth.js +2 -0
  193. package/dist/oauth.js.map +1 -0
  194. package/dist/providers/all.d.ts +21 -0
  195. package/dist/providers/all.d.ts.map +1 -0
  196. package/dist/providers/all.js +114 -0
  197. package/dist/providers/all.js.map +1 -0
  198. package/dist/providers/amazon-bedrock.d.ts +3 -0
  199. package/dist/providers/amazon-bedrock.d.ts.map +1 -0
  200. package/dist/providers/amazon-bedrock.js +39 -0
  201. package/dist/providers/amazon-bedrock.js.map +1 -0
  202. package/dist/providers/amazon-bedrock.models.d.ts +1837 -0
  203. package/dist/providers/amazon-bedrock.models.d.ts.map +1 -0
  204. package/dist/providers/amazon-bedrock.models.js +1794 -0
  205. package/dist/providers/amazon-bedrock.models.js.map +1 -0
  206. package/dist/providers/ant-ling.d.ts +3 -0
  207. package/dist/providers/ant-ling.d.ts.map +1 -0
  208. package/dist/providers/ant-ling.js +15 -0
  209. package/dist/providers/ant-ling.js.map +1 -0
  210. package/dist/providers/ant-ling.models.d.ts +86 -0
  211. package/dist/providers/ant-ling.models.d.ts.map +1 -0
  212. package/dist/providers/ant-ling.models.js +60 -0
  213. package/dist/providers/ant-ling.models.js.map +1 -0
  214. package/dist/providers/anthropic.d.ts +3 -0
  215. package/dist/providers/anthropic.d.ts.map +1 -0
  216. package/dist/providers/anthropic.js +20 -0
  217. package/dist/providers/anthropic.js.map +1 -0
  218. package/dist/providers/anthropic.models.d.ts +444 -0
  219. package/dist/providers/anthropic.models.d.ts.map +1 -0
  220. package/dist/providers/anthropic.models.js +423 -0
  221. package/dist/providers/anthropic.models.js.map +1 -0
  222. package/dist/providers/azure-openai-responses.d.ts +3 -0
  223. package/dist/providers/azure-openai-responses.d.ts.map +1 -0
  224. package/dist/providers/azure-openai-responses.js +14 -0
  225. package/dist/providers/azure-openai-responses.js.map +1 -0
  226. package/dist/providers/azure-openai-responses.models.d.ts +804 -0
  227. package/dist/providers/azure-openai-responses.models.d.ts.map +1 -0
  228. package/dist/providers/azure-openai-responses.models.js +743 -0
  229. package/dist/providers/azure-openai-responses.models.js.map +1 -0
  230. package/dist/providers/cerebras.d.ts +3 -0
  231. package/dist/providers/cerebras.d.ts.map +1 -0
  232. package/dist/providers/cerebras.js +15 -0
  233. package/dist/providers/cerebras.js.map +1 -0
  234. package/dist/providers/cerebras.models.d.ts +45 -0
  235. package/dist/providers/cerebras.models.d.ts.map +1 -0
  236. package/dist/providers/cerebras.models.js +41 -0
  237. package/dist/providers/cerebras.models.js.map +1 -0
  238. package/dist/providers/cloudflare-ai-gateway.d.ts +3 -0
  239. package/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -0
  240. package/dist/providers/cloudflare-ai-gateway.js +20 -0
  241. package/dist/providers/cloudflare-ai-gateway.js.map +1 -0
  242. package/dist/providers/cloudflare-ai-gateway.models.d.ts +765 -0
  243. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -0
  244. package/dist/providers/cloudflare-ai-gateway.models.js +666 -0
  245. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -0
  246. package/dist/providers/cloudflare-auth.d.ts +4 -0
  247. package/dist/providers/cloudflare-auth.d.ts.map +1 -0
  248. package/dist/providers/cloudflare-auth.js +85 -0
  249. package/dist/providers/cloudflare-auth.js.map +1 -0
  250. package/dist/providers/cloudflare-workers-ai.d.ts +3 -0
  251. package/dist/providers/cloudflare-workers-ai.d.ts.map +1 -0
  252. package/dist/providers/cloudflare-workers-ai.js +14 -0
  253. package/dist/providers/cloudflare-workers-ai.js.map +1 -0
  254. package/dist/providers/cloudflare-workers-ai.models.d.ts +302 -0
  255. package/dist/providers/cloudflare-workers-ai.models.d.ts.map +1 -0
  256. package/dist/providers/cloudflare-workers-ai.models.js +239 -0
  257. package/dist/providers/cloudflare-workers-ai.models.js.map +1 -0
  258. package/dist/providers/cloudflare.d.ts +13 -0
  259. package/dist/providers/cloudflare.d.ts.map +1 -0
  260. package/dist/providers/cloudflare.js +26 -0
  261. package/dist/providers/cloudflare.js.map +1 -0
  262. package/dist/providers/deepseek.d.ts +3 -0
  263. package/dist/providers/deepseek.d.ts.map +1 -0
  264. package/dist/providers/deepseek.js +15 -0
  265. package/dist/providers/deepseek.js.map +1 -0
  266. package/dist/providers/deepseek.models.d.ts +63 -0
  267. package/dist/providers/deepseek.models.d.ts.map +1 -0
  268. package/dist/providers/deepseek.models.js +43 -0
  269. package/dist/providers/deepseek.models.js.map +1 -0
  270. package/dist/providers/faux.d.ts +97 -0
  271. package/dist/providers/faux.d.ts.map +1 -0
  272. package/dist/providers/faux.js +395 -0
  273. package/dist/providers/faux.js.map +1 -0
  274. package/dist/providers/fireworks.d.ts +3 -0
  275. package/dist/providers/fireworks.d.ts.map +1 -0
  276. package/dist/providers/fireworks.js +19 -0
  277. package/dist/providers/fireworks.js.map +1 -0
  278. package/dist/providers/fireworks.models.d.ts +376 -0
  279. package/dist/providers/fireworks.models.d.ts.map +1 -0
  280. package/dist/providers/fireworks.models.js +294 -0
  281. package/dist/providers/fireworks.models.js.map +1 -0
  282. package/dist/providers/github-copilot-headers.d.ts +8 -0
  283. package/dist/providers/github-copilot-headers.d.ts.map +1 -0
  284. package/dist/providers/github-copilot-headers.js +29 -0
  285. package/dist/providers/github-copilot-headers.js.map +1 -0
  286. package/dist/providers/github-copilot.d.ts +3 -0
  287. package/dist/providers/github-copilot.d.ts.map +1 -0
  288. package/dist/providers/github-copilot.js +25 -0
  289. package/dist/providers/github-copilot.js.map +1 -0
  290. package/dist/providers/github-copilot.models.d.ts +616 -0
  291. package/dist/providers/github-copilot.models.d.ts.map +1 -0
  292. package/dist/providers/github-copilot.models.js +426 -0
  293. package/dist/providers/github-copilot.models.js.map +1 -0
  294. package/dist/providers/google-shared.d.ts +70 -0
  295. package/dist/providers/google-shared.d.ts.map +1 -0
  296. package/dist/providers/google-shared.js +329 -0
  297. package/dist/providers/google-shared.js.map +1 -0
  298. package/dist/providers/google-vertex.d.ts +3 -0
  299. package/dist/providers/google-vertex.d.ts.map +1 -0
  300. package/dist/providers/google-vertex.js +35 -0
  301. package/dist/providers/google-vertex.js.map +1 -0
  302. package/dist/providers/google-vertex.models.d.ts +202 -0
  303. package/dist/providers/google-vertex.models.d.ts.map +1 -0
  304. package/dist/providers/google-vertex.models.js +182 -0
  305. package/dist/providers/google-vertex.models.js.map +1 -0
  306. package/dist/providers/google.d.ts +3 -0
  307. package/dist/providers/google.d.ts.map +1 -0
  308. package/dist/providers/google.js +15 -0
  309. package/dist/providers/google.js.map +1 -0
  310. package/dist/providers/google.models.d.ts +328 -0
  311. package/dist/providers/google.models.d.ts.map +1 -0
  312. package/dist/providers/google.models.js +288 -0
  313. package/dist/providers/google.models.js.map +1 -0
  314. package/dist/providers/groq.d.ts +3 -0
  315. package/dist/providers/groq.d.ts.map +1 -0
  316. package/dist/providers/groq.js +15 -0
  317. package/dist/providers/groq.js.map +1 -0
  318. package/dist/providers/groq.models.d.ts +128 -0
  319. package/dist/providers/groq.models.d.ts.map +1 -0
  320. package/dist/providers/groq.models.js +125 -0
  321. package/dist/providers/groq.models.js.map +1 -0
  322. package/dist/providers/huggingface.d.ts +3 -0
  323. package/dist/providers/huggingface.d.ts.map +1 -0
  324. package/dist/providers/huggingface.js +15 -0
  325. package/dist/providers/huggingface.js.map +1 -0
  326. package/dist/providers/huggingface.models.d.ts +963 -0
  327. package/dist/providers/huggingface.models.d.ts.map +1 -0
  328. package/dist/providers/huggingface.models.js +869 -0
  329. package/dist/providers/huggingface.models.js.map +1 -0
  330. package/dist/providers/images/openrouter.d.ts +3 -0
  331. package/dist/providers/images/openrouter.d.ts.map +1 -0
  332. package/dist/providers/images/openrouter.js +128 -0
  333. package/dist/providers/images/openrouter.js.map +1 -0
  334. package/dist/providers/images/register-builtins.d.ts +4 -0
  335. package/dist/providers/images/register-builtins.d.ts.map +1 -0
  336. package/dist/providers/images/register-builtins.js +34 -0
  337. package/dist/providers/images/register-builtins.js.map +1 -0
  338. package/dist/providers/kimi-coding.d.ts +3 -0
  339. package/dist/providers/kimi-coding.d.ts.map +1 -0
  340. package/dist/providers/kimi-coding.js +15 -0
  341. package/dist/providers/kimi-coding.js.map +1 -0
  342. package/dist/providers/kimi-coding.models.d.ts +63 -0
  343. package/dist/providers/kimi-coding.models.d.ts.map +1 -0
  344. package/dist/providers/kimi-coding.models.js +59 -0
  345. package/dist/providers/kimi-coding.models.js.map +1 -0
  346. package/dist/providers/minimax-cn.d.ts +3 -0
  347. package/dist/providers/minimax-cn.d.ts.map +1 -0
  348. package/dist/providers/minimax-cn.js +15 -0
  349. package/dist/providers/minimax-cn.js.map +1 -0
  350. package/dist/providers/minimax-cn.models.d.ts +54 -0
  351. package/dist/providers/minimax-cn.models.d.ts.map +1 -0
  352. package/dist/providers/minimax-cn.models.js +56 -0
  353. package/dist/providers/minimax-cn.models.js.map +1 -0
  354. package/dist/providers/minimax.d.ts +3 -0
  355. package/dist/providers/minimax.d.ts.map +1 -0
  356. package/dist/providers/minimax.js +15 -0
  357. package/dist/providers/minimax.js.map +1 -0
  358. package/dist/providers/minimax.models.d.ts +54 -0
  359. package/dist/providers/minimax.models.d.ts.map +1 -0
  360. package/dist/providers/minimax.models.js +56 -0
  361. package/dist/providers/minimax.models.js.map +1 -0
  362. package/dist/providers/mistral.d.ts +3 -0
  363. package/dist/providers/mistral.d.ts.map +1 -0
  364. package/dist/providers/mistral.js +15 -0
  365. package/dist/providers/mistral.js.map +1 -0
  366. package/dist/providers/mistral.models.d.ts +513 -0
  367. package/dist/providers/mistral.models.d.ts.map +1 -0
  368. package/dist/providers/mistral.models.js +515 -0
  369. package/dist/providers/mistral.models.js.map +1 -0
  370. package/dist/providers/moonshotai-cn.d.ts +3 -0
  371. package/dist/providers/moonshotai-cn.d.ts.map +1 -0
  372. package/dist/providers/moonshotai-cn.js +15 -0
  373. package/dist/providers/moonshotai-cn.js.map +1 -0
  374. package/dist/providers/moonshotai-cn.models.d.ts +234 -0
  375. package/dist/providers/moonshotai-cn.models.d.ts.map +1 -0
  376. package/dist/providers/moonshotai-cn.models.js +169 -0
  377. package/dist/providers/moonshotai-cn.models.js.map +1 -0
  378. package/dist/providers/moonshotai.d.ts +3 -0
  379. package/dist/providers/moonshotai.d.ts.map +1 -0
  380. package/dist/providers/moonshotai.js +15 -0
  381. package/dist/providers/moonshotai.js.map +1 -0
  382. package/dist/providers/moonshotai.models.d.ts +234 -0
  383. package/dist/providers/moonshotai.models.d.ts.map +1 -0
  384. package/dist/providers/moonshotai.models.js +169 -0
  385. package/dist/providers/moonshotai.models.js.map +1 -0
  386. package/dist/providers/nvidia.d.ts +3 -0
  387. package/dist/providers/nvidia.d.ts.map +1 -0
  388. package/dist/providers/nvidia.js +15 -0
  389. package/dist/providers/nvidia.js.map +1 -0
  390. package/dist/providers/nvidia.models.d.ts +563 -0
  391. package/dist/providers/nvidia.models.d.ts.map +1 -0
  392. package/dist/providers/nvidia.models.js +385 -0
  393. package/dist/providers/nvidia.models.js.map +1 -0
  394. package/dist/providers/openai-codex-responses.d.ts +30 -0
  395. package/dist/providers/openai-codex-responses.d.ts.map +1 -0
  396. package/dist/providers/openai-codex-responses.js +1173 -0
  397. package/dist/providers/openai-codex-responses.js.map +1 -0
  398. package/dist/providers/openai-codex.d.ts +3 -0
  399. package/dist/providers/openai-codex.d.ts.map +1 -0
  400. package/dist/providers/openai-codex.js +18 -0
  401. package/dist/providers/openai-codex.js.map +1 -0
  402. package/dist/providers/openai-codex.models.d.ts +87 -0
  403. package/dist/providers/openai-codex.models.d.ts.map +1 -0
  404. package/dist/providers/openai-codex.models.js +77 -0
  405. package/dist/providers/openai-codex.models.js.map +1 -0
  406. package/dist/providers/openai-completions.d.ts +19 -0
  407. package/dist/providers/openai-completions.d.ts.map +1 -0
  408. package/dist/providers/openai-completions.js +977 -0
  409. package/dist/providers/openai-completions.js.map +1 -0
  410. package/dist/providers/openai-prompt-cache.d.ts +3 -0
  411. package/dist/providers/openai-prompt-cache.d.ts.map +1 -0
  412. package/dist/providers/openai-prompt-cache.js +10 -0
  413. package/dist/providers/openai-prompt-cache.js.map +1 -0
  414. package/dist/providers/openai-responses-shared.d.ts +18 -0
  415. package/dist/providers/openai-responses-shared.d.ts.map +1 -0
  416. package/dist/providers/openai-responses-shared.js +496 -0
  417. package/dist/providers/openai-responses-shared.js.map +1 -0
  418. package/dist/providers/openai-responses.d.ts +13 -0
  419. package/dist/providers/openai-responses.d.ts.map +1 -0
  420. package/dist/providers/openai-responses.js +234 -0
  421. package/dist/providers/openai-responses.js.map +1 -0
  422. package/dist/providers/openai.d.ts +3 -0
  423. package/dist/providers/openai.d.ts.map +1 -0
  424. package/dist/providers/openai.js +15 -0
  425. package/dist/providers/openai.js.map +1 -0
  426. package/dist/providers/openai.models.d.ts +805 -0
  427. package/dist/providers/openai.models.d.ts.map +1 -0
  428. package/dist/providers/openai.models.js +743 -0
  429. package/dist/providers/openai.models.js.map +1 -0
  430. package/dist/providers/opencode-go.d.ts +3 -0
  431. package/dist/providers/opencode-go.d.ts.map +1 -0
  432. package/dist/providers/opencode-go.js +18 -0
  433. package/dist/providers/opencode-go.js.map +1 -0
  434. package/dist/providers/opencode-go.models.d.ts +309 -0
  435. package/dist/providers/opencode-go.models.d.ts.map +1 -0
  436. package/dist/providers/opencode-go.models.js +240 -0
  437. package/dist/providers/opencode-go.models.js.map +1 -0
  438. package/dist/providers/opencode.d.ts +3 -0
  439. package/dist/providers/opencode.d.ts.map +1 -0
  440. package/dist/providers/opencode.js +22 -0
  441. package/dist/providers/opencode.js.map +1 -0
  442. package/dist/providers/opencode.models.d.ts +976 -0
  443. package/dist/providers/opencode.models.d.ts.map +1 -0
  444. package/dist/providers/opencode.models.js +815 -0
  445. package/dist/providers/opencode.models.js.map +1 -0
  446. package/dist/providers/openrouter-images.d.ts +3 -0
  447. package/dist/providers/openrouter-images.d.ts.map +1 -0
  448. package/dist/providers/openrouter-images.js +14 -0
  449. package/dist/providers/openrouter-images.js.map +1 -0
  450. package/dist/providers/openrouter.d.ts +3 -0
  451. package/dist/providers/openrouter.d.ts.map +1 -0
  452. package/dist/providers/openrouter.js +15 -0
  453. package/dist/providers/openrouter.js.map +1 -0
  454. package/dist/providers/openrouter.models.d.ts +5402 -0
  455. package/dist/providers/openrouter.models.d.ts.map +1 -0
  456. package/dist/providers/openrouter.models.js +4634 -0
  457. package/dist/providers/openrouter.models.js.map +1 -0
  458. package/dist/providers/register-builtins.d.ts +35 -0
  459. package/dist/providers/register-builtins.d.ts.map +1 -0
  460. package/dist/providers/register-builtins.js +254 -0
  461. package/dist/providers/register-builtins.js.map +1 -0
  462. package/dist/providers/simple-options.d.ts +8 -0
  463. package/dist/providers/simple-options.d.ts.map +1 -0
  464. package/dist/providers/simple-options.js +42 -0
  465. package/dist/providers/simple-options.js.map +1 -0
  466. package/dist/providers/together.d.ts +3 -0
  467. package/dist/providers/together.d.ts.map +1 -0
  468. package/dist/providers/together.js +15 -0
  469. package/dist/providers/together.js.map +1 -0
  470. package/dist/providers/together.models.d.ts +598 -0
  471. package/dist/providers/together.models.d.ts.map +1 -0
  472. package/dist/providers/together.models.js +380 -0
  473. package/dist/providers/together.models.js.map +1 -0
  474. package/dist/providers/transform-messages.d.ts +8 -0
  475. package/dist/providers/transform-messages.d.ts.map +1 -0
  476. package/dist/providers/transform-messages.js +184 -0
  477. package/dist/providers/transform-messages.js.map +1 -0
  478. package/dist/providers/vercel-ai-gateway.d.ts +3 -0
  479. package/dist/providers/vercel-ai-gateway.d.ts.map +1 -0
  480. package/dist/providers/vercel-ai-gateway.js +15 -0
  481. package/dist/providers/vercel-ai-gateway.js.map +1 -0
  482. package/dist/providers/vercel-ai-gateway.models.d.ts +3230 -0
  483. package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -0
  484. package/dist/providers/vercel-ai-gateway.models.js +3187 -0
  485. package/dist/providers/vercel-ai-gateway.models.js.map +1 -0
  486. package/dist/providers/xai.d.ts +3 -0
  487. package/dist/providers/xai.d.ts.map +1 -0
  488. package/dist/providers/xai.js +15 -0
  489. package/dist/providers/xai.js.map +1 -0
  490. package/dist/providers/xai.models.d.ts +157 -0
  491. package/dist/providers/xai.models.d.ts.map +1 -0
  492. package/dist/providers/xai.models.js +131 -0
  493. package/dist/providers/xai.models.js.map +1 -0
  494. package/dist/providers/xiaomi-token-plan-ams.d.ts +3 -0
  495. package/dist/providers/xiaomi-token-plan-ams.d.ts.map +1 -0
  496. package/dist/providers/xiaomi-token-plan-ams.js +15 -0
  497. package/dist/providers/xiaomi-token-plan-ams.js.map +1 -0
  498. package/dist/providers/xiaomi-token-plan-ams.models.d.ts +108 -0
  499. package/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -0
  500. package/dist/providers/xiaomi-token-plan-ams.models.js +95 -0
  501. package/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -0
  502. package/dist/providers/xiaomi-token-plan-cn.d.ts +3 -0
  503. package/dist/providers/xiaomi-token-plan-cn.d.ts.map +1 -0
  504. package/dist/providers/xiaomi-token-plan-cn.js +15 -0
  505. package/dist/providers/xiaomi-token-plan-cn.js.map +1 -0
  506. package/dist/providers/xiaomi-token-plan-cn.models.d.ts +108 -0
  507. package/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -0
  508. package/dist/providers/xiaomi-token-plan-cn.models.js +95 -0
  509. package/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -0
  510. package/dist/providers/xiaomi-token-plan-sgp.d.ts +3 -0
  511. package/dist/providers/xiaomi-token-plan-sgp.d.ts.map +1 -0
  512. package/dist/providers/xiaomi-token-plan-sgp.js +15 -0
  513. package/dist/providers/xiaomi-token-plan-sgp.js.map +1 -0
  514. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts +108 -0
  515. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -0
  516. package/dist/providers/xiaomi-token-plan-sgp.models.js +95 -0
  517. package/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -0
  518. package/dist/providers/xiaomi.d.ts +3 -0
  519. package/dist/providers/xiaomi.d.ts.map +1 -0
  520. package/dist/providers/xiaomi.js +15 -0
  521. package/dist/providers/xiaomi.js.map +1 -0
  522. package/dist/providers/xiaomi.models.d.ts +129 -0
  523. package/dist/providers/xiaomi.models.d.ts.map +1 -0
  524. package/dist/providers/xiaomi.models.js +113 -0
  525. package/dist/providers/xiaomi.models.js.map +1 -0
  526. package/dist/providers/zai-coding-cn.d.ts +3 -0
  527. package/dist/providers/zai-coding-cn.d.ts.map +1 -0
  528. package/dist/providers/zai-coding-cn.js +15 -0
  529. package/dist/providers/zai-coding-cn.js.map +1 -0
  530. package/dist/providers/zai-coding-cn.models.d.ts +153 -0
  531. package/dist/providers/zai-coding-cn.models.d.ts.map +1 -0
  532. package/dist/providers/zai-coding-cn.models.js +114 -0
  533. package/dist/providers/zai-coding-cn.models.js.map +1 -0
  534. package/dist/providers/zai.d.ts +3 -0
  535. package/dist/providers/zai.d.ts.map +1 -0
  536. package/dist/providers/zai.js +15 -0
  537. package/dist/providers/zai.js.map +1 -0
  538. package/dist/providers/zai.models.d.ts +153 -0
  539. package/dist/providers/zai.models.d.ts.map +1 -0
  540. package/dist/providers/zai.models.js +114 -0
  541. package/dist/providers/zai.models.js.map +1 -0
  542. package/dist/session-resources.d.ts +4 -0
  543. package/dist/session-resources.d.ts.map +1 -0
  544. package/dist/session-resources.js +22 -0
  545. package/dist/session-resources.js.map +1 -0
  546. package/dist/stream.d.ts +8 -0
  547. package/dist/stream.d.ts.map +1 -0
  548. package/dist/stream.js +39 -0
  549. package/dist/stream.js.map +1 -0
  550. package/dist/types.d.ts +597 -0
  551. package/dist/types.d.ts.map +1 -0
  552. package/dist/types.js +2 -0
  553. package/dist/types.js.map +1 -0
  554. package/dist/utils/abort-signals.d.ts +6 -0
  555. package/dist/utils/abort-signals.d.ts.map +1 -0
  556. package/dist/utils/abort-signals.js +34 -0
  557. package/dist/utils/abort-signals.js.map +1 -0
  558. package/dist/utils/diagnostics.d.ts +19 -0
  559. package/dist/utils/diagnostics.d.ts.map +1 -0
  560. package/dist/utils/diagnostics.js +25 -0
  561. package/dist/utils/diagnostics.js.map +1 -0
  562. package/dist/utils/error-body.d.ts +25 -0
  563. package/dist/utils/error-body.d.ts.map +1 -0
  564. package/dist/utils/error-body.js +109 -0
  565. package/dist/utils/error-body.js.map +1 -0
  566. package/dist/utils/estimate.d.ts +17 -0
  567. package/dist/utils/estimate.d.ts.map +1 -0
  568. package/dist/utils/estimate.js +95 -0
  569. package/dist/utils/estimate.js.map +1 -0
  570. package/dist/utils/event-stream.d.ts +21 -0
  571. package/dist/utils/event-stream.d.ts.map +1 -0
  572. package/dist/utils/event-stream.js +81 -0
  573. package/dist/utils/event-stream.js.map +1 -0
  574. package/dist/utils/hash.d.ts +3 -0
  575. package/dist/utils/hash.d.ts.map +1 -0
  576. package/dist/utils/hash.js +14 -0
  577. package/dist/utils/hash.js.map +1 -0
  578. package/dist/utils/headers.d.ts +4 -0
  579. package/dist/utils/headers.d.ts.map +1 -0
  580. package/dist/utils/headers.js +18 -0
  581. package/dist/utils/headers.js.map +1 -0
  582. package/dist/utils/json-parse.d.ts +16 -0
  583. package/dist/utils/json-parse.d.ts.map +1 -0
  584. package/dist/utils/json-parse.js +113 -0
  585. package/dist/utils/json-parse.js.map +1 -0
  586. package/dist/utils/node-http-proxy.d.ts +4 -0
  587. package/dist/utils/node-http-proxy.d.ts.map +1 -0
  588. package/dist/utils/node-http-proxy.js +92 -0
  589. package/dist/utils/node-http-proxy.js.map +1 -0
  590. package/dist/utils/oauth/anthropic.d.ts +27 -0
  591. package/dist/utils/oauth/anthropic.d.ts.map +1 -0
  592. package/dist/utils/oauth/anthropic.js +367 -0
  593. package/dist/utils/oauth/anthropic.js.map +1 -0
  594. package/dist/utils/oauth/device-code.d.ts +21 -0
  595. package/dist/utils/oauth/device-code.d.ts.map +1 -0
  596. package/dist/utils/oauth/device-code.js +56 -0
  597. package/dist/utils/oauth/device-code.js.map +1 -0
  598. package/dist/utils/oauth/github-copilot.d.ts +32 -0
  599. package/dist/utils/oauth/github-copilot.d.ts.map +1 -0
  600. package/dist/utils/oauth/github-copilot.js +370 -0
  601. package/dist/utils/oauth/github-copilot.js.map +1 -0
  602. package/dist/utils/oauth/index.d.ts +58 -0
  603. package/dist/utils/oauth/index.d.ts.map +1 -0
  604. package/dist/utils/oauth/index.js +122 -0
  605. package/dist/utils/oauth/index.js.map +1 -0
  606. package/dist/utils/oauth/load.d.ts +5 -0
  607. package/dist/utils/oauth/load.d.ts.map +1 -0
  608. package/dist/utils/oauth/load.js +22 -0
  609. package/dist/utils/oauth/load.js.map +1 -0
  610. package/dist/utils/oauth/oauth-page.d.ts +3 -0
  611. package/dist/utils/oauth/oauth-page.d.ts.map +1 -0
  612. package/dist/utils/oauth/oauth-page.js +105 -0
  613. package/dist/utils/oauth/oauth-page.js.map +1 -0
  614. package/dist/utils/oauth/openai-codex.d.ts +45 -0
  615. package/dist/utils/oauth/openai-codex.d.ts.map +1 -0
  616. package/dist/utils/oauth/openai-codex.js +537 -0
  617. package/dist/utils/oauth/openai-codex.js.map +1 -0
  618. package/dist/utils/oauth/pkce.d.ts +13 -0
  619. package/dist/utils/oauth/pkce.d.ts.map +1 -0
  620. package/dist/utils/oauth/pkce.js +31 -0
  621. package/dist/utils/oauth/pkce.js.map +1 -0
  622. package/dist/utils/oauth/types.d.ts +64 -0
  623. package/dist/utils/oauth/types.d.ts.map +1 -0
  624. package/dist/utils/oauth/types.js +2 -0
  625. package/dist/utils/oauth/types.js.map +1 -0
  626. package/dist/utils/overflow.d.ts +57 -0
  627. package/dist/utils/overflow.d.ts.map +1 -0
  628. package/dist/utils/overflow.js +155 -0
  629. package/dist/utils/overflow.js.map +1 -0
  630. package/dist/utils/provider-env.d.ts +7 -0
  631. package/dist/utils/provider-env.d.ts.map +1 -0
  632. package/dist/utils/provider-env.js +44 -0
  633. package/dist/utils/provider-env.js.map +1 -0
  634. package/dist/utils/retry.d.ts +12 -0
  635. package/dist/utils/retry.d.ts.map +1 -0
  636. package/dist/utils/retry.js +86 -0
  637. package/dist/utils/retry.js.map +1 -0
  638. package/dist/utils/sanitize-unicode.d.ts +22 -0
  639. package/dist/utils/sanitize-unicode.d.ts.map +1 -0
  640. package/dist/utils/sanitize-unicode.js +26 -0
  641. package/dist/utils/sanitize-unicode.js.map +1 -0
  642. package/dist/utils/typebox-helpers.d.ts +17 -0
  643. package/dist/utils/typebox-helpers.d.ts.map +1 -0
  644. package/dist/utils/typebox-helpers.js +21 -0
  645. package/dist/utils/typebox-helpers.js.map +1 -0
  646. package/dist/utils/validation.d.ts +18 -0
  647. package/dist/utils/validation.d.ts.map +1 -0
  648. package/dist/utils/validation.js +281 -0
  649. package/dist/utils/validation.js.map +1 -0
  650. package/package.json +92 -0
@@ -0,0 +1,22 @@
1
+ const imagesApiProviderRegistry = new Map();
2
+ function wrapGenerateImages(api, generateImages) {
3
+ return (model, context, options) => {
4
+ if (model.api !== api) {
5
+ throw new Error(`Mismatched api: ${model.api} expected ${api}`);
6
+ }
7
+ return generateImages(model, context, options);
8
+ };
9
+ }
10
+ export function registerImagesApiProvider(provider, sourceId) {
11
+ imagesApiProviderRegistry.set(provider.api, {
12
+ provider: {
13
+ api: provider.api,
14
+ generateImages: wrapGenerateImages(provider.api, provider.generateImages),
15
+ },
16
+ sourceId,
17
+ });
18
+ }
19
+ export function getImagesApiProvider(api) {
20
+ return imagesApiProviderRegistry.get(api)?.provider;
21
+ }
22
+ //# sourceMappingURL=images-api-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images-api-registry.js","sourceRoot":"","sources":["../src/images-api-registry.ts"],"names":[],"mappings":"AAuBA,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAuC,CAAC;AAEjF,SAAS,kBAAkB,CAC1B,GAAS,EACT,cAA8C,EAC1B;IACpB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,GAAG,aAAa,GAAG,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,cAAc,CAAC,KAA0B,EAAE,OAAO,EAAE,OAAmB,CAAC,CAAC;IAAA,CAChF,CAAC;AAAA,CACF;AAED,MAAM,UAAU,yBAAyB,CACxC,QAA2C,EAC3C,QAAiB,EACV;IACP,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE;QAC3C,QAAQ,EAAE;YACT,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,cAAc,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,cAAc,CAAC;SACzE;QACD,QAAQ;KACR,CAAC,CAAC;AAAA,CACH;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAc,EAAyC;IAC3F,OAAO,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;AAAA,CACpD","sourcesContent":["import type { AssistantImages, ImagesApi, ImagesContext, ImagesFunction, ImagesModel, ImagesOptions } from \"./types.ts\";\n\nexport type ImagesApiFunction = (\n\tmodel: ImagesModel<ImagesApi>,\n\tcontext: ImagesContext,\n\toptions?: ImagesOptions,\n) => Promise<AssistantImages>;\n\nexport interface ImagesApiProvider<TApi extends ImagesApi = ImagesApi, TOptions extends ImagesOptions = ImagesOptions> {\n\tapi: TApi;\n\tgenerateImages: ImagesFunction<TApi, TOptions>;\n}\n\ninterface ImagesApiProviderInternal {\n\tapi: ImagesApi;\n\tgenerateImages: ImagesApiFunction;\n}\n\ntype RegisteredImagesApiProvider = {\n\tprovider: ImagesApiProviderInternal;\n\tsourceId?: string;\n};\n\nconst imagesApiProviderRegistry = new Map<string, RegisteredImagesApiProvider>();\n\nfunction wrapGenerateImages<TApi extends ImagesApi, TOptions extends ImagesOptions>(\n\tapi: TApi,\n\tgenerateImages: ImagesFunction<TApi, TOptions>,\n): ImagesApiFunction {\n\treturn (model, context, options) => {\n\t\tif (model.api !== api) {\n\t\t\tthrow new Error(`Mismatched api: ${model.api} expected ${api}`);\n\t\t}\n\t\treturn generateImages(model as ImagesModel<TApi>, context, options as TOptions);\n\t};\n}\n\nexport function registerImagesApiProvider<TApi extends ImagesApi, TOptions extends ImagesOptions>(\n\tprovider: ImagesApiProvider<TApi, TOptions>,\n\tsourceId?: string,\n): void {\n\timagesApiProviderRegistry.set(provider.api, {\n\t\tprovider: {\n\t\t\tapi: provider.api,\n\t\t\tgenerateImages: wrapGenerateImages(provider.api, provider.generateImages),\n\t\t},\n\t\tsourceId,\n\t});\n}\n\nexport function getImagesApiProvider(api: ImagesApi): ImagesApiProviderInternal | undefined {\n\treturn imagesApiProviderRegistry.get(api)?.provider;\n}\n"]}
@@ -0,0 +1,93 @@
1
+ import type { AuthResult, ProviderAuth } from "./auth/types.ts";
2
+ import type { CreateModelsOptions } from "./models.ts";
3
+ import type { AssistantImages, ImagesApi, ImagesContext, ImagesModel, ImagesOptions, ProviderImages } from "./types.ts";
4
+ /**
5
+ * An image-generation provider: the image-side counterpart of `Provider`.
6
+ * Owns id/name metadata, auth, model listing, and generation behavior.
7
+ */
8
+ export interface ImagesProvider {
9
+ readonly id: string;
10
+ readonly name: string;
11
+ /**
12
+ * Required: at least one of `apiKey`/`oauth`. Same semantics as chat
13
+ * providers; `ImagesModels.getAuth()` returns undefined when the provider
14
+ * is unconfigured.
15
+ */
16
+ readonly auth: ProviderAuth;
17
+ /**
18
+ * Current known models, sync. Static providers return their catalog;
19
+ * dynamic providers return the list as of the last `refreshModels()`
20
+ * (empty before the first). Must not throw; `ImagesModels` treats a
21
+ * throwing implementation as having no models.
22
+ */
23
+ getModels(): readonly ImagesModel<ImagesApi>[];
24
+ /**
25
+ * Dynamic providers only: fetch and update the model list. May reject
26
+ * (network); on rejection the model list stays at its last-known state
27
+ * and a later call retries.
28
+ */
29
+ refreshModels?(): Promise<void>;
30
+ generateImages(model: ImagesModel<ImagesApi>, context: ImagesContext, options?: ImagesOptions): Promise<AssistantImages>;
31
+ }
32
+ /**
33
+ * Runtime collection of image-generation providers plus auth application and
34
+ * generation convenience: the image-side counterpart of `Models`.
35
+ */
36
+ export interface ImagesModels {
37
+ getProviders(): readonly ImagesProvider[];
38
+ getProvider(id: string): ImagesProvider | undefined;
39
+ /**
40
+ * Sync read of last-known models from one provider or all providers.
41
+ * Best-effort: a provider whose `getModels()` throws yields no models.
42
+ */
43
+ getModels(provider?: string): readonly ImagesModel<ImagesApi>[];
44
+ /** Sync runtime model lookup against last-known lists. */
45
+ getModel(provider: string, id: string): ImagesModel<ImagesApi> | undefined;
46
+ /**
47
+ * Ask dynamic providers to re-fetch their model lists. With a provider id,
48
+ * rejects with `ModelsError` ("model_source") on that provider's fetch
49
+ * failure; without one, refreshes all providers concurrently best-effort.
50
+ * Static providers (no `refreshModels`) are no-ops.
51
+ */
52
+ refresh(provider?: string): Promise<void>;
53
+ /**
54
+ * Resolve request auth for an image model. Same contract as
55
+ * `Models.getAuth()`: undefined when unknown/unconfigured, rejects with
56
+ * `ModelsError` ("oauth"/"auth") on real failures.
57
+ */
58
+ getAuth(model: ImagesModel<ImagesApi>): Promise<AuthResult | undefined>;
59
+ /**
60
+ * Generate images through the owning provider with auth resolved and
61
+ * merged (explicit options win per field). Never rejects; failures are
62
+ * returned as an `AssistantImages` with `stopReason: "error"`.
63
+ */
64
+ generateImages(model: ImagesModel<ImagesApi>, context: ImagesContext, options?: ImagesOptions): Promise<AssistantImages>;
65
+ }
66
+ export interface MutableImagesModels extends ImagesModels {
67
+ /** Upsert/replace by provider.id. Provider ids are unique. */
68
+ setProvider(provider: ImagesProvider): void;
69
+ deleteProvider(id: string): void;
70
+ clearProviders(): void;
71
+ }
72
+ export declare function createImagesModels(options?: CreateModelsOptions): MutableImagesModels;
73
+ export interface CreateImagesProviderOptions {
74
+ id: string;
75
+ /** Display name. Default: `id`. */
76
+ name?: string;
77
+ /** Required — every provider has auth semantics, even ambient/keyless ones. */
78
+ auth: ProviderAuth;
79
+ /** Initial model list (empty for purely dynamic providers). */
80
+ models: readonly ImagesModel<ImagesApi>[];
81
+ /**
82
+ * Dynamic providers: fetch the current list. Stored on success; concurrent
83
+ * calls share one in-flight fetch. May reject: the stored list then stays
84
+ * at its last-known state, the rejection propagates to the caller of
85
+ * `refreshModels()` (wrapped as ModelsError "model_source" by
86
+ * `ImagesModels.refresh(provider)`), and a later call retries.
87
+ */
88
+ refreshModels?: () => Promise<readonly ImagesModel<ImagesApi>[]>;
89
+ api: ProviderImages;
90
+ }
91
+ /** Builds an image-generation provider from parts. */
92
+ export declare function createImagesProvider(input: CreateImagesProviderOptions): ImagesProvider;
93
+ //# sourceMappingURL=images-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images-models.d.ts","sourceRoot":"","sources":["../src/images-models.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,UAAU,EAAmB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAExH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B;;;;;OAKG;IACH,SAAS,IAAI,SAAS,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;IAE/C;;;;OAIG;IACH,aAAa,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC,cAAc,CACb,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,EAC7B,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,YAAY,IAAI,SAAS,cAAc,EAAE,CAAC;IAC1C,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAEpD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;IAEhE,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAE3E;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IAExE;;;;OAIG;IACH,cAAc,CACb,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,EAC7B,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACxD,8DAA8D;IAC9D,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,IAAI,IAAI,CAAC;CACvB;AA6HD,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAErF;AAED,MAAM,WAAW,2BAA2B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iFAA+E;IAC/E,IAAI,EAAE,YAAY,CAAC;IACnB,+DAA+D;IAC/D,MAAM,EAAE,SAAS,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;IAC1C;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjE,GAAG,EAAE,cAAc,CAAC;CACpB;AAED,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,2BAA2B,GAAG,cAAc,CAwBvF","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"]}
@@ -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"]}
@@ -0,0 +1,4 @@
1
+ import "./providers/images/register-builtins.ts";
2
+ import type { AssistantImages, ImagesApi, ImagesContext, ImagesModel, ProviderImagesOptions } from "./types.ts";
3
+ export declare function generateImages<TApi extends ImagesApi>(model: ImagesModel<TApi>, context: ImagesContext, options?: ProviderImagesOptions): Promise<AssistantImages>;
4
+ //# sourceMappingURL=images.d.ts.map
@@ -0,0 +1 @@
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 ADDED
@@ -0,0 +1,14 @@
1
+ import "./providers/images/register-builtins.js";
2
+ import { getImagesApiProvider } from "./images-api-registry.js";
3
+ function resolveImagesApiProvider(api) {
4
+ const provider = getImagesApiProvider(api);
5
+ if (!provider) {
6
+ throw new Error(`No API provider registered for api: ${api}`);
7
+ }
8
+ return provider;
9
+ }
10
+ export async function generateImages(model, context, options) {
11
+ const provider = resolveImagesApiProvider(model.api);
12
+ return provider.generateImages(model, context, options);
13
+ }
14
+ //# sourceMappingURL=images.js.map
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,31 @@
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/retry.ts";
29
+ export * from "./utils/typebox-helpers.ts";
30
+ export * from "./utils/validation.ts";
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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,kBAAkB,CAAC;AACjC,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/retry.ts\";\nexport * from \"./utils/typebox-helpers.ts\";\nexport * from \"./utils/validation.ts\";\n"]}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
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/retry.js";
17
+ export * from "./utils/typebox-helpers.js";
18
+ export * from "./utils/validation.js";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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,kBAAkB,CAAC;AACjC,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/retry.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"]}