@vib-rato/ai 0.16.0

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 (525) hide show
  1. package/CHANGELOG.md +3354 -0
  2. package/README.md +1194 -0
  3. package/dist/types/adapter-internals/provider-safety-stop.d.ts +45 -0
  4. package/dist/types/api-registry.d.ts +30 -0
  5. package/dist/types/auth-broker/client.d.ts +80 -0
  6. package/dist/types/auth-broker/index.d.ts +5 -0
  7. package/dist/types/auth-broker/redact.d.ts +7 -0
  8. package/dist/types/auth-broker/refresher.d.ts +25 -0
  9. package/dist/types/auth-broker/remote-store.d.ts +153 -0
  10. package/dist/types/auth-broker/server.d.ts +32 -0
  11. package/dist/types/auth-broker/types.d.ts +132 -0
  12. package/dist/types/auth-broker/wire-schemas.d.ts +555 -0
  13. package/dist/types/auth-gateway/http.d.ts +40 -0
  14. package/dist/types/auth-gateway/index.d.ts +3 -0
  15. package/dist/types/auth-gateway/server.d.ts +70 -0
  16. package/dist/types/auth-gateway/types.d.ts +129 -0
  17. package/dist/types/auth-storage.d.ts +1074 -0
  18. package/dist/types/cli.d.ts +2 -0
  19. package/dist/types/codex-tools.d.ts +4 -0
  20. package/dist/types/context-cap-policy.d.ts +68 -0
  21. package/dist/types/core.d.ts +35 -0
  22. package/dist/types/index.d.ts +55 -0
  23. package/dist/types/model-cache.d.ts +24 -0
  24. package/dist/types/model-manager.d.ts +77 -0
  25. package/dist/types/model-pricing.d.ts +3 -0
  26. package/dist/types/model-retirements.d.ts +6 -0
  27. package/dist/types/model-thinking.d.ts +100 -0
  28. package/dist/types/models.d.ts +21 -0
  29. package/dist/types/openai-completions-compat.d.ts +34 -0
  30. package/dist/types/provider-details.d.ts +24 -0
  31. package/dist/types/provider-models/bundled-references.d.ts +4 -0
  32. package/dist/types/provider-models/descriptors.d.ts +48 -0
  33. package/dist/types/provider-models/google.d.ts +20 -0
  34. package/dist/types/provider-models/index.d.ts +5 -0
  35. package/dist/types/provider-models/ollama.d.ts +7 -0
  36. package/dist/types/provider-models/openai-compat.d.ts +293 -0
  37. package/dist/types/provider-models/special.d.ts +29 -0
  38. package/dist/types/providers/amazon-bedrock.d.ts +60 -0
  39. package/dist/types/providers/anthropic-messages-server-schema.d.ts +450 -0
  40. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  41. package/dist/types/providers/anthropic.d.ts +280 -0
  42. package/dist/types/providers/aws-credential-config.d.ts +19 -0
  43. package/dist/types/providers/aws-credentials.d.ts +43 -0
  44. package/dist/types/providers/aws-eventstream.d.ts +38 -0
  45. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  46. package/dist/types/providers/azure-openai-responses.d.ts +22 -0
  47. package/dist/types/providers/composer-discipline.d.ts +32 -0
  48. package/dist/types/providers/cursor/client-version.d.ts +10 -0
  49. package/dist/types/providers/cursor/exec-modern.d.ts +98 -0
  50. package/dist/types/providers/cursor/gen/agent_pb.d.ts +16769 -0
  51. package/dist/types/providers/cursor-pi-args.d.ts +119 -0
  52. package/dist/types/providers/cursor.d.ts +72 -0
  53. package/dist/types/providers/dashscope-token-plan-headers.d.ts +57 -0
  54. package/dist/types/providers/error-message.d.ts +27 -0
  55. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  56. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  57. package/dist/types/providers/google-auth.d.ts +26 -0
  58. package/dist/types/providers/google-gemini-cli.d.ts +75 -0
  59. package/dist/types/providers/google-gemini-headers.d.ts +43 -0
  60. package/dist/types/providers/google-shared.d.ts +183 -0
  61. package/dist/types/providers/google-types.d.ts +138 -0
  62. package/dist/types/providers/google-vertex.d.ts +11 -0
  63. package/dist/types/providers/google.d.ts +4 -0
  64. package/dist/types/providers/grammar.d.ts +1 -0
  65. package/dist/types/providers/kimi.d.ts +27 -0
  66. package/dist/types/providers/kiro-api-key.d.ts +50 -0
  67. package/dist/types/providers/kiro-codewhisperer.d.ts +11 -0
  68. package/dist/types/providers/mock.d.ts +189 -0
  69. package/dist/types/providers/ollama.d.ts +41 -0
  70. package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
  71. package/dist/types/providers/openai-bounded-rate-limits.d.ts +3 -0
  72. package/dist/types/providers/openai-chat-server-schema.d.ts +1733 -0
  73. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  74. package/dist/types/providers/openai-codex/constants.d.ts +26 -0
  75. package/dist/types/providers/openai-codex/request-transformer.d.ts +50 -0
  76. package/dist/types/providers/openai-codex/response-handler.d.ts +18 -0
  77. package/dist/types/providers/openai-codex-responses.d.ts +71 -0
  78. package/dist/types/providers/openai-completions-compat.d.ts +6 -0
  79. package/dist/types/providers/openai-completions.d.ts +35 -0
  80. package/dist/types/providers/openai-opencodex-responses.d.ts +10 -0
  81. package/dist/types/providers/openai-request-transform.d.ts +4 -0
  82. package/dist/types/providers/openai-responses-server-schema.d.ts +392 -0
  83. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  84. package/dist/types/providers/openai-responses-shared.d.ts +106 -0
  85. package/dist/types/providers/openai-responses.d.ts +37 -0
  86. package/dist/types/providers/pi-native-client.d.ts +29 -0
  87. package/dist/types/providers/pi-native-server.d.ts +60 -0
  88. package/dist/types/providers/register-builtins.d.ts +59 -0
  89. package/dist/types/providers/synthetic.d.ts +26 -0
  90. package/dist/types/providers/transform-messages.d.ts +33 -0
  91. package/dist/types/providers/vision-guard.d.ts +8 -0
  92. package/dist/types/rate-limit-utils.d.ts +19 -0
  93. package/dist/types/stream.d.ts +45 -0
  94. package/dist/types/types.d.ts +1073 -0
  95. package/dist/types/usage/claude.d.ts +3 -0
  96. package/dist/types/usage/gemini.d.ts +2 -0
  97. package/dist/types/usage/github-copilot.d.ts +7 -0
  98. package/dist/types/usage/google-antigravity.d.ts +2 -0
  99. package/dist/types/usage/grok-cli.d.ts +17 -0
  100. package/dist/types/usage/kimi.d.ts +4 -0
  101. package/dist/types/usage/minimax-code.d.ts +2 -0
  102. package/dist/types/usage/openai-codex.d.ts +3 -0
  103. package/dist/types/usage/shared.d.ts +1 -0
  104. package/dist/types/usage/zai.d.ts +2 -0
  105. package/dist/types/usage.d.ts +264 -0
  106. package/dist/types/utils/abort.d.ts +19 -0
  107. package/dist/types/utils/anthropic-auth.d.ts +39 -0
  108. package/dist/types/utils/block-symbols.d.ts +6 -0
  109. package/dist/types/utils/discovery/antigravity.d.ts +67 -0
  110. package/dist/types/utils/discovery/codex.d.ts +38 -0
  111. package/dist/types/utils/discovery/cursor.d.ts +49 -0
  112. package/dist/types/utils/discovery/gemini.d.ts +25 -0
  113. package/dist/types/utils/discovery/index.d.ts +4 -0
  114. package/dist/types/utils/discovery/openai-compatible.d.ts +81 -0
  115. package/dist/types/utils/event-stream.d.ts +41 -0
  116. package/dist/types/utils/fallback-transport.d.ts +110 -0
  117. package/dist/types/utils/fireworks-model-id.d.ts +10 -0
  118. package/dist/types/utils/foundry.d.ts +11 -0
  119. package/dist/types/utils/h2-fetch.d.ts +22 -0
  120. package/dist/types/utils/http-inspector.d.ts +59 -0
  121. package/dist/types/utils/idle-iterator.d.ts +122 -0
  122. package/dist/types/utils/json-parse.d.ts +98 -0
  123. package/dist/types/utils/oauth/alibaba-token-plan.d.ts +19 -0
  124. package/dist/types/utils/oauth/anthropic.d.ts +41 -0
  125. package/dist/types/utils/oauth/api-key-login.d.ts +38 -0
  126. package/dist/types/utils/oauth/api-key-validation.d.ts +39 -0
  127. package/dist/types/utils/oauth/bizrouter.d.ts +1 -0
  128. package/dist/types/utils/oauth/callback-server.d.ts +80 -0
  129. package/dist/types/utils/oauth/cerebras.d.ts +1 -0
  130. package/dist/types/utils/oauth/cloudflare-ai-gateway.d.ts +18 -0
  131. package/dist/types/utils/oauth/commandcode.d.ts +1 -0
  132. package/dist/types/utils/oauth/cursor.d.ts +15 -0
  133. package/dist/types/utils/oauth/deepinfra.d.ts +1 -0
  134. package/dist/types/utils/oauth/deepseek.d.ts +10 -0
  135. package/dist/types/utils/oauth/firepass.d.ts +1 -0
  136. package/dist/types/utils/oauth/fireworks.d.ts +1 -0
  137. package/dist/types/utils/oauth/fugu.d.ts +1 -0
  138. package/dist/types/utils/oauth/github-copilot.d.ts +38 -0
  139. package/dist/types/utils/oauth/gitlab-duo.d.ts +3 -0
  140. package/dist/types/utils/oauth/glm-zcode.d.ts +71 -0
  141. package/dist/types/utils/oauth/google-antigravity.d.ts +11 -0
  142. package/dist/types/utils/oauth/google-gemini-cli.d.ts +10 -0
  143. package/dist/types/utils/oauth/google-oauth-shared.d.ts +28 -0
  144. package/dist/types/utils/oauth/huggingface.d.ts +19 -0
  145. package/dist/types/utils/oauth/index.d.ts +39 -0
  146. package/dist/types/utils/oauth/kagi.d.ts +17 -0
  147. package/dist/types/utils/oauth/kilo.d.ts +5 -0
  148. package/dist/types/utils/oauth/kimi.d.ts +17 -0
  149. package/dist/types/utils/oauth/kiro.d.ts +71 -0
  150. package/dist/types/utils/oauth/litellm.d.ts +18 -0
  151. package/dist/types/utils/oauth/lm-studio.d.ts +17 -0
  152. package/dist/types/utils/oauth/mara.d.ts +1 -0
  153. package/dist/types/utils/oauth/minimax-code.d.ts +28 -0
  154. package/dist/types/utils/oauth/moonshot.d.ts +1 -0
  155. package/dist/types/utils/oauth/nanogpt.d.ts +1 -0
  156. package/dist/types/utils/oauth/nvidia.d.ts +18 -0
  157. package/dist/types/utils/oauth/ollama-cloud.d.ts +2 -0
  158. package/dist/types/utils/oauth/ollama.d.ts +18 -0
  159. package/dist/types/utils/oauth/openai-codex.d.ts +21 -0
  160. package/dist/types/utils/oauth/opencode.d.ts +18 -0
  161. package/dist/types/utils/oauth/opengateway.d.ts +1 -0
  162. package/dist/types/utils/oauth/openrouter.d.ts +1 -0
  163. package/dist/types/utils/oauth/parallel.d.ts +17 -0
  164. package/dist/types/utils/oauth/perplexity.d.ts +4 -0
  165. package/dist/types/utils/oauth/pkce.d.ts +8 -0
  166. package/dist/types/utils/oauth/qianfan.d.ts +17 -0
  167. package/dist/types/utils/oauth/qwen-portal.d.ts +19 -0
  168. package/dist/types/utils/oauth/sglang.d.ts +16 -0
  169. package/dist/types/utils/oauth/synthetic.d.ts +1 -0
  170. package/dist/types/utils/oauth/tavily.d.ts +17 -0
  171. package/dist/types/utils/oauth/together.d.ts +1 -0
  172. package/dist/types/utils/oauth/types.d.ts +56 -0
  173. package/dist/types/utils/oauth/venice.d.ts +18 -0
  174. package/dist/types/utils/oauth/vercel-ai-gateway.d.ts +18 -0
  175. package/dist/types/utils/oauth/vllm.d.ts +16 -0
  176. package/dist/types/utils/oauth/xai.d.ts +30 -0
  177. package/dist/types/utils/oauth/xiaomi.d.ts +25 -0
  178. package/dist/types/utils/oauth/zai.d.ts +18 -0
  179. package/dist/types/utils/oauth/zenmux.d.ts +1 -0
  180. package/dist/types/utils/overflow.d.ts +14 -0
  181. package/dist/types/utils/parse-bind.d.ts +26 -0
  182. package/dist/types/utils/provider-response.d.ts +6 -0
  183. package/dist/types/utils/provider-safety-stop.d.ts +8 -0
  184. package/dist/types/utils/proxy.d.ts +7 -0
  185. package/dist/types/utils/retry-after.d.ts +3 -0
  186. package/dist/types/utils/retry-budget.d.ts +1 -0
  187. package/dist/types/utils/retry.d.ts +29 -0
  188. package/dist/types/utils/schema/adapt.d.ts +24 -0
  189. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  190. package/dist/types/utils/schema/dereference.d.ts +11 -0
  191. package/dist/types/utils/schema/draft.d.ts +10 -0
  192. package/dist/types/utils/schema/equality.d.ts +4 -0
  193. package/dist/types/utils/schema/fields.d.ts +49 -0
  194. package/dist/types/utils/schema/index.d.ts +14 -0
  195. package/dist/types/utils/schema/json-schema-validator.d.ts +12 -0
  196. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  197. package/dist/types/utils/schema/normalize.d.ts +93 -0
  198. package/dist/types/utils/schema/root-combinator.d.ts +12 -0
  199. package/dist/types/utils/schema/spill.d.ts +8 -0
  200. package/dist/types/utils/schema/stamps.d.ts +25 -0
  201. package/dist/types/utils/schema/types.d.ts +4 -0
  202. package/dist/types/utils/schema/wire.d.ts +54 -0
  203. package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
  204. package/dist/types/utils/sse-debug.d.ts +10 -0
  205. package/dist/types/utils/tool-call-healing.d.ts +80 -0
  206. package/dist/types/utils/tool-choice-capability.d.ts +57 -0
  207. package/dist/types/utils/tool-choice.d.ts +50 -0
  208. package/dist/types/utils/validation.d.ts +17 -0
  209. package/dist/types/utils.d.ts +117 -0
  210. package/package.json +152 -0
  211. package/src/adapter-internals/provider-safety-stop.d.ts +45 -0
  212. package/src/adapter-internals/provider-safety-stop.ts +156 -0
  213. package/src/api-registry.d.ts +30 -0
  214. package/src/api-registry.ts +96 -0
  215. package/src/auth-broker/client.ts +444 -0
  216. package/src/auth-broker/index.ts +5 -0
  217. package/src/auth-broker/redact.ts +39 -0
  218. package/src/auth-broker/refresher.ts +130 -0
  219. package/src/auth-broker/remote-store.ts +1576 -0
  220. package/src/auth-broker/server.ts +764 -0
  221. package/src/auth-broker/types.ts +164 -0
  222. package/src/auth-broker/wire-schemas.ts +261 -0
  223. package/src/auth-gateway/http.ts +198 -0
  224. package/src/auth-gateway/index.ts +3 -0
  225. package/src/auth-gateway/server.ts +1315 -0
  226. package/src/auth-gateway/types.ts +160 -0
  227. package/src/auth-storage.ts +7312 -0
  228. package/src/cli.ts +269 -0
  229. package/src/codex-tools.d.ts +4 -0
  230. package/src/codex-tools.ts +24 -0
  231. package/src/context-cap-policy.d.ts +68 -0
  232. package/src/context-cap-policy.ts +123 -0
  233. package/src/core.ts +44 -0
  234. package/src/index.ts +61 -0
  235. package/src/model-cache.ts +236 -0
  236. package/src/model-manager.ts +744 -0
  237. package/src/model-pricing.d.ts +3 -0
  238. package/src/model-pricing.ts +68 -0
  239. package/src/model-retirements.d.ts +6 -0
  240. package/src/model-retirements.ts +19 -0
  241. package/src/model-thinking.d.ts +100 -0
  242. package/src/model-thinking.ts +1054 -0
  243. package/src/models.d.ts +21 -0
  244. package/src/models.json +94672 -0
  245. package/src/models.json.d.ts +9 -0
  246. package/src/models.ts +126 -0
  247. package/src/openai-completions-compat.d.ts +34 -0
  248. package/src/openai-completions-compat.ts +383 -0
  249. package/src/prompts/composer-bash-policy-recovery.md +1 -0
  250. package/src/prompts/cursor-composer-bash-policy-recovery.md +1 -0
  251. package/src/prompts/cursor-composer-edit-discipline.md +7 -0
  252. package/src/prompts/turn-aborted-guidance.md +4 -0
  253. package/src/provider-details.ts +90 -0
  254. package/src/provider-models/bundled-references.ts +38 -0
  255. package/src/provider-models/descriptors.ts +392 -0
  256. package/src/provider-models/google.ts +92 -0
  257. package/src/provider-models/index.ts +5 -0
  258. package/src/provider-models/ollama.ts +159 -0
  259. package/src/provider-models/openai-compat.ts +2920 -0
  260. package/src/provider-models/special.ts +185 -0
  261. package/src/providers/amazon-bedrock.d.ts +60 -0
  262. package/src/providers/amazon-bedrock.ts +939 -0
  263. package/src/providers/anthropic-messages-server-schema.ts +229 -0
  264. package/src/providers/anthropic-messages-server.ts +839 -0
  265. package/src/providers/anthropic.d.ts +280 -0
  266. package/src/providers/anthropic.ts +4421 -0
  267. package/src/providers/aws-credential-config.d.ts +19 -0
  268. package/src/providers/aws-credential-config.ts +179 -0
  269. package/src/providers/aws-credentials.d.ts +43 -0
  270. package/src/providers/aws-credentials.ts +457 -0
  271. package/src/providers/aws-eventstream.d.ts +38 -0
  272. package/src/providers/aws-eventstream.ts +185 -0
  273. package/src/providers/aws-sigv4.d.ts +55 -0
  274. package/src/providers/aws-sigv4.ts +218 -0
  275. package/src/providers/azure-openai-responses.d.ts +22 -0
  276. package/src/providers/azure-openai-responses.ts +447 -0
  277. package/src/providers/composer-discipline.d.ts +32 -0
  278. package/src/providers/composer-discipline.ts +95 -0
  279. package/src/providers/cursor/client-version.d.ts +10 -0
  280. package/src/providers/cursor/client-version.ts +10 -0
  281. package/src/providers/cursor/exec-modern.d.ts +98 -0
  282. package/src/providers/cursor/exec-modern.ts +497 -0
  283. package/src/providers/cursor/gen/agent_pb.d.ts +16769 -0
  284. package/src/providers/cursor/gen/agent_pb.ts +19780 -0
  285. package/src/providers/cursor/proto/agent.proto +4533 -0
  286. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  287. package/src/providers/cursor/proto/buf.yaml +17 -0
  288. package/src/providers/cursor-pi-args.d.ts +119 -0
  289. package/src/providers/cursor-pi-args.ts +187 -0
  290. package/src/providers/cursor.d.ts +72 -0
  291. package/src/providers/cursor.ts +3396 -0
  292. package/src/providers/dashscope-token-plan-headers.d.ts +57 -0
  293. package/src/providers/dashscope-token-plan-headers.ts +84 -0
  294. package/src/providers/error-message.d.ts +27 -0
  295. package/src/providers/error-message.ts +21 -0
  296. package/src/providers/github-copilot-headers.d.ts +40 -0
  297. package/src/providers/github-copilot-headers.ts +140 -0
  298. package/src/providers/gitlab-duo.d.ts +27 -0
  299. package/src/providers/gitlab-duo.ts +393 -0
  300. package/src/providers/google-auth.d.ts +26 -0
  301. package/src/providers/google-auth.ts +262 -0
  302. package/src/providers/google-gemini-cli.d.ts +75 -0
  303. package/src/providers/google-gemini-cli.ts +969 -0
  304. package/src/providers/google-gemini-headers.d.ts +43 -0
  305. package/src/providers/google-gemini-headers.ts +100 -0
  306. package/src/providers/google-shared.d.ts +183 -0
  307. package/src/providers/google-shared.ts +1105 -0
  308. package/src/providers/google-types.d.ts +138 -0
  309. package/src/providers/google-types.ts +167 -0
  310. package/src/providers/google-vertex.d.ts +11 -0
  311. package/src/providers/google-vertex.ts +124 -0
  312. package/src/providers/google.d.ts +4 -0
  313. package/src/providers/google.ts +41 -0
  314. package/src/providers/grammar.d.ts +1 -0
  315. package/src/providers/grammar.ts +70 -0
  316. package/src/providers/kimi.d.ts +27 -0
  317. package/src/providers/kimi.ts +52 -0
  318. package/src/providers/kiro-api-key.d.ts +50 -0
  319. package/src/providers/kiro-api-key.ts +786 -0
  320. package/src/providers/kiro-codewhisperer.d.ts +11 -0
  321. package/src/providers/kiro-codewhisperer.ts +600 -0
  322. package/src/providers/mock.ts +526 -0
  323. package/src/providers/ollama.d.ts +41 -0
  324. package/src/providers/ollama.ts +645 -0
  325. package/src/providers/openai-anthropic-shim.d.ts +31 -0
  326. package/src/providers/openai-anthropic-shim.ts +156 -0
  327. package/src/providers/openai-bounded-rate-limits.d.ts +3 -0
  328. package/src/providers/openai-bounded-rate-limits.ts +57 -0
  329. package/src/providers/openai-chat-server-schema.ts +254 -0
  330. package/src/providers/openai-chat-server.ts +724 -0
  331. package/src/providers/openai-codex/constants.d.ts +26 -0
  332. package/src/providers/openai-codex/constants.ts +43 -0
  333. package/src/providers/openai-codex/request-transformer.d.ts +50 -0
  334. package/src/providers/openai-codex/request-transformer.ts +219 -0
  335. package/src/providers/openai-codex/response-handler.d.ts +18 -0
  336. package/src/providers/openai-codex/response-handler.ts +111 -0
  337. package/src/providers/openai-codex-responses.d.ts +71 -0
  338. package/src/providers/openai-codex-responses.ts +3288 -0
  339. package/src/providers/openai-completions-compat.d.ts +6 -0
  340. package/src/providers/openai-completions-compat.ts +6 -0
  341. package/src/providers/openai-completions.d.ts +35 -0
  342. package/src/providers/openai-completions.ts +2294 -0
  343. package/src/providers/openai-opencodex-responses.ts +174 -0
  344. package/src/providers/openai-request-transform.d.ts +4 -0
  345. package/src/providers/openai-request-transform.ts +136 -0
  346. package/src/providers/openai-responses-server-schema.ts +290 -0
  347. package/src/providers/openai-responses-server.ts +1268 -0
  348. package/src/providers/openai-responses-shared.d.ts +106 -0
  349. package/src/providers/openai-responses-shared.ts +1253 -0
  350. package/src/providers/openai-responses.d.ts +37 -0
  351. package/src/providers/openai-responses.ts +989 -0
  352. package/src/providers/pi-native-client.d.ts +29 -0
  353. package/src/providers/pi-native-client.ts +243 -0
  354. package/src/providers/pi-native-server.ts +488 -0
  355. package/src/providers/register-builtins.d.ts +59 -0
  356. package/src/providers/register-builtins.ts +544 -0
  357. package/src/providers/synthetic.d.ts +26 -0
  358. package/src/providers/synthetic.ts +50 -0
  359. package/src/providers/transform-messages.d.ts +33 -0
  360. package/src/providers/transform-messages.ts +408 -0
  361. package/src/providers/vision-guard.d.ts +8 -0
  362. package/src/providers/vision-guard.ts +31 -0
  363. package/src/rate-limit-utils.d.ts +19 -0
  364. package/src/rate-limit-utils.ts +102 -0
  365. package/src/stream.d.ts +45 -0
  366. package/src/stream.ts +1306 -0
  367. package/src/types.d.ts +1073 -0
  368. package/src/types.ts +1305 -0
  369. package/src/usage/claude.ts +449 -0
  370. package/src/usage/gemini.ts +250 -0
  371. package/src/usage/github-copilot.ts +421 -0
  372. package/src/usage/google-antigravity.ts +201 -0
  373. package/src/usage/grok-cli.ts +259 -0
  374. package/src/usage/kimi.ts +285 -0
  375. package/src/usage/minimax-code.ts +31 -0
  376. package/src/usage/openai-codex.ts +503 -0
  377. package/src/usage/shared.ts +10 -0
  378. package/src/usage/zai.ts +247 -0
  379. package/src/usage.ts +190 -0
  380. package/src/utils/abort.d.ts +19 -0
  381. package/src/utils/abort.ts +51 -0
  382. package/src/utils/anthropic-auth.ts +95 -0
  383. package/src/utils/block-symbols.d.ts +6 -0
  384. package/src/utils/block-symbols.ts +11 -0
  385. package/src/utils/discovery/antigravity.ts +275 -0
  386. package/src/utils/discovery/codex.ts +362 -0
  387. package/src/utils/discovery/cursor.ts +388 -0
  388. package/src/utils/discovery/gemini.ts +248 -0
  389. package/src/utils/discovery/index.ts +4 -0
  390. package/src/utils/discovery/openai-compatible.ts +379 -0
  391. package/src/utils/event-stream.d.ts +41 -0
  392. package/src/utils/event-stream.ts +269 -0
  393. package/src/utils/fallback-transport.d.ts +110 -0
  394. package/src/utils/fallback-transport.ts +411 -0
  395. package/src/utils/fireworks-model-id.d.ts +10 -0
  396. package/src/utils/fireworks-model-id.ts +30 -0
  397. package/src/utils/foundry.d.ts +11 -0
  398. package/src/utils/foundry.ts +18 -0
  399. package/src/utils/h2-fetch.ts +60 -0
  400. package/src/utils/http-inspector.d.ts +59 -0
  401. package/src/utils/http-inspector.ts +380 -0
  402. package/src/utils/idle-iterator.d.ts +122 -0
  403. package/src/utils/idle-iterator.ts +410 -0
  404. package/src/utils/json-parse.d.ts +98 -0
  405. package/src/utils/json-parse.ts +607 -0
  406. package/src/utils/oauth/alibaba-token-plan.ts +60 -0
  407. package/src/utils/oauth/anthropic.ts +233 -0
  408. package/src/utils/oauth/api-key-login.ts +98 -0
  409. package/src/utils/oauth/api-key-validation.ts +344 -0
  410. package/src/utils/oauth/bizrouter.ts +15 -0
  411. package/src/utils/oauth/callback-server.d.ts +80 -0
  412. package/src/utils/oauth/callback-server.ts +359 -0
  413. package/src/utils/oauth/cerebras.ts +16 -0
  414. package/src/utils/oauth/cloudflare-ai-gateway.ts +48 -0
  415. package/src/utils/oauth/commandcode.ts +17 -0
  416. package/src/utils/oauth/cursor.ts +157 -0
  417. package/src/utils/oauth/deepinfra.ts +15 -0
  418. package/src/utils/oauth/deepseek.ts +53 -0
  419. package/src/utils/oauth/firepass.ts +24 -0
  420. package/src/utils/oauth/fireworks.ts +15 -0
  421. package/src/utils/oauth/fugu.ts +15 -0
  422. package/src/utils/oauth/github-copilot.d.ts +38 -0
  423. package/src/utils/oauth/github-copilot.ts +362 -0
  424. package/src/utils/oauth/gitlab-duo.ts +123 -0
  425. package/src/utils/oauth/glm-zcode.d.ts +71 -0
  426. package/src/utils/oauth/glm-zcode.ts +433 -0
  427. package/src/utils/oauth/google-antigravity.ts +200 -0
  428. package/src/utils/oauth/google-gemini-cli.ts +256 -0
  429. package/src/utils/oauth/google-oauth-shared.ts +110 -0
  430. package/src/utils/oauth/huggingface.ts +62 -0
  431. package/src/utils/oauth/index.ts +558 -0
  432. package/src/utils/oauth/kagi.ts +47 -0
  433. package/src/utils/oauth/kilo.ts +87 -0
  434. package/src/utils/oauth/kimi.d.ts +17 -0
  435. package/src/utils/oauth/kimi.ts +275 -0
  436. package/src/utils/oauth/kiro.ts +448 -0
  437. package/src/utils/oauth/litellm.ts +47 -0
  438. package/src/utils/oauth/lm-studio.ts +38 -0
  439. package/src/utils/oauth/mara.ts +16 -0
  440. package/src/utils/oauth/minimax-code.ts +78 -0
  441. package/src/utils/oauth/moonshot.ts +16 -0
  442. package/src/utils/oauth/nanogpt.ts +15 -0
  443. package/src/utils/oauth/nvidia.ts +70 -0
  444. package/src/utils/oauth/oauth.html +199 -0
  445. package/src/utils/oauth/ollama-cloud.ts +28 -0
  446. package/src/utils/oauth/ollama.ts +47 -0
  447. package/src/utils/oauth/openai-codex.ts +299 -0
  448. package/src/utils/oauth/opencode.ts +49 -0
  449. package/src/utils/oauth/opengateway.ts +15 -0
  450. package/src/utils/oauth/openrouter.ts +16 -0
  451. package/src/utils/oauth/parallel.ts +46 -0
  452. package/src/utils/oauth/perplexity.ts +225 -0
  453. package/src/utils/oauth/pkce.ts +18 -0
  454. package/src/utils/oauth/qianfan.ts +58 -0
  455. package/src/utils/oauth/qwen-portal.ts +60 -0
  456. package/src/utils/oauth/sglang.ts +42 -0
  457. package/src/utils/oauth/synthetic.ts +15 -0
  458. package/src/utils/oauth/tavily.ts +46 -0
  459. package/src/utils/oauth/together.ts +16 -0
  460. package/src/utils/oauth/types.d.ts +56 -0
  461. package/src/utils/oauth/types.ts +122 -0
  462. package/src/utils/oauth/venice.ts +59 -0
  463. package/src/utils/oauth/vercel-ai-gateway.ts +47 -0
  464. package/src/utils/oauth/vllm.ts +42 -0
  465. package/src/utils/oauth/xai.ts +246 -0
  466. package/src/utils/oauth/xiaomi.ts +199 -0
  467. package/src/utils/oauth/zai.ts +60 -0
  468. package/src/utils/oauth/zenmux.ts +15 -0
  469. package/src/utils/overflow.ts +275 -0
  470. package/src/utils/parse-bind.ts +81 -0
  471. package/src/utils/provider-response.d.ts +6 -0
  472. package/src/utils/provider-response.ts +30 -0
  473. package/src/utils/provider-safety-stop.ts +8 -0
  474. package/src/utils/proxy.d.ts +7 -0
  475. package/src/utils/proxy.ts +652 -0
  476. package/src/utils/retry-after.d.ts +3 -0
  477. package/src/utils/retry-after.ts +110 -0
  478. package/src/utils/retry-budget.d.ts +1 -0
  479. package/src/utils/retry-budget.ts +4 -0
  480. package/src/utils/retry.d.ts +29 -0
  481. package/src/utils/retry.ts +67 -0
  482. package/src/utils/schema/CONSTRAINTS.md +164 -0
  483. package/src/utils/schema/adapt.d.ts +24 -0
  484. package/src/utils/schema/adapt.ts +36 -0
  485. package/src/utils/schema/compatibility.d.ts +30 -0
  486. package/src/utils/schema/compatibility.ts +435 -0
  487. package/src/utils/schema/dereference.d.ts +11 -0
  488. package/src/utils/schema/dereference.ts +98 -0
  489. package/src/utils/schema/draft.d.ts +10 -0
  490. package/src/utils/schema/draft.ts +341 -0
  491. package/src/utils/schema/equality.d.ts +4 -0
  492. package/src/utils/schema/equality.ts +97 -0
  493. package/src/utils/schema/fields.d.ts +49 -0
  494. package/src/utils/schema/fields.ts +190 -0
  495. package/src/utils/schema/index.d.ts +14 -0
  496. package/src/utils/schema/index.ts +14 -0
  497. package/src/utils/schema/json-schema-validator.d.ts +12 -0
  498. package/src/utils/schema/json-schema-validator.ts +577 -0
  499. package/src/utils/schema/meta-validator.d.ts +2 -0
  500. package/src/utils/schema/meta-validator.ts +167 -0
  501. package/src/utils/schema/normalize.d.ts +93 -0
  502. package/src/utils/schema/normalize.ts +1588 -0
  503. package/src/utils/schema/root-combinator.d.ts +12 -0
  504. package/src/utils/schema/root-combinator.ts +143 -0
  505. package/src/utils/schema/spill.d.ts +8 -0
  506. package/src/utils/schema/spill.ts +43 -0
  507. package/src/utils/schema/stamps.d.ts +25 -0
  508. package/src/utils/schema/stamps.ts +97 -0
  509. package/src/utils/schema/types.d.ts +4 -0
  510. package/src/utils/schema/types.ts +11 -0
  511. package/src/utils/schema/wire.d.ts +54 -0
  512. package/src/utils/schema/wire.ts +213 -0
  513. package/src/utils/schema/zod-decontaminate.d.ts +31 -0
  514. package/src/utils/schema/zod-decontaminate.ts +331 -0
  515. package/src/utils/sse-debug.d.ts +10 -0
  516. package/src/utils/sse-debug.ts +289 -0
  517. package/src/utils/tool-call-healing.d.ts +80 -0
  518. package/src/utils/tool-call-healing.ts +298 -0
  519. package/src/utils/tool-choice-capability.d.ts +57 -0
  520. package/src/utils/tool-choice-capability.ts +633 -0
  521. package/src/utils/tool-choice.d.ts +50 -0
  522. package/src/utils/tool-choice.ts +99 -0
  523. package/src/utils/validation.ts +1080 -0
  524. package/src/utils.d.ts +117 -0
  525. package/src/utils.ts +523 -0
