@code-yeongyu/senpi-ai 2026.9.29 → 2026.10.1-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 (1007) hide show
  1. package/README.md +189 -19
  2. package/dist/api/anthropic-messages.js +168 -32
  3. package/dist/api/azure-openai-responses.js +23 -10
  4. package/dist/api/bedrock-converse-stream.js +16 -6
  5. package/dist/api/cloudflare-workers-ai-system-one.d.ts +4 -0
  6. package/dist/api/cloudflare-workers-ai-system-one.js +43 -0
  7. package/dist/api/cloudflare-workers-ai-system-one.lazy.d.ts +3 -0
  8. package/dist/api/cloudflare-workers-ai-system-one.lazy.js +4 -0
  9. package/dist/api/cloudflare.d.ts +2 -0
  10. package/dist/api/cloudflare.js +2 -0
  11. package/dist/api/context-room.d.ts +2 -2
  12. package/dist/api/cursor-agent.js +19 -10
  13. package/dist/api/devin-agent/request.d.ts +9 -9
  14. package/dist/api/devin-agent/request.js +14 -10
  15. package/dist/api/google-generative-ai.js +20 -80
  16. package/dist/api/google-shared.d.ts +13 -4
  17. package/dist/api/google-shared.js +54 -4
  18. package/dist/api/google-vertex.js +19 -62
  19. package/dist/api/lazy.js +2 -1
  20. package/dist/api/llama-cpp-classify.d.ts +33 -0
  21. package/dist/api/llama-cpp-classify.js +365 -0
  22. package/dist/api/llama-cpp-classify.lazy.d.ts +3 -0
  23. package/dist/api/llama-cpp-classify.lazy.js +4 -0
  24. package/dist/api/mistral-conversations.d.ts +1 -1
  25. package/dist/api/mistral-conversations.js +36 -29
  26. package/dist/api/openai-codex-responses.d.ts +1 -1
  27. package/dist/api/openai-codex-responses.js +72 -37
  28. package/dist/api/openai-completions.d.ts +3 -2
  29. package/dist/api/openai-completions.js +89 -58
  30. package/dist/api/openai-images-params.d.ts +2 -2
  31. package/dist/api/openai-images.d.ts +1 -1
  32. package/dist/api/openai-responses-shared.d.ts +31 -8
  33. package/dist/api/openai-responses-shared.js +119 -28
  34. package/dist/api/openai-responses.d.ts +1 -1
  35. package/dist/api/openai-responses.js +40 -32
  36. package/dist/api/openrouter-images.d.ts +2 -1
  37. package/dist/api/openrouter-images.js +1 -0
  38. package/dist/api/pi-messages.d.ts +3 -3
  39. package/dist/api/pi-messages.js +3 -2
  40. package/dist/api/simple-options.d.ts +2 -2
  41. package/dist/api/simple-options.js +1 -0
  42. package/dist/api/system-one-shared.d.ts +23 -0
  43. package/dist/api/system-one-shared.js +183 -0
  44. package/dist/api/transform-messages.js +5 -2
  45. package/dist/api/typesafe-system-one.d.ts +4 -0
  46. package/dist/api/typesafe-system-one.js +19 -0
  47. package/dist/api/typesafe-system-one.lazy.d.ts +3 -0
  48. package/dist/api/typesafe-system-one.lazy.js +4 -0
  49. package/dist/api-registry.d.ts +3 -3
  50. package/dist/auth/helpers.js +1 -1
  51. package/dist/auth/oauth/anthropic-callback-listener.js +1 -1
  52. package/dist/auth/oauth/callback-server.d.ts +55 -0
  53. package/dist/auth/oauth/callback-server.js +146 -0
  54. package/dist/auth/oauth/chatgpt-subscription.d.ts +1 -1
  55. package/dist/auth/oauth/chatgpt-subscription.js +20 -124
  56. package/dist/auth/oauth/devin-callback.js +1 -1
  57. package/dist/auth/oauth/load.d.ts +4 -0
  58. package/dist/auth/oauth/load.js +10 -0
  59. package/dist/auth/oauth/meta.d.ts +17 -0
  60. package/dist/auth/oauth/meta.js +190 -0
  61. package/dist/auth/oauth/openai-chatgpt.d.ts +9 -0
  62. package/dist/auth/oauth/openai-chatgpt.js +266 -0
  63. package/dist/auth/oauth/openrouter.d.ts +1 -1
  64. package/dist/auth/oauth/openrouter.js +19 -138
  65. package/dist/auth/oauth/radius.d.ts +1 -1
  66. package/dist/auth/oauth/radius.js +21 -89
  67. package/dist/auth/resolve.d.ts +3 -8
  68. package/dist/auth/resolve.js +3 -18
  69. package/dist/auth/types.d.ts +10 -1
  70. package/dist/bun-oauth.js +4 -0
  71. package/dist/cli.js +3 -1
  72. package/dist/compat.js +17 -14
  73. package/dist/env-api-keys.js +2 -0
  74. package/dist/image-models.d.ts +19 -8
  75. package/dist/image-models.js +14 -13
  76. package/dist/images-api-registry.d.ts +8 -8
  77. package/dist/images.d.ts +7 -2
  78. package/dist/images.js +5 -0
  79. package/dist/index.d.ts +2 -2
  80. package/dist/index.js +2 -2
  81. package/dist/model-catalog.d.ts +27 -9
  82. package/dist/model-catalog.js +24 -2
  83. package/dist/model.d.ts +13 -13
  84. package/dist/models-store.d.ts +3 -2
  85. package/dist/models.d.ts +106 -36
  86. package/dist/models.generated.d.ts +142 -42
  87. package/dist/models.generated.js +142 -42
  88. package/dist/models.js +180 -38
  89. package/dist/providers/alibaba-token-plan.models.d.ts +4 -2
  90. package/dist/providers/alibaba-token-plan.models.js +4 -2
  91. package/dist/providers/all.d.ts +72 -19
  92. package/dist/providers/all.js +28 -22
  93. package/dist/providers/amazon-bedrock.models.d.ts +4 -2
  94. package/dist/providers/amazon-bedrock.models.js +4 -2
  95. package/dist/providers/ant-ling.models.d.ts +4 -2
  96. package/dist/providers/ant-ling.models.js +4 -2
  97. package/dist/providers/anthropic.models.d.ts +4 -2
  98. package/dist/providers/anthropic.models.js +4 -2
  99. package/dist/providers/azure-openai-responses.models.d.ts +4 -2
  100. package/dist/providers/azure-openai-responses.models.js +4 -2
  101. package/dist/providers/bai.models.d.ts +4 -2
  102. package/dist/providers/bai.models.js +4 -2
  103. package/dist/providers/baseten.models.d.ts +4 -2
  104. package/dist/providers/baseten.models.js +4 -2
  105. package/dist/providers/cerebras.models.d.ts +4 -2
  106. package/dist/providers/cerebras.models.js +4 -2
  107. package/dist/providers/chatgpt-subscription.models.d.ts +4 -2
  108. package/dist/providers/chatgpt-subscription.models.js +4 -2
  109. package/dist/providers/cloudflare-ai-gateway.models.d.ts +4 -2
  110. package/dist/providers/cloudflare-ai-gateway.models.js +4 -2
  111. package/dist/providers/cloudflare-stream.d.ts +6 -2
  112. package/dist/providers/cloudflare-stream.js +6 -0
  113. package/dist/providers/cloudflare-workers-ai.js +10 -3
  114. package/dist/providers/cloudflare-workers-ai.models.d.ts +4 -2
  115. package/dist/providers/cloudflare-workers-ai.models.js +4 -2
  116. package/dist/providers/data/.manifest.json +1 -1
  117. package/dist/providers/data/alibaba-token-plan.json +1 -1
  118. package/dist/providers/data/amazon-bedrock.json +1 -1
  119. package/dist/providers/data/ant-ling.json +1 -1
  120. package/dist/providers/data/anthropic.json +1 -1
  121. package/dist/providers/data/azure-openai-responses.json +1 -1
  122. package/dist/providers/data/bai.json +1 -1
  123. package/dist/providers/data/baseten.json +1 -1
  124. package/dist/providers/data/cerebras.json +1 -1
  125. package/dist/providers/data/chatgpt-subscription.json +1 -1
  126. package/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  127. package/dist/providers/data/cloudflare-workers-ai.json +1 -1
  128. package/dist/providers/data/deepseek.json +1 -1
  129. package/dist/providers/data/fireworks.json +1 -1
  130. package/dist/providers/data/github-copilot.json +1 -1
  131. package/dist/providers/data/google-vertex.json +1 -1
  132. package/dist/providers/data/google.json +1 -1
  133. package/dist/providers/data/groq.json +1 -1
  134. package/dist/providers/data/huggingface.json +1 -1
  135. package/dist/providers/data/meta.json +1 -0
  136. package/dist/providers/data/minimax-cn.json +1 -1
  137. package/dist/providers/data/minimax.json +1 -1
  138. package/dist/providers/data/mistral.json +1 -1
  139. package/dist/providers/data/moonshotai-cn.json +1 -1
  140. package/dist/providers/data/moonshotai.json +1 -1
  141. package/dist/providers/data/nvidia.json +1 -1
  142. package/dist/providers/data/openai.json +1 -1
  143. package/dist/providers/data/opencode-go.json +1 -1
  144. package/dist/providers/data/opencode.json +1 -1
  145. package/dist/providers/data/opengateway.json +1 -1
  146. package/dist/providers/data/openrouter.json +1 -1
  147. package/dist/providers/data/qwen-token-plan-cn.json +1 -1
  148. package/dist/providers/data/qwen-token-plan-individual.json +1 -1
  149. package/dist/providers/data/qwen-token-plan.json +1 -1
  150. package/dist/providers/data/radius.json +1 -0
  151. package/dist/providers/data/together.json +1 -1
  152. package/dist/providers/data/typesafe.json +1 -0
  153. package/dist/providers/data/venice.json +1 -1
  154. package/dist/providers/data/vercel-ai-gateway.json +1 -1
  155. package/dist/providers/data/xai.json +1 -1
  156. package/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
  157. package/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
  158. package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
  159. package/dist/providers/data/xiaomi.json +1 -1
  160. package/dist/providers/data/zai-coding-cn.json +1 -1
  161. package/dist/providers/data/zai.json +1 -1
  162. package/dist/providers/deepseek.models.d.ts +4 -2
  163. package/dist/providers/deepseek.models.js +4 -2
  164. package/dist/providers/faux.d.ts +7 -2
  165. package/dist/providers/faux.js +31 -22
  166. package/dist/providers/fireworks.models.d.ts +4 -2
  167. package/dist/providers/fireworks.models.js +4 -2
  168. package/dist/providers/github-copilot.models.d.ts +4 -2
  169. package/dist/providers/github-copilot.models.js +4 -2
  170. package/dist/providers/google-vertex.models.d.ts +4 -2
  171. package/dist/providers/google-vertex.models.js +4 -2
  172. package/dist/providers/google.models.d.ts +4 -2
  173. package/dist/providers/google.models.js +4 -2
  174. package/dist/providers/groq.models.d.ts +4 -2
  175. package/dist/providers/groq.models.js +4 -2
  176. package/dist/providers/huggingface.models.d.ts +4 -2
  177. package/dist/providers/huggingface.models.js +4 -2
  178. package/dist/providers/images/register-builtins.d.ts +2 -2
  179. package/dist/providers/kimi-coding.models.d.ts +54 -7
  180. package/dist/providers/kimi-coding.models.js +34 -7
  181. package/dist/providers/meta.d.ts +3 -0
  182. package/dist/providers/meta.js +24 -0
  183. package/dist/providers/meta.models.d.ts +6 -0
  184. package/dist/providers/meta.models.js +8 -0
  185. package/dist/providers/minimax-cn.models.d.ts +4 -2
  186. package/dist/providers/minimax-cn.models.js +4 -2
  187. package/dist/providers/minimax.models.d.ts +4 -2
  188. package/dist/providers/minimax.models.js +4 -2
  189. package/dist/providers/mistral.models.d.ts +4 -2
  190. package/dist/providers/mistral.models.js +4 -2
  191. package/dist/providers/moonshotai-cn.models.d.ts +4 -2
  192. package/dist/providers/moonshotai-cn.models.js +4 -2
  193. package/dist/providers/moonshotai.models.d.ts +4 -2
  194. package/dist/providers/moonshotai.models.js +4 -2
  195. package/dist/providers/nvidia.models.d.ts +4 -2
  196. package/dist/providers/nvidia.models.js +4 -2
  197. package/dist/providers/openai.js +4 -2
  198. package/dist/providers/openai.models.d.ts +4 -2
  199. package/dist/providers/openai.models.js +4 -2
  200. package/dist/providers/opencode-go.models.d.ts +4 -2
  201. package/dist/providers/opencode-go.models.js +4 -2
  202. package/dist/providers/opencode.d.ts +3 -1
  203. package/dist/providers/opencode.js +5 -2
  204. package/dist/providers/opencode.models.d.ts +4 -2
  205. package/dist/providers/opencode.models.js +4 -2
  206. package/dist/providers/opengateway.models.d.ts +4 -2
  207. package/dist/providers/opengateway.models.js +4 -2
  208. package/dist/providers/openrouter.js +11 -2
  209. package/dist/providers/openrouter.models.d.ts +4 -2
  210. package/dist/providers/openrouter.models.js +4 -2
  211. package/dist/providers/qwen-token-plan-cn.models.d.ts +4 -2
  212. package/dist/providers/qwen-token-plan-cn.models.js +4 -2
  213. package/dist/providers/qwen-token-plan-individual.models.d.ts +4 -2
  214. package/dist/providers/qwen-token-plan-individual.models.js +4 -2
  215. package/dist/providers/qwen-token-plan.models.d.ts +4 -2
  216. package/dist/providers/qwen-token-plan.models.js +4 -2
  217. package/dist/providers/radius.js +19 -5
  218. package/dist/providers/radius.models.d.ts +6 -0
  219. package/dist/providers/radius.models.js +8 -0
  220. package/dist/providers/together.models.d.ts +4 -2
  221. package/dist/providers/together.models.js +4 -2
  222. package/dist/providers/typesafe.d.ts +3 -0
  223. package/dist/providers/typesafe.js +18 -0
  224. package/dist/providers/typesafe.models.d.ts +6 -0
  225. package/dist/providers/typesafe.models.js +8 -0
  226. package/dist/providers/venice.models.d.ts +4 -2
  227. package/dist/providers/venice.models.js +4 -2
  228. package/dist/providers/vercel-ai-gateway.js +5 -2
  229. package/dist/providers/vercel-ai-gateway.models.d.ts +4 -2
  230. package/dist/providers/vercel-ai-gateway.models.js +4 -2
  231. package/dist/providers/xai.models.d.ts +4 -2
  232. package/dist/providers/xai.models.js +4 -2
  233. package/dist/providers/xiaomi-token-plan-ams.models.d.ts +4 -2
  234. package/dist/providers/xiaomi-token-plan-ams.models.js +4 -2
  235. package/dist/providers/xiaomi-token-plan-cn.models.d.ts +4 -2
  236. package/dist/providers/xiaomi-token-plan-cn.models.js +4 -2
  237. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts +4 -2
  238. package/dist/providers/xiaomi-token-plan-sgp.models.js +4 -2
  239. package/dist/providers/xiaomi.models.d.ts +4 -2
  240. package/dist/providers/xiaomi.models.js +4 -2
  241. package/dist/providers/zai-coding-cn.models.d.ts +4 -2
  242. package/dist/providers/zai-coding-cn.models.js +4 -2
  243. package/dist/providers/zai.models.d.ts +4 -2
  244. package/dist/providers/zai.models.js +4 -2
  245. package/dist/tool-call-middleware/context-transformer.d.ts +8 -5
  246. package/dist/tool-call-middleware/context-transformer.js +44 -15
  247. package/dist/types.d.ts +262 -28
  248. package/dist/utils/diagnostics.d.ts +3 -2
  249. package/dist/utils/estimate.d.ts +2 -2
  250. package/dist/utils/estimate.js +22 -30
  251. package/dist/utils/headers.d.ts +1 -1
  252. package/dist/utils/headers.js +10 -8
  253. package/dist/utils/model-operations.d.ts +11 -0
  254. package/dist/utils/model-operations.js +47 -0
  255. package/dist/utils/models-error.d.ts +8 -0
  256. package/dist/utils/models-error.js +18 -0
  257. package/dist/utils/overflow.d.ts +1 -0
  258. package/dist/utils/overflow.js +11 -5
  259. package/dist/utils/prompt-cache-ttl.js +43 -5
  260. package/dist/utils/provider-failure-description.d.ts +7 -0
  261. package/dist/utils/provider-failure-description.js +21 -0
  262. package/dist/utils/retry.js +18 -0
  263. package/dist/utils/text.d.ts +9 -1
  264. package/dist/utils/text.js +26 -0
  265. package/dist/utils/tool-schema-compat.d.ts +2 -0
  266. package/dist/utils/tool-schema-compat.js +28 -9
  267. package/dist/utils/transcript.d.ts +85 -0
  268. package/dist/utils/transcript.js +205 -0
  269. package/package.json +4 -4
  270. package/dist/api/anthropic-messages.d.ts.map +0 -1
  271. package/dist/api/anthropic-messages.js.map +0 -1
  272. package/dist/api/anthropic-messages.lazy.d.ts.map +0 -1
  273. package/dist/api/anthropic-messages.lazy.js.map +0 -1
  274. package/dist/api/anthropic-tool-pairs.d.ts.map +0 -1
  275. package/dist/api/anthropic-tool-pairs.js.map +0 -1
  276. package/dist/api/anthropic-tool-references.d.ts.map +0 -1
  277. package/dist/api/anthropic-tool-references.js.map +0 -1
  278. package/dist/api/azure-openai-responses.d.ts.map +0 -1
  279. package/dist/api/azure-openai-responses.js.map +0 -1
  280. package/dist/api/azure-openai-responses.lazy.d.ts.map +0 -1
  281. package/dist/api/azure-openai-responses.lazy.js.map +0 -1
  282. package/dist/api/bedrock-converse-stream.d.ts.map +0 -1
  283. package/dist/api/bedrock-converse-stream.js.map +0 -1
  284. package/dist/api/bedrock-converse-stream.lazy.d.ts.map +0 -1
  285. package/dist/api/bedrock-converse-stream.lazy.js.map +0 -1
  286. package/dist/api/cloudflare-ai-binding.d.ts.map +0 -1
  287. package/dist/api/cloudflare-ai-binding.js.map +0 -1
  288. package/dist/api/cloudflare.d.ts.map +0 -1
  289. package/dist/api/cloudflare.js.map +0 -1
  290. package/dist/api/constrained-sampling.d.ts.map +0 -1
  291. package/dist/api/constrained-sampling.js.map +0 -1
  292. package/dist/api/context-room.d.ts.map +0 -1
  293. package/dist/api/context-room.js.map +0 -1
  294. package/dist/api/cursor-agent/deterministic-id.d.ts.map +0 -1
  295. package/dist/api/cursor-agent/deterministic-id.js.map +0 -1
  296. package/dist/api/cursor-agent/exec-lifecycle.d.ts.map +0 -1
  297. package/dist/api/cursor-agent/exec-lifecycle.js.map +0 -1
  298. package/dist/api/cursor-agent/exec-modern.d.ts.map +0 -1
  299. package/dist/api/cursor-agent/exec-modern.js.map +0 -1
  300. package/dist/api/cursor-agent/gen/agent_pb.d.ts.map +0 -1
  301. package/dist/api/cursor-agent/gen/agent_pb.js.map +0 -1
  302. package/dist/api/cursor-agent/measure.d.ts.map +0 -1
  303. package/dist/api/cursor-agent/measure.js.map +0 -1
  304. package/dist/api/cursor-agent/pi-args.d.ts.map +0 -1
  305. package/dist/api/cursor-agent/pi-args.js.map +0 -1
  306. package/dist/api/cursor-agent/reasoning-params.d.ts.map +0 -1
  307. package/dist/api/cursor-agent/reasoning-params.js.map +0 -1
  308. package/dist/api/cursor-agent/stream-retry.d.ts.map +0 -1
  309. package/dist/api/cursor-agent/stream-retry.js.map +0 -1
  310. package/dist/api/cursor-agent/types.d.ts.map +0 -1
  311. package/dist/api/cursor-agent/types.js.map +0 -1
  312. package/dist/api/cursor-agent.d.ts.map +0 -1
  313. package/dist/api/cursor-agent.js.map +0 -1
  314. package/dist/api/cursor-agent.lazy.d.ts.map +0 -1
  315. package/dist/api/cursor-agent.lazy.js.map +0 -1
  316. package/dist/api/cursor-conversation-rotation.d.ts.map +0 -1
  317. package/dist/api/cursor-conversation-rotation.js.map +0 -1
  318. package/dist/api/cursor-task-args.d.ts.map +0 -1
  319. package/dist/api/cursor-task-args.js.map +0 -1
  320. package/dist/api/devin-agent/discovery.d.ts.map +0 -1
  321. package/dist/api/devin-agent/discovery.js.map +0 -1
  322. package/dist/api/devin-agent/frames.d.ts.map +0 -1
  323. package/dist/api/devin-agent/frames.js.map +0 -1
  324. package/dist/api/devin-agent/gen/cascade_pb.d.ts.map +0 -1
  325. package/dist/api/devin-agent/gen/cascade_pb.js.map +0 -1
  326. package/dist/api/devin-agent/metadata.d.ts.map +0 -1
  327. package/dist/api/devin-agent/metadata.js.map +0 -1
  328. package/dist/api/devin-agent/paths.d.ts.map +0 -1
  329. package/dist/api/devin-agent/paths.js.map +0 -1
  330. package/dist/api/devin-agent/request.d.ts.map +0 -1
  331. package/dist/api/devin-agent/request.js.map +0 -1
  332. package/dist/api/devin-agent/stream-state.d.ts.map +0 -1
  333. package/dist/api/devin-agent/stream-state.js.map +0 -1
  334. package/dist/api/devin-agent/trailer.d.ts.map +0 -1
  335. package/dist/api/devin-agent/trailer.js.map +0 -1
  336. package/dist/api/devin-agent/types.d.ts.map +0 -1
  337. package/dist/api/devin-agent/types.js.map +0 -1
  338. package/dist/api/devin-agent/unary.d.ts.map +0 -1
  339. package/dist/api/devin-agent/unary.js.map +0 -1
  340. package/dist/api/devin-agent/wire.d.ts.map +0 -1
  341. package/dist/api/devin-agent/wire.js.map +0 -1
  342. package/dist/api/devin-agent.d.ts.map +0 -1
  343. package/dist/api/devin-agent.js.map +0 -1
  344. package/dist/api/devin-agent.lazy.d.ts.map +0 -1
  345. package/dist/api/devin-agent.lazy.js.map +0 -1
  346. package/dist/api/github-copilot-endpoint.d.ts.map +0 -1
  347. package/dist/api/github-copilot-endpoint.js.map +0 -1
  348. package/dist/api/github-copilot-errors.d.ts.map +0 -1
  349. package/dist/api/github-copilot-errors.js.map +0 -1
  350. package/dist/api/github-copilot-headers.d.ts.map +0 -1
  351. package/dist/api/github-copilot-headers.js.map +0 -1
  352. package/dist/api/google-generative-ai.d.ts.map +0 -1
  353. package/dist/api/google-generative-ai.js.map +0 -1
  354. package/dist/api/google-generative-ai.lazy.d.ts.map +0 -1
  355. package/dist/api/google-generative-ai.lazy.js.map +0 -1
  356. package/dist/api/google-shared.d.ts.map +0 -1
  357. package/dist/api/google-shared.js.map +0 -1
  358. package/dist/api/google-vertex.d.ts.map +0 -1
  359. package/dist/api/google-vertex.js.map +0 -1
  360. package/dist/api/google-vertex.lazy.d.ts.map +0 -1
  361. package/dist/api/google-vertex.lazy.js.map +0 -1
  362. package/dist/api/lazy.d.ts.map +0 -1
  363. package/dist/api/lazy.js.map +0 -1
  364. package/dist/api/mistral-conversations.d.ts.map +0 -1
  365. package/dist/api/mistral-conversations.js.map +0 -1
  366. package/dist/api/mistral-conversations.lazy.d.ts.map +0 -1
  367. package/dist/api/mistral-conversations.lazy.js.map +0 -1
  368. package/dist/api/openai-client-auth.d.ts.map +0 -1
  369. package/dist/api/openai-client-auth.js.map +0 -1
  370. package/dist/api/openai-codex-responses/fallback-state.d.ts.map +0 -1
  371. package/dist/api/openai-codex-responses/fallback-state.js.map +0 -1
  372. package/dist/api/openai-codex-responses/reasoning.d.ts.map +0 -1
  373. package/dist/api/openai-codex-responses/reasoning.js.map +0 -1
  374. package/dist/api/openai-codex-responses.d.ts.map +0 -1
  375. package/dist/api/openai-codex-responses.js.map +0 -1
  376. package/dist/api/openai-codex-responses.lazy.d.ts.map +0 -1
  377. package/dist/api/openai-codex-responses.lazy.js.map +0 -1
  378. package/dist/api/openai-completions.d.ts.map +0 -1
  379. package/dist/api/openai-completions.js.map +0 -1
  380. package/dist/api/openai-completions.lazy.d.ts.map +0 -1
  381. package/dist/api/openai-completions.lazy.js.map +0 -1
  382. package/dist/api/openai-images-edit.d.ts.map +0 -1
  383. package/dist/api/openai-images-edit.js.map +0 -1
  384. package/dist/api/openai-images-params.d.ts.map +0 -1
  385. package/dist/api/openai-images-params.js.map +0 -1
  386. package/dist/api/openai-images-result.d.ts.map +0 -1
  387. package/dist/api/openai-images-result.js.map +0 -1
  388. package/dist/api/openai-images.d.ts.map +0 -1
  389. package/dist/api/openai-images.js.map +0 -1
  390. package/dist/api/openai-images.lazy.d.ts.map +0 -1
  391. package/dist/api/openai-images.lazy.js.map +0 -1
  392. package/dist/api/openai-prompt-cache.d.ts.map +0 -1
  393. package/dist/api/openai-prompt-cache.js.map +0 -1
  394. package/dist/api/openai-responses-prompt-cache.d.ts.map +0 -1
  395. package/dist/api/openai-responses-prompt-cache.js.map +0 -1
  396. package/dist/api/openai-responses-shared.d.ts.map +0 -1
  397. package/dist/api/openai-responses-shared.js.map +0 -1
  398. package/dist/api/openai-responses.d.ts.map +0 -1
  399. package/dist/api/openai-responses.js.map +0 -1
  400. package/dist/api/openai-responses.lazy.d.ts.map +0 -1
  401. package/dist/api/openai-responses.lazy.js.map +0 -1
  402. package/dist/api/openrouter-images.d.ts.map +0 -1
  403. package/dist/api/openrouter-images.js.map +0 -1
  404. package/dist/api/openrouter-images.lazy.d.ts.map +0 -1
  405. package/dist/api/openrouter-images.lazy.js.map +0 -1
  406. package/dist/api/pi-messages.d.ts.map +0 -1
  407. package/dist/api/pi-messages.js.map +0 -1
  408. package/dist/api/pi-messages.lazy.d.ts.map +0 -1
  409. package/dist/api/pi-messages.lazy.js.map +0 -1
  410. package/dist/api/prompt-cache-warmers.d.ts.map +0 -1
  411. package/dist/api/prompt-cache-warmers.js.map +0 -1
  412. package/dist/api/responses-completion-grace.d.ts.map +0 -1
  413. package/dist/api/responses-completion-grace.js.map +0 -1
  414. package/dist/api/simple-options.d.ts.map +0 -1
  415. package/dist/api/simple-options.js.map +0 -1
  416. package/dist/api/transform-messages.d.ts.map +0 -1
  417. package/dist/api/transform-messages.js.map +0 -1
  418. package/dist/api/warm-prompt-cache.d.ts.map +0 -1
  419. package/dist/api/warm-prompt-cache.js.map +0 -1
  420. package/dist/api/websocket-liveness.d.ts.map +0 -1
  421. package/dist/api/websocket-liveness.js.map +0 -1
  422. package/dist/api/websocket-transport-failure.d.ts.map +0 -1
  423. package/dist/api/websocket-transport-failure.js.map +0 -1
  424. package/dist/api-registry.d.ts.map +0 -1
  425. package/dist/api-registry.js.map +0 -1
  426. package/dist/auth/context.d.ts.map +0 -1
  427. package/dist/auth/context.js.map +0 -1
  428. package/dist/auth/credential-store.d.ts.map +0 -1
  429. package/dist/auth/credential-store.js.map +0 -1
  430. package/dist/auth/headers.d.ts.map +0 -1
  431. package/dist/auth/headers.js.map +0 -1
  432. package/dist/auth/helpers.d.ts.map +0 -1
  433. package/dist/auth/helpers.js.map +0 -1
  434. package/dist/auth/oauth/anthropic-callback-listener.d.ts.map +0 -1
  435. package/dist/auth/oauth/anthropic-callback-listener.js.map +0 -1
  436. package/dist/auth/oauth/anthropic.d.ts.map +0 -1
  437. package/dist/auth/oauth/anthropic.js.map +0 -1
  438. package/dist/auth/oauth/authorization-input.d.ts.map +0 -1
  439. package/dist/auth/oauth/authorization-input.js.map +0 -1
  440. package/dist/auth/oauth/chatgpt-subscription.d.ts.map +0 -1
  441. package/dist/auth/oauth/chatgpt-subscription.js.map +0 -1
  442. package/dist/auth/oauth/cursor.d.ts.map +0 -1
  443. package/dist/auth/oauth/cursor.js.map +0 -1
  444. package/dist/auth/oauth/device-code.d.ts.map +0 -1
  445. package/dist/auth/oauth/device-code.js.map +0 -1
  446. package/dist/auth/oauth/devin-callback.d.ts.map +0 -1
  447. package/dist/auth/oauth/devin-callback.js.map +0 -1
  448. package/dist/auth/oauth/devin-token.d.ts.map +0 -1
  449. package/dist/auth/oauth/devin-token.js.map +0 -1
  450. package/dist/auth/oauth/devin.d.ts.map +0 -1
  451. package/dist/auth/oauth/devin.js.map +0 -1
  452. package/dist/auth/oauth/error-details.d.ts.map +0 -1
  453. package/dist/auth/oauth/error-details.js.map +0 -1
  454. package/dist/auth/oauth/github-copilot-model-catalog.d.ts.map +0 -1
  455. package/dist/auth/oauth/github-copilot-model-catalog.js.map +0 -1
  456. package/dist/auth/oauth/github-copilot.d.ts.map +0 -1
  457. package/dist/auth/oauth/github-copilot.js.map +0 -1
  458. package/dist/auth/oauth/kimi-coding.d.ts.map +0 -1
  459. package/dist/auth/oauth/kimi-coding.js.map +0 -1
  460. package/dist/auth/oauth/kimi-identity.d.ts.map +0 -1
  461. package/dist/auth/oauth/kimi-identity.js.map +0 -1
  462. package/dist/auth/oauth/kimi-region.d.ts.map +0 -1
  463. package/dist/auth/oauth/kimi-region.js.map +0 -1
  464. package/dist/auth/oauth/load.d.ts.map +0 -1
  465. package/dist/auth/oauth/load.js.map +0 -1
  466. package/dist/auth/oauth/oauth-page.d.ts.map +0 -1
  467. package/dist/auth/oauth/oauth-page.js.map +0 -1
  468. package/dist/auth/oauth/openrouter.d.ts.map +0 -1
  469. package/dist/auth/oauth/openrouter.js.map +0 -1
  470. package/dist/auth/oauth/pkce.d.ts.map +0 -1
  471. package/dist/auth/oauth/pkce.js.map +0 -1
  472. package/dist/auth/oauth/radius.d.ts.map +0 -1
  473. package/dist/auth/oauth/radius.js.map +0 -1
  474. package/dist/auth/oauth/xai.d.ts.map +0 -1
  475. package/dist/auth/oauth/xai.js.map +0 -1
  476. package/dist/auth/oauth-refresh.d.ts.map +0 -1
  477. package/dist/auth/oauth-refresh.js.map +0 -1
  478. package/dist/auth/pool/classify.d.ts.map +0 -1
  479. package/dist/auth/pool/classify.js.map +0 -1
  480. package/dist/auth/pool/failover.d.ts.map +0 -1
  481. package/dist/auth/pool/failover.js.map +0 -1
  482. package/dist/auth/pool/select.d.ts.map +0 -1
  483. package/dist/auth/pool/select.js.map +0 -1
  484. package/dist/auth/pool/slots.d.ts.map +0 -1
  485. package/dist/auth/pool/slots.js.map +0 -1
  486. package/dist/auth/refresh-credential.d.ts.map +0 -1
  487. package/dist/auth/refresh-credential.js.map +0 -1
  488. package/dist/auth/resolve.d.ts.map +0 -1
  489. package/dist/auth/resolve.js.map +0 -1
  490. package/dist/auth/types.d.ts.map +0 -1
  491. package/dist/auth/types.js.map +0 -1
  492. package/dist/bedrock-provider.d.ts.map +0 -1
  493. package/dist/bedrock-provider.js.map +0 -1
  494. package/dist/bun-oauth.d.ts.map +0 -1
  495. package/dist/bun-oauth.js.map +0 -1
  496. package/dist/cli.d.ts.map +0 -1
  497. package/dist/cli.js.map +0 -1
  498. package/dist/compat/extension-oauth-types.d.ts.map +0 -1
  499. package/dist/compat/extension-oauth-types.js.map +0 -1
  500. package/dist/compat.d.ts.map +0 -1
  501. package/dist/compat.js.map +0 -1
  502. package/dist/context-provenance.d.ts.map +0 -1
  503. package/dist/context-provenance.js.map +0 -1
  504. package/dist/cursor/catalog-grouping.d.ts.map +0 -1
  505. package/dist/cursor/catalog-grouping.js.map +0 -1
  506. package/dist/cursor/composer-prompt.d.ts.map +0 -1
  507. package/dist/cursor/composer-prompt.js.map +0 -1
  508. package/dist/cursor/context-limit-store.d.ts.map +0 -1
  509. package/dist/cursor/context-limit-store.js.map +0 -1
  510. package/dist/cursor/model-capabilities.d.ts.map +0 -1
  511. package/dist/cursor/model-capabilities.js.map +0 -1
  512. package/dist/cursor/selection-descriptor.d.ts.map +0 -1
  513. package/dist/cursor/selection-descriptor.js.map +0 -1
  514. package/dist/cursor/store-migration.d.ts.map +0 -1
  515. package/dist/cursor/store-migration.js.map +0 -1
  516. package/dist/cursor-agent-provider.d.ts.map +0 -1
  517. package/dist/cursor-agent-provider.js.map +0 -1
  518. package/dist/devin-provider.d.ts.map +0 -1
  519. package/dist/devin-provider.js.map +0 -1
  520. package/dist/endpoint-reasoning-efforts.d.ts.map +0 -1
  521. package/dist/endpoint-reasoning-efforts.js.map +0 -1
  522. package/dist/env-api-keys.d.ts.map +0 -1
  523. package/dist/env-api-keys.js.map +0 -1
  524. package/dist/image-models.d.ts.map +0 -1
  525. package/dist/image-models.generated.d.ts +0 -925
  526. package/dist/image-models.generated.d.ts.map +0 -1
  527. package/dist/image-models.generated.js +0 -927
  528. package/dist/image-models.generated.js.map +0 -1
  529. package/dist/image-models.js.map +0 -1
  530. package/dist/images-api-registry.d.ts.map +0 -1
  531. package/dist/images-api-registry.js.map +0 -1
  532. package/dist/images-models.d.ts +0 -95
  533. package/dist/images-models.d.ts.map +0 -1
  534. package/dist/images-models.js +0 -141
  535. package/dist/images-models.js.map +0 -1
  536. package/dist/images.d.ts.map +0 -1
  537. package/dist/images.js.map +0 -1
  538. package/dist/index.d.ts.map +0 -1
  539. package/dist/index.js.map +0 -1
  540. package/dist/legacy-api-aliases.d.ts.map +0 -1
  541. package/dist/legacy-api-aliases.js.map +0 -1
  542. package/dist/legacy-provider-ids.d.ts.map +0 -1
  543. package/dist/legacy-provider-ids.js.map +0 -1
  544. package/dist/model-catalog.d.ts.map +0 -1
  545. package/dist/model-catalog.js.map +0 -1
  546. package/dist/model.d.ts.map +0 -1
  547. package/dist/model.js.map +0 -1
  548. package/dist/models-store.d.ts.map +0 -1
  549. package/dist/models-store.js.map +0 -1
  550. package/dist/models.d.ts.map +0 -1
  551. package/dist/models.generated.d.ts.map +0 -1
  552. package/dist/models.generated.js.map +0 -1
  553. package/dist/models.js.map +0 -1
  554. package/dist/node/provider-scope.d.ts.map +0 -1
  555. package/dist/node/provider-scope.js.map +0 -1
  556. package/dist/oauth.d.ts.map +0 -1
  557. package/dist/oauth.js.map +0 -1
  558. package/dist/openai-responses-compat.d.ts.map +0 -1
  559. package/dist/openai-responses-compat.js.map +0 -1
  560. package/dist/provider-diagnostic.d.ts.map +0 -1
  561. package/dist/provider-diagnostic.js.map +0 -1
  562. package/dist/providers/alibaba-token-plan.d.ts.map +0 -1
  563. package/dist/providers/alibaba-token-plan.js.map +0 -1
  564. package/dist/providers/alibaba-token-plan.models.d.ts.map +0 -1
  565. package/dist/providers/alibaba-token-plan.models.js.map +0 -1
  566. package/dist/providers/all.d.ts.map +0 -1
  567. package/dist/providers/all.js.map +0 -1
  568. package/dist/providers/amazon-bedrock.d.ts.map +0 -1
  569. package/dist/providers/amazon-bedrock.js.map +0 -1
  570. package/dist/providers/amazon-bedrock.models.d.ts.map +0 -1
  571. package/dist/providers/amazon-bedrock.models.js.map +0 -1
  572. package/dist/providers/ant-ling.d.ts.map +0 -1
  573. package/dist/providers/ant-ling.js.map +0 -1
  574. package/dist/providers/ant-ling.models.d.ts.map +0 -1
  575. package/dist/providers/ant-ling.models.js.map +0 -1
  576. package/dist/providers/anthropic.d.ts.map +0 -1
  577. package/dist/providers/anthropic.js.map +0 -1
  578. package/dist/providers/anthropic.models.d.ts.map +0 -1
  579. package/dist/providers/anthropic.models.js.map +0 -1
  580. package/dist/providers/azure-openai-responses.d.ts.map +0 -1
  581. package/dist/providers/azure-openai-responses.js.map +0 -1
  582. package/dist/providers/azure-openai-responses.models.d.ts.map +0 -1
  583. package/dist/providers/azure-openai-responses.models.js.map +0 -1
  584. package/dist/providers/bai-stream.d.ts.map +0 -1
  585. package/dist/providers/bai-stream.js.map +0 -1
  586. package/dist/providers/bai.d.ts.map +0 -1
  587. package/dist/providers/bai.js.map +0 -1
  588. package/dist/providers/bai.models.d.ts.map +0 -1
  589. package/dist/providers/bai.models.js.map +0 -1
  590. package/dist/providers/baseten.d.ts.map +0 -1
  591. package/dist/providers/baseten.js.map +0 -1
  592. package/dist/providers/baseten.models.d.ts.map +0 -1
  593. package/dist/providers/baseten.models.js.map +0 -1
  594. package/dist/providers/cerebras.d.ts.map +0 -1
  595. package/dist/providers/cerebras.js.map +0 -1
  596. package/dist/providers/cerebras.models.d.ts.map +0 -1
  597. package/dist/providers/cerebras.models.js.map +0 -1
  598. package/dist/providers/chatgpt-subscription.d.ts.map +0 -1
  599. package/dist/providers/chatgpt-subscription.js.map +0 -1
  600. package/dist/providers/chatgpt-subscription.models.d.ts.map +0 -1
  601. package/dist/providers/chatgpt-subscription.models.js.map +0 -1
  602. package/dist/providers/cloudflare-ai-gateway.d.ts.map +0 -1
  603. package/dist/providers/cloudflare-ai-gateway.js.map +0 -1
  604. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +0 -1
  605. package/dist/providers/cloudflare-ai-gateway.models.js.map +0 -1
  606. package/dist/providers/cloudflare-auth.d.ts.map +0 -1
  607. package/dist/providers/cloudflare-auth.js.map +0 -1
  608. package/dist/providers/cloudflare-stream.d.ts.map +0 -1
  609. package/dist/providers/cloudflare-stream.js.map +0 -1
  610. package/dist/providers/cloudflare-workers-ai.d.ts.map +0 -1
  611. package/dist/providers/cloudflare-workers-ai.js.map +0 -1
  612. package/dist/providers/cloudflare-workers-ai.models.d.ts.map +0 -1
  613. package/dist/providers/cloudflare-workers-ai.models.js.map +0 -1
  614. package/dist/providers/cursor.d.ts.map +0 -1
  615. package/dist/providers/cursor.js.map +0 -1
  616. package/dist/providers/deepseek.d.ts.map +0 -1
  617. package/dist/providers/deepseek.js.map +0 -1
  618. package/dist/providers/deepseek.models.d.ts.map +0 -1
  619. package/dist/providers/deepseek.models.js.map +0 -1
  620. package/dist/providers/devin.d.ts.map +0 -1
  621. package/dist/providers/devin.js.map +0 -1
  622. package/dist/providers/devin.models.d.ts.map +0 -1
  623. package/dist/providers/devin.models.js.map +0 -1
  624. package/dist/providers/faux.d.ts.map +0 -1
  625. package/dist/providers/faux.js.map +0 -1
  626. package/dist/providers/fireworks.d.ts.map +0 -1
  627. package/dist/providers/fireworks.js.map +0 -1
  628. package/dist/providers/fireworks.models.d.ts.map +0 -1
  629. package/dist/providers/fireworks.models.js.map +0 -1
  630. package/dist/providers/github-copilot-limits.d.ts.map +0 -1
  631. package/dist/providers/github-copilot-limits.js.map +0 -1
  632. package/dist/providers/github-copilot.d.ts.map +0 -1
  633. package/dist/providers/github-copilot.js.map +0 -1
  634. package/dist/providers/github-copilot.models.d.ts.map +0 -1
  635. package/dist/providers/github-copilot.models.js.map +0 -1
  636. package/dist/providers/google-shared.d.ts.map +0 -1
  637. package/dist/providers/google-shared.js.map +0 -1
  638. package/dist/providers/google-vertex.d.ts.map +0 -1
  639. package/dist/providers/google-vertex.js.map +0 -1
  640. package/dist/providers/google-vertex.models.d.ts.map +0 -1
  641. package/dist/providers/google-vertex.models.js.map +0 -1
  642. package/dist/providers/google.d.ts.map +0 -1
  643. package/dist/providers/google.js.map +0 -1
  644. package/dist/providers/google.models.d.ts.map +0 -1
  645. package/dist/providers/google.models.js.map +0 -1
  646. package/dist/providers/groq.d.ts.map +0 -1
  647. package/dist/providers/groq.js.map +0 -1
  648. package/dist/providers/groq.models.d.ts.map +0 -1
  649. package/dist/providers/groq.models.js.map +0 -1
  650. package/dist/providers/huggingface.d.ts.map +0 -1
  651. package/dist/providers/huggingface.js.map +0 -1
  652. package/dist/providers/huggingface.models.d.ts.map +0 -1
  653. package/dist/providers/huggingface.models.js.map +0 -1
  654. package/dist/providers/images/register-builtins.d.ts.map +0 -1
  655. package/dist/providers/images/register-builtins.js.map +0 -1
  656. package/dist/providers/kimi-coding-auth.d.ts.map +0 -1
  657. package/dist/providers/kimi-coding-auth.js.map +0 -1
  658. package/dist/providers/kimi-coding.d.ts.map +0 -1
  659. package/dist/providers/kimi-coding.js.map +0 -1
  660. package/dist/providers/kimi-coding.models.d.ts.map +0 -1
  661. package/dist/providers/kimi-coding.models.js.map +0 -1
  662. package/dist/providers/minimax-cn.d.ts.map +0 -1
  663. package/dist/providers/minimax-cn.js.map +0 -1
  664. package/dist/providers/minimax-cn.models.d.ts.map +0 -1
  665. package/dist/providers/minimax-cn.models.js.map +0 -1
  666. package/dist/providers/minimax.d.ts.map +0 -1
  667. package/dist/providers/minimax.js.map +0 -1
  668. package/dist/providers/minimax.models.d.ts.map +0 -1
  669. package/dist/providers/minimax.models.js.map +0 -1
  670. package/dist/providers/mistral.d.ts.map +0 -1
  671. package/dist/providers/mistral.js.map +0 -1
  672. package/dist/providers/mistral.models.d.ts.map +0 -1
  673. package/dist/providers/mistral.models.js.map +0 -1
  674. package/dist/providers/moonshotai-cn.d.ts.map +0 -1
  675. package/dist/providers/moonshotai-cn.js.map +0 -1
  676. package/dist/providers/moonshotai-cn.models.d.ts.map +0 -1
  677. package/dist/providers/moonshotai-cn.models.js.map +0 -1
  678. package/dist/providers/moonshotai.d.ts.map +0 -1
  679. package/dist/providers/moonshotai.js.map +0 -1
  680. package/dist/providers/moonshotai.models.d.ts.map +0 -1
  681. package/dist/providers/moonshotai.models.js.map +0 -1
  682. package/dist/providers/nvidia.d.ts.map +0 -1
  683. package/dist/providers/nvidia.js.map +0 -1
  684. package/dist/providers/nvidia.models.d.ts.map +0 -1
  685. package/dist/providers/nvidia.models.js.map +0 -1
  686. package/dist/providers/ollama.d.ts.map +0 -1
  687. package/dist/providers/ollama.js.map +0 -1
  688. package/dist/providers/openai-completions.d.ts.map +0 -1
  689. package/dist/providers/openai-completions.js.map +0 -1
  690. package/dist/providers/openai-images.d.ts +0 -3
  691. package/dist/providers/openai-images.d.ts.map +0 -1
  692. package/dist/providers/openai-images.js +0 -16
  693. package/dist/providers/openai-images.js.map +0 -1
  694. package/dist/providers/openai-responses-shared.d.ts.map +0 -1
  695. package/dist/providers/openai-responses-shared.js.map +0 -1
  696. package/dist/providers/openai-responses.d.ts.map +0 -1
  697. package/dist/providers/openai-responses.js.map +0 -1
  698. package/dist/providers/openai.d.ts.map +0 -1
  699. package/dist/providers/openai.js.map +0 -1
  700. package/dist/providers/openai.models.d.ts.map +0 -1
  701. package/dist/providers/openai.models.js.map +0 -1
  702. package/dist/providers/opencode-go.d.ts.map +0 -1
  703. package/dist/providers/opencode-go.js.map +0 -1
  704. package/dist/providers/opencode-go.models.d.ts.map +0 -1
  705. package/dist/providers/opencode-go.models.js.map +0 -1
  706. package/dist/providers/opencode-headers.d.ts.map +0 -1
  707. package/dist/providers/opencode-headers.js.map +0 -1
  708. package/dist/providers/opencode.d.ts.map +0 -1
  709. package/dist/providers/opencode.js.map +0 -1
  710. package/dist/providers/opencode.models.d.ts.map +0 -1
  711. package/dist/providers/opencode.models.js.map +0 -1
  712. package/dist/providers/opengateway.d.ts.map +0 -1
  713. package/dist/providers/opengateway.js.map +0 -1
  714. package/dist/providers/opengateway.models.d.ts.map +0 -1
  715. package/dist/providers/opengateway.models.js.map +0 -1
  716. package/dist/providers/openrouter-images.d.ts +0 -3
  717. package/dist/providers/openrouter-images.d.ts.map +0 -1
  718. package/dist/providers/openrouter-images.js +0 -22
  719. package/dist/providers/openrouter-images.js.map +0 -1
  720. package/dist/providers/openrouter.d.ts.map +0 -1
  721. package/dist/providers/openrouter.js.map +0 -1
  722. package/dist/providers/openrouter.models.d.ts.map +0 -1
  723. package/dist/providers/openrouter.models.js.map +0 -1
  724. package/dist/providers/qwen-token-plan-cn.d.ts.map +0 -1
  725. package/dist/providers/qwen-token-plan-cn.js.map +0 -1
  726. package/dist/providers/qwen-token-plan-cn.models.d.ts.map +0 -1
  727. package/dist/providers/qwen-token-plan-cn.models.js.map +0 -1
  728. package/dist/providers/qwen-token-plan-individual.d.ts.map +0 -1
  729. package/dist/providers/qwen-token-plan-individual.js.map +0 -1
  730. package/dist/providers/qwen-token-plan-individual.models.d.ts.map +0 -1
  731. package/dist/providers/qwen-token-plan-individual.models.js.map +0 -1
  732. package/dist/providers/qwen-token-plan.d.ts.map +0 -1
  733. package/dist/providers/qwen-token-plan.js.map +0 -1
  734. package/dist/providers/qwen-token-plan.models.d.ts.map +0 -1
  735. package/dist/providers/qwen-token-plan.models.js.map +0 -1
  736. package/dist/providers/radius-config.d.ts.map +0 -1
  737. package/dist/providers/radius-config.js.map +0 -1
  738. package/dist/providers/radius.d.ts.map +0 -1
  739. package/dist/providers/radius.js.map +0 -1
  740. package/dist/providers/register-builtins.d.ts.map +0 -1
  741. package/dist/providers/register-builtins.js.map +0 -1
  742. package/dist/providers/together.d.ts.map +0 -1
  743. package/dist/providers/together.js.map +0 -1
  744. package/dist/providers/together.models.d.ts.map +0 -1
  745. package/dist/providers/together.models.js.map +0 -1
  746. package/dist/providers/venice.d.ts.map +0 -1
  747. package/dist/providers/venice.js.map +0 -1
  748. package/dist/providers/venice.models.d.ts.map +0 -1
  749. package/dist/providers/venice.models.js.map +0 -1
  750. package/dist/providers/vercel-ai-gateway.d.ts.map +0 -1
  751. package/dist/providers/vercel-ai-gateway.js.map +0 -1
  752. package/dist/providers/vercel-ai-gateway.models.d.ts.map +0 -1
  753. package/dist/providers/vercel-ai-gateway.models.js.map +0 -1
  754. package/dist/providers/xai.d.ts.map +0 -1
  755. package/dist/providers/xai.js.map +0 -1
  756. package/dist/providers/xai.models.d.ts.map +0 -1
  757. package/dist/providers/xai.models.js.map +0 -1
  758. package/dist/providers/xiaomi-token-plan-ams.d.ts.map +0 -1
  759. package/dist/providers/xiaomi-token-plan-ams.js.map +0 -1
  760. package/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +0 -1
  761. package/dist/providers/xiaomi-token-plan-ams.models.js.map +0 -1
  762. package/dist/providers/xiaomi-token-plan-cn.d.ts.map +0 -1
  763. package/dist/providers/xiaomi-token-plan-cn.js.map +0 -1
  764. package/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +0 -1
  765. package/dist/providers/xiaomi-token-plan-cn.models.js.map +0 -1
  766. package/dist/providers/xiaomi-token-plan-sgp.d.ts.map +0 -1
  767. package/dist/providers/xiaomi-token-plan-sgp.js.map +0 -1
  768. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +0 -1
  769. package/dist/providers/xiaomi-token-plan-sgp.models.js.map +0 -1
  770. package/dist/providers/xiaomi.d.ts.map +0 -1
  771. package/dist/providers/xiaomi.js.map +0 -1
  772. package/dist/providers/xiaomi.models.d.ts.map +0 -1
  773. package/dist/providers/xiaomi.models.js.map +0 -1
  774. package/dist/providers/zai-coding-cn.d.ts.map +0 -1
  775. package/dist/providers/zai-coding-cn.js.map +0 -1
  776. package/dist/providers/zai-coding-cn.models.d.ts.map +0 -1
  777. package/dist/providers/zai-coding-cn.models.js.map +0 -1
  778. package/dist/providers/zai.d.ts.map +0 -1
  779. package/dist/providers/zai.js.map +0 -1
  780. package/dist/providers/zai.models.d.ts.map +0 -1
  781. package/dist/providers/zai.models.js.map +0 -1
  782. package/dist/session-resources.d.ts.map +0 -1
  783. package/dist/session-resources.js.map +0 -1
  784. package/dist/stream.d.ts.map +0 -1
  785. package/dist/stream.js.map +0 -1
  786. package/dist/tool-call-middleware/context-transformer.d.ts.map +0 -1
  787. package/dist/tool-call-middleware/context-transformer.js.map +0 -1
  788. package/dist/tool-call-middleware/index.d.ts.map +0 -1
  789. package/dist/tool-call-middleware/index.js.map +0 -1
  790. package/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.d.ts.map +0 -1
  791. package/dist/tool-call-middleware/protocols/anthropic-xml/coerce-parameters.js.map +0 -1
  792. package/dist/tool-call-middleware/protocols/anthropic-xml/format.d.ts.map +0 -1
  793. package/dist/tool-call-middleware/protocols/anthropic-xml/format.js.map +0 -1
  794. package/dist/tool-call-middleware/protocols/anthropic-xml/index.d.ts.map +0 -1
  795. package/dist/tool-call-middleware/protocols/anthropic-xml/index.js.map +0 -1
  796. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.d.ts.map +0 -1
  797. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-match.js.map +0 -1
  798. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.d.ts.map +0 -1
  799. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-protocol.js.map +0 -1
  800. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-stream-helpers.d.ts.map +0 -1
  801. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-stream-helpers.js.map +0 -1
  802. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.d.ts.map +0 -1
  803. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-scanner.js.map +0 -1
  804. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-syntax.d.ts.map +0 -1
  805. package/dist/tool-call-middleware/protocols/anthropic-xml/invoke-tag-syntax.js.map +0 -1
  806. package/dist/tool-call-middleware/protocols/anthropic-xml/parse.d.ts.map +0 -1
  807. package/dist/tool-call-middleware/protocols/anthropic-xml/parse.js.map +0 -1
  808. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-stream.d.ts.map +0 -1
  809. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-stream.js.map +0 -1
  810. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-wrapper-state.d.ts.map +0 -1
  811. package/dist/tool-call-middleware/protocols/anthropic-xml/recovery-wrapper-state.js.map +0 -1
  812. package/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.d.ts.map +0 -1
  813. package/dist/tool-call-middleware/protocols/anthropic-xml/stream-boundary.js.map +0 -1
  814. package/dist/tool-call-middleware/protocols/anthropic-xml/stream.d.ts.map +0 -1
  815. package/dist/tool-call-middleware/protocols/anthropic-xml/stream.js.map +0 -1
  816. package/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.d.ts.map +0 -1
  817. package/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.js.map +0 -1
  818. package/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.d.ts.map +0 -1
  819. package/dist/tool-call-middleware/protocols/anthropic-xml/xml-entities.js.map +0 -1
  820. package/dist/tool-call-middleware/protocols/antml/coerce-parameters.d.ts.map +0 -1
  821. package/dist/tool-call-middleware/protocols/antml/coerce-parameters.js.map +0 -1
  822. package/dist/tool-call-middleware/protocols/antml/config.d.ts.map +0 -1
  823. package/dist/tool-call-middleware/protocols/antml/config.js.map +0 -1
  824. package/dist/tool-call-middleware/protocols/antml/format.d.ts.map +0 -1
  825. package/dist/tool-call-middleware/protocols/antml/format.js.map +0 -1
  826. package/dist/tool-call-middleware/protocols/antml/index.d.ts.map +0 -1
  827. package/dist/tool-call-middleware/protocols/antml/index.js.map +0 -1
  828. package/dist/tool-call-middleware/protocols/antml/parse.d.ts.map +0 -1
  829. package/dist/tool-call-middleware/protocols/antml/parse.js.map +0 -1
  830. package/dist/tool-call-middleware/protocols/antml/recovery-stream.d.ts.map +0 -1
  831. package/dist/tool-call-middleware/protocols/antml/recovery-stream.js.map +0 -1
  832. package/dist/tool-call-middleware/protocols/antml/repair.d.ts.map +0 -1
  833. package/dist/tool-call-middleware/protocols/antml/repair.js.map +0 -1
  834. package/dist/tool-call-middleware/protocols/antml/stream.d.ts.map +0 -1
  835. package/dist/tool-call-middleware/protocols/antml/stream.js.map +0 -1
  836. package/dist/tool-call-middleware/protocols/gemma4.d.ts.map +0 -1
  837. package/dist/tool-call-middleware/protocols/gemma4.js.map +0 -1
  838. package/dist/tool-call-middleware/protocols/hermes.d.ts.map +0 -1
  839. package/dist/tool-call-middleware/protocols/hermes.js.map +0 -1
  840. package/dist/tool-call-middleware/protocols/json-mix.d.ts.map +0 -1
  841. package/dist/tool-call-middleware/protocols/json-mix.js.map +0 -1
  842. package/dist/tool-call-middleware/protocols/kimi-xtml/format.d.ts.map +0 -1
  843. package/dist/tool-call-middleware/protocols/kimi-xtml/format.js.map +0 -1
  844. package/dist/tool-call-middleware/protocols/kimi-xtml/index.d.ts.map +0 -1
  845. package/dist/tool-call-middleware/protocols/kimi-xtml/index.js.map +0 -1
  846. package/dist/tool-call-middleware/protocols/kimi-xtml/markers.d.ts.map +0 -1
  847. package/dist/tool-call-middleware/protocols/kimi-xtml/markers.js.map +0 -1
  848. package/dist/tool-call-middleware/protocols/kimi-xtml/parse.d.ts.map +0 -1
  849. package/dist/tool-call-middleware/protocols/kimi-xtml/parse.js.map +0 -1
  850. package/dist/tool-call-middleware/protocols/kimi-xtml/recovery-stream.d.ts.map +0 -1
  851. package/dist/tool-call-middleware/protocols/kimi-xtml/recovery-stream.js.map +0 -1
  852. package/dist/tool-call-middleware/protocols/kimi-xtml/stream.d.ts.map +0 -1
  853. package/dist/tool-call-middleware/protocols/kimi-xtml/stream.js.map +0 -1
  854. package/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.d.ts.map +0 -1
  855. package/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.js.map +0 -1
  856. package/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.d.ts.map +0 -1
  857. package/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.js.map +0 -1
  858. package/dist/tool-call-middleware/protocols/morph-xml.d.ts.map +0 -1
  859. package/dist/tool-call-middleware/protocols/morph-xml.js.map +0 -1
  860. package/dist/tool-call-middleware/protocols/xml-tool-tag-scanner.d.ts.map +0 -1
  861. package/dist/tool-call-middleware/protocols/xml-tool-tag-scanner.js.map +0 -1
  862. package/dist/tool-call-middleware/protocols/yaml-xml.d.ts.map +0 -1
  863. package/dist/tool-call-middleware/protocols/yaml-xml.js.map +0 -1
  864. package/dist/tool-call-middleware/recovery-code-mask.d.ts.map +0 -1
  865. package/dist/tool-call-middleware/recovery-code-mask.js.map +0 -1
  866. package/dist/tool-call-middleware/recovery-content-lifecycle.d.ts.map +0 -1
  867. package/dist/tool-call-middleware/recovery-content-lifecycle.js.map +0 -1
  868. package/dist/tool-call-middleware/recovery-diagnostics.d.ts.map +0 -1
  869. package/dist/tool-call-middleware/recovery-diagnostics.js.map +0 -1
  870. package/dist/tool-call-middleware/recovery-event-stream.d.ts.map +0 -1
  871. package/dist/tool-call-middleware/recovery-event-stream.js.map +0 -1
  872. package/dist/tool-call-middleware/recovery-message-snapshot.d.ts.map +0 -1
  873. package/dist/tool-call-middleware/recovery-message-snapshot.js.map +0 -1
  874. package/dist/tool-call-middleware/recovery-native-projection.d.ts.map +0 -1
  875. package/dist/tool-call-middleware/recovery-native-projection.js.map +0 -1
  876. package/dist/tool-call-middleware/recovery-stream-failure.d.ts.map +0 -1
  877. package/dist/tool-call-middleware/recovery-stream-failure.js.map +0 -1
  878. package/dist/tool-call-middleware/recovery-stream-terminal.d.ts.map +0 -1
  879. package/dist/tool-call-middleware/recovery-stream-terminal.js.map +0 -1
  880. package/dist/tool-call-middleware/recovery-stream-wrapper.d.ts.map +0 -1
  881. package/dist/tool-call-middleware/recovery-stream-wrapper.js.map +0 -1
  882. package/dist/tool-call-middleware/recovery-text-projection.d.ts.map +0 -1
  883. package/dist/tool-call-middleware/recovery-text-projection.js.map +0 -1
  884. package/dist/tool-call-middleware/stream-message-metadata.d.ts.map +0 -1
  885. package/dist/tool-call-middleware/stream-message-metadata.js.map +0 -1
  886. package/dist/tool-call-middleware/stream-thinking-projection.d.ts.map +0 -1
  887. package/dist/tool-call-middleware/stream-thinking-projection.js.map +0 -1
  888. package/dist/tool-call-middleware/stream-wrapper-shared.d.ts.map +0 -1
  889. package/dist/tool-call-middleware/stream-wrapper-shared.js.map +0 -1
  890. package/dist/tool-call-middleware/stream-wrapper.d.ts.map +0 -1
  891. package/dist/tool-call-middleware/stream-wrapper.js.map +0 -1
  892. package/dist/tool-call-middleware/types.d.ts.map +0 -1
  893. package/dist/tool-call-middleware/types.js.map +0 -1
  894. package/dist/types.d.ts.map +0 -1
  895. package/dist/types.js.map +0 -1
  896. package/dist/utils/abort-signals.d.ts.map +0 -1
  897. package/dist/utils/abort-signals.js.map +0 -1
  898. package/dist/utils/abort.d.ts.map +0 -1
  899. package/dist/utils/abort.js.map +0 -1
  900. package/dist/utils/assistant-message-frame.d.ts.map +0 -1
  901. package/dist/utils/assistant-message-frame.js.map +0 -1
  902. package/dist/utils/block-symbols.d.ts.map +0 -1
  903. package/dist/utils/block-symbols.js.map +0 -1
  904. package/dist/utils/chatgpt-subscription-auth.d.ts.map +0 -1
  905. package/dist/utils/chatgpt-subscription-auth.js.map +0 -1
  906. package/dist/utils/claude-code-version-cache.d.ts.map +0 -1
  907. package/dist/utils/claude-code-version-cache.js.map +0 -1
  908. package/dist/utils/claude-code-version.d.ts.map +0 -1
  909. package/dist/utils/claude-code-version.js.map +0 -1
  910. package/dist/utils/cursor-context-limit.d.ts.map +0 -1
  911. package/dist/utils/cursor-context-limit.js.map +0 -1
  912. package/dist/utils/deferred-tools.d.ts.map +0 -1
  913. package/dist/utils/deferred-tools.js.map +0 -1
  914. package/dist/utils/diagnostics.d.ts.map +0 -1
  915. package/dist/utils/diagnostics.js.map +0 -1
  916. package/dist/utils/drop-failed-assistant-turns.d.ts.map +0 -1
  917. package/dist/utils/drop-failed-assistant-turns.js.map +0 -1
  918. package/dist/utils/empty-response-errors.d.ts.map +0 -1
  919. package/dist/utils/empty-response-errors.js.map +0 -1
  920. package/dist/utils/error-body.d.ts.map +0 -1
  921. package/dist/utils/error-body.js.map +0 -1
  922. package/dist/utils/estimate.d.ts.map +0 -1
  923. package/dist/utils/estimate.js.map +0 -1
  924. package/dist/utils/event-stream.d.ts.map +0 -1
  925. package/dist/utils/event-stream.js.map +0 -1
  926. package/dist/utils/github-copilot-tool-limit.d.ts.map +0 -1
  927. package/dist/utils/github-copilot-tool-limit.js.map +0 -1
  928. package/dist/utils/hash.d.ts.map +0 -1
  929. package/dist/utils/hash.js.map +0 -1
  930. package/dist/utils/headers.d.ts.map +0 -1
  931. package/dist/utils/headers.js.map +0 -1
  932. package/dist/utils/json-parse.d.ts.map +0 -1
  933. package/dist/utils/json-parse.js.map +0 -1
  934. package/dist/utils/node-http-proxy.d.ts.map +0 -1
  935. package/dist/utils/node-http-proxy.js.map +0 -1
  936. package/dist/utils/overflow.d.ts.map +0 -1
  937. package/dist/utils/overflow.js.map +0 -1
  938. package/dist/utils/pi-user-agent.d.ts.map +0 -1
  939. package/dist/utils/pi-user-agent.js.map +0 -1
  940. package/dist/utils/process-singleton.d.ts.map +0 -1
  941. package/dist/utils/process-singleton.js.map +0 -1
  942. package/dist/utils/prompt-cache-ttl.d.ts.map +0 -1
  943. package/dist/utils/prompt-cache-ttl.js.map +0 -1
  944. package/dist/utils/provider-diagnostic-carrier.d.ts.map +0 -1
  945. package/dist/utils/provider-diagnostic-carrier.js.map +0 -1
  946. package/dist/utils/provider-diagnostic-sources.d.ts.map +0 -1
  947. package/dist/utils/provider-diagnostic-sources.js.map +0 -1
  948. package/dist/utils/provider-diagnostic-vocabulary.d.ts.map +0 -1
  949. package/dist/utils/provider-diagnostic-vocabulary.js.map +0 -1
  950. package/dist/utils/provider-env.d.ts.map +0 -1
  951. package/dist/utils/provider-env.js.map +0 -1
  952. package/dist/utils/provider-failure-description.d.ts.map +0 -1
  953. package/dist/utils/provider-failure-description.js.map +0 -1
  954. package/dist/utils/provider-retry.d.ts.map +0 -1
  955. package/dist/utils/provider-retry.js.map +0 -1
  956. package/dist/utils/retry-hint.d.ts.map +0 -1
  957. package/dist/utils/retry-hint.js.map +0 -1
  958. package/dist/utils/retry-profile/backoff.d.ts.map +0 -1
  959. package/dist/utils/retry-profile/backoff.js.map +0 -1
  960. package/dist/utils/retry-profile/classifiers.d.ts.map +0 -1
  961. package/dist/utils/retry-profile/classifiers.js.map +0 -1
  962. package/dist/utils/retry-profile/failure.d.ts.map +0 -1
  963. package/dist/utils/retry-profile/failure.js.map +0 -1
  964. package/dist/utils/retry-profile/index.d.ts.map +0 -1
  965. package/dist/utils/retry-profile/index.js.map +0 -1
  966. package/dist/utils/retry-profile/planner.d.ts.map +0 -1
  967. package/dist/utils/retry-profile/planner.js.map +0 -1
  968. package/dist/utils/retry-profile/profiles.d.ts.map +0 -1
  969. package/dist/utils/retry-profile/profiles.js.map +0 -1
  970. package/dist/utils/retry-profile/types.d.ts.map +0 -1
  971. package/dist/utils/retry-profile/types.js.map +0 -1
  972. package/dist/utils/retry.d.ts.map +0 -1
  973. package/dist/utils/retry.js.map +0 -1
  974. package/dist/utils/sanitize-unicode.d.ts.map +0 -1
  975. package/dist/utils/sanitize-unicode.js.map +0 -1
  976. package/dist/utils/server-fallback-receipt.d.ts.map +0 -1
  977. package/dist/utils/server-fallback-receipt.js.map +0 -1
  978. package/dist/utils/sleep.d.ts.map +0 -1
  979. package/dist/utils/sleep.js.map +0 -1
  980. package/dist/utils/stop-details.d.ts.map +0 -1
  981. package/dist/utils/stop-details.js.map +0 -1
  982. package/dist/utils/text.d.ts.map +0 -1
  983. package/dist/utils/text.js.map +0 -1
  984. package/dist/utils/tool-call-id.d.ts.map +0 -1
  985. package/dist/utils/tool-call-id.js.map +0 -1
  986. package/dist/utils/tool-choice-fallback.d.ts.map +0 -1
  987. package/dist/utils/tool-choice-fallback.js.map +0 -1
  988. package/dist/utils/tool-name-match.d.ts.map +0 -1
  989. package/dist/utils/tool-name-match.js.map +0 -1
  990. package/dist/utils/tool-pair-repair.d.ts.map +0 -1
  991. package/dist/utils/tool-pair-repair.js.map +0 -1
  992. package/dist/utils/tool-schema-compat.d.ts.map +0 -1
  993. package/dist/utils/tool-schema-compat.js.map +0 -1
  994. package/dist/utils/typebox-helpers.d.ts.map +0 -1
  995. package/dist/utils/typebox-helpers.js.map +0 -1
  996. package/dist/utils/unavailable-tool-text.d.ts.map +0 -1
  997. package/dist/utils/unavailable-tool-text.js.map +0 -1
  998. package/dist/utils/uuid.d.ts.map +0 -1
  999. package/dist/utils/uuid.js.map +0 -1
  1000. package/dist/utils/validation.d.ts.map +0 -1
  1001. package/dist/utils/validation.js.map +0 -1
  1002. package/dist/utils/visible-text.d.ts.map +0 -1
  1003. package/dist/utils/visible-text.js.map +0 -1
  1004. package/dist/wire-identity.d.ts.map +0 -1
  1005. package/dist/wire-identity.js.map +0 -1
  1006. /package/dist/{auth/oauth → utils}/oauth-page.d.ts +0 -0
  1007. /package/dist/{auth/oauth → utils}/oauth-page.js +0 -0
