jeopi-ai 16.2.13

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 (598) hide show
  1. package/CHANGELOG.md +4347 -0
  2. package/README.md +1193 -0
  3. package/dist/types/api-registry.d.ts +30 -0
  4. package/dist/types/auth-broker/client.d.ts +73 -0
  5. package/dist/types/auth-broker/discover.d.ts +35 -0
  6. package/dist/types/auth-broker/index.d.ts +7 -0
  7. package/dist/types/auth-broker/refresher.d.ts +25 -0
  8. package/dist/types/auth-broker/remote-store.d.ts +102 -0
  9. package/dist/types/auth-broker/server.d.ts +43 -0
  10. package/dist/types/auth-broker/snapshot-cache.d.ts +17 -0
  11. package/dist/types/auth-broker/types.d.ts +107 -0
  12. package/dist/types/auth-broker/wire-schemas.d.ts +411 -0
  13. package/dist/types/auth-gateway/http.d.ts +39 -0
  14. package/dist/types/auth-gateway/index.d.ts +3 -0
  15. package/dist/types/auth-gateway/server.d.ts +36 -0
  16. package/dist/types/auth-gateway/types.d.ts +123 -0
  17. package/dist/types/auth-retry.d.ts +124 -0
  18. package/dist/types/auth-storage.d.ts +1026 -0
  19. package/dist/types/dialect/anthropic.d.ts +15 -0
  20. package/dist/types/dialect/catalog.d.ts +3 -0
  21. package/dist/types/dialect/coercion.d.ts +23 -0
  22. package/dist/types/dialect/deepseek.d.ts +14 -0
  23. package/dist/types/dialect/demotion.d.ts +23 -0
  24. package/dist/types/dialect/examples.d.ts +2 -0
  25. package/dist/types/dialect/factory.d.ts +3 -0
  26. package/dist/types/dialect/fenced-thinking.d.ts +53 -0
  27. package/dist/types/dialect/gemini.d.ts +17 -0
  28. package/dist/types/dialect/gemma.d.ts +15 -0
  29. package/dist/types/dialect/glm.d.ts +9 -0
  30. package/dist/types/dialect/harmony.d.ts +8 -0
  31. package/dist/types/dialect/hermes.d.ts +9 -0
  32. package/dist/types/dialect/history.d.ts +3 -0
  33. package/dist/types/dialect/index.d.ts +11 -0
  34. package/dist/types/dialect/inventory.d.ts +12 -0
  35. package/dist/types/dialect/kimi.d.ts +14 -0
  36. package/dist/types/dialect/minimax.d.ts +3 -0
  37. package/dist/types/dialect/owned-stream.d.ts +4 -0
  38. package/dist/types/dialect/qwen3.d.ts +9 -0
  39. package/dist/types/dialect/rendering.d.ts +45 -0
  40. package/dist/types/dialect/thinking.d.ts +6 -0
  41. package/dist/types/dialect/types.d.ts +69 -0
  42. package/dist/types/dialect/xml.d.ts +9 -0
  43. package/dist/types/error/abort.d.ts +14 -0
  44. package/dist/types/error/auth-classify.d.ts +16 -0
  45. package/dist/types/error/auth.d.ts +27 -0
  46. package/dist/types/error/aws.d.ts +23 -0
  47. package/dist/types/error/classes.d.ts +102 -0
  48. package/dist/types/error/finalize.d.ts +39 -0
  49. package/dist/types/error/flags.d.ts +79 -0
  50. package/dist/types/error/format.d.ts +20 -0
  51. package/dist/types/error/gateway.d.ts +20 -0
  52. package/dist/types/error/index.d.ts +13 -0
  53. package/dist/types/error/oauth.d.ts +43 -0
  54. package/dist/types/error/provider.d.ts +42 -0
  55. package/dist/types/error/rate-limit.d.ts +59 -0
  56. package/dist/types/error/retryable.d.ts +27 -0
  57. package/dist/types/error/validation.d.ts +32 -0
  58. package/dist/types/index.d.ts +49 -0
  59. package/dist/types/provider-details.d.ts +24 -0
  60. package/dist/types/providers/__tests__/google-auth.test.d.ts +1 -0
  61. package/dist/types/providers/__tests__/kimi-code-thinking.test.d.ts +1 -0
  62. package/dist/types/providers/__tests__/openai-codex-error.test.d.ts +1 -0
  63. package/dist/types/providers/amazon-bedrock.d.ts +39 -0
  64. package/dist/types/providers/anthropic-client.d.ts +94 -0
  65. package/dist/types/providers/anthropic-messages-server-schema.d.ts +497 -0
  66. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  67. package/dist/types/providers/anthropic-wire.d.ts +318 -0
  68. package/dist/types/providers/anthropic.d.ts +248 -0
  69. package/dist/types/providers/aws-credentials.d.ts +53 -0
  70. package/dist/types/providers/aws-eventstream.d.ts +39 -0
  71. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  72. package/dist/types/providers/azure-openai-responses.d.ts +16 -0
  73. package/dist/types/providers/cursor.d.ts +91 -0
  74. package/dist/types/providers/devin.d.ts +12 -0
  75. package/dist/types/providers/error-message.d.ts +27 -0
  76. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  77. package/dist/types/providers/gitlab-duo-workflow.d.ts +254 -0
  78. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  79. package/dist/types/providers/google-auth.d.ts +32 -0
  80. package/dist/types/providers/google-gemini-cli.d.ts +118 -0
  81. package/dist/types/providers/google-interactions.d.ts +65 -0
  82. package/dist/types/providers/google-shared.d.ts +203 -0
  83. package/dist/types/providers/google-types.d.ts +155 -0
  84. package/dist/types/providers/google-vertex.d.ts +7 -0
  85. package/dist/types/providers/google.d.ts +4 -0
  86. package/dist/types/providers/grammar.d.ts +1 -0
  87. package/dist/types/providers/kimi.d.ts +27 -0
  88. package/dist/types/providers/mock.d.ts +178 -0
  89. package/dist/types/providers/ollama.d.ts +7 -0
  90. package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
  91. package/dist/types/providers/openai-chat-server-schema.d.ts +695 -0
  92. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  93. package/dist/types/providers/openai-chat-wire.d.ts +644 -0
  94. package/dist/types/providers/openai-codex/request-transformer.d.ts +54 -0
  95. package/dist/types/providers/openai-codex/response-handler.d.ts +26 -0
  96. package/dist/types/providers/openai-codex-responses.d.ts +108 -0
  97. package/dist/types/providers/openai-completions.d.ts +45 -0
  98. package/dist/types/providers/openai-reasoning-fallback.d.ts +25 -0
  99. package/dist/types/providers/openai-responses-server-schema.d.ts +349 -0
  100. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  101. package/dist/types/providers/openai-responses-wire.d.ts +6065 -0
  102. package/dist/types/providers/openai-responses.d.ts +126 -0
  103. package/dist/types/providers/openai-shared.d.ts +506 -0
  104. package/dist/types/providers/pi-native-client.d.ts +13 -0
  105. package/dist/types/providers/pi-native-server.d.ts +69 -0
  106. package/dist/types/providers/register-builtins.d.ts +32 -0
  107. package/dist/types/providers/synthetic.d.ts +26 -0
  108. package/dist/types/providers/transform-messages.d.ts +11 -0
  109. package/dist/types/providers/vision-guard.d.ts +20 -0
  110. package/dist/types/registry/aimlapi.d.ts +4 -0
  111. package/dist/types/registry/alibaba-coding-plan.d.ts +8 -0
  112. package/dist/types/registry/amazon-bedrock.d.ts +5 -0
  113. package/dist/types/registry/anthropic.d.ts +10 -0
  114. package/dist/types/registry/api-key-login.d.ts +42 -0
  115. package/dist/types/registry/api-key-validation.d.ts +43 -0
  116. package/dist/types/registry/azure.d.ts +4 -0
  117. package/dist/types/registry/cerebras.d.ts +7 -0
  118. package/dist/types/registry/cloudflare-ai-gateway.d.ts +13 -0
  119. package/dist/types/registry/coreweave.d.ts +7 -0
  120. package/dist/types/registry/cursor.d.ts +7 -0
  121. package/dist/types/registry/deepseek.d.ts +8 -0
  122. package/dist/types/registry/derived.d.ts +5 -0
  123. package/dist/types/registry/devin.d.ts +8 -0
  124. package/dist/types/registry/firepass.d.ts +16 -0
  125. package/dist/types/registry/fireworks.d.ts +7 -0
  126. package/dist/types/registry/github-copilot.d.ts +7 -0
  127. package/dist/types/registry/gitlab-duo-workflow.d.ts +10 -0
  128. package/dist/types/registry/gitlab-duo.d.ts +9 -0
  129. package/dist/types/registry/google-antigravity.d.ts +9 -0
  130. package/dist/types/registry/google-gemini-cli.d.ts +9 -0
  131. package/dist/types/registry/google-vertex.d.ts +5 -0
  132. package/dist/types/registry/google.d.ts +4 -0
  133. package/dist/types/registry/groq.d.ts +4 -0
  134. package/dist/types/registry/huggingface.d.ts +7 -0
  135. package/dist/types/registry/index.d.ts +4 -0
  136. package/dist/types/registry/kagi.d.ts +14 -0
  137. package/dist/types/registry/kilo.d.ts +7 -0
  138. package/dist/types/registry/kimi-code.d.ts +7 -0
  139. package/dist/types/registry/litellm.d.ts +13 -0
  140. package/dist/types/registry/llama-cpp.d.ts +8 -0
  141. package/dist/types/registry/lm-studio.d.ts +8 -0
  142. package/dist/types/registry/minimax-code-cn.d.ts +6 -0
  143. package/dist/types/registry/minimax-code.d.ts +6 -0
  144. package/dist/types/registry/minimax.d.ts +4 -0
  145. package/dist/types/registry/mistral.d.ts +4 -0
  146. package/dist/types/registry/moonshot.d.ts +7 -0
  147. package/dist/types/registry/nanogpt.d.ts +7 -0
  148. package/dist/types/registry/nvidia.d.ts +7 -0
  149. package/dist/types/registry/oauth/__tests__/xai-oauth.test.d.ts +1 -0
  150. package/dist/types/registry/oauth/anthropic.d.ts +23 -0
  151. package/dist/types/registry/oauth/callback-server.d.ts +72 -0
  152. package/dist/types/registry/oauth/cursor.d.ts +15 -0
  153. package/dist/types/registry/oauth/devin.d.ts +5 -0
  154. package/dist/types/registry/oauth/github-copilot.d.ts +30 -0
  155. package/dist/types/registry/oauth/gitlab-duo-workflow.d.ts +6 -0
  156. package/dist/types/registry/oauth/gitlab-duo.d.ts +3 -0
  157. package/dist/types/registry/oauth/google-antigravity.d.ts +11 -0
  158. package/dist/types/registry/oauth/google-gemini-cli.d.ts +10 -0
  159. package/dist/types/registry/oauth/google-oauth-shared.d.ts +22 -0
  160. package/dist/types/registry/oauth/index.d.ts +64 -0
  161. package/dist/types/registry/oauth/kimi.d.ts +21 -0
  162. package/dist/types/registry/oauth/minimax-code.d.ts +27 -0
  163. package/dist/types/registry/oauth/openai-codex.d.ts +33 -0
  164. package/dist/types/registry/oauth/opencode.d.ts +18 -0
  165. package/dist/types/registry/oauth/perplexity.d.ts +9 -0
  166. package/dist/types/registry/oauth/pkce.d.ts +8 -0
  167. package/dist/types/registry/oauth/types.d.ts +56 -0
  168. package/dist/types/registry/oauth/wafer.d.ts +1 -0
  169. package/dist/types/registry/oauth/xai-oauth.d.ts +52 -0
  170. package/dist/types/registry/oauth/xiaomi.d.ts +25 -0
  171. package/dist/types/registry/ollama-cloud.d.ts +7 -0
  172. package/dist/types/registry/ollama.d.ts +12 -0
  173. package/dist/types/registry/openai-codex-device.d.ts +8 -0
  174. package/dist/types/registry/openai-codex.d.ts +9 -0
  175. package/dist/types/registry/openai.d.ts +4 -0
  176. package/dist/types/registry/opencode-go.d.ts +6 -0
  177. package/dist/types/registry/opencode-zen.d.ts +6 -0
  178. package/dist/types/registry/openrouter.d.ts +13 -0
  179. package/dist/types/registry/parallel.d.ts +14 -0
  180. package/dist/types/registry/perplexity.d.ts +7 -0
  181. package/dist/types/registry/qianfan.d.ts +7 -0
  182. package/dist/types/registry/qwen-portal.d.ts +7 -0
  183. package/dist/types/registry/registry.d.ts +303 -0
  184. package/dist/types/registry/sakana.d.ts +7 -0
  185. package/dist/types/registry/synthetic.d.ts +6 -0
  186. package/dist/types/registry/tavily.d.ts +14 -0
  187. package/dist/types/registry/together.d.ts +6 -0
  188. package/dist/types/registry/types.d.ts +51 -0
  189. package/dist/types/registry/umans.d.ts +7 -0
  190. package/dist/types/registry/venice.d.ts +13 -0
  191. package/dist/types/registry/vercel-ai-gateway.d.ts +7 -0
  192. package/dist/types/registry/vllm.d.ts +7 -0
  193. package/dist/types/registry/wafer-serverless.d.ts +6 -0
  194. package/dist/types/registry/xai-oauth.d.ts +7 -0
  195. package/dist/types/registry/xai.d.ts +4 -0
  196. package/dist/types/registry/xiaomi-token-plan-ams.d.ts +6 -0
  197. package/dist/types/registry/xiaomi-token-plan-cn.d.ts +6 -0
  198. package/dist/types/registry/xiaomi-token-plan-sgp.d.ts +6 -0
  199. package/dist/types/registry/xiaomi.d.ts +6 -0
  200. package/dist/types/registry/zai.d.ts +7 -0
  201. package/dist/types/registry/zenmux.d.ts +7 -0
  202. package/dist/types/registry/zhipu-coding-plan.d.ts +7 -0
  203. package/dist/types/stream.d.ts +44 -0
  204. package/dist/types/types.d.ts +715 -0
  205. package/dist/types/usage/claude.d.ts +4 -0
  206. package/dist/types/usage/gemini.d.ts +2 -0
  207. package/dist/types/usage/github-copilot.d.ts +7 -0
  208. package/dist/types/usage/google-antigravity.d.ts +15 -0
  209. package/dist/types/usage/kimi.d.ts +2 -0
  210. package/dist/types/usage/minimax-code.d.ts +2 -0
  211. package/dist/types/usage/ollama.d.ts +5 -0
  212. package/dist/types/usage/openai-codex-base-url.d.ts +18 -0
  213. package/dist/types/usage/openai-codex-reset.d.ts +79 -0
  214. package/dist/types/usage/openai-codex.d.ts +3 -0
  215. package/dist/types/usage/opencode-go.d.ts +2 -0
  216. package/dist/types/usage/shared.d.ts +1 -0
  217. package/dist/types/usage/zai.d.ts +2 -0
  218. package/dist/types/usage.d.ts +346 -0
  219. package/dist/types/utils/abort.d.ts +25 -0
  220. package/dist/types/utils/anthropic-auth.d.ts +35 -0
  221. package/dist/types/utils/block-symbols.d.ts +20 -0
  222. package/dist/types/utils/deterministic-id.d.ts +16 -0
  223. package/dist/types/utils/empty-completion-retry.d.ts +21 -0
  224. package/dist/types/utils/event-stream.d.ts +30 -0
  225. package/dist/types/utils/foundry.d.ts +1 -0
  226. package/dist/types/utils/google-validation.d.ts +2 -0
  227. package/dist/types/utils/harmony-leak.d.ts +118 -0
  228. package/dist/types/utils/http-inspector.d.ts +30 -0
  229. package/dist/types/utils/idle-iterator.d.ts +137 -0
  230. package/dist/types/utils/leaked-thinking-stream.d.ts +29 -0
  231. package/dist/types/utils/openai-http.d.ts +54 -0
  232. package/dist/types/utils/openrouter-headers.d.ts +1 -0
  233. package/dist/types/utils/parse-bind.d.ts +23 -0
  234. package/dist/types/utils/provider-response.d.ts +3 -0
  235. package/dist/types/utils/proxy.d.ts +29 -0
  236. package/dist/types/utils/request-debug.d.ts +29 -0
  237. package/dist/types/utils/retry-after.d.ts +4 -0
  238. package/dist/types/utils/retry.d.ts +14 -0
  239. package/dist/types/utils/schema/adapt.d.ts +24 -0
  240. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  241. package/dist/types/utils/schema/dereference.d.ts +11 -0
  242. package/dist/types/utils/schema/draft.d.ts +10 -0
  243. package/dist/types/utils/schema/equality.d.ts +4 -0
  244. package/dist/types/utils/schema/fields.d.ts +54 -0
  245. package/dist/types/utils/schema/index.d.ts +15 -0
  246. package/dist/types/utils/schema/json-schema-validator.d.ts +20 -0
  247. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  248. package/dist/types/utils/schema/normalize.d.ts +124 -0
  249. package/dist/types/utils/schema/spill.d.ts +8 -0
  250. package/dist/types/utils/schema/stamps.d.ts +17 -0
  251. package/dist/types/utils/schema/strict-tool-validation.d.ts +16 -0
  252. package/dist/types/utils/schema/types.d.ts +4 -0
  253. package/dist/types/utils/schema/typescript.d.ts +18 -0
  254. package/dist/types/utils/schema/wire.d.ts +92 -0
  255. package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
  256. package/dist/types/utils/sdk-stream-timeout.d.ts +33 -0
  257. package/dist/types/utils/sse-debug.d.ts +5 -0
  258. package/dist/types/utils/stream-markup-healing.d.ts +87 -0
  259. package/dist/types/utils/thinking-loop.d.ts +102 -0
  260. package/dist/types/utils/tool-call-loop-guard.d.ts +26 -0
  261. package/dist/types/utils/tool-choice.d.ts +50 -0
  262. package/dist/types/utils/validation.d.ts +42 -0
  263. package/dist/types/utils.d.ts +24 -0
  264. package/package.json +139 -0
  265. package/src/api-registry.ts +109 -0
  266. package/src/auth-broker/client.ts +359 -0
  267. package/src/auth-broker/discover.ts +222 -0
  268. package/src/auth-broker/index.ts +7 -0
  269. package/src/auth-broker/refresher.ts +117 -0
  270. package/src/auth-broker/remote-store.ts +657 -0
  271. package/src/auth-broker/server.ts +646 -0
  272. package/src/auth-broker/snapshot-cache.ts +191 -0
  273. package/src/auth-broker/types.ts +130 -0
  274. package/src/auth-broker/wire-schemas.ts +249 -0
  275. package/src/auth-gateway/http.ts +194 -0
  276. package/src/auth-gateway/index.ts +3 -0
  277. package/src/auth-gateway/server.ts +802 -0
  278. package/src/auth-gateway/types.ts +151 -0
  279. package/src/auth-retry.ts +250 -0
  280. package/src/auth-storage.ts +5576 -0
  281. package/src/dialect/anthropic.md +31 -0
  282. package/src/dialect/anthropic.ts +608 -0
  283. package/src/dialect/catalog.ts +29 -0
  284. package/src/dialect/coercion.ts +136 -0
  285. package/src/dialect/deepseek.md +24 -0
  286. package/src/dialect/deepseek.ts +609 -0
  287. package/src/dialect/demotion.ts +36 -0
  288. package/src/dialect/examples.ts +33 -0
  289. package/src/dialect/factory.ts +34 -0
  290. package/src/dialect/fenced-thinking.ts +184 -0
  291. package/src/dialect/gemini.md +44 -0
  292. package/src/dialect/gemini.ts +597 -0
  293. package/src/dialect/gemma.md +33 -0
  294. package/src/dialect/gemma.ts +387 -0
  295. package/src/dialect/glm.md +32 -0
  296. package/src/dialect/glm.ts +456 -0
  297. package/src/dialect/harmony.md +31 -0
  298. package/src/dialect/harmony.ts +346 -0
  299. package/src/dialect/hermes.md +25 -0
  300. package/src/dialect/hermes.ts +206 -0
  301. package/src/dialect/history.ts +81 -0
  302. package/src/dialect/index.ts +15 -0
  303. package/src/dialect/inventory.ts +73 -0
  304. package/src/dialect/kimi.md +24 -0
  305. package/src/dialect/kimi.ts +340 -0
  306. package/src/dialect/minimax.md +31 -0
  307. package/src/dialect/minimax.ts +95 -0
  308. package/src/dialect/owned-stream.ts +470 -0
  309. package/src/dialect/prompt-template.md +12 -0
  310. package/src/dialect/qwen3.md +28 -0
  311. package/src/dialect/qwen3.ts +240 -0
  312. package/src/dialect/rendering.ts +249 -0
  313. package/src/dialect/thinking.ts +122 -0
  314. package/src/dialect/types.ts +57 -0
  315. package/src/dialect/xml.md +22 -0
  316. package/src/dialect/xml.ts +90 -0
  317. package/src/error/abort.ts +18 -0
  318. package/src/error/auth-classify.ts +30 -0
  319. package/src/error/auth.ts +48 -0
  320. package/src/error/aws.ts +31 -0
  321. package/src/error/classes.ts +186 -0
  322. package/src/error/finalize.ts +69 -0
  323. package/src/error/flags.ts +506 -0
  324. package/src/error/format.ts +45 -0
  325. package/src/error/gateway.ts +96 -0
  326. package/src/error/index.ts +13 -0
  327. package/src/error/oauth.ts +58 -0
  328. package/src/error/provider.ts +62 -0
  329. package/src/error/rate-limit.ts +161 -0
  330. package/src/error/retryable.ts +70 -0
  331. package/src/error/validation.ts +44 -0
  332. package/src/index.ts +49 -0
  333. package/src/provider-details.ts +90 -0
  334. package/src/providers/__tests__/google-auth.test.ts +144 -0
  335. package/src/providers/__tests__/kimi-code-thinking.test.ts +112 -0
  336. package/src/providers/__tests__/openai-codex-error.test.ts +84 -0
  337. package/src/providers/amazon-bedrock.ts +1042 -0
  338. package/src/providers/anthropic-client.ts +295 -0
  339. package/src/providers/anthropic-messages-server-schema.ts +252 -0
  340. package/src/providers/anthropic-messages-server.ts +756 -0
  341. package/src/providers/anthropic-wire.ts +318 -0
  342. package/src/providers/anthropic.ts +4078 -0
  343. package/src/providers/aws-credentials.ts +586 -0
  344. package/src/providers/aws-eventstream.ts +181 -0
  345. package/src/providers/aws-sigv4.ts +218 -0
  346. package/src/providers/azure-openai-responses.ts +382 -0
  347. package/src/providers/cursor/proto/agent.proto +3526 -0
  348. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  349. package/src/providers/cursor/proto/buf.yaml +17 -0
  350. package/src/providers/cursor.ts +2695 -0
  351. package/src/providers/devin/proto/buf/validate/validate.proto +468 -0
  352. package/src/providers/devin/proto/buf.gen.yaml +33 -0
  353. package/src/providers/devin/proto/buf.yaml +17 -0
  354. package/src/providers/devin/proto/cel/expr/checked.proto +103 -0
  355. package/src/providers/devin/proto/cel/expr/eval.proto +38 -0
  356. package/src/providers/devin/proto/cel/expr/explain.proto +15 -0
  357. package/src/providers/devin/proto/cel/expr/syntax.proto +113 -0
  358. package/src/providers/devin/proto/cel/expr/value.proto +41 -0
  359. package/src/providers/devin/proto/connectext/grpc/status/v1/status.proto +11 -0
  360. package/src/providers/devin/proto/errorspb/errors.proto +56 -0
  361. package/src/providers/devin/proto/errorspb/hintdetail.proto +7 -0
  362. package/src/providers/devin/proto/errorspb/markers.proto +10 -0
  363. package/src/providers/devin/proto/errorspb/tags.proto +12 -0
  364. package/src/providers/devin/proto/errorspb/testing.proto +6 -0
  365. package/src/providers/devin/proto/exa/analytics_pb/analytics.proto +188 -0
  366. package/src/providers/devin/proto/exa/api_server_pb/api_server.proto +2461 -0
  367. package/src/providers/devin/proto/exa/auth_pb/auth.proto +19 -0
  368. package/src/providers/devin/proto/exa/auto_cascade_common_pb/auto_cascade_common.proto +79 -0
  369. package/src/providers/devin/proto/exa/browser_preview_pb/browser_preview.proto +32 -0
  370. package/src/providers/devin/proto/exa/bug_checker_pb/bug_checker.proto +22 -0
  371. package/src/providers/devin/proto/exa/cascade_plugins_pb/cascade_plugins.proto +262 -0
  372. package/src/providers/devin/proto/exa/chat_client_server_pb/chat_client_server.proto +57 -0
  373. package/src/providers/devin/proto/exa/chat_pb/chat.proto +449 -0
  374. package/src/providers/devin/proto/exa/code_edit/code_edit_pb/code_edit.proto +186 -0
  375. package/src/providers/devin/proto/exa/codeium_common_pb/codeium_common.proto +4157 -0
  376. package/src/providers/devin/proto/exa/context_module_pb/context_module.proto +175 -0
  377. package/src/providers/devin/proto/exa/cortex_pb/cortex.proto +3268 -0
  378. package/src/providers/devin/proto/exa/dev_pb/dev.proto +26 -0
  379. package/src/providers/devin/proto/exa/diff_action_pb/diff_action.proto +75 -0
  380. package/src/providers/devin/proto/exa/eval/pr_eval/datasets_pb/datasets.proto +103 -0
  381. package/src/providers/devin/proto/exa/eval_pb/eval.proto +1315 -0
  382. package/src/providers/devin/proto/exa/extension_server_pb/extension_server.proto +556 -0
  383. package/src/providers/devin/proto/exa/file_system_provider_pb/file_system_provider.proto +75 -0
  384. package/src/providers/devin/proto/exa/index_pb/index.proto +461 -0
  385. package/src/providers/devin/proto/exa/knowledge_base_pb/knowledge_base.proto +144 -0
  386. package/src/providers/devin/proto/exa/language_server_pb/language_server.proto +2385 -0
  387. package/src/providers/devin/proto/exa/model_management_pb/model_management.proto +186 -0
  388. package/src/providers/devin/proto/exa/opensearch_clients_pb/opensearch_clients.proto +503 -0
  389. package/src/providers/devin/proto/exa/product_analytics_pb/product_analytics.proto +37 -0
  390. package/src/providers/devin/proto/exa/prompt_pb/prompt.proto +92 -0
  391. package/src/providers/devin/proto/exa/reactive_component_pb/reactive_component.proto +96 -0
  392. package/src/providers/devin/proto/exa/seat_management_pb/seat_management.proto +2680 -0
  393. package/src/providers/devin/proto/exa/tokenizer_pb/tokenizer.proto +37 -0
  394. package/src/providers/devin/proto/exa/trainer_pb/config.proto +647 -0
  395. package/src/providers/devin/proto/exa/tree_sitter/language_data_pb/language_data.proto +14 -0
  396. package/src/providers/devin/proto/exa/trust_pb/trust.proto +157 -0
  397. package/src/providers/devin/proto/exa/user_analytics_pb/user_analytics.proto +519 -0
  398. package/src/providers/devin/proto/google.golang.org/appengine/internal/base/api_base.proto +28 -0
  399. package/src/providers/devin/proto/google.golang.org/appengine/internal/datastore/datastore_v3.proto +484 -0
  400. package/src/providers/devin/proto/google.golang.org/appengine/internal/log/log_service.proto +136 -0
  401. package/src/providers/devin/proto/google.golang.org/appengine/internal/remote_api/remote_api.proto +42 -0
  402. package/src/providers/devin/proto/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +61 -0
  403. package/src/providers/devin/proto/grpc/binlog/v1/binarylog.proto +84 -0
  404. package/src/providers/devin/proto/io/prometheus/client/metrics.proto +98 -0
  405. package/src/providers/devin.ts +577 -0
  406. package/src/providers/error-message.ts +21 -0
  407. package/src/providers/github-copilot-headers.ts +141 -0
  408. package/src/providers/gitlab-duo-workflow-chatml-note.md +1 -0
  409. package/src/providers/gitlab-duo-workflow.ts +3058 -0
  410. package/src/providers/gitlab-duo.ts +395 -0
  411. package/src/providers/google-auth.ts +350 -0
  412. package/src/providers/google-gemini-cli.ts +1362 -0
  413. package/src/providers/google-interactions.ts +753 -0
  414. package/src/providers/google-shared.ts +1103 -0
  415. package/src/providers/google-types.ts +180 -0
  416. package/src/providers/google-vertex.ts +183 -0
  417. package/src/providers/google.ts +87 -0
  418. package/src/providers/grammar.ts +70 -0
  419. package/src/providers/kimi.ts +52 -0
  420. package/src/providers/mock.ts +507 -0
  421. package/src/providers/ollama.ts +773 -0
  422. package/src/providers/openai-anthropic-shim.ts +152 -0
  423. package/src/providers/openai-chat-server-schema.ts +242 -0
  424. package/src/providers/openai-chat-server.ts +715 -0
  425. package/src/providers/openai-chat-wire.ts +847 -0
  426. package/src/providers/openai-codex/request-transformer.ts +295 -0
  427. package/src/providers/openai-codex/response-handler.ts +102 -0
  428. package/src/providers/openai-codex-responses.ts +3468 -0
  429. package/src/providers/openai-completions.ts +2173 -0
  430. package/src/providers/openai-reasoning-fallback.ts +269 -0
  431. package/src/providers/openai-responses-reasoning-suppression.md +1 -0
  432. package/src/providers/openai-responses-server-schema.ts +282 -0
  433. package/src/providers/openai-responses-server.ts +1280 -0
  434. package/src/providers/openai-responses-wire.ts +6391 -0
  435. package/src/providers/openai-responses.ts +1022 -0
  436. package/src/providers/openai-shared.ts +2648 -0
  437. package/src/providers/pi-native-client.ts +266 -0
  438. package/src/providers/pi-native-server.ts +242 -0
  439. package/src/providers/register-builtins.ts +475 -0
  440. package/src/providers/synthetic.ts +50 -0
  441. package/src/providers/transform-messages.ts +787 -0
  442. package/src/providers/vision-guard.ts +54 -0
  443. package/src/registry/aimlapi.ts +6 -0
  444. package/src/registry/alibaba-coding-plan.ts +95 -0
  445. package/src/registry/amazon-bedrock.ts +22 -0
  446. package/src/registry/anthropic.ts +26 -0
  447. package/src/registry/api-key-login.ts +112 -0
  448. package/src/registry/api-key-validation.ts +161 -0
  449. package/src/registry/azure.ts +6 -0
  450. package/src/registry/cerebras.ts +23 -0
  451. package/src/registry/cloudflare-ai-gateway.ts +45 -0
  452. package/src/registry/coreweave.ts +40 -0
  453. package/src/registry/cursor.ts +20 -0
  454. package/src/registry/deepseek.ts +46 -0
  455. package/src/registry/derived.ts +9 -0
  456. package/src/registry/devin.ts +15 -0
  457. package/src/registry/firepass.ts +32 -0
  458. package/src/registry/fireworks.ts +28 -0
  459. package/src/registry/github-copilot.ts +22 -0
  460. package/src/registry/gitlab-duo-workflow.ts +20 -0
  461. package/src/registry/gitlab-duo.ts +19 -0
  462. package/src/registry/google-antigravity.ts +22 -0
  463. package/src/registry/google-gemini-cli.ts +22 -0
  464. package/src/registry/google-vertex.ts +38 -0
  465. package/src/registry/google.ts +6 -0
  466. package/src/registry/groq.ts +6 -0
  467. package/src/registry/huggingface.ts +29 -0
  468. package/src/registry/index.ts +4 -0
  469. package/src/registry/kagi.ts +46 -0
  470. package/src/registry/kilo.ts +114 -0
  471. package/src/registry/kimi-code.ts +17 -0
  472. package/src/registry/litellm.ts +45 -0
  473. package/src/registry/llama-cpp.ts +35 -0
  474. package/src/registry/lm-studio.ts +31 -0
  475. package/src/registry/minimax-code-cn.ts +12 -0
  476. package/src/registry/minimax-code.ts +12 -0
  477. package/src/registry/minimax.ts +6 -0
  478. package/src/registry/mistral.ts +6 -0
  479. package/src/registry/moonshot.ts +22 -0
  480. package/src/registry/nanogpt.ts +22 -0
  481. package/src/registry/nvidia.ts +61 -0
  482. package/src/registry/oauth/__tests__/xai-oauth.test.ts +104 -0
  483. package/src/registry/oauth/anthropic.ts +311 -0
  484. package/src/registry/oauth/callback-server.ts +315 -0
  485. package/src/registry/oauth/cursor.ts +171 -0
  486. package/src/registry/oauth/devin.ts +124 -0
  487. package/src/registry/oauth/github-copilot.ts +369 -0
  488. package/src/registry/oauth/gitlab-duo-workflow.ts +146 -0
  489. package/src/registry/oauth/gitlab-duo.ts +222 -0
  490. package/src/registry/oauth/google-antigravity.ts +209 -0
  491. package/src/registry/oauth/google-gemini-cli.ts +273 -0
  492. package/src/registry/oauth/google-oauth-shared.ts +125 -0
  493. package/src/registry/oauth/index.ts +269 -0
  494. package/src/registry/oauth/kimi.ts +289 -0
  495. package/src/registry/oauth/minimax-code.ts +53 -0
  496. package/src/registry/oauth/oauth.html +311 -0
  497. package/src/registry/oauth/openai-codex.ts +364 -0
  498. package/src/registry/oauth/opencode.ts +50 -0
  499. package/src/registry/oauth/perplexity.ts +228 -0
  500. package/src/registry/oauth/pkce.ts +18 -0
  501. package/src/registry/oauth/types.ts +65 -0
  502. package/src/registry/oauth/wafer.ts +24 -0
  503. package/src/registry/oauth/xai-oauth.ts +394 -0
  504. package/src/registry/oauth/xiaomi.ts +211 -0
  505. package/src/registry/ollama-cloud.ts +36 -0
  506. package/src/registry/ollama.ts +43 -0
  507. package/src/registry/openai-codex-device.ts +18 -0
  508. package/src/registry/openai-codex.ts +19 -0
  509. package/src/registry/openai.ts +6 -0
  510. package/src/registry/opencode-go.ts +12 -0
  511. package/src/registry/opencode-zen.ts +12 -0
  512. package/src/registry/openrouter.ts +28 -0
  513. package/src/registry/parallel.ts +45 -0
  514. package/src/registry/perplexity.ts +13 -0
  515. package/src/registry/qianfan.ts +27 -0
  516. package/src/registry/qwen-portal.ts +50 -0
  517. package/src/registry/registry.ts +161 -0
  518. package/src/registry/sakana.ts +22 -0
  519. package/src/registry/synthetic.ts +21 -0
  520. package/src/registry/tavily.ts +45 -0
  521. package/src/registry/together.ts +22 -0
  522. package/src/registry/types.ts +56 -0
  523. package/src/registry/umans.ts +23 -0
  524. package/src/registry/venice.ts +33 -0
  525. package/src/registry/vercel-ai-gateway.ts +38 -0
  526. package/src/registry/vllm.ts +34 -0
  527. package/src/registry/wafer-serverless.ts +12 -0
  528. package/src/registry/xai-oauth.ts +17 -0
  529. package/src/registry/xai.ts +6 -0
  530. package/src/registry/xiaomi-token-plan-ams.ts +12 -0
  531. package/src/registry/xiaomi-token-plan-cn.ts +12 -0
  532. package/src/registry/xiaomi-token-plan-sgp.ts +12 -0
  533. package/src/registry/xiaomi.ts +12 -0
  534. package/src/registry/zai.ts +27 -0
  535. package/src/registry/zenmux.ts +22 -0
  536. package/src/registry/zhipu-coding-plan.ts +27 -0
  537. package/src/stream.ts +1778 -0
  538. package/src/types.ts +856 -0
  539. package/src/usage/claude.ts +485 -0
  540. package/src/usage/gemini.ts +258 -0
  541. package/src/usage/github-copilot.ts +424 -0
  542. package/src/usage/google-antigravity.ts +497 -0
  543. package/src/usage/kimi.ts +271 -0
  544. package/src/usage/minimax-code.ts +30 -0
  545. package/src/usage/ollama.ts +41 -0
  546. package/src/usage/openai-codex-base-url.ts +35 -0
  547. package/src/usage/openai-codex-reset.ts +174 -0
  548. package/src/usage/openai-codex.ts +535 -0
  549. package/src/usage/opencode-go.ts +89 -0
  550. package/src/usage/shared.ts +10 -0
  551. package/src/usage/zai.ts +321 -0
  552. package/src/usage.ts +333 -0
  553. package/src/utils/abort.ts +67 -0
  554. package/src/utils/anthropic-auth.ts +93 -0
  555. package/src/utils/block-symbols.ts +32 -0
  556. package/src/utils/deterministic-id.ts +20 -0
  557. package/src/utils/empty-completion-retry.ts +159 -0
  558. package/src/utils/event-stream.ts +171 -0
  559. package/src/utils/foundry.ts +8 -0
  560. package/src/utils/google-validation.ts +25 -0
  561. package/src/utils/harmony-leak.ts +456 -0
  562. package/src/utils/http-inspector.ts +168 -0
  563. package/src/utils/idle-iterator.ts +473 -0
  564. package/src/utils/leaked-thinking-stream.ts +294 -0
  565. package/src/utils/openai-http.ts +122 -0
  566. package/src/utils/openrouter-headers.ts +12 -0
  567. package/src/utils/parse-bind.ts +56 -0
  568. package/src/utils/provider-response.ts +30 -0
  569. package/src/utils/proxy.ts +240 -0
  570. package/src/utils/request-debug.ts +351 -0
  571. package/src/utils/retry-after.ts +110 -0
  572. package/src/utils/retry.ts +59 -0
  573. package/src/utils/schema/CONSTRAINTS.md +166 -0
  574. package/src/utils/schema/adapt.ts +36 -0
  575. package/src/utils/schema/compatibility.ts +435 -0
  576. package/src/utils/schema/dereference.ts +98 -0
  577. package/src/utils/schema/draft.ts +341 -0
  578. package/src/utils/schema/equality.ts +97 -0
  579. package/src/utils/schema/fields.ts +207 -0
  580. package/src/utils/schema/index.ts +15 -0
  581. package/src/utils/schema/json-schema-validator.ts +595 -0
  582. package/src/utils/schema/meta-validator.ts +167 -0
  583. package/src/utils/schema/normalize.ts +1901 -0
  584. package/src/utils/schema/spill.ts +43 -0
  585. package/src/utils/schema/stamps.ts +109 -0
  586. package/src/utils/schema/strict-tool-validation.ts +117 -0
  587. package/src/utils/schema/types.ts +10 -0
  588. package/src/utils/schema/typescript.ts +198 -0
  589. package/src/utils/schema/wire.ts +789 -0
  590. package/src/utils/schema/zod-decontaminate.ts +331 -0
  591. package/src/utils/sdk-stream-timeout.ts +43 -0
  592. package/src/utils/sse-debug.ts +18 -0
  593. package/src/utils/stream-markup-healing.ts +247 -0
  594. package/src/utils/thinking-loop.ts +552 -0
  595. package/src/utils/tool-call-loop-guard.ts +107 -0
  596. package/src/utils/tool-choice.ts +99 -0
  597. package/src/utils/validation.ts +1507 -0
  598. package/src/utils.ts +171 -0
