@linxiraos/pi-ai 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (639) hide show
  1. package/CHANGELOG.md +5066 -0
  2. package/README.md +1195 -0
  3. package/dist/types/api-registry.d.ts +30 -0
  4. package/dist/types/auth/sqlite-credential-store.d.ts +117 -0
  5. package/dist/types/auth-broker/client.d.ts +93 -0
  6. package/dist/types/auth-broker/discover.d.ts +39 -0
  7. package/dist/types/auth-broker/index.d.ts +7 -0
  8. package/dist/types/auth-broker/refresher.d.ts +25 -0
  9. package/dist/types/auth-broker/remote-store.d.ts +136 -0
  10. package/dist/types/auth-broker/server.d.ts +48 -0
  11. package/dist/types/auth-broker/snapshot-cache.d.ts +17 -0
  12. package/dist/types/auth-broker/types.d.ts +152 -0
  13. package/dist/types/auth-broker/wire-schema-resource.d.ts +53 -0
  14. package/dist/types/auth-broker/wire-schemas.d.ts +5 -0
  15. package/dist/types/auth-gateway/http.d.ts +56 -0
  16. package/dist/types/auth-gateway/index.d.ts +3 -0
  17. package/dist/types/auth-gateway/server.d.ts +36 -0
  18. package/dist/types/auth-gateway/types.d.ts +127 -0
  19. package/dist/types/auth-retry.d.ts +150 -0
  20. package/dist/types/auth-storage.d.ts +1258 -0
  21. package/dist/types/dialect/anthropic.d.ts +15 -0
  22. package/dist/types/dialect/catalog.d.ts +3 -0
  23. package/dist/types/dialect/coercion.d.ts +23 -0
  24. package/dist/types/dialect/deepseek.d.ts +14 -0
  25. package/dist/types/dialect/demotion.d.ts +30 -0
  26. package/dist/types/dialect/examples.d.ts +18 -0
  27. package/dist/types/dialect/factory.d.ts +3 -0
  28. package/dist/types/dialect/fenced-thinking.d.ts +53 -0
  29. package/dist/types/dialect/gemini.d.ts +17 -0
  30. package/dist/types/dialect/gemma.d.ts +15 -0
  31. package/dist/types/dialect/glm.d.ts +9 -0
  32. package/dist/types/dialect/harmony.d.ts +8 -0
  33. package/dist/types/dialect/hermes.d.ts +9 -0
  34. package/dist/types/dialect/history.d.ts +3 -0
  35. package/dist/types/dialect/index.d.ts +11 -0
  36. package/dist/types/dialect/inventory.d.ts +9 -0
  37. package/dist/types/dialect/kimi.d.ts +14 -0
  38. package/dist/types/dialect/minimax.d.ts +3 -0
  39. package/dist/types/dialect/owned-stream.d.ts +4 -0
  40. package/dist/types/dialect/qwen3.d.ts +9 -0
  41. package/dist/types/dialect/rendering.d.ts +54 -0
  42. package/dist/types/dialect/thinking.d.ts +6 -0
  43. package/dist/types/dialect/types.d.ts +68 -0
  44. package/dist/types/dialect/xml.d.ts +9 -0
  45. package/dist/types/error/abort.d.ts +14 -0
  46. package/dist/types/error/auth-classify.d.ts +20 -0
  47. package/dist/types/error/auth.d.ts +27 -0
  48. package/dist/types/error/aws.d.ts +27 -0
  49. package/dist/types/error/classes.d.ts +106 -0
  50. package/dist/types/error/finalize.d.ts +39 -0
  51. package/dist/types/error/flags.d.ts +94 -0
  52. package/dist/types/error/format.d.ts +20 -0
  53. package/dist/types/error/gateway.d.ts +20 -0
  54. package/dist/types/error/index.d.ts +14 -0
  55. package/dist/types/error/oauth.d.ts +43 -0
  56. package/dist/types/error/provider.d.ts +42 -0
  57. package/dist/types/error/rate-limit.d.ts +80 -0
  58. package/dist/types/error/retryable.d.ts +27 -0
  59. package/dist/types/error/validation.d.ts +32 -0
  60. package/dist/types/index.d.ts +51 -0
  61. package/dist/types/provider-details.d.ts +24 -0
  62. package/dist/types/providers/amazon-bedrock.d.ts +39 -0
  63. package/dist/types/providers/anthropic-client.d.ts +106 -0
  64. package/dist/types/providers/anthropic-messages-server-schema.d.ts +937 -0
  65. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  66. package/dist/types/providers/anthropic-wire.d.ts +345 -0
  67. package/dist/types/providers/anthropic.d.ts +261 -0
  68. package/dist/types/providers/aws-credentials.d.ts +48 -0
  69. package/dist/types/providers/aws-eventstream.d.ts +39 -0
  70. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  71. package/dist/types/providers/azure-openai-responses.d.ts +16 -0
  72. package/dist/types/providers/bedrock-mantle.d.ts +13 -0
  73. package/dist/types/providers/claude-code-fingerprint.d.ts +19 -0
  74. package/dist/types/providers/cowork-fetch.d.ts +3 -0
  75. package/dist/types/providers/cursor/exec-modern.d.ts +98 -0
  76. package/dist/types/providers/cursor-pi-args.d.ts +105 -0
  77. package/dist/types/providers/cursor.d.ts +221 -0
  78. package/dist/types/providers/devin.d.ts +12 -0
  79. package/dist/types/providers/error-message.d.ts +25 -0
  80. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  81. package/dist/types/providers/gitlab-duo-workflow.d.ts +254 -0
  82. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  83. package/dist/types/providers/google-auth.d.ts +24 -0
  84. package/dist/types/providers/google-gemini-cli.d.ts +120 -0
  85. package/dist/types/providers/google-shared.d.ts +203 -0
  86. package/dist/types/providers/google-types.d.ts +155 -0
  87. package/dist/types/providers/google-vertex.d.ts +7 -0
  88. package/dist/types/providers/google.d.ts +4 -0
  89. package/dist/types/providers/grammar.d.ts +1 -0
  90. package/dist/types/providers/kimi.d.ts +27 -0
  91. package/dist/types/providers/mock.d.ts +179 -0
  92. package/dist/types/providers/ollama.d.ts +8 -0
  93. package/dist/types/providers/openai-anthropic-shim.d.ts +35 -0
  94. package/dist/types/providers/openai-chat-server-schema.d.ts +1311 -0
  95. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  96. package/dist/types/providers/openai-chat-wire.d.ts +669 -0
  97. package/dist/types/providers/openai-codex/request-transformer.d.ts +109 -0
  98. package/dist/types/providers/openai-codex/response-handler.d.ts +26 -0
  99. package/dist/types/providers/openai-codex-responses.d.ts +238 -0
  100. package/dist/types/providers/openai-completions.d.ts +48 -0
  101. package/dist/types/providers/openai-reasoning-fallback.d.ts +25 -0
  102. package/dist/types/providers/openai-responses-server-schema.d.ts +1314 -0
  103. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  104. package/dist/types/providers/openai-responses-wire.d.ts +6099 -0
  105. package/dist/types/providers/openai-responses.d.ts +131 -0
  106. package/dist/types/providers/openai-shared.d.ts +624 -0
  107. package/dist/types/providers/pi-native-client.d.ts +13 -0
  108. package/dist/types/providers/pi-native-server.d.ts +69 -0
  109. package/dist/types/providers/register-builtins.d.ts +37 -0
  110. package/dist/types/providers/synthetic.d.ts +26 -0
  111. package/dist/types/providers/transform-messages.d.ts +32 -0
  112. package/dist/types/providers/vision-guard.d.ts +20 -0
  113. package/dist/types/registry/aiand.d.ts +7 -0
  114. package/dist/types/registry/aimlapi.d.ts +4 -0
  115. package/dist/types/registry/alibaba-coding-plan.d.ts +8 -0
  116. package/dist/types/registry/alibaba-token-plan.d.ts +18 -0
  117. package/dist/types/registry/amazon-bedrock.d.ts +5 -0
  118. package/dist/types/registry/anthropic.d.ts +10 -0
  119. package/dist/types/registry/api-key-login.d.ts +42 -0
  120. package/dist/types/registry/api-key-validation.d.ts +43 -0
  121. package/dist/types/registry/aws.d.ts +13 -0
  122. package/dist/types/registry/azure.d.ts +4 -0
  123. package/dist/types/registry/baseten.d.ts +7 -0
  124. package/dist/types/registry/bedrock-mantle.d.ts +22 -0
  125. package/dist/types/registry/cerebras.d.ts +7 -0
  126. package/dist/types/registry/cloudflare-ai-gateway.d.ts +13 -0
  127. package/dist/types/registry/coreweave.d.ts +7 -0
  128. package/dist/types/registry/cursor.d.ts +7 -0
  129. package/dist/types/registry/deepseek.d.ts +8 -0
  130. package/dist/types/registry/derived.d.ts +5 -0
  131. package/dist/types/registry/devin.d.ts +8 -0
  132. package/dist/types/registry/exa.d.ts +8 -0
  133. package/dist/types/registry/firepass.d.ts +16 -0
  134. package/dist/types/registry/fireworks.d.ts +7 -0
  135. package/dist/types/registry/github-copilot.d.ts +7 -0
  136. package/dist/types/registry/gitlab-duo-workflow.d.ts +10 -0
  137. package/dist/types/registry/gitlab-duo.d.ts +9 -0
  138. package/dist/types/registry/gmi-cloud.d.ts +7 -0
  139. package/dist/types/registry/google-antigravity.d.ts +9 -0
  140. package/dist/types/registry/google-gemini-cli.d.ts +9 -0
  141. package/dist/types/registry/google-vertex.d.ts +5 -0
  142. package/dist/types/registry/google.d.ts +4 -0
  143. package/dist/types/registry/groq.d.ts +4 -0
  144. package/dist/types/registry/huggingface.d.ts +7 -0
  145. package/dist/types/registry/index.d.ts +4 -0
  146. package/dist/types/registry/kagi.d.ts +14 -0
  147. package/dist/types/registry/kilo.d.ts +7 -0
  148. package/dist/types/registry/kimi-code.d.ts +7 -0
  149. package/dist/types/registry/litellm.d.ts +13 -0
  150. package/dist/types/registry/llama-cpp.d.ts +8 -0
  151. package/dist/types/registry/lm-studio.d.ts +8 -0
  152. package/dist/types/registry/meta.d.ts +7 -0
  153. package/dist/types/registry/minimax-code-cn.d.ts +6 -0
  154. package/dist/types/registry/minimax-code.d.ts +6 -0
  155. package/dist/types/registry/minimax.d.ts +4 -0
  156. package/dist/types/registry/mistral.d.ts +4 -0
  157. package/dist/types/registry/moonshot.d.ts +7 -0
  158. package/dist/types/registry/nanogpt.d.ts +7 -0
  159. package/dist/types/registry/novita.d.ts +6 -0
  160. package/dist/types/registry/nvidia.d.ts +7 -0
  161. package/dist/types/registry/oauth/anthropic-constants.d.ts +12 -0
  162. package/dist/types/registry/oauth/anthropic.d.ts +24 -0
  163. package/dist/types/registry/oauth/callback-server.d.ts +74 -0
  164. package/dist/types/registry/oauth/cursor.d.ts +16 -0
  165. package/dist/types/registry/oauth/device-code.d.ts +25 -0
  166. package/dist/types/registry/oauth/devin.d.ts +5 -0
  167. package/dist/types/registry/oauth/github-copilot.d.ts +30 -0
  168. package/dist/types/registry/oauth/gitlab-duo-workflow.d.ts +6 -0
  169. package/dist/types/registry/oauth/gitlab-duo.d.ts +3 -0
  170. package/dist/types/registry/oauth/google-antigravity.d.ts +11 -0
  171. package/dist/types/registry/oauth/google-gemini-cli.d.ts +22 -0
  172. package/dist/types/registry/oauth/google-oauth-shared.d.ts +56 -0
  173. package/dist/types/registry/oauth/index.d.ts +45 -0
  174. package/dist/types/registry/oauth/kimi.d.ts +21 -0
  175. package/dist/types/registry/oauth/minimax-code.d.ts +27 -0
  176. package/dist/types/registry/oauth/openai-codex.d.ts +33 -0
  177. package/dist/types/registry/oauth/opencode.d.ts +18 -0
  178. package/dist/types/registry/oauth/perplexity.d.ts +9 -0
  179. package/dist/types/registry/oauth/pkce.d.ts +8 -0
  180. package/dist/types/registry/oauth/types.d.ts +87 -0
  181. package/dist/types/registry/oauth/wafer.d.ts +1 -0
  182. package/dist/types/registry/oauth/xai-oauth.d.ts +46 -0
  183. package/dist/types/registry/oauth/xiaomi.d.ts +25 -0
  184. package/dist/types/registry/oauth/zai.d.ts +25 -0
  185. package/dist/types/registry/ollama-cloud.d.ts +7 -0
  186. package/dist/types/registry/ollama.d.ts +12 -0
  187. package/dist/types/registry/openai-codex-device.d.ts +8 -0
  188. package/dist/types/registry/openai-codex.d.ts +9 -0
  189. package/dist/types/registry/openai.d.ts +4 -0
  190. package/dist/types/registry/opencode-go.d.ts +6 -0
  191. package/dist/types/registry/opencode-zen.d.ts +6 -0
  192. package/dist/types/registry/openrouter.d.ts +13 -0
  193. package/dist/types/registry/parallel.d.ts +14 -0
  194. package/dist/types/registry/perplexity.d.ts +7 -0
  195. package/dist/types/registry/qianfan.d.ts +7 -0
  196. package/dist/types/registry/qwen-portal.d.ts +7 -0
  197. package/dist/types/registry/registry.d.ts +367 -0
  198. package/dist/types/registry/sakana.d.ts +7 -0
  199. package/dist/types/registry/siliconflow-cn.d.ts +7 -0
  200. package/dist/types/registry/siliconflow.d.ts +7 -0
  201. package/dist/types/registry/synthetic.d.ts +6 -0
  202. package/dist/types/registry/tavily.d.ts +14 -0
  203. package/dist/types/registry/together.d.ts +6 -0
  204. package/dist/types/registry/types.d.ts +75 -0
  205. package/dist/types/registry/umans.d.ts +7 -0
  206. package/dist/types/registry/venice.d.ts +13 -0
  207. package/dist/types/registry/vercel-ai-gateway.d.ts +7 -0
  208. package/dist/types/registry/vllm.d.ts +7 -0
  209. package/dist/types/registry/wafer-serverless.d.ts +6 -0
  210. package/dist/types/registry/xai-oauth.d.ts +7 -0
  211. package/dist/types/registry/xai.d.ts +7 -0
  212. package/dist/types/registry/xiaomi-token-plan-ams.d.ts +6 -0
  213. package/dist/types/registry/xiaomi-token-plan-cn.d.ts +6 -0
  214. package/dist/types/registry/xiaomi-token-plan-sgp.d.ts +6 -0
  215. package/dist/types/registry/xiaomi.d.ts +6 -0
  216. package/dist/types/registry/zai.d.ts +15 -0
  217. package/dist/types/registry/zenmux.d.ts +7 -0
  218. package/dist/types/registry/zhipu-coding-plan.d.ts +7 -0
  219. package/dist/types/stream.d.ts +46 -0
  220. package/dist/types/types.d.ts +1064 -0
  221. package/dist/types/usage/alibaba-token-plan.d.ts +3 -0
  222. package/dist/types/usage/claude.d.ts +4 -0
  223. package/dist/types/usage/cursor.d.ts +4 -0
  224. package/dist/types/usage/gemini.d.ts +2 -0
  225. package/dist/types/usage/github-copilot.d.ts +7 -0
  226. package/dist/types/usage/google-antigravity.d.ts +15 -0
  227. package/dist/types/usage/kimi.d.ts +2 -0
  228. package/dist/types/usage/minimax-code.d.ts +3 -0
  229. package/dist/types/usage/ollama.d.ts +5 -0
  230. package/dist/types/usage/openai-codex-base-url.d.ts +18 -0
  231. package/dist/types/usage/openai-codex-reset.d.ts +88 -0
  232. package/dist/types/usage/openai-codex.d.ts +10 -0
  233. package/dist/types/usage/opencode-go.d.ts +2 -0
  234. package/dist/types/usage/shared.d.ts +1 -0
  235. package/dist/types/usage/synthetic.d.ts +2 -0
  236. package/dist/types/usage/umans.d.ts +2 -0
  237. package/dist/types/usage/xai-oauth.d.ts +12 -0
  238. package/dist/types/usage/zai.d.ts +3 -0
  239. package/dist/types/usage.d.ts +527 -0
  240. package/dist/types/utils/abort.d.ts +25 -0
  241. package/dist/types/utils/anthropic-auth.d.ts +35 -0
  242. package/dist/types/utils/aws-profile.d.ts +17 -0
  243. package/dist/types/utils/block-symbols.d.ts +62 -0
  244. package/dist/types/utils/deterministic-id.d.ts +16 -0
  245. package/dist/types/utils/empty-completion-retry.d.ts +21 -0
  246. package/dist/types/utils/event-stream.d.ts +39 -0
  247. package/dist/types/utils/foundry.d.ts +1 -0
  248. package/dist/types/utils/google-validation.d.ts +2 -0
  249. package/dist/types/utils/harmony-leak.d.ts +135 -0
  250. package/dist/types/utils/http-inspector.d.ts +49 -0
  251. package/dist/types/utils/idle-iterator.d.ts +149 -0
  252. package/dist/types/utils/leaked-thinking-stream.d.ts +33 -0
  253. package/dist/types/utils/openai-http.d.ts +48 -0
  254. package/dist/types/utils/openrouter-headers.d.ts +1 -0
  255. package/dist/types/utils/parse-bind.d.ts +23 -0
  256. package/dist/types/utils/provider-response.d.ts +3 -0
  257. package/dist/types/utils/proxy.d.ts +39 -0
  258. package/dist/types/utils/request-debug.d.ts +29 -0
  259. package/dist/types/utils/retry-after.d.ts +4 -0
  260. package/dist/types/utils/retry.d.ts +14 -0
  261. package/dist/types/utils/schema/adapt.d.ts +24 -0
  262. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  263. package/dist/types/utils/schema/dereference.d.ts +11 -0
  264. package/dist/types/utils/schema/draft.d.ts +10 -0
  265. package/dist/types/utils/schema/equality.d.ts +4 -0
  266. package/dist/types/utils/schema/fields.d.ts +54 -0
  267. package/dist/types/utils/schema/index.d.ts +14 -0
  268. package/dist/types/utils/schema/json-schema-validator.d.ts +20 -0
  269. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  270. package/dist/types/utils/schema/normalize.d.ts +153 -0
  271. package/dist/types/utils/schema/spill.d.ts +8 -0
  272. package/dist/types/utils/schema/stamps.d.ts +17 -0
  273. package/dist/types/utils/schema/strict-tool-validation.d.ts +16 -0
  274. package/dist/types/utils/schema/types.d.ts +4 -0
  275. package/dist/types/utils/schema/typescript.d.ts +24 -0
  276. package/dist/types/utils/schema/wire.d.ts +52 -0
  277. package/dist/types/utils/sdk-stream-timeout.d.ts +33 -0
  278. package/dist/types/utils/sse-debug.d.ts +5 -0
  279. package/dist/types/utils/stream-markup-healing.d.ts +87 -0
  280. package/dist/types/utils/thinking-loop.d.ts +102 -0
  281. package/dist/types/utils/tool-call-loop-guard.d.ts +26 -0
  282. package/dist/types/utils/tool-choice.d.ts +52 -0
  283. package/dist/types/utils/validation.d.ts +28 -0
  284. package/dist/types/utils.d.ts +57 -0
  285. package/package.json +138 -0
  286. package/src/api-registry.ts +109 -0
  287. package/src/auth/sqlite-credential-store.ts +2066 -0
  288. package/src/auth-broker/client.ts +471 -0
  289. package/src/auth-broker/discover.ts +310 -0
  290. package/src/auth-broker/index.ts +7 -0
  291. package/src/auth-broker/refresher.ts +117 -0
  292. package/src/auth-broker/remote-store.ts +1332 -0
  293. package/src/auth-broker/server.ts +898 -0
  294. package/src/auth-broker/snapshot-cache.ts +200 -0
  295. package/src/auth-broker/types.ts +193 -0
  296. package/src/auth-broker/wire-schema-resource.ts +487 -0
  297. package/src/auth-broker/wire-schemas.ts +43 -0
  298. package/src/auth-gateway/http.ts +227 -0
  299. package/src/auth-gateway/index.ts +3 -0
  300. package/src/auth-gateway/server.ts +836 -0
  301. package/src/auth-gateway/types.ts +153 -0
  302. package/src/auth-retry.ts +401 -0
  303. package/src/auth-storage.ts +6540 -0
  304. package/src/dialect/anthropic.md +31 -0
  305. package/src/dialect/anthropic.ts +608 -0
  306. package/src/dialect/catalog.ts +29 -0
  307. package/src/dialect/coercion.ts +136 -0
  308. package/src/dialect/deepseek.md +24 -0
  309. package/src/dialect/deepseek.ts +609 -0
  310. package/src/dialect/demotion.ts +40 -0
  311. package/src/dialect/examples.ts +71 -0
  312. package/src/dialect/factory.ts +34 -0
  313. package/src/dialect/fenced-thinking.ts +184 -0
  314. package/src/dialect/gemini.md +44 -0
  315. package/src/dialect/gemini.ts +583 -0
  316. package/src/dialect/gemma.md +33 -0
  317. package/src/dialect/gemma.ts +387 -0
  318. package/src/dialect/glm.md +32 -0
  319. package/src/dialect/glm.ts +579 -0
  320. package/src/dialect/harmony.md +31 -0
  321. package/src/dialect/harmony.ts +345 -0
  322. package/src/dialect/hermes.md +25 -0
  323. package/src/dialect/hermes.ts +206 -0
  324. package/src/dialect/history.ts +81 -0
  325. package/src/dialect/index.ts +15 -0
  326. package/src/dialect/inventory.ts +30 -0
  327. package/src/dialect/kimi.md +24 -0
  328. package/src/dialect/kimi.ts +340 -0
  329. package/src/dialect/minimax.md +31 -0
  330. package/src/dialect/minimax.ts +95 -0
  331. package/src/dialect/owned-stream.ts +481 -0
  332. package/src/dialect/prompt-template.md +12 -0
  333. package/src/dialect/qwen3.md +28 -0
  334. package/src/dialect/qwen3.ts +240 -0
  335. package/src/dialect/rendering.ts +304 -0
  336. package/src/dialect/thinking.ts +292 -0
  337. package/src/dialect/types.ts +56 -0
  338. package/src/dialect/xml.md +22 -0
  339. package/src/dialect/xml.ts +90 -0
  340. package/src/error/abort.ts +18 -0
  341. package/src/error/auth-classify.ts +47 -0
  342. package/src/error/auth.ts +48 -0
  343. package/src/error/aws.ts +35 -0
  344. package/src/error/classes.ts +281 -0
  345. package/src/error/finalize.ts +69 -0
  346. package/src/error/flags.ts +602 -0
  347. package/src/error/format.ts +45 -0
  348. package/src/error/gateway.ts +96 -0
  349. package/src/error/index.ts +14 -0
  350. package/src/error/oauth.ts +58 -0
  351. package/src/error/provider.ts +63 -0
  352. package/src/error/rate-limit.ts +303 -0
  353. package/src/error/retryable.ts +70 -0
  354. package/src/error/validation.ts +44 -0
  355. package/src/index.ts +51 -0
  356. package/src/provider-details.ts +90 -0
  357. package/src/providers/amazon-bedrock.ts +1064 -0
  358. package/src/providers/anthropic-client.ts +317 -0
  359. package/src/providers/anthropic-messages-server-schema.ts +252 -0
  360. package/src/providers/anthropic-messages-server.ts +818 -0
  361. package/src/providers/anthropic-wire.ts +359 -0
  362. package/src/providers/anthropic.ts +4539 -0
  363. package/src/providers/aws-credentials.ts +772 -0
  364. package/src/providers/aws-eventstream.ts +181 -0
  365. package/src/providers/aws-sigv4.ts +218 -0
  366. package/src/providers/azure-openai-responses.ts +438 -0
  367. package/src/providers/bedrock-mantle.ts +110 -0
  368. package/src/providers/claude-code-fingerprint.ts +20 -0
  369. package/src/providers/cowork-fetch.ts +201 -0
  370. package/src/providers/cursor/exec-modern.ts +496 -0
  371. package/src/providers/cursor/proto/agent.proto +4533 -0
  372. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  373. package/src/providers/cursor/proto/buf.yaml +17 -0
  374. package/src/providers/cursor-pi-args.ts +165 -0
  375. package/src/providers/cursor.ts +4689 -0
  376. package/src/providers/devin/proto/buf/validate/validate.proto +468 -0
  377. package/src/providers/devin/proto/buf.gen.yaml +33 -0
  378. package/src/providers/devin/proto/buf.yaml +17 -0
  379. package/src/providers/devin/proto/cel/expr/checked.proto +103 -0
  380. package/src/providers/devin/proto/cel/expr/eval.proto +38 -0
  381. package/src/providers/devin/proto/cel/expr/explain.proto +15 -0
  382. package/src/providers/devin/proto/cel/expr/syntax.proto +113 -0
  383. package/src/providers/devin/proto/cel/expr/value.proto +41 -0
  384. package/src/providers/devin/proto/connectext/grpc/status/v1/status.proto +11 -0
  385. package/src/providers/devin/proto/errorspb/errors.proto +56 -0
  386. package/src/providers/devin/proto/errorspb/hintdetail.proto +7 -0
  387. package/src/providers/devin/proto/errorspb/markers.proto +10 -0
  388. package/src/providers/devin/proto/errorspb/tags.proto +12 -0
  389. package/src/providers/devin/proto/errorspb/testing.proto +6 -0
  390. package/src/providers/devin/proto/exa/analytics_pb/analytics.proto +188 -0
  391. package/src/providers/devin/proto/exa/api_server_pb/api_server.proto +2461 -0
  392. package/src/providers/devin/proto/exa/auth_pb/auth.proto +19 -0
  393. package/src/providers/devin/proto/exa/auto_cascade_common_pb/auto_cascade_common.proto +79 -0
  394. package/src/providers/devin/proto/exa/browser_preview_pb/browser_preview.proto +32 -0
  395. package/src/providers/devin/proto/exa/bug_checker_pb/bug_checker.proto +22 -0
  396. package/src/providers/devin/proto/exa/cascade_plugins_pb/cascade_plugins.proto +262 -0
  397. package/src/providers/devin/proto/exa/chat_client_server_pb/chat_client_server.proto +57 -0
  398. package/src/providers/devin/proto/exa/chat_pb/chat.proto +449 -0
  399. package/src/providers/devin/proto/exa/code_edit/code_edit_pb/code_edit.proto +186 -0
  400. package/src/providers/devin/proto/exa/codeium_common_pb/codeium_common.proto +4157 -0
  401. package/src/providers/devin/proto/exa/context_module_pb/context_module.proto +175 -0
  402. package/src/providers/devin/proto/exa/cortex_pb/cortex.proto +3268 -0
  403. package/src/providers/devin/proto/exa/dev_pb/dev.proto +26 -0
  404. package/src/providers/devin/proto/exa/diff_action_pb/diff_action.proto +75 -0
  405. package/src/providers/devin/proto/exa/eval/pr_eval/datasets_pb/datasets.proto +103 -0
  406. package/src/providers/devin/proto/exa/eval_pb/eval.proto +1315 -0
  407. package/src/providers/devin/proto/exa/extension_server_pb/extension_server.proto +556 -0
  408. package/src/providers/devin/proto/exa/file_system_provider_pb/file_system_provider.proto +75 -0
  409. package/src/providers/devin/proto/exa/index_pb/index.proto +461 -0
  410. package/src/providers/devin/proto/exa/knowledge_base_pb/knowledge_base.proto +144 -0
  411. package/src/providers/devin/proto/exa/language_server_pb/language_server.proto +2385 -0
  412. package/src/providers/devin/proto/exa/model_management_pb/model_management.proto +186 -0
  413. package/src/providers/devin/proto/exa/opensearch_clients_pb/opensearch_clients.proto +503 -0
  414. package/src/providers/devin/proto/exa/product_analytics_pb/product_analytics.proto +37 -0
  415. package/src/providers/devin/proto/exa/prompt_pb/prompt.proto +92 -0
  416. package/src/providers/devin/proto/exa/reactive_component_pb/reactive_component.proto +96 -0
  417. package/src/providers/devin/proto/exa/seat_management_pb/seat_management.proto +2680 -0
  418. package/src/providers/devin/proto/exa/tokenizer_pb/tokenizer.proto +37 -0
  419. package/src/providers/devin/proto/exa/trainer_pb/config.proto +647 -0
  420. package/src/providers/devin/proto/exa/tree_sitter/language_data_pb/language_data.proto +14 -0
  421. package/src/providers/devin/proto/exa/trust_pb/trust.proto +157 -0
  422. package/src/providers/devin/proto/exa/user_analytics_pb/user_analytics.proto +519 -0
  423. package/src/providers/devin/proto/google.golang.org/appengine/internal/base/api_base.proto +28 -0
  424. package/src/providers/devin/proto/google.golang.org/appengine/internal/datastore/datastore_v3.proto +484 -0
  425. package/src/providers/devin/proto/google.golang.org/appengine/internal/log/log_service.proto +136 -0
  426. package/src/providers/devin/proto/google.golang.org/appengine/internal/remote_api/remote_api.proto +42 -0
  427. package/src/providers/devin/proto/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +61 -0
  428. package/src/providers/devin/proto/grpc/binlog/v1/binarylog.proto +84 -0
  429. package/src/providers/devin/proto/io/prometheus/client/metrics.proto +98 -0
  430. package/src/providers/devin.ts +679 -0
  431. package/src/providers/error-message.ts +23 -0
  432. package/src/providers/github-copilot-headers.ts +141 -0
  433. package/src/providers/gitlab-duo-workflow-chatml-note.md +1 -0
  434. package/src/providers/gitlab-duo-workflow.ts +3135 -0
  435. package/src/providers/gitlab-duo.ts +399 -0
  436. package/src/providers/google-auth.ts +330 -0
  437. package/src/providers/google-gemini-cli.ts +1370 -0
  438. package/src/providers/google-shared.ts +1122 -0
  439. package/src/providers/google-types.ts +180 -0
  440. package/src/providers/google-vertex.ts +135 -0
  441. package/src/providers/google.ts +47 -0
  442. package/src/providers/grammar.ts +70 -0
  443. package/src/providers/kimi.ts +51 -0
  444. package/src/providers/mock.ts +514 -0
  445. package/src/providers/ollama.ts +776 -0
  446. package/src/providers/openai-anthropic-shim.ts +166 -0
  447. package/src/providers/openai-chat-server-schema.ts +243 -0
  448. package/src/providers/openai-chat-server.ts +752 -0
  449. package/src/providers/openai-chat-wire.ts +859 -0
  450. package/src/providers/openai-codex/request-transformer.ts +491 -0
  451. package/src/providers/openai-codex/response-handler.ts +102 -0
  452. package/src/providers/openai-codex-responses.ts +4716 -0
  453. package/src/providers/openai-completions.ts +2389 -0
  454. package/src/providers/openai-reasoning-fallback.ts +269 -0
  455. package/src/providers/openai-responses-server-schema.ts +397 -0
  456. package/src/providers/openai-responses-server.ts +1466 -0
  457. package/src/providers/openai-responses-wire.ts +6416 -0
  458. package/src/providers/openai-responses.ts +1393 -0
  459. package/src/providers/openai-shared.ts +3500 -0
  460. package/src/providers/pi-native-client.ts +275 -0
  461. package/src/providers/pi-native-server.ts +245 -0
  462. package/src/providers/register-builtins.ts +503 -0
  463. package/src/providers/synthetic.ts +50 -0
  464. package/src/providers/transform-messages.ts +1083 -0
  465. package/src/providers/vision-guard.ts +54 -0
  466. package/src/registry/aiand.ts +22 -0
  467. package/src/registry/aimlapi.ts +6 -0
  468. package/src/registry/alibaba-coding-plan.ts +104 -0
  469. package/src/registry/alibaba-token-plan.ts +125 -0
  470. package/src/registry/amazon-bedrock.ts +22 -0
  471. package/src/registry/anthropic.ts +26 -0
  472. package/src/registry/api-key-login.ts +115 -0
  473. package/src/registry/api-key-validation.ts +145 -0
  474. package/src/registry/aws.ts +57 -0
  475. package/src/registry/azure.ts +6 -0
  476. package/src/registry/baseten.ts +22 -0
  477. package/src/registry/bedrock-mantle.ts +34 -0
  478. package/src/registry/cerebras.ts +23 -0
  479. package/src/registry/cloudflare-ai-gateway.ts +45 -0
  480. package/src/registry/coreweave.ts +40 -0
  481. package/src/registry/cursor.ts +20 -0
  482. package/src/registry/deepseek.ts +46 -0
  483. package/src/registry/derived.ts +9 -0
  484. package/src/registry/devin.ts +15 -0
  485. package/src/registry/exa.ts +19 -0
  486. package/src/registry/firepass.ts +32 -0
  487. package/src/registry/fireworks.ts +28 -0
  488. package/src/registry/github-copilot.ts +22 -0
  489. package/src/registry/gitlab-duo-workflow.ts +20 -0
  490. package/src/registry/gitlab-duo.ts +19 -0
  491. package/src/registry/gmi-cloud.ts +22 -0
  492. package/src/registry/google-antigravity.ts +22 -0
  493. package/src/registry/google-gemini-cli.ts +22 -0
  494. package/src/registry/google-vertex.ts +38 -0
  495. package/src/registry/google.ts +6 -0
  496. package/src/registry/groq.ts +6 -0
  497. package/src/registry/huggingface.ts +29 -0
  498. package/src/registry/index.ts +4 -0
  499. package/src/registry/kagi.ts +46 -0
  500. package/src/registry/kilo.ts +114 -0
  501. package/src/registry/kimi-code.ts +17 -0
  502. package/src/registry/litellm.ts +45 -0
  503. package/src/registry/llama-cpp.ts +35 -0
  504. package/src/registry/lm-studio.ts +31 -0
  505. package/src/registry/meta.ts +22 -0
  506. package/src/registry/minimax-code-cn.ts +12 -0
  507. package/src/registry/minimax-code.ts +12 -0
  508. package/src/registry/minimax.ts +6 -0
  509. package/src/registry/mistral.ts +6 -0
  510. package/src/registry/moonshot.ts +28 -0
  511. package/src/registry/nanogpt.ts +22 -0
  512. package/src/registry/novita.ts +25 -0
  513. package/src/registry/nvidia.ts +61 -0
  514. package/src/registry/oauth/anthropic-constants.ts +12 -0
  515. package/src/registry/oauth/anthropic.ts +346 -0
  516. package/src/registry/oauth/callback-server.ts +438 -0
  517. package/src/registry/oauth/cursor.ts +187 -0
  518. package/src/registry/oauth/device-code.ts +92 -0
  519. package/src/registry/oauth/devin.ts +124 -0
  520. package/src/registry/oauth/github-copilot.ts +369 -0
  521. package/src/registry/oauth/gitlab-duo-workflow.ts +146 -0
  522. package/src/registry/oauth/gitlab-duo.ts +222 -0
  523. package/src/registry/oauth/google-antigravity.ts +225 -0
  524. package/src/registry/oauth/google-gemini-cli.ts +297 -0
  525. package/src/registry/oauth/google-oauth-shared.ts +211 -0
  526. package/src/registry/oauth/index.ts +187 -0
  527. package/src/registry/oauth/kimi.ts +297 -0
  528. package/src/registry/oauth/minimax-code.ts +53 -0
  529. package/src/registry/oauth/oauth.html +317 -0
  530. package/src/registry/oauth/openai-codex.ts +384 -0
  531. package/src/registry/oauth/opencode.ts +50 -0
  532. package/src/registry/oauth/perplexity.ts +228 -0
  533. package/src/registry/oauth/pkce.ts +18 -0
  534. package/src/registry/oauth/types.ts +96 -0
  535. package/src/registry/oauth/wafer.ts +24 -0
  536. package/src/registry/oauth/xai-oauth.ts +559 -0
  537. package/src/registry/oauth/xiaomi.ts +211 -0
  538. package/src/registry/oauth/zai.ts +285 -0
  539. package/src/registry/ollama-cloud.ts +36 -0
  540. package/src/registry/ollama.ts +43 -0
  541. package/src/registry/openai-codex-device.ts +18 -0
  542. package/src/registry/openai-codex.ts +19 -0
  543. package/src/registry/openai.ts +6 -0
  544. package/src/registry/opencode-go.ts +12 -0
  545. package/src/registry/opencode-zen.ts +12 -0
  546. package/src/registry/openrouter.ts +28 -0
  547. package/src/registry/parallel.ts +45 -0
  548. package/src/registry/perplexity.ts +13 -0
  549. package/src/registry/qianfan.ts +27 -0
  550. package/src/registry/qwen-portal.ts +50 -0
  551. package/src/registry/registry.ts +182 -0
  552. package/src/registry/sakana.ts +22 -0
  553. package/src/registry/siliconflow-cn.ts +22 -0
  554. package/src/registry/siliconflow.ts +22 -0
  555. package/src/registry/synthetic.ts +21 -0
  556. package/src/registry/tavily.ts +45 -0
  557. package/src/registry/together.ts +22 -0
  558. package/src/registry/types.ts +86 -0
  559. package/src/registry/umans.ts +23 -0
  560. package/src/registry/venice.ts +33 -0
  561. package/src/registry/vercel-ai-gateway.ts +38 -0
  562. package/src/registry/vllm.ts +34 -0
  563. package/src/registry/wafer-serverless.ts +12 -0
  564. package/src/registry/xai-oauth.ts +17 -0
  565. package/src/registry/xai.ts +22 -0
  566. package/src/registry/xiaomi-token-plan-ams.ts +12 -0
  567. package/src/registry/xiaomi-token-plan-cn.ts +12 -0
  568. package/src/registry/xiaomi-token-plan-sgp.ts +12 -0
  569. package/src/registry/xiaomi.ts +12 -0
  570. package/src/registry/zai.ts +41 -0
  571. package/src/registry/zenmux.ts +22 -0
  572. package/src/registry/zhipu-coding-plan.ts +27 -0
  573. package/src/stream.ts +1944 -0
  574. package/src/types.ts +1243 -0
  575. package/src/usage/alibaba-token-plan.ts +230 -0
  576. package/src/usage/claude.ts +830 -0
  577. package/src/usage/cursor.ts +335 -0
  578. package/src/usage/gemini.ts +258 -0
  579. package/src/usage/github-copilot.ts +424 -0
  580. package/src/usage/google-antigravity.ts +497 -0
  581. package/src/usage/kimi.ts +277 -0
  582. package/src/usage/minimax-code.ts +291 -0
  583. package/src/usage/ollama.ts +41 -0
  584. package/src/usage/openai-codex-base-url.ts +35 -0
  585. package/src/usage/openai-codex-reset.ts +205 -0
  586. package/src/usage/openai-codex.ts +627 -0
  587. package/src/usage/opencode-go.ts +89 -0
  588. package/src/usage/shared.ts +10 -0
  589. package/src/usage/synthetic.ts +180 -0
  590. package/src/usage/umans.ts +192 -0
  591. package/src/usage/xai-oauth.ts +414 -0
  592. package/src/usage/zai.ts +370 -0
  593. package/src/usage.ts +411 -0
  594. package/src/utils/abort.ts +67 -0
  595. package/src/utils/anthropic-auth.ts +93 -0
  596. package/src/utils/aws-profile.ts +88 -0
  597. package/src/utils/block-symbols.ts +78 -0
  598. package/src/utils/deterministic-id.ts +20 -0
  599. package/src/utils/empty-completion-retry.ts +161 -0
  600. package/src/utils/event-stream.ts +202 -0
  601. package/src/utils/foundry.ts +8 -0
  602. package/src/utils/google-validation.ts +25 -0
  603. package/src/utils/harmony-leak.ts +500 -0
  604. package/src/utils/http-inspector.ts +196 -0
  605. package/src/utils/idle-iterator.ts +531 -0
  606. package/src/utils/leaked-thinking-stream.ts +483 -0
  607. package/src/utils/openai-http.ts +119 -0
  608. package/src/utils/openrouter-headers.ts +12 -0
  609. package/src/utils/parse-bind.ts +56 -0
  610. package/src/utils/provider-response.ts +30 -0
  611. package/src/utils/proxy.ts +314 -0
  612. package/src/utils/request-debug.ts +351 -0
  613. package/src/utils/retry-after.ts +121 -0
  614. package/src/utils/retry.ts +77 -0
  615. package/src/utils/schema/CONSTRAINTS.md +168 -0
  616. package/src/utils/schema/adapt.ts +36 -0
  617. package/src/utils/schema/compatibility.ts +435 -0
  618. package/src/utils/schema/dereference.ts +98 -0
  619. package/src/utils/schema/draft.ts +341 -0
  620. package/src/utils/schema/equality.ts +97 -0
  621. package/src/utils/schema/fields.ts +210 -0
  622. package/src/utils/schema/index.ts +14 -0
  623. package/src/utils/schema/json-schema-validator.ts +595 -0
  624. package/src/utils/schema/meta-validator.ts +167 -0
  625. package/src/utils/schema/normalize.ts +2314 -0
  626. package/src/utils/schema/spill.ts +43 -0
  627. package/src/utils/schema/stamps.ts +109 -0
  628. package/src/utils/schema/strict-tool-validation.ts +117 -0
  629. package/src/utils/schema/types.ts +10 -0
  630. package/src/utils/schema/typescript.ts +212 -0
  631. package/src/utils/schema/wire.ts +662 -0
  632. package/src/utils/sdk-stream-timeout.ts +43 -0
  633. package/src/utils/sse-debug.ts +18 -0
  634. package/src/utils/stream-markup-healing.ts +247 -0
  635. package/src/utils/thinking-loop.ts +552 -0
  636. package/src/utils/tool-call-loop-guard.ts +107 -0
  637. package/src/utils/tool-choice.ts +101 -0
  638. package/src/utils/validation.ts +1932 -0
  639. package/src/utils.ts +492 -0
