@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
@@ -21,9 +21,11 @@ import { appendRetryAfterMsMarker, extract429RetryAfterMs } from "../utils/retry
21
21
  import { normalizeAnthropicRetryFailure } from "../utils/retry-profile/failure.js";
22
22
  import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
23
23
  import { applyServerFallbackAbort, applyServerFallbackContinuation, parseServerFallbackReceipt, parseStickyFallbackReceipt, } from "../utils/server-fallback-receipt.js";
24
+ import { getSystemMessageText, renderSystemMessageUpdate } from "../utils/text.js";
24
25
  import { normalizeToolCallId } from "../utils/tool-call-id.js";
25
26
  import { sendWithForcedToolChoiceFallback } from "../utils/tool-choice-fallback.js";
26
27
  import { resolveRootObjectSchema } from "../utils/tool-schema-compat.js";
28
+ import { getCurrentTools, getDeclaredTools, getInitialSystemMessage, hasToolRedefinitions, normalizeContext, resolveTranscript, } from "../utils/transcript.js";
27
29
  import { sanitizeAnthropicToolPairs } from "./anthropic-tool-pairs.js";
28
30
  import { demoteUnavailableToolReferences } from "./anthropic-tool-references.js";
29
31
  import { resolveCloudflareBaseUrl } from "./cloudflare.js";
@@ -68,7 +70,7 @@ function getCacheControl(model, cacheRetention, env) {
68
70
  // The bundled Claude Code version and the floor of the advertised `claude-cli/<version>`
69
71
  // (see utils/claude-code-version.ts). Keep this exact declaration: a downstream installer
70
72
  // (oh-my-openagent) rewrites it byte-for-byte in the installed dist and bundle.
71
- const claudeCodeVersion = "2.1.284";
73
+ const claudeCodeVersion = "2.1.285";
72
74
  // Claude Code 2.x tool names (canonical casing)
73
75
  // Source: https://cchistory.mariozechner.at/data/prompts-2.1.11.md
74
76
  // To update: https://github.com/badlogic/cchistory
@@ -204,6 +206,28 @@ function shouldUseServerSideFallbackBeta(model) {
204
206
  }
205
207
  const MID_CONVERSATION_OUTPUT_CONFIG_BETA = "mid-conversation-output-config-2026-07-01";
206
208
  const THINKING_BINDING_CONTROLS_BETA = "thinking-binding-controls-2026-08-01";
209
+ const MID_CONVERSATION_TOOL_CHANGES_BETA = "mid-conversation-tool-changes-2026-07-01";
210
+ /**
211
+ * Stable deferred tool declared whenever native tool changes are in use. Anthropic adds
212
+ * hidden prompt scaffolding as soon as any tool has `defer_loading`; declaring this
213
+ * placeholder from the first request keeps that scaffolding in the cached prefix, so the
214
+ * first real late tool does not invalidate the cache (measured: full miss without it).
215
+ * It is never activated and the model cannot see it.
216
+ */
217
+ const DEFERRED_TOOL_PLACEHOLDER = {
218
+ name: "__pi_deferred_placeholder__",
219
+ description: "Reserved placeholder. Never available. Never call this.",
220
+ input_schema: { type: "object", properties: {}, required: [] },
221
+ defer_loading: true,
222
+ };
223
+ // Upstream mid-conversation system messages and native tool changes. Read from the model
224
+ // compat directly: both default off, and the shared getAnthropicCompat keeps fork defaults.
225
+ function supportsMidConvoSystemMessages(model) {
226
+ return model.compat?.supportsMidConvoSystemMessages ?? false;
227
+ }
228
+ function supportsMidConvoToolChanges(model) {
229
+ return model.compat?.supportsMidConvoToolChanges ?? false;
230
+ }
207
231
  // A provider can reject its own empty signatures. Learn that capability for one
208
232
  // conversation without changing the shared model definition used by other sessions.
209
233
  const unsignedThinkingTextReplayFallbacks = new Set();
@@ -658,6 +682,15 @@ function isToolLoopContinuation(messages) {
658
682
  Array.isArray(preceding.content) &&
659
683
  preceding.content.some((block) => block.type === "tool_use"));
660
684
  }