@@ -0,0 +1,280 @@
1
+ import Anthropic, { type ClientOptions as AnthropicSdkClientOptions } from "@anthropic-ai/sdk";
2
+ import type { MessageCreateParamsStreaming, MessageParam } from "@anthropic-ai/sdk/resources/messages";
3
+ import type { FetchImpl, Message, Model, ProviderSessionState, ServiceTier, SimpleStreamOptions, StreamFunction, StreamOptions, Usage } from "../types";
4
+ import { type RawHttpRequestDump } from "../utils/http-inspector";
5
+ export type AnthropicHeaderOptions = {
6
+ apiKey: string;
7
+ baseUrl?: string;
8
+ isOAuth?: boolean;
9
+ extraBetas?: string[];
10
+ stream?: boolean;
11
+ modelHeaders?: Record<string, string>;
12
+ isCloudflareAiGateway?: boolean;
13
+ /**
14
+ * Attach ZCode client "source" headers (User-Agent: ZCode/<ver>, X-Title,
15
+ * X-ZCode-Agent: glm, X-Platform, etc.) so api.z.ai recognizes the caller as
16
+ * the ZCode client, exactly like ZCode's `buildZCodeSourceHeaders` does for
17
+ * GLM providers. glm-zcode only.
18
+ */
19
+ zcodeSourceHeaders?: boolean;
20
+ };
21
+ export declare function normalizeAnthropicBaseUrl(baseUrl?: string): string | undefined;
22
+ export declare function buildBetaHeader(baseBetas: string[], extraBetas: string[]): string;
23
+ /**
24
+ * Replicates ZCode's `buildZCodeSourceHeaders()` + GLM `X-ZCode-Agent` tag
25
+ * (host bundle `Bl` / `buildConnectivitySourceHeaders` for GLM providers), so
26
+ * api.z.ai sees vib's glm-zcode requests as the ZCode client. Dynamic values
27
+ * (platform/arch, locale, timezone, OS version) are resolved at runtime exactly
28
+ * as ZCode does; printable-ASCII-only and conditionally omitted when empty.
29
+ */
30
+ export declare function buildZCodeSourceHeaders(): Record<string, string>;
31
+ export declare function buildAnthropicHeaders(options: AnthropicHeaderOptions): Record<string, string>;
32
+ type AnthropicCacheControl = {
33
+ type: "ephemeral";
34
+ ttl?: "1h" | "5m";
35
+ };
36
+ /**
37
+ * Clears the in-session "server rejected fast mode" sticky flag. Call when the
38
+ * caller is explicitly re-arming `serviceTier: "priority"` (e.g. user toggled
39
+ * `/fast on` after a previous turn auto-disabled it) so the next request
40
+ * actually carries `speed: "fast"` again. No-op when the map or state entry
41
+ * hasn't been materialized yet.
42
+ */
43
+ export declare function clearAnthropicFastModeFallback(providerSessionState: Map<string, ProviderSessionState> | undefined): void;
44
+ export declare function isAnthropicFastModeUnsupportedError(error: unknown): boolean;
45
+ export declare function isAnthropicThinkingBlockMutationError(error: unknown): boolean;
46
+ /**
47
+ * 400 shape where a replayed `thinking`/`redacted_thinking` block fails signature
48
+ * validation, e.g. `messages.5.content.24: Invalid \`signature\` in \`thinking\` block`.
49
+ * Unlike the latest-assistant mutation error above, the cited block can sit anywhere
50
+ * in the replayed history, so recovery must repair every assistant message rather
51
+ * than only the latest one.
52
+ */
53
+ export declare function isAnthropicThinkingSignatureInvalidError(error: unknown): boolean;
54
+ /**
55
+ * CLIProxyAPI replaces Anthropic's rejection body wholesale instead of forwarding
56
+ * it: the client only ever sees
57
+ * `{"type":"error","error":{"type":"api_error","message":"An error occurred while
58
+ * processing the request."}}`, delivered as an in-stream SSE `error` event on an
59
+ * HTTP 200 response, so neither the status nor the message survives. Captured CPA
60
+ * traces for that masked shape carry the thinking-integrity 400 upstream (issue
61
+ * #3900), and the generic body matches no transient phrase either, so the turn
62
+ * dies unrecoverably. Nothing in the payload names the cause; callers must pair
63
+ * this with a request that actually replays signed thinking blocks before
64
+ * treating it as a thinking-replay rejection.
65
+ */
66
+ export declare function isAnthropicMaskedProxyRejection(error: unknown): boolean;
67
+ /**
68
+ * Anthropic rejects a request carrying more than four `cache_control`
69
+ * breakpoints. An Anthropic-compatible gateway may attach its own block-level
70
+ * markers before forwarding, and those never appear in the params we serialize,
71
+ * so no amount of local counting can predict the total. The rejection is the
72
+ * only evidence that our generated marker is one too many, and it is worth
73
+ * exactly one retry with generated caching suppressed.
74
+ *
75
+ * Our own pre-flight `validateCacheControls` failure is deliberately not
76
+ * matched: it carries no `invalid_request_error` wording, so a local bug stays
77
+ * loud instead of being silently retried.
78
+ */
79
+ export declare function isAnthropicCacheBreakpointOverflowError(error: unknown): boolean;
80
+ export type AnthropicContextManagementInjectionDiagnostic = {
81
+ strategy: string;
82
+ message: string;
83
+ captureNote: string;
84
+ };
85
+ /**
86
+ * Diagnose a context-management strategy named by an Anthropic 400 but absent
87
+ * from the body Vibrato sent. This mismatch is evidence of intermediary mutation,
88
+ * not permission to silently enable thinking or retry the request.
89
+ */
90
+ export declare function diagnoseAnthropicContextManagementInjection(error: unknown, dump: RawHttpRequestDump | undefined): AnthropicContextManagementInjectionDiagnostic | undefined;
91
+ export interface CpaToolAliasRestoreFailure {
92
+ /** The rejected tool-call name exactly as CPA quoted it. */
93
+ alias: string;
94
+ /**
95
+ * Base tool name parsed out of the alias (`mcp__<server>__<token>_<base>`
96
+ * → `<base>`), when the alias shape is well-formed. `undefined` for a
97
+ * malformed alias — callers must then fall back to direct discovery and
98
+ * never invent a name.
99
+ */
100
+ baseName?: string;
101
+ }
102
+ /**
103
+ * Classifies the CPA alias-restore signature and extracts the rejected alias
104
+ * plus its base tool name. Claims only statusless in-stream SSE error events
105
+ * and HTTP 5xx failures: a non-5xx status carrying this text is not the
106
+ * observed CPA delivery shape and is left to the other classifiers.
107
+ */
108
+ export declare function parseCpaToolAliasRestoreFailure(error: unknown): CpaToolAliasRestoreFailure | undefined;
109
+ export declare function isCpaToolAliasRestoreFailure(error: unknown): boolean;
110
+ export declare const claudeCodeVersion = "2.1.219";
111
+ export declare const claudeCodeEntrypoint = "sdk-cli";
112
+ export declare const claudeToolPrefix: string;
113
+ export declare const claudeCodeSystemInstruction = "You are a Claude agent, built on Anthropic's Claude Agent SDK.";
114
+ export declare function mapStainlessOs(platform: string): "MacOS" | "Windows" | "Linux" | "FreeBSD" | `Other::${string}`;
115
+ export declare function mapStainlessArch(arch: string): "x64" | "arm64" | "x86" | `other::${string}`;
116
+ export declare const claudeCodeHeaders: {
117
+ readonly "X-Stainless-Retry-Count": "0";
118
+ readonly "X-Stainless-Runtime-Version": "v24.3.0";
119
+ readonly "X-Stainless-Package-Version": "0.74.0";
120
+ readonly "X-Stainless-Runtime": "node";
121
+ readonly "X-Stainless-Lang": "js";
122
+ readonly "X-Stainless-Arch": "arm64" | "x64" | "x86" | `other::${string}`;
123
+ readonly "X-Stainless-Os": "FreeBSD" | "Linux" | "MacOS" | "Windows" | `Other::${string}`;
124
+ readonly "X-Stainless-Timeout": "600";
125
+ };
126
+ export declare function isClaudeCloakingUserId(userId: string): boolean;
127
+ export declare function generateClaudeCloakingUserId(): string;
128
+ export declare const applyClaudeToolPrefix: (name: string, prefixOverride?: string) => string;
129
+ export declare const stripClaudeToolPrefix: (name: string, prefixOverride?: string) => string;
130
+ export type AnthropicEffort = "low" | "medium" | "high" | "xhigh" | "max";
131
+ export type AnthropicThinkingDisplay = "summarized" | "omitted";
132
+ export interface AnthropicOptions extends StreamOptions {
133
+ /**
134
+ * Enable extended thinking.
135
+ * For Opus 4.6+: uses adaptive thinking (Anthropic model decides when/how much to think).
136
+ * For older models: uses budget-based thinking with thinkingBudgetTokens.
137
+ */
138
+ thinkingEnabled?: boolean;
139
+ /**
140
+ * Token budget for extended thinking (older models only).
141
+ * Ignored for Opus 4.6+ which uses adaptive thinking.
142
+ */
143
+ thinkingBudgetTokens?: number;
144
+ /**
145
+ * Effort level for adaptive thinking (Opus 4.6+ only).
146
+ * Controls how much thinking Anthropic model allocates:
147
+ * - "max": Always thinks with no constraints
148
+ * - "high": Always thinks, deep reasoning (default)
149
+ * - "medium": Moderate thinking, may skip for simple queries
150
+ * - "low": Minimal thinking, skips for simple tasks
151
+ * Ignored for older models.
152
+ */
153
+ effort?: AnthropicEffort;
154
+ /**
155
+ * Optional reasoning level fallback for direct Anthropic provider usage.
156
+ * Converted to adaptive effort when effort is not explicitly provided.
157
+ */
158
+ reasoning?: SimpleStreamOptions["reasoning"];
159
+ /**
160
+ * Controls how Anthropic returns thinking content when the selected thinking
161
+ * transport supports a display option. Defaults to "summarized" where the
162
+ * API accepts it.
163
+ */
164
+ thinkingDisplay?: AnthropicThinkingDisplay;
165
+ interleavedThinking?: boolean;
166
+ toolChoice?: "auto" | "any" | "none" | {
167
+ type: "tool";
168
+ name: string;
169
+ };
170
+ betas?: string[] | string;
171
+ /**
172
+ * Realization of `serviceTier: "priority"` on Anthropic models. When
173
+ * `"priority"`, sets `speed: "fast"` on the request and appends the
174
+ * `fast-mode-2026-02-01` beta header. Anthropic rejects unsupported models
175
+ * with `invalid_request_error`, which triggers an in-provider one-shot
176
+ * fallback (see `fastModeDisabled` provider state).
177
+ *
178
+ * Other `ServiceTier` values are currently ignored on this provider.
179
+ */
180
+ serviceTier?: ServiceTier;
181
+ /** Force OAuth bearer auth mode for proxy tokens that don't match Anthropic token prefixes. */
182
+ isOAuth?: boolean;
183
+ /**
184
+ * Pre-built Anthropic client instance. When provided, skips internal client
185
+ * construction entirely. Use this to inject alternative SDK clients such as
186
+ * `AnthropicVertex` that shares the same messaging API.
187
+ */
188
+ client?: Anthropic;
189
+ }
190
+ export type AnthropicClientOptionsArgs = {
191
+ model: Model<"anthropic-messages">;
192
+ apiKey: string;
193
+ extraBetas?: string[];
194
+ stream?: boolean;
195
+ interleavedThinking?: boolean;
196
+ headers?: Record<string, string>;
197
+ dynamicHeaders?: Record<string, string>;
198
+ isOAuth?: boolean;
199
+ hasTools?: boolean;
200
+ onSseEvent?: AnthropicOptions["onSseEvent"];
201
+ fetch?: FetchImpl;
202
+ requestMaxRetries?: number;
203
+ maxRetryDelayMs?: number;
204
+ streamFirstEventTimeoutMs?: number;
205
+ streamIdleTimeoutMs?: number;
206
+ };
207
+ export type AnthropicClientOptionsResult = {
208
+ isOAuthToken: boolean;
209
+ apiKey: string | null;
210
+ authToken?: string | null;
211
+ baseURL?: string;
212
+ maxRetries: number;
213
+ timeout?: number;
214
+ dangerouslyAllowBrowser: boolean;
215
+ defaultHeaders: Record<string, string>;
216
+ logLevel: AnthropicSdkClientOptions["logLevel"];
217
+ fetch?: AnthropicSdkClientOptions["fetch"];
218
+ fetchOptions?: AnthropicSdkClientOptions["fetchOptions"];
219
+ };
220
+ export declare function resolveGlmZcodeAnthropicBaseUrl(): string;
221
+ export declare function isProviderRetryableError(error: unknown, provider?: string): boolean;
222
+ export type AnthropicUsageLike = {
223
+ cache_creation?: {
224
+ ephemeral_5m_input_tokens?: number | null;
225
+ ephemeral_1h_input_tokens?: number | null;
226
+ } | null;
227
+ server_tool_use?: {
228
+ web_search_requests?: number | null;
229
+ web_fetch_requests?: number | null;
230
+ } | null;
231
+ };
232
+ /**
233
+ * Capture Anthropic's optional cache-creation TTL breakdown and server-tool-use
234
+ * counters into the harness Usage shape. Only sets fields that were reported, so
235
+ * a `message_delta` that omits `cache_creation` does not clobber the breakdown
236
+ * established at `message_start`.
237
+ */
238
+ export declare function applyAnthropicUsageExtras(usage: Usage, source: AnthropicUsageLike): void;
239
+ export declare const streamAnthropic: StreamFunction<"anthropic-messages">;
240
+ export type AnthropicSystemBlock = {
241
+ type: "text";
242
+ text: string;
243
+ cache_control?: AnthropicCacheControl;
244
+ };
245
+ type SystemBlockOptions = {
246
+ includeClaudeCodeInstruction?: boolean;
247
+ extraInstructions?: string[];
248
+ billingPayload?: unknown;
249
+ cacheControl?: AnthropicCacheControl;
250
+ };
251
+ export declare function buildAnthropicSystemBlocks(systemPrompt: readonly string[] | undefined, options?: SystemBlockOptions): AnthropicSystemBlock[] | undefined;
252
+ export declare function normalizeExtraBetas(betas?: string[] | string): string[];
253
+ export declare function buildAnthropicClientOptions(args: AnthropicClientOptionsArgs): AnthropicClientOptionsResult;
254
+ export declare function normalizeCacheControlTtlOrdering(params: MessageCreateParamsStreaming): void;
255
+ export declare function convertAnthropicMessages(messages: Message[], model: Model<"anthropic-messages">, isOAuthToken: boolean, options?: {
256
+ repairLatestAssistantThinking?: boolean;
257
+ repairAllAssistantThinking?: boolean;
258
+ }): MessageParam[];
259
+ /**
260
+ * Normalize a JSON Schema node for Anthropic tool `input_schema`.
261
+ *
262
+ * Applies the full whitelist semantics from the Anthropic Python SDK's
263
+ * `lib/_parse/_transform.py::transform_schema`:
264
+ *
265
+ * 1. Universal keys (`$ref`, `$defs`, `type`, `anyOf`/`oneOf`/`allOf`, `enum`, `const`,
266
+ * `description`, `title`, `default`, `nullable`) are preserved on every node.
267
+ * 2. Per-type keys are kept additively (object → `properties`/`required`/`additionalProperties`,
268
+ * array → `items`/`prefixItems` plus `minItems` only when 0 or 1, string → `format`
269
+ * only when in the supported value set).
270
+ * 3. Everything else is demoted into the node's `description` as `\n\n{key: value, ...}`
271
+ * so the model still sees the constraint as a natural-language hint.
272
+ *
273
+ * Object nodes default to `additionalProperties: false`, but explicit open-map
274
+ * declarations (`additionalProperties: true` or a schema literal — Zod's
275
+ * `z.record(z.string(), z.unknown())` produces `{}`) are preserved. The strict-mode
276
+ * pass downstream demotes those shapes to non-strict instead of fabricating a closed
277
+ * object, so callers like the resolve tool keep working open-map semantics.
278
+ */
279
+ export declare function normalizeAnthropicToolSchema(schema: unknown): unknown;
280
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { AwsCredentials } from "./aws-sigv4";
2
+ export type AwsIniFile = Record<string, Record<string, string>>;
3
+ export interface AwsCredentialSourceOptions {
4
+ profile?: string;
5
+ }
6
+ export interface AwsCredentialSource {
7
+ profile: string;
8
+ credentialsPath: string;
9
+ configPath: string;
10
+ }
11
+ export type AwsProfileCapability = "static" | "process" | "sso" | undefined;
12
+ export declare function parseAwsIni(text: string): AwsIniFile;
13
+ export declare function resolveAwsCredentialSource(options?: AwsCredentialSourceOptions): AwsCredentialSource;
14
+ export declare function readAwsStaticEnvironmentCredentials(): AwsCredentials | undefined;
15
+ export declare function classifyAwsProfileCapability(profile: string, credentialsIni: AwsIniFile | undefined, configIni: AwsIniFile | undefined): AwsProfileCapability;
16
+ export declare function hasResolvableAwsProfileSource(options?: AwsCredentialSourceOptions & {
17
+ onScan?: () => void;
18
+ }, now?: number): boolean;
19
+ export declare function isValidBedrockBearerToken(token: string | undefined): token is string;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * AWS credential resolution for the Bedrock provider.
3
+ *
4
+ * Chain (first hit wins):
5
+ * 1. Static credentials from the environment
6
+ * (`AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` [+ `AWS_SESSION_TOKEN`]).
7
+ * 2. Profile in `~/.aws/credentials` (and `~/.aws/config` for SSO):
8
+ * - static `aws_access_key_id` / `aws_secret_access_key` / `aws_session_token`
9
+ * - SSO profile referencing a cached token in `~/.aws/sso/cache/*.json`,
10
+ * which we exchange for short-lived role credentials via
11
+ * `https://portal.sso.{region}.amazonaws.com/federation/credentials`.
12
+ * - `credential_process` — an external command emitting the AWS SDK
13
+ * `Version: 1` JSON envelope on stdout. Used by `aws-vault`, `granted`,
14
+ * in-house brokers, etc.
15
+ * 3. EC2 IMDSv2 (only when `AWS_EC2_METADATA_DISABLED` is unset / falsey and
16
+ * `169.254.169.254` is reachable within a 1 s timeout).
17
+ *
18
+ * Resolved credentials are cached process-wide per profile and refreshed
19
+ * 60 s before `Expiration` to absorb clock skew.
20
+ */
21
+ import type { AwsCredentials } from "./aws-sigv4";
22
+ export interface ResolvedCredentials extends AwsCredentials {
23
+ /** Absolute expiration timestamp in ms. `undefined` for non-expiring static creds. */
24
+ expiresAt?: number;
25
+ }
26
+ export interface CredentialResolveOptions {
27
+ /** Named profile from `~/.aws/credentials` / `~/.aws/config`. */
28
+ profile?: string;
29
+ /** Falls back to env (`AWS_REGION` / `AWS_DEFAULT_REGION`) and finally `us-east-1`. */
30
+ region?: string;
31
+ signal?: AbortSignal;
32
+ }
33
+ export declare function resolveAwsCredentials(opts?: CredentialResolveOptions): Promise<ResolvedCredentials>;
34
+ /** POSIX-shell-style tokenizer used by the AWS CLI for `credential_process`.
35
+ *
36
+ * Outside quotes a backslash escapes the next character. Inside single quotes
37
+ * everything is literal (no escapes, cannot contain `'`). Inside double quotes
38
+ * a backslash only escapes `$`, `` ` ``, `"`, and `\` — every other backslash
39
+ * is preserved verbatim, which is what makes Windows paths like
40
+ * `"C:\Program Files\tool\auth.exe"` survive tokenization. */
41
+ export declare function tokenizeCredentialProcessCommand(cmd: string): string[];
42
+ /** Test/diagnostic helper — drops cached credentials. */
43
+ export declare function clearAwsCredentialCache(): void;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `application/vnd.amazon.eventstream` decoder.
3
+ *
4
+ * Wire format (all integers big-endian):
5
+ *
6
+ * [total length u32]
7
+ * [headers length u32]
8
+ * [prelude CRC32 u32] <- CRC over the first 8 bytes
9
+ * [headers headers_length]
10
+ * [payload total_length - headers_length - 16]
11
+ * [message CRC32 u32] <- CRC over the entire message minus the trailing 4 bytes
12
+ *
13
+ * Headers: a sequence of `[name_len u8][name utf8][value_type u8][value …]`.
14
+ * We only need the typed values Bedrock emits (boolean true/false, byte, short,
15
+ * integer, long, byte-array, string, timestamp, uuid). All are surfaced as
16
+ * strings for ease of consumption — Bedrock only sets string-valued headers in
17
+ * practice (`:event-type`, `:message-type`, `:content-type`, `:exception-type`).
18
+ */
19
+ export interface EventStreamMessage {
20
+ /** Lower-cased copy is *not* applied — Bedrock uses casing like `:event-type` verbatim. */
21
+ headers: Record<string, string>;
22
+ payload: Uint8Array;
23
+ }
24
+ export declare function crc32(bytes: Uint8Array, seed?: number): number;
25
+ /**
26
+ * Decode a single, fully buffered eventstream message. Throws if the framing is
27
+ * malformed or either CRC mismatches. Used by both `decodeEventStream` (the
28
+ * streaming entry point) and the unit tests, which exercise it with hand-built
29
+ * frames.
30
+ */
31
+ export declare function decodeMessage(frame: Uint8Array): EventStreamMessage;
32
+ /**
33
+ * Async generator that consumes a `ReadableStream<Uint8Array>` (e.g. a fetch
34
+ * response body) and yields fully-framed messages. Handles arbitrary chunk
35
+ * boundaries: messages may span multiple chunks, and a single chunk may carry
36
+ * many messages.
37
+ */
38
+ export declare function decodeEventStream(source: ReadableStream<Uint8Array>): AsyncGenerator<EventStreamMessage>;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * AWS Signature V4 signing for HTTP requests. WebCrypto-only — no node:crypto.
3
+ *
4
+ * Matches `@smithy/signature-v4` for our usage: header-based signing with a
5
+ * full SHA-256 payload hash (Bedrock requires `applyChecksum: true`).
6
+ *
7
+ * Returns the set of headers to attach to the request:
8
+ * - `host`
9
+ * - `x-amz-date`
10
+ * - `x-amz-content-sha256`
11
+ * - `x-amz-security-token` (only when credentials carry a sessionToken)
12
+ * - `authorization`
13
+ */
14
+ export interface AwsCredentials {
15
+ accessKeyId: string;
16
+ secretAccessKey: string;
17
+ sessionToken?: string;
18
+ }
19
+ export interface SignParams {
20
+ method: string;
21
+ /** Hostname only — used to build the `host` header and the canonical request. */
22
+ host: string;
23
+ /** URI path component, e.g. `/model/anthropic.Anthropic model/converse-stream`. */
24
+ path: string;
25
+ /** Optional pre-built query string (without leading `?`). */
26
+ query?: string;
27
+ /** Extra headers to sign in addition to `host`/`x-amz-*`. Names are case-insensitive. */
28
+ headers?: Record<string, string>;
29
+ body: Uint8Array;
30
+ region: string;
31
+ service: string;
32
+ credentials: AwsCredentials;
33
+ /** Override clock for deterministic tests. */
34
+ date?: Date;
35
+ }
36
+ export declare function toHex(bytes: Uint8Array): string;
37
+ export declare function sha256(data: Uint8Array | string): Promise<Uint8Array>;
38
+ export declare function sha256Hex(data: Uint8Array | string): Promise<string>;
39
+ /**
40
+ * Derive a signing key: HMAC chain `kSecret → kDate → kRegion → kService → kSigning`.
41
+ */
42
+ export declare function getSigningKey(secretAccessKey: string, shortDate: string, region: string, service: string): Promise<Uint8Array>;
43
+ /** `YYYYMMDDTHHMMSSZ` + 8-char `YYYYMMDD`. */
44
+ export declare function formatAmzDate(d: Date): {
45
+ longDate: string;
46
+ shortDate: string;
47
+ };
48
+ export interface SignedHeaders {
49
+ host: string;
50
+ "x-amz-date": string;
51
+ "x-amz-content-sha256": string;
52
+ authorization: string;
53
+ "x-amz-security-token"?: string;
54
+ }
55
+ export declare function signRequest(params: SignParams): Promise<SignedHeaders>;
@@ -0,0 +1,22 @@
1
+ import type { Model, ServiceTier, StreamFunction, StreamOptions, ToolChoice } from "../types";
2
+ export interface AzureOpenAIResponsesOptions extends StreamOptions {
3
+ reasoning?: "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
4
+ reasoningSummary?: "auto" | "detailed" | "concise" | null;
5
+ azureApiVersion?: string;
6
+ azureResourceName?: string;
7
+ azureBaseUrl?: string;
8
+ azureDeploymentName?: string;
9
+ toolChoice?: ToolChoice;
10
+ serviceTier?: ServiceTier;
11
+ }
12
+ /**
13
+ * Generate function for Azure OpenAI Responses API
14
+ */
15
+ export declare const streamAzureOpenAIResponses: StreamFunction<"azure-openai-responses">;
16
+ /** Test seam: the Azure endpoint config as resolved from trusted env. */
17
+ export declare function resolveAzureConfigForTest(model: Model<"azure-openai-responses">, options?: AzureOpenAIResponsesOptions): {
18
+ baseUrl: string;
19
+ apiVersion: string;
20
+ };
21
+ /** Test seam: the client API key as resolved from a caller value plus trusted env. */
22
+ export declare function resolveAzureClientApiKeyForTest(apiKey: string): string | undefined;
@@ -0,0 +1,32 @@
1
+ export declare function isComposerHarnessModel(modelId: string): boolean;
2
+ /** Stable text contract for a local shell rejection caused by Composer file-I/O discipline. */
3
+ export declare const COMPOSER_BASH_POLICY_ERROR_PREFIX = "Composer bash policy blocked repository file I/O.";
4
+ export declare const COMPOSER_BASH_POLICY_ERROR_CODE = "composer-bash-policy:repository-file-io";
5
+ export type ComposerBashPolicyToolSurface = "generic" | "cursor";
6
+ /**
7
+ * Format the model-visible policy rejection with a stable marker and the tool
8
+ * vocabulary the model actually receives on this provider surface.
9
+ */
10
+ export declare function formatComposerBashPolicyError(surface?: ComposerBashPolicyToolSurface): string;
11
+ /**
12
+ * Matches both the structured current error and the original prefix so a
13
+ * resumed session can recover after an upgrade without string-version skew.
14
+ */
15
+ export declare function isComposerBashPolicyBlockedError(text: string): boolean;
16
+ /**
17
+ * Matches only errors emitted directly by the current policy implementation.
18
+ * Live recovery must use this strict form so failed shell output that merely
19
+ * quotes a policy error cannot masquerade as the policy gate itself.
20
+ */
21
+ export declare function isCurrentComposerBashPolicyBlockedError(text: string): boolean;
22
+ /** One bounded, tool-enabled retry instruction for generic Composer agent loops. */
23
+ export declare const COMPOSER_BASH_POLICY_RECOVERY_PROMPT: string;
24
+ /** One bounded, tool-enabled retry instruction for Cursor's native remote tool surface. */
25
+ export declare const CURSOR_COMPOSER_BASH_POLICY_RECOVERY_PROMPT: string;
26
+ export declare const COMPOSER_EDIT_DISCIPLINE_PROMPT = "File-editing discipline for this Composer harness (this OVERRIDES contrary habits from your training):\n\n- Discover file names ONLY with the find tool; search file contents ONLY with the search tool; read file bodies or line ranges ONLY with the read tool. NEVER inspect repository files through shell commands (ls, find, fd, cat, sed, awk, grep, rg, head, tail, less, more) or scripts \u2014 that output carries no hashline anchors and bypasses the agent's safety limits.\n- Modify files ONLY with the edit/write tools. NEVER mutate files through shell redirection, tee, sed -i, perl -pi, inline python/node/bun scripts, or other out-of-band writes \u2014 those writes invalidate every known anchor and break edit recovery.\n- A line anchor (e.g. \"42sr\") is a line number plus a 2-char content hash. You CANNOT compute the hash yourself: copy anchors verbatim from the MOST RECENT read/search/edit output of that exact file. NEVER guess, renumber, or arithmetically shift an anchor.\n- After ANY edit to a file (including your own), anchors you saw earlier are stale. Re-read the edited region, or copy the fresh anchors printed in the edit result, before issuing the next edit.\n- If an edit is rejected with \"anchors do not match\", the rejection message prints the current lines WITH fresh anchors. Retry using exactly those printed anchors.\n- Tool-call arguments must be the exact JSON/schema object requested by the tool. Do not include Markdown, commentary, analysis text, or invented fields inside tool arguments.\n- Use bash only for terminal operations such as tests, builds, package scripts, and git commands. A shell command string must contain only the command itself; NEVER interleave reasoning or commentary into command strings or heredocs.";
27
+ /**
28
+ * Cursor executes a different native tool vocabulary from the generic agent
29
+ * loop. Keep this prompt separate so Composer is never told to call `edit`,
30
+ * `find`, or `search` when those names are unavailable remotely.
31
+ */
32
+ export declare const CURSOR_COMPOSER_EDIT_DISCIPLINE_PROMPT: string;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The Cursor client version reported to api2.cursor.sh.
3
+ *
4
+ * Every call against the Cursor backend must send the same
5
+ * x-cursor-client-version: the backend gates features and minimum versions on
6
+ * it, so a drift between the agent Run path and model discovery makes one of
7
+ * them fail while the other keeps working. Keep this as the single source of
8
+ * truth for the header value.
9
+ */
10
+ export declare const CURSOR_CLIENT_VERSION = "cli-2026.02.13-41ac335";
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Proto builders for the modern Cursor CLI exec frames (`ExecServerMessage`
3
+ * 27-31, 36-38, 40-55).
4
+ *
5
+ * Split out of `cursor.ts` because these are pure `create(...)` shapes with no
6
+ * transport, stream, or block-state coupling: the dispatcher decides *which*
7
+ * answer a frame gets, this module knows *what* that answer looks like on the
8
+ * wire. Every builder returns a result whose oneof case is set — an
9
+ * `ExecClientMessage` carrying a result with an unset oneof is a fake success
10
+ * the server reads as "the tool ran and produced nothing".
11
+ */
12
+ import type { ToolResultMessage } from "../../types";
13
+ import { type ExecuteHookRequest, type ExecuteHookResult, type McpStateExecResult, type McpToolDefinition, type PiBashExecResult, type PiEditExecResult, type PiFindExecResult, type PiGrepExecResult, type PiLsExecResult, type PiReadExecResult, type PiTruncation, type PiWriteExecResult } from "./gen/agent_pb";
14
+ /**
15
+ * The pure arg translation lives in `../cursor-pi-args` so the legacy pi shim
16
+ * can share it without pulling this module's protobuf graph into the bundled
17
+ * virtual registry. Re-exported here because this is where the frame builders
18
+ * and their translation are consumed together.
19
+ */
20
+ export { omitUndefinedArgs, piEscapeRegexLiteral, piGrepSkip, piJoinPath, piLimit, piLsPath, piReadDisplayPath, piReadPath, piReadPathHasRange, piTimeout, } from "../cursor-pi-args";
21
+ /** Flatten a tool result's content into the single `output` string the Pi frames carry. */
22
+ export declare function piOutputText(toolResult: ToolResultMessage): string;
23
+ /**
24
+ * Translate a local tool's truncation summary into `PiTruncation`.
25
+ *
26
+ * Two shapes reach here. `read`/`grep` set `details.truncation`
27
+ * (`TruncationResult`), which carries an explicit `truncated` boolean. `bash`
28
+ * sets `details.meta.truncation` (`TruncationMeta`), which has **no** such
29
+ * flag — its presence *is* the signal, and requiring the boolean silently
30
+ * dropped every Bash truncation, handing Cursor clipped output with no notice
31
+ * that it was clipped.
32
+ *
33
+ * Returns `undefined` when nothing was truncated: the field is `optional` on
34
+ * every Pi success message, and emitting a zeroed `PiTruncation` would tell the
35
+ * server the output was trimmed to nothing.
36
+ */
37
+ export declare function piTruncation(toolResult: ToolResultMessage): PiTruncation | undefined;
38
+ export declare function buildPiReadResult(toolResult: ToolResultMessage): PiReadExecResult;
39
+ export declare function buildPiReadError(error: string): PiReadExecResult;
40
+ export declare function buildPiBashResult(toolResult: ToolResultMessage): PiBashExecResult;
41
+ export declare function buildPiBashError(error: string): PiBashExecResult;
42
+ /**
43
+ * `PiEditExecSuccess` requires `diff` and `patch` alongside `output`. The local
44
+ * `edit` tool reports them under `details`; when it does not, the strings stay
45
+ * empty rather than being faked from the output text.
46
+ */
47
+ export declare function buildPiEditResult(toolResult: ToolResultMessage): PiEditExecResult;
48
+ export declare function buildPiEditError(error: string): PiEditExecResult;
49
+ /**
50
+ * A refusal is not an execution failure: `PiEditExecResult` models them as
51
+ * separate variants, and answering a denied call with `error` reads as "the
52
+ * edit ran and broke", which invites a retry of an operation that was never
53
+ * permitted.
54
+ */
55
+ export declare function buildPiEditRejected(reason: string): PiEditExecResult;
56
+ export declare function buildPiWriteResult(toolResult: ToolResultMessage): PiWriteExecResult;
57
+ export declare function buildPiWriteError(error: string): PiWriteExecResult;
58
+ /** Same variant split as {@link buildPiEditRejected}. */
59
+ export declare function buildPiWriteRejected(reason: string): PiWriteExecResult;
60
+ export declare function buildPiGrepResult(toolResult: ToolResultMessage): PiGrepExecResult;
61
+ export declare function buildPiGrepError(error: string): PiGrepExecResult;
62
+ export declare function buildPiFindResult(toolResult: ToolResultMessage): PiFindExecResult;
63
+ export declare function buildPiFindError(error: string): PiFindExecResult;
64
+ export declare function buildPiLsResult(toolResult: ToolResultMessage): PiLsExecResult;
65
+ export declare function buildPiLsError(error: string): PiLsExecResult;
66
+ /**
67
+ * Answer `mcpStateExecArgs` (frame 36) from the catalog already advertised in
68
+ * `RequestContext.tools`.
69
+ *
70
+ * This client hosts no MCP servers of its own: every forwarded tool is a local
71
+ * pi-agent tool published under a synthetic `providerIdentifier`. Regrouping
72
+ * the same list keeps the server's view of "which servers exist and what do
73
+ * they expose" consistent with what it was told at context time, instead of
74
+ * claiming zero servers while tool calls for them keep arriving.
75
+ *
76
+ * `serverIdentifiers` filters the answer when the server asks about specific
77
+ * servers. `kickOnly` is a restart request — there is nothing to restart, so it
78
+ * is answered with the same state rather than an error.
79
+ */
80
+ export declare function buildMcpStateResult(tools: McpToolDefinition[], serverIdentifiers: readonly string[]): McpStateExecResult;
81
+ /**
82
+ * Build the neutral response for a hook query: the matching response case with
83
+ * every field unset.
84
+ *
85
+ * This client runs no Cursor hooks, and every field of every response variant
86
+ * is `optional` — so an empty response of the right case means "no hook had
87
+ * anything to say", which is exactly true. It is NOT the unset-oneof fake
88
+ * success: the case itself is set, only the payload is empty.
89
+ *
90
+ * `ExecuteHookRequest` and `ExecuteHookResponse` are parallel oneofs whose case
91
+ * names line up, but the two unions are unrelated to the compiler: a `switch`
92
+ * is what makes each pairing individually type-checked, and it forces a
93
+ * deliberate branch when a future regen adds a request case.
94
+ *
95
+ * Returns `null` for a request case this build does not model, which the
96
+ * dispatcher answers with `ExecClientThrow` rather than guessing a case.
97
+ */
98
+ export declare function buildNeutralHookResult(request: ExecuteHookRequest | undefined): ExecuteHookResult | null;