@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
@@ -1,7 +1,6 @@
1
1
  import OpenAI from "openai";
2
2
  import { calculateCost, clampThinkingLevel, inferOpenAIThinkingLevelMap, supportsMax, supportsXhigh, } from "../models.js";
3
3
  import { readProviderDiagnostic } from "../provider-diagnostic.js";
4
- import { splitDeferredTools } from "../utils/deferred-tools.js";
5
4
  import { formatProviderError, normalizeProviderError } from "../utils/error-body.js";
6
5
  import { AssistantMessageEventStream } from "../utils/event-stream.js";
7
6
  import { formatGitHubCopilotToolLimitError, limitGitHubCopilotTools, recordGitHubCopilotToolLimit, } from "../utils/github-copilot-tool-limit.js";
@@ -11,6 +10,7 @@ import { awaitProviderTransport, openAICompatibleProviderDiagnosticFromError, }
11
10
  import { getProviderEnvValue } from "../utils/provider-env.js";
12
11
  import { retryProviderRequest } from "../utils/provider-retry.js";
13
12
  import { sendWithForcedToolChoiceFallback } from "../utils/tool-choice-fallback.js";
13
+ import { getCurrentTools, getDeclaredTools, normalizeContext, resolveTranscript } from "../utils/transcript.js";
14
14
  import { isCloudflareProvider, resolveCloudflareBaseUrl } from "./cloudflare.js";
15
15
  import { createGrammarToolInputProperties } from "./constrained-sampling.js";
16
16
  import { withGitHubCopilotFailureNote } from "./github-copilot-errors.js";
@@ -18,7 +18,7 @@ import { buildCopilotDynamicHeaders, hasCopilotVisionInput } from "./github-copi
18
18
  import { resolveOpenAIClientAuth } from "./openai-client-auth.js";
19
19
  import { clampOpenAIPromptCacheKey } from "./openai-prompt-cache.js";
20
20
  import { findPromptCacheComparisonResponseId, withPromptCacheComparison, } from "./openai-responses-prompt-cache.js";
21
- import { convertResponsesMessages, convertResponsesTools, processResponsesStream } from "./openai-responses-shared.js";
21
+ import { convertResponsesMessages, convertResponsesTools, processResponsesStream, resolveResponsesDeferredToolsMode, resolveResponsesToolPlacement, } from "./openai-responses-shared.js";
22
22
  import { buildBaseOptions, clampMaxForOpenAI, OPENAI_RESPONSES_RESERVED_BODY_KEYS } from "./simple-options.js";
23
23
  import { startWebSocketLiveness } from "./websocket-liveness.js";
24
24
  import { createWebSocketTransportFailure } from "./websocket-transport-failure.js";
@@ -29,6 +29,7 @@ const SESSION_WEBSOCKET_CACHE_TTL_MS = 5 * 60 * 1000;
29
29
  // OpenAI Responses rejects max_output_tokens below 16: https://github.com/earendil-works/pi/issues/6265
30
30
  const OPENAI_RESPONSES_MIN_OUTPUT_TOKENS = 16;
31
31
  const PROMPT_CACHE_PREWARM_TIMEOUT_MS = 30_000;
32
+ const CHATGPT_USAGE_URL = "https://chatgpt.com/settings/usage";
32
33
  const websocketSessionCache = new Map();
33
34
  /** True when tool_choice forces a specific tool or mode (anything but "auto"/"none"). */
