@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,18 @@
1
+ /**
2
+ * OpenCode Zen login flow.
3
+ *
4
+ * OpenCode Zen is a subscription service that provides access to various AI models
5
+ * (GPT-5.x, Anthropic model 4.x, Gemini 3, etc.) through a unified API at opencode.ai/zen.
6
+ * This is not OAuth - it's a simple API key flow:
7
+ * 1. Open browser to https://opencode.ai/auth
8
+ * 2. User logs in and copies their API key
9
+ * 3. User pastes the API key back into the CLI
10
+ */
11
+ import type { OAuthController } from "./types";
12
+ /**
13
+ * Login to OpenCode Zen.
14
+ *
15
+ * Opens browser to auth page, prompts user to paste their API key.
16
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
17
+ */
18
+ export declare function loginOpenCode(options: OAuthController): Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginOpenGateway: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginOpenRouter: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Parallel login flow.
3
+ *
4
+ * Parallel uses an API key from the account settings page.
5
+ * This is an API key flow:
6
+ * 1. Open browser to Parallel API key settings
7
+ * 2. User copies API key
8
+ * 3. User pastes key into the CLI/TUI
9
+ */
10
+ import type { OAuthController } from "./types";
11
+ /**
12
+ * Login to Parallel.
13
+ *
14
+ * Opens browser to the API keys page, prompts the user to paste their API key,
15
+ * and returns the API key directly.
16
+ */
17
+ export declare function loginParallel(options: OAuthController): Promise<string>;
@@ -0,0 +1,4 @@
1
+ import type { OAuthController, OAuthCredentials } from "./types";
2
+ /** Test seam: the resolved native-app borrowing opt-out. */
3
+ export declare function authBorrowDisabledForTest(): boolean;
4
+ export declare function loginPerplexity(ctrl: OAuthController): Promise<OAuthCredentials>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generate PKCE code verifier and challenge.
3
+ * Uses Web Crypto API for cross-platform compatibility.
4
+ */
5
+ export declare function generatePKCE(): Promise<{
6
+ verifier: string;
7
+ challenge: string;
8
+ }>;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Qianfan login flow.
3
+ *
4
+ * Qianfan provides an OpenAI-compatible API endpoint.
5
+ * Login is API-key based:
6
+ * 1. Open browser to Qianfan API key console
7
+ * 2. User copies API key
8
+ * 3. User pastes key into CLI prompt
9
+ */
10
+ import type { OAuthController } from "./types";
11
+ /**
12
+ * Login to Qianfan.
13
+ *
14
+ * Opens browser to API key page, prompts user to paste their API key.
15
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
16
+ */
17
+ export declare function loginQianfan(options: OAuthController): Promise<string>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Qwen Portal login flow.
3
+ *
4
+ * Qwen Portal exposes an OpenAI-compatible endpoint at https://portal.qwen.ai/v1
5
+ * and accepts OAuth bearer tokens or API keys.
6
+ *
7
+ * This is a token/API-key flow:
8
+ * 1. Open Qwen Portal
9
+ * 2. Copy either your OAuth token or API key
10
+ * 3. Paste it into the CLI
11
+ */
12
+ import type { OAuthController } from "./types";
13
+ /**
14
+ * Login to Qwen Portal.
15
+ *
16
+ * Prompts for either `QWEN_OAUTH_TOKEN` or `QWEN_PORTAL_API_KEY` value.
17
+ * Returns the value directly (stored as api_key credential in auth storage).
18
+ */
19
+ export declare function loginQwenPortal(options: OAuthController): Promise<string>;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * SGLang login flow.
3
+ *
4
+ * SGLang is commonly self-hosted with an OpenAI-compatible API at a local base URL.
5
+ * Some deployments require a bearer token, others allow unauthenticated access.
6
+ *
7
+ * This flow stores an API-key-style credential used by `/login` and auth storage.
8
+ */
9
+ import type { OAuthController } from "./types";
10
+ /**
11
+ * Login to SGLang.
12
+ *
13
+ * Opens SGLang OpenAI-compatible auth docs, prompts for a bearer token,
14
+ * and returns a stored key value. Local no-auth servers need no login.
15
+ */
16
+ export declare function loginSglang(options: OAuthController): Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginSynthetic: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Tavily login flow.
3
+ *
4
+ * Tavily web search uses an API key from the account settings page.
5
+ * This is an API key flow:
6
+ * 1. Open browser to Tavily settings
7
+ * 2. User copies API key
8
+ * 3. User pastes key into CLI
9
+ */
10
+ import type { OAuthController } from "./types";
11
+ /**
12
+ * Login to Tavily.
13
+ *
14
+ * Opens browser to API keys page and prompts user to paste their API key.
15
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
16
+ */
17
+ export declare function loginTavily(options: OAuthController): Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginTogether: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,56 @@
1
+ export type OAuthCredentials = {
2
+ refresh: string;
3
+ access: string;
4
+ expires: number;
5
+ enterpriseUrl?: string;
6
+ projectId?: string;
7
+ email?: string;
8
+ accountId?: string;
9
+ };
10
+ export type OAuthProvider = "kiro" | "alibaba-token-plan" | "anthropic" | "bizrouter" | "mara" | "cerebras" | "cloudflare-ai-gateway" | "cursor" | "deepseek" | "deepinfra" | "fireworks" | "firepass" | "fugu" | "github-copilot" | "google-gemini-cli" | "google-antigravity" | "gitlab-duo" | "huggingface" | "kimi-code" | "kilo" | "kagi" | "litellm" | "lm-studio" | "minimax-code" | "minimax-code-cn" | "moonshot" | "nvidia" | "nanogpt" | "ollama" | "ollama-cloud" | "openai-codex" | "openai-codex-device" | "opencode-go" | "opencode-zen" | "commandcode-goat" | "opengateway" | "openrouter" | "parallel" | "perplexity" | "qianfan" | "qwen-portal" | "sglang" | "synthetic" | "tavily" | "together" | "venice" | "vercel-ai-gateway" | "vllm" | "xai" | "glm-zcode" | "xiaomi" | "xiaomi-token-plan-sgp" | "xiaomi-token-plan-ams" | "xiaomi-token-plan-cn" | "zenmux" | "opencodex" | "zai";
11
+ export type OAuthProviderId = OAuthProvider | (string & {});
12
+ export type OAuthPrompt = {
13
+ message: string;
14
+ placeholder?: string;
15
+ allowEmpty?: boolean;
16
+ };
17
+ export type OAuthAuthInfo = {
18
+ url: string;
19
+ instructions?: string;
20
+ };
21
+ export interface OAuthProviderInfo {
22
+ id: OAuthProviderId;
23
+ name: string;
24
+ available: boolean;
25
+ }
26
+ /** Per-login switches that change how the authorization code is delivered. */
27
+ export interface OAuthLoginOptions {
28
+ /**
29
+ * Pair by pasting the authorization code the provider displays instead of
30
+ * waiting on a local loopback callback. Set when the browser completing the
31
+ * login has no network route back to the machine running vib (SSH, remote
32
+ * container, headless host). Providers without a paste-a-code redirect
33
+ * ignore it.
34
+ */
35
+ manualCode?: boolean;
36
+ }
37
+ export interface OAuthController {
38
+ onAuth?(info: OAuthAuthInfo): void;
39
+ onProgress?(message: string): void;
40
+ onManualCodeInput?(): Promise<string>;
41
+ onPrompt?(prompt: OAuthPrompt): Promise<string>;
42
+ signal?: AbortSignal;
43
+ fetch?: typeof globalThis.fetch;
44
+ }
45
+ export interface OAuthLoginCallbacks extends OAuthController {
46
+ onAuth: (info: OAuthAuthInfo) => void;
47
+ onPrompt: (prompt: OAuthPrompt) => Promise<string>;
48
+ }
49
+ export interface OAuthProviderInterface {
50
+ readonly id: OAuthProviderId;
51
+ readonly name: string;
52
+ readonly sourceId?: string;
53
+ login(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials | string>;
54
+ refreshToken?(credentials: OAuthCredentials): Promise<OAuthCredentials>;
55
+ getApiKey?(credentials: OAuthCredentials): string;
56
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Venice login flow.
3
+ *
4
+ * Venice provides OpenAI-compatible models via https://api.venice.ai/api/v1.
5
+ *
6
+ * This is not OAuth - it's a simple API key flow:
7
+ * 1. Open browser to Venice API key settings
8
+ * 2. User copies their API key
9
+ * 3. User pastes the API key into the CLI
10
+ */
11
+ import type { OAuthController } from "./types";
12
+ /**
13
+ * Login to Venice.
14
+ *
15
+ * Opens browser to API keys page, prompts user to paste their API key.
16
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
17
+ */
18
+ export declare function loginVenice(options: OAuthController): Promise<string>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Vercel AI Gateway login flow.
3
+ *
4
+ * Vercel AI Gateway proxies upstream model providers through a unified endpoint.
5
+ *
6
+ * This is not OAuth - it's a simple API key flow:
7
+ * 1. Open Vercel AI Gateway docs
8
+ * 2. User copies their API key
9
+ * 3. User pastes the API key into the CLI
10
+ */
11
+ import type { OAuthController } from "./types";
12
+ /**
13
+ * Login to Vercel AI Gateway.
14
+ *
15
+ * Opens browser to Vercel AI Gateway docs and prompts for an API key.
16
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
17
+ */
18
+ export declare function loginVercelAiGateway(options: OAuthController): Promise<string>;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * vLLM login flow.
3
+ *
4
+ * vLLM is commonly self-hosted with an OpenAI-compatible API at a local base URL.
5
+ * Some deployments require a bearer token, others allow unauthenticated access.
6
+ *
7
+ * This flow stores an API-key-style credential used by `/login` and auth storage.
8
+ */
9
+ import type { OAuthController } from "./types";
10
+ /**
11
+ * Login to vLLM.
12
+ *
13
+ * Opens vLLM OpenAI-compatible auth docs, prompts for a bearer token,
14
+ * and returns a stored key value. Local no-auth servers need no login.
15
+ */
16
+ export declare function loginVllm(options: OAuthController): Promise<string>;
@@ -0,0 +1,30 @@
1
+ /** xAI OAuth flow (Grok account login). */
2
+ import { OAuthCallbackFlow } from "./callback-server";
3
+ import type { OAuthController, OAuthCredentials } from "./types";
4
+ export declare const XAI_OAUTH_DISCOVERY_URL = "https://auth.x.ai/.well-known/openid-configuration";
5
+ export declare const XAI_OAUTH_CLIENT_ID = "b1a00492-073a-47ea-816f-4c329264a828";
6
+ export declare const XAI_OAUTH_SCOPE = "openid profile email offline_access grok-cli:access api:access";
7
+ interface XaiDiscovery {
8
+ authorizationEndpoint: string;
9
+ tokenEndpoint: string;
10
+ }
11
+ export interface XaiOAuthFlowOptions {
12
+ extraAuthorizeParams?: Readonly<Record<string, string>>;
13
+ }
14
+ export interface XaiOAuthRefreshOptions {
15
+ signal?: AbortSignal;
16
+ extraTokenParams?: Readonly<Record<string, string>>;
17
+ }
18
+ export declare function discoverXaiOAuthEndpoints(signal?: AbortSignal): Promise<XaiDiscovery>;
19
+ export declare class XaiOAuthFlow extends OAuthCallbackFlow {
20
+ #private;
21
+ constructor(ctrl: OAuthController, options?: XaiOAuthFlowOptions);
22
+ generateAuthUrl(state: string, redirectUri: string): Promise<{
23
+ url: string;
24
+ instructions?: string;
25
+ }>;
26
+ exchangeToken(code: string, _state: string, redirectUri: string): Promise<OAuthCredentials>;
27
+ }
28
+ export declare function loginXai(ctrl: OAuthController, options?: XaiOAuthFlowOptions): Promise<OAuthCredentials>;
29
+ export declare function refreshXaiToken(refreshToken: string, options?: AbortSignal | XaiOAuthRefreshOptions): Promise<OAuthCredentials>;
30
+ export {};
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Xiaomi MiMo login flow.
3
+ *
4
+ * Xiaomi MiMo provides OpenAI-compatible models via
5
+ * https://api.xiaomimimo.com/v1.
6
+ *
7
+ * Standard Xiaomi login opens the pay-as-you-go API key console. Token Plan
8
+ * login opens plan management so users copy the regional `tp-...` key.
9
+ */
10
+ import type { OAuthController } from "./types";
11
+ /** Region codes accepted by the Xiaomi Token Plan login flow. */
12
+ export type XiaomiTokenPlanRegion = "sgp" | "ams" | "cn";
13
+ /**
14
+ * Login to Xiaomi MiMo.
15
+ *
16
+ * Opens browser to API keys page, prompts user to paste their API key.
17
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
18
+ */
19
+ export declare function loginXiaomi(options: OAuthController): Promise<string>;
20
+ /**
21
+ * Login to a regional Xiaomi Token Plan endpoint.
22
+ *
23
+ * Prompts for a token-plan API key and validates it against the selected region.
24
+ */
25
+ export declare function loginXiaomiTokenPlan(options: OAuthController, region: XiaomiTokenPlanRegion): Promise<string>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Z.AI login flow.
3
+ *
4
+ * Z.AI is a platform that provides access to GLM models through an OpenAI-compatible API.
5
+ * API docs: https://docs.z.ai/guides/overview/quick-start
6
+ *
7
+ * This is not OAuth - it's a simple API key flow:
8
+ * 1. User gets their API key from https://z.ai/settings/api-keys
9
+ * 2. User pastes the API key into the CLI
10
+ */
11
+ import type { OAuthController } from "./types";
12
+ /**
13
+ * Login to Z.AI.
14
+ *
15
+ * Opens browser to API keys page, prompts user to paste their API key.
16
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
17
+ */
18
+ export declare function loginZai(options: OAuthController): Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginZenMux: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,14 @@
1
+ import type { AssistantMessage } from "../types";
2
+ import type { TransportFailureFacts } from "./fallback-transport";
3
+ export declare function classifyContextOverflow(message: AssistantMessage, transportFailure?: TransportFailureFacts, contextWindow?: number): boolean;
4
+ /**
5
+ * Check if an assistant message represents a context overflow error.
6
+ *
7
+ * Callers with normalized transport facts should use {@link classifyContextOverflow}
8
+ * so typed provider codes take precedence over error prose.
9
+ */
10
+ export declare function isContextOverflow(message: AssistantMessage, contextWindow?: number): boolean;
11
+ /**
12
+ * Get the overflow patterns for testing purposes.
13
+ */
14
+ export declare function getOverflowPatterns(): RegExp[];
@@ -0,0 +1,26 @@
1
+ export interface ParsedBind {
2
+ hostname: string;
3
+ port: number;
4
+ }
5
+ /**
6
+ * Parse a `host:port` (or bare `port`, which assumes loopback) string.
7
+ *
8
+ * Accepts:
9
+ * - `"4000"` → `127.0.0.1:4000`
10
+ * - `"0.0.0.0:4000"` → as written
11
+ * - `"[::1]:4000"` → as written (brackets retained, Bun handles them)
12
+ *
13
+ * Rejects:
14
+ * - empty input
15
+ * - empty hostname (`":4000"`)
16
+ * - non-integer / out-of-range port
17
+ */
18
+ export declare function parseBind(raw: string): ParsedBind;
19
+ /** True for loopback-only hostnames the auth servers may bind without credentials. */
20
+ export declare function isLoopbackHostname(hostname: string): boolean;
21
+ /**
22
+ * Fail closed when an unauthenticated auth server (empty bearer token set)
23
+ * would bind a non-loopback address: that exposes credential operations to the
24
+ * network with no proof of possession.
25
+ */
26
+ export declare function assertAuthenticatedOrLoopback(bind: ParsedBind, bearerTokenCount: number, serverName: string): void;
@@ -0,0 +1,6 @@
1
+ import type { Api, AttemptScopeRef, Model, ProviderResponseMetadata, StreamOptions } from "../types";
2
+ export declare function normalizeProviderResponse(response: Response, requestId?: string | null, metadata?: Record<string, unknown>): ProviderResponseMetadata;
3
+ export declare function notifyProviderResponse(options: {
4
+ onResponse?: StreamOptions["onResponse"];
5
+ attemptScope?: AttemptScopeRef;
6
+ } | undefined, response: Response, model?: Model<Api>, requestId?: string | null, metadata?: Record<string, unknown>): Promise<void>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Public provider safety-stop surface (issue #4777 review follow-up).
3
+ *
4
+ * First-party adapters mint terminal authority through the package-private
5
+ * adapter-internals module. Public consumers may only verify existing
6
+ * authority; message fields and structured refusal text never mint authority.
7
+ */
8
+ export { isProviderSafetyStopAuthenticated } from "../adapter-internals/provider-safety-stop";
@@ -0,0 +1,7 @@
1
+ import * as tls from "node:tls";
2
+ export interface ProxyConnectOptions {
3
+ signal?: AbortSignal;
4
+ timeoutMs?: number;
5
+ }
6
+ export declare function getProxyForUrl(provider: string, url: URL): string | undefined;
7
+ export declare function connectProxiedSocket(proxyUrl: string, targetUrl: string, options?: ProxyConnectOptions): Promise<tls.TLSSocket>;
@@ -0,0 +1,3 @@
1
+ export type HeadersLike = Headers | Record<string, string | undefined> | undefined | null;
2
+ export declare function formatErrorMessageWithRetryAfter(error: unknown, headers?: HeadersLike): string;
3
+ export declare function getRetryAfterMsFromHeaders(headers: HeadersLike): number | undefined;
@@ -0,0 +1 @@
1
+ export declare function resolveRetryBudget(value: number | undefined, fallback: number): number;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * GitHub Copilot intermittently rejects preview models (gpt-5.3-OpenAI code backend,
3
+ * gpt-5.4, gpt-5.4-mini, ...) with HTTP 400 `model_not_supported`, even
4
+ * though the model is listed as enabled on the user's account via `/models`.
5
+ *
6
+ * Root cause: Copilot's request-routing backend is rolled out per OAuth
7
+ * client. Our OAuth client id is shared with opencode; VS Code uses its own
8
+ * client and sees full availability, so the same account may succeed in VS
9
+ * Code and flap between 200/400 here. See opencode#13313 and copilot-cli#2597.
10
+ *
11
+ * Retrying the identical request 2-3 times almost always lands on a backend
12
+ * that has the model, so we wrap the initial request with a short retry loop.
13
+ */
14
+ export declare function isCopilotTransientModelError(error: unknown): boolean;
15
+ /**
16
+ * Wrap an initial Copilot request so transient `model_not_supported` 400s are
17
+ * retried a small number of times. No-op for non-Copilot providers.
18
+ *
19
+ * The callback **MUST** create a fresh in-flight request each invocation — a
20
+ * once-consumed AsyncIterable cannot be re-iterated.
21
+ */
22
+ export declare function callWithCopilotModelRetry<T>(fn: () => Promise<T>, options: {
23
+ provider: string;
24
+ signal?: AbortSignal;
25
+ retryBaseDelayMs?: number;
26
+ fallbackManaged?: boolean;
27
+ requestMaxRetries?: number;
28
+ disableProviderRetries?: boolean;
29
+ }): Promise<T>;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Set when callers want to globally bypass OpenAI strict-mode enforcement
3
+ * (e.g. for debugging a provider that misreports strict support, or when
4
+ * comparing strict vs non-strict outputs).
5
+ *
6
+ * Honored by every provider that emits `strict: true` on its function tools —
7
+ * see `openai-completions`, `openai-responses`, `OpenAI code provider-responses`, and
8
+ * the strict candidate selection in `anthropic`.
9
+ */
10
+ export declare const NO_STRICT: boolean;
11
+ /**
12
+ * Consolidated helper for OpenAI-style strict schema enforcement.
13
+ *
14
+ * Each provider computes its own `strict` boolean (logic differs), then calls
15
+ * this to handle the tryEnforceStrictSchema dance uniformly:
16
+ * - Draft-07-shaped inputs are upgraded to draft 2020-12 first.
17
+ * - If `strict` is false, passes the upgraded schema through unchanged.
18
+ * - If `strict` is true, attempts to enforce strict mode; falls back to
19
+ * non-strict if the schema isn't representable.
20
+ */
21
+ export declare function adaptSchemaForStrict(schema: Record<string, unknown>, strict: boolean): {
22
+ schema: Record<string, unknown>;
23
+ strict: boolean;
24
+ };
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Schema compatibility audits.
3
+ *
4
+ * Each provider has a different idea of what JSON Schema features it accepts
5
+ * for tool definitions. The normalizers in `normalize.ts`, `strict-mode`,
6
+ * and `adapt.ts` rewrite incoming schemas to fit. This module is the
7
+ * *audit* counterpart: it walks a (presumably already-sanitized) schema and
8
+ * reports any feature the target provider would reject. Tests use it to lock
9
+ * down the contract; the runtime uses it to fail-open with diagnostic logs
10
+ * rather than silently shipping a broken tool definition.
11
+ */
12
+ export type SchemaCompatibilityProvider = "openai-strict" | "google" | "cloud-code-assist-claude";
13
+ export interface SchemaCompatibilityViolation {
14
+ path: string;
15
+ rule: string;
16
+ message: string;
17
+ key?: string;
18
+ value?: unknown;
19
+ }
20
+ export interface SchemaCompatibilityResult {
21
+ provider: SchemaCompatibilityProvider;
22
+ compatible: boolean;
23
+ violations: SchemaCompatibilityViolation[];
24
+ }
25
+ export interface StrictSchemaEnforcementResult {
26
+ schema: Record<string, unknown>;
27
+ strict: boolean;
28
+ }
29
+ export declare function validateSchemaCompatibility(schema: unknown, provider: SchemaCompatibilityProvider): SchemaCompatibilityResult;
30
+ export declare function validateStrictSchemaEnforcement(originalSchema: Record<string, unknown>, result: StrictSchemaEnforcementResult): SchemaCompatibilityResult;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Dereference all local `$ref` pointers in a JSON Schema, inlining definitions
3
+ * from `$defs` / `definitions`. The `$defs` block is stripped from the output.
4
+ *
5
+ * Non-local refs (e.g. `http://...`) are left untouched.
6
+ * Circular references are broken with `{}`.
7
+ *
8
+ * @returns A new schema object with all local refs inlined, or the input unchanged
9
+ * if it's not an object or has no `$defs`/`definitions`.
10
+ */
11
+ export declare function dereferenceJsonSchema(schema: unknown): unknown;
@@ -0,0 +1,10 @@
1
+ export declare const JSON_SCHEMA_DRAFT_2020_12_URI = "https://json-schema.org/draft/2020-12/schema";
2
+ /** Pre-check entrypoint. Exposed so callers can decide whether to take the upgrade path at all. */
3
+ export declare function schemaNeedsDraft202012Upgrade(schema: unknown): boolean;
4
+ /**
5
+ * Upgrade legacy JSON Schema shapes to the draft 2020-12 form emitted by Zod.
6
+ *
7
+ * This keeps extension/MCP/TypeBox schemas compatible with providers whose tool
8
+ * validators reject draft-07 tuple and dependency keywords.
9
+ */
10
+ export declare function upgradeJsonSchemaTo202012(schema: unknown): unknown;
@@ -0,0 +1,4 @@
1
+ import type { JsonObject } from "./types";
2
+ export declare function areJsonValuesEqual(left: unknown, right: unknown): boolean;
3
+ export declare function mergeCompatibleEnumSchemas(existing: unknown, incoming: unknown): JsonObject | null;
4
+ export declare function mergePropertySchemas(existing: unknown, incoming: unknown): unknown;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Field classification sets for JSON Schema sanitization across providers.
3
+ *
4
+ * Each set serves a different provider need. They overlap intentionally —
5
+ * co-locating them makes the overlap visible and maintainable.
6
+ *
7
+ * All keysets here are static and small (≤ ~40 entries) so they live as
8
+ * `Record<string, true>` literals — `k in REC` resolves through hidden
9
+ * class inline caches without the per-call hashtable cost of `Set.has`.
10
+ */
11
+ /**
12
+ * Google Generative AI unsupported schema fields.
13
+ * Stripped during normalizeSchemaForGoogle / normalizeSchemaForCCA.
14
+ */
15
+ export declare const UNSUPPORTED_SCHEMA_FIELDS: Record<string, true>;
16
+ /**
17
+ * Human-meaningful validation/decorative keywords that can be preserved in a
18
+ * sibling description when a provider-specific normalizer strips them from the
19
+ * wire schema.
20
+ */
21
+ export declare const LIFTABLE_TO_DESCRIPTION_FIELDS: Record<string, true>;
22
+ /**
23
+ * Non-structural schema keys stripped during OpenAI strict mode sanitization.
24
+ * These are decorative/validation-only keywords that don't affect the structural
25
+ * shape OpenAI's strict mode enforces.
26
+ */
27
+ export declare const NON_STRUCTURAL_SCHEMA_KEYS: Record<string, true>;
28
+ /**
29
+ * Cloud Code Assist type-specific allowed keys per JSON Schema type.
30
+ * Used when collapsing mixed-type combiner variants for CCA Anthropic model.
31
+ */
32
+ export declare const CLOUD_CODE_ASSIST_TYPE_SPECIFIC_KEYS: Record<string, Record<string, true>>;
33
+ /**
34
+ * Cloud Code Assist shared schema keys allowed on any type.
35
+ * Used alongside CLOUD_CODE_ASSIST_TYPE_SPECIFIC_KEYS for CCA combiner collapsing.
36
+ */
37
+ export declare const CLOUD_CODE_ASSIST_SHARED_SCHEMA_KEYS: Record<string, true>;
38
+ /**
39
+ * Combinator keys used across schema sanitization modules.
40
+ * Defined once to avoid duplication in strict-mode.ts and normalize.ts.
41
+ */
42
+ export declare const COMBINATOR_KEYS: readonly ["anyOf", "allOf", "oneOf"];
43
+ /**
44
+ * Cloud Code Assist Anthropic model unsupported schema fields.
45
+ * Much smaller than UNSUPPORTED_SCHEMA_FIELDS (Google) because CCA supports
46
+ * validation keywords like additionalProperties, minLength, pattern, etc.
47
+ * Meta/reference keywords plus object-key validators that CCA cannot resolve are stripped.
48
+ */
49
+ export declare const CCA_UNSUPPORTED_SCHEMA_FIELDS: Record<string, true>;
@@ -0,0 +1,14 @@
1
+ export * from "./adapt";
2
+ export * from "./compatibility";
3
+ export * from "./dereference";
4
+ export * from "./draft";
5
+ export * from "./equality";
6
+ export * from "./fields";
7
+ export * from "./json-schema-validator";
8
+ export * from "./meta-validator";
9
+ export * from "./normalize";
10
+ export * from "./root-combinator";
11
+ export * from "./spill";
12
+ export * from "./types";
13
+ export * from "./wire";
14
+ export * from "./zod-decontaminate";
@@ -0,0 +1,12 @@
1
+ export interface JsonSchemaValidationIssue {
2
+ path: PropertyKey[];
3
+ message: string;
4
+ expectedTypes?: string[];
5
+ keyword?: string;
6
+ }
7
+ export interface JsonSchemaValidationResult {
8
+ success: boolean;
9
+ issues: JsonSchemaValidationIssue[];
10
+ }
11
+ export declare function validateJsonSchemaValue(schema: unknown, value: unknown): JsonSchemaValidationResult;
12
+ export declare function isJsonSchemaValueValid(schema: unknown, value: unknown): boolean;
@@ -0,0 +1,2 @@
1
+ /** Validate that `schema` is structurally a valid JSON Schema (subset). */
2
+ export declare function isValidJsonSchema(schema: unknown): boolean;