@@ -0,0 +1,72 @@
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
+ * Whether the flow may bind to a random port when {@link preferredPort} is
14
+ * unavailable. Defaults to `true` so historical AI-provider flows (which
15
+ * pick uncommon ports and tolerate any loopback callback) keep working.
16
+ *
17
+ * Set to `false` for providers that validate the redirect URI against a
18
+ * registered callback — silently advertising a random-port URI would be
19
+ * rejected by the authorization server, leaving the browser on an opaque
20
+ * 500 page and the local callback waiting until the 5-minute timeout fires.
21
+ * With fallback disabled, {@link OAuthCallbackFlow.login} throws a
22
+ * {@link AIError.ConfigurationError} immediately so the caller can surface
23
+ * an actionable message before opening the browser.
24
+ */
25
+ allowPortFallback?: boolean;
26
+ }
27
+ /**
28
+ * Abstract base class for OAuth flows with local callback servers.
29
+ */
30
+ export declare abstract class OAuthCallbackFlow {
31
+ #private;
32
+ ctrl: OAuthController;
33
+ preferredPort: number;
34
+ callbackPath: string;
35
+ callbackHostname: string;
36
+ redirectUri?: string;
37
+ allowPortFallback: boolean;
38
+ constructor(ctrl: OAuthController, preferredPortOrOptions: number | OAuthCallbackFlowOptions, callbackPath?: string);
39
+ /**
40
+ * Generate provider-specific authorization URL.
41
+ * @param state - CSRF state token
42
+ * @param redirectUri - The actual redirect URI to use (may differ from expected if port fallback occurred)
43
+ * @returns Authorization URL and optional instructions
44
+ */
45
+ abstract generateAuthUrl(state: string, redirectUri: string): Promise<{
46
+ url: string;
47
+ instructions?: string;
48
+ }>;
49
+ /**
50
+ * Exchange authorization code for OAuth tokens.
51
+ * @param code - Authorization code from callback
52
+ * @param state - CSRF state token
53
+ * @param redirectUri - The actual redirect URI used (must match authorization request)
54
+ * @returns OAuth credentials
55
+ */
56
+ abstract exchangeToken(code: string, state: string, redirectUri: string): Promise<OAuthCredentials>;
57
+ /**
58
+ * Generate CSRF state token. Override if provider needs custom state generation.
59
+ */
60
+ generateState(): string;
61
+ /**
62
+ * Execute the OAuth login flow.
63
+ */
64
+ login(): Promise<OAuthCredentials>;
65
+ }
66
+ /**
67
+ * Parse a redirect URL or code string to extract code and state.
68
+ */
69
+ export declare function parseCallbackInput(input: string): {
70
+ code?: string;
71
+ state?: string;
72
+ };
@@ -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,5 @@
1
+ import type { OAuthController, OAuthCredentials } from "./types";
2
+ type FetchFunction = NonNullable<OAuthController["fetch"]>;
3
+ export declare function loginDevin(ctrl: OAuthController): Promise<OAuthCredentials>;
4
+ export declare function exchangeDevinCliToken(authorizationCode: string, codeVerifier: string, fetchImpl?: FetchFunction): Promise<string>;
5
+ export {};
@@ -0,0 +1,30 @@
1
+ import type { FetchImpl } from "../../types";
2
+ import type { OAuthCredentials } from "./types";
3
+ type GitHubCopilotLoginOptions = {
4
+ onAuth: (url: string, instructions?: string) => void;
5
+ onPrompt: (prompt: {
6
+ message: string;
7
+ placeholder?: string;
8
+ allowEmpty?: boolean;
9
+ }) => Promise<string>;
10
+ onProgress?: (message: string) => void;
11
+ signal?: AbortSignal;
12
+ pollIntervalFloorMs?: number;
13
+ pollIntervalScaleMs?: number;
14
+ fetch?: FetchImpl;
15
+ };
16
+ /**
17
+ * Refresh GitHub Copilot token.
18
+ * With the opencode OAuth flow, the GitHub token is used directly — no JWT exchange needed.
19
+ */
20
+ export declare function refreshGitHubCopilotToken(refreshToken: string, enterpriseDomain?: string, apiEndpoint?: string): OAuthCredentials;
21
+ /**
22
+ * Login with GitHub Copilot OAuth (device code flow)
23
+ *
24
+ * @param options.onAuth - Callback with URL and optional instructions (user code)
25
+ * @param options.onPrompt - Callback to prompt user for input
26
+ * @param options.onProgress - Optional progress callback
27
+ * @param options.signal - Optional AbortSignal for cancellation
28
+ */
29
+ export declare function loginGitHubCopilot(options: GitHubCopilotLoginOptions): Promise<OAuthCredentials>;
30
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { FetchImpl } from "../../types";
2
+ import type { OAuthCredentials, OAuthLoginCallbacks } from "./types";
3
+ export declare const GITLAB_DUO_WORKFLOW_OAUTH_CLIENT_ID = "36f2a70cddeb5a0889d4fd8295c241b7e9848e89cf9e599d0eed2d8e5350fbf5";
4
+ export declare const GITLAB_DUO_WORKFLOW_OAUTH_REDIRECT_URI = "vscode://gitlab.gitlab-workflow/authentication";
5
+ export declare function loginGitLabDuoWorkflow(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials>;
6
+ export declare function refreshGitLabDuoWorkflowToken(credentials: OAuthCredentials, fetchImpl?: FetchImpl): 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,22 @@
1
+ import { OAuthCallbackFlow } from "./callback-server";
2
+ import type { OAuthController, OAuthCredentials } from "./types";
3
+ export interface GoogleOAuthFlowConfig {
4
+ clientId: string;
5
+ clientSecret: string;
6
+ authUrl: string;
7
+ tokenUrl: string;
8
+ scopes: string[];
9
+ callbackPort: number;
10
+ callbackPath: string;
11
+ discoverProject: (accessToken: string, onProgress?: (message: string) => void) => Promise<string>;
12
+ }
13
+ export declare class GoogleOAuthFlow extends OAuthCallbackFlow {
14
+ private readonly config;
15
+ constructor(ctrl: OAuthController, config: GoogleOAuthFlowConfig);
16
+ generateAuthUrl(state: string, redirectUri: string): Promise<{
17
+ url: string;
18
+ instructions?: string;
19
+ }>;
20
+ exchangeToken(code: string, _state: string, redirectUri: string): Promise<OAuthCredentials>;
21
+ }
22
+ export declare function runGoogleOAuthLogin(ctrl: OAuthController, config: GoogleOAuthFlowConfig): Promise<OAuthCredentials>;
@@ -0,0 +1,64 @@
1
+ import type { OAuthCredentials, OAuthProvider, OAuthProviderId, OAuthProviderInfo, OAuthProviderInterface } from "./types";
2
+ export type * from "./types";
3
+ /** Result returned by one OAuth device-code polling attempt. */
4
+ export type OAuthDeviceCodePollResult<T> = {
5
+ status: "complete";
6
+ value: T;
7
+ } | {
8
+ status: "pending";
9
+ } | {
10
+ status: "slow_down";
11
+ } | {
12
+ status: "failed";
13
+ message: string;
14
+ };
15
+ /** Options for polling an RFC 8628-style OAuth device-code flow. */
16
+ export interface OAuthDeviceCodeFlowOptions<T> {
17
+ /** Poll the provider once and classify the response. */
18
+ poll(): OAuthDeviceCodePollResult<T> | Promise<OAuthDeviceCodePollResult<T>>;
19
+ /** Provider-requested polling cadence; defaults to RFC 8628's five seconds. */
20
+ intervalSeconds?: number;
21
+ /** Provider-issued expiry window for the device code. */
22
+ expiresInSeconds?: number;
23
+ /** Cancels the flow with the legacy "Login cancelled" error. */
24
+ signal?: AbortSignal;
25
+ }
26
+ /** Poll an OAuth device-code flow until completion, provider failure, timeout, or cancellation. */
27
+ export declare function pollOAuthDeviceCodeFlow<T>(options: OAuthDeviceCodeFlowOptions<T>): Promise<T>;
28
+ /**
29
+ * Register a custom OAuth provider.
30
+ */
31
+ export declare function registerOAuthProvider(provider: OAuthProviderInterface): void;
32
+ /**
33
+ * Get a custom OAuth provider by ID.
34
+ */
35
+ export declare function getOAuthProvider(id: OAuthProviderId): OAuthProviderInterface | undefined;
36
+ /**
37
+ * Remove all custom OAuth providers registered by a source.
38
+ */
39
+ export declare function unregisterOAuthProviders(sourceId: string): void;
40
+ /**
41
+ * Refresh token for any OAuth provider.
42
+ * Saves the new credentials and returns the new access token.
43
+ */
44
+ export declare function refreshOAuthToken(provider: OAuthProvider, credentials: OAuthCredentials): Promise<OAuthCredentials>;
45
+ /**
46
+ * Build API-key bytes for a provider from an already-fresh OAuth credential.
47
+ *
48
+ * Refresh is owned by AuthStorage. This helper deliberately refuses expired
49
+ * credentials so it cannot POST broker redaction sentinels to upstream token
50
+ * endpoints as a side channel.
51
+ *
52
+ * For providers that need credential metadata at request time, returns
53
+ * JSON-encoded credentials plus expiry metadata for diagnostics/edge guards.
54
+ * @returns API key string, or null if no credentials
55
+ * @throws Error if the credential is expired and must be refreshed upstream
56
+ */
57
+ export declare function getOAuthApiKey(provider: OAuthProvider, credentials: Record<string, OAuthCredentials>): Promise<{
58
+ newCredentials: OAuthCredentials;
59
+ apiKey: string;
60
+ } | null>;
61
+ /**
62
+ * Get list of OAuth providers.
63
+ */
64
+ export declare function getOAuthProviders(): OAuthProviderInfo[];
@@ -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,27 @@
1
+ /**
2
+ * MiniMax Token Plan login flow.
3
+ *
4
+ * MiniMax Token Plan is a subscription service that provides access to
5
+ * MiniMax models (M2 and newer) through an OpenAI-compatible API.
6
+ *
7
+ * This is not OAuth - it's a simple API key flow:
8
+ * 1. Open browser to the matching regional MiniMax subscription page
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
+ /**
16
+ * Login to MiniMax Token Plan (international).
17
+ *
18
+ * Opens browser to subscription page, prompts user to paste their API key.
19
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
20
+ */
21
+ export declare const loginMiniMaxCode: (options: import("./types").OAuthController) => Promise<string>;
22
+ /**
23
+ * Login to MiniMax Token Plan (China).
24
+ *
25
+ * Same flow as international but uses China endpoint.
26
+ */
27
+ export declare const loginMiniMaxCodeCn: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * OpenAI Codex (ChatGPT OAuth) flow — browser and device-code flows.
3
+ */
4
+ import type { OAuthController, OAuthCredentials } from "./types";
5
+ export declare function decodeJwt<T = Record<string, unknown>>(token: string): T | null;
6
+ /** Formats OpenAI Codex OAuth token endpoint errors for login and refresh failures. */
7
+ export declare function formatOpenAICodexTokenEndpointError(status: number, bodyText: string): string;
8
+ /** Builds the Codex browser OAuth URL used by browser login; exported for auth regression tests. */
9
+ export declare function createOpenAICodexAuthorizationUrl(args: {
10
+ state: string;
11
+ redirectUri: string;
12
+ challenge: string;
13
+ originator?: string;
14
+ }): string;
15
+ /**
16
+ * Login with OpenAI Codex OAuth
17
+ */
18
+ export type OpenAICodexLoginOptions = OAuthController & {
19
+ /** Optional originator value for OpenAI Codex OAuth. Default matches OMP Codex request headers. */
20
+ originator?: string;
21
+ };
22
+ export declare function loginOpenAICodex(options: OpenAICodexLoginOptions): Promise<OAuthCredentials>;
23
+ /**
24
+ * Login with OpenAI Codex using the device-code (headless) flow.
25
+ *
26
+ * Avoids a local callback server entirely — useful when port 1455 is unavailable
27
+ * or when the browser callback flow fails with 403 (e.g. network/proxy issues).
28
+ */
29
+ export declare function loginOpenAICodexDevice(ctrl: OAuthController): Promise<OAuthCredentials>;
30
+ /**
31
+ * Refresh OpenAI Codex OAuth token
32
+ */
33
+ 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,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>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generate PKCE code verifier and challenge.
3
+ * Uses Web Crypto API for cross-platform compatibility.
4
+ */
5
+ export declare function generatePKCE(): Promise<{
6
+ verifier: string;
7
+ challenge: string;
8
+ }>;
@@ -0,0 +1,56 @@
1
+ import type { FetchImpl } from "../../types";
2
+ import type { OAuthProviderUnion } from "../registry";
3
+ export type OAuthCredentials = {
4
+ refresh: string;
5
+ access: string;
6
+ expires: number;
7
+ enterpriseUrl?: string;
8
+ projectId?: string;
9
+ email?: string;
10
+ accountId?: string;
11
+ apiEndpoint?: string;
12
+ };
13
+ export type OAuthProvider = OAuthProviderUnion;
14
+ export type OAuthProviderId = OAuthProvider | (string & {});
15
+ export type OAuthPrompt = {
16
+ message: string;
17
+ placeholder?: string;
18
+ allowEmpty?: boolean;
19
+ };
20
+ export type OAuthAuthInfo = {
21
+ url: string;
22
+ instructions?: string;
23
+ };
24
+ export interface OAuthProviderInfo {
25
+ id: OAuthProviderId;
26
+ name: string;
27
+ available: boolean;
28
+ /**
29
+ * Provider id the login stores credentials under, when it differs from `id`
30
+ * (e.g. `openai-codex-device` ⇒ `openai-codex`). Lets callers map a login
31
+ * entry back to the model provider it authenticates.
32
+ */
33
+ storeCredentialsAs?: string;
34
+ }
35
+ export interface OAuthController {
36
+ onAuth?(info: OAuthAuthInfo): void;
37
+ onProgress?(message: string): void;
38
+ onManualCodeInput?(): Promise<string>;
39
+ onPrompt?(prompt: OAuthPrompt): Promise<string>;
40
+ signal?: AbortSignal;
41
+ fetch?: FetchImpl;
42
+ }
43
+ export interface OAuthLoginCallbacks extends OAuthController {
44
+ onAuth: (info: OAuthAuthInfo) => void;
45
+ onPrompt: (prompt: OAuthPrompt) => Promise<string>;
46
+ }
47
+ export interface OAuthProviderInterface {
48
+ readonly id: OAuthProviderId;
49
+ readonly name: string;
50
+ readonly sourceId?: string;
51
+ login(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials | string>;
52
+ refreshToken?(credentials: OAuthCredentials): Promise<OAuthCredentials>;
53
+ getApiKey?(credentials: OAuthCredentials): string;
54
+ /** Store resulting OAuth credentials under a different provider id. */
55
+ readonly storeCredentialsAs?: string;
56
+ }
@@ -0,0 +1 @@
1
+ export declare const loginWaferServerless: (options: import("./types").OAuthController) => Promise<string>;
@@ -0,0 +1,52 @@
1
+ import type { FetchImpl } from "../../types";
2
+ import { OAuthCallbackFlow } from "./callback-server";
3
+ import type { OAuthController, OAuthCredentials } from "./types";
4
+ /**
5
+ * Validate an xAI OIDC discovery endpoint against scheme + host.
6
+ *
7
+ * Hermes `_xai_validate_oauth_endpoint` L2997-3035. The discovery response is
8
+ * long-lived and cached in {@link OAuthCredentials}; a single MITM during
9
+ * initial login could substitute a malicious `token_endpoint` that would then
10
+ * receive every future refresh_token. Rejecting non-HTTPS or non-`x.ai` /
11
+ * `*.x.ai` hosts pins the cached endpoint to the xAI auth origin.
12
+ *
13
+ * @throws Error with message `Invalid xAI <field>: <url>` when the URL fails
14
+ * either scheme or host validation.
15
+ */
16
+ export declare function validateXAIEndpoint(url: string, field: string): string;
17
+ /**
18
+ * Check whether a JWT access token is at or past its `exp` claim (with an
19
+ * optional refresh-skew margin).
20
+ *
21
+ * Hermes `_xai_access_token_is_expiring` L2979-2994. Returns `false` for any
22
+ * malformed input — this is a refresh-trigger check, not a validation, so
23
+ * non-JWTs ("no token in cache") must NOT trigger a spurious refresh.
24
+ */
25
+ export declare function isXAIAccessTokenExpiring(jwt: string, skewSeconds?: number): boolean;
26
+ /**
27
+ * xAI Grok OAuth loopback flow (Hermes `_xai_oauth_loopback_login` L5315-5469).
28
+ *
29
+ * Uses a fixed redirect URI so the callback server fails fast instead of
30
+ * falling back to a random port that xAI's redirect_uri allowlist rejects.
31
+ */
32
+ export declare class XAIOAuthFlow extends OAuthCallbackFlow {
33
+ #private;
34
+ constructor(ctrl: OAuthController);
35
+ generateAuthUrl(state: string, redirectUri: string): Promise<{
36
+ url: string;
37
+ instructions?: string;
38
+ }>;
39
+ exchangeToken(code: string, _state: string, redirectUri: string): Promise<OAuthCredentials>;
40
+ }
41
+ /**
42
+ * Login with xAI Grok OAuth (SuperGrok Subscription).
43
+ */
44
+ export declare function loginXAIOAuth(ctrl: OAuthController): Promise<OAuthCredentials>;
45
+ /**
46
+ * Refresh an xAI OAuth access token using a stored refresh_token.
47
+ *
48
+ * Hermes `refresh_xai_oauth_pure` L3087-3160. Re-runs OIDC discovery and
49
+ * re-validates the cached `token_endpoint` on the refresh hot path so a
50
+ * cached-but-poisoned endpoint cannot silently leak a refresh_token.
51
+ */
52
+ export declare function refreshXAIOAuthToken(refreshToken: string, fetchOverride?: FetchImpl): Promise<OAuthCredentials>;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Xiaomi MiMo login flow.
3
+ *
4
+ * Xiaomi MiMo provides OpenAI-compatible models via
5
+ * https://api.xiaomimimo.com/v1.
6
+ *
7
+ * Standard Xiaomi login opens the pay-as-you-go API key console. Token Plan
8
+ * login opens plan management so users copy the regional `tp-...` key.
9
+ */
10
+ import type { OAuthController } from "./types";
11
+ /** Region codes accepted by the Xiaomi Token Plan login flow. */
12
+ export type XiaomiTokenPlanRegion = "sgp" | "ams" | "cn";
13
+ /**
14
+ * Login to Xiaomi MiMo.
15
+ *
16
+ * Opens browser to API keys page, prompts user to paste their API key.
17
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
18
+ */
19
+ export declare function loginXiaomi(options: OAuthController): Promise<string>;
20
+ /**
21
+ * Login to a regional Xiaomi Token Plan endpoint.
22
+ *
23
+ * Prompts for a token-plan API key and validates it against the selected region.
24
+ */
25
+ export declare function loginXiaomiTokenPlan(options: OAuthController, region: XiaomiTokenPlanRegion): Promise<string>;
@@ -0,0 +1,7 @@
1
+ import type { OAuthController, OAuthLoginCallbacks } from "./oauth/types";
2
+ export declare function loginOllamaCloud(options: OAuthController): Promise<string>;
3
+ export declare const ollamaCloudProvider: {
4
+ readonly id: "ollama-cloud";
5
+ readonly name: "Ollama Cloud";
6
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
7
+ };
@@ -0,0 +1,12 @@
1
+ import type { OAuthController } from "./oauth/types";
2
+ /**
3
+ * Login to Ollama.
4
+ *
5
+ * Returns a trimmed API key/token string. Empty string means local no-auth mode.
6
+ */
7
+ export declare function loginOllama(options: OAuthController): Promise<string>;
8
+ export declare const ollamaProvider: {
9
+ readonly id: "ollama";
10
+ readonly name: "Ollama (Local OpenAI-compatible)";
11
+ readonly login: typeof loginOllama;
12
+ };
@@ -0,0 +1,8 @@
1
+ import type { OAuthCredentials, OAuthLoginCallbacks } from "./oauth/types";
2
+ export declare const openaiCodexDeviceProvider: {
3
+ readonly id: "openai-codex-device";
4
+ readonly name: "ChatGPT Plus/Pro (Codex, headless/device)";
5
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<OAuthCredentials>;
6
+ readonly refreshToken: (credentials: OAuthCredentials) => Promise<OAuthCredentials>;
7
+ readonly storeCredentialsAs: "openai-codex";
8
+ };
@@ -0,0 +1,9 @@
1
+ import type { OAuthCredentials, OAuthLoginCallbacks } from "./oauth/types";
2
+ export declare const openaiCodexProvider: {
3
+ readonly id: "openai-codex";
4
+ readonly name: "ChatGPT Plus/Pro (Codex Subscription)";
5
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<OAuthCredentials>;
6
+ readonly refreshToken: (credentials: OAuthCredentials) => Promise<OAuthCredentials>;
7
+ readonly callbackPort: 1455;
8
+ readonly pasteCodeFlow: true;
9
+ };
@@ -0,0 +1,4 @@
1
+ export declare const openaiProvider: {
2
+ readonly id: "openai";
3
+ readonly name: "OpenAI";
4
+ };
@@ -0,0 +1,6 @@
1
+ import type { OAuthLoginCallbacks } from "./oauth/types";
2
+ export declare const opencodeGoProvider: {
3
+ readonly id: "opencode-go";
4
+ readonly name: "OpenCode Go";
5
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
6
+ };
@@ -0,0 +1,6 @@
1
+ import type { OAuthLoginCallbacks } from "./oauth/types";
2
+ export declare const opencodeZenProvider: {
3
+ readonly id: "opencode-zen";
4
+ readonly name: "OpenCode Zen";
5
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
6
+ };
@@ -0,0 +1,13 @@
1
+ import type { OAuthLoginCallbacks } from "./oauth/types";
2
+ /** OpenRouter login flow (API key paste, validated via /auth/key).
3
+ *
4
+ * `/api/v1/models` is public and returns 200 for any bearer (including bogus),
5
+ * so it cannot validate auth. `/api/v1/auth/key` is the canonical "who am I"
6
+ * endpoint — 200 for valid keys, 401 otherwise.
7
+ */
8
+ export declare const loginOpenRouter: (options: import("./oauth").OAuthController) => Promise<string>;
9
+ export declare const openrouterProvider: {
10
+ readonly id: "openrouter";
11
+ readonly name: "OpenRouter";
12
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
13
+ };
@@ -0,0 +1,14 @@
1
+ import type { OAuthController, OAuthLoginCallbacks } from "./oauth/types";
2
+ /**
3
+ * Login to Parallel.
4
+ *
5
+ * Opens browser to the API keys page, prompts the user to paste their API key,
6
+ * and returns the API key directly.
7
+ */
8
+ export declare function loginParallel(options: OAuthController): Promise<string>;
9
+ export declare const parallelProvider: {
10
+ readonly id: "parallel";
11
+ readonly name: "Parallel";
12
+ readonly envKeys: "PARALLEL_API_KEY";
13
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
14
+ };
@@ -0,0 +1,7 @@
1
+ import type { OAuthLoginCallbacks } from "./oauth/types";
2
+ export declare const perplexityProvider: {
3
+ readonly id: "perplexity";
4
+ readonly name: "Perplexity (Pro/Max)";
5
+ readonly envKeys: "PERPLEXITY_API_KEY";
6
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<import("./oauth").OAuthCredentials>;
7
+ };
@@ -0,0 +1,7 @@
1
+ import type { OAuthLoginCallbacks } from "./oauth/types";
2
+ export declare const loginQianfan: (options: import("./oauth").OAuthController) => Promise<string>;
3
+ export declare const qianfanProvider: {
4
+ readonly id: "qianfan";
5
+ readonly name: "Qianfan";
6
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
7
+ };
@@ -0,0 +1,7 @@
1
+ import type { OAuthController, OAuthLoginCallbacks } from "./oauth/types";
2
+ export declare function loginQwenPortal(options: OAuthController): Promise<string>;
3
+ export declare const qwenPortalProvider: {
4
+ readonly id: "qwen-portal";
5
+ readonly name: "Qwen Portal";
6
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
7
+ };