@@ -13,8 +13,10 @@ import { awaitProviderTransport, iterateProviderTransport, openAICompatibleProvi
13
13
  import { getProviderEnvValue } from "../utils/provider-env.js";
14
14
  import { retryProviderStreamRequest } from "../utils/provider-retry.js";
15
15
  import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
16
+ import { getSystemMessageText, renderSystemMessageUpdate } from "../utils/text.js";
16
17
  import { sendWithForcedToolChoiceFallback } from "../utils/tool-choice-fallback.js";
17
18
  import { normalizeToolParametersForMoonshot, normalizeToolParametersForOpenAICompat, } from "../utils/tool-schema-compat.js";
19
+ import { getCurrentTools, getDeclaredTools, resolveTranscript, resolveTranscriptTools, } from "../utils/transcript.js";
18
20
  import { appendGrammarToolInputJsonDelta, createGrammarToolInputProperties, getGrammarToolInput, getJsonSchemaToolParameters, resolveGrammarConstrainedSampling, resolveJsonSchemaStrictSampling, } from "./constrained-sampling.js";
19
21
  import { withGitHubCopilotFailureNote } from "./github-copilot-errors.js";
20
22
  import { buildCopilotDynamicHeaders, hasCopilotVisionInput } from "./github-copilot-headers.js";
@@ -122,24 +124,26 @@ function hasToolHistory(messages) {
122
124
  }
123
125
  return false;
124
126
  }
