@code-yeongyu/senpi-ai 2026.7.25-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (969) hide show
  1. package/README.md +1663 -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 +1626 -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 +242 -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 +939 -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 +12 -0
  27. package/dist/api/cloudflare.d.ts.map +1 -0
  28. package/dist/api/cloudflare.js +22 -0
  29. package/dist/api/cloudflare.js.map +1 -0
  30. package/dist/api/constrained-sampling.d.ts +17 -0
  31. package/dist/api/constrained-sampling.d.ts.map +1 -0
  32. package/dist/api/constrained-sampling.js +104 -0
  33. package/dist/api/constrained-sampling.js.map +1 -0
  34. package/dist/api/github-copilot-headers.d.ts +8 -0
  35. package/dist/api/github-copilot-headers.d.ts.map +1 -0
  36. package/dist/api/github-copilot-headers.js +29 -0
  37. package/dist/api/github-copilot-headers.js.map +1 -0
  38. package/dist/api/google-generative-ai.d.ts +13 -0
  39. package/dist/api/google-generative-ai.d.ts.map +1 -0
  40. package/dist/api/google-generative-ai.js +440 -0
  41. package/dist/api/google-generative-ai.js.map +1 -0
  42. package/dist/api/google-generative-ai.lazy.d.ts +3 -0
  43. package/dist/api/google-generative-ai.lazy.d.ts.map +1 -0
  44. package/dist/api/google-generative-ai.lazy.js +3 -0
  45. package/dist/api/google-generative-ai.lazy.js.map +1 -0
  46. package/dist/api/google-shared.d.ts +70 -0
  47. package/dist/api/google-shared.d.ts.map +1 -0
  48. package/dist/api/google-shared.js +360 -0
  49. package/dist/api/google-shared.js.map +1 -0
  50. package/dist/api/google-vertex.d.ts +15 -0
  51. package/dist/api/google-vertex.d.ts.map +1 -0
  52. package/dist/api/google-vertex.js +485 -0
  53. package/dist/api/google-vertex.js.map +1 -0
  54. package/dist/api/google-vertex.lazy.d.ts +3 -0
  55. package/dist/api/google-vertex.lazy.d.ts.map +1 -0
  56. package/dist/api/google-vertex.lazy.js +3 -0
  57. package/dist/api/google-vertex.lazy.js.map +1 -0
  58. package/dist/api/lazy.d.ts +15 -0
  59. package/dist/api/lazy.d.ts.map +1 -0
  60. package/dist/api/lazy.js +85 -0
  61. package/dist/api/lazy.js.map +1 -0
  62. package/dist/api/mistral-conversations.d.ts +25 -0
  63. package/dist/api/mistral-conversations.d.ts.map +1 -0
  64. package/dist/api/mistral-conversations.js +566 -0
  65. package/dist/api/mistral-conversations.js.map +1 -0
  66. package/dist/api/mistral-conversations.lazy.d.ts +3 -0
  67. package/dist/api/mistral-conversations.lazy.d.ts.map +1 -0
  68. package/dist/api/mistral-conversations.lazy.js +3 -0
  69. package/dist/api/mistral-conversations.lazy.js.map +1 -0
  70. package/dist/api/openai-codex-responses.d.ts +31 -0
  71. package/dist/api/openai-codex-responses.d.ts.map +1 -0
  72. package/dist/api/openai-codex-responses.js +1326 -0
  73. package/dist/api/openai-codex-responses.js.map +1 -0
  74. package/dist/api/openai-codex-responses.lazy.d.ts +3 -0
  75. package/dist/api/openai-codex-responses.lazy.d.ts.map +1 -0
  76. package/dist/api/openai-codex-responses.lazy.js +3 -0
  77. package/dist/api/openai-codex-responses.lazy.js.map +1 -0
  78. package/dist/api/openai-completions.d.ts +22 -0
  79. package/dist/api/openai-completions.d.ts.map +1 -0
  80. package/dist/api/openai-completions.js +1384 -0
  81. package/dist/api/openai-completions.js.map +1 -0
  82. package/dist/api/openai-completions.lazy.d.ts +3 -0
  83. package/dist/api/openai-completions.lazy.d.ts.map +1 -0
  84. package/dist/api/openai-completions.lazy.js +3 -0
  85. package/dist/api/openai-completions.lazy.js.map +1 -0
  86. package/dist/api/openai-prompt-cache.d.ts +3 -0
  87. package/dist/api/openai-prompt-cache.d.ts.map +1 -0
  88. package/dist/api/openai-prompt-cache.js +10 -0
  89. package/dist/api/openai-prompt-cache.js.map +1 -0
  90. package/dist/api/openai-responses-shared.d.ts +29 -0
  91. package/dist/api/openai-responses-shared.d.ts.map +1 -0
  92. package/dist/api/openai-responses-shared.js +730 -0
  93. package/dist/api/openai-responses-shared.js.map +1 -0
  94. package/dist/api/openai-responses.d.ts +14 -0
  95. package/dist/api/openai-responses.d.ts.map +1 -0
  96. package/dist/api/openai-responses.js +696 -0
  97. package/dist/api/openai-responses.js.map +1 -0
  98. package/dist/api/openai-responses.lazy.d.ts +3 -0
  99. package/dist/api/openai-responses.lazy.d.ts.map +1 -0
  100. package/dist/api/openai-responses.lazy.js +3 -0
  101. package/dist/api/openai-responses.lazy.js.map +1 -0
  102. package/dist/api/openrouter-images.d.ts +3 -0
  103. package/dist/api/openrouter-images.d.ts.map +1 -0
  104. package/dist/api/openrouter-images.js +131 -0
  105. package/dist/api/openrouter-images.js.map +1 -0
  106. package/dist/api/openrouter-images.lazy.d.ts +3 -0
  107. package/dist/api/openrouter-images.lazy.d.ts.map +1 -0
  108. package/dist/api/openrouter-images.lazy.js +4 -0
  109. package/dist/api/openrouter-images.lazy.js.map +1 -0
  110. package/dist/api/pi-messages.d.ts +97 -0
  111. package/dist/api/pi-messages.d.ts.map +1 -0
  112. package/dist/api/pi-messages.js +305 -0
  113. package/dist/api/pi-messages.js.map +1 -0
  114. package/dist/api/pi-messages.lazy.d.ts +3 -0
  115. package/dist/api/pi-messages.lazy.d.ts.map +1 -0
  116. package/dist/api/pi-messages.lazy.js +3 -0
  117. package/dist/api/pi-messages.lazy.js.map +1 -0
  118. package/dist/api/simple-options.d.ts +33 -0
  119. package/dist/api/simple-options.d.ts.map +1 -0
  120. package/dist/api/simple-options.js +177 -0
  121. package/dist/api/simple-options.js.map +1 -0
  122. package/dist/api/transform-messages.d.ts +23 -0
  123. package/dist/api/transform-messages.d.ts.map +1 -0
  124. package/dist/api/transform-messages.js +255 -0
  125. package/dist/api/transform-messages.js.map +1 -0
  126. package/dist/api-registry.d.ts +34 -0
  127. package/dist/api-registry.d.ts.map +1 -0
  128. package/dist/api-registry.js +96 -0
  129. package/dist/api-registry.js.map +1 -0
  130. package/dist/auth/context.d.ts +7 -0
  131. package/dist/auth/context.d.ts.map +1 -0
  132. package/dist/auth/context.js +42 -0
  133. package/dist/auth/context.js.map +1 -0
  134. package/dist/auth/credential-store.d.ts +17 -0
  135. package/dist/auth/credential-store.d.ts.map +1 -0
  136. package/dist/auth/credential-store.js +42 -0
  137. package/dist/auth/credential-store.js.map +1 -0
  138. package/dist/auth/helpers.d.ts +21 -0
  139. package/dist/auth/helpers.d.ts.map +1 -0
  140. package/dist/auth/helpers.js +48 -0
  141. package/dist/auth/helpers.js.map +1 -0
  142. package/dist/auth/oauth/anthropic.d.ts +9 -0
  143. package/dist/auth/oauth/anthropic.d.ts.map +1 -0
  144. package/dist/auth/oauth/anthropic.js +302 -0
  145. package/dist/auth/oauth/anthropic.js.map +1 -0
  146. package/dist/auth/oauth/device-code.d.ts +23 -0
  147. package/dist/auth/oauth/device-code.d.ts.map +1 -0
  148. package/dist/auth/oauth/device-code.js +69 -0
  149. package/dist/auth/oauth/device-code.js.map +1 -0
  150. package/dist/auth/oauth/github-copilot.d.ts +6 -0
  151. package/dist/auth/oauth/github-copilot.d.ts.map +1 -0
  152. package/dist/auth/oauth/github-copilot.js +312 -0
  153. package/dist/auth/oauth/github-copilot.js.map +1 -0
  154. package/dist/auth/oauth/kimi-coding.d.ts +10 -0
  155. package/dist/auth/oauth/kimi-coding.d.ts.map +1 -0
  156. package/dist/auth/oauth/kimi-coding.js +249 -0
  157. package/dist/auth/oauth/kimi-coding.js.map +1 -0
  158. package/dist/auth/oauth/load.d.ts +27 -0
  159. package/dist/auth/oauth/load.d.ts.map +1 -0
  160. package/dist/auth/oauth/load.js +59 -0
  161. package/dist/auth/oauth/load.js.map +1 -0
  162. package/dist/auth/oauth/oauth-page.d.ts +3 -0
  163. package/dist/auth/oauth/oauth-page.d.ts.map +1 -0
  164. package/dist/auth/oauth/oauth-page.js +105 -0
  165. package/dist/auth/oauth/oauth-page.js.map +1 -0
  166. package/dist/auth/oauth/openai-codex.d.ts +9 -0
  167. package/dist/auth/oauth/openai-codex.d.ts.map +1 -0
  168. package/dist/auth/oauth/openai-codex.js +427 -0
  169. package/dist/auth/oauth/openai-codex.js.map +1 -0
  170. package/dist/auth/oauth/openrouter.d.ts +13 -0
  171. package/dist/auth/oauth/openrouter.d.ts.map +1 -0
  172. package/dist/auth/oauth/openrouter.js +222 -0
  173. package/dist/auth/oauth/openrouter.js.map +1 -0
  174. package/dist/auth/oauth/pkce.d.ts +13 -0
  175. package/dist/auth/oauth/pkce.d.ts.map +1 -0
  176. package/dist/auth/oauth/pkce.js +31 -0
  177. package/dist/auth/oauth/pkce.js.map +1 -0
  178. package/dist/auth/oauth/radius.d.ts +17 -0
  179. package/dist/auth/oauth/radius.d.ts.map +1 -0
  180. package/dist/auth/oauth/radius.js +318 -0
  181. package/dist/auth/oauth/radius.js.map +1 -0
  182. package/dist/auth/oauth/xai.d.ts +6 -0
  183. package/dist/auth/oauth/xai.d.ts.map +1 -0
  184. package/dist/auth/oauth/xai.js +189 -0
  185. package/dist/auth/oauth/xai.js.map +1 -0
  186. package/dist/auth/resolve.d.ts +24 -0
  187. package/dist/auth/resolve.d.ts.map +1 -0
  188. package/dist/auth/resolve.js +112 -0
  189. package/dist/auth/resolve.js.map +1 -0
  190. package/dist/auth/types.d.ts +219 -0
  191. package/dist/auth/types.d.ts.map +1 -0
  192. package/dist/auth/types.js +2 -0
  193. package/dist/auth/types.js.map +1 -0
  194. package/dist/bedrock-provider.d.ts +5 -0
  195. package/dist/bedrock-provider.d.ts.map +1 -0
  196. package/dist/bedrock-provider.js +6 -0
  197. package/dist/bedrock-provider.js.map +1 -0
  198. package/dist/bun-oauth.d.ts +3 -0
  199. package/dist/bun-oauth.d.ts.map +1 -0
  200. package/dist/bun-oauth.js +21 -0
  201. package/dist/bun-oauth.js.map +1 -0
  202. package/dist/cli.d.ts +3 -0
  203. package/dist/cli.d.ts.map +1 -0
  204. package/dist/cli.js +112 -0
  205. package/dist/cli.js.map +1 -0
  206. package/dist/compat/extension-oauth-types.d.ts +42 -0
  207. package/dist/compat/extension-oauth-types.d.ts.map +1 -0
  208. package/dist/compat/extension-oauth-types.js +2 -0
  209. package/dist/compat/extension-oauth-types.js.map +1 -0
  210. package/dist/compat.d.ts +53 -0
  211. package/dist/compat.d.ts.map +1 -0
  212. package/dist/compat.js +176 -0
  213. package/dist/compat.js.map +1 -0
  214. package/dist/context-provenance.d.ts +16 -0
  215. package/dist/context-provenance.d.ts.map +1 -0
  216. package/dist/context-provenance.js +32 -0
  217. package/dist/context-provenance.js.map +1 -0
  218. package/dist/env-api-keys.d.ts +21 -0
  219. package/dist/env-api-keys.d.ts.map +1 -0
  220. package/dist/env-api-keys.js +155 -0
  221. package/dist/env-api-keys.js.map +1 -0
  222. package/dist/image-models.d.ts +10 -0
  223. package/dist/image-models.d.ts.map +1 -0
  224. package/dist/image-models.generated.d.ts +605 -0
  225. package/dist/image-models.generated.d.ts.map +1 -0
  226. package/dist/image-models.generated.js +607 -0
  227. package/dist/image-models.generated.js.map +1 -0
  228. package/dist/image-models.js +23 -0
  229. package/dist/image-models.js.map +1 -0
  230. package/dist/images-api-registry.d.ts +31 -0
  231. package/dist/images-api-registry.d.ts.map +1 -0
  232. package/dist/images-api-registry.js +87 -0
  233. package/dist/images-api-registry.js.map +1 -0
  234. package/dist/images-models.d.ts +95 -0
  235. package/dist/images-models.d.ts.map +1 -0
  236. package/dist/images-models.js +140 -0
  237. package/dist/images-models.js.map +1 -0
  238. package/dist/images.d.ts +4 -0
  239. package/dist/images.d.ts.map +1 -0
  240. package/dist/images.js +14 -0
  241. package/dist/images.js.map +1 -0
  242. package/dist/index.d.ts +45 -0
  243. package/dist/index.d.ts.map +1 -0
  244. package/dist/index.js +32 -0
  245. package/dist/index.js.map +1 -0
  246. package/dist/legacy-api-aliases.d.ts +42 -0
  247. package/dist/legacy-api-aliases.d.ts.map +1 -0
  248. package/dist/legacy-api-aliases.js +49 -0
  249. package/dist/legacy-api-aliases.js.map +1 -0
  250. package/dist/model-catalog.d.ts +17 -0
  251. package/dist/model-catalog.d.ts.map +1 -0
  252. package/dist/model-catalog.js +4 -0
  253. package/dist/model-catalog.js.map +1 -0
  254. package/dist/model.d.ts +27 -0
  255. package/dist/model.d.ts.map +1 -0
  256. package/dist/model.js +2 -0
  257. package/dist/model.js.map +1 -0
  258. package/dist/models-store.d.ts +32 -0
  259. package/dist/models-store.d.ts.map +1 -0
  260. package/dist/models-store.js +16 -0
  261. package/dist/models-store.js.map +1 -0
  262. package/dist/models.d.ts +179 -0
  263. package/dist/models.d.ts.map +1 -0
  264. package/dist/models.generated.d.ts +79 -0
  265. package/dist/models.generated.d.ts.map +1 -0
  266. package/dist/models.generated.js +81 -0
  267. package/dist/models.generated.js.map +1 -0
  268. package/dist/models.js +449 -0
  269. package/dist/models.js.map +1 -0
  270. package/dist/node/provider-scope.d.ts +12 -0
  271. package/dist/node/provider-scope.d.ts.map +1 -0
  272. package/dist/node/provider-scope.js +34 -0
  273. package/dist/node/provider-scope.js.map +1 -0
  274. package/dist/oauth.d.ts +3 -0
  275. package/dist/oauth.d.ts.map +1 -0
  276. package/dist/oauth.js +2 -0
  277. package/dist/oauth.js.map +1 -0
  278. package/dist/providers/alibaba-token-plan.d.ts +3 -0
  279. package/dist/providers/alibaba-token-plan.d.ts.map +1 -0
  280. package/dist/providers/alibaba-token-plan.js +15 -0
  281. package/dist/providers/alibaba-token-plan.js.map +1 -0
  282. package/dist/providers/alibaba-token-plan.models.d.ts +4 -0
  283. package/dist/providers/alibaba-token-plan.models.d.ts.map +1 -0
  284. package/dist/providers/alibaba-token-plan.models.js +6 -0
  285. package/dist/providers/alibaba-token-plan.models.js.map +1 -0
  286. package/dist/providers/all.d.ts +28 -0
  287. package/dist/providers/all.d.ts.map +1 -0
  288. package/dist/providers/all.js +162 -0
  289. package/dist/providers/all.js.map +1 -0
  290. package/dist/providers/amazon-bedrock.d.ts +3 -0
  291. package/dist/providers/amazon-bedrock.d.ts.map +1 -0
  292. package/dist/providers/amazon-bedrock.js +85 -0
  293. package/dist/providers/amazon-bedrock.js.map +1 -0
  294. package/dist/providers/amazon-bedrock.models.d.ts +4 -0
  295. package/dist/providers/amazon-bedrock.models.d.ts.map +1 -0
  296. package/dist/providers/amazon-bedrock.models.js +6 -0
  297. package/dist/providers/amazon-bedrock.models.js.map +1 -0
  298. package/dist/providers/ant-ling.d.ts +3 -0
  299. package/dist/providers/ant-ling.d.ts.map +1 -0
  300. package/dist/providers/ant-ling.js +15 -0
  301. package/dist/providers/ant-ling.js.map +1 -0
  302. package/dist/providers/ant-ling.models.d.ts +4 -0
  303. package/dist/providers/ant-ling.models.d.ts.map +1 -0
  304. package/dist/providers/ant-ling.models.js +6 -0
  305. package/dist/providers/ant-ling.models.js.map +1 -0
  306. package/dist/providers/anthropic.d.ts +7 -0
  307. package/dist/providers/anthropic.d.ts.map +1 -0
  308. package/dist/providers/anthropic.js +50 -0
  309. package/dist/providers/anthropic.js.map +1 -0
  310. package/dist/providers/anthropic.models.d.ts +4 -0
  311. package/dist/providers/anthropic.models.d.ts.map +1 -0
  312. package/dist/providers/anthropic.models.js +6 -0
  313. package/dist/providers/anthropic.models.js.map +1 -0
  314. package/dist/providers/azure-openai-responses.d.ts +3 -0
  315. package/dist/providers/azure-openai-responses.d.ts.map +1 -0
  316. package/dist/providers/azure-openai-responses.js +14 -0
  317. package/dist/providers/azure-openai-responses.js.map +1 -0
  318. package/dist/providers/azure-openai-responses.models.d.ts +4 -0
  319. package/dist/providers/azure-openai-responses.models.d.ts.map +1 -0
  320. package/dist/providers/azure-openai-responses.models.js +6 -0
  321. package/dist/providers/azure-openai-responses.models.js.map +1 -0
  322. package/dist/providers/cerebras.d.ts +3 -0
  323. package/dist/providers/cerebras.d.ts.map +1 -0
  324. package/dist/providers/cerebras.js +15 -0
  325. package/dist/providers/cerebras.js.map +1 -0
  326. package/dist/providers/cerebras.models.d.ts +4 -0
  327. package/dist/providers/cerebras.models.d.ts.map +1 -0
  328. package/dist/providers/cerebras.models.js +6 -0
  329. package/dist/providers/cerebras.models.js.map +1 -0
  330. package/dist/providers/cloudflare-ai-gateway.d.ts +3 -0
  331. package/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -0
  332. package/dist/providers/cloudflare-ai-gateway.js +21 -0
  333. package/dist/providers/cloudflare-ai-gateway.js.map +1 -0
  334. package/dist/providers/cloudflare-ai-gateway.models.d.ts +4 -0
  335. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -0
  336. package/dist/providers/cloudflare-ai-gateway.models.js +6 -0
  337. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -0
  338. package/dist/providers/cloudflare-auth.d.ts +4 -0
  339. package/dist/providers/cloudflare-auth.d.ts.map +1 -0
  340. package/dist/providers/cloudflare-auth.js +81 -0
  341. package/dist/providers/cloudflare-auth.js.map +1 -0
  342. package/dist/providers/cloudflare-stream.d.ts +8 -0
  343. package/dist/providers/cloudflare-stream.d.ts.map +1 -0
  344. package/dist/providers/cloudflare-stream.js +21 -0
  345. package/dist/providers/cloudflare-stream.js.map +1 -0
  346. package/dist/providers/cloudflare-workers-ai.d.ts +3 -0
  347. package/dist/providers/cloudflare-workers-ai.d.ts.map +1 -0
  348. package/dist/providers/cloudflare-workers-ai.js +15 -0
  349. package/dist/providers/cloudflare-workers-ai.js.map +1 -0
  350. package/dist/providers/cloudflare-workers-ai.models.d.ts +4 -0
  351. package/dist/providers/cloudflare-workers-ai.models.d.ts.map +1 -0
  352. package/dist/providers/cloudflare-workers-ai.models.js +6 -0
  353. package/dist/providers/cloudflare-workers-ai.models.js.map +1 -0
  354. package/dist/providers/data/.manifest.json +1 -0
  355. package/dist/providers/data/alibaba-token-plan.json +1 -0
  356. package/dist/providers/data/amazon-bedrock.json +1 -0
  357. package/dist/providers/data/ant-ling.json +1 -0
  358. package/dist/providers/data/anthropic.json +1 -0
  359. package/dist/providers/data/azure-openai-responses.json +1 -0
  360. package/dist/providers/data/cerebras.json +1 -0
  361. package/dist/providers/data/cloudflare-ai-gateway.json +1 -0
  362. package/dist/providers/data/cloudflare-workers-ai.json +1 -0
  363. package/dist/providers/data/deepseek.json +1 -0
  364. package/dist/providers/data/fireworks.json +1 -0
  365. package/dist/providers/data/github-copilot.json +1 -0
  366. package/dist/providers/data/google-vertex.json +1 -0
  367. package/dist/providers/data/google.json +1 -0
  368. package/dist/providers/data/groq.json +1 -0
  369. package/dist/providers/data/huggingface.json +1 -0
  370. package/dist/providers/data/kimi-coding.json +1 -0
  371. package/dist/providers/data/minimax-cn.json +1 -0
  372. package/dist/providers/data/minimax.json +1 -0
  373. package/dist/providers/data/mistral.json +1 -0
  374. package/dist/providers/data/moonshotai-cn.json +1 -0
  375. package/dist/providers/data/moonshotai.json +1 -0
  376. package/dist/providers/data/nvidia.json +1 -0
  377. package/dist/providers/data/openai-codex.json +1 -0
  378. package/dist/providers/data/openai.json +1 -0
  379. package/dist/providers/data/opencode-go.json +1 -0
  380. package/dist/providers/data/opencode.json +1 -0
  381. package/dist/providers/data/openrouter.json +1 -0
  382. package/dist/providers/data/qwen-token-plan-cn.json +1 -0
  383. package/dist/providers/data/qwen-token-plan.json +1 -0
  384. package/dist/providers/data/together.json +1 -0
  385. package/dist/providers/data/vercel-ai-gateway.json +1 -0
  386. package/dist/providers/data/xai.json +1 -0
  387. package/dist/providers/data/xiaomi-token-plan-ams.json +1 -0
  388. package/dist/providers/data/xiaomi-token-plan-cn.json +1 -0
  389. package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -0
  390. package/dist/providers/data/xiaomi.json +1 -0
  391. package/dist/providers/data/zai-coding-cn.json +1 -0
  392. package/dist/providers/data/zai.json +1 -0
  393. package/dist/providers/deepseek.d.ts +3 -0
  394. package/dist/providers/deepseek.d.ts.map +1 -0
  395. package/dist/providers/deepseek.js +15 -0
  396. package/dist/providers/deepseek.js.map +1 -0
  397. package/dist/providers/deepseek.models.d.ts +4 -0
  398. package/dist/providers/deepseek.models.d.ts.map +1 -0
  399. package/dist/providers/deepseek.models.js +6 -0
  400. package/dist/providers/deepseek.models.js.map +1 -0
  401. package/dist/providers/faux.d.ts +116 -0
  402. package/dist/providers/faux.d.ts.map +1 -0
  403. package/dist/providers/faux.js +466 -0
  404. package/dist/providers/faux.js.map +1 -0
  405. package/dist/providers/fireworks.d.ts +3 -0
  406. package/dist/providers/fireworks.d.ts.map +1 -0
  407. package/dist/providers/fireworks.js +19 -0
  408. package/dist/providers/fireworks.js.map +1 -0
  409. package/dist/providers/fireworks.models.d.ts +4 -0
  410. package/dist/providers/fireworks.models.d.ts.map +1 -0
  411. package/dist/providers/fireworks.models.js +6 -0
  412. package/dist/providers/fireworks.models.js.map +1 -0
  413. package/dist/providers/github-copilot.d.ts +3 -0
  414. package/dist/providers/github-copilot.d.ts.map +1 -0
  415. package/dist/providers/github-copilot.js +35 -0
  416. package/dist/providers/github-copilot.js.map +1 -0
  417. package/dist/providers/github-copilot.models.d.ts +4 -0
  418. package/dist/providers/github-copilot.models.d.ts.map +1 -0
  419. package/dist/providers/github-copilot.models.js +6 -0
  420. package/dist/providers/github-copilot.models.js.map +1 -0
  421. package/dist/providers/google-shared.d.ts +2 -0
  422. package/dist/providers/google-shared.d.ts.map +1 -0
  423. package/dist/providers/google-shared.js +2 -0
  424. package/dist/providers/google-shared.js.map +1 -0
  425. package/dist/providers/google-vertex.d.ts +7 -0
  426. package/dist/providers/google-vertex.d.ts.map +1 -0
  427. package/dist/providers/google-vertex.js +89 -0
  428. package/dist/providers/google-vertex.js.map +1 -0
  429. package/dist/providers/google-vertex.models.d.ts +4 -0
  430. package/dist/providers/google-vertex.models.d.ts.map +1 -0
  431. package/dist/providers/google-vertex.models.js +6 -0
  432. package/dist/providers/google-vertex.models.js.map +1 -0
  433. package/dist/providers/google.d.ts +7 -0
  434. package/dist/providers/google.d.ts.map +1 -0
  435. package/dist/providers/google.js +18 -0
  436. package/dist/providers/google.js.map +1 -0
  437. package/dist/providers/google.models.d.ts +4 -0
  438. package/dist/providers/google.models.d.ts.map +1 -0
  439. package/dist/providers/google.models.js +6 -0
  440. package/dist/providers/google.models.js.map +1 -0
  441. package/dist/providers/groq.d.ts +3 -0
  442. package/dist/providers/groq.d.ts.map +1 -0
  443. package/dist/providers/groq.js +15 -0
  444. package/dist/providers/groq.js.map +1 -0
  445. package/dist/providers/groq.models.d.ts +4 -0
  446. package/dist/providers/groq.models.d.ts.map +1 -0
  447. package/dist/providers/groq.models.js +6 -0
  448. package/dist/providers/groq.models.js.map +1 -0
  449. package/dist/providers/huggingface.d.ts +3 -0
  450. package/dist/providers/huggingface.d.ts.map +1 -0
  451. package/dist/providers/huggingface.js +15 -0
  452. package/dist/providers/huggingface.js.map +1 -0
  453. package/dist/providers/huggingface.models.d.ts +4 -0
  454. package/dist/providers/huggingface.models.d.ts.map +1 -0
  455. package/dist/providers/huggingface.models.js +6 -0
  456. package/dist/providers/huggingface.models.js.map +1 -0
  457. package/dist/providers/images/register-builtins.d.ts +4 -0
  458. package/dist/providers/images/register-builtins.d.ts.map +1 -0
  459. package/dist/providers/images/register-builtins.js +34 -0
  460. package/dist/providers/images/register-builtins.js.map +1 -0
  461. package/dist/providers/kimi-coding.d.ts +3 -0
  462. package/dist/providers/kimi-coding.d.ts.map +1 -0
  463. package/dist/providers/kimi-coding.js +23 -0
  464. package/dist/providers/kimi-coding.js.map +1 -0
  465. package/dist/providers/kimi-coding.models.d.ts +4 -0
  466. package/dist/providers/kimi-coding.models.d.ts.map +1 -0
  467. package/dist/providers/kimi-coding.models.js +6 -0
  468. package/dist/providers/kimi-coding.models.js.map +1 -0
  469. package/dist/providers/minimax-cn.d.ts +3 -0
  470. package/dist/providers/minimax-cn.d.ts.map +1 -0
  471. package/dist/providers/minimax-cn.js +15 -0
  472. package/dist/providers/minimax-cn.js.map +1 -0
  473. package/dist/providers/minimax-cn.models.d.ts +4 -0
  474. package/dist/providers/minimax-cn.models.d.ts.map +1 -0
  475. package/dist/providers/minimax-cn.models.js +6 -0
  476. package/dist/providers/minimax-cn.models.js.map +1 -0
  477. package/dist/providers/minimax.d.ts +3 -0
  478. package/dist/providers/minimax.d.ts.map +1 -0
  479. package/dist/providers/minimax.js +15 -0
  480. package/dist/providers/minimax.js.map +1 -0
  481. package/dist/providers/minimax.models.d.ts +4 -0
  482. package/dist/providers/minimax.models.d.ts.map +1 -0
  483. package/dist/providers/minimax.models.js +6 -0
  484. package/dist/providers/minimax.models.js.map +1 -0
  485. package/dist/providers/mistral.d.ts +3 -0
  486. package/dist/providers/mistral.d.ts.map +1 -0
  487. package/dist/providers/mistral.js +15 -0
  488. package/dist/providers/mistral.js.map +1 -0
  489. package/dist/providers/mistral.models.d.ts +4 -0
  490. package/dist/providers/mistral.models.d.ts.map +1 -0
  491. package/dist/providers/mistral.models.js +6 -0
  492. package/dist/providers/mistral.models.js.map +1 -0
  493. package/dist/providers/moonshotai-cn.d.ts +3 -0
  494. package/dist/providers/moonshotai-cn.d.ts.map +1 -0
  495. package/dist/providers/moonshotai-cn.js +15 -0
  496. package/dist/providers/moonshotai-cn.js.map +1 -0
  497. package/dist/providers/moonshotai-cn.models.d.ts +4 -0
  498. package/dist/providers/moonshotai-cn.models.d.ts.map +1 -0
  499. package/dist/providers/moonshotai-cn.models.js +6 -0
  500. package/dist/providers/moonshotai-cn.models.js.map +1 -0
  501. package/dist/providers/moonshotai.d.ts +3 -0
  502. package/dist/providers/moonshotai.d.ts.map +1 -0
  503. package/dist/providers/moonshotai.js +15 -0
  504. package/dist/providers/moonshotai.js.map +1 -0
  505. package/dist/providers/moonshotai.models.d.ts +4 -0
  506. package/dist/providers/moonshotai.models.d.ts.map +1 -0
  507. package/dist/providers/moonshotai.models.js +6 -0
  508. package/dist/providers/moonshotai.models.js.map +1 -0
  509. package/dist/providers/nvidia.d.ts +3 -0
  510. package/dist/providers/nvidia.d.ts.map +1 -0
  511. package/dist/providers/nvidia.js +15 -0
  512. package/dist/providers/nvidia.js.map +1 -0
  513. package/dist/providers/nvidia.models.d.ts +4 -0
  514. package/dist/providers/nvidia.models.d.ts.map +1 -0
  515. package/dist/providers/nvidia.models.js +6 -0
  516. package/dist/providers/nvidia.models.js.map +1 -0
  517. package/dist/providers/openai-codex.d.ts +3 -0
  518. package/dist/providers/openai-codex.d.ts.map +1 -0
  519. package/dist/providers/openai-codex.js +18 -0
  520. package/dist/providers/openai-codex.js.map +1 -0
  521. package/dist/providers/openai-codex.models.d.ts +4 -0
  522. package/dist/providers/openai-codex.models.d.ts.map +1 -0
  523. package/dist/providers/openai-codex.models.js +6 -0
  524. package/dist/providers/openai-codex.models.js.map +1 -0
  525. package/dist/providers/openai-completions.d.ts +3 -0
  526. package/dist/providers/openai-completions.d.ts.map +1 -0
  527. package/dist/providers/openai-completions.js +2 -0
  528. package/dist/providers/openai-completions.js.map +1 -0
  529. package/dist/providers/openai-responses-shared.d.ts +2 -0
  530. package/dist/providers/openai-responses-shared.d.ts.map +1 -0
  531. package/dist/providers/openai-responses-shared.js +2 -0
  532. package/dist/providers/openai-responses-shared.js.map +1 -0
  533. package/dist/providers/openai-responses.d.ts +3 -0
  534. package/dist/providers/openai-responses.d.ts.map +1 -0
  535. package/dist/providers/openai-responses.js +2 -0
  536. package/dist/providers/openai-responses.js.map +1 -0
  537. package/dist/providers/openai.d.ts +3 -0
  538. package/dist/providers/openai.d.ts.map +1 -0
  539. package/dist/providers/openai.js +15 -0
  540. package/dist/providers/openai.js.map +1 -0
  541. package/dist/providers/openai.models.d.ts +4 -0
  542. package/dist/providers/openai.models.d.ts.map +1 -0
  543. package/dist/providers/openai.models.js +6 -0
  544. package/dist/providers/openai.models.js.map +1 -0
  545. package/dist/providers/opencode-go.d.ts +3 -0
  546. package/dist/providers/opencode-go.d.ts.map +1 -0
  547. package/dist/providers/opencode-go.js +20 -0
  548. package/dist/providers/opencode-go.js.map +1 -0
  549. package/dist/providers/opencode-go.models.d.ts +4 -0
  550. package/dist/providers/opencode-go.models.d.ts.map +1 -0
  551. package/dist/providers/opencode-go.models.js +6 -0
  552. package/dist/providers/opencode-go.models.js.map +1 -0
  553. package/dist/providers/opencode.d.ts +3 -0
  554. package/dist/providers/opencode.d.ts.map +1 -0
  555. package/dist/providers/opencode.js +22 -0
  556. package/dist/providers/opencode.js.map +1 -0
  557. package/dist/providers/opencode.models.d.ts +4 -0
  558. package/dist/providers/opencode.models.d.ts.map +1 -0
  559. package/dist/providers/opencode.models.js +6 -0
  560. package/dist/providers/opencode.models.js.map +1 -0
  561. package/dist/providers/openrouter-images.d.ts +3 -0
  562. package/dist/providers/openrouter-images.d.ts.map +1 -0
  563. package/dist/providers/openrouter-images.js +22 -0
  564. package/dist/providers/openrouter-images.js.map +1 -0
  565. package/dist/providers/openrouter.d.ts +3 -0
  566. package/dist/providers/openrouter.d.ts.map +1 -0
  567. package/dist/providers/openrouter.js +23 -0
  568. package/dist/providers/openrouter.js.map +1 -0
  569. package/dist/providers/openrouter.models.d.ts +4 -0
  570. package/dist/providers/openrouter.models.d.ts.map +1 -0
  571. package/dist/providers/openrouter.models.js +6 -0
  572. package/dist/providers/openrouter.models.js.map +1 -0
  573. package/dist/providers/qwen-token-plan-cn.d.ts +3 -0
  574. package/dist/providers/qwen-token-plan-cn.d.ts.map +1 -0
  575. package/dist/providers/qwen-token-plan-cn.js +15 -0
  576. package/dist/providers/qwen-token-plan-cn.js.map +1 -0
  577. package/dist/providers/qwen-token-plan-cn.models.d.ts +4 -0
  578. package/dist/providers/qwen-token-plan-cn.models.d.ts.map +1 -0
  579. package/dist/providers/qwen-token-plan-cn.models.js +6 -0
  580. package/dist/providers/qwen-token-plan-cn.models.js.map +1 -0
  581. package/dist/providers/qwen-token-plan.d.ts +3 -0
  582. package/dist/providers/qwen-token-plan.d.ts.map +1 -0
  583. package/dist/providers/qwen-token-plan.js +15 -0
  584. package/dist/providers/qwen-token-plan.js.map +1 -0
  585. package/dist/providers/qwen-token-plan.models.d.ts +4 -0
  586. package/dist/providers/qwen-token-plan.models.d.ts.map +1 -0
  587. package/dist/providers/qwen-token-plan.models.js +6 -0
  588. package/dist/providers/qwen-token-plan.models.js.map +1 -0
  589. package/dist/providers/radius-config.d.ts +26 -0
  590. package/dist/providers/radius-config.d.ts.map +1 -0
  591. package/dist/providers/radius-config.js +63 -0
  592. package/dist/providers/radius-config.js.map +1 -0
  593. package/dist/providers/radius.d.ts +9 -0
  594. package/dist/providers/radius.d.ts.map +1 -0
  595. package/dist/providers/radius.js +54 -0
  596. package/dist/providers/radius.js.map +1 -0
  597. package/dist/providers/register-builtins.d.ts +2 -0
  598. package/dist/providers/register-builtins.d.ts.map +1 -0
  599. package/dist/providers/register-builtins.js +2 -0
  600. package/dist/providers/register-builtins.js.map +1 -0
  601. package/dist/providers/together.d.ts +3 -0
  602. package/dist/providers/together.d.ts.map +1 -0
  603. package/dist/providers/together.js +15 -0
  604. package/dist/providers/together.js.map +1 -0
  605. package/dist/providers/together.models.d.ts +4 -0
  606. package/dist/providers/together.models.d.ts.map +1 -0
  607. package/dist/providers/together.models.js +6 -0
  608. package/dist/providers/together.models.js.map +1 -0
  609. package/dist/providers/vercel-ai-gateway.d.ts +3 -0
  610. package/dist/providers/vercel-ai-gateway.d.ts.map +1 -0
  611. package/dist/providers/vercel-ai-gateway.js +15 -0
  612. package/dist/providers/vercel-ai-gateway.js.map +1 -0
  613. package/dist/providers/vercel-ai-gateway.models.d.ts +4 -0
  614. package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -0
  615. package/dist/providers/vercel-ai-gateway.models.js +6 -0
  616. package/dist/providers/vercel-ai-gateway.models.js.map +1 -0
  617. package/dist/providers/xai.d.ts +3 -0
  618. package/dist/providers/xai.d.ts.map +1 -0
  619. package/dist/providers/xai.js +27 -0
  620. package/dist/providers/xai.js.map +1 -0
  621. package/dist/providers/xai.models.d.ts +4 -0
  622. package/dist/providers/xai.models.d.ts.map +1 -0
  623. package/dist/providers/xai.models.js +6 -0
  624. package/dist/providers/xai.models.js.map +1 -0
  625. package/dist/providers/xiaomi-token-plan-ams.d.ts +3 -0
  626. package/dist/providers/xiaomi-token-plan-ams.d.ts.map +1 -0
  627. package/dist/providers/xiaomi-token-plan-ams.js +15 -0
  628. package/dist/providers/xiaomi-token-plan-ams.js.map +1 -0
  629. package/dist/providers/xiaomi-token-plan-ams.models.d.ts +4 -0
  630. package/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -0
  631. package/dist/providers/xiaomi-token-plan-ams.models.js +6 -0
  632. package/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -0
  633. package/dist/providers/xiaomi-token-plan-cn.d.ts +3 -0
  634. package/dist/providers/xiaomi-token-plan-cn.d.ts.map +1 -0
  635. package/dist/providers/xiaomi-token-plan-cn.js +15 -0
  636. package/dist/providers/xiaomi-token-plan-cn.js.map +1 -0
  637. package/dist/providers/xiaomi-token-plan-cn.models.d.ts +4 -0
  638. package/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -0
  639. package/dist/providers/xiaomi-token-plan-cn.models.js +6 -0
  640. package/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -0
  641. package/dist/providers/xiaomi-token-plan-sgp.d.ts +3 -0
  642. package/dist/providers/xiaomi-token-plan-sgp.d.ts.map +1 -0
  643. package/dist/providers/xiaomi-token-plan-sgp.js +15 -0
  644. package/dist/providers/xiaomi-token-plan-sgp.js.map +1 -0
  645. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts +4 -0
  646. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -0
  647. package/dist/providers/xiaomi-token-plan-sgp.models.js +6 -0
  648. package/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -0
  649. package/dist/providers/xiaomi.d.ts +3 -0
  650. package/dist/providers/xiaomi.d.ts.map +1 -0
  651. package/dist/providers/xiaomi.js +15 -0
  652. package/dist/providers/xiaomi.js.map +1 -0
  653. package/dist/providers/xiaomi.models.d.ts +4 -0
  654. package/dist/providers/xiaomi.models.d.ts.map +1 -0
  655. package/dist/providers/xiaomi.models.js +6 -0
  656. package/dist/providers/xiaomi.models.js.map +1 -0
  657. package/dist/providers/zai-coding-cn.d.ts +3 -0
  658. package/dist/providers/zai-coding-cn.d.ts.map +1 -0
  659. package/dist/providers/zai-coding-cn.js +15 -0
  660. package/dist/providers/zai-coding-cn.js.map +1 -0
  661. package/dist/providers/zai-coding-cn.models.d.ts +4 -0
  662. package/dist/providers/zai-coding-cn.models.d.ts.map +1 -0
  663. package/dist/providers/zai-coding-cn.models.js +6 -0
  664. package/dist/providers/zai-coding-cn.models.js.map +1 -0
  665. package/dist/providers/zai.d.ts +3 -0
  666. package/dist/providers/zai.d.ts.map +1 -0
  667. package/dist/providers/zai.js +15 -0
  668. package/dist/providers/zai.js.map +1 -0
  669. package/dist/providers/zai.models.d.ts +4 -0
  670. package/dist/providers/zai.models.d.ts.map +1 -0
  671. package/dist/providers/zai.models.js +6 -0
  672. package/dist/providers/zai.models.js.map +1 -0
  673. package/dist/session-resources.d.ts +4 -0
  674. package/dist/session-resources.d.ts.map +1 -0
  675. package/dist/session-resources.js +22 -0
  676. package/dist/session-resources.js.map +1 -0
  677. package/dist/stream.d.ts +2 -0
  678. package/dist/stream.d.ts.map +1 -0
  679. package/dist/stream.js +2 -0
  680. package/dist/stream.js.map +1 -0
  681. package/dist/tool-call-middleware/context-transformer.d.ts +22 -0
  682. package/dist/tool-call-middleware/context-transformer.d.ts.map +1 -0
  683. package/dist/tool-call-middleware/context-transformer.js +182 -0
  684. package/dist/tool-call-middleware/context-transformer.js.map +1 -0
  685. package/dist/tool-call-middleware/index.d.ts +14 -0
  686. package/dist/tool-call-middleware/index.d.ts.map +1 -0
  687. package/dist/tool-call-middleware/index.js +37 -0
  688. package/dist/tool-call-middleware/index.js.map +1 -0
  689. package/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.d.ts +9 -0
  690. package/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.d.ts.map +1 -0
  691. package/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.js +92 -0
  692. package/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.js.map +1 -0
  693. package/dist/tool-call-middleware/protocols/anthropic-xml/format.d.ts +7 -0
  694. package/dist/tool-call-middleware/protocols/anthropic-xml/format.d.ts.map +1 -0
  695. package/dist/tool-call-middleware/protocols/anthropic-xml/format.js +54 -0
  696. package/dist/tool-call-middleware/protocols/anthropic-xml/format.js.map +1 -0
  697. package/dist/tool-call-middleware/protocols/anthropic-xml/index.d.ts +4 -0
  698. package/dist/tool-call-middleware/protocols/anthropic-xml/index.d.ts.map +1 -0
  699. package/dist/tool-call-middleware/protocols/anthropic-xml/index.js +4 -0
  700. package/dist/tool-call-middleware/protocols/anthropic-xml/index.js.map +1 -0
  701. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.d.ts +7 -0
  702. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.d.ts.map +1 -0
  703. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.js +16 -0
  704. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.js.map +1 -0
  705. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.d.ts +19 -0
  706. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.d.ts.map +1 -0
  707. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.js +8 -0
  708. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.js.map +1 -0
  709. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-stream-helpers.d.ts +20 -0
  710. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-stream-helpers.d.ts.map +1 -0
  711. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-stream-helpers.js +79 -0
  712. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-stream-helpers.js.map +1 -0
  713. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.d.ts +14 -0
  714. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.d.ts.map +1 -0
  715. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.js +42 -0
  716. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.js.map +1 -0
  717. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-syntax.d.ts +38 -0
  718. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-syntax.d.ts.map +1 -0
  719. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-syntax.js +210 -0
  720. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-syntax.js.map +1 -0
  721. package/dist/tool-call-middleware/protocols/anthropic-xml/parse.d.ts +6 -0
  722. package/dist/tool-call-middleware/protocols/anthropic-xml/parse.d.ts.map +1 -0
  723. package/dist/tool-call-middleware/protocols/anthropic-xml/parse.js +49 -0
  724. package/dist/tool-call-middleware/protocols/anthropic-xml/parse.js.map +1 -0
  725. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-stream.d.ts +9 -0
  726. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-stream.d.ts.map +1 -0
  727. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-stream.js +231 -0
  728. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-stream.js.map +1 -0
  729. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-wrapper-state.d.ts +38 -0
  730. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-wrapper-state.d.ts.map +1 -0
  731. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-wrapper-state.js +84 -0
  732. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-wrapper-state.js.map +1 -0
  733. package/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.d.ts +13 -0
  734. package/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.d.ts.map +1 -0
  735. package/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.js +107 -0
  736. package/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.js.map +1 -0
  737. package/dist/tool-call-middleware/protocols/anthropic-xml/stream.d.ts +7 -0
  738. package/dist/tool-call-middleware/protocols/anthropic-xml/stream.d.ts.map +1 -0
  739. package/dist/tool-call-middleware/protocols/anthropic-xml/stream.js +214 -0
  740. package/dist/tool-call-middleware/protocols/anthropic-xml/stream.js.map +1 -0
  741. package/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.d.ts +4 -0
  742. package/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.d.ts.map +1 -0
  743. package/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.js +17 -0
  744. package/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.js.map +1 -0
  745. package/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.d.ts +5 -0
  746. package/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.d.ts.map +1 -0
  747. package/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.js +34 -0
  748. package/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.js.map +1 -0
  749. package/dist/tool-call-middleware/protocols/antml/coerce-parameters.d.ts +15 -0
  750. package/dist/tool-call-middleware/protocols/antml/coerce-parameters.d.ts.map +1 -0
  751. package/dist/tool-call-middleware/protocols/antml/coerce-parameters.js +198 -0
  752. package/dist/tool-call-middleware/protocols/antml/coerce-parameters.js.map +1 -0
  753. package/dist/tool-call-middleware/protocols/antml/config.d.ts +3 -0
  754. package/dist/tool-call-middleware/protocols/antml/config.d.ts.map +1 -0
  755. package/dist/tool-call-middleware/protocols/antml/config.js +8 -0
  756. package/dist/tool-call-middleware/protocols/antml/config.js.map +1 -0
  757. package/dist/tool-call-middleware/protocols/antml/format.d.ts +6 -0
  758. package/dist/tool-call-middleware/protocols/antml/format.d.ts.map +1 -0
  759. package/dist/tool-call-middleware/protocols/antml/format.js +33 -0
  760. package/dist/tool-call-middleware/protocols/antml/format.js.map +1 -0
  761. package/dist/tool-call-middleware/protocols/antml/index.d.ts +7 -0
  762. package/dist/tool-call-middleware/protocols/antml/index.d.ts.map +1 -0
  763. package/dist/tool-call-middleware/protocols/antml/index.js +7 -0
  764. package/dist/tool-call-middleware/protocols/antml/index.js.map +1 -0
  765. package/dist/tool-call-middleware/protocols/antml/parse.d.ts +4 -0
  766. package/dist/tool-call-middleware/protocols/antml/parse.d.ts.map +1 -0
  767. package/dist/tool-call-middleware/protocols/antml/parse.js +6 -0
  768. package/dist/tool-call-middleware/protocols/antml/parse.js.map +1 -0
  769. package/dist/tool-call-middleware/protocols/antml/recovery-stream.d.ts +5 -0
  770. package/dist/tool-call-middleware/protocols/antml/recovery-stream.d.ts.map +1 -0
  771. package/dist/tool-call-middleware/protocols/antml/recovery-stream.js +6 -0
  772. package/dist/tool-call-middleware/protocols/antml/recovery-stream.js.map +1 -0
  773. package/dist/tool-call-middleware/protocols/antml/repair.d.ts +12 -0
  774. package/dist/tool-call-middleware/protocols/antml/repair.d.ts.map +1 -0
  775. package/dist/tool-call-middleware/protocols/antml/repair.js +46 -0
  776. package/dist/tool-call-middleware/protocols/antml/repair.js.map +1 -0
  777. package/dist/tool-call-middleware/protocols/antml/stream.d.ts +4 -0
  778. package/dist/tool-call-middleware/protocols/antml/stream.d.ts.map +1 -0
  779. package/dist/tool-call-middleware/protocols/antml/stream.js +6 -0
  780. package/dist/tool-call-middleware/protocols/antml/stream.js.map +1 -0
  781. package/dist/tool-call-middleware/protocols/gemma4.d.ts +28 -0
  782. package/dist/tool-call-middleware/protocols/gemma4.d.ts.map +1 -0
  783. package/dist/tool-call-middleware/protocols/gemma4.js +663 -0
  784. package/dist/tool-call-middleware/protocols/gemma4.js.map +1 -0
  785. package/dist/tool-call-middleware/protocols/hermes.d.ts +21 -0
  786. package/dist/tool-call-middleware/protocols/hermes.d.ts.map +1 -0
  787. package/dist/tool-call-middleware/protocols/hermes.js +69 -0
  788. package/dist/tool-call-middleware/protocols/hermes.js.map +1 -0
  789. package/dist/tool-call-middleware/protocols/json-mix.d.ts +12 -0
  790. package/dist/tool-call-middleware/protocols/json-mix.d.ts.map +1 -0
  791. package/dist/tool-call-middleware/protocols/json-mix.js +704 -0
  792. package/dist/tool-call-middleware/protocols/json-mix.js.map +1 -0
  793. package/dist/tool-call-middleware/protocols/morph-xml.d.ts +15 -0
  794. package/dist/tool-call-middleware/protocols/morph-xml.d.ts.map +1 -0
  795. package/dist/tool-call-middleware/protocols/morph-xml.js +957 -0
  796. package/dist/tool-call-middleware/protocols/morph-xml.js.map +1 -0
  797. package/dist/tool-call-middleware/protocols/xml-tool-tag-scanner.d.ts +14 -0
  798. package/dist/tool-call-middleware/protocols/xml-tool-tag-scanner.d.ts.map +1 -0
  799. package/dist/tool-call-middleware/protocols/xml-tool-tag-scanner.js +54 -0
  800. package/dist/tool-call-middleware/protocols/xml-tool-tag-scanner.js.map +1 -0
  801. package/dist/tool-call-middleware/protocols/yaml-xml.d.ts +8 -0
  802. package/dist/tool-call-middleware/protocols/yaml-xml.d.ts.map +1 -0
  803. package/dist/tool-call-middleware/protocols/yaml-xml.js +328 -0
  804. package/dist/tool-call-middleware/protocols/yaml-xml.js.map +1 -0
  805. package/dist/tool-call-middleware/recovery-code-mask.d.ts +19 -0
  806. package/dist/tool-call-middleware/recovery-code-mask.d.ts.map +1 -0
  807. package/dist/tool-call-middleware/recovery-code-mask.js +185 -0
  808. package/dist/tool-call-middleware/recovery-code-mask.js.map +1 -0
  809. package/dist/tool-call-middleware/recovery-content-lifecycle.d.ts +11 -0
  810. package/dist/tool-call-middleware/recovery-content-lifecycle.d.ts.map +1 -0
  811. package/dist/tool-call-middleware/recovery-content-lifecycle.js +24 -0
  812. package/dist/tool-call-middleware/recovery-content-lifecycle.js.map +1 -0
  813. package/dist/tool-call-middleware/recovery-diagnostics.d.ts +4 -0
  814. package/dist/tool-call-middleware/recovery-diagnostics.d.ts.map +1 -0
  815. package/dist/tool-call-middleware/recovery-diagnostics.js +13 -0
  816. package/dist/tool-call-middleware/recovery-diagnostics.js.map +1 -0
  817. package/dist/tool-call-middleware/recovery-event-stream.d.ts +15 -0
  818. package/dist/tool-call-middleware/recovery-event-stream.d.ts.map +1 -0
  819. package/dist/tool-call-middleware/recovery-event-stream.js +37 -0
  820. package/dist/tool-call-middleware/recovery-event-stream.js.map +1 -0
  821. package/dist/tool-call-middleware/recovery-message-snapshot.d.ts +4 -0
  822. package/dist/tool-call-middleware/recovery-message-snapshot.d.ts.map +1 -0
  823. package/dist/tool-call-middleware/recovery-message-snapshot.js +61 -0
  824. package/dist/tool-call-middleware/recovery-message-snapshot.js.map +1 -0
  825. package/dist/tool-call-middleware/recovery-native-projection.d.ts +29 -0
  826. package/dist/tool-call-middleware/recovery-native-projection.d.ts.map +1 -0
  827. package/dist/tool-call-middleware/recovery-native-projection.js +148 -0
  828. package/dist/tool-call-middleware/recovery-native-projection.js.map +1 -0
  829. package/dist/tool-call-middleware/recovery-stream-failure.d.ts +5 -0
  830. package/dist/tool-call-middleware/recovery-stream-failure.d.ts.map +1 -0
  831. package/dist/tool-call-middleware/recovery-stream-failure.js +36 -0
  832. package/dist/tool-call-middleware/recovery-stream-failure.js.map +1 -0
  833. package/dist/tool-call-middleware/recovery-stream-terminal.d.ts +15 -0
  834. package/dist/tool-call-middleware/recovery-stream-terminal.d.ts.map +1 -0
  835. package/dist/tool-call-middleware/recovery-stream-terminal.js +88 -0
  836. package/dist/tool-call-middleware/recovery-stream-terminal.js.map +1 -0
  837. package/dist/tool-call-middleware/recovery-stream-wrapper.d.ts +3 -0
  838. package/dist/tool-call-middleware/recovery-stream-wrapper.d.ts.map +1 -0
  839. package/dist/tool-call-middleware/recovery-stream-wrapper.js +233 -0
  840. package/dist/tool-call-middleware/recovery-stream-wrapper.js.map +1 -0
  841. package/dist/tool-call-middleware/recovery-text-projection.d.ts +23 -0
  842. package/dist/tool-call-middleware/recovery-text-projection.d.ts.map +1 -0
  843. package/dist/tool-call-middleware/recovery-text-projection.js +77 -0
  844. package/dist/tool-call-middleware/recovery-text-projection.js.map +1 -0
  845. package/dist/tool-call-middleware/stream-message-metadata.d.ts +5 -0
  846. package/dist/tool-call-middleware/stream-message-metadata.d.ts.map +1 -0
  847. package/dist/tool-call-middleware/stream-message-metadata.js +63 -0
  848. package/dist/tool-call-middleware/stream-message-metadata.js.map +1 -0
  849. package/dist/tool-call-middleware/stream-thinking-projection.d.ts +13 -0
  850. package/dist/tool-call-middleware/stream-thinking-projection.d.ts.map +1 -0
  851. package/dist/tool-call-middleware/stream-thinking-projection.js +52 -0
  852. package/dist/tool-call-middleware/stream-thinking-projection.js.map +1 -0
  853. package/dist/tool-call-middleware/stream-wrapper-shared.d.ts +41 -0
  854. package/dist/tool-call-middleware/stream-wrapper-shared.d.ts.map +1 -0
  855. package/dist/tool-call-middleware/stream-wrapper-shared.js +209 -0
  856. package/dist/tool-call-middleware/stream-wrapper-shared.js.map +1 -0
  857. package/dist/tool-call-middleware/stream-wrapper.d.ts +4 -0
  858. package/dist/tool-call-middleware/stream-wrapper.d.ts.map +1 -0
  859. package/dist/tool-call-middleware/stream-wrapper.js +121 -0
  860. package/dist/tool-call-middleware/stream-wrapper.js.map +1 -0
  861. package/dist/tool-call-middleware/types.d.ts +109 -0
  862. package/dist/tool-call-middleware/types.d.ts.map +1 -0
  863. package/dist/tool-call-middleware/types.js +2 -0
  864. package/dist/tool-call-middleware/types.js.map +1 -0
  865. package/dist/types.d.ts +762 -0
  866. package/dist/types.d.ts.map +1 -0
  867. package/dist/types.js +5 -0
  868. package/dist/types.js.map +1 -0
  869. package/dist/utils/abort-signals.d.ts +6 -0
  870. package/dist/utils/abort-signals.d.ts.map +1 -0
  871. package/dist/utils/abort-signals.js +34 -0
  872. package/dist/utils/abort-signals.js.map +1 -0
  873. package/dist/utils/deferred-tools.d.ts +9 -0
  874. package/dist/utils/deferred-tools.d.ts.map +1 -0
  875. package/dist/utils/deferred-tools.js +36 -0
  876. package/dist/utils/deferred-tools.js.map +1 -0
  877. package/dist/utils/diagnostics.d.ts +19 -0
  878. package/dist/utils/diagnostics.d.ts.map +1 -0
  879. package/dist/utils/diagnostics.js +25 -0
  880. package/dist/utils/diagnostics.js.map +1 -0
  881. package/dist/utils/error-body.d.ts +25 -0
  882. package/dist/utils/error-body.d.ts.map +1 -0
  883. package/dist/utils/error-body.js +114 -0
  884. package/dist/utils/error-body.js.map +1 -0
  885. package/dist/utils/estimate.d.ts +17 -0
  886. package/dist/utils/estimate.d.ts.map +1 -0
  887. package/dist/utils/estimate.js +119 -0
  888. package/dist/utils/estimate.js.map +1 -0
  889. package/dist/utils/event-stream.d.ts +24 -0
  890. package/dist/utils/event-stream.d.ts.map +1 -0
  891. package/dist/utils/event-stream.js +117 -0
  892. package/dist/utils/event-stream.js.map +1 -0
  893. package/dist/utils/hash.d.ts +3 -0
  894. package/dist/utils/hash.d.ts.map +1 -0
  895. package/dist/utils/hash.js +14 -0
  896. package/dist/utils/hash.js.map +1 -0
  897. package/dist/utils/headers.d.ts +4 -0
  898. package/dist/utils/headers.d.ts.map +1 -0
  899. package/dist/utils/headers.js +18 -0
  900. package/dist/utils/headers.js.map +1 -0
  901. package/dist/utils/json-parse.d.ts +16 -0
  902. package/dist/utils/json-parse.d.ts.map +1 -0
  903. package/dist/utils/json-parse.js +113 -0
  904. package/dist/utils/json-parse.js.map +1 -0
  905. package/dist/utils/node-http-proxy.d.ts +4 -0
  906. package/dist/utils/node-http-proxy.d.ts.map +1 -0
  907. package/dist/utils/node-http-proxy.js +92 -0
  908. package/dist/utils/node-http-proxy.js.map +1 -0
  909. package/dist/utils/openai-codex-auth.d.ts +11 -0
  910. package/dist/utils/openai-codex-auth.d.ts.map +1 -0
  911. package/dist/utils/openai-codex-auth.js +30 -0
  912. package/dist/utils/openai-codex-auth.js.map +1 -0
  913. package/dist/utils/overflow.d.ts +55 -0
  914. package/dist/utils/overflow.d.ts.map +1 -0
  915. package/dist/utils/overflow.js +155 -0
  916. package/dist/utils/overflow.js.map +1 -0
  917. package/dist/utils/provider-env.d.ts +7 -0
  918. package/dist/utils/provider-env.d.ts.map +1 -0
  919. package/dist/utils/provider-env.js +44 -0
  920. package/dist/utils/provider-env.js.map +1 -0
  921. package/dist/utils/provider-retry.d.ts +16 -0
  922. package/dist/utils/provider-retry.d.ts.map +1 -0
  923. package/dist/utils/provider-retry.js +94 -0
  924. package/dist/utils/provider-retry.js.map +1 -0
  925. package/dist/utils/retry.d.ts +53 -0
  926. package/dist/utils/retry.d.ts.map +1 -0
  927. package/dist/utils/retry.js +177 -0
  928. package/dist/utils/retry.js.map +1 -0
  929. package/dist/utils/sanitize-unicode.d.ts +22 -0
  930. package/dist/utils/sanitize-unicode.d.ts.map +1 -0
  931. package/dist/utils/sanitize-unicode.js +26 -0
  932. package/dist/utils/sanitize-unicode.js.map +1 -0
  933. package/dist/utils/server-fallback-receipt.d.ts +30 -0
  934. package/dist/utils/server-fallback-receipt.d.ts.map +1 -0
  935. package/dist/utils/server-fallback-receipt.js +70 -0
  936. package/dist/utils/server-fallback-receipt.js.map +1 -0
  937. package/dist/utils/stop-details.d.ts +4 -0
  938. package/dist/utils/stop-details.d.ts.map +1 -0
  939. package/dist/utils/stop-details.js +6 -0
  940. package/dist/utils/stop-details.js.map +1 -0
  941. package/dist/utils/text.d.ts +6 -0
  942. package/dist/utils/text.d.ts.map +1 -0
  943. package/dist/utils/text.js +10 -0
  944. package/dist/utils/text.js.map +1 -0
  945. package/dist/utils/tool-choice-fallback.d.ts +5 -0
  946. package/dist/utils/tool-choice-fallback.d.ts.map +1 -0
  947. package/dist/utils/tool-choice-fallback.js +41 -0
  948. package/dist/utils/tool-choice-fallback.js.map +1 -0
  949. package/dist/utils/tool-pair-repair.d.ts +5 -0
  950. package/dist/utils/tool-pair-repair.d.ts.map +1 -0
  951. package/dist/utils/tool-pair-repair.js +70 -0
  952. package/dist/utils/tool-pair-repair.js.map +1 -0
  953. package/dist/utils/tool-schema-compat.d.ts +19 -0
  954. package/dist/utils/tool-schema-compat.d.ts.map +1 -0
  955. package/dist/utils/tool-schema-compat.js +215 -0
  956. package/dist/utils/tool-schema-compat.js.map +1 -0
  957. package/dist/utils/typebox-helpers.d.ts +17 -0
  958. package/dist/utils/typebox-helpers.d.ts.map +1 -0
  959. package/dist/utils/typebox-helpers.js +21 -0
  960. package/dist/utils/typebox-helpers.js.map +1 -0
  961. package/dist/utils/uuid.d.ts +3 -0
  962. package/dist/utils/uuid.d.ts.map +1 -0
  963. package/dist/utils/uuid.js +50 -0
  964. package/dist/utils/uuid.js.map +1 -0
  965. package/dist/utils/validation.d.ts +18 -0
  966. package/dist/utils/validation.d.ts.map +1 -0
  967. package/dist/utils/validation.js +269 -0
  968. package/dist/utils/validation.js.map +1 -0
  969. package/package.json +110 -0