34
35
  function isForcedOpenAIResponsesToolChoice(toolChoice) {
@@ -54,6 +55,7 @@ function getCompat(model, env) {
54
55
  const isNativeEndpoint = isOpenAIResponsesNativeEndpoint(model, env);
55
56
  return {
56
57
  supportsDeveloperRole: model.compat?.supportsDeveloperRole ?? true,
58
+ supportsMidConvoSystemMessages: model.compat?.supportsMidConvoSystemMessages ?? false,
57
59
  sessionAffinityFormat: model.compat?.sessionAffinityFormat ?? detectSessionAffinityFormat(model),
58
60
  supportsLongCacheRetention: model.compat?.supportsLongCacheRetention ?? true,
59
61
  supportsWebSocket: model.compat?.supportsWebSocket ?? isNativeEndpoint,
@@ -150,15 +152,15 @@ function allowedReference(tool) {
150
152
  * senpi#2095: `tools` carries every tool declared this session, so removing a tool never rewrites the
151
153
  * cached prefix; the callable subset rides `tool_choice: allowed_tools` instead. Hosted tools a payload
152
154
  * hook added stay callable, and deferred tools (declared by transcript items rather than `tools`) are
153
- * referenced by name. An empty subset forbids tool calls. An explicit `tool_choice` always wins.
155
+ * referenced by name. A declared tool a payload hook removed from `tools` is not referenced (senpi#2234).
156
+ * An empty subset forbids tool calls. An explicit `tool_choice` always wins.
154
157
  */
155
- function applyAllowedToolsChoice(params, context, compat) {
156
- const activeToolNames = context.activeToolNames;
158
+ function applyAllowedToolsChoice(params, context, activeToolNames, compat) {
157
159
  if (!compat.supportsAllowedTools || activeToolNames === undefined || params.tool_choice !== undefined) {
158
160
  return params;
159
161
  }
160
162
  const active = new Set(activeToolNames);
161
- const declaredTools = context.tools ?? [];
163
+ const declaredTools = getCurrentTools(context.messages);
162
164
  if (declaredTools.every((tool) => active.has(tool.name)))
163
165
  return params;
164
166
  const allowed = [];
@@ -171,8 +173,10 @@ function applyAllowedToolsChoice(params, context, compat) {
171
173
  }
172
174
  allowed.push(allowedReference(tool));
173
175
  }
176
+ // Tools missing from the request-level `tools` placement are the ones transcript items load in place.
177
+ const requestToolNames = new Set(resolveResponsesToolPlacement(context.messages, resolveResponsesDeferredToolsMode(compat) !== undefined).requestTools.map((tool) => tool.name));
174
178
  for (const tool of declaredTools) {
175
- if (namedInTools.has(tool.name) || !active.has(tool.name))
179
+ if (namedInTools.has(tool.name) || !active.has(tool.name) || requestToolNames.has(tool.name))
176
180
  continue;
177
181
  const [converted] = convertResponsesTools([tool], {
178
182
  supportsStrictMode: compat.supportsStrictMode,
@@ -184,14 +188,19 @@ function applyAllowedToolsChoice(params, context, compat) {
184
188
  const toolChoice = allowed.length > 0 ? { type: "allowed_tools", mode: "auto", tools: allowed } : "none";
185
189
  return { ...params, tool_choice: toolChoice };
186
190
  }
187
- function formatOpenAIResponsesError(error) {
188
- return formatProviderError(normalizeProviderError(error), "OpenAI API error");
191
+ function formatOpenAIResponsesError(error, provider) {
192
+ const errorMessage = formatProviderError(normalizeProviderError(error), `${provider === "openai" ? "OpenAI" : provider} API error`);
193
+ // Sign in with ChatGPT shares the subscription's usage limit with other apps.
194
+ return errorMessage.includes("subscription_sharing_usage_limit_exceeded")
195
+ ? `${errorMessage}\nCheck your ChatGPT usage: ${CHATGPT_USAGE_URL}`
196
+ : errorMessage;
189
197
  }
190
198
  /**
191
199
  * Generate function for OpenAI Responses API
192
200
  */
193
201
  export const stream = (model, context, options) => {
194
202
  const stream = new AssistantMessageEventStream();
203
+ const normalizedContext = resolveTranscript(context, getCompat(model).supportsMidConvoSystemMessages);
195
204
  // Start async processing
196
205
  (async () => {
197
206
  const output = {
@@ -216,15 +225,15 @@ export const stream = (model, context, options) => {
216
225
  const cacheRetention = resolveCacheRetention(options?.cacheRetention, options?.env);
217
226
  const cacheSessionId = cacheRetention === "none" ? undefined : options?.sessionId;
218
227
  const compat = getCompat(model, options?.env);
219
- const grammarToolInputProperties = createGrammarToolInputProperties(context.tools, compat.supportsOpenAIGrammarTools);
220
- const client = createClient(model, context, clientAuth.apiKey, clientAuth.headers, options?.fetch, cacheSessionId, options?.env);
221
- let params = buildParams(model, context, options, compat, grammarToolInputProperties);
228
+ const grammarToolInputProperties = createGrammarToolInputProperties(getDeclaredTools(normalizedContext.messages), compat.supportsOpenAIGrammarTools);
229
+ const client = createClient(model, normalizedContext, clientAuth.apiKey, clientAuth.headers, options?.fetch, cacheSessionId, options?.env);
230
+ let params = buildParams(model, normalizedContext, options, compat, grammarToolInputProperties);
222
231
  const nextParams = await options?.onPayload?.(params, model);
223
232
  if (nextParams !== undefined) {
224
233
  params = nextParams;
225
234
  }
226
235
  params = sanitizeUnsupportedNativeTools(params, compat);
227
- params = applyAllowedToolsChoice(params, context, compat);
236
+ params = applyAllowedToolsChoice(params, normalizedContext, context.activeToolNames, compat);
228
237
  const limitedTools = limitGitHubCopilotTools(model.provider, params.tools, params.tool_choice);
229
238
  if (limitedTools.omittedCount > 0) {
230
239
  params = { ...params, tools: limitedTools.tools };
@@ -234,7 +243,7 @@ export const stream = (model, context, options) => {
234
243
  if (transport !== "sse" && compat.supportsWebSocket) {
235
244
  let websocketStarted = false;
236
245
  try {
237
- await processWebSocketStream(resolveOpenAIResponsesWebSocketUrl(model, options?.env), params, buildWebSocketHeaders(model, context, clientAuth.apiKey, clientAuth.headers, cacheSessionId, options?.env), output, stream, model, () => {
246
+ await processWebSocketStream(resolveOpenAIResponsesWebSocketUrl(model, options?.env), params, buildWebSocketHeaders(model, normalizedContext, clientAuth.apiKey, clientAuth.headers, cacheSessionId, options?.env), output, stream, model, () => {
238
247
  websocketStarted = true;
239
248
  }, cacheSessionId, grammarToolInputProperties, options);
240
249
  if (options?.signal?.aborted) {
@@ -276,6 +285,7 @@ export const stream = (model, context, options) => {
276
285
  await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);
277
286
  stream.push({ type: "start", partial: output });
278
287
  await processResponsesStream(openaiStream, output, stream, model, {
288
+ onProviderStreamEvent: options?.onProviderStreamEvent,
279
289
  serviceTier: options?.serviceTier,
280
290
  grammarToolInputProperties,
281
291
  applyServiceTierPricing: (usage, serviceTier) => applyServiceTierPricing(usage, serviceTier, model),
@@ -305,7 +315,7 @@ export const stream = (model, context, options) => {
305
315
  : undefined;
306
316
  if (providerDiagnostic !== undefined)
307
317
  output.providerDiagnostic = providerDiagnostic;
308
- output.errorMessage = withGitHubCopilotFailureNote(formatGitHubCopilotToolLimitError(output, formatOpenAIResponsesError(error)), model.provider, error);
318
+ output.errorMessage = withGitHubCopilotFailureNote(formatGitHubCopilotToolLimitError(output, formatOpenAIResponsesError(error, model.provider)), model.provider, error);
309
319
  stream.push({ type: "error", reason: output.stopReason, error: output });
310
320
  stream.end();
311
321
  }
@@ -337,12 +347,12 @@ function resolveSimpleOptions(model, context, options) {
337
347
  * prefix matches the reasoning effort, service tier, and cache options that turn sends.
338
348
  */
339
349
  export async function warmOpenAIResponsesPromptCache(model, context, options) {
340
- const prefix = { ...context, messages: [] };
350
+ const prefix = normalizeContext({ ...context, messages: [] });
341
351
  const resolved = resolveSimpleOptions(model, prefix, options);
342
352
  const clientAuth = resolveOpenAIClientAuth(model.provider, resolved.apiKey, resolved.headers);
343
353
  const cacheRetention = resolveCacheRetention(resolved.cacheRetention, resolved.env);
344
354
  const compat = getCompat(model, resolved.env);
345
- const grammarToolInputProperties = createGrammarToolInputProperties(prefix.tools, compat.supportsOpenAIGrammarTools);
355
+ const grammarToolInputProperties = createGrammarToolInputProperties(getDeclaredTools(prefix.messages), compat.supportsOpenAIGrammarTools);
346
356
  const client = createClient(model, prefix, clientAuth.apiKey, clientAuth.headers, resolved.fetch, cacheRetention === "none" ? undefined : resolved.sessionId, resolved.env);
347
357
  let params = buildParams(model, prefix, resolved, compat, grammarToolInputProperties);
348
358
  const nextParams = await resolved.onPayload?.(params, model);
@@ -412,13 +422,8 @@ function createClient(model, context, apiKey, optionsHeaders, fetch, sessionId,
412
422
  defaultHeaders: headers,
413
423
  });
414
424
  }
415
- function buildParams(model, context, options, compat = getCompat(model, options?.env), grammarToolInputProperties = createGrammarToolInputProperties(context.tools, compat.supportsOpenAIGrammarTools)) {
416
- const deferredToolsMode = compat.supportsAdditionalTools
417
- ? "additional-tools"
418
- : compat.supportsToolSearch
419
- ? "tool-search"
420
- : undefined;
421
- const toolPlacement = splitDeferredTools(context, deferredToolsMode !== undefined);
425
+ function buildParams(model, context, options, compat = getCompat(model, options?.env), grammarToolInputProperties = createGrammarToolInputProperties(getDeclaredTools(context.messages), compat.supportsOpenAIGrammarTools)) {
426
+ const toolPlacement = resolveResponsesToolPlacement(context.messages, resolveResponsesDeferredToolsMode(compat) !== undefined);
422
427
  const requestedReasoningEffort = options?.reasoningEffort ?? (options?.reasoningSummary ? "medium" : undefined);
423
428
  const thinkingLevelMap = inferOpenAIThinkingLevelMap(model);
424
429
  const mappedReasoningEffort = requestedReasoningEffort === undefined ? undefined : thinkingLevelMap?.[requestedReasoningEffort];
@@ -432,8 +437,9 @@ function buildParams(model, context, options, compat = getCompat(model, options?
432
437
  // nor a previous prefix unless the system prompt carries an explicit breakpoint.
433
438
  systemPromptCacheBreakpoint: compat.supportsExplicitPromptCacheMode && cacheRetention !== "none",
434
439
  grammarToolInputProperties,
435
- deferredTools: toolPlacement.deferred,
436
- deferredToolsMode,
440
+ supportsMidConvoSystemMessages: compat.supportsMidConvoSystemMessages,
441
+ supportsAdditionalTools: compat.supportsAdditionalTools,
442
+ supportsToolSearch: compat.supportsToolSearch,
437
443
  toolOptions: {
438
444
  supportsStrictMode: compat.supportsStrictMode,
439
445
  supportsOpenAIGrammarTools: compat.supportsOpenAIGrammarTools,
@@ -465,8 +471,8 @@ function buildParams(model, context, options, compat = getCompat(model, options?
465
471
  if (options?.serviceTier !== undefined) {
466
472
  params.service_tier = options.serviceTier;
467
473
  }
468
- if (toolPlacement.immediate.length > 0) {
469
- params.tools = convertResponsesTools(toolPlacement.immediate, {
474
+ if (toolPlacement.requestTools.length > 0) {
475
+ params.tools = convertResponsesTools(toolPlacement.requestTools, {
470
476
  supportsStrictMode: compat.supportsStrictMode,
471
477
  supportsOpenAIGrammarTools: compat.supportsOpenAIGrammarTools,
472
478
  });
@@ -491,10 +497,8 @@ function buildParams(model, context, options, compat = getCompat(model, options?
491
497
  params.include = ["reasoning.encrypted_content"];
492
498
  }
493
499
  applyExtraBodyToResponsesParams(params, options?.extraBody);
494
- // Last so custom keys override the named request fields.
495
- if (options?.samplingParams) {
496
- Object.assign(params, options.samplingParams);
497
- }
500
+ // Last so custom keys override the named request fields. Per-request keys override model defaults.
501
+ Object.assign(params, model.samplingParams, options?.samplingParams);
498
502
  return params;
499
503
  }
500
504
  function applyExtraBodyToResponsesParams(params, extraBody) {
@@ -856,6 +860,10 @@ function buildWebSocketHeaders(model, context, apiKey, optionsHeaders, sessionId
856
860
  }
857
861
  function getServiceTierCostMultiplier(model, serviceTier) {
858
862
  switch (serviceTier) {
863
+ case "ultrafast":
864
+ // OpenAI publishes an Ultrafast price for GPT-6 Astra only: 6x Standard on every
865
+ // token class and context tier. Any other model keeps its base rate.
866
+ return model.id === "gpt-6-astra" ? 6 : 1;
859
867
  case "flex":
860
868
  return 0.5;
861
869
  case "priority":
@@ -1,3 +1,4 @@
1
1
  import type { ImagesFunction, ImagesOptions } from "../types.ts";
2
- export declare const generateImages: ImagesFunction<"openrouter-images", ImagesOptions>;
2
+ /** Image generation over OpenRouter's chat completions endpoint. */
3
+ export declare const generateImages: ImagesFunction<ImagesOptions>;
3
4
  //# sourceMappingURL=openrouter-images.d.ts.map
@@ -3,6 +3,7 @@ import { formatProviderError, normalizeProviderError } from "../utils/error-body
3
3
  import { headersToRecord, providerHeadersToRecord } from "../utils/headers.js";
4
4
  import { retryProviderRequest } from "../utils/provider-retry.js";
5
5
  import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
6
+ /** Image generation over OpenRouter's chat completions endpoint. */
6
7
  export const generateImages = async (model, context, options) => {
7
8
  const output = {
8
9
  api: model.api,
@@ -8,7 +8,7 @@
8
8
  * Radius gateway, but any backend implementing it can be used, e.g. via a
9
9
  * models.json custom provider with `"api": "pi-messages"`.
10
10
  */
11
- import type { AssistantMessage, SimpleStreamOptions, StreamFunction, StreamOptions, ThinkingLevel, ToolCall } from "../types.ts";
11
+ import type { AssistantMessage, JsonObject, SimpleStreamOptions, StreamFunction, StreamOptions, ThinkingLevel, ToolCall } from "../types.ts";
12
12
  export interface PiMessagesOptions extends StreamOptions {
13
13
  reasoning?: ThinkingLevel;
14
14
  toolChoice?: "auto" | "none" | "required" | {
@@ -90,8 +90,8 @@ export type PiMessagesEvent = {
90
90
  };
91
91
  export declare class PiMessagesResponseError extends Error {
92
92
  code?: string;
93
- readonly diagnosticDetails: Record<string, unknown>;
94
- constructor(message: string, code: string | undefined, diagnosticDetails: Record<string, unknown>);
93
+ readonly diagnosticDetails: JsonObject;
94
+ constructor(message: string, code: string | undefined, diagnosticDetails: JsonObject);
95
95
  }
96
96
  export declare const stream: StreamFunction<"pi-messages", PiMessagesOptions>;
97
97
  export declare const streamSimple: StreamFunction<"pi-messages", SimpleStreamOptions>;
@@ -52,8 +52,8 @@ function createPiMessagesResponseError(model, url, response, body) {
52
52
  url: url.toString(),
53
53
  status: response.status,
54
54
  statusText: response.statusText,
55
- error: errorBody?.error,
56
- body: errorBody ? undefined : truncateDiagnosticString(body),
55
+ ...(errorBody?.error === undefined ? {} : { error: errorBody.error }),
56
+ ...(errorBody ? {} : { body: truncateDiagnosticString(body) }),
57
57
  timestampMs: Date.now(),
58
58
  });
59
59
  }
@@ -301,6 +301,7 @@ export const stream = (model, context, options) => {
301
301
  throw new Error(`${model.provider} response has no body`);
302
302
  }
303
303
  for await (const piEvent of readPiMessagesEvents(response.body)) {
304
+ await options?.onProviderStreamEvent?.(piEvent, model);
304
305
  const event = convertEvent(piEvent);
305
306
  eventStream.push(event);
306
307
  if (event.type === "done" || event.type === "error") {
@@ -1,4 +1,4 @@
1
- import type { Api, Context, Model, SimpleStreamOptions, StreamOptions, ThinkingBudgets, ThinkingLevel } from "../types.ts";
1
+ import type { Api, Model, SimpleStreamOptions, StreamOptions, ThinkingBudgets, ThinkingLevel, TranscriptContext } from "../types.ts";
2
2
  export { CONTEXT_GUARD_MIN_WINDOW, CONTEXT_SAFETY_TOKENS, ContextWindowExhaustedError, clampMaxTokensToContext, MIN_ANSWER_TOKENS, } from "./context-room.ts";
3
3
  /**
4
4
  * Merge user-supplied extraBody fields into a provider request payload, skipping
@@ -17,7 +17,7 @@ export declare const GOOGLE_RESERVED_BODY_KEYS: ReadonlySet<string>;
17
17
  export declare const ANTHROPIC_RESERVED_BODY_KEYS: ReadonlySet<string>;
18
18
  export declare const MISTRAL_RESERVED_BODY_KEYS: ReadonlySet<string>;
19
19
  export declare const BEDROCK_RESERVED_BODY_KEYS: ReadonlySet<string>;
20
- export declare function buildBaseOptions(model: Model<Api>, context: Context, options?: SimpleStreamOptions, apiKey?: string): StreamOptions;
20
+ export declare function buildBaseOptions(model: Model<Api>, context: TranscriptContext, options?: SimpleStreamOptions, apiKey?: string): StreamOptions;
21
21
  export declare const DEFAULT_THINKING_BUDGETS: ThinkingBudgets;
22
22
  export declare function clampReasoning(effort: ThinkingLevel | undefined): Exclude<ThinkingLevel, "xhigh" | "max"> | undefined;
23
23
  /**
@@ -122,6 +122,7 @@ export function buildBaseOptions(model, context, options, apiKey) {
122
122
  extraBody: options?.extraBody,
123
123
  onPayload: options?.onPayload,
124
124
  onResponse: options?.onResponse,
125
+ onProviderStreamEvent: options?.onProviderStreamEvent,
125
126
  timeoutMs: options?.timeoutMs,
126
127
  websocketConnectTimeoutMs: options?.websocketConnectTimeoutMs,
127
128
  maxRetries: options?.maxRetries,
@@ -0,0 +1,23 @@
1
+ import type { ClassifierApi, ClassifierContext, ClassifierModel, ClassifierOptions, ClassifierResult } from "../types.ts";
2
+ /** TypeSafe System One request body without the transport-specific envelope. */
3
+ export interface SystemOneWireRequest {
4
+ state: ClassifierContext["state"];
5
+ questions: Record<string, unknown>;
6
+ }
7
+ /** Differences between services that serve System One models. */
8
+ export interface SystemOneTransport {
9
+ /** Classifier API implemented by this transport. */
10
+ api: ClassifierApi;
11
+ /** Service name used in error messages. */
12
+ label: string;
13
+ /** Absolute request URL. */
14
+ url(model: ClassifierModel<ClassifierApi>): URL;
15
+ /** Wraps the System One request in the service's request envelope. */
16
+ payload(model: ClassifierModel<ClassifierApi>, request: SystemOneWireRequest): unknown;
17
+ /** Extracts the System One output (`{ answers, usage }`) from the service's response envelope. */
18
+ output(body: unknown): Record<string, unknown>;
19
+ }
20
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
21
+ /** Runs one System One classification over the given transport. */
22
+ export declare function classifySystemOne(transport: SystemOneTransport, model: ClassifierModel<ClassifierApi>, context: ClassifierContext, options: ClassifierOptions | undefined): Promise<ClassifierResult>;
23
+ //# sourceMappingURL=system-one-shared.d.ts.map
@@ -0,0 +1,183 @@
1
+ import { calculateCost } from "../models.js";
2
+ import { formatProviderError, normalizeProviderError } from "../utils/error-body.js";
3
+ import { headersToRecord, providerHeadersToRecord } from "../utils/headers.js";
4
+ import { retryProviderRequest } from "../utils/provider-retry.js";
5
+ function httpError(label, response, body) {
6
+ const error = new Error(`${label} returned ${response.status}`);
7
+ error.status = response.status;
8
+ error.headers = response.headers;
9
+ error.body = body;
10
+ return error;
11
+ }
12
+ function timeoutError(timeoutMs) {
13
+ const error = new Error(`Request timed out after ${timeoutMs}ms`);
14
+ error.name = "TimeoutError";
15
+ error.status = undefined;
16
+ error.headers = undefined;
17
+ error.body = "";
18
+ return error;
19
+ }
20
+ export function isRecord(value) {
21
+ return typeof value === "object" && value !== null && !Array.isArray(value);
22
+ }
23
+ function requiredNumber(label, value, field) {
24
+ if (typeof value !== "number" || !Number.isFinite(value)) {
25
+ throw new Error(`${label} returned an invalid ${field}`);
26
+ }
27
+ return value;
28
+ }
29
+ function probabilities(label, value, id) {
30
+ if (!isRecord(value))
31
+ throw new Error(`${label} returned invalid probabilities for ${id}`);
32
+ return Object.fromEntries(Object.entries(value).map(([key, probability]) => [
33
+ key,
34
+ requiredNumber(label, probability, `probability for ${id}.${key}`),
35
+ ]));
36
+ }
37
+ function parseAnswers(label, value, context) {
38
+ if (!isRecord(value))
39
+ throw new Error(`${label} returned an unexpected response`);
40
+ const answers = [];
41
+ for (const [id, question] of Object.entries(context.questions)) {
42
+ const answer = value[id];
43
+ if (!isRecord(answer))
44
+ throw new Error(`${label} did not return an answer for ${id}`);
45
+ if (question.type === "choice") {
46
+ if (answer.type !== "choice" || typeof answer.choice !== "string") {
47
+ throw new Error(`${label} did not return a choice answer for ${id}`);
48
+ }
49
+ answers.push([
50
+ id,
51
+ {
52
+ type: "choice",
53
+ choice: answer.choice,
54
+ probabilities: probabilities(label, answer.probabilities, id),
55
+ confidence: requiredNumber(label, answer.confidence, `confidence for ${id}`),
56
+ },
57
+ ]);
58
+ }
59
+ else if (question.type === "score") {
60
+ if (answer.type !== "score")
61
+ throw new Error(`${label} did not return a score answer for ${id}`);
62
+ answers.push([
63
+ id,
64
+ {
65
+ type: "score",
66
+ score: requiredNumber(label, answer.score, `score for ${id}`),
67
+ confidence: requiredNumber(label, answer.confidence, `confidence for ${id}`),
68
+ },
69
+ ]);
70
+ }
71
+ else {
72
+ if (answer.type !== "noul")
73
+ throw new Error(`${label} did not return a bool answer for ${id}`);
74
+ answers.push([
75
+ id,
76
+ {
77
+ type: "bool",
78
+ probability: requiredNumber(label, answer.noul, `probability for ${id}`),
79
+ },
80
+ ]);
81
+ }
82
+ }
83
+ return Object.fromEntries(answers);
84
+ }
85
+ function tokenCount(value) {
86
+ return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : 0;
87
+ }
88
+ /**
89
+ * Usage from System One's `{ input_tokens, output_tokens }`, priced from the model catalog like chat
90
+ * usage. A missing or malformed usage object leaves the result without usage instead of failing it.
91
+ */
92
+ function parseUsage(value, model) {
93
+ if (!isRecord(value) || (value.input_tokens === undefined && value.output_tokens === undefined))
94
+ return undefined;
95
+ const input = tokenCount(value.input_tokens);
96
+ const output = tokenCount(value.output_tokens);
97
+ const usage = {
98
+ input,
99
+ output,
100
+ cacheRead: 0,
101
+ cacheWrite: 0,
102
+ totalTokens: input + output,
103
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
104
+ };
105
+ calculateCost(model, usage);
106
+ return usage;
107
+ }
108
+ /** Maps public `bool` questions to TypeSafe's wire-level `noul` type. */
109
+ function wireRequest(context) {
110
+ return {
111
+ state: context.state,
112
+ questions: Object.fromEntries(Object.entries(context.questions).map(([id, question]) => [
113
+ id,
114
+ question.type === "bool" ? { ...question, type: "noul" } : question,
115
+ ])),
116
+ };
117
+ }
118
+ function requestHeaders(model, apiKey, optionsHeaders) {
119
+ return (providerHeadersToRecord({ authorization: `Bearer ${apiKey}`, "content-type": "application/json" }, model.headers, optionsHeaders) ?? {});
120
+ }
121
+ /** Runs one System One classification over the given transport. */
122
+ export async function classifySystemOne(transport, model, context, options) {
123
+ const output = {
124
+ api: model.api,
125
+ provider: model.provider,
126
+ model: model.id,
127
+ answers: {},
128
+ stopReason: "stop",
129
+ timestamp: Date.now(),
130
+ };
131
+ try {
132
+ if (model.api !== transport.api)
133
+ throw new Error(`Unsupported classifier API: ${model.api}`);
134
+ if (!options?.apiKey)
135
+ throw new Error(`No API key for provider: ${model.provider}`);
136
+ const apiKey = options.apiKey;
137
+ let payload = transport.payload(model, wireRequest(context));
138
+ const transformed = await options.onPayload?.(payload, model);
139
+ if (transformed !== undefined)
140
+ payload = transformed;
141
+ const requestFetch = options.fetch ?? globalThis.fetch;
142
+ const { response, body } = await retryProviderRequest(async () => {
143
+ const timeoutSignal = options.timeoutMs !== undefined ? AbortSignal.timeout(options.timeoutMs) : undefined;
144
+ const signal = options.signal && timeoutSignal
145
+ ? AbortSignal.any([options.signal, timeoutSignal])
146
+ : (options.signal ?? timeoutSignal);
147
+ try {
148
+ const next = await requestFetch(transport.url(model), {
149
+ method: "POST",
150
+ headers: requestHeaders(model, apiKey, options.headers),
151
+ body: JSON.stringify(payload),
152
+ signal,
153
+ });
154
+ if (!next.ok)
155
+ throw httpError(transport.label, next, await next.text());
156
+ return { response: next, body: (await next.json()) };
157
+ }
158
+ catch (error) {
159
+ if (timeoutSignal?.aborted && !options.signal?.aborted)
160
+ throw timeoutError(options.timeoutMs);
161
+ throw error;
162
+ }
163
+ }, {
164
+ maxRetries: options.maxRetries ?? 2,
165
+ maxRetryDelayMs: options.maxRetryDelayMs,
166
+ signal: options.signal,
167
+ });
168
+ await options.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);
169
+ const result = transport.output(body);
170
+ // Set before parsing answers: a request with malformed answers was still billed.
171
+ const usage = parseUsage(result.usage, model);
172
+ if (usage)
173
+ output.usage = usage;
174
+ output.answers = parseAnswers(transport.label, result.answers, context);
175
+ return output;
176
+ }
177
+ catch (error) {
178
+ output.stopReason = options?.signal?.aborted ? "aborted" : "error";
179
+ output.errorMessage = formatProviderError(normalizeProviderError(error), `${transport.label} error`);
180
+ return output;
181
+ }
182
+ }
183
+ //# sourceMappingURL=system-one-shared.js.map
@@ -88,8 +88,8 @@ export function transformMessages(messages, model, normalizeToolCallId, options
88
88
  const normalizeSameModelToolCallIds = options.normalizeSameModelToolCallIds ?? false;
89
89
  // First pass: transform messages (unsupported image downgrade, thinking blocks, tool call ID normalization)
90
90
  const transformed = imageAwareMessages.map((msg) => {
91
- // User messages pass through unchanged
92
- if (msg.role === "user") {
91
+ // System and user messages pass through unchanged
92
+ if (msg.role === "system" || msg.role === "user") {
93
93
  return msg;
94
94
  }
95
95
  // Handle toolResult messages - normalize toolCallId if we have a mapping
@@ -168,6 +168,9 @@ export function transformMessages(messages, model, normalizeToolCallId, options
168
168
  // result after its declaring assistant. Results are emitted adjacent to their
169
169
  // calls because Anthropic requires that ordering. A reused ID starts a new
170
170
  // pairing window, so a later result cannot repair an earlier call.
171
+ // System messages are transparent to this accounting: they keep their source
172
+ // position, and because matched results are pulled forward, one that lands
173
+ // between a call and its result is emitted after that result.
171
174
  const result = [];
172
175
  const toolResultsById = new Map();
173
176
  const nextToolCallIndexById = new Map();
@@ -0,0 +1,4 @@
1
+ import type { ClassifierFunction, ClassifierOptions } from "../types.ts";
2
+ /** TypeSafe System One classification with public `bool` values mapped to wire-level `noul`. */
3
+ export declare const classify: ClassifierFunction<ClassifierOptions>;
4
+ //# sourceMappingURL=typesafe-system-one.d.ts.map
@@ -0,0 +1,19 @@
1
+ import { classifySystemOne, isRecord } from "./system-one-shared.js";
2
+ /**
3
+ * TypeSafe's native System One protocol. OpenRouter serves the same protocol,
4
+ * so both providers use this API with different base URLs.
5
+ */
6
+ const transport = {
7
+ api: "typesafe-system-one",
8
+ label: "System One API",
9
+ url: (model) => new URL("systemone", `${model.baseUrl.replace(/\/+$/u, "")}/`),
10
+ payload: (model, request) => ({ model: model.id, ...request }),
11
+ output: (body) => {
12
+ if (!isRecord(body))
13
+ throw new Error("System One API returned an unexpected response");
14
+ return body;
15
+ },
16
+ };
17
+ /** TypeSafe System One classification with public `bool` values mapped to wire-level `noul`. */
18
+ export const classify = (model, context, options) => classifySystemOne(transport, model, context, options);
19
+ //# sourceMappingURL=typesafe-system-one.js.map
@@ -0,0 +1,3 @@
1
+ import type { ProviderClassifier } from "../types.ts";
2
+ export declare const typesafeSystemOneApi: () => ProviderClassifier;
3
+ //# sourceMappingURL=typesafe-system-one.lazy.d.ts.map
@@ -0,0 +1,4 @@
1
+ export const typesafeSystemOneApi = () => ({
2
+ classify: async (model, context, options) => (await import("./typesafe-system-one.js")).classify(model, context, options),
3
+ });
4
+ //# sourceMappingURL=typesafe-system-one.lazy.js.map
@@ -1,6 +1,6 @@
1
- import type { Api, AssistantMessageEventStream, Context, Model, SimpleStreamOptions, StreamFunction, StreamOptions } from "./types.ts";
2
- export type ApiStreamFunction = (model: Model<Api>, context: Context, options?: StreamOptions) => AssistantMessageEventStream;
3
- export type ApiStreamSimpleFunction = (model: Model<Api>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStream;
1
+ import type { Api, AssistantMessageEventStream, Model, SimpleStreamOptions, StreamFunction, StreamOptions, TranscriptContext } from "./types.ts";
2
+ export type ApiStreamFunction = (model: Model<Api>, context: TranscriptContext, options?: StreamOptions) => AssistantMessageEventStream;
3
+ export type ApiStreamSimpleFunction = (model: Model<Api>, context: TranscriptContext, options?: SimpleStreamOptions) => AssistantMessageEventStream;
4
4
  export interface ApiProvider<TApi extends Api = Api, TOptions extends StreamOptions = StreamOptions> {
5
5
  api: TApi;
6
6
  stream: StreamFunction<TApi, TOptions>;
@@ -46,7 +46,7 @@ export function lazyOAuth(input) {
46
46
  isSubscription: input.isSubscription,
47
47
  loginLabel: input.loginLabel,
48
48
  ...(input.rejectedTokenStatuses === undefined ? {} : { rejectedTokenStatuses: input.rejectedTokenStatuses }),
49
- login: async (interaction) => (await loaded()).login(interaction),
49
+ login: async (interaction, options) => (await loaded()).login(interaction, options),
50
50
  refresh: async (credential, signal) => (await loaded()).refresh(credential, signal),
51
51
  toAuth: async (credential) => (await loaded()).toAuth(credential),
52
52
  };
@@ -10,8 +10,8 @@
10
10
  *
11
11
  * NOTE: Node-only (http.createServer); reached through the lazy OAuth loader.
12
12
  */
13
+ import { oauthErrorHtml, oauthSuccessHtml } from "../../utils/oauth-page.js";
13
14
  import { formatErrorDetails } from "./error-details.js";
14
- import { oauthErrorHtml, oauthSuccessHtml } from "./oauth-page.js";
15
15
  export const PREFERRED_CALLBACK_PORT = 53692;
16
16
  export const CALLBACK_PATH = "/callback";
17
17
  const BIND_FAILURE_CODES = new Set(["EACCES", "EADDRINUSE", "EPERM"]);