125
- function getDeferredToolNames(messages) {
127
+ /**
128
+ * Kimi `deferredToolsMode`: a current tool named by any tool result's `addedToolNames` leaves the
129
+ * top-level `tools` field and is loaded by a Kimi tools system message after that result.
130
+ */
131
+ function resolveKimiDeferredTools(messages, compat) {
132
+ const deferred = new Map();
133
+ if (compat.deferredToolsMode !== "kimi")
134
+ return deferred;
126
135
  const names = new Set();
127
136
  for (const message of messages) {
128
- if (message.role === "toolResult") {
129
- for (const name of message.addedToolNames ?? []) {
130
- names.add(name);
131
- }
132
- }
137
+ if (message.role !== "toolResult")
138
+ continue;
139
+ for (const name of message.addedToolNames ?? [])
140
+ names.add(name);
133
141
  }
134
- return names;
135
- }
136
- function getToolsByName(tools, names) {
137
- if (!tools)
138
- return [];
139
- const toolsByName = new Map(tools.map((tool) => [tool.name, tool]));
140
- return Array.from(names)
141
- .map((name) => toolsByName.get(name))
142
- .filter((tool) => tool !== undefined);
142
+ for (const tool of getCurrentTools(messages)) {
143
+ if (names.has(tool.name))
144
+ deferred.set(tool.name, tool);
145
+ }
146
+ return deferred;
143
147
  }
144
148
  function isTextContentBlock(block) {
145
149
  return block.type === "text";
@@ -297,6 +301,7 @@ function resolveCacheRetention(cacheRetention, env) {
297
301
  }
298
302
  export const stream = (model, context, options) => {
299
303
  const stream = new AssistantMessageEventStream();
304
+ const normalizedContext = resolveTranscript(context, getCompat(model).supportsMidConvoSystemMessages);
300
305
  (async () => {
301
306
  const output = {
302
307
  role: "assistant",
@@ -326,11 +331,11 @@ export const stream = (model, context, options) => {
326
331
  try {
327
332
  const clientAuth = resolveOpenAIClientAuth(model.provider, options?.apiKey, options?.headers);
328
333
  const compat = getCompat(model);
329
- const grammarToolInputProperties = createGrammarToolInputProperties(context.tools, compat.supportsOpenAIGrammarTools);
334
+ const grammarToolInputProperties = createGrammarToolInputProperties(getDeclaredTools(normalizedContext.messages), compat.supportsOpenAIGrammarTools);
330
335
  const cacheRetention = resolveCacheRetention(options?.cacheRetention ?? model.cacheRetention, options?.env);
331
336
  const cacheSessionId = cacheRetention === "none" ? undefined : options?.sessionId;
332
- const client = createClient(model, context, clientAuth.apiKey, clientAuth.headers, options?.fetch, cacheSessionId, compat);
333
- let params = buildParams(model, context, options, compat, cacheRetention, grammarToolInputProperties);
337
+ const client = createClient(model, normalizedContext, clientAuth.apiKey, clientAuth.headers, options?.fetch, cacheSessionId, compat);
338
+ let params = buildParams(model, normalizedContext, options, compat, cacheRetention, grammarToolInputProperties);
334
339
  const nextParams = await options?.onPayload?.(params, model);
335
340
  if (nextParams !== undefined) {
336
341
  params = nextParams;
@@ -579,6 +584,7 @@ export const stream = (model, context, options) => {
579
584
  }
580
585
  };
581
586
  for await (const chunk of openaiStream) {
587
+ await options?.onProviderStreamEvent?.(chunk, model);
582
588
  if (!chunk || typeof chunk !== "object")
583
589
  continue;
584
590
  // OpenAI documents ChatCompletionChunk.id as the unique chat completion identifier,
@@ -833,7 +839,10 @@ function createClient(model, context, apiKey, optionsHeaders, fetch, sessionId,
833
839
  defaultHeaders: headers,
834
840
  });
835
841
  }
836
- function buildParams(model, context, options, compat = getCompat(model), cacheRetention = resolveCacheRetention(options?.cacheRetention ?? model.cacheRetention, options?.env), grammarToolInputProperties = createGrammarToolInputProperties(context.tools, compat.supportsOpenAIGrammarTools)) {
842
+ function buildParams(model, context, options, compat = getCompat(model), cacheRetention = resolveCacheRetention(options?.cacheRetention ?? model.cacheRetention, options?.env), grammarToolInputProperties = createGrammarToolInputProperties(getDeclaredTools(context.messages), compat.supportsOpenAIGrammarTools)) {
843
+ const transcriptTools = resolveTranscriptTools(context.messages, compat.supportsMidConvoSystemMessages === true && compat.supportsMidConvoToolAdditions === true);
844
+ const kimiDeferredTools = resolveKimiDeferredTools(context.messages, compat);
845
+ const requestTools = transcriptTools.requestTools.filter((tool) => !kimiDeferredTools.has(tool.name));
837
846
  const messages = convertMessages(model, context, compat, {
838
847
  preserveThinking: options?.reasoningEffort !== undefined,
839
848
  grammarToolInputProperties,
@@ -864,6 +873,7 @@ function buildParams(model, context, options, compat = getCompat(model), cacheRe
864
873
  }
865
874
  if (options?.maxTokens) {
866
875
  if (compat.maxTokensField === "max_tokens") {
876
+ // Deprecated by OpenAI, but some OpenAI-compatible providers only accept max_tokens.
867
877
  params.max_tokens = options.maxTokens;
868
878
  }
869
879
  else {
@@ -873,10 +883,8 @@ function buildParams(model, context, options, compat = getCompat(model), cacheRe
873
883
  if (options?.temperature !== undefined) {
874
884
  params.temperature = options.temperature;
875
885
  }
876
- const deferredToolNames = compat.deferredToolsMode === "kimi" ? getDeferredToolNames(context.messages) : new Set();
877
- const activeTools = context.tools?.filter((tool) => !deferredToolNames.has(tool.name));
878
- if (activeTools && activeTools.length > 0) {
879
- params.tools = convertTools(activeTools, compat);
886
+ if (requestTools.length > 0) {
887
+ params.tools = convertTools(requestTools, compat);
880
888
  if (compat.zaiToolStream) {
881
889
  params.tool_stream = true;
882
890
  }
@@ -1040,10 +1048,8 @@ function buildParams(model, context, options, compat = getCompat(model), cacheRe
1040
1048
  }
1041
1049
  }
1042
1050
  applyExtraBody(params, options?.extraBody, OPENAI_COMPLETIONS_RESERVED_BODY_KEYS);
1043
- // Last so custom keys override the named request fields.
1044
- if (options?.samplingParams) {
1045
- Object.assign(params, options.samplingParams);
1046
- }
1051
+ // Last so custom keys override the named request fields. Per-request keys override model defaults.
1052
+ Object.assign(params, model.samplingParams, options?.samplingParams);
1047
1053
  return params;
1048
1054
  }
1049
1055
  function resolveThinkingTokenBudgetField(compat) {
@@ -1162,7 +1168,18 @@ function addCacheControlToTextContent(message, cacheControl) {
1162
1168
  }
1163
1169
  return false;
1164
1170
  }
1171
+ function appendUserMessage(params, content, mergeAdjacentUserMessages) {
1172
+ const previous = params[params.length - 1];
1173
+ if (!mergeAdjacentUserMessages || previous?.role !== "user") {
1174
+ params.push({ role: "user", content });
1175
+ return;
1176
+ }
1177
+ const previousContent = typeof previous.content === "string" ? [{ type: "text", text: previous.content }] : previous.content;
1178
+ const currentContent = typeof content === "string" ? [{ type: "text", text: content }] : content;
1179
+ previous.content = [...previousContent, ...currentContent];
1180
+ }
1165
1181
  export function convertMessages(model, context, compat, options = {}) {
1182
+ const normalizedContext = resolveTranscript(context, compat.supportsMidConvoSystemMessages);
1166
1183
  const params = [];
1167
1184
  const normalizeToolCallId = (id) => {
1168
1185
  // Handle pipe-separated IDs from OpenAI Responses API
@@ -1192,15 +1209,16 @@ export function convertMessages(model, context, compat, options = {}) {
1192
1209
  const prefix = sanitizedId.slice(0, Math.max(1, 40 - hash.length - 1));
1193
1210
  return `${prefix}_${hash}`;
1194
1211
  };
1195
- const transformedMessages = transformMessages(context.messages, model, (id) => normalizeToolCallId(id), {
1212
+ const transformedMessages = transformMessages(normalizedContext.messages, model, (id) => normalizeToolCallId(id), {
1196
1213
  preserveThinking: options.preserveThinking,
1197
1214
  normalizeSameModelToolCallIds: true,
1198
1215
  });
1199
- if (context.systemPrompt) {
1200
- const useDeveloperRole = model.reasoning && compat.supportsDeveloperRole;
1201
- const role = useDeveloperRole ? "developer" : "system";
1202
- params.push({ role: role, content: sanitizeSurrogates(context.systemPrompt) });
1203
- }
1216
+ const mergeAdjacentUserMessages = !model.baseUrl.includes("api.openai.com");
1217
+ const transcriptTools = resolveTranscriptTools(normalizedContext.messages, compat.supportsMidConvoSystemMessages === true && compat.supportsMidConvoToolAdditions === true);
1218
+ const kimiDeferredTools = resolveKimiDeferredTools(normalizedContext.messages, compat);
1219
+ // One ledger for both in-place loading paths: transcript system messages and `addedToolNames`.
1220
+ const loadedToolNames = new Set();
1221
+ const instructionRole = model.reasoning && compat.supportsDeveloperRole ? "developer" : "system";
1204
1222
  let lastRole = null;
1205
1223
  for (let i = 0; i < transformedMessages.length; i++) {
1206
1224
  const msg = transformedMessages[i];
@@ -1212,15 +1230,32 @@ export function convertMessages(model, context, compat, options = {}) {
1212
1230
  content: "I have processed the tool results.",
1213
1231
  });
1214
1232
  }
1215
- if (msg.role === "user") {
1233
+ if (msg.role === "system") {
1234
+ const addedTools = i > 0 && transcriptTools.anchorsAdditions
1235
+ ? (msg.toolsAdded ?? []).filter((tool) => !loadedToolNames.has(tool.name))
1236
+ : [];
1237
+ for (const tool of addedTools)
1238
+ loadedToolNames.add(tool.name);
1239
+ if (addedTools.length > 0) {
1240
+ const kimiToolMessage = {
1241
+ role: "system",
1242
+ tools: convertTools(addedTools, compat),
1243
+ };
1244
+ params.push(kimiToolMessage);
1245
+ }
1246
+ const text = i === 0 ? getSystemMessageText(msg) : renderSystemMessageUpdate(msg);
1247
+ if (text.length > 0) {
1248
+ params.push({ role: instructionRole, content: sanitizeSurrogates(text) });
1249
+ }
1250
+ }
1251
+ else if (msg.role === "user") {
1216
1252
  if (typeof msg.content === "string") {
1217
- params.push({
1218
- role: "user",
1219
- content: sanitizeSurrogates(msg.content),
1220
- });
1253
+ appendUserMessage(params, sanitizeSurrogates(msg.content), mergeAdjacentUserMessages);
1221
1254
  }
1222
1255
  else {
1223
- const content = msg.content.map((item) => {
1256
+ const content = msg.content
1257
+ .filter((item) => item.type !== "text" || item.text.length > 0)
1258
+ .map((item) => {
1224
1259
  if (item.type === "text") {
1225
1260
  return {
1226
1261
  type: "text",
@@ -1238,10 +1273,7 @@ export function convertMessages(model, context, compat, options = {}) {
1238
1273
  });
1239
1274
  if (content.length === 0)
1240
1275
  continue;
1241
- params.push({
1242
- role: "user",
1243
- content,
1244
- });
1276
+ appendUserMessage(params, content, mergeAdjacentUserMessages);
1245
1277
  }
1246
1278
  }
1247
1279
  else if (msg.role === "assistant") {
@@ -1356,7 +1388,7 @@ export function convertMessages(model, context, compat, options = {}) {
1356
1388
  }
1357
1389
  else if (msg.role === "toolResult") {
1358
1390
  const imageBlocks = [];
1359
- const deferredToolNames = new Set();
1391
+ const deferredTools = [];
1360
1392
  let j = i;
1361
1393
  for (; j < transformedMessages.length && transformedMessages[j].role === "toolResult"; j++) {
1362
1394
  const toolMsg = transformedMessages[j];
@@ -1379,10 +1411,12 @@ export function convertMessages(model, context, compat, options = {}) {
1379
1411
  Object.assign(toolResultMsg, { name: toolMsg.toolName });
1380
1412
  }
1381
1413
  params.push(toolResultMsg);
1382
- if (compat.deferredToolsMode === "kimi") {
1383
- for (const name of toolMsg.addedToolNames ?? []) {
1384
- deferredToolNames.add(name);
1385
- }
1414
+ for (const name of toolMsg.addedToolNames ?? []) {
1415
+ const tool = kimiDeferredTools.get(name);
1416
+ if (!tool || loadedToolNames.has(name))
1417
+ continue;
1418
+ loadedToolNames.add(name);
1419
+ deferredTools.push(tool);
1386
1420
  }
1387
1421
  if (hasImages && model.input.includes("image")) {
1388
1422
  for (const block of toolMsg.content) {
@@ -1420,16 +1454,13 @@ export function convertMessages(model, context, compat, options = {}) {
1420
1454
  else {
1421
1455
  lastRole = "toolResult";
1422
1456
  }
1423
- if (deferredToolNames.size > 0) {
1424
- const deferredTools = getToolsByName(context.tools, deferredToolNames);
1425
- if (deferredTools.length > 0) {
1426
- const kimiToolMessage = {
1427
- role: "system",
1428
- tools: convertTools(deferredTools, compat),
1429
- };
1430
- // Kimi accepts a system message with tools but omits the standard content field.
1431
- params.push(kimiToolMessage);
1432
- }
1457
+ if (deferredTools.length > 0) {
1458
+ const kimiToolMessage = {
1459
+ role: "system",
1460
+ tools: convertTools(deferredTools, compat),
1461
+ };
1462
+ // Kimi accepts a system message with tools but omits the standard content field.
1463
+ params.push(kimiToolMessage);
1433
1464
  }
1434
1465
  continue;
1435
1466
  }
@@ -1,6 +1,6 @@
1
1
  import type { Uploadable } from "openai";
2
2
  import type { ImageGenerateParamsNonStreaming } from "openai/resources/images.js";
3
- import type { ImageContent, ImagesContext, ImagesModel, ImagesOptions } from "../types.ts";
3
+ import type { ImageApi, ImageContent, ImageModel, ImagesContext, ImagesOptions } from "../types.ts";
4
4
  export type OpenAIImageQuality = "auto" | "low" | "medium" | "high" | "xhigh" | "max";
5
5
  export type OpenAIImageSize = "auto" | "1024x1024" | "1536x1024" | "1024x1536" | `${number}x${number}`;
6
6
  export type OpenAIImageBackground = "auto" | "transparent" | "opaque";
@@ -55,6 +55,6 @@ export type OpenAIImageOutputOptions = {
55
55
  * compression is a jpeg/webp-only integer percentage, and a mask edits an image.
56
56
  */
57
57
  export declare function parseOpenAIImageOutputOptions(input: OpenAIImageOutputOptionsInput): OpenAIImageOutputOptions;
58
- export declare function buildParams(model: ImagesModel<"openai-images">, context: ImagesContext, options?: OpenAIImagesOptions): OpenAIImageParams;
58
+ export declare function buildParams(model: ImageModel<ImageApi>, context: ImagesContext, options?: OpenAIImagesOptions): OpenAIImageParams;
59
59
  export declare function isImageParams(value: unknown): value is OpenAIImageParams;
60
60
  //# sourceMappingURL=openai-images-params.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import type { ImagesFunction } from "../types.ts";
2
2
  import { type OpenAIImagesOptions } from "./openai-images-params.ts";
3
3
  export { type OpenAIImageBackground, type OpenAIImageModeration, type OpenAIImageOutputFormat, type OpenAIImageQuality, type OpenAIImageSize, type OpenAIImagesOptions, parseOpenAIImageOutputOptions, parseOpenAIImageSize, } from "./openai-images-params.ts";
4
- export declare const generateImages: ImagesFunction<"openai-images", OpenAIImagesOptions>;
4
+ export declare const generateImages: ImagesFunction<OpenAIImagesOptions>;
5
5
  //# sourceMappingURL=openai-images.d.ts.map
@@ -1,19 +1,22 @@
1
1
  import type { Tool as OpenAITool, ResponseCreateParamsStreaming, ResponseInput, ResponseStreamEvent } from "openai/resources/responses/responses.js";
2
- import type { Api, AssistantMessage, Context, Model, Tool, Usage } from "../types.ts";
2
+ import type { Api, AssistantMessage, Message, Model, StreamOptions, Tool, TranscriptContext, Usage } from "../types.ts";
3
3
  import type { AssistantMessageEventStream } from "../utils/event-stream.ts";
4
4
  export interface OpenAIResponsesStreamOptions {
5
- serviceTier?: ResponseCreateParamsStreaming["service_tier"] | "fast";
5
+ onProviderStreamEvent?: StreamOptions["onProviderStreamEvent"];
6
+ serviceTier?: ResponseCreateParamsStreaming["service_tier"] | "fast" | "ultrafast";
6
7
  grammarToolInputProperties?: ReadonlyMap<string, string>;
7
- resolveServiceTier?: (responseServiceTier: ResponseCreateParamsStreaming["service_tier"] | "fast" | undefined, requestServiceTier: ResponseCreateParamsStreaming["service_tier"] | "fast" | undefined) => ResponseCreateParamsStreaming["service_tier"] | "fast" | undefined;
8
- applyServiceTierPricing?: (usage: Usage, serviceTier: ResponseCreateParamsStreaming["service_tier"] | "fast" | undefined) => void;
8
+ resolveServiceTier?: (responseServiceTier: ResponseCreateParamsStreaming["service_tier"] | "fast" | "ultrafast" | undefined, requestServiceTier: ResponseCreateParamsStreaming["service_tier"] | "fast" | "ultrafast" | undefined) => ResponseCreateParamsStreaming["service_tier"] | "fast" | "ultrafast" | undefined;
9
+ applyServiceTierPricing?: (usage: Usage, serviceTier: ResponseCreateParamsStreaming["service_tier"] | "fast" | "ultrafast" | undefined) => void;
9
10
  }
10
11
  export interface ConvertResponsesMessagesOptions {
11
12
  includeSystemPrompt?: boolean;
12
13
  preserveThinking?: boolean;
13
14
  preserveTextSignatures?: boolean;
14
15
  grammarToolInputProperties?: ReadonlyMap<string, string>;
15
- deferredTools?: ReadonlyMap<string, Tool>;
16
- deferredToolsMode?: "additional-tools" | "tool-search";
16
+ /** Whether later system messages are sent in place; otherwise they are folded into the leading prompt. */
17
+ supportsMidConvoSystemMessages?: boolean;
18
+ supportsAdditionalTools?: boolean;
19
+ supportsToolSearch?: boolean;
17
20
  toolOptions?: ConvertResponsesToolsOptions;
18
21
  /**
19
22
  * Send the system prompt as one `input_text` block carrying an explicit
@@ -28,10 +31,30 @@ export interface ConvertResponsesToolsOptions {
28
31
  strict?: boolean | null;
29
32
  supportsStrictMode?: boolean;
30
33
  supportsOpenAIGrammarTools?: boolean;
31
- deferLoading?: boolean;
34
+ toolSearchResult?: boolean;
32
35
  }
33
36
  export declare const CUSTOM_TOOL_CALL_ITEM_ID_SENTINEL = "custom";
34
- export declare function convertResponsesMessages<TApi extends Api>(model: Model<TApi>, context: Context, allowedToolCallProviders: ReadonlySet<string>, options?: ConvertResponsesMessagesOptions): ResponseInput;
37
+ export type ResponsesDeferredToolsMode = "additional-tools" | "tool-search";
38
+ /** `additional_tools` items win over client tool search when a model supports both. */
39
+ export declare function resolveResponsesDeferredToolsMode(compat: {
40
+ supportsAdditionalTools?: boolean;
41
+ supportsToolSearch?: boolean;
42
+ } | undefined): ResponsesDeferredToolsMode | undefined;
43
+ export interface ResponsesToolPlacement {
44
+ /** Tools sent in the top-level `tools` field. */
45
+ requestTools: Tool[];
46
+ /** Whether later system messages load their own `toolsAdded` in place. */
47
+ anchorsAdditions: boolean;
48
+ /** Tools a tool result loads in place through `addedToolNames`. */
49
+ deferred: ReadonlyMap<string, Tool>;
50
+ }
51
+ /**
52
+ * Upstream transcript placement plus the fork's `addedToolNames` deferral: a current tool first named by a
53
+ * tool result's `addedToolNames` (before any call to it) leaves the top-level `tools` field and is loaded
54
+ * where that result appears, so lazy activation never rewrites the cached prefix.
55
+ */
56
+ export declare function resolveResponsesToolPlacement(messages: readonly Message[], supportsToolAdditions: boolean): ResponsesToolPlacement;
57
+ export declare function convertResponsesMessages<TApi extends Api>(model: Model<TApi>, context: TranscriptContext, allowedToolCallProviders: ReadonlySet<string>, options?: ConvertResponsesMessagesOptions): ResponseInput;
35
58
  export declare function convertResponsesTools(tools: readonly Tool[], options?: ConvertResponsesToolsOptions): OpenAITool[];
36
59
  export declare function processResponsesStream<TApi extends Api>(openaiStream: AsyncIterable<ResponseStreamEvent>, output: AssistantMessage, stream: AssistantMessageEventStream, model: Model<TApi>, options?: OpenAIResponsesStreamOptions): Promise<void>;
37
60
  //# sourceMappingURL=openai-responses-shared.d.ts.map
@@ -1,8 +1,11 @@
1
1
  import { CONTEXT_PROVENANCE_FIELD, contextProvenanceFingerprint, getContextProvenance, } from "../context-provenance.js";
2
2
  import { calculateCost, supportsConfigurationUpdate } from "../models.js";
3
+ import { splitDeferredTools } from "../utils/deferred-tools.js";
3
4
  import { shortHash } from "../utils/hash.js";
4
5
  import { parseStreamingJson } from "../utils/json-parse.js";
5
6
  import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
7
+ import { getSystemMessageText, renderSystemMessageUpdate } from "../utils/text.js";
8
+ import { getCurrentTools, getDeclaredTools, resolveTranscript, resolveTranscriptTools } from "../utils/transcript.js";
6
9
  import { appendGrammarToolInputJsonDelta, getGrammarToolInput, getJsonSchemaToolParameters, resolveGrammarConstrainedSampling, resolveJsonSchemaStrictSampling, } from "./constrained-sampling.js";
7
10
  import { parsePromptCacheDiagnostics } from "./openai-responses-prompt-cache.js";
8
11
  import { withResponsesCompletionGrace } from "./responses-completion-grace.js";
@@ -113,11 +116,36 @@ function withContextProvenance(item, message, seal) {
113
116
  }
114
117
  return item;
115
118
  }
119
+ /** `additional_tools` items win over client tool search when a model supports both. */
120
+ export function resolveResponsesDeferredToolsMode(compat) {
121
+ if (compat?.supportsAdditionalTools)
122
+ return "additional-tools";
123
+ return compat?.supportsToolSearch ? "tool-search" : undefined;
124
+ }
125
+ /**
126
+ * Upstream transcript placement plus the fork's `addedToolNames` deferral: a current tool first named by a
127
+ * tool result's `addedToolNames` (before any call to it) leaves the top-level `tools` field and is loaded
128
+ * where that result appears, so lazy activation never rewrites the cached prefix.
129
+ */
130
+ export function resolveResponsesToolPlacement(messages, supportsToolAdditions) {
131
+ const transcriptTools = resolveTranscriptTools(messages, supportsToolAdditions);
132
+ const { deferred } = splitDeferredTools({ messages: [...messages], tools: getCurrentTools(messages) }, supportsToolAdditions);
133
+ return {
134
+ requestTools: transcriptTools.requestTools.filter((tool) => !deferred.has(tool.name)),
135
+ anchorsAdditions: transcriptTools.anchorsAdditions,
136
+ deferred,
137
+ };
138
+ }
116
139
  // =============================================================================
117
140
  // Message conversion
118
141
  // =============================================================================
119
142
  export function convertResponsesMessages(model, context, allowedToolCallProviders, options) {
143
+ const normalizedContext = resolveTranscript(context, options?.supportsMidConvoSystemMessages);
120
144
  const messages = [];
145
+ const deferredToolsMode = resolveResponsesDeferredToolsMode(options);
146
+ const toolPlacement = resolveResponsesToolPlacement(normalizedContext.messages, deferredToolsMode !== undefined);
147
+ const declaredTools = getDeclaredTools(normalizedContext.messages);
148
+ // One ledger for both in-place loading paths: transcript system messages and `addedToolNames`.
121
149
  const loadedToolNames = new Set();
122
150
  const normalizeIdPart = (part) => {
123
151
  const sanitized = part.replace(/[^a-zA-Z0-9_-]/g, "_");
@@ -146,25 +174,52 @@ export function convertResponsesMessages(model, context, allowedToolCallProvider
146
174
  }
147
175
  return `${normalizedCallId}|${normalizedItemId}`;
148
176
  };
149
- const transformedMessages = transformMessages(context.messages, model, normalizeToolCallId, {
177
+ const transformedMessages = transformMessages(normalizedContext.messages, model, normalizeToolCallId, {
150
178
  preserveThinking: options?.preserveThinking,
151
179
  preserveTextSignatures: options?.preserveTextSignatures,
152
180
  });
153
- const includeSystemPrompt = options?.includeSystemPrompt ?? true;
154
- if (includeSystemPrompt && context.systemPrompt) {
155
- const compat = model.compat;
156
- const role = model.reasoning && compat?.supportsDeveloperRole !== false ? "developer" : "system";
157
- const text = sanitizeSurrogates(context.systemPrompt);
158
- if (options?.systemPromptCacheBreakpoint === true) {
159
- const block = { type: "input_text", text, prompt_cache_breakpoint: { mode: "explicit" } };
160
- messages.push({ role, content: [block] });
161
- }
162
- else {
163
- messages.push({ role, content: text });
181
+ const appendSystemToolAdditions = (message, seed) => {
182
+ const tools = toolPlacement.anchorsAdditions
183
+ ? (message.toolsAdded ?? []).filter((tool) => !loadedToolNames.has(tool.name))
184
+ : [];
185
+ if (tools.length === 0)
186
+ return;
187
+ for (const tool of tools)
188
+ loadedToolNames.add(tool.name);
189
+ if (options?.supportsAdditionalTools) {
190
+ messages.push({
191
+ type: "additional_tools",
192
+ role: "developer",
193
+ tools: convertResponsesTools(tools, options.toolOptions),
194
+ });
195
+ return;
164
196
  }
165
- }
197
+ if (!options?.supportsToolSearch)
198
+ return;
199
+ const names = tools.map((tool) => tool.name);
200
+ const callId = `pi_tool_load_${shortHash(`${seed}:${names.join(",")}`)}`;
201
+ messages.push({
202
+ type: "tool_search_call",
203
+ call_id: callId,
204
+ execution: "client",
205
+ status: "completed",
206
+ arguments: { query: names.join(" "), limit: names.length },
207
+ });
208
+ messages.push({
209
+ type: "tool_search_output",
210
+ call_id: callId,
211
+ execution: "client",
212
+ status: "completed",
213
+ tools: convertResponsesTools(tools, { ...options.toolOptions, toolSearchResult: true }),
214
+ });
215
+ };
216
+ const includeInitialSystemMessage = options?.includeSystemPrompt ?? true;
217
+ const compat = model.compat;
218
+ const instructionRole = model.reasoning && compat?.supportsDeveloperRole !== false ? "developer" : "system";
166
219
  let msgIndex = 0;
220
+ let sourceIndex = 0;
167
221
  for (const msg of transformedMessages) {
222
+ const isLeadingSystemMessage = sourceIndex++ === 0 && msg.role === "system";
168
223
  if (msg.role === "configurationUpdate") {
169
224
  if (!supportsConfigurationUpdate(model))
170
225
  continue;
@@ -180,7 +235,25 @@ export function convertResponsesMessages(model, context, allowedToolCallProvider
180
235
  }
181
236
  continue;
182
237
  }
183
- if (msg.role === "user") {
238
+ if (msg.role === "system") {
239
+ if (!isLeadingSystemMessage)
240
+ appendSystemToolAdditions(msg, `system:${msgIndex}`);
241
+ if (!isLeadingSystemMessage || includeInitialSystemMessage) {
242
+ const text = isLeadingSystemMessage ? getSystemMessageText(msg) : renderSystemMessageUpdate(msg);
243
+ if (text.length > 0 && isLeadingSystemMessage && options?.systemPromptCacheBreakpoint === true) {
244
+ const block = {
245
+ type: "input_text",
246
+ text: sanitizeSurrogates(text),
247
+ prompt_cache_breakpoint: { mode: "explicit" },
248
+ };
249
+ messages.push({ role: instructionRole, content: [block] });
250
+ }
251
+ else if (text.length > 0) {
252
+ messages.push({ role: instructionRole, content: sanitizeSurrogates(text) });
253
+ }
254
+ }
255
+ }
256
+ else if (msg.role === "user") {
184
257
  if (typeof msg.content === "string") {
185
258
  messages.push(withContextProvenance({
186
259
  role: "user",
@@ -259,7 +332,7 @@ export function convertResponsesMessages(model, context, allowedToolCallProvider
259
332
  const [callId, itemIdRaw] = toolCall.id.split("|");
260
333
  const customInputProperty = options?.grammarToolInputProperties?.get(toolCall.name);
261
334
  const isPersistedFreeform = itemIdRaw === CUSTOM_TOOL_CALL_ITEM_ID_SENTINEL;
262
- const isFreeform = isFreeformToolName(toolCall.name, context.tools) || isPersistedFreeform;
335
+ const isFreeform = isFreeformToolName(toolCall.name, declaredTools) || isPersistedFreeform;
263
336
  let itemId = isPersistedFreeform ? undefined : itemIdRaw;
264
337
  // An active grammar declaration wins over sentinel recovery below: its
265
338
  // named input property is richer than the persisted freeform fallback.
@@ -272,7 +345,7 @@ export function convertResponsesMessages(model, context, allowedToolCallProvider
272
345
  (!isFreeform && customInputProperty === undefined && !itemId?.startsWith("fc_"))) {
273
346
  itemId = undefined;
274
347
  }
275
- const canReplayNamespace = isSameModel || options?.deferredTools?.has(toolCall.name) === true;
348
+ const canReplayNamespace = isSameModel || toolPlacement.deferred.has(toolCall.name);
276
349
  if (customInputProperty !== undefined) {
277
350
  output.push({
278
351
  type: "custom_tool_call",
@@ -326,7 +399,7 @@ export function convertResponsesMessages(model, context, allowedToolCallProvider
326
399
  output,
327
400
  }, msg, options?.sealContextProvenance));
328
401
  }
329
- else if (isFreeformToolName(msg.toolName, context.tools) || isPersistedFreeform) {
402
+ else if (isFreeformToolName(msg.toolName, declaredTools) || isPersistedFreeform) {
330
403
  messages.push(withContextProvenance({
331
404
  type: "custom_tool_call_output",
332
405
  call_id: callId,
@@ -339,20 +412,20 @@ export function convertResponsesMessages(model, context, allowedToolCallProvider
339
412
  }
340
413
  const deferredTools = [];
341
414
  for (const name of msg.addedToolNames ?? []) {
342
- const tool = options?.deferredTools?.get(name);
415
+ const tool = toolPlacement.deferred.get(name);
343
416
  if (!tool || loadedToolNames.has(name))
344
417
  continue;
345
418
  loadedToolNames.add(name);
346
419
  deferredTools.push(tool);
347
420
  }
348
- if (deferredTools.length > 0 && options?.deferredToolsMode === "additional-tools") {
421
+ if (deferredTools.length > 0 && deferredToolsMode === "additional-tools") {
349
422
  messages.push(withContextProvenance({
350
423
  type: "additional_tools",
351
424
  role: "developer",
352
- tools: convertResponsesTools(deferredTools, options.toolOptions),
353
- }, msg, options.sealContextProvenance));
425
+ tools: convertResponsesTools(deferredTools, options?.toolOptions),
426
+ }, msg, options?.sealContextProvenance));
354
427
  }
355
- else if (deferredTools.length > 0 && options?.deferredToolsMode === "tool-search") {
428
+ else if (deferredTools.length > 0 && deferredToolsMode === "tool-search") {
356
429
  const names = deferredTools.map((tool) => tool.name);
357
430
  const searchCallId = `pi_tool_load_${shortHash(`${msg.toolCallId}:${names.join(",")}`)}`;
358
431
  messages.push(withContextProvenance({
@@ -369,12 +442,13 @@ export function convertResponsesMessages(model, context, allowedToolCallProvider
369
442
  status: "completed",
370
443
  tools: convertResponsesTools(deferredTools, {
371
444
  ...options?.toolOptions,
372
- deferLoading: true,
445
+ toolSearchResult: true,
373
446
  }),
374
447
  }, msg, options?.sealContextProvenance));
375
448
  }
376
449
  }
377
- msgIndex++;
450
+ if (!isLeadingSystemMessage)
451
+ msgIndex++;
378
452
  }
379
453
  return messages;
380
454
  }
@@ -397,7 +471,7 @@ export function convertResponsesTools(tools, options) {
397
471
  syntax: grammar.format,
398
472
  definition: grammar.definition,
399
473
  },
400
- ...(options?.deferLoading ? { defer_loading: true } : {}),
474
+ ...(options?.toolSearchResult ? { defer_loading: true } : {}),
401
475
  };
402
476
  }
403
477
  if (tool.freeform) {
@@ -406,7 +480,7 @@ export function convertResponsesTools(tools, options) {
406
480
  name: tool.name,
407
481
  description: tool.description,
408
482
  format: tool.freeform,
409
- ...(options?.deferLoading ? { defer_loading: true } : {}),
483
+ ...(options?.toolSearchResult ? { defer_loading: true } : {}),
410
484
  };
411
485
  }
412
486
  const constrainedStrict = resolveJsonSchemaStrictSampling(tool, supportsStrictMode);
@@ -416,7 +490,7 @@ export function convertResponsesTools(tools, options) {
416
490
  name: tool.name,
417
491
  description: tool.description,
418
492
  parameters: getJsonSchemaToolParameters(tool, strict === true),
419
- ...(options?.deferLoading ? { defer_loading: true } : {}),
493
+ ...(options?.toolSearchResult ? { defer_loading: true } : {}),
420
494
  };
421
495
  if (supportsStrictMode) {
422
496
  functionTool.strict = strict;
@@ -712,6 +786,7 @@ export async function processResponsesStream(openaiStream, output, stream, model
712
786
  }
713
787
  };
714
788
  for await (const event of withResponsesCompletionGrace(openaiStream)) {
789
+ await options?.onProviderStreamEvent?.(event, model);
715
790
  if (event.type === "response.created") {
716
791
  output.responseId = event.response.id;
717
792
  }
@@ -898,7 +973,10 @@ export async function processResponsesStream(openaiStream, output, stream, model
898
973
  finalizeResponse(event.response);
899
974
  }
900
975
  else if (event.type === "error") {
901
- throw new Error(`Error Code ${event.code}: ${event.message}` || "Unknown error");
976
+ const errorEvent = event;
977
+ const code = errorEvent.error?.code ?? errorEvent.code ?? errorEvent.status;
978
+ const message = errorEvent.error?.message || errorEvent.message || "Unknown error";
979
+ throw new Error(code == null ? message : `Error Code ${code}: ${message}`);
902
980
  }
903
981
  else if (event.type === "response.failed") {
904
982
  sawTerminalResponseEvent = true;
@@ -917,6 +995,19 @@ export async function processResponsesStream(openaiStream, output, stream, model
917
995
  if (!sawTerminalResponseEvent && !hasFinalizedToolCall) {
918
996
  throw new Error("OpenAI Responses stream ended before a terminal response event");
919
997
  }
998
+ // The agent runs every tool call in the final message. Refuse to hand over calls whose
999
+ // output_item.done never arrived: their arguments may be cut off or mixed up, e.g. when a
1000
+ // non-compliant server omits output_index. Finished calls have their scratch buffers removed.
1001
+ if (output.stopReason === "toolUse") {
1002
+ for (const block of output.content) {
1003
+ if (block.type !== "toolCall")
1004
+ continue;
1005
+ const toolCall = block;
1006
+ if (toolCall.partialJson !== undefined || toolCall.customInput !== undefined) {
1007
+ throw new Error(`OpenAI Responses stream completed with an unfinished tool call: ${toolCall.name} (${toolCall.id})`);
1008
+ }
1009
+ }
1010
+ }
920
1011
  }
921
1012
  function mapStopReason(status, incompleteReason) {
922
1013
  if (!status)
@@ -17,7 +17,7 @@ export interface CachedWebSocketConnection {
17
17
  export interface OpenAIResponsesOptions extends StreamOptions {
18
18
  reasoningEffort?: "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
19
19
  reasoningSummary?: "auto" | "detailed" | "concise" | null;
20
- serviceTier?: ResponseCreateParamsStreaming["service_tier"] | "fast";
20
+ serviceTier?: ResponseCreateParamsStreaming["service_tier"] | "fast" | "ultrafast";
21
21
  toolChoice?: ResponseCreateParamsStreaming["tool_choice"];
22
22
  }
23
23
  /**