@aryee337/aery-ai 0.1.148 → 0.2.10

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 (592) hide show
  1. package/CHANGELOG.md +2914 -0
  2. package/README.md +614 -813
  3. package/dist/types/api-registry.d.ts +30 -0
  4. package/dist/types/auth-broker/client.d.ts +66 -0
  5. package/dist/types/auth-broker/index.d.ts +5 -0
  6. package/dist/types/auth-broker/refresher.d.ts +25 -0
  7. package/dist/types/auth-broker/remote-store.d.ts +96 -0
  8. package/dist/types/auth-broker/server.d.ts +32 -0
  9. package/dist/types/auth-broker/types.d.ts +105 -0
  10. package/dist/types/auth-broker/wire-schemas.d.ts +412 -0
  11. package/dist/types/auth-gateway/http.d.ts +39 -0
  12. package/dist/types/auth-gateway/index.d.ts +3 -0
  13. package/dist/types/auth-gateway/server.d.ts +36 -0
  14. package/dist/types/auth-gateway/types.d.ts +117 -0
  15. package/dist/types/auth-storage.d.ts +739 -0
  16. package/dist/types/index.d.ts +49 -0
  17. package/dist/types/model-cache.d.ts +17 -0
  18. package/dist/types/model-manager.d.ts +64 -0
  19. package/dist/types/model-thinking.d.ts +100 -0
  20. package/dist/types/models.d.ts +12 -0
  21. package/dist/types/provider-details.d.ts +24 -0
  22. package/dist/types/provider-models/bundled-references.d.ts +4 -0
  23. package/dist/types/provider-models/descriptors.d.ts +50 -0
  24. package/dist/types/provider-models/google.d.ts +24 -0
  25. package/dist/types/provider-models/index.d.ts +5 -0
  26. package/dist/types/provider-models/ollama.d.ts +7 -0
  27. package/dist/types/provider-models/openai-compat.d.ts +296 -0
  28. package/dist/types/provider-models/special.d.ts +16 -0
  29. package/dist/types/providers/aery-native-client.d.ts +13 -0
  30. package/dist/types/providers/aery-native-server.d.ts +68 -0
  31. package/dist/types/providers/amazon-bedrock.d.ts +38 -0
  32. package/dist/types/providers/anthropic-client.d.ts +99 -0
  33. package/dist/types/providers/anthropic-messages-server-schema.d.ts +465 -0
  34. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  35. package/dist/types/providers/anthropic-wire.d.ts +262 -0
  36. package/dist/types/providers/anthropic.d.ts +206 -0
  37. package/dist/types/providers/aws-credentials.d.ts +43 -0
  38. package/dist/types/providers/aws-eventstream.d.ts +38 -0
  39. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  40. package/dist/types/providers/azure-openai-responses.d.ts +15 -0
  41. package/dist/types/providers/cursor/gen/agent_pb.d.ts +13022 -0
  42. package/dist/types/providers/cursor.d.ts +43 -0
  43. package/dist/types/providers/error-message.d.ts +27 -0
  44. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  45. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  46. package/dist/types/providers/google-auth.d.ts +24 -0
  47. package/dist/types/providers/google-gemini-cli.d.ts +81 -0
  48. package/dist/types/providers/google-gemini-headers.d.ts +18 -0
  49. package/dist/types/providers/google-shared.d.ts +171 -0
  50. package/dist/types/providers/google-types.d.ts +138 -0
  51. package/dist/types/providers/google-vertex.d.ts +7 -0
  52. package/dist/types/providers/google.d.ts +4 -0
  53. package/dist/types/providers/grammar.d.ts +1 -0
  54. package/dist/types/providers/kimi.d.ts +27 -0
  55. package/dist/types/providers/mock.d.ts +173 -0
  56. package/dist/types/providers/ollama.d.ts +6 -0
  57. package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
  58. package/dist/types/providers/openai-chat-server-schema.d.ts +817 -0
  59. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  60. package/dist/types/providers/openai-codex/constants.d.ts +26 -0
  61. package/dist/types/providers/openai-codex/request-transformer.d.ts +49 -0
  62. package/dist/types/providers/openai-codex/response-handler.d.ts +17 -0
  63. package/dist/types/providers/openai-codex-responses.d.ts +67 -0
  64. package/dist/types/providers/openai-completions-compat.d.ts +25 -0
  65. package/dist/types/providers/openai-completions.d.ts +54 -0
  66. package/dist/types/providers/openai-responses-server-schema.d.ts +392 -0
  67. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  68. package/dist/types/providers/openai-responses-shared.d.ts +100 -0
  69. package/dist/types/providers/openai-responses.d.ts +66 -0
  70. package/dist/types/providers/register-builtins.d.ts +31 -0
  71. package/dist/types/providers/synthetic.d.ts +26 -0
  72. package/dist/{providers → types/providers}/transform-messages.d.ts +6 -2
  73. package/dist/types/providers/vision-guard.d.ts +8 -0
  74. package/dist/types/providers/xai-responses.d.ts +23 -0
  75. package/dist/types/rate-limit-utils.d.ts +19 -0
  76. package/dist/types/stream.d.ts +28 -0
  77. package/dist/types/types.d.ts +801 -0
  78. package/dist/types/usage/claude.d.ts +4 -0
  79. package/dist/types/usage/gemini.d.ts +2 -0
  80. package/dist/types/usage/github-copilot.d.ts +7 -0
  81. package/dist/types/usage/google-antigravity.d.ts +2 -0
  82. package/dist/types/usage/kimi.d.ts +2 -0
  83. package/dist/types/usage/minimax-code.d.ts +2 -0
  84. package/dist/types/usage/openai-codex.d.ts +3 -0
  85. package/dist/types/usage/shared.d.ts +1 -0
  86. package/dist/types/usage/zai.d.ts +2 -0
  87. package/dist/types/usage.d.ts +260 -0
  88. package/dist/types/utils/abort.d.ts +19 -0
  89. package/dist/types/utils/abortable-iterator.d.ts +4 -0
  90. package/dist/types/utils/anthropic-auth.d.ts +35 -0
  91. package/dist/types/utils/discovery/antigravity.d.ts +61 -0
  92. package/dist/types/utils/discovery/codex.d.ts +38 -0
  93. package/dist/types/utils/discovery/cursor.d.ts +23 -0
  94. package/dist/types/utils/discovery/gemini.d.ts +25 -0
  95. package/dist/types/utils/discovery/index.d.ts +4 -0
  96. package/dist/types/utils/discovery/openai-compatible.d.ts +72 -0
  97. package/dist/types/utils/event-stream.d.ts +28 -0
  98. package/dist/types/utils/fireworks-model-id.d.ts +10 -0
  99. package/dist/types/utils/foundry.d.ts +1 -0
  100. package/dist/types/utils/http-inspector.d.ts +31 -0
  101. package/dist/types/utils/idle-iterator.d.ts +78 -0
  102. package/dist/types/utils/json-parse.d.ts +37 -0
  103. package/dist/types/utils/oauth/__tests__/xai-oauth.test.d.ts +1 -0
  104. package/dist/types/utils/oauth/alibaba-coding-plan.d.ts +18 -0
  105. package/dist/types/utils/oauth/anthropic.d.ts +22 -0
  106. package/dist/types/utils/oauth/api-key-login.d.ts +35 -0
  107. package/dist/types/utils/oauth/api-key-validation.d.ts +27 -0
  108. package/dist/types/utils/oauth/callback-server.d.ts +57 -0
  109. package/dist/types/utils/oauth/cerebras.d.ts +1 -0
  110. package/dist/types/utils/oauth/cloudflare-ai-gateway.d.ts +18 -0
  111. package/dist/types/utils/oauth/cursor.d.ts +15 -0
  112. package/dist/types/utils/oauth/deepseek.d.ts +10 -0
  113. package/dist/types/utils/oauth/firepass.d.ts +1 -0
  114. package/dist/types/utils/oauth/fireworks.d.ts +1 -0
  115. package/dist/types/utils/oauth/github-copilot.d.ts +38 -0
  116. package/dist/types/utils/oauth/gitlab-duo.d.ts +3 -0
  117. package/dist/types/utils/oauth/google-antigravity.d.ts +11 -0
  118. package/dist/types/utils/oauth/google-gemini-cli.d.ts +10 -0
  119. package/dist/types/utils/oauth/google-oauth-shared.d.ts +28 -0
  120. package/dist/types/utils/oauth/huggingface.d.ts +19 -0
  121. package/dist/types/utils/oauth/index.d.ts +38 -0
  122. package/dist/types/utils/oauth/kagi.d.ts +17 -0
  123. package/dist/types/utils/oauth/kilo.d.ts +5 -0
  124. package/dist/types/utils/oauth/kimi.d.ts +21 -0
  125. package/dist/types/utils/oauth/litellm.d.ts +18 -0
  126. package/dist/types/utils/oauth/lm-studio.d.ts +17 -0
  127. package/dist/types/utils/oauth/minimax-code.d.ts +28 -0
  128. package/dist/types/utils/oauth/moonshot.d.ts +1 -0
  129. package/dist/types/utils/oauth/nanogpt.d.ts +1 -0
  130. package/dist/types/utils/oauth/nvidia.d.ts +18 -0
  131. package/dist/types/utils/oauth/ollama-cloud.d.ts +2 -0
  132. package/dist/types/utils/oauth/ollama.d.ts +18 -0
  133. package/dist/types/utils/oauth/openai-codex.d.ts +21 -0
  134. package/dist/types/utils/oauth/opencode.d.ts +18 -0
  135. package/dist/types/utils/oauth/openrouter.d.ts +1 -0
  136. package/dist/types/utils/oauth/parallel.d.ts +17 -0
  137. package/dist/types/utils/oauth/perplexity.d.ts +9 -0
  138. package/dist/{utils → types/utils}/oauth/pkce.d.ts +0 -5
  139. package/dist/types/utils/oauth/qianfan.d.ts +17 -0
  140. package/dist/types/utils/oauth/qwen-portal.d.ts +19 -0
  141. package/dist/types/utils/oauth/synthetic.d.ts +1 -0
  142. package/dist/types/utils/oauth/tavily.d.ts +17 -0
  143. package/dist/types/utils/oauth/together.d.ts +1 -0
  144. package/dist/types/utils/oauth/types.d.ts +44 -0
  145. package/dist/types/utils/oauth/venice.d.ts +18 -0
  146. package/dist/types/utils/oauth/vercel-ai-gateway.d.ts +18 -0
  147. package/dist/types/utils/oauth/vllm.d.ts +16 -0
  148. package/dist/types/utils/oauth/wafer.d.ts +2 -0
  149. package/dist/types/utils/oauth/xai-oauth.d.ts +60 -0
  150. package/dist/types/utils/oauth/xiaomi.d.ts +19 -0
  151. package/dist/types/utils/oauth/zai.d.ts +18 -0
  152. package/dist/types/utils/oauth/zenmux.d.ts +1 -0
  153. package/dist/types/utils/oauth/zhipu.d.ts +18 -0
  154. package/dist/{utils → types/utils}/overflow.d.ts +9 -11
  155. package/dist/types/utils/parse-bind.d.ts +23 -0
  156. package/dist/types/utils/provider-response.d.ts +3 -0
  157. package/dist/types/utils/request-debug.d.ts +29 -0
  158. package/dist/types/utils/retry-after.d.ts +3 -0
  159. package/dist/types/utils/retry.d.ts +26 -0
  160. package/dist/types/utils/schema/adapt.d.ts +24 -0
  161. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  162. package/dist/types/utils/schema/dereference.d.ts +11 -0
  163. package/dist/types/utils/schema/draft.d.ts +10 -0
  164. package/dist/types/utils/schema/equality.d.ts +4 -0
  165. package/dist/types/utils/schema/fields.d.ts +49 -0
  166. package/dist/types/utils/schema/index.d.ts +13 -0
  167. package/dist/types/utils/schema/json-schema-validator.d.ts +12 -0
  168. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  169. package/dist/types/utils/schema/normalize.d.ts +93 -0
  170. package/dist/types/utils/schema/spill.d.ts +8 -0
  171. package/dist/types/utils/schema/stamps.d.ts +25 -0
  172. package/dist/types/utils/schema/types.d.ts +4 -0
  173. package/dist/types/utils/schema/wire.d.ts +53 -0
  174. package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
  175. package/dist/types/utils/sdk-stream-timeout.d.ts +33 -0
  176. package/dist/types/utils/sse-debug.d.ts +10 -0
  177. package/dist/types/utils/stream-markup-healing.d.ts +80 -0
  178. package/dist/types/utils/tool-choice.d.ts +50 -0
  179. package/dist/types/utils/validation.d.ts +17 -0
  180. package/dist/types/utils.d.ts +28 -0
  181. package/package.json +139 -105
  182. package/src/api-registry.ts +96 -0
  183. package/src/auth-broker/client.ts +358 -0
  184. package/src/auth-broker/index.ts +5 -0
  185. package/src/auth-broker/refresher.ts +117 -0
  186. package/src/auth-broker/remote-store.ts +623 -0
  187. package/src/auth-broker/server.ts +644 -0
  188. package/src/auth-broker/types.ts +127 -0
  189. package/src/auth-broker/wire-schemas.ts +200 -0
  190. package/src/auth-gateway/http.ts +194 -0
  191. package/src/auth-gateway/index.ts +3 -0
  192. package/src/auth-gateway/server.ts +818 -0
  193. package/src/auth-gateway/types.ts +143 -0
  194. package/src/auth-storage.ts +4422 -0
  195. package/src/index.ts +54 -0
  196. package/src/model-cache.ts +129 -0
  197. package/src/model-manager.ts +469 -0
  198. package/src/model-thinking.ts +782 -0
  199. package/src/models.json +83530 -0
  200. package/src/models.json.d.ts +9 -0
  201. package/src/models.ts +56 -0
  202. package/src/prompts/turn-aborted-guidance.md +4 -0
  203. package/src/provider-details.ts +90 -0
  204. package/src/provider-models/bundled-references.ts +38 -0
  205. package/src/provider-models/descriptors.ts +355 -0
  206. package/src/provider-models/google.ts +88 -0
  207. package/src/provider-models/index.ts +5 -0
  208. package/src/provider-models/ollama.ts +153 -0
  209. package/src/provider-models/openai-compat.ts +2817 -0
  210. package/src/provider-models/special.ts +67 -0
  211. package/src/providers/aery-native-client.ts +228 -0
  212. package/src/providers/aery-native-server.ts +212 -0
  213. package/src/providers/amazon-bedrock.ts +873 -0
  214. package/src/providers/anthropic-client.ts +318 -0
  215. package/src/providers/anthropic-messages-server-schema.ts +243 -0
  216. package/src/providers/anthropic-messages-server.ts +683 -0
  217. package/src/providers/anthropic-wire.ts +268 -0
  218. package/src/providers/anthropic.ts +3094 -0
  219. package/src/providers/aws-credentials.ts +501 -0
  220. package/src/providers/aws-eventstream.ts +185 -0
  221. package/src/providers/aws-sigv4.ts +218 -0
  222. package/src/providers/azure-openai-responses.ts +361 -0
  223. package/src/providers/cursor/gen/agent_pb.ts +15274 -0
  224. package/src/providers/cursor/proto/agent.proto +3526 -0
  225. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  226. package/src/providers/cursor/proto/buf.yaml +17 -0
  227. package/src/providers/cursor.ts +2621 -0
  228. package/src/providers/error-message.ts +21 -0
  229. package/src/providers/github-copilot-headers.ts +140 -0
  230. package/src/providers/gitlab-duo.ts +372 -0
  231. package/src/providers/google-auth.ts +252 -0
  232. package/src/providers/google-gemini-cli.ts +809 -0
  233. package/src/providers/google-gemini-headers.ts +41 -0
  234. package/src/providers/google-shared.ts +917 -0
  235. package/src/providers/google-types.ts +167 -0
  236. package/src/providers/google-vertex.ts +91 -0
  237. package/src/providers/google.ts +41 -0
  238. package/src/providers/grammar.ts +70 -0
  239. package/src/providers/kimi.ts +52 -0
  240. package/src/providers/mock.ts +496 -0
  241. package/src/providers/ollama.ts +644 -0
  242. package/src/providers/openai-anthropic-shim.ts +138 -0
  243. package/src/providers/openai-chat-server-schema.ts +252 -0
  244. package/src/providers/openai-chat-server.ts +647 -0
  245. package/src/providers/openai-codex/constants.ts +43 -0
  246. package/src/providers/openai-codex/request-transformer.ts +161 -0
  247. package/src/providers/openai-codex/response-handler.ts +81 -0
  248. package/src/providers/openai-codex-responses.ts +3018 -0
  249. package/src/providers/openai-completions-compat.ts +300 -0
  250. package/src/providers/openai-completions.ts +1979 -0
  251. package/src/providers/openai-responses-server-schema.ts +290 -0
  252. package/src/providers/openai-responses-server.ts +1183 -0
  253. package/src/providers/openai-responses-shared.ts +873 -0
  254. package/src/providers/openai-responses.ts +679 -0
  255. package/src/providers/register-builtins.ts +436 -0
  256. package/src/providers/synthetic.ts +50 -0
  257. package/src/providers/transform-messages.ts +382 -0
  258. package/src/providers/vision-guard.ts +31 -0
  259. package/src/providers/xai-responses.ts +82 -0
  260. package/src/rate-limit-utils.ts +84 -0
  261. package/src/stream.ts +1065 -0
  262. package/src/types.ts +944 -0
  263. package/src/usage/claude.ts +482 -0
  264. package/src/usage/gemini.ts +250 -0
  265. package/src/usage/github-copilot.ts +421 -0
  266. package/src/usage/google-antigravity.ts +201 -0
  267. package/src/usage/kimi.ts +271 -0
  268. package/src/usage/minimax-code.ts +31 -0
  269. package/src/usage/openai-codex.ts +503 -0
  270. package/src/usage/shared.ts +10 -0
  271. package/src/usage/zai.ts +247 -0
  272. package/src/usage.ts +185 -0
  273. package/src/utils/abort.ts +51 -0
  274. package/src/utils/abortable-iterator.ts +69 -0
  275. package/src/utils/anthropic-auth.ts +93 -0
  276. package/src/utils/discovery/antigravity.ts +261 -0
  277. package/src/utils/discovery/codex.ts +371 -0
  278. package/src/utils/discovery/cursor.ts +306 -0
  279. package/src/utils/discovery/gemini.ts +248 -0
  280. package/src/utils/discovery/index.ts +4 -0
  281. package/src/utils/discovery/openai-compatible.ts +224 -0
  282. package/src/utils/event-stream.ts +142 -0
  283. package/src/utils/fireworks-model-id.ts +30 -0
  284. package/src/utils/foundry.ts +8 -0
  285. package/src/utils/http-inspector.ts +176 -0
  286. package/src/utils/idle-iterator.ts +267 -0
  287. package/src/utils/json-parse.ts +182 -0
  288. package/src/utils/oauth/__tests__/xai-oauth.test.ts +107 -0
  289. package/src/utils/oauth/alibaba-coding-plan.ts +59 -0
  290. package/src/utils/oauth/anthropic.ts +273 -0
  291. package/src/utils/oauth/api-key-login.ts +87 -0
  292. package/src/utils/oauth/api-key-validation.ts +92 -0
  293. package/src/utils/oauth/callback-server.ts +276 -0
  294. package/src/utils/oauth/cerebras.ts +16 -0
  295. package/src/utils/oauth/cloudflare-ai-gateway.ts +48 -0
  296. package/src/utils/oauth/cursor.ts +157 -0
  297. package/src/utils/oauth/deepseek.ts +53 -0
  298. package/src/utils/oauth/firepass.ts +24 -0
  299. package/src/utils/oauth/fireworks.ts +15 -0
  300. package/src/utils/oauth/github-copilot.ts +362 -0
  301. package/src/utils/oauth/gitlab-duo.ts +123 -0
  302. package/src/utils/oauth/google-antigravity.ts +200 -0
  303. package/src/utils/oauth/google-gemini-cli.ts +256 -0
  304. package/src/utils/oauth/google-oauth-shared.ts +110 -0
  305. package/src/utils/oauth/huggingface.ts +62 -0
  306. package/src/utils/oauth/index.ts +484 -0
  307. package/src/utils/oauth/kagi.ts +47 -0
  308. package/src/utils/oauth/kilo.ts +87 -0
  309. package/src/utils/oauth/kimi.ts +254 -0
  310. package/src/utils/oauth/litellm.ts +47 -0
  311. package/src/utils/oauth/lm-studio.ts +38 -0
  312. package/src/utils/oauth/minimax-code.ts +78 -0
  313. package/src/utils/oauth/moonshot.ts +23 -0
  314. package/src/utils/oauth/nanogpt.ts +15 -0
  315. package/src/utils/oauth/nvidia.ts +70 -0
  316. package/src/utils/oauth/oauth.html +203 -0
  317. package/src/utils/oauth/ollama-cloud.ts +28 -0
  318. package/src/utils/oauth/ollama.ts +47 -0
  319. package/src/utils/oauth/openai-codex.ts +299 -0
  320. package/src/utils/oauth/opencode.ts +49 -0
  321. package/src/utils/oauth/openrouter.ts +20 -0
  322. package/src/utils/oauth/parallel.ts +46 -0
  323. package/src/utils/oauth/perplexity.ts +206 -0
  324. package/src/utils/oauth/pkce.ts +18 -0
  325. package/src/utils/oauth/qianfan.ts +58 -0
  326. package/src/utils/oauth/qwen-portal.ts +60 -0
  327. package/src/utils/oauth/synthetic.ts +15 -0
  328. package/src/utils/oauth/tavily.ts +46 -0
  329. package/src/utils/oauth/together.ts +16 -0
  330. package/src/utils/oauth/types.ts +99 -0
  331. package/src/utils/oauth/venice.ts +59 -0
  332. package/src/utils/oauth/vercel-ai-gateway.ts +47 -0
  333. package/src/utils/oauth/vllm.ts +40 -0
  334. package/src/utils/oauth/wafer.ts +50 -0
  335. package/src/utils/oauth/xai-oauth.ts +342 -0
  336. package/src/utils/oauth/xiaomi.ts +139 -0
  337. package/src/utils/oauth/zai.ts +60 -0
  338. package/src/utils/oauth/zenmux.ts +15 -0
  339. package/src/utils/oauth/zhipu.ts +60 -0
  340. package/src/utils/overflow.ts +137 -0
  341. package/src/utils/parse-bind.ts +54 -0
  342. package/src/utils/provider-response.ts +30 -0
  343. package/src/utils/request-debug.ts +336 -0
  344. package/src/utils/retry-after.ts +110 -0
  345. package/src/utils/retry.ts +54 -0
  346. package/src/utils/schema/CONSTRAINTS.md +164 -0
  347. package/src/utils/schema/adapt.ts +36 -0
  348. package/src/utils/schema/compatibility.ts +435 -0
  349. package/src/utils/schema/dereference.ts +98 -0
  350. package/src/utils/schema/draft.ts +341 -0
  351. package/src/utils/schema/equality.ts +97 -0
  352. package/src/utils/schema/fields.ts +191 -0
  353. package/src/utils/schema/index.ts +13 -0
  354. package/src/utils/schema/json-schema-validator.ts +577 -0
  355. package/src/utils/schema/meta-validator.ts +167 -0
  356. package/src/utils/schema/normalize.ts +1588 -0
  357. package/src/utils/schema/spill.ts +43 -0
  358. package/src/utils/schema/stamps.ts +97 -0
  359. package/src/utils/schema/types.ts +10 -0
  360. package/src/utils/schema/wire.ts +293 -0
  361. package/src/utils/schema/zod-decontaminate.ts +331 -0
  362. package/src/utils/sdk-stream-timeout.ts +43 -0
  363. package/src/utils/sse-debug.ts +289 -0
  364. package/src/utils/stream-markup-healing.ts +612 -0
  365. package/src/utils/tool-choice.ts +99 -0
  366. package/src/utils/validation.ts +1024 -0
  367. package/src/utils.ts +166 -0
  368. package/dist/api-registry.d.ts +0 -20
  369. package/dist/api-registry.d.ts.map +0 -1
  370. package/dist/api-registry.js +0 -44
  371. package/dist/api-registry.js.map +0 -1
  372. package/dist/bedrock-provider.d.ts +0 -5
  373. package/dist/bedrock-provider.d.ts.map +0 -1
  374. package/dist/bedrock-provider.js +0 -6
  375. package/dist/bedrock-provider.js.map +0 -1
  376. package/dist/cli.d.ts +0 -3
  377. package/dist/cli.d.ts.map +0 -1
  378. package/dist/cli.js +0 -130
  379. package/dist/cli.js.map +0 -1
  380. package/dist/env-api-keys.d.ts +0 -18
  381. package/dist/env-api-keys.d.ts.map +0 -1
  382. package/dist/env-api-keys.js +0 -178
  383. package/dist/env-api-keys.js.map +0 -1
  384. package/dist/image-models.d.ts +0 -10
  385. package/dist/image-models.d.ts.map +0 -1
  386. package/dist/image-models.generated.d.ts +0 -440
  387. package/dist/image-models.generated.d.ts.map +0 -1
  388. package/dist/image-models.generated.js +0 -442
  389. package/dist/image-models.generated.js.map +0 -1
  390. package/dist/image-models.js +0 -23
  391. package/dist/image-models.js.map +0 -1
  392. package/dist/images-api-registry.d.ts +0 -14
  393. package/dist/images-api-registry.d.ts.map +0 -1
  394. package/dist/images-api-registry.js +0 -22
  395. package/dist/images-api-registry.js.map +0 -1
  396. package/dist/images.d.ts +0 -4
  397. package/dist/images.d.ts.map +0 -1
  398. package/dist/images.js +0 -14
  399. package/dist/images.js.map +0 -1
  400. package/dist/index.d.ts +0 -32
  401. package/dist/index.d.ts.map +0 -1
  402. package/dist/index.js +0 -20
  403. package/dist/index.js.map +0 -1
  404. package/dist/models.d.ts +0 -18
  405. package/dist/models.d.ts.map +0 -1
  406. package/dist/models.generated.d.ts +0 -17480
  407. package/dist/models.generated.d.ts.map +0 -1
  408. package/dist/models.generated.js +0 -16339
  409. package/dist/models.generated.js.map +0 -1
  410. package/dist/models.js +0 -71
  411. package/dist/models.js.map +0 -1
  412. package/dist/oauth.d.ts +0 -2
  413. package/dist/oauth.d.ts.map +0 -1
  414. package/dist/oauth.js +0 -2
  415. package/dist/oauth.js.map +0 -1
  416. package/dist/providers/aery-error-formatting.d.ts +0 -13
  417. package/dist/providers/aery-error-formatting.d.ts.map +0 -1
  418. package/dist/providers/aery-error-formatting.js +0 -112
  419. package/dist/providers/aery-error-formatting.js.map +0 -1
  420. package/dist/providers/amazon-bedrock.d.ts +0 -38
  421. package/dist/providers/amazon-bedrock.d.ts.map +0 -1
  422. package/dist/providers/amazon-bedrock.js +0 -763
  423. package/dist/providers/amazon-bedrock.js.map +0 -1
  424. package/dist/providers/anthropic.d.ts +0 -71
  425. package/dist/providers/anthropic.d.ts.map +0 -1
  426. package/dist/providers/anthropic.js +0 -949
  427. package/dist/providers/anthropic.js.map +0 -1
  428. package/dist/providers/azure-openai-responses.d.ts +0 -15
  429. package/dist/providers/azure-openai-responses.d.ts.map +0 -1
  430. package/dist/providers/azure-openai-responses.js +0 -225
  431. package/dist/providers/azure-openai-responses.js.map +0 -1
  432. package/dist/providers/cloudflare.d.ts +0 -13
  433. package/dist/providers/cloudflare.d.ts.map +0 -1
  434. package/dist/providers/cloudflare.js +0 -26
  435. package/dist/providers/cloudflare.js.map +0 -1
  436. package/dist/providers/faux.d.ts +0 -56
  437. package/dist/providers/faux.d.ts.map +0 -1
  438. package/dist/providers/faux.js +0 -368
  439. package/dist/providers/faux.js.map +0 -1
  440. package/dist/providers/github-copilot-headers.d.ts +0 -8
  441. package/dist/providers/github-copilot-headers.d.ts.map +0 -1
  442. package/dist/providers/github-copilot-headers.js +0 -29
  443. package/dist/providers/github-copilot-headers.js.map +0 -1
  444. package/dist/providers/google-gemini-cli.d.ts +0 -74
  445. package/dist/providers/google-gemini-cli.d.ts.map +0 -1
  446. package/dist/providers/google-gemini-cli.js +0 -779
  447. package/dist/providers/google-gemini-cli.js.map +0 -1
  448. package/dist/providers/google-shared.d.ts +0 -70
  449. package/dist/providers/google-shared.d.ts.map +0 -1
  450. package/dist/providers/google-shared.js +0 -329
  451. package/dist/providers/google-shared.js.map +0 -1
  452. package/dist/providers/google-vertex.d.ts +0 -15
  453. package/dist/providers/google-vertex.d.ts.map +0 -1
  454. package/dist/providers/google-vertex.js +0 -442
  455. package/dist/providers/google-vertex.js.map +0 -1
  456. package/dist/providers/google.d.ts +0 -13
  457. package/dist/providers/google.d.ts.map +0 -1
  458. package/dist/providers/google.js +0 -400
  459. package/dist/providers/google.js.map +0 -1
  460. package/dist/providers/images/openrouter.d.ts +0 -3
  461. package/dist/providers/images/openrouter.d.ts.map +0 -1
  462. package/dist/providers/images/openrouter.js +0 -129
  463. package/dist/providers/images/openrouter.js.map +0 -1
  464. package/dist/providers/images/register-builtins.d.ts +0 -4
  465. package/dist/providers/images/register-builtins.d.ts.map +0 -1
  466. package/dist/providers/images/register-builtins.js +0 -34
  467. package/dist/providers/images/register-builtins.js.map +0 -1
  468. package/dist/providers/mistral.d.ts +0 -25
  469. package/dist/providers/mistral.d.ts.map +0 -1
  470. package/dist/providers/mistral.js +0 -535
  471. package/dist/providers/mistral.js.map +0 -1
  472. package/dist/providers/openai-codex-responses.d.ts +0 -30
  473. package/dist/providers/openai-codex-responses.d.ts.map +0 -1
  474. package/dist/providers/openai-codex-responses.js +0 -1090
  475. package/dist/providers/openai-codex-responses.js.map +0 -1
  476. package/dist/providers/openai-completions.d.ts +0 -19
  477. package/dist/providers/openai-completions.d.ts.map +0 -1
  478. package/dist/providers/openai-completions.js +0 -950
  479. package/dist/providers/openai-completions.js.map +0 -1
  480. package/dist/providers/openai-prompt-cache.d.ts +0 -3
  481. package/dist/providers/openai-prompt-cache.d.ts.map +0 -1
  482. package/dist/providers/openai-prompt-cache.js +0 -10
  483. package/dist/providers/openai-prompt-cache.js.map +0 -1
  484. package/dist/providers/openai-responses-shared.d.ts +0 -18
  485. package/dist/providers/openai-responses-shared.d.ts.map +0 -1
  486. package/dist/providers/openai-responses-shared.js +0 -492
  487. package/dist/providers/openai-responses-shared.js.map +0 -1
  488. package/dist/providers/openai-responses.d.ts +0 -13
  489. package/dist/providers/openai-responses.d.ts.map +0 -1
  490. package/dist/providers/openai-responses.js +0 -237
  491. package/dist/providers/openai-responses.js.map +0 -1
  492. package/dist/providers/register-builtins.d.ts +0 -38
  493. package/dist/providers/register-builtins.d.ts.map +0 -1
  494. package/dist/providers/register-builtins.js +0 -278
  495. package/dist/providers/register-builtins.js.map +0 -1
  496. package/dist/providers/simple-options.d.ts +0 -8
  497. package/dist/providers/simple-options.d.ts.map +0 -1
  498. package/dist/providers/simple-options.js +0 -41
  499. package/dist/providers/simple-options.js.map +0 -1
  500. package/dist/providers/transform-messages.d.ts.map +0 -1
  501. package/dist/providers/transform-messages.js +0 -184
  502. package/dist/providers/transform-messages.js.map +0 -1
  503. package/dist/session-resources.d.ts +0 -4
  504. package/dist/session-resources.d.ts.map +0 -1
  505. package/dist/session-resources.js +0 -22
  506. package/dist/session-resources.js.map +0 -1
  507. package/dist/stream.d.ts +0 -8
  508. package/dist/stream.d.ts.map +0 -1
  509. package/dist/stream.js +0 -27
  510. package/dist/stream.js.map +0 -1
  511. package/dist/types.d.ts +0 -498
  512. package/dist/types.d.ts.map +0 -1
  513. package/dist/types.js +0 -2
  514. package/dist/types.js.map +0 -1
  515. package/dist/utils/diagnostics.d.ts +0 -19
  516. package/dist/utils/diagnostics.d.ts.map +0 -1
  517. package/dist/utils/diagnostics.js +0 -25
  518. package/dist/utils/diagnostics.js.map +0 -1
  519. package/dist/utils/event-stream.d.ts +0 -21
  520. package/dist/utils/event-stream.d.ts.map +0 -1
  521. package/dist/utils/event-stream.js +0 -81
  522. package/dist/utils/event-stream.js.map +0 -1
  523. package/dist/utils/hash.d.ts +0 -3
  524. package/dist/utils/hash.d.ts.map +0 -1
  525. package/dist/utils/hash.js +0 -14
  526. package/dist/utils/hash.js.map +0 -1
  527. package/dist/utils/headers.d.ts +0 -2
  528. package/dist/utils/headers.d.ts.map +0 -1
  529. package/dist/utils/headers.js +0 -8
  530. package/dist/utils/headers.js.map +0 -1
  531. package/dist/utils/json-parse.d.ts +0 -16
  532. package/dist/utils/json-parse.d.ts.map +0 -1
  533. package/dist/utils/json-parse.js +0 -113
  534. package/dist/utils/json-parse.js.map +0 -1
  535. package/dist/utils/node-http-proxy.d.ts +0 -10
  536. package/dist/utils/node-http-proxy.d.ts.map +0 -1
  537. package/dist/utils/node-http-proxy.js +0 -97
  538. package/dist/utils/node-http-proxy.js.map +0 -1
  539. package/dist/utils/oauth/anthropic.d.ts +0 -25
  540. package/dist/utils/oauth/anthropic.d.ts.map +0 -1
  541. package/dist/utils/oauth/anthropic.js +0 -335
  542. package/dist/utils/oauth/anthropic.js.map +0 -1
  543. package/dist/utils/oauth/device-code.d.ts +0 -19
  544. package/dist/utils/oauth/device-code.d.ts.map +0 -1
  545. package/dist/utils/oauth/device-code.js +0 -55
  546. package/dist/utils/oauth/device-code.js.map +0 -1
  547. package/dist/utils/oauth/github-copilot.d.ts +0 -30
  548. package/dist/utils/oauth/github-copilot.d.ts.map +0 -1
  549. package/dist/utils/oauth/github-copilot.js +0 -268
  550. package/dist/utils/oauth/github-copilot.js.map +0 -1
  551. package/dist/utils/oauth/google-antigravity.d.ts +0 -26
  552. package/dist/utils/oauth/google-antigravity.d.ts.map +0 -1
  553. package/dist/utils/oauth/google-antigravity.js +0 -377
  554. package/dist/utils/oauth/google-antigravity.js.map +0 -1
  555. package/dist/utils/oauth/google-gemini-cli.d.ts +0 -26
  556. package/dist/utils/oauth/google-gemini-cli.d.ts.map +0 -1
  557. package/dist/utils/oauth/google-gemini-cli.js +0 -482
  558. package/dist/utils/oauth/google-gemini-cli.js.map +0 -1
  559. package/dist/utils/oauth/index.d.ts +0 -63
  560. package/dist/utils/oauth/index.d.ts.map +0 -1
  561. package/dist/utils/oauth/index.js +0 -131
  562. package/dist/utils/oauth/index.js.map +0 -1
  563. package/dist/utils/oauth/oauth-page.d.ts +0 -3
  564. package/dist/utils/oauth/oauth-page.d.ts.map +0 -1
  565. package/dist/utils/oauth/oauth-page.js +0 -105
  566. package/dist/utils/oauth/oauth-page.js.map +0 -1
  567. package/dist/utils/oauth/openai-codex.d.ts +0 -34
  568. package/dist/utils/oauth/openai-codex.d.ts.map +0 -1
  569. package/dist/utils/oauth/openai-codex.js +0 -385
  570. package/dist/utils/oauth/openai-codex.js.map +0 -1
  571. package/dist/utils/oauth/pkce.d.ts.map +0 -1
  572. package/dist/utils/oauth/pkce.js +0 -31
  573. package/dist/utils/oauth/pkce.js.map +0 -1
  574. package/dist/utils/oauth/types.d.ts +0 -64
  575. package/dist/utils/oauth/types.d.ts.map +0 -1
  576. package/dist/utils/oauth/types.js +0 -2
  577. package/dist/utils/oauth/types.js.map +0 -1
  578. package/dist/utils/overflow.d.ts.map +0 -1
  579. package/dist/utils/overflow.js +0 -151
  580. package/dist/utils/overflow.js.map +0 -1
  581. package/dist/utils/sanitize-unicode.d.ts +0 -22
  582. package/dist/utils/sanitize-unicode.d.ts.map +0 -1
  583. package/dist/utils/sanitize-unicode.js +0 -26
  584. package/dist/utils/sanitize-unicode.js.map +0 -1
  585. package/dist/utils/typebox-helpers.d.ts +0 -17
  586. package/dist/utils/typebox-helpers.d.ts.map +0 -1
  587. package/dist/utils/typebox-helpers.js +0 -21
  588. package/dist/utils/typebox-helpers.js.map +0 -1
  589. package/dist/utils/validation.d.ts +0 -18
  590. package/dist/utils/validation.d.ts.map +0 -1
  591. package/dist/utils/validation.js +0 -281
  592. package/dist/utils/validation.js.map +0 -1