685
+ function markSystemMessageCacheCheckpoint(message, cacheControl) {
686
+ if (!Array.isArray(message.content))
687
+ return;
688
+ const lastBlock = message.content[message.content.length - 1];
689
+ if (lastBlock &&
690
+ (lastBlock.type === "text" || lastBlock.type === "tool_addition" || lastBlock.type === "tool_removal")) {
691
+ lastBlock.cache_control = cacheControl;
692
+ }
693
+ }
661
694
  function markUserMessageCacheCheckpoint(message, cacheControl) {
662
695
  if (message.role !== "user")
663
696
  return false;
@@ -832,6 +865,8 @@ async function* iterateAnthropicEvents(response, signal) {
832
865
  }
833
866
  export const stream = (model, context, options) => {
834
867
  const stream = new AssistantMessageEventStream();
868
+ const normalizedContext = resolveTranscript(context, supportsMidConvoSystemMessages(model));
869
+ const currentTools = getCurrentTools(normalizedContext.messages);
835
870
  (async () => {
836
871
  const providerThinkingLevel = model.compat?.supportsMidConvoEffort ? (options?.effort ?? "high") : undefined;
837
872
  const output = {
@@ -872,16 +907,16 @@ export const stream = (model, context, options) => {
872
907
  assertRequestAuth(model.provider, apiKey, optionsHeaders);
873
908
  let copilotDynamicHeaders;
874
909
  if (model.provider === "github-copilot") {
875
- const hasImages = hasCopilotVisionInput(context.messages);
910
+ const hasImages = hasCopilotVisionInput(normalizedContext.messages);
876
911
  copilotDynamicHeaders = buildCopilotDynamicHeaders({
877
- messages: context.messages,
912
+ messages: normalizedContext.messages,
878
913
  hasImages,
879
914
  });
880
915
  }
881
916
  const cacheRetention = resolveCacheRetention(options?.cacheRetention ?? model.cacheRetention, options?.env, "short");
882
917
  const cacheSessionId = cacheRetention === "none" ? undefined : options?.sessionId;
883
918
  openClient = () => {
884
- const created = createClient(model, apiKey, options?.interleavedThinking ?? true, shouldUseFineGrainedToolStreamingBeta(model, context), options?.refusalFallbacks !== undefined, optionsHeaders, options?.fetch, copilotDynamicHeaders, cacheSessionId, options?.env);
919
+ const created = createClient(model, apiKey, options?.interleavedThinking ?? true, shouldUseFineGrainedToolStreamingBeta(model, normalizedContext), options?.refusalFallbacks !== undefined, optionsHeaders, options?.fetch, copilotDynamicHeaders, cacheSessionId, options?.env);
885
920
  client = created.client;
886
921
  isOAuth = created.isOAuthToken;
887
922
  advertisedClaudeCodeVersion = created.claudeCodeVersion;
@@ -915,7 +950,7 @@ export const stream = (model, context, options) => {
915
950
  ? "text"
916
951
  : getAnthropicCompat(model).unsignedThinkingReplay;
917
952
  const createRequest = async () => {
918
- let params = buildParams(model, context, isOAuth, options, unsignedThinkingReplay);
953
+ let params = buildParams(model, normalizedContext, isOAuth, options, unsignedThinkingReplay);
919
954
  const nextParams = await options?.onPayload?.(params, model);
920
955
  if (nextParams !== undefined) {
921
956
  params = nextParams;
@@ -994,19 +1029,29 @@ export const stream = (model, context, options) => {
994
1029
  stream.push({ type: "start", partial: output });
995
1030
  const blocks = output.content;
996
1031
  for await (const event of iterateAnthropicEvents(response, requestSignal)) {
1032
+ await options?.onProviderStreamEvent?.(event, model);
997
1033
  if (event.type === "message_start") {
998
1034
  output.responseId = event.message.id;
999
1035
  const transformations = event.message.input_transformations;
1000
1036
  if (Array.isArray(transformations))
1001
1037
  inputTransformations = transformations;
1002
- output.model = event.message.model;
1003
- const fallback = output.model === model.id
1038
+ // Relays may report a renamed model for the same deployment, so the requested id stays
1039
+ // on the message (signed thinking keeps replaying) and the reported id is recorded
1040
+ // separately. A served model that is one of the request's allowed server-side
1041
+ // fallbacks is a real substitution: it becomes the message model, as the fork's
1042
+ // fallback-boundary replay and receipts expect.
1043
+ const responseModel = event.message.model;
1044
+ if (responseModel !== model.id)
1045
+ output.responseModel = responseModel;
1046
+ const fallback = responseModel === model.id
1004
1047
  ? undefined
1005
- : model.compat?.allowedFallbackModels?.find((candidate) => typeof candidate !== "string" &&
1006
- candidate.provider === model.provider &&
1007
- candidate.model === output.model);
1048
+ : model.compat?.allowedFallbackModels?.find((candidate) => typeof candidate === "string"
1049
+ ? candidate === responseModel
1050
+ : candidate.provider === model.provider && candidate.model === responseModel);
1051
+ if (fallback !== undefined)
1052
+ output.model = responseModel;
1008
1053
  const fallbackCost = typeof fallback === "string" ? undefined : fallback?.cost;
1009
- usageModel = fallbackCost ? { ...model, id: output.model, cost: fallbackCost } : model;
1054
+ usageModel = fallbackCost ? { ...model, id: responseModel, cost: fallbackCost } : model;
1010
1055
  // Capture initial token usage from message_start event
1011
1056
  // This ensures we have input token counts even if the stream is aborted early
1012
1057
  output.usage.input = event.message.usage.input_tokens || 0;
@@ -1072,9 +1117,11 @@ export const stream = (model, context, options) => {
1072
1117
  type: "toolCall",
1073
1118
  id: event.content_block.id,
1074
1119
  name: isOAuth
1075
- ? fromClaudeCodeName(event.content_block.name, context.tools)
1120
+ ? fromClaudeCodeName(event.content_block.name, currentTools)
1076
1121
  : event.content_block.name,
1077
- arguments: isRecord(event.content_block.input) ? event.content_block.input : {},
1122
+ arguments: isRecord(event.content_block.input)
1123
+ ? event.content_block.input
1124
+ : {},
1078
1125
  partialJson: "",
1079
1126
  index: event.index,
1080
1127
  };
@@ -1220,6 +1267,11 @@ export const stream = (model, context, options) => {
1220
1267
  if (event.usage.cache_creation_input_tokens != null) {
1221
1268
  output.usage.cacheWrite = event.usage.cache_creation_input_tokens;
1222
1269
  }
1270
+ // Vercel AI Gateway includes the TTL breakdown in deltas, though the SDK only types it on message_start.
1271
+ const cacheCreation = event.usage.cache_creation;
1272
+ if (cacheCreation?.ephemeral_1h_input_tokens != null) {
1273
+ output.usage.cacheWrite1h = cacheCreation.ephemeral_1h_input_tokens;
1274
+ }
1223
1275
  // Anthropic reports reasoning tokens as a subset of output tokens.
1224
1276
  const thinkingTokens = event.usage.output_tokens_details?.thinking_tokens;
1225
1277
  if (thinkingTokens != null) {
@@ -1510,7 +1562,10 @@ function createClient(model, apiKey, interleavedThinking, useFineGrainedToolStre
1510
1562
  return { client, isOAuthToken: false };
1511
1563
  }
1512
1564
  export function buildAnthropicWarmPromptCacheParams(model, context, options) {
1513
- const params = buildParams(model, context, false, {
1565
+ // Public fork entry (warmPromptCache, cache-keepalive): accepts a raw Context and builds
1566
+ // the same transcript the turn's stream() resolves, so the warmed prefix matches.
1567
+ const transcript = resolveTranscript(normalizeContext(context), supportsMidConvoSystemMessages(model));
1568
+ const params = buildParams(model, transcript, false, {
1514
1569
  ...options,
1515
1570
  maxTokens: 0,
1516
1571
  thinkingEnabled: undefined,
@@ -1522,7 +1577,7 @@ export function buildAnthropicWarmPromptCacheParams(model, context, options) {
1522
1577
  max_tokens: 0,
1523
1578
  });
1524
1579
  }
1525
- function getBetaFeatures(model, context, isOAuthToken, options) {
1580
+ function getBetaFeatures(model, context, isOAuthToken, nativeToolChanges, options) {
1526
1581
  let configuredFeatures;
1527
1582
  for (const headers of [model.headers, options?.headers]) {
1528
1583
  for (const [name, value] of Object.entries(headers ?? {})) {
@@ -1556,22 +1611,41 @@ function getBetaFeatures(model, context, isOAuthToken, options) {
1556
1611
  if (model.compat?.supportsMidConvoEffort === true) {
1557
1612
  features.push(MID_CONVERSATION_OUTPUT_CONFIG_BETA, THINKING_BINDING_CONTROLS_BETA);
1558
1613
  }
1614
+ if (nativeToolChanges)
1615
+ features.push(MID_CONVERSATION_TOOL_CHANGES_BETA);
1559
1616
  return [...new Set(features)];
1560
1617
  }
1561
1618
  function buildParams(model, context, isOAuthToken, options, unsignedThinkingReplay = getAnthropicCompat(model).unsignedThinkingReplay) {
1562
1619
  const compat = getAnthropicCompat(model);
1563
1620
  const { cacheControl } = getCacheControl(model, options?.cacheRetention ?? model.cacheRetention, options?.env);
1621
+ const initialSystemMessage = getInitialSystemMessage(context.messages);
1622
+ const initialSystemText = initialSystemMessage ? getSystemMessageText(initialSystemMessage) : "";
1564
1623
  const transformedMessages = transformMessages(context.messages, model, normalizeToolCallId, {
1565
1624
  preserveThinking: options?.thinkingEnabled === true,
1566
1625
  preserveUnsignedThinking: true,
1567
1626
  });
1627
+ // The prompt travels in `params.system`; the leading system message is not a turn.
1628
+ const conversationMessages = initialSystemMessage ? transformedMessages.slice(1) : transformedMessages;
1629
+ // Native tool changes reference tools by name, so a redefined name cannot be expressed,
1630
+ // and Anthropic rejects a tool list where every tool is deferred, so there must be an
1631
+ // initial active tool to anchor the deferred ones. Otherwise the current tool list is sent.
1632
+ const initialTools = initialSystemMessage?.toolsAdded ?? [];
1633
+ const nativeToolChanges = supportsMidConvoSystemMessages(model) &&
1634
+ supportsMidConvoToolChanges(model) &&
1635
+ initialTools.length > 0 &&
1636
+ !hasToolRedefinitions(context.messages);
1568
1637
  const normalizeToolName = isOAuthToken ? toClaudeCodeName : (name) => name;
1569
1638
  // A marker on a discarded pre-fallback result must not defer its tool:
1570
1639
  // convertMessages drops that result, so no tool_reference would replay to
1571
1640
  // load the deferred definition.
1572
- const discardedFallbackToolCallIds = collectDiscardedFallbackToolCallIds(transformedMessages, model);
1573
- const partitionMessages = transformedMessages.filter((message) => !(message.role === "toolResult" && discardedFallbackToolCallIds.has(message.toolCallId)));
1574
- const toolPlacement = splitDeferredTools({ ...context, messages: partitionMessages }, compat.supportsToolReferences, normalizeToolName);
1641
+ const discardedFallbackToolCallIds = collectDiscardedFallbackToolCallIds(conversationMessages, model);
1642
+ const partitionMessages = conversationMessages.filter((message) => !(message.role === "toolResult" && discardedFallbackToolCallIds.has(message.toolCallId)));
1643
+ // Without native tool changes, the fork's transcript-loaded deferral applies to the current
1644
+ // tool list: tools first surfaced by a tool result's `addedToolNames` are declared with
1645
+ // `defer_loading` and loaded by a `tool_reference`. Native tool changes own deferral otherwise.
1646
+ const toolPlacement = nativeToolChanges
1647
+ ? { immediate: [], deferred: new Map() }
1648
+ : splitDeferredTools({ tools: getCurrentTools(context.messages), messages: partitionMessages }, compat.supportsToolReferences, normalizeToolName);
1575
1649
  let immediateTools = toolPlacement.immediate;
1576
1650
  let deferredTools = [...toolPlacement.deferred.values()];
1577
1651
  if (immediateTools.length === 0 && deferredTools.length > 0) {
@@ -1580,8 +1654,8 @@ function buildParams(model, context, isOAuthToken, options, unsignedThinkingRepl
1580
1654
  }
1581
1655
  const deferredToolNames = new Set(deferredTools.map((tool) => normalizeToolName(tool.name)));
1582
1656
  const activeEffort = options?.effort ?? "high";
1583
- const betaFeatures = getBetaFeatures(model, context, isOAuthToken, options);
1584
- const convertedMessages = convertMessages(transformedMessages, model, isOAuthToken, cacheControl, unsignedThinkingReplay, deferredToolNames, normalizeToolName, model.compat?.supportsMidConvoEffort === true ? model.provider : undefined);
1657
+ const betaFeatures = getBetaFeatures(model, context, isOAuthToken, nativeToolChanges, options);
1658
+ const convertedMessages = convertMessages(conversationMessages, model, isOAuthToken, cacheControl, unsignedThinkingReplay, deferredToolNames, normalizeToolName, model.compat?.supportsMidConvoEffort === true ? model.provider : undefined, nativeToolChanges);
1585
1659
  const messages = model.compat?.supportsMidConvoEffort === true
1586
1660
  ? insertThinkingLevelMessages(convertedMessages, activeEffort)
1587
1661
  : convertedMessages.messages;
@@ -1589,8 +1663,13 @@ function buildParams(model, context, isOAuthToken, options, unsignedThinkingRepl
1589
1663
  // against the actual last user/tool-result message so the marker cannot displace cache_control.
1590
1664
  if (model.compat?.supportsMidConvoEffort === true && cacheControl) {
1591
1665
  for (let index = messages.length - 1; index >= 0; index--) {
1592
- if (messages[index].role === "user") {
1593
- markUserMessageCacheCheckpoint(messages[index], cacheControl);
1666
+ const message = messages[index];
1667
+ // A native system update after the last turn already holds the checkpoint;
1668
+ // effort markers carry no content.
1669
+ if (message.role === "system" && Array.isArray(message.content) && message.content.length > 0)
1670
+ break;
1671
+ if (message.role === "user") {
1672
+ markUserMessageCacheCheckpoint(message, cacheControl);
1594
1673
  break;
1595
1674
  }
1596
1675
  }
@@ -1608,23 +1687,23 @@ function buildParams(model, context, isOAuthToken, options, unsignedThinkingRepl
1608
1687
  {
1609
1688
  type: "text",
1610
1689
  text: "You are Claude Code, Anthropic's official CLI for Claude.",
1611
- ...(!context.systemPrompt && cacheControl ? { cache_control: cacheControl } : {}),
1690
+ ...(!initialSystemText && cacheControl ? { cache_control: cacheControl } : {}),
1612
1691
  },
1613
1692
  ];
1614
- if (context.systemPrompt) {
1693
+ if (initialSystemText) {
1615
1694
  params.system.push({
1616
1695
  type: "text",
1617
- text: sanitizeSurrogates(context.systemPrompt),
1696
+ text: sanitizeSurrogates(initialSystemText),
1618
1697
  ...(cacheControl ? { cache_control: cacheControl } : {}),
1619
1698
  });
1620
1699
  }
1621
1700
  }
1622
- else if (context.systemPrompt) {
1701
+ else if (initialSystemText) {
1623
1702
  // Add cache control to system prompt for non-OAuth tokens
1624
1703
  params.system = [
1625
1704
  {
1626
1705
  type: "text",
1627
- text: sanitizeSurrogates(context.systemPrompt),
1706
+ text: sanitizeSurrogates(initialSystemText),
1628
1707
  ...(cacheControl ? { cache_control: cacheControl } : {}),
1629
1708
  },
1630
1709
  ];
@@ -1638,9 +1717,23 @@ function buildParams(model, context, isOAuthToken, options, unsignedThinkingRepl
1638
1717
  configurable: true,
1639
1718
  });
1640
1719
  }
1641
- if (immediateTools.length > 0 || deferredTools.length > 0) {
1720
+ const toolCacheControl = compat.supportsCacheControlOnTools ? cacheControl : undefined;
1721
+ if (nativeToolChanges) {
1722
+ // Initial tools stay active with the cache breakpoint on the last one. Every later
1723
+ // declaration is deferred and only surfaced by its `tool_addition` block; removed
1724
+ // tools stay declared and are withdrawn by `tool_removal`. The request-level list
1725
+ // therefore only grows, keeping the cached prefix intact across tool changes.
1726
+ const initialNames = new Set(initialTools.map((tool) => tool.name));
1727
+ const laterTools = getDeclaredTools(context.messages).filter((tool) => !initialNames.has(tool.name));
1642
1728
  params.tools = [
1643
- ...convertTools(immediateTools, isOAuthToken, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools, compat.supportsCacheControlOnTools ? cacheControl : undefined),
1729
+ ...convertTools(initialTools, isOAuthToken, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools, toolCacheControl),
1730
+ DEFERRED_TOOL_PLACEHOLDER,
1731
+ ...convertTools(laterTools, isOAuthToken, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools, undefined, true),
1732
+ ];
1733
+ }
1734
+ else if (immediateTools.length > 0 || deferredTools.length > 0) {
1735
+ params.tools = [
1736
+ ...convertTools(immediateTools, isOAuthToken, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools, toolCacheControl),
1644
1737
  ...convertTools(deferredTools, isOAuthToken, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools, undefined, true),
1645
1738
  ];
1646
1739
  }
@@ -1791,10 +1884,20 @@ function convertToolResult(msg, isOAuthToken, deferredToolNames, loadedToolNames
1791
1884
  : convertedContent,
1792
1885
  };
1793
1886
  }
1794
- function convertMessages(transformedMessages, model, isOAuthToken, cacheControl, unsignedThinkingReplay = "text", deferredToolNames = new Set(), normalizeToolName = (name) => name, managedProvider) {
1887
+ function convertMessages(transformedMessages, model, isOAuthToken, cacheControl, unsignedThinkingReplay = "text", deferredToolNames = new Set(), normalizeToolName = (name) => name, managedProvider, nativeToolChanges = false) {
1795
1888
  const params = [];
1796
1889
  const assistantLevels = new Map();
1797
1890
  const loadedToolNames = new Set();
1891
+ // Later system messages are held back and emitted directly before the next assistant
1892
+ // message (or at the end of the transcript). Anthropic requires `tool_result` blocks to
1893
+ // immediately follow their `tool_use`, so a system message between them is rejected; this
1894
+ // also mirrors where the managed-effort system messages are inserted. As a result an
1895
+ // update placed before a user message in the transcript lands after it on the wire.
1896
+ const pendingSystemMessages = [];
1897
+ const flushPendingSystemMessages = () => {
1898
+ params.push(...pendingSystemMessages);
1899
+ pendingSystemMessages.length = 0;
1900
+ };
1798
1901
  // Tool calls from a declined pre-fallback attempt are dropped from their
1799
1902
  // assistant turn below; drop their tool_results in lockstep so none dangle.
1800
1903
  const discardedFallbackToolCallIds = collectDiscardedFallbackToolCallIds(transformedMessages, model);
@@ -1802,7 +1905,31 @@ function convertMessages(transformedMessages, model, isOAuthToken, cacheControl,
1802
1905
  const providerNativeToolPairing = collectProviderNativeToolPairing(transformedMessages, model, deferredToolNames, normalizeToolName, discardedFallbackToolCallIds);
1803
1906
  for (let i = 0; i < transformedMessages.length; i++) {
1804
1907
  const msg = transformedMessages[i];
1805
- if (msg.role === "user") {
1908
+ if (msg.role === "system") {
1909
+ // Later system messages only reach this point when the model accepts them natively;
1910
+ // otherwise the transcript was collapsed into the leading message before conversion.
1911
+ const text = renderSystemMessageUpdate(msg);
1912
+ const blocks = [];
1913
+ if (text.length > 0)
1914
+ blocks.push({ type: "text", text: sanitizeSurrogates(text) });
1915
+ if (nativeToolChanges) {
1916
+ for (const tool of msg.toolsRemoved ?? []) {
1917
+ blocks.push({
1918
+ type: "tool_removal",
1919
+ tool: { type: "tool_reference", name: isOAuthToken ? toClaudeCodeName(tool.name) : tool.name },
1920
+ });
1921
+ }
1922
+ for (const tool of msg.toolsAdded ?? []) {
1923
+ blocks.push({
1924
+ type: "tool_addition",
1925
+ tool: { type: "tool_reference", name: isOAuthToken ? toClaudeCodeName(tool.name) : tool.name },
1926
+ });
1927
+ }
1928
+ }
1929
+ if (blocks.length > 0)
1930
+ pendingSystemMessages.push({ role: "system", content: blocks });
1931
+ }
1932
+ else if (msg.role === "user") {
1806
1933
  if (typeof msg.content === "string") {
1807
1934
  if (msg.content.trim().length > 0) {
1808
1935
  const content = sanitizeSurrogates(msg.content);
@@ -1855,6 +1982,7 @@ function convertMessages(transformedMessages, model, isOAuthToken, cacheControl,
1855
1982
  }
1856
1983
  }
1857
1984
  else if (msg.role === "assistant") {
1985
+ flushPendingSystemMessages();
1858
1986
  const blocks = [];
1859
1987
  const isSameModel = isSameAnthropicModel(msg, model);
1860
1988
  // Blocks before the final fallback marker are the declined attempt; the
@@ -1977,6 +2105,14 @@ function convertMessages(transformedMessages, model, isOAuthToken, cacheControl,
1977
2105
  appendUserBlocks(params, [...toolResults, ...siblingContent]);
1978
2106
  }
1979
2107
  }
2108
+ flushPendingSystemMessages();
2109
+ // A trailing native system update carries the history checkpoint itself (upstream);
2110
+ // otherwise the fork's final-user and tool-loop checkpoints apply.
2111
+ const lastParam = params[params.length - 1];
2112
+ if (cacheControl && lastParam?.role === "system") {
2113
+ markSystemMessageCacheCheckpoint(lastParam, cacheControl);
2114
+ return { messages: params, assistantLevels };
2115
+ }
1980
2116
  const retainPrecedingCheckpoint = isToolLoopContinuation(params);
1981
2117
  if (cacheControl && params.length > 0 && markUserMessageCacheCheckpoint(params[params.length - 1], cacheControl)) {
1982
2118
  if (retainPrecedingCheckpoint) {
@@ -2004,7 +2140,7 @@ function insertThinkingLevelMessages(converted, activeEffort) {
2004
2140
  return messages;
2005
2141
  }
2006
2142
  function shouldUseFineGrainedToolStreamingBeta(model, context) {
2007
- return !!context.tools?.length && !getAnthropicCompat(model).supportsEagerToolInputStreaming;
2143
+ return getCurrentTools(context.messages).length > 0 && !getAnthropicCompat(model).supportsEagerToolInputStreaming;
2008
2144
  }
2009
2145
  function convertTools(tools, isOAuthToken, supportsEagerToolInputStreaming, supportsStrictTools, cacheControl, deferLoading = false) {
2010
2146
  if (!tools)
@@ -6,6 +6,7 @@ import { headersToRecord } from "../utils/headers.js";
6
6
  import { getPiUserAgent } from "../utils/pi-user-agent.js";
7
7
  import { getProviderEnvValue } from "../utils/provider-env.js";
8
8
  import { retryProviderRequest } from "../utils/provider-retry.js";
9
+ import { getDeclaredTools, resolveTranscript, resolveTranscriptTools } from "../utils/transcript.js";
9
10
  import { createGrammarToolInputProperties } from "./constrained-sampling.js";
10
11
  import { clampOpenAIPromptCacheKey } from "./openai-prompt-cache.js";
11
12
  import { convertResponsesMessages, convertResponsesTools, processResponsesStream } from "./openai-responses-shared.js";
@@ -44,6 +45,7 @@ function formatAzureOpenAIError(error) {
44
45
  */
45
46
  export const stream = (model, context, options) => {
46
47
  const stream = new AssistantMessageEventStream();
48
+ const normalizedContext = resolveTranscript(context, model.compat?.supportsMidConvoSystemMessages);
47
49
  // Start async processing
48
50
  (async () => {
49
51
  const deploymentName = resolveDeploymentName(model, options);
@@ -71,8 +73,8 @@ export const stream = (model, context, options) => {
71
73
  throw new Error(`No API key for provider: ${model.provider}`);
72
74
  }
73
75
  const client = createClient(model, apiKey, options);
74
- const grammarToolInputProperties = createGrammarToolInputProperties(context.tools, model.compat?.supportsOpenAIGrammarTools ?? false);
75
- let params = buildParams(model, context, options, deploymentName, grammarToolInputProperties);
76
+ const grammarToolInputProperties = createGrammarToolInputProperties(getDeclaredTools(normalizedContext.messages), model.compat?.supportsOpenAIGrammarTools ?? false);
77
+ let params = buildParams(model, normalizedContext, options, deploymentName, grammarToolInputProperties);
76
78
  const nextParams = await options?.onPayload?.(params, model);
77
79
  if (nextParams !== undefined) {
78
80
  params = nextParams;
@@ -89,7 +91,10 @@ export const stream = (model, context, options) => {
89
91
  });
90
92
  await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);
91
93
  stream.push({ type: "start", partial: output });
92
- await processResponsesStream(openaiStream, output, stream, model, { grammarToolInputProperties });
94
+ await processResponsesStream(openaiStream, output, stream, model, {
95
+ onProviderStreamEvent: options?.onProviderStreamEvent,
96
+ grammarToolInputProperties,
97
+ });
93
98
  if (options?.signal?.aborted) {
94
99
  throw new Error("Request was aborted");
95
100
  }
@@ -203,14 +208,24 @@ function createClient(model, apiKey, options) {
203
208
  baseURL: baseUrl,
204
209
  });
205
210
  }
206
- function buildParams(model, context, options, deploymentName, grammarToolInputProperties = createGrammarToolInputProperties(context.tools, model.compat?.supportsOpenAIGrammarTools ?? false)) {
211
+ function buildParams(model, context, options, deploymentName, grammarToolInputProperties = createGrammarToolInputProperties(getDeclaredTools(context.messages), model.compat?.supportsOpenAIGrammarTools ?? false)) {
207
212
  const requestedReasoningEffort = options?.reasoningEffort ?? (options?.reasoningSummary ? "medium" : undefined);
208
213
  const mappedReasoningEffort = requestedReasoningEffort === undefined ? undefined : model.thinkingLevelMap?.[requestedReasoningEffort];
209
214
  const reasoningEffort = mappedReasoningEffort === undefined ? requestedReasoningEffort : mappedReasoningEffort;
210
215
  const reasoningRequested = reasoningEffort !== undefined && reasoningEffort !== null;
211
216
  const reasoningUnavailable = reasoningEffort === null;
217
+ const supportsAdditionalTools = model.compat?.supportsAdditionalTools ?? false;
218
+ const supportsToolSearch = model.compat?.supportsToolSearch ?? false;
219
+ const transcriptTools = resolveTranscriptTools(context.messages, supportsAdditionalTools || supportsToolSearch);
212
220
  const messages = convertResponsesMessages(model, context, AZURE_TOOL_CALL_PROVIDERS, {
213
221
  grammarToolInputProperties,
222
+ supportsMidConvoSystemMessages: model.compat?.supportsMidConvoSystemMessages ?? false,
223
+ supportsAdditionalTools,
224
+ supportsToolSearch,
225
+ toolOptions: {
226
+ supportsStrictMode: model.compat?.supportsStrictMode ?? true,
227
+ supportsOpenAIGrammarTools: model.compat?.supportsOpenAIGrammarTools ?? false,
228
+ },
214
229
  });
215
230
  const params = {
216
231
  model: deploymentName,
@@ -227,8 +242,8 @@ function buildParams(model, context, options, deploymentName, grammarToolInputPr
227
242
  if (options?.temperature !== undefined) {
228
243
  params.temperature = options?.temperature;
229
244
  }
230
- if (context.tools && context.tools.length > 0) {
231
- params.tools = convertResponsesTools(context.tools, {
245
+ if (transcriptTools.requestTools.length > 0) {
246
+ params.tools = convertResponsesTools(transcriptTools.requestTools, {
232
247
  supportsStrictMode: model.compat?.supportsStrictMode ?? true,
233
248
  supportsOpenAIGrammarTools: model.compat?.supportsOpenAIGrammarTools ?? false,
234
249
  });
@@ -250,10 +265,8 @@ function buildParams(model, context, options, deploymentName, grammarToolInputPr
250
265
  };
251
266
  }
252
267
  }
253
- // Last so custom keys override the named request fields.
254
- if (options?.samplingParams) {
255
- Object.assign(params, options.samplingParams);
256
- }
268
+ // Last so custom keys override the named request fields. Per-request keys override model defaults.
269
+ Object.assign(params, model.samplingParams, options?.samplingParams);
257
270
  return params;
258
271
  }
259
272
  //# sourceMappingURL=azure-openai-responses.js.map
@@ -12,7 +12,10 @@ import { resolveHttpProxyUrlForTarget } from "../utils/node-http-proxy.js";
12
12
  import { getBedrockModelMatchCandidates as getModelMatchCandidates, supportsOneHourCacheTtl, supportsPromptCaching, } from "../utils/prompt-cache-ttl.js";
13
13
  import { getProviderEnvValue } from "../utils/provider-env.js";
14
14
  import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
15
+ import { getSystemMessageText } from "../utils/text.js";
15
16
  import { normalizeToolCallId } from "../utils/tool-call-id.js";
17
+ import { normalizeToolParametersForBedrock } from "../utils/tool-schema-compat.js";
18
+ import { collapseSystemMessages, getCurrentTools, getInitialSystemMessage, withoutInitialSystemMessage, } from "../utils/transcript.js";
16
19
  import { getJsonSchemaToolParameters, resolveJsonSchemaStrictSampling } from "./constrained-sampling.js";
17
20
  import { adjustMaxTokensForThinking, applyExtraBody, BEDROCK_RESERVED_BODY_KEYS, buildBaseOptions, clampMaxTokensToContext, clampReasoning, } from "./simple-options.js";
18
21
  import { transformMessages } from "./transform-messages.js";
@@ -22,6 +25,8 @@ const EMPTY_TEXT_PLACEHOLDER = "<empty>";
22
25
  const REDACTED_THINKING_PLACEHOLDER = "[Reasoning redacted]";
23
26
  export const stream = (model, context, options = {}) => {
24
27
  const stream = new AssistantMessageEventStream();
28
+ // Bedrock has no mid-conversation system messages; fold them into the leading prompt.
29
+ const normalizedContext = collapseSystemMessages(context);
25
30
  (async () => {
26
31
  const output = {
27
32
  role: "assistant",
@@ -139,18 +144,20 @@ export const stream = (model, context, options = {}) => {
139
144
  }
140
145
  const cacheRetention = resolveCacheRetention(options.cacheRetention ?? model.cacheRetention, options.env);
141
146
  const inferenceMaxTokens = options.maxTokens ?? (isAnthropicClaudeModel(model) ? model.maxTokens : undefined);
147
+ const initialSystemMessage = getInitialSystemMessage(normalizedContext.messages);
148
+ const initialSystemPrompt = initialSystemMessage ? getSystemMessageText(initialSystemMessage) : undefined;
142
149
  let commandInput = {
143
150
  modelId: model.id,
144
- messages: convertMessages(context, model, cacheRetention, {
151
+ messages: convertMessages(normalizedContext, model, cacheRetention, {
145
152
  preserveThinking: options.reasoning !== undefined,
146
153
  env: options.env,
147
154
  }),
148
- system: buildSystemPrompt(context.systemPrompt, model, cacheRetention, options.env),
155
+ system: buildSystemPrompt(initialSystemPrompt, model, cacheRetention, options.env),
149
156
  inferenceConfig: {
150
157
  ...(inferenceMaxTokens !== undefined && { maxTokens: inferenceMaxTokens }),
151
158
  ...(options.temperature !== undefined && { temperature: options.temperature }),
152
159
  },
153
- toolConfig: convertToolConfig(context.tools, options.toolChoice, supportsStrictMode),
160
+ toolConfig: convertToolConfig(getCurrentTools(normalizedContext.messages), options.toolChoice, supportsStrictMode),
154
161
  additionalModelRequestFields: buildAdditionalModelRequestFields(model, options),
155
162
  ...(options.requestMetadata !== undefined && { requestMetadata: options.requestMetadata }),
156
163
  };
@@ -170,6 +177,7 @@ export const stream = (model, context, options = {}) => {
170
177
  await options?.onResponse?.({ status: response.$metadata.httpStatusCode, headers: responseHeaders }, model);
171
178
  }
172
179
  for await (const item of response.stream) {
180
+ await options.onProviderStreamEvent?.(item, model);
173
181
  if (item.messageStart) {
174
182
  if (item.messageStart.role !== ConversationRole.ASSISTANT) {
175
183
  throw new Error("Unexpected assistant message start but got user message start instead");
@@ -541,6 +549,7 @@ function handleMetadata(event, model, output) {
541
549
  output.usage.output = event.usage.outputTokens || 0;
542
550
  output.usage.cacheRead = event.usage.cacheReadInputTokens || 0;
543
551
  output.usage.cacheWrite = event.usage.cacheWriteInputTokens || 0;
552
+ output.usage.cacheWrite1h = event.usage.cacheDetails?.reduce((total, detail) => total + (detail.ttl === CacheTTL.ONE_HOUR ? (detail.inputTokens ?? 0) : 0), 0);
544
553
  output.usage.totalTokens = event.usage.totalTokens || output.usage.input + output.usage.output;
545
554
  calculateCost(model, output.usage);
546
555
  }
@@ -735,7 +744,7 @@ function appendMessage(result, message) {
735
744
  }
736
745
  function convertMessages(context, model, cacheRetention, options = {}) {
737
746
  const result = [];
738
- const transformedMessages = transformMessages(context.messages, model, normalizeToolCallId, {
747
+ const transformedMessages = transformMessages(withoutInitialSystemMessage(context.messages), model, normalizeToolCallId, {
739
748
  preserveThinking: options.preserveThinking,
740
749
  });
741
750
  for (let i = 0; i < transformedMessages.length; i++) {
@@ -908,12 +917,13 @@ function convertToolConfig(tools, toolChoice, supportsStrictMode) {
908
917
  if (toolChoice === "none")
909
918
  return undefined;
910
919
  const bedrockTools = tools.map((tool) => {
911
- const strict = resolveJsonSchemaStrictSampling(tool, supportsStrictMode);
920
+ const wireTool = { ...tool, parameters: normalizeToolParametersForBedrock({ ...tool.parameters }) };
921
+ const strict = resolveJsonSchemaStrictSampling(wireTool, supportsStrictMode);
912
922
  return {
913
923
  toolSpec: {
914
924
  name: tool.name,
915
925
  description: tool.description,
916
- inputSchema: { json: toDocumentType(getJsonSchemaToolParameters(tool, strict)) },
926
+ inputSchema: { json: toDocumentType(getJsonSchemaToolParameters(wireTool, strict)) },
917
927
  ...(strict === true ? { strict: true } : {}),
918
928
  },
919
929
  };
@@ -0,0 +1,4 @@
1
+ import type { ClassifierFunction, ClassifierOptions } from "../types.ts";
2
+ /** Cloudflare Workers AI System One classification with public `bool` values mapped to wire-level `noul`. */
3
+ export declare const classify: ClassifierFunction<ClassifierOptions>;
4
+ //# sourceMappingURL=cloudflare-workers-ai-system-one.d.ts.map
@@ -0,0 +1,43 @@
1
+ import { classifySystemOne, isRecord } from "./system-one-shared.js";
2
+ const LABEL = "Cloudflare Workers AI";
3
+ function cloudflareErrorMessage(errors) {
4
+ if (Array.isArray(errors)) {
5
+ const messages = errors
6
+ .map((error) => (isRecord(error) && typeof error.message === "string" ? error.message : undefined))
7
+ .filter((message) => message !== undefined);
8
+ if (messages.length > 0)
9
+ return `${LABEL} error: ${messages.join("; ")}`;
10
+ }
11
+ return `${LABEL} request failed`;
12
+ }
13
+ /**
14
+ * System One models on the Workers AI REST endpoint:
15
+ * `POST /accounts/{account}/ai/run` with `{ model, input }`. The REST API
16
+ * wraps the model output in Cloudflare's API envelope and a run record:
17
+ * `{ success, result: { state: "Completed", result: { answers, usage } } }`.
18
+ * https://developers.cloudflare.com/ai/models/typesafe/jev/
19
+ */
20
+ const transport = {
21
+ api: "cloudflare-workers-ai-system-one",
22
+ label: LABEL,
23
+ url: (model) => new URL("run", `${model.baseUrl.replace(/\/+$/u, "")}/`),
24
+ payload: (model, request) => ({ model: model.id, input: request }),
25
+ output: (body) => {
26
+ if (!isRecord(body))
27
+ throw new Error(`${LABEL} returned an unexpected response`);
28
+ if (body.success === false)
29
+ throw new Error(cloudflareErrorMessage(body.errors));
30
+ const run = body.result;
31
+ if (!isRecord(run))
32
+ throw new Error(`${LABEL} returned an unexpected response`);
33
+ if (run.state !== "Completed") {
34
+ throw new Error(`${LABEL} run did not complete (state: ${String(run.state)})`);
35
+ }
36
+ if (!isRecord(run.result))
37
+ throw new Error(`${LABEL} returned an unexpected response`);
38
+ return run.result;
39
+ },
40
+ };
41
+ /** Cloudflare Workers AI System One classification with public `bool` values mapped to wire-level `noul`. */
42
+ export const classify = (model, context, options) => classifySystemOne(transport, model, context, options);
43
+ //# sourceMappingURL=cloudflare-workers-ai-system-one.js.map
@@ -0,0 +1,3 @@
1
+ import type { ProviderClassifier } from "../types.ts";
2
+ export declare const cloudflareWorkersAISystemOneApi: () => ProviderClassifier;
3
+ //# sourceMappingURL=cloudflare-workers-ai-system-one.lazy.d.ts.map
@@ -0,0 +1,4 @@
1
+ export const cloudflareWorkersAISystemOneApi = () => ({
2
+ classify: async (model, context, options) => (await import("./cloudflare-workers-ai-system-one.js")).classify(model, context, options),
3
+ });
4
+ //# sourceMappingURL=cloudflare-workers-ai-system-one.lazy.js.map
@@ -1,6 +1,8 @@
1
1
  import type { Api, Model, ProviderEnv } from "../types.ts";
2
2
  /** Workers AI direct endpoint. */
3
3
  export declare const CLOUDFLARE_WORKERS_AI_BASE_URL = "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1";
4
+ /** Workers AI REST endpoint root; model runs are posted to `run`. */
5
+ export declare const CLOUDFLARE_WORKERS_AI_REST_BASE_URL = "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai";
4
6
  /** AI Gateway Unified API. https://developers.cloudflare.com/ai-gateway/usage/unified-api/ */
5
7
  export declare const CLOUDFLARE_AI_GATEWAY_COMPAT_BASE_URL = "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat";
6
8
  /** AI Gateway → OpenAI passthrough. Used until /compat supports /v1/responses. */