@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,78 @@
1
+ /**
2
+ * Returns the idle timeout used for provider streaming transports.
3
+ *
4
+ * `PI_OPENAI_STREAM_IDLE_TIMEOUT_MS` is accepted as a backward-compatible alias.
5
+ * Set `PI_STREAM_IDLE_TIMEOUT_MS=0` to disable the watchdog.
6
+ *
7
+ * Providers that legitimately stream much slower than the global default can pass
8
+ * `fallbackMs` to widen the floor used when neither env var nor caller option is set.
9
+ * Caller options still take precedence; env overrides still trump the fallback.
10
+ */
11
+ export declare function getStreamIdleTimeoutMs(fallbackMs?: number): number | undefined;
12
+ /**
13
+ * Returns the idle timeout used for OpenAI-family streaming transports.
14
+ *
15
+ * `PI_OPENAI_STREAM_IDLE_TIMEOUT_MS` takes precedence over the generic
16
+ * `PI_STREAM_IDLE_TIMEOUT_MS` because some deployments tune OpenAI-compatible
17
+ * backends separately from Anthropic/Gemini-style transports.
18
+ *
19
+ * Set `PI_OPENAI_STREAM_IDLE_TIMEOUT_MS=0` to disable the watchdog.
20
+ */
21
+ export declare function getOpenAIStreamIdleTimeoutMs(fallbackMs?: number): number | undefined;
22
+ /**
23
+ * Returns the timeout used while waiting for the first stream event.
24
+ * The first token can legitimately take longer than later inter-event gaps,
25
+ * so the default never undershoots the steady-state idle timeout.
26
+ *
27
+ * Set `PI_STREAM_FIRST_EVENT_TIMEOUT_MS=0` to disable the watchdog.
28
+ *
29
+ * Providers whose first response can legitimately take longer (heavy reasoning,
30
+ * slow cold-start proxies) can pass `fallbackMs` to widen the floor used when
31
+ * neither env var nor caller option is set. Caller options still take precedence;
32
+ * env overrides still trump the fallback.
33
+ */
34
+ export declare function getStreamFirstEventTimeoutMs(idleTimeoutMs?: number, fallbackMs?: number): number | undefined;
35
+ /**
36
+ * Returns the first-event timeout used for OpenAI-family streaming transports.
37
+ *
38
+ * Precedence: explicit `PI_OPENAI_STREAM_FIRST_EVENT_TIMEOUT_MS` (including a
39
+ * `"0"` disable) wins outright. Otherwise the resolved idle (caller-supplied
40
+ * `idleTimeoutMs` — which itself already encompasses per-call
41
+ * `streamIdleTimeoutMs` or `PI_OPENAI_STREAM_IDLE_TIMEOUT_MS` resolved
42
+ * upstream) floors the first-event budget so slow local OpenAI-compatible
43
+ * servers are not undercut by a shorter `PI_STREAM_FIRST_EVENT_TIMEOUT_MS`
44
+ * or the global default during prompt processing.
45
+ *
46
+ * Returns `undefined` when an explicit env knob disables the watchdog.
47
+ */
48
+ export declare function getOpenAIStreamFirstEventTimeoutMs(idleTimeoutMs?: number, fallbackMs?: number): number | undefined;
49
+ export interface IdleTimeoutIteratorOptions {
50
+ idleTimeoutMs?: number;
51
+ firstItemTimeoutMs?: number;
52
+ errorMessage: string;
53
+ firstItemErrorMessage?: string;
54
+ onIdle?: () => void;
55
+ onFirstItemTimeout?: () => void;
56
+ /**
57
+ * Optional semantic-progress predicate. Non-progress items are still yielded,
58
+ * but they do not reset the idle deadline. This prevents provider
59
+ * keepalive/no-op events from keeping a stalled tool call alive forever.
60
+ */
61
+ isProgressItem?: (item: unknown) => boolean;
62
+ /**
63
+ * Cancel iteration as soon as this signal aborts. Required for caller-driven
64
+ * cancellation (ESC) when the underlying transport does not surface signal
65
+ * aborts to the iterator (HTTP/2 proxies, native sockets, mocked fetch).
66
+ * Without this, the consumer sleeps on iterator.next() until the idle/first
67
+ * -event watchdog fires — observable as the issue #912 "Working… forever"
68
+ * symptom on the github-copilot provider.
69
+ */
70
+ abortSignal?: AbortSignal;
71
+ }
72
+ /**
73
+ * Yields items from an async iterable while enforcing a maximum idle gap between items.
74
+ *
75
+ * The first item may use a shorter timeout so stuck requests can be aborted and retried
76
+ * before any user-visible content has streamed.
77
+ */
78
+ export declare function iterateWithIdleTimeout<T>(iterable: AsyncIterable<T>, options: IdleTimeoutIteratorOptions): AsyncGenerator<T>;
@@ -0,0 +1,37 @@
1
+ export declare function repairJson(json: string): string;
2
+ export declare function parseJsonWithRepair<T>(json: string): T;
3
+ /**
4
+ * Attempts to parse potentially incomplete JSON during streaming.
5
+ * Always returns a valid object, even if the JSON is incomplete.
6
+ *
7
+ * @param partialJson The partial JSON string from streaming
8
+ * @returns Parsed object or empty object if parsing fails
9
+ */
10
+ export declare function parseStreamingJson<T = Record<string, unknown>>(partialJson: string | undefined): T;
11
+ /**
12
+ * Default minimum byte growth before `parseStreamingJsonThrottled` will
13
+ * re-parse a streaming tool-call argument buffer. Bounds the mid-stream
14
+ * partial-parse cost from quadratic to linear in N.
15
+ */
16
+ export declare const STREAMING_JSON_PARSE_MIN_GROWTH = 256;
17
+ /**
18
+ * Throttled variant of {@link parseStreamingJson} for the per-delta hot path.
19
+ *
20
+ * Tool calls arrive as a long sequence of small deltas — calling
21
+ * `parseStreamingJson(buffer)` on every delta re-parses the entire buffer
22
+ * each time, giving O(N²) work in the total buffer length. Throttling skips
23
+ * the re-parse until at least `minGrowthBytes` of new content has arrived
24
+ * since the last successful parse, bounding mid-stream cost to O(N).
25
+ *
26
+ * Each provider tracks the last parsed length on its tool-call block, so the
27
+ * final `toolcall_end` parse (which providers already perform unconditionally)
28
+ * is the authoritative full parse — the throttle only delays mid-stream UI
29
+ * updates by at most `minGrowthBytes` of accumulated partial content.
30
+ *
31
+ * @returns the parsed object plus the new `parsedLen` to persist; or `null`
32
+ * when the buffer has not grown enough to warrant a re-parse.
33
+ */
34
+ export declare function parseStreamingJsonThrottled<T = Record<string, unknown>>(partialJson: string | undefined, lastParsedLen: number, minGrowthBytes?: number): {
35
+ value: T;
36
+ parsedLen: number;
37
+ } | null;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Alibaba Coding Plan login flow.
3
+ *
4
+ * Alibaba Coding Plan provides OpenAI-compatible models via https://coding-intl.dashscope.aliyuncs.com/v1.
5
+ *
6
+ * This is not OAuth - it's a simple API key flow:
7
+ * 1. Open browser to Alibaba Cloud DashScope 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 Alibaba 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 loginAlibabaCodingPlan(options: OAuthController): Promise<string>;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Anthropic OAuth flow (Claude Pro/Max)
3
+ */
4
+ import { OAuthCallbackFlow } from "./callback-server";
5
+ import type { OAuthController, OAuthCredentials } from "./types";
6
+ export declare class AnthropicOAuthFlow extends OAuthCallbackFlow {
7
+ #private;
8
+ constructor(ctrl: OAuthController);
9
+ generateAuthUrl(state: string, redirectUri: string): Promise<{
10
+ url: string;
11
+ instructions?: string;
12
+ }>;
13
+ exchangeToken(code: string, state: string, redirectUri: string): Promise<OAuthCredentials>;
14
+ }
15
+ /**
16
+ * Login with Anthropic OAuth
17
+ */
18
+ export declare function loginAnthropic(ctrl: OAuthController): Promise<OAuthCredentials>;
19
+ /**
20
+ * Refresh Anthropic OAuth token
21
+ */
22
+ export declare function refreshAnthropicToken(refreshToken: string): Promise<OAuthCredentials>;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Shared factory for API-key-paste "login" flows.
3
+ *
4
+ * Several providers (Cerebras, Synthetic, Moonshot, Together, NanoGPT, ZenMux)
5
+ * don't actually implement OAuth — they just ask the user to paste an API key,
6
+ * optionally validate it, and return the trimmed key.
7
+ */
8
+ import type { OAuthController } from "./types";
9
+ type ChatCompletionsValidation = {
10
+ kind: "chat-completions";
11
+ provider: string;
12
+ baseUrl: string;
13
+ model: string;
14
+ };
15
+ type ModelsEndpointValidation = {
16
+ kind: "models-endpoint";
17
+ provider: string;
18
+ modelsUrl: string;
19
+ };
20
+ export type ApiKeyLoginConfig = {
21
+ /** Display name used in error messages, e.g. "Cerebras", "NanoGPT". */
22
+ providerLabel: string;
23
+ /** URL opened in browser for the user to grab their key. */
24
+ authUrl: string;
25
+ /** Instructions shown with the onAuth callback. */
26
+ instructions: string;
27
+ /** Prompt message shown when asking for the key paste. */
28
+ promptMessage: string;
29
+ /** Placeholder string for the prompt (e.g. "sk-...", "csk-..."). */
30
+ placeholder: string;
31
+ /** Validation strategy, or `null` to skip validation. */
32
+ validation: ChatCompletionsValidation | ModelsEndpointValidation | null;
33
+ };
34
+ export declare function createApiKeyLogin(config: ApiKeyLoginConfig): (options: OAuthController) => Promise<string>;
35
+ export {};
@@ -0,0 +1,27 @@
1
+ type OpenAICompatibleValidationOptions = {
2
+ provider: string;
3
+ apiKey: string;
4
+ baseUrl: string;
5
+ model: string;
6
+ signal?: AbortSignal;
7
+ };
8
+ type ModelListValidationOptions = {
9
+ provider: string;
10
+ apiKey: string;
11
+ modelsUrl: string;
12
+ signal?: AbortSignal;
13
+ };
14
+ /**
15
+ * Validate an API key against an OpenAI-compatible chat completions endpoint.
16
+ *
17
+ * Performs a minimal request to verify credentials and endpoint access.
18
+ */
19
+ export declare function validateOpenAICompatibleApiKey(options: OpenAICompatibleValidationOptions): Promise<void>;
20
+ /**
21
+ * Validate an API key against a provider models endpoint.
22
+ *
23
+ * Useful for providers where access to specific models may vary by plan and
24
+ * should not block key validation.
25
+ */
26
+ export declare function validateApiKeyAgainstModelsEndpoint(options: ModelListValidationOptions): Promise<void>;
27
+ export {};
@@ -0,0 +1,57 @@
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
+ /** Exact redirect URI advertised to the provider; disables port fallback. */
11
+ redirectUri?: string;
12
+ }
13
+ /**
14
+ * Abstract base class for OAuth flows with local callback servers.
15
+ */
16
+ export declare abstract class OAuthCallbackFlow {
17
+ #private;
18
+ ctrl: OAuthController;
19
+ preferredPort: number;
20
+ callbackPath: string;
21
+ callbackHostname: string;
22
+ redirectUri?: string;
23
+ constructor(ctrl: OAuthController, preferredPortOrOptions: number | OAuthCallbackFlowOptions, callbackPath?: string);
24
+ /**
25
+ * Generate provider-specific authorization URL.
26
+ * @param state - CSRF state token
27
+ * @param redirectUri - The actual redirect URI to use (may differ from expected if port fallback occurred)
28
+ * @returns Authorization URL and optional instructions
29
+ */
30
+ abstract generateAuthUrl(state: string, redirectUri: string): Promise<{
31
+ url: string;
32
+ instructions?: string;
33
+ }>;
34
+ /**
35
+ * Exchange authorization code for OAuth tokens.
36
+ * @param code - Authorization code from callback
37
+ * @param state - CSRF state token
38
+ * @param redirectUri - The actual redirect URI used (must match authorization request)
39
+ * @returns OAuth credentials
40
+ */
41
+ abstract exchangeToken(code: string, state: string, redirectUri: string): Promise<OAuthCredentials>;
42
+ /**
43
+ * Generate CSRF state token. Override if provider needs custom state generation.
44
+ */
45
+ generateState(): string;
46
+ /**
47
+ * Execute the OAuth login flow.
48
+ */
49
+ login(): Promise<OAuthCredentials>;
50
+ }
51
+ /**
52
+ * Parse a redirect URL or code string to extract code and state.
53
+ */
54
+ export declare function parseCallbackInput(input: string): {
55
+ code?: string;
56
+ state?: string;
57
+ };
@@ -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,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,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,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,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,38 @@
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
+ /**
36
+ * Get list of OAuth providers.
37
+ */
38
+ 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,21 @@
1
+ /**
2
+ * Kimi Code OAuth flow (device authorization grant)
3
+ */
4
+ import type { OAuthController, OAuthCredentials } from "./types";
5
+ export declare let getKimiCommonHeaders: () => Readonly<{
6
+ "User-Agent": `KimiCLI/${string}`;
7
+ "X-Msh-Platform": "kimi_cli";
8
+ "X-Msh-Version": string;
9
+ "X-Msh-Device-Name": string;
10
+ "X-Msh-Device-Model": string;
11
+ "X-Msh-Os-Version": string;
12
+ "X-Msh-Device-Id": string;
13
+ }>;
14
+ /**
15
+ * Login with Kimi Code OAuth (device code flow).
16
+ */
17
+ export declare function loginKimi(options: OAuthController): Promise<OAuthCredentials>;
18
+ /**
19
+ * Refresh Kimi OAuth token.
20
+ */
21
+ export declare function refreshKimiToken(refreshToken: string): Promise<OAuthCredentials>;
@@ -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,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>;