@@ -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 Codex OAuth
5
+ */
6
+ export type OpenAICodexLoginOptions = OAuthController & {
7
+ /** Optional originator value for OpenAI Codex OAuth. Default: "opencode". */
8
+ originator?: string;
9
+ };
10
+ export declare function loginOpenAICodex(options: OpenAICodexLoginOptions): Promise<OAuthCredentials>;
11
+ /**
12
+ * Login with OpenAI Codex 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 Codex OAuth token
20
+ */
21
+ export declare function refreshOpenAICodexToken(refreshToken: string): Promise<OAuthCredentials>;
@@ -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, Claude 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 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,9 @@
1
+ import type { OAuthController, OAuthCredentials } from "./types";
2
+ /**
3
+ * Login to Perplexity.
4
+ *
5
+ * Tries auto-extraction from the desktop app, then runs HTTP email OTP login.
6
+ *
7
+ * No browser/manual token paste fallback is used.
8
+ */
9
+ export declare function loginPerplexity(ctrl: OAuthController): Promise<OAuthCredentials>;
@@ -1,7 +1,3 @@
1
- /**
2
- * PKCE utilities using Web Crypto API.
3
- * Works in both Node.js 20+ and browsers.
4
- */
5
1
  /**
6
2
  * Generate PKCE code verifier and challenge.
7
3
  * Uses Web Crypto API for cross-platform compatibility.
@@ -10,4 +6,3 @@ export declare function generatePKCE(): Promise<{
10
6
  verifier: string;
11
7
  challenge: string;
12
8
  }>;
13
- //# sourceMappingURL=pkce.d.ts.map
@@ -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 @@
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,44 @@
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 = "alibaba-coding-plan" | "anthropic" | "cerebras" | "cloudflare-ai-gateway" | "cursor" | "deepseek" | "fireworks" | "firepass" | "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" | "openrouter" | "opencode-zen" | "parallel" | "perplexity" | "qianfan" | "qwen-portal" | "synthetic" | "tavily" | "together" | "venice" | "vercel-ai-gateway" | "wafer-pass" | "wafer-serverless" | "vllm" | "xai-oauth" | "xiaomi" | "zenmux" | "zai" | "zhipu-coding-plan";
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
+ export interface OAuthController {
27
+ onAuth?(info: OAuthAuthInfo): void;
28
+ onProgress?(message: string): void;
29
+ onManualCodeInput?(): Promise<string>;
30
+ onPrompt?(prompt: OAuthPrompt): Promise<string>;
31
+ signal?: AbortSignal;
32
+ }
33
+ export interface OAuthLoginCallbacks extends OAuthController {
34
+ onAuth: (info: OAuthAuthInfo) => void;
35
+ onPrompt: (prompt: OAuthPrompt) => Promise<string>;
36
+ }
37
+ export interface OAuthProviderInterface {
38
+ readonly id: OAuthProviderId;
39
+ readonly name: string;
40
+ readonly sourceId?: string;
41
+ login(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials | string>;
42
+ refreshToken?(credentials: OAuthCredentials): Promise<OAuthCredentials>;
43
+ getApiKey?(credentials: OAuthCredentials): string;
44
+ }
@@ -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 an optional token,
14
+ * and returns a stored key value.
15
+ */
16
+ export declare function loginVllm(options: OAuthController): Promise<string>;
@@ -0,0 +1,2 @@
1
+ export declare const loginWaferPass: (options: import("./types").OAuthController) => Promise<string>;
2
+ export declare const loginWaferServerless: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * xAI Grok (SuperGrok Subscription) OAuth flow.
3
+ *
4
+ * Loopback PKCE flow on `127.0.0.1:56121/callback`. One token unlocks Grok-4.x
5
+ * chat, Grok Imagine image generation, and Grok Voice TTS via subsequent
6
+ * commits. Endpoint discovery is hardened against MITM via
7
+ * {@link validateXAIEndpoint}: any non-HTTPS or non-`x.ai`/`*.x.ai` host is
8
+ * rejected on every call site, not just the first.
9
+ */
10
+ import { OAuthCallbackFlow } from "./callback-server";
11
+ import type { OAuthController, OAuthCredentials } from "./types";
12
+ /**
13
+ * Validate an xAI OIDC discovery endpoint against scheme + host.
14
+ *
15
+ * Hermes `_xai_validate_oauth_endpoint` L2997-3035. The discovery response is
16
+ * long-lived and cached in {@link OAuthCredentials}; a single MITM during
17
+ * initial login could substitute a malicious `token_endpoint` that would then
18
+ * receive every future refresh_token. Rejecting non-HTTPS or non-`x.ai` /
19
+ * `*.x.ai` hosts pins the cached endpoint to the xAI auth origin.
20
+ *
21
+ * @throws Error with message `Invalid xAI <field>: <url>` when the URL fails
22
+ * either scheme or host validation.
23
+ */
24
+ export declare function validateXAIEndpoint(url: string, field: string): string;
25
+ /**
26
+ * Check whether a JWT access token is at or past its `exp` claim (with an
27
+ * optional refresh-skew margin).
28
+ *
29
+ * Hermes `_xai_access_token_is_expiring` L2979-2994. Returns `false` for any
30
+ * malformed input — this is a refresh-trigger check, not a validation, so
31
+ * non-JWTs ("no token in cache") must NOT trigger a spurious refresh.
32
+ */
33
+ export declare function isXAIAccessTokenExpiring(jwt: string, skewSeconds?: number): boolean;
34
+ /**
35
+ * xAI Grok OAuth loopback flow (Hermes `_xai_oauth_loopback_login` L5315-5469).
36
+ *
37
+ * Uses a fixed redirect URI so the callback server fails fast instead of
38
+ * falling back to a random port that xAI's redirect_uri allowlist rejects.
39
+ */
40
+ export declare class XAIOAuthFlow extends OAuthCallbackFlow {
41
+ #private;
42
+ constructor(ctrl: OAuthController);
43
+ generateAuthUrl(state: string, redirectUri: string): Promise<{
44
+ url: string;
45
+ instructions?: string;
46
+ }>;
47
+ exchangeToken(code: string, _state: string, redirectUri: string): Promise<OAuthCredentials>;
48
+ }
49
+ /**
50
+ * Login with xAI Grok OAuth (SuperGrok Subscription).
51
+ */
52
+ export declare function loginXAIOAuth(ctrl: OAuthController): Promise<OAuthCredentials>;
53
+ /**
54
+ * Refresh an xAI OAuth access token using a stored refresh_token.
55
+ *
56
+ * Hermes `refresh_xai_oauth_pure` L3087-3160. Re-runs OIDC discovery and
57
+ * re-validates the cached `token_endpoint` on the refresh hot path so a
58
+ * cached-but-poisoned endpoint cannot silently leak a refresh_token.
59
+ */
60
+ export declare function refreshXAIOAuthToken(refreshToken: string): Promise<OAuthCredentials>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Xiaomi MiMo login flow.
3
+ *
4
+ * Xiaomi MiMo provides OpenAI-compatible models via
5
+ * https://api.xiaomimimo.com/v1.
6
+ *
7
+ * This is not OAuth - it's a simple API key flow:
8
+ * 1. Open browser to Xiaomi MiMo API key console
9
+ * 2. User copies their API key
10
+ * 3. User pastes the API key into the CLI
11
+ */
12
+ import type { OAuthController } from "./types";
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>;
@@ -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,18 @@
1
+ /**
2
+ * Zhipu Coding Plan login flow.
3
+ *
4
+ * GLM Coding Plan provides an OpenAI-compatible API on the dedicated coding
5
+ * endpoint. API docs: https://docs.bigmodel.cn/cn/coding-plan/quick-start
6
+ *
7
+ * Simple API key flow:
8
+ * 1. User gets a Coding Plan API key from https://bigmodel.cn/coding-plan/personal/overview
9
+ * 2. User pastes the API key into the CLI
10
+ */
11
+ import type { OAuthController } from "./types";
12
+ /**
13
+ * Login to Zhipu Coding Plan.
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 loginZhipuCodingPlan(options: OAuthController): Promise<string>;
@@ -1,4 +1,4 @@
1
- import type { AssistantMessage } from "../types.ts";
1
+ import type { AssistantMessage } from "../types";
2
2
  /**
3
3
  * Check if an assistant message represents a context overflow error.
4
4
  *
@@ -11,27 +11,26 @@ import type { AssistantMessage } from "../types.ts";
11
11
  * ## Reliability by Provider
12
12
  *
13
13
  * **Reliable detection (returns error with detectable message):**
14
- * - Anthropic: "prompt is too long: X tokens > Y maximum" or "request_too_large"
15
- * - OpenAI (Completions & Responses): "exceeds the context window" or "exceeds the model's maximum context length of X tokens"
14
+ * - Anthropic: "prompt is too long: X tokens > Y maximum"
15
+ * - OpenAI (Completions & Responses): "exceeds the context window"
16
16
  * - Google Gemini: "input token count exceeds the maximum"
17
17
  * - xAI (Grok): "maximum prompt length is X but request contains Y"
18
18
  * - Groq: "reduce the length of the messages"
19
19
  * - Cerebras: 400/413 status code (no body)
20
- * - Mistral: "Prompt contains X tokens ... too large for model with Y maximum context length"
20
+ * - Mistral: 400/413 status code (no body)
21
+ * - HTTP 413 payload/entity-too-large variants
21
22
  * - OpenRouter (all backends): "maximum context length is X tokens"
22
- * - Together AI: "The input (X tokens) is longer than the model's context length (Y tokens)."
23
23
  * - llama.cpp: "exceeds the available context size"
24
24
  * - LM Studio: "greater than the context length"
25
25
  * - Kimi For Coding: "exceeded model token limit: X (requested: Y)"
26
+ * - Anthropic 413: "request_too_large" (request body exceeds size limit)
27
+ * - HTTP 413: "Payload Too Large" / "Request Entity Too Large"
26
28
  *
27
29
  * **Unreliable detection:**
28
30
  * - z.ai: Sometimes accepts overflow silently (detectable via usage.input > contextWindow),
29
31
  * sometimes returns rate limit errors. Pass contextWindow param to detect silent overflow.
30
- * - Xiaomi MiMo: Truncates input to fit contextWindow then returns stopReason "length" with
31
- * output=0. Pass contextWindow param to detect via the "filled context + zero output" signal.
32
- * - Ollama: May truncate input silently for some setups, but may also return explicit
33
- * overflow errors that match the patterns above. Silent truncation still cannot be
34
- * detected here because we do not know the expected token count.
32
+ * - Ollama: Silently truncates input without error. Cannot be detected via this function.
33
+ * The response will have usage.input < expected, but we don't know the expected value.
35
34
  *
36
35
  * ## Custom Providers
37
36
  *
@@ -53,4 +52,3 @@ export declare function isContextOverflow(message: AssistantMessage, contextWind
53
52
  * Get the overflow patterns for testing purposes.
54
53
  */