@@ -0,0 +1,13 @@
1
+ import type { OAuthController, OAuthLoginCallbacks } from "./oauth/types.js";
2
+ /**
3
+ * Login to LiteLLM.
4
+ *
5
+ * Opens browser to LiteLLM setup docs, prompts user to paste their API key.
6
+ * Returns the API key directly (not OAuthCredentials - this isn't OAuth).
7
+ */
8
+ export declare function loginLiteLLM(options: OAuthController): Promise<string>;
9
+ export declare const litellmProvider: {
10
+ readonly id: "litellm";
11
+ readonly name: "LiteLLM";
12
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
13
+ };
@@ -0,0 +1,8 @@
1
+ import type { OAuthController, OAuthLoginCallbacks } from "./oauth/types.js";
2
+ export declare function loginLlamaCpp(options: OAuthController): Promise<string>;
3
+ export declare const llamaCppProvider: {
4
+ readonly id: "llama.cpp";
5
+ readonly name: "llama.cpp (Local OpenAI-compatible)";
6
+ readonly envKeys: "LLAMA_CPP_API_KEY";
7
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
8
+ };
@@ -0,0 +1,8 @@
1
+ import type { OAuthController, OAuthLoginCallbacks } from "./oauth/types.js";
2
+ export declare const DEFAULT_LOCAL_TOKEN = "lm-studio-local";
3
+ export declare function loginLmStudio(options: OAuthController): Promise<string>;
4
+ export declare const lmStudioProvider: {
5
+ readonly id: "lm-studio";
6
+ readonly name: "LM Studio (Local OpenAI-compatible)";
7
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
8
+ };
@@ -0,0 +1,7 @@
1
+ import type { OAuthLoginCallbacks } from "./oauth/types.js";
2
+ export declare const loginMeta: (options: import("./oauth/index.js").OAuthController) => Promise<string>;
3
+ export declare const metaProvider: {
4
+ readonly id: "meta";
5
+ readonly name: "Meta Model API";
6
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
7
+ };
@@ -0,0 +1,6 @@
1
+ import type { OAuthLoginCallbacks } from "./oauth/types.js";
2
+ export declare const minimaxCodeCnProvider: {
3
+ readonly id: "minimax-code-cn";
4
+ readonly name: "MiniMax Token Plan (China)";
5
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
6
+ };
@@ -0,0 +1,6 @@
1
+ import type { OAuthLoginCallbacks } from "./oauth/types.js";
2
+ export declare const minimaxCodeProvider: {
3
+ readonly id: "minimax-code";
4
+ readonly name: "MiniMax Token Plan (International)";
5
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
6
+ };
@@ -0,0 +1,4 @@
1
+ export declare const minimaxProvider: {
2
+ readonly id: "minimax";
3
+ readonly name: "MiniMax";
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const mistralProvider: {
2
+ readonly id: "mistral";
3
+ readonly name: "Mistral";
4
+ };
@@ -0,0 +1,7 @@
1
+ import type { OAuthLoginCallbacks } from "./oauth/types.js";
2
+ export declare const loginMoonshot: (options: import("./oauth/index.js").OAuthController) => Promise<string>;
3
+ export declare const moonshotProvider: {
4
+ readonly id: "moonshot";
5
+ readonly name: "Moonshot (Kimi API)";
6
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
7
+ };
@@ -0,0 +1,7 @@
1
+ import type { OAuthLoginCallbacks } from "./oauth/types.js";
2
+ export declare const loginNanoGPT: (options: import("./oauth/index.js").OAuthController) => Promise<string>;
3
+ export declare const nanogptProvider: {
4
+ readonly id: "nanogpt";
5
+ readonly name: "NanoGPT";
6
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
7
+ };
@@ -0,0 +1,6 @@
1
+ export declare const loginNovita: (options: import("./oauth/index.js").OAuthController) => Promise<string>;
2
+ export declare const novitaProvider: {
3
+ id: "novita";
4
+ name: string;
5
+ login: (options: import("./oauth/index.js").OAuthController) => Promise<string>;
6
+ };
@@ -0,0 +1,7 @@
1
+ import type { OAuthController, OAuthLoginCallbacks } from "./oauth/types.js";
2
+ export declare function loginNvidia(options: OAuthController): Promise<string>;
3
+ export declare const nvidiaProvider: {
4
+ readonly id: "nvidia";
5
+ readonly name: "NVIDIA";
6
+ readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
7
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Absolute lifetime of an Anthropic OAuth grant family, anchored at the
3
+ * interactive login. Refresh-token rotation does NOT extend it: ~30 days
4
+ * after authorization the token endpoint returns
5
+ * `invalid_grant: "Refresh token expired"` for the latest rotated token and
6
+ * only a fresh interactive login recovers the account. Observed against
7
+ * production (grants authorized 2026-06-20/06-25 died 30d later to the hour
8
+ * despite healthy 8h rotations); matches Claude Code's documented monthly
9
+ * re-login. Consumers use this to warn before the deadline — it is a display
10
+ * heuristic, not a wire contract.
11
+ */
12
+ export declare const ANTHROPIC_OAUTH_GRANT_TTL_MS: number;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Anthropic OAuth flow (Claude Pro/Max)
3
+ */
4
+ import type { FetchImpl } from "../../types.js";
5
+ import { OAuthCallbackFlow } from "./callback-server.js";
6
+ import type { OAuthController, OAuthCredentials } from "./types.js";
7
+ export { ANTHROPIC_OAUTH_GRANT_TTL_MS } from "./anthropic-constants.js";
8
+ export declare class AnthropicOAuthFlow extends OAuthCallbackFlow {
9
+ #private;
10
+ constructor(ctrl: OAuthController);
11
+ generateAuthUrl(state: string, redirectUri: string): Promise<{
12
+ url: string;
13
+ instructions?: string;
14
+ }>;
15
+ exchangeToken(code: string, state: string, redirectUri: string): Promise<OAuthCredentials>;
16
+ }
17
+ /**
18
+ * Login with Anthropic OAuth
19
+ */
20
+ export declare function loginAnthropic(ctrl: OAuthController): Promise<OAuthCredentials>;
21
+ /**
22
+ * Refresh Anthropic OAuth token
23
+ */
24
+ export declare function refreshAnthropicToken(refreshToken: string, fetchOverride?: FetchImpl): Promise<OAuthCredentials>;
@@ -0,0 +1,74 @@
1
+ import type { OAuthController, OAuthCredentials } from "./types.js";
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
+ /** Skip the local callback server entirely; the user pastes the code or redirect URL back. */
27
+ manualInputOnly?: boolean;
28
+ }
29
+ /**
30
+ * Abstract base class for OAuth flows with local callback servers.
31
+ */
32
+ export declare abstract class OAuthCallbackFlow {
33
+ #private;
34
+ ctrl: OAuthController;
35
+ preferredPort: number;
36
+ callbackPath: string;
37
+ callbackHostname: string;
38
+ redirectUri?: string;
39
+ allowPortFallback: boolean;
40
+ constructor(ctrl: OAuthController, preferredPortOrOptions: number | OAuthCallbackFlowOptions, callbackPath?: string);
41
+ /**
42
+ * Generate provider-specific authorization URL.
43
+ * @param state - CSRF state token
44
+ * @param redirectUri - The actual redirect URI to use (may differ from expected if port fallback occurred)
45
+ * @returns Authorization URL and optional instructions
46
+ */
47
+ abstract generateAuthUrl(state: string, redirectUri: string): Promise<{
48
+ url: string;
49
+ instructions?: string;
50
+ }>;
51
+ /**
52
+ * Exchange authorization code for OAuth tokens.
53
+ * @param code - Authorization code from callback
54
+ * @param state - CSRF state token
55
+ * @param redirectUri - The actual redirect URI used (must match authorization request)
56
+ * @returns OAuth credentials
57
+ */
58
+ abstract exchangeToken(code: string, state: string, redirectUri: string): Promise<OAuthCredentials>;
59
+ /**
60
+ * Generate CSRF state token. Override if provider needs custom state generation.
61
+ */
62
+ generateState(): string;
63
+ /**
64
+ * Execute the OAuth login flow.
65
+ */
66
+ login(): Promise<OAuthCredentials>;
67
+ }
68
+ /**
69
+ * Parse a redirect URL or code string to extract code and state.
70
+ */
71
+ export declare function parseCallbackInput(input: string): {
72
+ code?: string;
73
+ state?: string;
74
+ };
@@ -0,0 +1,16 @@
1
+ import type { OAuthCredentials } from "./types.js";
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 extractCursorAccessTokenUserId(accessToken: string): string | undefined;
16
+ export declare function isCursorTokenExpiringSoon(token: string, thresholdSeconds?: number): boolean;
@@ -0,0 +1,25 @@
1
+ /** Result returned by one OAuth device-code polling attempt. */
2
+ export type OAuthDeviceCodePollResult<T> = {
3
+ status: "complete";
4
+ value: T;
5
+ } | {
6
+ status: "pending";
7
+ } | {
8
+ status: "slow_down";
9
+ } | {
10
+ status: "failed";
11
+ message: string;
12
+ };
13
+ /** Options for polling an RFC 8628-style OAuth device-code flow. */
14
+ export interface OAuthDeviceCodeFlowOptions<T> {
15
+ /** Poll the provider once and classify the response. */
16
+ poll(): OAuthDeviceCodePollResult<T> | Promise<OAuthDeviceCodePollResult<T>>;
17
+ /** Provider-requested polling cadence; defaults to RFC 8628's five seconds. */
18
+ intervalSeconds?: number;
19
+ /** Provider-issued expiry window for the device code. */
20
+ expiresInSeconds?: number;
21
+ /** Cancels the flow with the legacy "Login cancelled" error. */
22
+ signal?: AbortSignal;
23
+ }
24
+ /** Poll an OAuth device-code flow until completion, provider failure, timeout, or cancellation. */
25
+ export declare function pollOAuthDeviceCodeFlow<T>(options: OAuthDeviceCodeFlowOptions<T>): Promise<T>;
@@ -0,0 +1,5 @@
1
+ import type { OAuthController, OAuthCredentials } from "./types.js";
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.js";
2
+ import type { OAuthCredentials } from "./types.js";
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.js";
2
+ import type { OAuthCredentials, OAuthLoginCallbacks } from "./types.js";
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.js";
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.js";
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,22 @@
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.js";
6
+ interface LongRunningOperationResponse {
7
+ name?: string;
8
+ done?: boolean;
9
+ response?: {
10
+ cloudaicompanionProject?: {
11
+ id?: string;
12
+ };
13
+ };
14
+ }
15
+ export declare const POLL_MAX_ATTEMPTS = 24;
16
+ export declare function pollOperation(operationName: string, headers: Record<string, string>, signal: AbortSignal | undefined, onProgress?: (message: string) => void): Promise<LongRunningOperationResponse>;
17
+ export declare function loginGeminiCli(ctrl: OAuthController): Promise<OAuthCredentials>;
18
+ /**
19
+ * Refresh Google Cloud Code Assist token
20
+ */
21
+ export declare function refreshGoogleCloudToken(refreshToken: string, projectId: string): Promise<OAuthCredentials>;
22
+ export {};
@@ -0,0 +1,56 @@
1
+ import { OAuthCallbackFlow } from "./callback-server.js";
2
+ import type { OAuthController, OAuthCredentials } from "./types.js";
3
+ /**
4
+ * Per-request timeout for the post-callback provisioning phase (token exchange,
5
+ * user-info, project discovery/onboarding, LRO polling). These Cloud Code
6
+ * Assist calls normally settle in well under this window; a longer stall means
7
+ * a hung endpoint that must surface a login error instead of hanging forever.
8
+ * The callback server's own 300s deadline covers only the browser-callback wait
9
+ * ({@link OAuthCallbackFlow}) and does not gate this phase.
10
+ */
11
+ export declare const OAUTH_REQUEST_TIMEOUT_MS = 30000;
12
+ /** Options for {@link oauthFetch}. */
13
+ export interface OAuthFetchOptions {
14
+ /** Provider id recorded on any {@link AIError.OAuthError} raised. */
15
+ provider: string;
16
+ /** Controller signal; when it aborts, the in-flight request is cancelled. */
17
+ signal?: AbortSignal;
18
+ /** Override the per-request timeout (defaults to {@link OAUTH_REQUEST_TIMEOUT_MS}). */
19
+ timeoutMs?: number;
20
+ }
21
+ /**
22
+ * Throw {@link AIError.LoginCancelledError} when the controller signal has
23
+ * already aborted. Gates each provisioning round-trip, which the callback-wait
24
+ * cancellation checks in {@link OAuthCallbackFlow} do not reach.
25
+ */
26
+ export declare function throwIfLoginCancelled(signal: AbortSignal | undefined): void;
27
+ /**
28
+ * `fetch` for the provisioning phase: composes the controller signal with a
29
+ * per-request timeout so a stalled endpoint aborts instead of hanging login,
30
+ * and user cancellation aborts the in-flight request. Cancellation surfaces as
31
+ * {@link AIError.LoginCancelledError}; a timeout surfaces as an
32
+ * {@link AIError.OAuthError} with `kind: "timeout"`.
33
+ */
34
+ export declare function oauthFetch(url: string, init: RequestInit, { provider, signal, timeoutMs }: OAuthFetchOptions): Promise<Response>;
35
+ export interface GoogleOAuthFlowConfig {
36
+ /** Provider id used in progress/error reporting and per-request fetches. */
37
+ provider: string;
38
+ clientId: string;
39
+ clientSecret: string;
40
+ authUrl: string;
41
+ tokenUrl: string;
42
+ scopes: string[];
43
+ callbackPort: number;
44
+ callbackPath: string;
45
+ discoverProject: (accessToken: string, onProgress?: (message: string) => void, signal?: AbortSignal) => Promise<string>;
46
+ }
47
+ export declare class GoogleOAuthFlow extends OAuthCallbackFlow {
48
+ private readonly config;
49
+ constructor(ctrl: OAuthController, config: GoogleOAuthFlowConfig);
50
+ generateAuthUrl(state: string, redirectUri: string): Promise<{
51
+ url: string;
52
+ instructions?: string;
53
+ }>;
54
+ exchangeToken(code: string, _state: string, redirectUri: string): Promise<OAuthCredentials>;
55
+ }
56
+ export declare function runGoogleOAuthLogin(ctrl: OAuthController, config: GoogleOAuthFlowConfig): Promise<OAuthCredentials>;
@@ -0,0 +1,45 @@
1
+ import type { OAuthCredentials, OAuthProvider, OAuthProviderId, OAuthProviderInfo, OAuthProviderInterface } from "./types.js";
2
+ export * from "./anthropic.js";
3
+ export * from "./device-code.js";
4
+ export type * from "./types.js";
5
+ /**
6
+ * Register a custom OAuth provider.
7
+ */
8
+ export declare function registerOAuthProvider(provider: OAuthProviderInterface): void;
9
+ /**
10
+ * Remove a custom OAuth provider by ID.
11
+ */
12
+ export declare function unregisterOAuthProvider(id: string): void;
13
+ /**
14
+ * Get a custom OAuth provider by ID.
15
+ */
16
+ export declare function getOAuthProvider(id: OAuthProviderId): OAuthProviderInterface | undefined;
17
+ /**
18
+ * Remove all custom OAuth providers registered by a source.
19
+ */
20
+ export declare function unregisterOAuthProviders(sourceId: string): void;
21
+ /**
22
+ * Refresh token for any OAuth provider.
23
+ * Saves the new credentials and returns the new access token.
24
+ */
25
+ export declare function refreshOAuthToken(provider: OAuthProvider, credentials: OAuthCredentials): Promise<OAuthCredentials>;
26
+ /**
27
+ * Build API-key bytes for a provider from an already-fresh OAuth credential.
28
+ *
29
+ * Refresh is owned by AuthStorage. This helper deliberately refuses expired
30
+ * credentials so it cannot POST broker redaction sentinels to upstream token
31
+ * endpoints as a side channel.
32
+ *
33
+ * For providers that need credential metadata at request time, returns
34
+ * JSON-encoded credentials plus expiry metadata for diagnostics/edge guards.
35
+ * @returns API key string, or null if no credentials
36
+ * @throws Error if the credential is expired and must be refreshed upstream
37
+ */
38
+ export declare function getOAuthApiKey(provider: OAuthProvider, credentials: Record<string, OAuthCredentials>): Promise<{
39
+ newCredentials: OAuthCredentials;
40
+ apiKey: string;
41
+ } | null>;
42
+ /**
43
+ * Get list of OAuth providers.
44
+ */
45
+ 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.js";
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.js").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.js").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.js";
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.js";
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.js";
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
+ }>;