@@ -0,0 +1,762 @@
1
+ import type { AnthropicOptions } from "./api/anthropic-messages.ts";
2
+ import type { AzureOpenAIResponsesOptions } from "./api/azure-openai-responses.ts";
3
+ import type { BedrockOptions } from "./api/bedrock-converse-stream.ts";
4
+ import type { GoogleOptions } from "./api/google-generative-ai.ts";
5
+ import type { GoogleVertexOptions } from "./api/google-vertex.ts";
6
+ import type { MistralOptions } from "./api/mistral-conversations.ts";
7
+ import type { OpenAICodexResponsesOptions } from "./api/openai-codex-responses.ts";
8
+ import type { OpenAICompletionsOptions } from "./api/openai-completions.ts";
9
+ import type { OpenAIResponsesOptions } from "./api/openai-responses.ts";
10
+ import type { PiMessagesOptions } from "./api/pi-messages.ts";
11
+ import type { Model } from "./model.ts";
12
+ import type { AssistantMessageDiagnostic } from "./utils/diagnostics.ts";
13
+ import type { AssistantMessageEventStream } from "./utils/event-stream.ts";
14
+ export type { Model } from "./model.ts";
15
+ export type { AssistantMessageEventStream } from "./utils/event-stream.ts";
16
+ export type KnownApi = "openai-completions" | "mistral-conversations" | "openai-responses" | "azure-openai-responses" | "openai-codex-responses" | "anthropic-messages" | "bedrock-converse-stream" | "google-generative-ai" | "google-vertex" | "pi-messages";
17
+ export type Api = KnownApi | (string & {});
18
+ export type KnownImagesApi = "openrouter-images";
19
+ export type ImagesApi = KnownImagesApi | (string & {});
20
+ export type KnownProvider = "alibaba-token-plan" | "amazon-bedrock" | "ant-ling" | "anthropic" | "google" | "google-vertex" | "openai" | "azure-openai-responses" | "openai-codex" | "radius" | "nvidia" | "deepseek" | "github-copilot" | "xai" | "groq" | "cerebras" | "openrouter" | "vercel-ai-gateway" | "zai" | "zai-coding-cn" | "mistral" | "minimax" | "minimax-cn" | "moonshotai" | "moonshotai-cn" | "huggingface" | "fireworks" | "together" | "opencode" | "opencode-go" | "kimi-coding" | "cloudflare-workers-ai" | "cloudflare-ai-gateway" | "qwen-token-plan" | "qwen-token-plan-cn" | "xiaomi" | "xiaomi-token-plan-cn" | "xiaomi-token-plan-ams" | "xiaomi-token-plan-sgp";
21
+ export type ProviderId = KnownProvider | string;
22
+ export type KnownImagesProvider = "openrouter";
23
+ export type ImagesProviderId = KnownImagesProvider | string;
24
+ export type ThinkingLevel = "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
25
+ export type ModelThinkingLevel = "off" | ThinkingLevel;
26
+ export type ThinkingLevelMap = Partial<Record<ModelThinkingLevel, string | null>>;
27
+ export type ChatTemplateKwargValue = string | number | boolean | null | {
28
+ $var: "thinking.enabled" | "thinking.effort";
29
+ omitWhenOff?: boolean;
30
+ };
31
+ /** Token budgets for each thinking level (token-based providers only) */
32
+ export interface ThinkingBudgets {
33
+ minimal?: number;
34
+ low?: number;
35
+ medium?: number;
36
+ high?: number;
37
+ max?: number;
38
+ }
39
+ export type CacheRetention = "none" | "short" | "long";
40
+ export type Transport = "sse" | "websocket" | "websocket-cached" | "auto";
41
+ /** Provider-scoped environment overrides. Values take precedence over process.env. */
42
+ export type ProviderEnv = Record<string, string>;
43
+ export type ProviderHeaders = Record<string, string | null>;
44
+ export type SessionAffinityFormat = "openai" | "openai-nosession" | "openrouter";
45
+ /** Effective model and fully transformed headers for a request payload hook. */
46
+ export type ProviderRequestMetadata = {
47
+ model: Model<Api>;
48
+ headers: ProviderHeaders;
49
+ };
50
+ export interface ProviderResponse {
51
+ status: number;
52
+ headers: Record<string, string>;
53
+ }
54
+ export interface StreamOptions {
55
+ temperature?: number;
56
+ maxTokens?: number;
57
+ signal?: AbortSignal;
58
+ /**
59
+ * Abort the request when the provider reports that a safety classifier
60
+ * declined the requested model and a substitute model served the turn
61
+ * instead (Anthropic `server-side-fallback-*` betas). The substitute's output
62
+ * is billed but was never requested, so aborting keeps model selection with
63
+ * the caller. Providers without server-side fallback ignore this.
64
+ * Default: undefined (honor the substituted response).
65
+ */
66
+ abortServerSideFallback?: boolean;
67
+ apiKey?: string;
68
+ /**
69
+ * Preferred transport for providers that support multiple transports.
70
+ * Providers that do not support this option ignore it.
71
+ */
72
+ transport?: Transport;
73
+ /**
74
+ * Prompt cache retention preference. Providers map this to their supported values.
75
+ * Default: "short".
76
+ */
77
+ cacheRetention?: CacheRetention;
78
+ /**
79
+ * Optional session identifier for providers that support session-based caching.
80
+ * Providers can use this to enable prompt caching, request routing, or other
81
+ * session-aware features. Ignored by providers that don't support it.
82
+ */
83
+ sessionId?: string;
84
+ /**
85
+ * Optional callback for inspecting or replacing provider payloads before sending.
86
+ * Return undefined to keep the payload unchanged.
87
+ */
88
+ onPayload?: (payload: unknown, model: Model<Api>, request?: ProviderRequestMetadata) => unknown | undefined | Promise<unknown | undefined>;
89
+ /**
90
+ * Optional callback invoked after an HTTP response is received and before
91
+ * its body stream is consumed.
92
+ */
93
+ onResponse?: (response: ProviderResponse, model: Model<Api>) => void | Promise<void>;
94
+ /**
95
+ * Optional custom HTTP headers to include in API requests.
96
+ * Merged with provider defaults; caller values override default headers.
97
+ * On AWS Bedrock these are injected via a Smithy `build`-step middleware so
98
+ * they are covered by SigV4 signing; reserved headers (`x-amz-*`,
99
+ * `authorization`, `host`) are silently ignored to preserve SigV4 / bearer auth.
100
+ * A null value suppresses a provider/API default header with the same name.
101
+ */
102
+ headers?: ProviderHeaders;
103
+ /**
104
+ * Optional custom fields to merge into the outgoing provider request body.
105
+ * Applied before `onPayload` so `onPayload` can observe/override them.
106
+ * Provider-managed fields (e.g. `model`, `messages`, `stream`) are preserved
107
+ * and cannot be overridden to avoid breaking core request semantics.
108
+ */
109
+ extraBody?: Record<string, unknown>;
110
+ /**
111
+ * HTTP request timeout in milliseconds for providers/SDKs that support it.
112
+ * For example, OpenAI and Anthropic SDK clients default to 10 minutes.
113
+ */
114
+ timeoutMs?: number;
115
+ /**
116
+ * WebSocket connect timeout in milliseconds for providers that support
117
+ * WebSocket transports. This covers the connection/open handshake only;
118
+ * stream idleness after connection uses timeoutMs.
119
+ */
120
+ websocketConnectTimeoutMs?: number;
121
+ /**
122
+ * Maximum retry attempts for providers/SDKs that support client-side retries.
123
+ * For example, OpenAI and Anthropic SDK clients default to 2.
124
+ */
125
+ maxRetries?: number;
126
+ /**
127
+ * Maximum delay in milliseconds to wait for a retry when the server requests a long wait.
128
+ * If the server's requested delay exceeds this value, the request fails immediately
129
+ * with an error containing the requested delay, allowing higher-level retry logic
130
+ * to handle it with user visibility.
131
+ * Default: 60000 (60 seconds). Set to 0 to disable the cap.
132
+ */
133
+ maxRetryDelayMs?: number;
134
+ /**
135
+ * Optional metadata to include in API requests.
136
+ * Providers extract the fields they understand and ignore the rest.
137
+ * For example, Anthropic uses `user_id` for abuse tracking and rate limiting.
138
+ */
139
+ metadata?: Record<string, unknown>;
140
+ /**
141
+ * Provider-scoped environment values. These take precedence over process.env for
142
+ * provider configuration such as regional settings, endpoint placeholders, and
143
+ * proxy variables.
144
+ */
145
+ env?: ProviderEnv;
146
+ }
147
+ export type ProviderStreamOptions = StreamOptions & Record<string, unknown>;
148
+ /**
149
+ * Maps known APIs to their full provider-specific stream option types.
150
+ * Type-only imports from API implementation modules are erased at emit, so
151
+ * this is tree-shake safe.
152
+ */
153
+ export interface ApiOptionsMap {
154
+ "anthropic-messages": AnthropicOptions;
155
+ "openai-completions": OpenAICompletionsOptions;
156
+ "openai-responses": OpenAIResponsesOptions;
157
+ "openai-codex-responses": OpenAICodexResponsesOptions;
158
+ "azure-openai-responses": AzureOpenAIResponsesOptions;
159
+ "google-generative-ai": GoogleOptions;
160
+ "google-vertex": GoogleVertexOptions;
161
+ "mistral-conversations": MistralOptions;
162
+ "bedrock-converse-stream": BedrockOptions;
163
+ "pi-messages": PiMessagesOptions;
164
+ }
165
+ /**
166
+ * Full stream options for an API. Known APIs resolve to their concrete option
167
+ * type; custom API strings fall back to the generic shape.
168
+ */
169
+ export type ApiStreamOptions<TApi extends Api> = TApi extends keyof ApiOptionsMap ? ApiOptionsMap[TApi] : StreamOptions & Record<string, unknown>;
170
+ /**
171
+ * The uniform stream contract of an API implementation module: every module
172
+ * under `src/api/` exports exactly `stream` and `streamSimple`, so the module
173
+ * itself satisfies this interface. Lazy wrappers (`lazyApi()`) and provider
174
+ * factories pass these around as values. This is the untyped dispatch shape;
175
+ * per-API option typing lives on the implementation modules themselves and on
176
+ * `Provider.stream()` via `ApiStreamOptions`.
177
+ */
178
+ export interface ProviderStreams {
179
+ stream(model: Model<Api>, context: Context, options?: StreamOptions): AssistantMessageEventStream;
180
+ streamSimple(model: Model<Api>, context: Context, options?: SimpleStreamOptions): AssistantMessageEventStream;
181
+ }
182
+ /**
183
+ * The uniform contract of an image-generation API implementation module:
184
+ * every image API module under `src/api/` exports exactly `generateImages`,
185
+ * so the module itself satisfies this interface. Lazy wrappers and image
186
+ * provider factories pass these around as values.
187
+ */
188
+ export interface ProviderImages {
189
+ generateImages(model: ImagesModel<ImagesApi>, context: ImagesContext, options?: ImagesOptions): Promise<AssistantImages>;
190
+ }
191
+ export interface ImagesOptions {
192
+ signal?: AbortSignal;
193
+ apiKey?: string;
194
+ /**
195
+ * Provider-scoped environment values. These take precedence over process.env for
196
+ * provider configuration such as endpoint placeholders and proxy variables.
197
+ */
198
+ env?: ProviderEnv;
199
+ /**
200
+ * Optional callback for inspecting or replacing provider payloads before sending.
201
+ * Return undefined to keep the payload unchanged.
202
+ */
203
+ onPayload?: (payload: unknown, model: ImagesModel<ImagesApi>) => unknown | undefined | Promise<unknown | undefined>;
204
+ /**
205
+ * Optional callback invoked after an HTTP response is received.
206
+ */
207
+ onResponse?: (response: ProviderResponse, model: ImagesModel<ImagesApi>) => void | Promise<void>;
208
+ /**
209
+ * Optional custom HTTP headers to include in API requests.
210
+ * Merged with provider defaults; can override default headers.
211
+ * A null value suppresses a provider/API default header with the same name.
212
+ */
213
+ headers?: ProviderHeaders;
214
+ /**
215
+ * HTTP request timeout in milliseconds for providers/SDKs that support it.
216
+ */
217
+ timeoutMs?: number;
218
+ /**
219
+ * Maximum retry attempts for providers/SDKs that support client-side retries.
220
+ */
221
+ maxRetries?: number;
222
+ /**
223
+ * Maximum delay in milliseconds to wait for a retry when the server requests a long wait.
224
+ * If the server's requested delay exceeds this value, the request fails immediately
225
+ * with an error containing the requested delay, allowing higher-level retry logic
226
+ * to handle it with user visibility.
227
+ * Default: 60000 (60 seconds). Set to 0 to disable the cap.
228
+ */
229
+ maxRetryDelayMs?: number;
230
+ /**
231
+ * Optional metadata to include in API requests.
232
+ * Providers extract the fields they understand and ignore the rest.
233
+ */
234
+ metadata?: Record<string, unknown>;
235
+ }
236
+ export type ProviderImagesOptions = ImagesOptions & Record<string, unknown>;
237
+ export interface SimpleStreamOptions extends StreamOptions {
238
+ reasoning?: ThinkingLevel;
239
+ /** Custom token budgets for thinking levels (token-based providers only) */
240
+ thinkingBudgets?: ThinkingBudgets;
241
+ }
242
+ export type StreamFunction<TApi extends Api = Api, TOptions extends StreamOptions = StreamOptions> = (model: Model<TApi>, context: Context, options?: TOptions) => AssistantMessageEventStream;
243
+ export type ImagesFunction<TApi extends ImagesApi = ImagesApi, TOptions extends ImagesOptions = ImagesOptions> = (model: ImagesModel<TApi>, context: ImagesContext, options?: TOptions) => Promise<AssistantImages>;
244
+ export interface TextSignatureV1 {
245
+ v: 1;
246
+ id: string;
247
+ phase?: "commentary" | "final_answer";
248
+ }
249
+ export interface TextContent {
250
+ type: "text";
251
+ text: string;
252
+ textSignature?: string;
253
+ }
254
+ export interface ThinkingContent {
255
+ type: "thinking";
256
+ thinking: string;
257
+ /** Epoch ms, stamped by the agent loop at stream-event receipt, best-effort. */
258
+ startedAt?: number;
259
+ /** Epoch ms, stamped by the agent loop at stream-event receipt, best-effort. */
260
+ endedAt?: number;
261
+ thinkingSignature?: string;
262
+ /** When true, the thinking content was redacted by safety filters. The opaque
263
+ * encrypted payload is stored in `thinkingSignature` so it can be passed back
264
+ * to the API for multi-turn continuity. */
265
+ redacted?: boolean;
266
+ }
267
+ export interface ImageContent {
268
+ type: "image";
269
+ data: string;
270
+ mimeType: string;
271
+ }
272
+ /** True when an ImageContent block actually carries video data (e.g. "video/mp4"). */
273
+ export declare function isVideoMimeType(mimeType: string): boolean;
274
+ export interface ToolCall {
275
+ type: "toolCall";
276
+ id: string;
277
+ name: string;
278
+ arguments: Record<string, any>;
279
+ /** Set by text tool-call middleware when a truncated call could not be recovered. Carriers of `incomplete` MUST NOT be executed. */
280
+ incomplete?: true;
281
+ /** Error explaining why an incomplete tool call could not be recovered. */
282
+ errorMessage?: string;
283
+ thoughtSignature?: string;
284
+ }
285
+ /**
286
+ * Provider-emitted content block whose semantics are owned by the originating
287
+ * provider. Surfaces server-side tool invocations (web_search), server-side
288
+ * tool results (web_search_tool_result), code execution traces, grounding
289
+ * metadata fragments, and any other vendor-specific block the core does not
290
+ * normalize.
291
+ *
292
+ * `subtype` mirrors the provider's wire `type` discriminator (e.g.
293
+ * "server_tool_use", "web_search_tool_result", "executableCode"). `raw` is
294
+ * the verbatim wire payload — extensions interpret it per provider+subtype.
295
+ *
296
+ * The owning provider id lives on the parent `AssistantMessage.provider`, not
297
+ * here, to avoid drift on replay.
298
+ *
299
+ * On replay across providers, `convertMessages` implementations MUST drop
300
+ * these blocks (they are not portable). This mirrors the existing
301
+ * `redacted_thinking` skip pattern.
302
+ */
303
+ export interface ProviderNativeContent {
304
+ type: "providerNative";
305
+ subtype: string;
306
+ raw: unknown;
307
+ }
308
+ export interface Usage {
309
+ input: number;
310
+ output: number;
311
+ cacheRead: number;
312
+ cacheWrite: number;
313
+ /** Subset of `cacheWrite` written with 1h retention. Only Anthropic reports this split. */
314
+ cacheWrite1h?: number;
315
+ /**
316
+ * Reasoning/thinking tokens, when the provider reports them. This is a subset of
317
+ * `output`: `output` already includes these tokens. Set to a number (possibly 0) by
318
+ * providers that expose a reasoning breakdown; left undefined by providers that don't.
319
+ */
320
+ reasoning?: number;
321
+ totalTokens: number;
322
+ cost: {
323
+ input: number;
324
+ output: number;
325
+ cacheRead: number;
326
+ cacheWrite: number;
327
+ total: number;
328
+ };
329
+ }
330
+ export type StopReason = "stop" | "length" | "toolUse" | "error" | "aborted";
331
+ export type AssistantStopDetails = {
332
+ type: "refusal";
333
+ explanation?: string;
334
+ } | {
335
+ type: "sensitive";
336
+ };
337
+ export interface UserMessage {
338
+ role: "user";
339
+ content: string | (TextContent | ImageContent)[];
340
+ timestamp: number;
341
+ }
342
+ export interface AssistantMessage {
343
+ role: "assistant";
344
+ content: (TextContent | ThinkingContent | ToolCall | ProviderNativeContent)[];
345
+ api: Api;
346
+ provider: ProviderId;
347
+ model: string;
348
+ responseModel?: string;
349
+ responseId?: string;
350
+ diagnostics?: AssistantMessageDiagnostic[];
351
+ usage: Usage;
352
+ stopReason: StopReason;
353
+ stopDetails?: AssistantStopDetails;
354
+ errorMessage?: string;
355
+ timestamp: number;
356
+ }
357
+ export interface ToolResultMessage<TDetails = any> {
358
+ role: "toolResult";
359
+ toolCallId: string;
360
+ toolName: string;
361
+ content: (TextContent | ImageContent)[];
362
+ details?: TDetails;
363
+ /** Usage from the tool execution itself, if available. Not part of main LLM context accounting. */
364
+ usage?: Usage;
365
+ /**
366
+ * Names from `Context.tools` that became available after this result.
367
+ * Providers with native deferred tool loading use this as the load point;
368
+ * other providers ignore it and use `Context.tools` normally.
369
+ */
370
+ addedToolNames?: string[];
371
+ isError: boolean;
372
+ timestamp: number;
373
+ }
374
+ export type Message = UserMessage | AssistantMessage | ToolResultMessage;
375
+ export type ImagesInputContent = TextContent | ImageContent;
376
+ export type ImagesOutputContent = TextContent | ImageContent;
377
+ export interface ImagesContext {
378
+ input: ImagesInputContent[];
379
+ }
380
+ export type ImagesStopReason = "stop" | "error" | "aborted";
381
+ export interface AssistantImages {
382
+ api: ImagesApi;
383
+ provider: ImagesProviderId;
384
+ model: string;
385
+ output: ImagesOutputContent[];
386
+ responseId?: string;
387
+ usage?: Usage;
388
+ stopReason: ImagesStopReason;
389
+ errorMessage?: string;
390
+ timestamp: number;
391
+ }
392
+ import type { TSchema } from "typebox";
393
+ export interface FreeformToolFormat {
394
+ type: "grammar";
395
+ syntax: "lark";
396
+ definition: string;
397
+ }
398
+ /** OpenAI grammar variants for constrained sampling. */
399
+ export type GrammarFormat = "openai_lark" | "openai_regex";
400
+ export type GrammarVariants = Partial<Record<GrammarFormat, string>>;
401
+ /**
402
+ * Optional provider-side constrained sampling configs for a tool.
403
+ *
404
+ * The `json_schema` value roughly maps to the concept of `strict` in APIs which is
405
+ * implemented as json-schema constrained sampling by APIs. Grammar variants let
406
+ * callers provide provider-specific encodings of the same intended language.
407
+ */
408
+ export type ConstrainedSamplingConfig = {
409
+ type: "json_schema";
410
+ strict: "prefer" | "require";
411
+ } | {
412
+ type: "grammar";
413
+ variants: GrammarVariants;
414
+ };
415
+ export interface Tool<TParameters extends TSchema = TSchema> {
416
+ name: string;
417
+ description: string;
418
+ parameters: TParameters;
419
+ freeform?: FreeformToolFormat;
420
+ constrainedSampling?: false | ConstrainedSamplingConfig;
421
+ }
422
+ export interface Context {
423
+ systemPrompt?: string;
424
+ messages: Message[];
425
+ tools?: Tool[];
426
+ }
427
+ /**
428
+ * Event protocol for AssistantMessageEventStream.
429
+ *
430
+ * Streams should emit `start` before partial updates, then terminate with either:
431
+ * - `done` carrying the final successful AssistantMessage, or
432
+ * - `error` carrying the final AssistantMessage with stopReason "error" or "aborted"
433
+ * and errorMessage.
434
+ */
435
+ export type AssistantMessageEvent = {
436
+ type: "start";
437
+ partial: AssistantMessage;
438
+ } | {
439
+ type: "text_start";
440
+ contentIndex: number;
441
+ partial: AssistantMessage;
442
+ } | {
443
+ type: "text_delta";
444
+ contentIndex: number;
445
+ delta: string;
446
+ partial: AssistantMessage;
447
+ } | {
448
+ type: "text_end";
449
+ contentIndex: number;
450
+ content: string;
451
+ partial: AssistantMessage;
452
+ } | {
453
+ type: "thinking_start";
454
+ contentIndex: number;
455
+ partial: AssistantMessage;
456
+ } | {
457
+ type: "thinking_delta";
458
+ contentIndex: number;
459
+ delta: string;
460
+ partial: AssistantMessage;
461
+ } | {
462
+ type: "thinking_end";
463
+ contentIndex: number;
464
+ content: string;
465
+ partial: AssistantMessage;
466
+ } | {
467
+ type: "toolcall_start";
468
+ contentIndex: number;
469
+ partial: AssistantMessage;
470
+ } | {
471
+ type: "toolcall_delta";
472
+ contentIndex: number;
473
+ delta: string;
474
+ partial: AssistantMessage;
475
+ }
476
+ /** Finalized - executable iff `incomplete !== true` on `toolCall`. */
477
+ | {
478
+ type: "toolcall_end";
479
+ contentIndex: number;
480
+ toolCall: ToolCall;
481
+ partial: AssistantMessage;
482
+ } | {
483
+ type: "done";
484
+ reason: Extract<StopReason, "stop" | "length" | "toolUse">;
485
+ message: AssistantMessage;
486
+ } | {
487
+ type: "error";
488
+ reason: Extract<StopReason, "aborted" | "error">;
489
+ error: AssistantMessage;
490
+ };
491
+ /**
492
+ * Compatibility settings for OpenAI-compatible completions APIs.
493
+ * Use this to override URL-based auto-detection for custom providers.
494
+ */
495
+ export interface OpenAICompletionsCompat {
496
+ /** Whether the provider supports the `store` field. Default: auto-detected from URL. */
497
+ supportsStore?: boolean;
498
+ /** Whether the provider supports the `developer` role (vs `system`). Default: auto-detected from URL. */
499
+ supportsDeveloperRole?: boolean;
500
+ /** Whether the provider supports `reasoning_effort`. Default: auto-detected from URL. */
501
+ supportsReasoningEffort?: boolean;
502
+ /** Whether the provider supports `stream_options: { include_usage: true }` for token usage in streaming responses. Default: true. */
503
+ supportsUsageInStreaming?: boolean;
504
+ /** Which field to use for max tokens. Default: auto-detected from URL. */
505
+ maxTokensField?: "max_completion_tokens" | "max_tokens";
506
+ /** Whether tool results require the `name` field. Default: auto-detected from URL. */
507
+ requiresToolResultName?: boolean;
508
+ /** Whether a user message after tool results requires an assistant message in between. Default: auto-detected from URL. */
509
+ requiresAssistantAfterToolResult?: boolean;
510
+ /** Whether thinking blocks must be converted to text blocks with <thinking> delimiters. Default: auto-detected from URL. */
511
+ requiresThinkingAsText?: boolean;
512
+ /** Whether all replayed assistant messages must include an empty reasoning_content field when reasoning is enabled. Default: auto-detected from URL. */
513
+ requiresReasoningContentOnAssistantMessages?: boolean;
514
+ /** Format for reasoning/thinking parameter. "openai" uses reasoning_effort, "openrouter" uses reasoning: { effort }, "deepseek" uses thinking: { type } plus reasoning_effort when supported, "together" uses reasoning: { enabled } plus reasoning_effort when supported, "zai" uses thinking: { type }, "qwen" uses top-level enable_thinking: boolean, "qwen-chat-template" uses chat_template_kwargs.enable_thinking and preserve_thinking, "chat-template" uses configurable chat_template_kwargs, "string-thinking" uses top-level thinking: string, and "ant-ling" uses reasoning: { effort } only when the mapped effort is non-null. Default: "openai". */
515
+ thinkingFormat?: "openai" | "openrouter" | "deepseek" | "together" | "zai" | "qwen" | "chat-template" | "qwen-chat-template" | "string-thinking" | "ant-ling";
516
+ /** Whether the provider accepts explicit disabled-thinking markers when thinking is off. Default: true. */
517
+ supportsDisabledThinking?: boolean;
518
+ /** Kwargs to send as `chat_template_kwargs` when `thinkingFormat` is `chat-template`. Use `{ "$var": "thinking.enabled" }` or `{ "$var": "thinking.effort" }` for pi-controlled thinking values. */
519
+ chatTemplateKwargs?: Record<string, ChatTemplateKwargValue>;
520
+ /** OpenRouter-compatible routing preferences sent as the `provider` request field. */
521
+ openRouterRouting?: OpenRouterRouting;
522
+ /** Vercel AI Gateway routing preferences. Only used when baseUrl points to Vercel AI Gateway. */
523
+ vercelGatewayRouting?: VercelGatewayRouting;
524
+ /** Whether z.ai supports top-level `tool_stream: true` for streaming tool call deltas. Default: false. */
525
+ zaiToolStream?: boolean;
526
+ /** Whether the provider supports OpenAI custom tools with Lark/regex grammar formats. When false, grammar-constrained tools fall back to normal function tools. Default: false; the generated model catalog enables it for capable models. */
527
+ supportsOpenAIGrammarTools?: boolean;
528
+ /** Whether the provider supports the `strict` field in tool definitions. Default: true. */
529
+ supportsStrictMode?: boolean;
530
+ /**
531
+ * Provider-specific JSON Schema flavor for tool parameters. `"moonshot-mfjs"`
532
+ * normalizes schemas for Moonshot / Kimi backends that enforce a stricter subset.
533
+ */
534
+ toolSchemaFlavor?: "moonshot-mfjs";
535
+ /**
536
+ * Tool call format for models that don't natively support tool calling.
537
+ * When set, the middleware will intercept tool calls and format them as text.
538
+ * Supported values: "hermes", "morph-xml", "xml" (deprecated alias for "morph-xml"), "yaml-xml", "gemma4-delimiter", "anthropic-xml", "antml"
539
+ */
540
+ toolCallFormat?: string;
541
+ /** Cache control convention for prompt caching. "anthropic" applies Anthropic-style `cache_control` markers to the system prompt, last tool definition, and last user, assistant, or tool-result text content. */
542
+ cacheControlFormat?: "anthropic";
543
+ /** Whether to send session-affinity data from `options.sessionId`. Default: false. */
544
+ sendSessionAffinityHeaders?: boolean;
545
+ /** Provider-specific deferred tool serialization mode. */
546
+ deferredToolsMode?: "kimi";
547
+ /** Session-affinity header format: `openai` sends `session_id`, `x-client-request-id`, and `x-session-affinity`; `openai-nosession` sends `x-client-request-id` and `x-session-affinity`; `openrouter` sends `x-session-id`. Does not affect the `prompt_cache_key` body param, which is governed by cache retention. Default: auto-detected. */
548
+ sessionAffinityFormat?: SessionAffinityFormat;
549
+ /** Whether the provider supports long prompt cache retention (`prompt_cache_retention: "24h"` or Anthropic-style `cache_control.ttl: "1h"`, depending on format). Default: true. */
550
+ supportsLongCacheRetention?: boolean;
551
+ }
552
+ /** Compatibility settings for OpenAI Responses APIs. */
553
+ export interface OpenAIResponsesCompat {
554
+ /** Whether the provider supports the `developer` role (vs `system`). Default: true. */
555
+ supportsDeveloperRole?: boolean;
556
+ /** Session-affinity header format: `openai` sends `session_id` and `x-client-request-id`; `openai-nosession` sends `x-client-request-id`; `openrouter` sends `x-session-id`. Does not affect the `prompt_cache_key` body param, which is governed by cache retention. Default: auto-detected. */
557
+ sessionAffinityFormat?: SessionAffinityFormat;
558
+ /** Whether the provider supports `prompt_cache_retention: "24h"`. Default: true. */
559
+ supportsLongCacheRetention?: boolean;
560
+ /** Whether the provider supports the OpenAI Responses WebSocket transport. Default: true for api.openai.com only. */
561
+ supportsWebSocket?: boolean;
562
+ /** Whether the provider supports the OpenAI Responses native `web_search_preview` tool. Default: true for api.openai.com only. */
563
+ supportsWebSearchPreview?: boolean;
564
+ /** Whether the provider supports strict JSON-schema function tools. Defaults are API-specific; generated OpenAI models enable it explicitly. */
565
+ supportsStrictMode?: boolean;
566
+ /** Whether to emit OpenAI custom tools with Lark/regex grammar formats. When false, grammar-constrained tools fall back to normal function tools. Default: false; the generated model catalog enables it for capable models. */
567
+ supportsOpenAIGrammarTools?: boolean;
568
+ /** Whether the model supports client-executed tool search for deferred tools. Default: false. */
569
+ supportsToolSearch?: boolean;
570
+ /** Whether the model accepts `prompt_cache_options` (OpenAI GPT-5.6+ explicit prompt caching). Older OpenAI models reject the parameter. Default: false. */
571
+ supportsExplicitPromptCacheMode?: boolean;
572
+ }
573
+ /** Compatibility settings for Anthropic Messages-compatible APIs. */
574
+ export interface AnthropicMessagesCompat {
575
+ /**
576
+ * Whether the provider accepts per-tool `eager_input_streaming`.
577
+ * When false, the Anthropic provider omits `tools[].eager_input_streaming`
578
+ * and sends the legacy `fine-grained-tool-streaming-2025-05-14` beta header
579
+ * for tool-enabled requests.
580
+ * Default: true.
581
+ */
582
+ supportsEagerToolInputStreaming?: boolean;
583
+ /** Whether the provider supports Anthropic long cache retention (`cache_control.ttl: "1h"`). Default: true. */
584
+ supportsLongCacheRetention?: boolean;
585
+ /**
586
+ * Whether to send the `x-session-affinity` header from `options.sessionId`
587
+ * when caching is enabled. Required for providers like Fireworks that use
588
+ * session affinity for prompt cache routing (requests to the same replica
589
+ * maximize cache hits).
590
+ * Default: false.
591
+ */
592
+ sendSessionAffinityHeaders?: boolean;
593
+ /**
594
+ * Whether the provider supports Anthropic-style `cache_control` markers on
595
+ * tool definitions. When false, `cache_control` is omitted from tool params.
596
+ * Some Anthropic-compatible providers (e.g., Fireworks) do not support this
597
+ * field on tools and may reject or ignore it.
598
+ * Default: true.
599
+ */
600
+ supportsCacheControlOnTools?: boolean;
601
+ /**
602
+ * Whether the provider accepts `thinking: { type: "disabled" }` when
603
+ * extended thinking is off. Some Anthropic-compatible providers support
604
+ * thinking but reject Anthropic's explicit disabled marker.
605
+ * Default: true.
606
+ */
607
+ supportsDisabledThinking?: boolean;
608
+ /**
609
+ * Whether the model accepts the Anthropic `temperature` request field.
610
+ * Claude Opus 4.7+ rejects non-default temperature values.
611
+ * Default: true.
612
+ */
613
+ supportsTemperature?: boolean;
614
+ /** Whether the model accepts Anthropic `tool_choice`. Default: true. */
615
+ supportsToolChoice?: boolean;
616
+ /**
617
+ * Whether the model accepts forced Anthropic tool choices (`any` or a named
618
+ * tool). Default: true, except Claude Fable/Mythos models.
619
+ */
620
+ supportsForcedToolChoice?: boolean;
621
+ /**
622
+ * Whether to force adaptive thinking (`thinking.type: "adaptive"` plus
623
+ * `output_config.effort`) regardless of the model id. Built-in models that
624
+ * require adaptive thinking set this in generated metadata. Custom
625
+ * Anthropic-compatible providers can set this to `true` for any model whose
626
+ * upstream requires the adaptive format. Set to `false` to opt out on
627
+ * overridden built-in models and disable model id/name inference.
628
+ * Default: infer from adaptive Claude model ids/names when possible.
629
+ */
630
+ forceAdaptiveThinking?: boolean;
631
+ /** Whether to replay empty thinking signatures as `signature: ""` instead of converting thinking to text. Default: false. */
632
+ allowEmptySignature?: boolean;
633
+ /** Whether the provider supports Anthropic strict tool schemas. Default: false; generated Anthropic models enable it explicitly. */
634
+ supportsStrictTools?: boolean;
635
+ /**
636
+ * How to replay thinking blocks that have no usable Anthropic signature.
637
+ * `"text"` demotes them to text; `"empty-signature"` preserves Anthropic's
638
+ * thinking shape with `signature: ""`. Defaults to `"text"`; the legacy
639
+ * `allowEmptySignature` setting remains a compatibility alias for
640
+ * `"empty-signature"`.
641
+ */
642
+ unsignedThinkingReplay?: "text" | "empty-signature";
643
+ /**
644
+ * Whether the provider supports deferred tools loaded by `tool_reference`
645
+ * blocks in tool results. Default: true for first-party Anthropic models
646
+ * except Haiku and models older than Claude 4.5; false for other providers.
647
+ */
648
+ supportsToolReferences?: boolean;
649
+ /**
650
+ * Whether the provider executes Anthropic server-side `web_search_*` native
651
+ * tools and accepts their `server_tool_use` / `web_search_tool_result`
652
+ * blocks on replay. Anthropic-compatible endpoints (e.g., kimi-coding) may
653
+ * run the search but reject the replayed server-tool blocks on the next
654
+ * request. When false, hook-injected `web_search_*` tools are stripped from
655
+ * the payload. Default: true only for the first-party Anthropic endpoint.
656
+ */
657
+ supportsWebSearch?: boolean;
658
+ }
659
+ /** Compatibility settings for Amazon Bedrock models. */
660
+ export interface BedrockCompat {
661
+ /** Whether the model supports Bedrock strict tool schemas. Default: false. */
662
+ supportsStrictMode?: boolean;
663
+ }
664
+ /**
665
+ * OpenRouter provider routing preferences.
666
+ * Controls which upstream providers OpenRouter routes requests to.
667
+ * Sent as the `provider` field in the OpenRouter API request body.
668
+ * @see https://openrouter.ai/docs/guides/routing/provider-selection
669
+ */
670
+ export interface OpenRouterRouting {
671
+ /** Whether to allow backup providers to serve requests. Default: true. */
672
+ allow_fallbacks?: boolean;
673
+ /** Whether to filter providers to only those that support all parameters in the request. Default: false. */
674
+ require_parameters?: boolean;
675
+ /** Data collection setting. "allow" (default): allow providers that may store/train on data. "deny": only use providers that don't collect user data. */
676
+ data_collection?: "deny" | "allow";
677
+ /** Whether to restrict routing to only ZDR (Zero Data Retention) endpoints. */
678
+ zdr?: boolean;
679
+ /** Whether to restrict routing to only models that allow text distillation. */
680
+ enforce_distillable_text?: boolean;
681
+ /** An ordered list of provider names/slugs to try in sequence, falling back to the next if unavailable. */
682
+ order?: string[];
683
+ /** List of provider names/slugs to exclusively allow for this request. */
684
+ only?: string[];
685
+ /** List of provider names/slugs to skip for this request. */
686
+ ignore?: string[];
687
+ /** A list of quantization levels to filter providers by (e.g., ["fp16", "bf16", "fp8", "fp6", "int8", "int4", "fp4", "fp32"]). */
688
+ quantizations?: string[];
689
+ /** Sorting strategy. Can be a string (e.g., "price", "throughput", "latency") or an object with `by` and `partition`. */
690
+ sort?: string | {
691
+ /** The sorting metric: "price", "throughput", "latency". */
692
+ by?: string;
693
+ /** Partitioning strategy: "model" (default) or "none". */
694
+ partition?: string | null;
695
+ };
696
+ /** Maximum price per million tokens (USD). */
697
+ max_price?: {
698
+ /** Price per million prompt tokens. */
699
+ prompt?: number | string;
700
+ /** Price per million completion tokens. */
701
+ completion?: number | string;
702
+ /** Price per image. */
703
+ image?: number | string;
704
+ /** Price per audio unit. */
705
+ audio?: number | string;
706
+ /** Price per request. */
707
+ request?: number | string;
708
+ };
709
+ /** Preferred minimum throughput (tokens/second). Can be a number (applies to p50) or an object with percentile-specific cutoffs. */
710
+ preferred_min_throughput?: number | {
711
+ /** Minimum tokens/second at the 50th percentile. */
712
+ p50?: number;
713
+ /** Minimum tokens/second at the 75th percentile. */
714
+ p75?: number;
715
+ /** Minimum tokens/second at the 90th percentile. */
716
+ p90?: number;
717
+ /** Minimum tokens/second at the 99th percentile. */
718
+ p99?: number;
719
+ };
720
+ /** Preferred maximum latency (seconds). Can be a number (applies to p50) or an object with percentile-specific cutoffs. */
721
+ preferred_max_latency?: number | {
722
+ /** Maximum latency in seconds at the 50th percentile. */
723
+ p50?: number;
724
+ /** Maximum latency in seconds at the 75th percentile. */
725
+ p75?: number;
726
+ /** Maximum latency in seconds at the 90th percentile. */
727
+ p90?: number;
728
+ /** Maximum latency in seconds at the 99th percentile. */
729
+ p99?: number;
730
+ };
731
+ }
732
+ /**
733
+ * Vercel AI Gateway routing preferences.
734
+ * Controls which upstream providers the gateway routes requests to.
735
+ * @see https://vercel.com/docs/ai-gateway/models-and-providers/provider-options
736
+ */
737
+ export interface VercelGatewayRouting {
738
+ /** List of provider slugs to exclusively use for this request (e.g., ["bedrock", "anthropic"]). */
739
+ only?: string[];
740
+ /** List of provider slugs to try in order (e.g., ["anthropic", "openai"]). */
741
+ order?: string[];
742
+ }
743
+ export interface ModelCostRates {
744
+ input: number;
745
+ output: number;
746
+ cacheRead: number;
747
+ cacheWrite: number;
748
+ }
749
+ export interface ModelCostTier extends ModelCostRates {
750
+ /** Use this tier for requests whose total input usage exceeds this token count. */
751
+ inputTokensAbove: number;
752
+ }
753
+ export interface ModelCost extends ModelCostRates {
754
+ /** Request-wide pricing tiers. The highest matching input threshold applies to the full request. */
755
+ tiers?: ModelCostTier[];
756
+ }
757
+ export interface ImagesModel<TApi extends ImagesApi> extends Omit<Model<Api>, "api" | "provider" | "reasoning" | "contextWindow" | "maxTokens" | "compat"> {
758
+ api: TApi;
759
+ provider: ImagesProviderId;
760
+ output: ("text" | "image")[];
761
+ }
762
+ //# sourceMappingURL=types.d.ts.map