55
54
  export declare function getOverflowPatterns(): RegExp[];
56
- //# sourceMappingURL=overflow.d.ts.map
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Shared `host:port` parser used by the auth-broker and auth-gateway boot
3
+ * paths. Centralized so the two servers can't drift on what they accept (the
4
+ * gateway used to silently allow empty hostnames; this fixes it).
5
+ */
6
+ export interface ParsedBind {
7
+ hostname: string;
8
+ port: number;
9
+ }
10
+ /**
11
+ * Parse a `host:port` (or bare `port`, which assumes loopback) string.
12
+ *
13
+ * Accepts:
14
+ * - `"4000"` → `127.0.0.1:4000`
15
+ * - `"0.0.0.0:4000"` → as written
16
+ * - `"[::1]:4000"` → as written (brackets retained, Bun handles them)
17
+ *
18
+ * Rejects:
19
+ * - empty input
20
+ * - empty hostname (`":4000"`)
21
+ * - non-integer / out-of-range port
22
+ */
23
+ export declare function parseBind(raw: string): ParsedBind;
@@ -0,0 +1,3 @@
1
+ import type { Api, 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: Pick<StreamOptions, "onResponse"> | undefined, response: Response, model?: Model<Api>, requestId?: string | null, metadata?: Record<string, unknown>): Promise<void>;
@@ -0,0 +1,29 @@
1
+ import type { FetchImpl } from "../types";
2
+ export type RequestDebugHeaders = Headers | Record<string, string | string[] | number | undefined | null> | undefined;
3
+ export interface RequestDebugPayload {
4
+ method: string;
5
+ url: string;
6
+ headers?: RequestDebugHeaders;
7
+ body?: unknown;
8
+ bodyText?: string;
9
+ bodyBase64?: string;
10
+ bodyUnavailable?: string;
11
+ protocol?: string;
12
+ }
13
+ export interface RequestDebugResponseLog {
14
+ write(chunk: Uint8Array | string): void;
15
+ close(): Promise<void>;
16
+ }
17
+ export interface RequestDebugSession {
18
+ readonly id: number;
19
+ readonly requestPath: string;
20
+ readonly responsePath: string;
21
+ openResponseLog(statusLine: string, headers?: RequestDebugHeaders): Promise<RequestDebugResponseLog>;
22
+ wrapResponse(response: Response): Promise<Response>;
23
+ }
24
+ export declare function isRequestDebugEnabled(): boolean;
25
+ export declare function wrapFetchForRequestDebug(fetchImpl: FetchImpl): FetchImpl;
26
+ export declare function withRequestDebugFetch<T extends {
27
+ fetch?: FetchImpl;
28
+ } | undefined>(options: T): T;
29
+ export declare function createRequestDebugSession(payload: RequestDebugPayload): Promise<RequestDebugSession>;
@@ -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,26 @@
1
+ /**
2
+ * GitHub Copilot intermittently rejects preview models (gpt-5.3-codex,
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
+ }): 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-codex-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;