@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,80 @@
1
+ import type { OAuthController, OAuthCredentials } from "./types";
2
+ export type CallbackResult = {
3
+ code: string;
4
+ state: string;
5
+ };
6
+ export interface OAuthCallbackFlowOptions {
7
+ preferredPort: number;
8
+ callbackPath?: string;
9
+ callbackHostname?: string;
10
+ /** Local listener hostname; defaults to callbackHostname when omitted. */
11
+ callbackBindHostname?: string;
12
+ /** Exact redirect URI advertised to the provider; disables port fallback. */
13
+ redirectUri?: string;
14
+ /**
15
+ * Do not bind a local listener at all. The provider redirects somewhere this
16
+ * process cannot observe (a hosted "copy this code" page, a custom protocol),
17
+ * so the code arrives by paste instead. Requires both `redirectUri` and an
18
+ * `onManualCodeInput` handler on the controller.
19
+ */
20
+ skipCallbackServer?: boolean;
21
+ /**
22
+ * Expected authorization-server issuer recorded from validated metadata
23
+ * (RFC 9207 / MCP 2026-07-28). When set, a present `iss` that differs
24
+ * rejects the response before any other parameter is acted on.
25
+ */
26
+ expectedIssuer?: string;
27
+ /**
28
+ * `authorization_response_iss_parameter_supported` from the same metadata.
29
+ * When true, a response WITHOUT `iss` is rejected.
30
+ */
31
+ issuerResponseIssSupported?: boolean;
32
+ }
33
+ /**
34
+ * Abstract base class for OAuth flows with local callback servers.
35
+ */
36
+ export declare abstract class OAuthCallbackFlow {
37
+ #private;
38
+ ctrl: OAuthController;
39
+ preferredPort: number;
40
+ callbackPath: string;
41
+ callbackHostname: string;
42
+ callbackBindHostname: string;
43
+ redirectUri?: string;
44
+ expectedIssuer?: string;
45
+ issuerResponseIssSupported?: boolean;
46
+ constructor(ctrl: OAuthController, preferredPortOrOptions: number | OAuthCallbackFlowOptions, callbackPath?: string);
47
+ /**
48
+ * Generate provider-specific authorization URL.
49
+ * @param state - CSRF state token
50
+ * @param redirectUri - The actual redirect URI to use (may differ from expected if port fallback occurred)
51
+ * @returns Authorization URL and optional instructions
52
+ */
53
+ abstract generateAuthUrl(state: string, redirectUri: string): Promise<{
54
+ url: string;
55
+ instructions?: string;
56
+ }>;
57
+ /**
58
+ * Exchange authorization code for OAuth tokens.
59
+ * @param code - Authorization code from callback
60
+ * @param state - CSRF state token
61
+ * @param redirectUri - The actual redirect URI used (must match authorization request)
62
+ * @returns OAuth credentials
63
+ */
64
+ abstract exchangeToken(code: string, state: string, redirectUri: string): Promise<OAuthCredentials>;
65
+ /**
66
+ * Generate CSRF state token. Override if provider needs custom state generation.
67
+ */
68
+ generateState(): string;
69
+ /**
70
+ * Execute the OAuth login flow.
71
+ */
72
+ login(): Promise<OAuthCredentials>;
73
+ }
74
+ /**
75
+ * Parse a redirect URL or code string to extract code and state.
76
+ */
77
+ export declare function parseCallbackInput(input: string): {
78
+ code?: string;
79
+ state?: string;
80
+ };
@@ -0,0 +1 @@
1
+ export declare const loginCerebras: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Cloudflare AI Gateway login flow.
3
+ *
4
+ * Cloudflare AI Gateway proxies upstream model providers.
5
+ *
6
+ * This is not OAuth - it's a simple API key flow:
7
+ * 1. Open Cloudflare AI Gateway docs/dashboard
8
+ * 2. User copies their Cloudflare AI Gateway token/API key
9
+ * 3. User pastes the API key into the CLI
10
+ */
11
+ import type { OAuthController } from "./types";
12
+ /**
13
+ * Login to Cloudflare AI Gateway.
14
+ *
15
+ * Opens browser to Cloudflare AI Gateway authentication docs and prompts for a gateway token/API key.
16
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
17
+ */
18
+ export declare function loginCloudflareAiGateway(options: OAuthController): Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginCommandCode: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,15 @@
1
+ import type { OAuthCredentials } from "./types";
2
+ export interface CursorAuthParams {
3
+ verifier: string;
4
+ challenge: string;
5
+ uuid: string;
6
+ loginUrl: string;
7
+ }
8
+ export declare function generateCursorAuthParams(): Promise<CursorAuthParams>;
9
+ export declare function pollCursorAuth(uuid: string, verifier: string): Promise<{
10
+ accessToken: string;
11
+ refreshToken: string;
12
+ }>;
13
+ export declare function loginCursor(onAuthUrl: (url: string) => void, onPollStart?: () => void): Promise<OAuthCredentials>;
14
+ export declare function refreshCursorToken(apiKeyOrRefreshToken: string): Promise<OAuthCredentials>;
15
+ export declare function isCursorTokenExpiringSoon(token: string, thresholdSeconds?: number): boolean;
@@ -0,0 +1 @@
1
+ export declare const loginDeepInfra: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,10 @@
1
+ import type { OAuthController } from "./types";
2
+ /**
3
+ * Normalize a pasted DeepSeek API key.
4
+ *
5
+ * Users frequently copy keys out of `curl` snippets that include the
6
+ * `Authorization: Bearer …` prefix. Strip it so validation does not fail
7
+ * with a confusing 401, and reject obviously empty input early.
8
+ */
9
+ export declare function normalizeDeepSeekApiKey(raw: string): string;
10
+ export declare const loginDeepSeek: (options: OAuthController) => Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginFirepass: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginFireworks: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginFugu: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,38 @@
1
+ import type { OAuthCredentials } from "./types";
2
+ export declare const COPILOT_USER_AGENT: "opencode/1.3.15";
3
+ export declare const OPENCODE_HEADERS: {
4
+ readonly "User-Agent": "opencode/1.3.15";
5
+ };
6
+ export type ParsedGitHubCopilotApiKey = {
7
+ accessToken: string;
8
+ enterpriseUrl?: string;
9
+ };
10
+ export declare function normalizeGitHubCopilotEnterpriseDomain(input: string | undefined): string | undefined;
11
+ export declare function parseGitHubCopilotApiKey(apiKeyRaw: string): ParsedGitHubCopilotApiKey;
12
+ export declare function normalizeDomain(input: string): string | null;
13
+ export declare function getGitHubCopilotBaseUrl(enterpriseDomain?: string): string;
14
+ /**
15
+ * Refresh GitHub Copilot token.
16
+ * With the opencode OAuth flow, the GitHub token is used directly — no JWT exchange needed.
17
+ */
18
+ export declare function refreshGitHubCopilotToken(refreshToken: string, enterpriseDomain?: string): OAuthCredentials;
19
+ /**
20
+ * Login with GitHub Copilot OAuth (device code flow)
21
+ *
22
+ * @param options.onAuth - Callback with URL and optional instructions (user code)
23
+ * @param options.onPrompt - Callback to prompt user for input
24
+ * @param options.onProgress - Optional progress callback
25
+ * @param options.signal - Optional AbortSignal for cancellation
26
+ */
27
+ export declare function loginGitHubCopilot(options: {
28
+ onAuth: (url: string, instructions?: string) => void;
29
+ onPrompt: (prompt: {
30
+ message: string;
31
+ placeholder?: string;
32
+ allowEmpty?: boolean;
33
+ }) => Promise<string>;
34
+ onProgress?: (message: string) => void;
35
+ signal?: AbortSignal;
36
+ pollIntervalFloorMs?: number;
37
+ pollIntervalScaleMs?: number;
38
+ }): Promise<OAuthCredentials>;
@@ -0,0 +1,3 @@
1
+ import type { OAuthCredentials, OAuthLoginCallbacks } from "./types";
2
+ export declare function loginGitLabDuo(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials>;
3
+ export declare function refreshGitLabDuoToken(credentials: OAuthCredentials): Promise<OAuthCredentials>;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * GLM ZCode OAuth flow (UNOFFICIAL, opt-in).
3
+ *
4
+ * Replicates how the ZCode desktop app turns a Z.AI login into usable GLM model
5
+ * access. This is NOT an official Z.AI OAuth client: it reuses ZCode's authorize
6
+ * page, broker, and a custom-protocol redirect. It may break at any time and may
7
+ * violate ZCode/Z.AI Terms of Service. Endpoints/client id are overridable via
8
+ * `ZCODE_OAUTH_*` environment variables.
9
+ *
10
+ * Verified end-to-end against the ZCode host bundle (`resolveZaiApiKey` /
11
+ * `resolveBizApiKey`) and live traffic:
12
+ * 1. Authorize: GET {authorize}?redirect_uri=zcode://oauth/callback&response_type=code&client_id=...&state=...
13
+ * (custom-protocol redirect → a CLI cannot catch it, so the user pastes the code/redirect URL)
14
+ * 2. Broker: POST {broker} { provider:"zai", code, redirect_uri, state }
15
+ * → { data: { token: <ZCode JWT>, zai: { access_token: <upstream Z.AI token> } } }
16
+ * 3. Business: POST {z/login} { token: <upstream Z.AI token> } → { data: { access_token: <business token> } }
17
+ * 4. Provision: with the business token, GET getCustomerInfo → default org/project,
18
+ * GET/POST .../api_keys (find/create a key named "zcode-api-key"),
19
+ * GET .../api_keys/copy/{id} → secretKey ⇒ a real Z.AI API key "{id}.{secret}".
20
+ *
21
+ * Credential mapping:
22
+ * - `access` = the provisioned **Z.AI API key** ("{id}.{secret}"). Model requests go to
23
+ * `https://api.z.ai/api/anthropic/v1/messages` with `Authorization: Bearer <key>`
24
+ * (exactly like a dashboard key) — NO zcode.z.ai gateway, NO captcha.
25
+ * - `refresh` = the upstream Z.AI OAuth access token (used to re-provision the key).
26
+ * The API key is long-lived, so `expires` is set far in the future.
27
+ *
28
+ * This provider must NEVER force `isOAuth=true`: the key is a plain Z.AI API key, and
29
+ * api.z.ai is not api.anthropic.com, so the Anthropic path already emits a plain bearer.
30
+ */
31
+ import { OAuthCallbackFlow } from "./callback-server";
32
+ import type { OAuthController, OAuthCredentials } from "./types";
33
+ export declare const GLM_ZCODE_REFRESH_SKEW_MS: number;
34
+ /** Default endpoints / client id. Override via the matching `ZCODE_OAUTH_*` env vars. */
35
+ export declare const GLM_ZCODE_OAUTH_AUTHORIZE_URL = "https://chat.z.ai/api/oauth/authorize";
36
+ export declare const GLM_ZCODE_OAUTH_CLIENT_ID = "client_P8X5CMWmlaRO9gyO-KSqtg";
37
+ export declare const GLM_ZCODE_OAUTH_REDIRECT_URI = "zcode://oauth/callback";
38
+ export declare const GLM_ZCODE_OAUTH_BROKER_TOKEN_URL = "https://zcode.z.ai/api/v1/oauth/token";
39
+ export declare const GLM_ZCODE_ZAI_LOGIN_URL = "https://api.z.ai/api/auth/z/login";
40
+ export declare const GLM_ZCODE_USERINFO_URL = "https://chat.z.ai/api/oauth/userinfo";
41
+ /** Z.AI business API base (customer/org/project/api-key management). */
42
+ export declare const GLM_ZCODE_ZAI_API_BASE = "https://api.z.ai";
43
+ /** Model API base — the provisioned key is used here, exactly like a dashboard key. */
44
+ export declare const GLM_ZCODE_ANTHROPIC_BASE_URL = "https://api.z.ai/api/anthropic";
45
+ type FetchImpl = typeof globalThis.fetch;
46
+ /** Configured whenever a client id is available; the real ZCode client id ships as default. */
47
+ export declare function isGlmZcodeOAuthConfigured(): boolean;
48
+ export interface GlmZcodeOAuthFlowOptions {
49
+ fetch?: FetchImpl;
50
+ }
51
+ export declare class GlmZcodeOAuthFlow extends OAuthCallbackFlow {
52
+ #private;
53
+ constructor(ctrl: OAuthController, options?: GlmZcodeOAuthFlowOptions);
54
+ generateAuthUrl(state: string, redirectUri: string): Promise<{
55
+ url: string;
56
+ instructions?: string;
57
+ }>;
58
+ exchangeToken(code: string, state: string, redirectUri: string): Promise<OAuthCredentials>;
59
+ }
60
+ export declare function loginGlmZcode(ctrl: OAuthController, options?: GlmZcodeOAuthFlowOptions): Promise<OAuthCredentials>;
61
+ export interface GlmZcodeRefreshOptions {
62
+ signal?: AbortSignal;
63
+ fetch?: FetchImpl;
64
+ }
65
+ /**
66
+ * Re-provision the Z.AI API key from the stored upstream token. The key itself is
67
+ * long-lived, so this is rarely needed; if the upstream token has expired it fails
68
+ * loudly and the user must re-login.
69
+ */
70
+ export declare function refreshGlmZcodeToken(credentials: OAuthCredentials, options?: AbortSignal | GlmZcodeRefreshOptions): Promise<OAuthCredentials>;
71
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { OAuthController, OAuthCredentials } from "./types";
2
+ export declare const ANTIGRAVITY_LOAD_CODE_ASSIST_METADATA: Readonly<{
3
+ ideType: "ANTIGRAVITY";
4
+ platform: "PLATFORM_UNSPECIFIED";
5
+ pluginType: "GEMINI";
6
+ }>;
7
+ export declare function loginAntigravity(ctrl: OAuthController): Promise<OAuthCredentials>;
8
+ /**
9
+ * Refresh Antigravity token
10
+ */
11
+ export declare function refreshAntigravityToken(refreshToken: string, projectId: string): Promise<OAuthCredentials>;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Gemini CLI OAuth flow (Google Cloud Code Assist)
3
+ * Standard Gemini models only (gemini-2.0-flash, gemini-2.5-*)
4
+ */
5
+ import type { OAuthController, OAuthCredentials } from "./types";
6
+ export declare function loginGeminiCli(ctrl: OAuthController): Promise<OAuthCredentials>;
7
+ /**
8
+ * Refresh Google Cloud Code Assist token
9
+ */
10
+ export declare function refreshGoogleCloudToken(refreshToken: string, projectId: string): Promise<OAuthCredentials>;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Shared OAuth flow for Google-style providers (Gemini CLI, Antigravity).
3
+ *
4
+ * Both providers use the same authorization-code flow shape; only the client
5
+ * credentials, scopes, endpoint constants, and project-discovery logic differ.
6
+ */
7
+ import { OAuthCallbackFlow } from "./callback-server";
8
+ import type { OAuthController, OAuthCredentials } from "./types";
9
+ export interface GoogleOAuthFlowConfig {
10
+ clientId: string;
11
+ clientSecret: string;
12
+ authUrl: string;
13
+ tokenUrl: string;
14
+ scopes: string[];
15
+ callbackPort: number;
16
+ callbackPath: string;
17
+ discoverProject: (accessToken: string, onProgress?: (message: string) => void) => Promise<string>;
18
+ }
19
+ export declare class GoogleOAuthFlow extends OAuthCallbackFlow {
20
+ private readonly config;
21
+ constructor(ctrl: OAuthController, config: GoogleOAuthFlowConfig);
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 runGoogleOAuthLogin(ctrl: OAuthController, config: GoogleOAuthFlowConfig): Promise<OAuthCredentials>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Hugging Face Inference login flow.
3
+ *
4
+ * Hugging Face Inference Providers expose an OpenAI-compatible endpoint via
5
+ * https://router.huggingface.co/v1.
6
+ *
7
+ * This is an API key flow:
8
+ * 1. Open browser to Hugging Face token settings
9
+ * 2. User creates/copies a token with Inference Providers permission
10
+ * 3. User pastes the token into the CLI
11
+ */
12
+ import type { OAuthController } from "./types";
13
+ /**
14
+ * Login to Hugging Face Inference Providers.
15
+ *
16
+ * Opens browser to token settings, prompts user to paste their API key.
17
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
18
+ */
19
+ export declare function loginHuggingface(options: OAuthController): Promise<string>;
@@ -0,0 +1,39 @@
1
+ import type { OAuthCredentials, OAuthProvider, OAuthProviderId, OAuthProviderInfo, OAuthProviderInterface } from "./types";
2
+ /**
3
+ * Register a custom OAuth provider.
4
+ */
5
+ export declare function registerOAuthProvider(provider: OAuthProviderInterface): void;
6
+ /**
7
+ * Get a custom OAuth provider by ID.
8
+ */
9
+ export declare function getOAuthProvider(id: OAuthProviderId): OAuthProviderInterface | undefined;
10
+ /**
11
+ * Remove all custom OAuth providers registered by a source.
12
+ */
13
+ export declare function unregisterOAuthProviders(sourceId: string): void;
14
+ /**
15
+ * Refresh token for any OAuth provider.
16
+ * Saves the new credentials and returns the new access token.
17
+ */
18
+ export declare function refreshOAuthToken(provider: OAuthProvider, credentials: OAuthCredentials): Promise<OAuthCredentials>;
19
+ /**
20
+ * Build API-key bytes for a provider from an already-fresh OAuth credential.
21
+ *
22
+ * Refresh is owned by AuthStorage. This helper deliberately refuses expired
23
+ * credentials so it cannot POST broker redaction sentinels to upstream token
24
+ * endpoints as a side channel.
25
+ *
26
+ * For providers that need credential metadata at request time, returns
27
+ * JSON-encoded credentials plus expiry metadata for diagnostics/edge guards.
28
+ * @returns API key string, or null if no credentials
29
+ * @throws Error if the credential is expired and must be refreshed upstream
30
+ */
31
+ export declare function getOAuthApiKey(provider: OAuthProvider, credentials: Record<string, OAuthCredentials>): Promise<{
32
+ newCredentials: OAuthCredentials;
33
+ apiKey: string;
34
+ } | null>;
35
+ export declare function resolveOAuthStorageProvider(provider: OAuthProviderId): OAuthProviderId;
36
+ /**
37
+ * Get list of OAuth providers.
38
+ */
39
+ export declare function getOAuthProviders(): OAuthProviderInfo[];
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Kagi login flow.
3
+ *
4
+ * Kagi web search uses an API key from the account settings page.
5
+ * This is an API key flow:
6
+ * 1. Open browser to Kagi API 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 Kagi.
13
+ *
14
+ * Opens browser to API settings 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 loginKagi(options: OAuthController): Promise<string>;
@@ -0,0 +1,5 @@
1
+ import type { OAuthController, OAuthCredentials } from "./types";
2
+ /**
3
+ * Login with Kilo Gateway OAuth (device code flow).
4
+ */
5
+ export declare function loginKilo(callbacks: OAuthController): Promise<OAuthCredentials>;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Kimi Code OAuth flow (device authorization grant)
3
+ */
4
+ import type { OAuthController, OAuthCredentials } from "./types";
5
+ /** Test seam: the OAuth host as resolved from trusted env. */
6
+ export declare function resolveKimiOAuthHostForTest(): string;
7
+ /** @internal Exported for tests. Builds unsanitized-input-safe Kimi common headers. */
8
+ export declare function buildKimiCommonHeaders(): Readonly<Record<string, string>>;
9
+ export declare const getKimiCommonHeaders: () => Readonly<Record<string, string>>;
10
+ /**
11
+ * Login with Kimi Code OAuth (device code flow).
12
+ */
13
+ export declare function loginKimi(options: OAuthController): Promise<OAuthCredentials>;
14
+ /**
15
+ * Refresh Kimi OAuth token.
16
+ */
17
+ export declare function refreshKimiToken(refreshToken: string): Promise<OAuthCredentials>;
@@ -0,0 +1,71 @@
1
+ import type { OAuthCredentials } from "./types";
2
+ interface StartDeviceAuthorizationResponse {
3
+ deviceCode: string;
4
+ userCode: string;
5
+ verificationUri: string;
6
+ verificationUriComplete?: string;
7
+ interval: number;
8
+ expiresIn: number;
9
+ }
10
+ interface CreateTokenSuccess {
11
+ accessToken: string;
12
+ tokenType: string;
13
+ expiresIn: number;
14
+ refreshToken?: string;
15
+ }
16
+ interface ClientRegistration {
17
+ clientId: string;
18
+ clientSecret: string;
19
+ expiresAt: number;
20
+ }
21
+ /**
22
+ * Register a public SSO OIDC client. Registration responses include an expiry
23
+ * timestamp (`clientSecretExpiresAt`); we cache until then to avoid re-registering
24
+ * on every login attempt.
25
+ *
26
+ * The SSO OIDC `RegisterClient` endpoint is public (no authentication required).
27
+ */
28
+ export declare function registerClient(region: string, startUrl: string, signal?: AbortSignal): Promise<ClientRegistration>;
29
+ /** Drop cached client registration — used by tests. */
30
+ export declare function clearClientRegistrationCache(): void;
31
+ /**
32
+ * Start device authorization. The SSO OIDC `StartDeviceAuthorization` endpoint
33
+ * is public (requires registered clientId/clientSecret, not SigV4).
34
+ */
35
+ export declare function startDeviceAuthorization(region: string, startUrl: string, registration: ClientRegistration, signal?: AbortSignal): Promise<StartDeviceAuthorizationResponse>;
36
+ /**
37
+ * Poll `CreateToken` until the user completes authorization or the device code
38
+ * expires. Handles `authorization_pending` (continue polling) and `slow_down`
39
+ * (increase interval) per the published SSO OIDC model.
40
+ */
41
+ export declare function pollForToken(region: string, registration: ClientRegistration, deviceCode: string, intervalSeconds: number, expiresInSeconds: number, signal?: AbortSignal): Promise<CreateTokenSuccess>;
42
+ /**
43
+ * Refresh an expired access token using the stored refresh token via
44
+ * `CreateToken` with `grantType: "refresh_token"`.
45
+ *
46
+ * Rotation is published behavior: the response includes a new `refreshToken`.
47
+ * If the server does not return a new one, the old refresh token is retained.
48
+ */
49
+ export declare function refreshKiroToken(credentials: OAuthCredentials): Promise<OAuthCredentials>;
50
+ export interface KiroLoginOptions {
51
+ onAuth: (url: string, instructions?: string) => void;
52
+ onPrompt: (prompt: {
53
+ message: string;
54
+ placeholder?: string;
55
+ allowEmpty?: boolean;
56
+ }) => Promise<string>;
57
+ onProgress?: (message: string) => void;
58
+ signal?: AbortSignal;
59
+ /** Override for tests. */
60
+ fetchImpl?: typeof globalThis.fetch;
61
+ }
62
+ export declare function loginKiro(options: KiroLoginOptions): Promise<OAuthCredentials>;
63
+ /**
64
+ * Attempt to import a cached SSO access token from `~/.aws/sso/cache/`.
65
+ * Returns the token if a valid (non-expired) one exists, otherwise undefined.
66
+ *
67
+ * This reuses the documented AWS CLI SSO cache location, not any third-party
68
+ * credential store.
69
+ */
70
+ export declare function importSsoCacheToken(): OAuthCredentials | undefined;
71
+ export {};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * LiteLLM login flow.
3
+ *
4
+ * LiteLLM is an OpenAI-compatible proxy that routes requests to many upstream providers.
5
+ *
6
+ * This is not OAuth - it's a simple API key flow:
7
+ * 1. Open browser to LiteLLM docs/dashboard
8
+ * 2. User copies their LiteLLM API key
9
+ * 3. User pastes the API key into the CLI
10
+ */
11
+ import type { OAuthController } from "./types";
12
+ /**
13
+ * Login to LiteLLM.
14
+ *
15
+ * Opens browser to LiteLLM setup docs, prompts user to paste their API key.
16
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
17
+ */
18
+ export declare function loginLiteLLM(options: OAuthController): Promise<string>;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * LM Studio login flow.
3
+ *
4
+ * LM Studio provides an OpenAI-compatible API at a local base URL.
5
+ * It usually runs unauthenticated but can be configured to require a bearer token.
6
+ *
7
+ * This flow stores an API-key-style credential used by `/login` and auth storage.
8
+ */
9
+ import type { OAuthController } from "./types";
10
+ export declare const DEFAULT_LOCAL_TOKEN = "lm-studio-local";
11
+ /**
12
+ * Login to LM Studio.
13
+ *
14
+ * Opens LM Studio API docs, prompts for an optional token,
15
+ * and returns a stored key value.
16
+ */
17
+ export declare function loginLmStudio(options: OAuthController): Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginMara: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * MiniMax Coding Plan login flow.
3
+ *
4
+ * MiniMax Coding Plan is a subscription service that provides access to
5
+ * MiniMax models (M2, M2.1) through an OpenAI-compatible API.
6
+ *
7
+ * This is not OAuth - it's a simple API key flow:
8
+ * 1. Open browser to https://platform.minimax.io/subscribe/coding-plan
9
+ * 2. User subscribes and copies their API key
10
+ * 3. User pastes the API key back into the CLI
11
+ *
12
+ * International: https://api.minimax.io/v1
13
+ * China: https://api.minimaxi.com/v1
14
+ */
15
+ import type { OAuthController } from "./types";
16
+ /**
17
+ * Login to MiniMax Coding Plan (international).
18
+ *
19
+ * Opens browser to subscription page, prompts user to paste their API key.
20
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
21
+ */
22
+ export declare function loginMiniMaxCode(options: OAuthController): Promise<string>;
23
+ /**
24
+ * Login to MiniMax Coding Plan (China).
25
+ *
26
+ * Same flow as international but uses China endpoint.
27
+ */
28
+ export declare function loginMiniMaxCodeCn(options: OAuthController): Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginMoonshot: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const loginNanoGPT: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * NVIDIA login flow.
3
+ *
4
+ * NVIDIA provides OpenAI-compatible models via https://integrate.api.nvidia.com/v1.
5
+ *
6
+ * This is not OAuth - it's a simple API key flow:
7
+ * 1. Open browser to NVIDIA NGC catalog
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 NVIDIA.
14
+ *
15
+ * Opens browser to NVIDIA dashboard, prompts user to paste their API key.
16
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
17
+ */
18
+ export declare function loginNvidia(options: OAuthController): Promise<string>;
@@ -0,0 +1,2 @@
1
+ import type { OAuthController } from "./types";
2
+ export declare function loginOllamaCloud(options: OAuthController): Promise<string>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Ollama login flow.
3
+ *
4
+ * Ollama is typically used locally without authentication, but some hosted
5
+ * deployments require a bearer token/API key.
6
+ *
7
+ * This flow is API-key based (not OAuth):
8
+ * 1. Optionally open Ollama docs
9
+ * 2. Prompt user for API key/token (optional)
10
+ * 3. Persist key only when provided
11
+ */
12
+ import type { OAuthController } from "./types";
13
+ /**
14
+ * Login to Ollama.
15
+ *
16
+ * Returns a trimmed API key/token string. Empty string means local no-auth mode.
17
+ */
18
+ export declare function loginOllama(options: OAuthController): Promise<string>;
@@ -0,0 +1,21 @@
1
+ import type { OAuthController, OAuthCredentials } from "./types";
2
+ export declare function decodeJwt<T = Record<string, unknown>>(token: string): T | null;
3
+ /**
4
+ * Login with OpenAI code provider OAuth
5
+ */
6
+ export type OpenAICodexLoginOptions = OAuthController & {
7
+ /** Optional originator value for OpenAI code provider OAuth. Default: "opencode". */
8
+ originator?: string;
9
+ };
10
+ export declare function loginOpenAICodex(options: OpenAICodexLoginOptions): Promise<OAuthCredentials>;
11
+ /**
12
+ * Login with OpenAI code provider using the device-code (headless) flow.
13
+ *
14
+ * Avoids a local callback server entirely — useful when port 1455 is unavailable
15
+ * or when the browser callback flow fails with 403 (e.g. network/proxy issues).
16
+ */
17
+ export declare function loginOpenAICodexDevice(ctrl: OAuthController): Promise<OAuthCredentials>;
18
+ /**
19
+ * Refresh OpenAI code provider OAuth token
20
+ */
21
+ export declare function refreshOpenAICodexToken(refreshToken: string): Promise<OAuthCredentials>;