@vib-rato/ai 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (525) hide show
  1. package/CHANGELOG.md +3354 -0
  2. package/README.md +1194 -0
  3. package/dist/types/adapter-internals/provider-safety-stop.d.ts +45 -0
  4. package/dist/types/api-registry.d.ts +30 -0
  5. package/dist/types/auth-broker/client.d.ts +80 -0
  6. package/dist/types/auth-broker/index.d.ts +5 -0
  7. package/dist/types/auth-broker/redact.d.ts +7 -0
  8. package/dist/types/auth-broker/refresher.d.ts +25 -0
  9. package/dist/types/auth-broker/remote-store.d.ts +153 -0
  10. package/dist/types/auth-broker/server.d.ts +32 -0
  11. package/dist/types/auth-broker/types.d.ts +132 -0
  12. package/dist/types/auth-broker/wire-schemas.d.ts +555 -0
  13. package/dist/types/auth-gateway/http.d.ts +40 -0
  14. package/dist/types/auth-gateway/index.d.ts +3 -0
  15. package/dist/types/auth-gateway/server.d.ts +70 -0
  16. package/dist/types/auth-gateway/types.d.ts +129 -0
  17. package/dist/types/auth-storage.d.ts +1074 -0
  18. package/dist/types/cli.d.ts +2 -0
  19. package/dist/types/codex-tools.d.ts +4 -0
  20. package/dist/types/context-cap-policy.d.ts +68 -0
  21. package/dist/types/core.d.ts +35 -0
  22. package/dist/types/index.d.ts +55 -0
  23. package/dist/types/model-cache.d.ts +24 -0
  24. package/dist/types/model-manager.d.ts +77 -0
  25. package/dist/types/model-pricing.d.ts +3 -0
  26. package/dist/types/model-retirements.d.ts +6 -0
  27. package/dist/types/model-thinking.d.ts +100 -0
  28. package/dist/types/models.d.ts +21 -0
  29. package/dist/types/openai-completions-compat.d.ts +34 -0
  30. package/dist/types/provider-details.d.ts +24 -0
  31. package/dist/types/provider-models/bundled-references.d.ts +4 -0
  32. package/dist/types/provider-models/descriptors.d.ts +48 -0
  33. package/dist/types/provider-models/google.d.ts +20 -0
  34. package/dist/types/provider-models/index.d.ts +5 -0
  35. package/dist/types/provider-models/ollama.d.ts +7 -0
  36. package/dist/types/provider-models/openai-compat.d.ts +293 -0
  37. package/dist/types/provider-models/special.d.ts +29 -0
  38. package/dist/types/providers/amazon-bedrock.d.ts +60 -0
  39. package/dist/types/providers/anthropic-messages-server-schema.d.ts +450 -0
  40. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  41. package/dist/types/providers/anthropic.d.ts +280 -0
  42. package/dist/types/providers/aws-credential-config.d.ts +19 -0
  43. package/dist/types/providers/aws-credentials.d.ts +43 -0
  44. package/dist/types/providers/aws-eventstream.d.ts +38 -0
  45. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  46. package/dist/types/providers/azure-openai-responses.d.ts +22 -0
  47. package/dist/types/providers/composer-discipline.d.ts +32 -0
  48. package/dist/types/providers/cursor/client-version.d.ts +10 -0
  49. package/dist/types/providers/cursor/exec-modern.d.ts +98 -0
  50. package/dist/types/providers/cursor/gen/agent_pb.d.ts +16769 -0
  51. package/dist/types/providers/cursor-pi-args.d.ts +119 -0
  52. package/dist/types/providers/cursor.d.ts +72 -0
  53. package/dist/types/providers/dashscope-token-plan-headers.d.ts +57 -0
  54. package/dist/types/providers/error-message.d.ts +27 -0
  55. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  56. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  57. package/dist/types/providers/google-auth.d.ts +26 -0
  58. package/dist/types/providers/google-gemini-cli.d.ts +75 -0
  59. package/dist/types/providers/google-gemini-headers.d.ts +43 -0
  60. package/dist/types/providers/google-shared.d.ts +183 -0
  61. package/dist/types/providers/google-types.d.ts +138 -0
  62. package/dist/types/providers/google-vertex.d.ts +11 -0
  63. package/dist/types/providers/google.d.ts +4 -0
  64. package/dist/types/providers/grammar.d.ts +1 -0
  65. package/dist/types/providers/kimi.d.ts +27 -0
  66. package/dist/types/providers/kiro-api-key.d.ts +50 -0
  67. package/dist/types/providers/kiro-codewhisperer.d.ts +11 -0
  68. package/dist/types/providers/mock.d.ts +189 -0
  69. package/dist/types/providers/ollama.d.ts +41 -0
  70. package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
  71. package/dist/types/providers/openai-bounded-rate-limits.d.ts +3 -0
  72. package/dist/types/providers/openai-chat-server-schema.d.ts +1733 -0
  73. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  74. package/dist/types/providers/openai-codex/constants.d.ts +26 -0
  75. package/dist/types/providers/openai-codex/request-transformer.d.ts +50 -0
  76. package/dist/types/providers/openai-codex/response-handler.d.ts +18 -0
  77. package/dist/types/providers/openai-codex-responses.d.ts +71 -0
  78. package/dist/types/providers/openai-completions-compat.d.ts +6 -0
  79. package/dist/types/providers/openai-completions.d.ts +35 -0
  80. package/dist/types/providers/openai-opencodex-responses.d.ts +10 -0
  81. package/dist/types/providers/openai-request-transform.d.ts +4 -0
  82. package/dist/types/providers/openai-responses-server-schema.d.ts +392 -0
  83. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  84. package/dist/types/providers/openai-responses-shared.d.ts +106 -0
  85. package/dist/types/providers/openai-responses.d.ts +37 -0
  86. package/dist/types/providers/pi-native-client.d.ts +29 -0
  87. package/dist/types/providers/pi-native-server.d.ts +60 -0
  88. package/dist/types/providers/register-builtins.d.ts +59 -0
  89. package/dist/types/providers/synthetic.d.ts +26 -0
  90. package/dist/types/providers/transform-messages.d.ts +33 -0
  91. package/dist/types/providers/vision-guard.d.ts +8 -0
  92. package/dist/types/rate-limit-utils.d.ts +19 -0
  93. package/dist/types/stream.d.ts +45 -0
  94. package/dist/types/types.d.ts +1073 -0
  95. package/dist/types/usage/claude.d.ts +3 -0
  96. package/dist/types/usage/gemini.d.ts +2 -0
  97. package/dist/types/usage/github-copilot.d.ts +7 -0
  98. package/dist/types/usage/google-antigravity.d.ts +2 -0
  99. package/dist/types/usage/grok-cli.d.ts +17 -0
  100. package/dist/types/usage/kimi.d.ts +4 -0
  101. package/dist/types/usage/minimax-code.d.ts +2 -0
  102. package/dist/types/usage/openai-codex.d.ts +3 -0
  103. package/dist/types/usage/shared.d.ts +1 -0
  104. package/dist/types/usage/zai.d.ts +2 -0
  105. package/dist/types/usage.d.ts +264 -0
  106. package/dist/types/utils/abort.d.ts +19 -0
  107. package/dist/types/utils/anthropic-auth.d.ts +39 -0
  108. package/dist/types/utils/block-symbols.d.ts +6 -0
  109. package/dist/types/utils/discovery/antigravity.d.ts +67 -0
  110. package/dist/types/utils/discovery/codex.d.ts +38 -0
  111. package/dist/types/utils/discovery/cursor.d.ts +49 -0
  112. package/dist/types/utils/discovery/gemini.d.ts +25 -0
  113. package/dist/types/utils/discovery/index.d.ts +4 -0
  114. package/dist/types/utils/discovery/openai-compatible.d.ts +81 -0
  115. package/dist/types/utils/event-stream.d.ts +41 -0
  116. package/dist/types/utils/fallback-transport.d.ts +110 -0
  117. package/dist/types/utils/fireworks-model-id.d.ts +10 -0
  118. package/dist/types/utils/foundry.d.ts +11 -0
  119. package/dist/types/utils/h2-fetch.d.ts +22 -0
  120. package/dist/types/utils/http-inspector.d.ts +59 -0
  121. package/dist/types/utils/idle-iterator.d.ts +122 -0
  122. package/dist/types/utils/json-parse.d.ts +98 -0
  123. package/dist/types/utils/oauth/alibaba-token-plan.d.ts +19 -0
  124. package/dist/types/utils/oauth/anthropic.d.ts +41 -0
  125. package/dist/types/utils/oauth/api-key-login.d.ts +38 -0
  126. package/dist/types/utils/oauth/api-key-validation.d.ts +39 -0
  127. package/dist/types/utils/oauth/bizrouter.d.ts +1 -0
  128. package/dist/types/utils/oauth/callback-server.d.ts +80 -0
  129. package/dist/types/utils/oauth/cerebras.d.ts +1 -0
  130. package/dist/types/utils/oauth/cloudflare-ai-gateway.d.ts +18 -0
  131. package/dist/types/utils/oauth/commandcode.d.ts +1 -0
  132. package/dist/types/utils/oauth/cursor.d.ts +15 -0
  133. package/dist/types/utils/oauth/deepinfra.d.ts +1 -0
  134. package/dist/types/utils/oauth/deepseek.d.ts +10 -0
  135. package/dist/types/utils/oauth/firepass.d.ts +1 -0
  136. package/dist/types/utils/oauth/fireworks.d.ts +1 -0
  137. package/dist/types/utils/oauth/fugu.d.ts +1 -0
  138. package/dist/types/utils/oauth/github-copilot.d.ts +38 -0
  139. package/dist/types/utils/oauth/gitlab-duo.d.ts +3 -0
  140. package/dist/types/utils/oauth/glm-zcode.d.ts +71 -0
  141. package/dist/types/utils/oauth/google-antigravity.d.ts +11 -0
  142. package/dist/types/utils/oauth/google-gemini-cli.d.ts +10 -0
  143. package/dist/types/utils/oauth/google-oauth-shared.d.ts +28 -0
  144. package/dist/types/utils/oauth/huggingface.d.ts +19 -0
  145. package/dist/types/utils/oauth/index.d.ts +39 -0
  146. package/dist/types/utils/oauth/kagi.d.ts +17 -0
  147. package/dist/types/utils/oauth/kilo.d.ts +5 -0
  148. package/dist/types/utils/oauth/kimi.d.ts +17 -0
  149. package/dist/types/utils/oauth/kiro.d.ts +71 -0
  150. package/dist/types/utils/oauth/litellm.d.ts +18 -0
  151. package/dist/types/utils/oauth/lm-studio.d.ts +17 -0
  152. package/dist/types/utils/oauth/mara.d.ts +1 -0
  153. package/dist/types/utils/oauth/minimax-code.d.ts +28 -0
  154. package/dist/types/utils/oauth/moonshot.d.ts +1 -0
  155. package/dist/types/utils/oauth/nanogpt.d.ts +1 -0
  156. package/dist/types/utils/oauth/nvidia.d.ts +18 -0
  157. package/dist/types/utils/oauth/ollama-cloud.d.ts +2 -0
  158. package/dist/types/utils/oauth/ollama.d.ts +18 -0
  159. package/dist/types/utils/oauth/openai-codex.d.ts +21 -0
  160. package/dist/types/utils/oauth/opencode.d.ts +18 -0
  161. package/dist/types/utils/oauth/opengateway.d.ts +1 -0
  162. package/dist/types/utils/oauth/openrouter.d.ts +1 -0
  163. package/dist/types/utils/oauth/parallel.d.ts +17 -0
  164. package/dist/types/utils/oauth/perplexity.d.ts +4 -0
  165. package/dist/types/utils/oauth/pkce.d.ts +8 -0
  166. package/dist/types/utils/oauth/qianfan.d.ts +17 -0
  167. package/dist/types/utils/oauth/qwen-portal.d.ts +19 -0
  168. package/dist/types/utils/oauth/sglang.d.ts +16 -0
  169. package/dist/types/utils/oauth/synthetic.d.ts +1 -0
  170. package/dist/types/utils/oauth/tavily.d.ts +17 -0
  171. package/dist/types/utils/oauth/together.d.ts +1 -0
  172. package/dist/types/utils/oauth/types.d.ts +56 -0
  173. package/dist/types/utils/oauth/venice.d.ts +18 -0
  174. package/dist/types/utils/oauth/vercel-ai-gateway.d.ts +18 -0
  175. package/dist/types/utils/oauth/vllm.d.ts +16 -0
  176. package/dist/types/utils/oauth/xai.d.ts +30 -0
  177. package/dist/types/utils/oauth/xiaomi.d.ts +25 -0
  178. package/dist/types/utils/oauth/zai.d.ts +18 -0
  179. package/dist/types/utils/oauth/zenmux.d.ts +1 -0
  180. package/dist/types/utils/overflow.d.ts +14 -0
  181. package/dist/types/utils/parse-bind.d.ts +26 -0
  182. package/dist/types/utils/provider-response.d.ts +6 -0
  183. package/dist/types/utils/provider-safety-stop.d.ts +8 -0
  184. package/dist/types/utils/proxy.d.ts +7 -0
  185. package/dist/types/utils/retry-after.d.ts +3 -0
  186. package/dist/types/utils/retry-budget.d.ts +1 -0
  187. package/dist/types/utils/retry.d.ts +29 -0
  188. package/dist/types/utils/schema/adapt.d.ts +24 -0
  189. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  190. package/dist/types/utils/schema/dereference.d.ts +11 -0
  191. package/dist/types/utils/schema/draft.d.ts +10 -0
  192. package/dist/types/utils/schema/equality.d.ts +4 -0
  193. package/dist/types/utils/schema/fields.d.ts +49 -0
  194. package/dist/types/utils/schema/index.d.ts +14 -0
  195. package/dist/types/utils/schema/json-schema-validator.d.ts +12 -0
  196. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  197. package/dist/types/utils/schema/normalize.d.ts +93 -0
  198. package/dist/types/utils/schema/root-combinator.d.ts +12 -0
  199. package/dist/types/utils/schema/spill.d.ts +8 -0
  200. package/dist/types/utils/schema/stamps.d.ts +25 -0
  201. package/dist/types/utils/schema/types.d.ts +4 -0
  202. package/dist/types/utils/schema/wire.d.ts +54 -0
  203. package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
  204. package/dist/types/utils/sse-debug.d.ts +10 -0
  205. package/dist/types/utils/tool-call-healing.d.ts +80 -0
  206. package/dist/types/utils/tool-choice-capability.d.ts +57 -0
  207. package/dist/types/utils/tool-choice.d.ts +50 -0
  208. package/dist/types/utils/validation.d.ts +17 -0
  209. package/dist/types/utils.d.ts +117 -0
  210. package/package.json +152 -0
  211. package/src/adapter-internals/provider-safety-stop.d.ts +45 -0
  212. package/src/adapter-internals/provider-safety-stop.ts +156 -0
  213. package/src/api-registry.d.ts +30 -0
  214. package/src/api-registry.ts +96 -0
  215. package/src/auth-broker/client.ts +444 -0
  216. package/src/auth-broker/index.ts +5 -0
  217. package/src/auth-broker/redact.ts +39 -0
  218. package/src/auth-broker/refresher.ts +130 -0
  219. package/src/auth-broker/remote-store.ts +1576 -0
  220. package/src/auth-broker/server.ts +764 -0
  221. package/src/auth-broker/types.ts +164 -0
  222. package/src/auth-broker/wire-schemas.ts +261 -0
  223. package/src/auth-gateway/http.ts +198 -0
  224. package/src/auth-gateway/index.ts +3 -0
  225. package/src/auth-gateway/server.ts +1315 -0
  226. package/src/auth-gateway/types.ts +160 -0
  227. package/src/auth-storage.ts +7312 -0
  228. package/src/cli.ts +269 -0
  229. package/src/codex-tools.d.ts +4 -0
  230. package/src/codex-tools.ts +24 -0
  231. package/src/context-cap-policy.d.ts +68 -0
  232. package/src/context-cap-policy.ts +123 -0
  233. package/src/core.ts +44 -0
  234. package/src/index.ts +61 -0
  235. package/src/model-cache.ts +236 -0
  236. package/src/model-manager.ts +744 -0
  237. package/src/model-pricing.d.ts +3 -0
  238. package/src/model-pricing.ts +68 -0
  239. package/src/model-retirements.d.ts +6 -0
  240. package/src/model-retirements.ts +19 -0
  241. package/src/model-thinking.d.ts +100 -0
  242. package/src/model-thinking.ts +1054 -0
  243. package/src/models.d.ts +21 -0
  244. package/src/models.json +94672 -0
  245. package/src/models.json.d.ts +9 -0
  246. package/src/models.ts +126 -0
  247. package/src/openai-completions-compat.d.ts +34 -0
  248. package/src/openai-completions-compat.ts +383 -0
  249. package/src/prompts/composer-bash-policy-recovery.md +1 -0
  250. package/src/prompts/cursor-composer-bash-policy-recovery.md +1 -0
  251. package/src/prompts/cursor-composer-edit-discipline.md +7 -0
  252. package/src/prompts/turn-aborted-guidance.md +4 -0
  253. package/src/provider-details.ts +90 -0
  254. package/src/provider-models/bundled-references.ts +38 -0
  255. package/src/provider-models/descriptors.ts +392 -0
  256. package/src/provider-models/google.ts +92 -0
  257. package/src/provider-models/index.ts +5 -0
  258. package/src/provider-models/ollama.ts +159 -0
  259. package/src/provider-models/openai-compat.ts +2920 -0
  260. package/src/provider-models/special.ts +185 -0
  261. package/src/providers/amazon-bedrock.d.ts +60 -0
  262. package/src/providers/amazon-bedrock.ts +939 -0
  263. package/src/providers/anthropic-messages-server-schema.ts +229 -0
  264. package/src/providers/anthropic-messages-server.ts +839 -0
  265. package/src/providers/anthropic.d.ts +280 -0
  266. package/src/providers/anthropic.ts +4421 -0
  267. package/src/providers/aws-credential-config.d.ts +19 -0
  268. package/src/providers/aws-credential-config.ts +179 -0
  269. package/src/providers/aws-credentials.d.ts +43 -0
  270. package/src/providers/aws-credentials.ts +457 -0
  271. package/src/providers/aws-eventstream.d.ts +38 -0
  272. package/src/providers/aws-eventstream.ts +185 -0
  273. package/src/providers/aws-sigv4.d.ts +55 -0
  274. package/src/providers/aws-sigv4.ts +218 -0
  275. package/src/providers/azure-openai-responses.d.ts +22 -0
  276. package/src/providers/azure-openai-responses.ts +447 -0
  277. package/src/providers/composer-discipline.d.ts +32 -0
  278. package/src/providers/composer-discipline.ts +95 -0
  279. package/src/providers/cursor/client-version.d.ts +10 -0
  280. package/src/providers/cursor/client-version.ts +10 -0
  281. package/src/providers/cursor/exec-modern.d.ts +98 -0
  282. package/src/providers/cursor/exec-modern.ts +497 -0
  283. package/src/providers/cursor/gen/agent_pb.d.ts +16769 -0
  284. package/src/providers/cursor/gen/agent_pb.ts +19780 -0
  285. package/src/providers/cursor/proto/agent.proto +4533 -0
  286. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  287. package/src/providers/cursor/proto/buf.yaml +17 -0
  288. package/src/providers/cursor-pi-args.d.ts +119 -0
  289. package/src/providers/cursor-pi-args.ts +187 -0
  290. package/src/providers/cursor.d.ts +72 -0
  291. package/src/providers/cursor.ts +3396 -0
  292. package/src/providers/dashscope-token-plan-headers.d.ts +57 -0
  293. package/src/providers/dashscope-token-plan-headers.ts +84 -0
  294. package/src/providers/error-message.d.ts +27 -0
  295. package/src/providers/error-message.ts +21 -0
  296. package/src/providers/github-copilot-headers.d.ts +40 -0
  297. package/src/providers/github-copilot-headers.ts +140 -0
  298. package/src/providers/gitlab-duo.d.ts +27 -0
  299. package/src/providers/gitlab-duo.ts +393 -0
  300. package/src/providers/google-auth.d.ts +26 -0
  301. package/src/providers/google-auth.ts +262 -0
  302. package/src/providers/google-gemini-cli.d.ts +75 -0
  303. package/src/providers/google-gemini-cli.ts +969 -0
  304. package/src/providers/google-gemini-headers.d.ts +43 -0
  305. package/src/providers/google-gemini-headers.ts +100 -0
  306. package/src/providers/google-shared.d.ts +183 -0
  307. package/src/providers/google-shared.ts +1105 -0
  308. package/src/providers/google-types.d.ts +138 -0
  309. package/src/providers/google-types.ts +167 -0
  310. package/src/providers/google-vertex.d.ts +11 -0
  311. package/src/providers/google-vertex.ts +124 -0
  312. package/src/providers/google.d.ts +4 -0
  313. package/src/providers/google.ts +41 -0
  314. package/src/providers/grammar.d.ts +1 -0
  315. package/src/providers/grammar.ts +70 -0
  316. package/src/providers/kimi.d.ts +27 -0
  317. package/src/providers/kimi.ts +52 -0
  318. package/src/providers/kiro-api-key.d.ts +50 -0
  319. package/src/providers/kiro-api-key.ts +786 -0
  320. package/src/providers/kiro-codewhisperer.d.ts +11 -0
  321. package/src/providers/kiro-codewhisperer.ts +600 -0
  322. package/src/providers/mock.ts +526 -0
  323. package/src/providers/ollama.d.ts +41 -0
  324. package/src/providers/ollama.ts +645 -0
  325. package/src/providers/openai-anthropic-shim.d.ts +31 -0
  326. package/src/providers/openai-anthropic-shim.ts +156 -0
  327. package/src/providers/openai-bounded-rate-limits.d.ts +3 -0
  328. package/src/providers/openai-bounded-rate-limits.ts +57 -0
  329. package/src/providers/openai-chat-server-schema.ts +254 -0
  330. package/src/providers/openai-chat-server.ts +724 -0
  331. package/src/providers/openai-codex/constants.d.ts +26 -0
  332. package/src/providers/openai-codex/constants.ts +43 -0
  333. package/src/providers/openai-codex/request-transformer.d.ts +50 -0
  334. package/src/providers/openai-codex/request-transformer.ts +219 -0
  335. package/src/providers/openai-codex/response-handler.d.ts +18 -0
  336. package/src/providers/openai-codex/response-handler.ts +111 -0
  337. package/src/providers/openai-codex-responses.d.ts +71 -0
  338. package/src/providers/openai-codex-responses.ts +3288 -0
  339. package/src/providers/openai-completions-compat.d.ts +6 -0
  340. package/src/providers/openai-completions-compat.ts +6 -0
  341. package/src/providers/openai-completions.d.ts +35 -0
  342. package/src/providers/openai-completions.ts +2294 -0
  343. package/src/providers/openai-opencodex-responses.ts +174 -0
  344. package/src/providers/openai-request-transform.d.ts +4 -0
  345. package/src/providers/openai-request-transform.ts +136 -0
  346. package/src/providers/openai-responses-server-schema.ts +290 -0
  347. package/src/providers/openai-responses-server.ts +1268 -0
  348. package/src/providers/openai-responses-shared.d.ts +106 -0
  349. package/src/providers/openai-responses-shared.ts +1253 -0
  350. package/src/providers/openai-responses.d.ts +37 -0
  351. package/src/providers/openai-responses.ts +989 -0
  352. package/src/providers/pi-native-client.d.ts +29 -0
  353. package/src/providers/pi-native-client.ts +243 -0
  354. package/src/providers/pi-native-server.ts +488 -0
  355. package/src/providers/register-builtins.d.ts +59 -0
  356. package/src/providers/register-builtins.ts +544 -0
  357. package/src/providers/synthetic.d.ts +26 -0
  358. package/src/providers/synthetic.ts +50 -0
  359. package/src/providers/transform-messages.d.ts +33 -0
  360. package/src/providers/transform-messages.ts +408 -0
  361. package/src/providers/vision-guard.d.ts +8 -0
  362. package/src/providers/vision-guard.ts +31 -0
  363. package/src/rate-limit-utils.d.ts +19 -0
  364. package/src/rate-limit-utils.ts +102 -0
  365. package/src/stream.d.ts +45 -0
  366. package/src/stream.ts +1306 -0
  367. package/src/types.d.ts +1073 -0
  368. package/src/types.ts +1305 -0
  369. package/src/usage/claude.ts +449 -0
  370. package/src/usage/gemini.ts +250 -0
  371. package/src/usage/github-copilot.ts +421 -0
  372. package/src/usage/google-antigravity.ts +201 -0
  373. package/src/usage/grok-cli.ts +259 -0
  374. package/src/usage/kimi.ts +285 -0
  375. package/src/usage/minimax-code.ts +31 -0
  376. package/src/usage/openai-codex.ts +503 -0
  377. package/src/usage/shared.ts +10 -0
  378. package/src/usage/zai.ts +247 -0
  379. package/src/usage.ts +190 -0
  380. package/src/utils/abort.d.ts +19 -0
  381. package/src/utils/abort.ts +51 -0
  382. package/src/utils/anthropic-auth.ts +95 -0
  383. package/src/utils/block-symbols.d.ts +6 -0
  384. package/src/utils/block-symbols.ts +11 -0
  385. package/src/utils/discovery/antigravity.ts +275 -0
  386. package/src/utils/discovery/codex.ts +362 -0
  387. package/src/utils/discovery/cursor.ts +388 -0
  388. package/src/utils/discovery/gemini.ts +248 -0
  389. package/src/utils/discovery/index.ts +4 -0
  390. package/src/utils/discovery/openai-compatible.ts +379 -0
  391. package/src/utils/event-stream.d.ts +41 -0
  392. package/src/utils/event-stream.ts +269 -0
  393. package/src/utils/fallback-transport.d.ts +110 -0
  394. package/src/utils/fallback-transport.ts +411 -0
  395. package/src/utils/fireworks-model-id.d.ts +10 -0
  396. package/src/utils/fireworks-model-id.ts +30 -0
  397. package/src/utils/foundry.d.ts +11 -0
  398. package/src/utils/foundry.ts +18 -0
  399. package/src/utils/h2-fetch.ts +60 -0
  400. package/src/utils/http-inspector.d.ts +59 -0
  401. package/src/utils/http-inspector.ts +380 -0
  402. package/src/utils/idle-iterator.d.ts +122 -0
  403. package/src/utils/idle-iterator.ts +410 -0
  404. package/src/utils/json-parse.d.ts +98 -0
  405. package/src/utils/json-parse.ts +607 -0
  406. package/src/utils/oauth/alibaba-token-plan.ts +60 -0
  407. package/src/utils/oauth/anthropic.ts +233 -0
  408. package/src/utils/oauth/api-key-login.ts +98 -0
  409. package/src/utils/oauth/api-key-validation.ts +344 -0
  410. package/src/utils/oauth/bizrouter.ts +15 -0
  411. package/src/utils/oauth/callback-server.d.ts +80 -0
  412. package/src/utils/oauth/callback-server.ts +359 -0
  413. package/src/utils/oauth/cerebras.ts +16 -0
  414. package/src/utils/oauth/cloudflare-ai-gateway.ts +48 -0
  415. package/src/utils/oauth/commandcode.ts +17 -0
  416. package/src/utils/oauth/cursor.ts +157 -0
  417. package/src/utils/oauth/deepinfra.ts +15 -0
  418. package/src/utils/oauth/deepseek.ts +53 -0
  419. package/src/utils/oauth/firepass.ts +24 -0
  420. package/src/utils/oauth/fireworks.ts +15 -0
  421. package/src/utils/oauth/fugu.ts +15 -0
  422. package/src/utils/oauth/github-copilot.d.ts +38 -0
  423. package/src/utils/oauth/github-copilot.ts +362 -0
  424. package/src/utils/oauth/gitlab-duo.ts +123 -0
  425. package/src/utils/oauth/glm-zcode.d.ts +71 -0
  426. package/src/utils/oauth/glm-zcode.ts +433 -0
  427. package/src/utils/oauth/google-antigravity.ts +200 -0
  428. package/src/utils/oauth/google-gemini-cli.ts +256 -0
  429. package/src/utils/oauth/google-oauth-shared.ts +110 -0
  430. package/src/utils/oauth/huggingface.ts +62 -0
  431. package/src/utils/oauth/index.ts +558 -0
  432. package/src/utils/oauth/kagi.ts +47 -0
  433. package/src/utils/oauth/kilo.ts +87 -0
  434. package/src/utils/oauth/kimi.d.ts +17 -0
  435. package/src/utils/oauth/kimi.ts +275 -0
  436. package/src/utils/oauth/kiro.ts +448 -0
  437. package/src/utils/oauth/litellm.ts +47 -0
  438. package/src/utils/oauth/lm-studio.ts +38 -0
  439. package/src/utils/oauth/mara.ts +16 -0
  440. package/src/utils/oauth/minimax-code.ts +78 -0
  441. package/src/utils/oauth/moonshot.ts +16 -0
  442. package/src/utils/oauth/nanogpt.ts +15 -0
  443. package/src/utils/oauth/nvidia.ts +70 -0
  444. package/src/utils/oauth/oauth.html +199 -0
  445. package/src/utils/oauth/ollama-cloud.ts +28 -0
  446. package/src/utils/oauth/ollama.ts +47 -0
  447. package/src/utils/oauth/openai-codex.ts +299 -0
  448. package/src/utils/oauth/opencode.ts +49 -0
  449. package/src/utils/oauth/opengateway.ts +15 -0
  450. package/src/utils/oauth/openrouter.ts +16 -0
  451. package/src/utils/oauth/parallel.ts +46 -0
  452. package/src/utils/oauth/perplexity.ts +225 -0
  453. package/src/utils/oauth/pkce.ts +18 -0
  454. package/src/utils/oauth/qianfan.ts +58 -0
  455. package/src/utils/oauth/qwen-portal.ts +60 -0
  456. package/src/utils/oauth/sglang.ts +42 -0
  457. package/src/utils/oauth/synthetic.ts +15 -0
  458. package/src/utils/oauth/tavily.ts +46 -0
  459. package/src/utils/oauth/together.ts +16 -0
  460. package/src/utils/oauth/types.d.ts +56 -0
  461. package/src/utils/oauth/types.ts +122 -0
  462. package/src/utils/oauth/venice.ts +59 -0
  463. package/src/utils/oauth/vercel-ai-gateway.ts +47 -0
  464. package/src/utils/oauth/vllm.ts +42 -0
  465. package/src/utils/oauth/xai.ts +246 -0
  466. package/src/utils/oauth/xiaomi.ts +199 -0
  467. package/src/utils/oauth/zai.ts +60 -0
  468. package/src/utils/oauth/zenmux.ts +15 -0
  469. package/src/utils/overflow.ts +275 -0
  470. package/src/utils/parse-bind.ts +81 -0
  471. package/src/utils/provider-response.d.ts +6 -0
  472. package/src/utils/provider-response.ts +30 -0
  473. package/src/utils/provider-safety-stop.ts +8 -0
  474. package/src/utils/proxy.d.ts +7 -0
  475. package/src/utils/proxy.ts +652 -0
  476. package/src/utils/retry-after.d.ts +3 -0
  477. package/src/utils/retry-after.ts +110 -0
  478. package/src/utils/retry-budget.d.ts +1 -0
  479. package/src/utils/retry-budget.ts +4 -0
  480. package/src/utils/retry.d.ts +29 -0
  481. package/src/utils/retry.ts +67 -0
  482. package/src/utils/schema/CONSTRAINTS.md +164 -0
  483. package/src/utils/schema/adapt.d.ts +24 -0
  484. package/src/utils/schema/adapt.ts +36 -0
  485. package/src/utils/schema/compatibility.d.ts +30 -0
  486. package/src/utils/schema/compatibility.ts +435 -0
  487. package/src/utils/schema/dereference.d.ts +11 -0
  488. package/src/utils/schema/dereference.ts +98 -0
  489. package/src/utils/schema/draft.d.ts +10 -0
  490. package/src/utils/schema/draft.ts +341 -0
  491. package/src/utils/schema/equality.d.ts +4 -0
  492. package/src/utils/schema/equality.ts +97 -0
  493. package/src/utils/schema/fields.d.ts +49 -0
  494. package/src/utils/schema/fields.ts +190 -0
  495. package/src/utils/schema/index.d.ts +14 -0
  496. package/src/utils/schema/index.ts +14 -0
  497. package/src/utils/schema/json-schema-validator.d.ts +12 -0
  498. package/src/utils/schema/json-schema-validator.ts +577 -0
  499. package/src/utils/schema/meta-validator.d.ts +2 -0
  500. package/src/utils/schema/meta-validator.ts +167 -0
  501. package/src/utils/schema/normalize.d.ts +93 -0
  502. package/src/utils/schema/normalize.ts +1588 -0
  503. package/src/utils/schema/root-combinator.d.ts +12 -0
  504. package/src/utils/schema/root-combinator.ts +143 -0
  505. package/src/utils/schema/spill.d.ts +8 -0
  506. package/src/utils/schema/spill.ts +43 -0
  507. package/src/utils/schema/stamps.d.ts +25 -0
  508. package/src/utils/schema/stamps.ts +97 -0
  509. package/src/utils/schema/types.d.ts +4 -0
  510. package/src/utils/schema/types.ts +11 -0
  511. package/src/utils/schema/wire.d.ts +54 -0
  512. package/src/utils/schema/wire.ts +213 -0
  513. package/src/utils/schema/zod-decontaminate.d.ts +31 -0
  514. package/src/utils/schema/zod-decontaminate.ts +331 -0
  515. package/src/utils/sse-debug.d.ts +10 -0
  516. package/src/utils/sse-debug.ts +289 -0
  517. package/src/utils/tool-call-healing.d.ts +80 -0
  518. package/src/utils/tool-call-healing.ts +298 -0
  519. package/src/utils/tool-choice-capability.d.ts +57 -0
  520. package/src/utils/tool-choice-capability.ts +633 -0
  521. package/src/utils/tool-choice.d.ts +50 -0
  522. package/src/utils/tool-choice.ts +99 -0
  523. package/src/utils/validation.ts +1080 -0
  524. package/src/utils.d.ts +117 -0
  525. package/src/utils.ts +523 -0
@@ -0,0 +1,555 @@
1
+ /**
2
+ * Zod schemas for the auth-broker wire protocol.
3
+ *
4
+ * Shared between the server (validates inbound request bodies) and the client
5
+ * (validates responses from the broker). Schemas mirror the TypeScript types
6
+ * in `./types.ts` 1:1; the types remain the source of truth for static typing,
7
+ * and `z.infer<typeof Schema>` is asserted-compatible with them where possible.
8
+ *
9
+ * Schemas use `.strict()` on objects with a closed set of fields so unknown
10
+ * keys are rejected — the previous implementation used a hand-rolled
11
+ * `hasOnlyFields` allowlist for the same effect.
12
+ */
13
+ import * as z from "zod/v4";
14
+ export declare const mcpOAuthBindingSchema: z.ZodObject<{
15
+ resourceOrigin: z.ZodString;
16
+ tokenEndpoint: z.ZodString;
17
+ }, z.core.$strict>;
18
+ /** Real OAuth credential (broker-side) — refresh token is the actual upstream value. */
19
+ export declare const oauthCredentialSchema: z.ZodObject<{
20
+ type: z.ZodLiteral<"oauth">;
21
+ refresh: z.ZodString;
22
+ access: z.ZodString;
23
+ expires: z.ZodNumber;
24
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
25
+ projectId: z.ZodOptional<z.ZodString>;
26
+ email: z.ZodOptional<z.ZodString>;
27
+ accountId: z.ZodOptional<z.ZodString>;
28
+ mcpBinding: z.ZodOptional<z.ZodObject<{
29
+ resourceOrigin: z.ZodString;
30
+ tokenEndpoint: z.ZodString;
31
+ }, z.core.$strict>>;
32
+ }, z.core.$strict>;
33
+ /** OAuth credential as it appears in broker snapshots — refresh replaced with sentinel. */
34
+ export declare const remoteOauthCredentialSchema: z.ZodObject<{
35
+ type: z.ZodLiteral<"oauth">;
36
+ access: z.ZodString;
37
+ expires: z.ZodNumber;
38
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
39
+ projectId: z.ZodOptional<z.ZodString>;
40
+ email: z.ZodOptional<z.ZodString>;
41
+ accountId: z.ZodOptional<z.ZodString>;
42
+ mcpBinding: z.ZodOptional<z.ZodObject<{
43
+ resourceOrigin: z.ZodString;
44
+ tokenEndpoint: z.ZodString;
45
+ }, z.core.$strict>>;
46
+ refresh: z.ZodLiteral<"__remote__">;
47
+ }, z.core.$strict>;
48
+ export declare const apiKeyCredentialSchema: z.ZodObject<{
49
+ type: z.ZodLiteral<"api_key">;
50
+ key: z.ZodString;
51
+ }, z.core.$strict>;
52
+ /** Discriminated union accepted on POST /v1/credential (writes). */
53
+ export declare const writableAuthCredentialSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
54
+ type: z.ZodLiteral<"oauth">;
55
+ refresh: z.ZodString;
56
+ access: z.ZodString;
57
+ expires: z.ZodNumber;
58
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
59
+ projectId: z.ZodOptional<z.ZodString>;
60
+ email: z.ZodOptional<z.ZodString>;
61
+ accountId: z.ZodOptional<z.ZodString>;
62
+ mcpBinding: z.ZodOptional<z.ZodObject<{
63
+ resourceOrigin: z.ZodString;
64
+ tokenEndpoint: z.ZodString;
65
+ }, z.core.$strict>>;
66
+ }, z.core.$strict>, z.ZodObject<{
67
+ type: z.ZodLiteral<"api_key">;
68
+ key: z.ZodString;
69
+ }, z.core.$strict>], "type">;
70
+ /** Discriminated union returned in snapshots (refresh is sentinel for OAuth). */
71
+ export declare const snapshotCredentialSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
72
+ type: z.ZodLiteral<"oauth">;
73
+ access: z.ZodString;
74
+ expires: z.ZodNumber;
75
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
76
+ projectId: z.ZodOptional<z.ZodString>;
77
+ email: z.ZodOptional<z.ZodString>;
78
+ accountId: z.ZodOptional<z.ZodString>;
79
+ mcpBinding: z.ZodOptional<z.ZodObject<{
80
+ resourceOrigin: z.ZodString;
81
+ tokenEndpoint: z.ZodString;
82
+ }, z.core.$strict>>;
83
+ refresh: z.ZodLiteral<"__remote__">;
84
+ }, z.core.$strict>, z.ZodObject<{
85
+ type: z.ZodLiteral<"api_key">;
86
+ key: z.ZodString;
87
+ }, z.core.$strict>], "type">;
88
+ export declare const credentialSnapshotEntrySchema: z.ZodObject<{
89
+ id: z.ZodNumber;
90
+ provider: z.ZodString;
91
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
92
+ type: z.ZodLiteral<"oauth">;
93
+ access: z.ZodString;
94
+ expires: z.ZodNumber;
95
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
96
+ projectId: z.ZodOptional<z.ZodString>;
97
+ email: z.ZodOptional<z.ZodString>;
98
+ accountId: z.ZodOptional<z.ZodString>;
99
+ mcpBinding: z.ZodOptional<z.ZodObject<{
100
+ resourceOrigin: z.ZodString;
101
+ tokenEndpoint: z.ZodString;
102
+ }, z.core.$strict>>;
103
+ refresh: z.ZodLiteral<"__remote__">;
104
+ }, z.core.$strict>, z.ZodObject<{
105
+ type: z.ZodLiteral<"api_key">;
106
+ key: z.ZodString;
107
+ }, z.core.$strict>], "type">;
108
+ identityKey: z.ZodNullable<z.ZodString>;
109
+ revision: z.ZodOptional<z.ZodNumber>;
110
+ }, z.core.$strict>;
111
+ export declare const snapshotEntrySchema: z.ZodObject<{
112
+ id: z.ZodNumber;
113
+ provider: z.ZodString;
114
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
115
+ type: z.ZodLiteral<"oauth">;
116
+ access: z.ZodString;
117
+ expires: z.ZodNumber;
118
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
119
+ projectId: z.ZodOptional<z.ZodString>;
120
+ email: z.ZodOptional<z.ZodString>;
121
+ accountId: z.ZodOptional<z.ZodString>;
122
+ mcpBinding: z.ZodOptional<z.ZodObject<{
123
+ resourceOrigin: z.ZodString;
124
+ tokenEndpoint: z.ZodString;
125
+ }, z.core.$strict>>;
126
+ refresh: z.ZodLiteral<"__remote__">;
127
+ }, z.core.$strict>, z.ZodObject<{
128
+ type: z.ZodLiteral<"api_key">;
129
+ key: z.ZodString;
130
+ }, z.core.$strict>], "type">;
131
+ identityKey: z.ZodNullable<z.ZodString>;
132
+ revision: z.ZodOptional<z.ZodNumber>;
133
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
134
+ }, z.core.$strict>;
135
+ export declare const refresherScheduleSchema: z.ZodObject<{
136
+ enabled: z.ZodBoolean;
137
+ intervalMs: z.ZodNumber;
138
+ skewMs: z.ZodNumber;
139
+ nextSweepInMs: z.ZodNumber;
140
+ }, z.core.$strict>;
141
+ export declare const snapshotResponseSchema: z.ZodObject<{
142
+ epoch: z.ZodOptional<z.ZodString>;
143
+ generation: z.ZodNumber;
144
+ generatedAt: z.ZodNumber;
145
+ serverNowMs: z.ZodNumber;
146
+ refresher: z.ZodObject<{
147
+ enabled: z.ZodBoolean;
148
+ intervalMs: z.ZodNumber;
149
+ skewMs: z.ZodNumber;
150
+ nextSweepInMs: z.ZodNumber;
151
+ }, z.core.$strict>;
152
+ credentials: z.ZodArray<z.ZodObject<{
153
+ id: z.ZodNumber;
154
+ provider: z.ZodString;
155
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
156
+ type: z.ZodLiteral<"oauth">;
157
+ access: z.ZodString;
158
+ expires: z.ZodNumber;
159
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
160
+ projectId: z.ZodOptional<z.ZodString>;
161
+ email: z.ZodOptional<z.ZodString>;
162
+ accountId: z.ZodOptional<z.ZodString>;
163
+ mcpBinding: z.ZodOptional<z.ZodObject<{
164
+ resourceOrigin: z.ZodString;
165
+ tokenEndpoint: z.ZodString;
166
+ }, z.core.$strict>>;
167
+ refresh: z.ZodLiteral<"__remote__">;
168
+ }, z.core.$strict>, z.ZodObject<{
169
+ type: z.ZodLiteral<"api_key">;
170
+ key: z.ZodString;
171
+ }, z.core.$strict>], "type">;
172
+ identityKey: z.ZodNullable<z.ZodString>;
173
+ revision: z.ZodOptional<z.ZodNumber>;
174
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
175
+ }, z.core.$strict>>;
176
+ }, z.core.$strict>;
177
+ /** Closed redacted projection: no token, key, identity object, or extension fields. */
178
+ export declare const credentialMetadataRecordSchema: z.ZodObject<{
179
+ id: z.ZodNumber;
180
+ provider: z.ZodString;
181
+ type: z.ZodEnum<{
182
+ api_key: "api_key";
183
+ oauth: "oauth";
184
+ }>;
185
+ identity: z.ZodNullable<z.ZodString>;
186
+ disabledCause: z.ZodNullable<z.ZodString>;
187
+ }, z.core.$strict>;
188
+ export declare const credentialMetadataResponseSchema: z.ZodObject<{
189
+ epoch: z.ZodOptional<z.ZodString>;
190
+ generation: z.ZodNumber;
191
+ generatedAt: z.ZodNumber;
192
+ credentials: z.ZodArray<z.ZodObject<{
193
+ id: z.ZodNumber;
194
+ provider: z.ZodString;
195
+ type: z.ZodEnum<{
196
+ api_key: "api_key";
197
+ oauth: "oauth";
198
+ }>;
199
+ identity: z.ZodNullable<z.ZodString>;
200
+ disabledCause: z.ZodNullable<z.ZodString>;
201
+ }, z.core.$strict>>;
202
+ }, z.core.$strict>;
203
+ /** First frame on connect — full snapshot embedded inline with a `kind` tag. */
204
+ export declare const snapshotStreamSnapshotEventSchema: z.ZodObject<{
205
+ epoch: z.ZodOptional<z.ZodString>;
206
+ generation: z.ZodNumber;
207
+ generatedAt: z.ZodNumber;
208
+ serverNowMs: z.ZodNumber;
209
+ refresher: z.ZodObject<{
210
+ enabled: z.ZodBoolean;
211
+ intervalMs: z.ZodNumber;
212
+ skewMs: z.ZodNumber;
213
+ nextSweepInMs: z.ZodNumber;
214
+ }, z.core.$strict>;
215
+ credentials: z.ZodArray<z.ZodObject<{
216
+ id: z.ZodNumber;
217
+ provider: z.ZodString;
218
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
219
+ type: z.ZodLiteral<"oauth">;
220
+ access: z.ZodString;
221
+ expires: z.ZodNumber;
222
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
223
+ projectId: z.ZodOptional<z.ZodString>;
224
+ email: z.ZodOptional<z.ZodString>;
225
+ accountId: z.ZodOptional<z.ZodString>;
226
+ mcpBinding: z.ZodOptional<z.ZodObject<{
227
+ resourceOrigin: z.ZodString;
228
+ tokenEndpoint: z.ZodString;
229
+ }, z.core.$strict>>;
230
+ refresh: z.ZodLiteral<"__remote__">;
231
+ }, z.core.$strict>, z.ZodObject<{
232
+ type: z.ZodLiteral<"api_key">;
233
+ key: z.ZodString;
234
+ }, z.core.$strict>], "type">;
235
+ identityKey: z.ZodNullable<z.ZodString>;
236
+ revision: z.ZodOptional<z.ZodNumber>;
237
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
238
+ }, z.core.$strict>>;
239
+ kind: z.ZodLiteral<"snapshot">;
240
+ }, z.core.$strict>;
241
+ /** Per-credential upsert/refresh delta. */
242
+ export declare const snapshotStreamEntryEventSchema: z.ZodObject<{
243
+ kind: z.ZodLiteral<"entry">;
244
+ epoch: z.ZodOptional<z.ZodString>;
245
+ generation: z.ZodNumber;
246
+ serverNowMs: z.ZodNumber;
247
+ refresher: z.ZodObject<{
248
+ enabled: z.ZodBoolean;
249
+ intervalMs: z.ZodNumber;
250
+ skewMs: z.ZodNumber;
251
+ nextSweepInMs: z.ZodNumber;
252
+ }, z.core.$strict>;
253
+ entry: z.ZodObject<{
254
+ id: z.ZodNumber;
255
+ provider: z.ZodString;
256
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
257
+ type: z.ZodLiteral<"oauth">;
258
+ access: z.ZodString;
259
+ expires: z.ZodNumber;
260
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
261
+ projectId: z.ZodOptional<z.ZodString>;
262
+ email: z.ZodOptional<z.ZodString>;
263
+ accountId: z.ZodOptional<z.ZodString>;
264
+ mcpBinding: z.ZodOptional<z.ZodObject<{
265
+ resourceOrigin: z.ZodString;
266
+ tokenEndpoint: z.ZodString;
267
+ }, z.core.$strict>>;
268
+ refresh: z.ZodLiteral<"__remote__">;
269
+ }, z.core.$strict>, z.ZodObject<{
270
+ type: z.ZodLiteral<"api_key">;
271
+ key: z.ZodString;
272
+ }, z.core.$strict>], "type">;
273
+ identityKey: z.ZodNullable<z.ZodString>;
274
+ revision: z.ZodOptional<z.ZodNumber>;
275
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
276
+ }, z.core.$strict>;
277
+ }, z.core.$strict>;
278
+ /** Per-credential delete delta. */
279
+ export declare const snapshotStreamRemovedEventSchema: z.ZodObject<{
280
+ kind: z.ZodLiteral<"removed">;
281
+ epoch: z.ZodOptional<z.ZodString>;
282
+ generation: z.ZodNumber;
283
+ serverNowMs: z.ZodNumber;
284
+ refresher: z.ZodObject<{
285
+ enabled: z.ZodBoolean;
286
+ intervalMs: z.ZodNumber;
287
+ skewMs: z.ZodNumber;
288
+ nextSweepInMs: z.ZodNumber;
289
+ }, z.core.$strict>;
290
+ id: z.ZodNumber;
291
+ }, z.core.$strict>;
292
+ /** Discriminated union over every event frame the snapshot stream emits. */
293
+ export declare const snapshotStreamEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
294
+ epoch: z.ZodOptional<z.ZodString>;
295
+ generation: z.ZodNumber;
296
+ generatedAt: z.ZodNumber;
297
+ serverNowMs: z.ZodNumber;
298
+ refresher: z.ZodObject<{
299
+ enabled: z.ZodBoolean;
300
+ intervalMs: z.ZodNumber;
301
+ skewMs: z.ZodNumber;
302
+ nextSweepInMs: z.ZodNumber;
303
+ }, z.core.$strict>;
304
+ credentials: z.ZodArray<z.ZodObject<{
305
+ id: z.ZodNumber;
306
+ provider: z.ZodString;
307
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
308
+ type: z.ZodLiteral<"oauth">;
309
+ access: z.ZodString;
310
+ expires: z.ZodNumber;
311
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
312
+ projectId: z.ZodOptional<z.ZodString>;
313
+ email: z.ZodOptional<z.ZodString>;
314
+ accountId: z.ZodOptional<z.ZodString>;
315
+ mcpBinding: z.ZodOptional<z.ZodObject<{
316
+ resourceOrigin: z.ZodString;
317
+ tokenEndpoint: z.ZodString;
318
+ }, z.core.$strict>>;
319
+ refresh: z.ZodLiteral<"__remote__">;
320
+ }, z.core.$strict>, z.ZodObject<{
321
+ type: z.ZodLiteral<"api_key">;
322
+ key: z.ZodString;
323
+ }, z.core.$strict>], "type">;
324
+ identityKey: z.ZodNullable<z.ZodString>;
325
+ revision: z.ZodOptional<z.ZodNumber>;
326
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
327
+ }, z.core.$strict>>;
328
+ kind: z.ZodLiteral<"snapshot">;
329
+ }, z.core.$strict>, z.ZodObject<{
330
+ kind: z.ZodLiteral<"entry">;
331
+ epoch: z.ZodOptional<z.ZodString>;
332
+ generation: z.ZodNumber;
333
+ serverNowMs: z.ZodNumber;
334
+ refresher: z.ZodObject<{
335
+ enabled: z.ZodBoolean;
336
+ intervalMs: z.ZodNumber;
337
+ skewMs: z.ZodNumber;
338
+ nextSweepInMs: z.ZodNumber;
339
+ }, z.core.$strict>;
340
+ entry: z.ZodObject<{
341
+ id: z.ZodNumber;
342
+ provider: z.ZodString;
343
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
344
+ type: z.ZodLiteral<"oauth">;
345
+ access: z.ZodString;
346
+ expires: z.ZodNumber;
347
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
348
+ projectId: z.ZodOptional<z.ZodString>;
349
+ email: z.ZodOptional<z.ZodString>;
350
+ accountId: z.ZodOptional<z.ZodString>;
351
+ mcpBinding: z.ZodOptional<z.ZodObject<{
352
+ resourceOrigin: z.ZodString;
353
+ tokenEndpoint: z.ZodString;
354
+ }, z.core.$strict>>;
355
+ refresh: z.ZodLiteral<"__remote__">;
356
+ }, z.core.$strict>, z.ZodObject<{
357
+ type: z.ZodLiteral<"api_key">;
358
+ key: z.ZodString;
359
+ }, z.core.$strict>], "type">;
360
+ identityKey: z.ZodNullable<z.ZodString>;
361
+ revision: z.ZodOptional<z.ZodNumber>;
362
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
363
+ }, z.core.$strict>;
364
+ }, z.core.$strict>, z.ZodObject<{
365
+ kind: z.ZodLiteral<"removed">;
366
+ epoch: z.ZodOptional<z.ZodString>;
367
+ generation: z.ZodNumber;
368
+ serverNowMs: z.ZodNumber;
369
+ refresher: z.ZodObject<{
370
+ enabled: z.ZodBoolean;
371
+ intervalMs: z.ZodNumber;
372
+ skewMs: z.ZodNumber;
373
+ nextSweepInMs: z.ZodNumber;
374
+ }, z.core.$strict>;
375
+ id: z.ZodNumber;
376
+ }, z.core.$strict>], "kind">;
377
+ export declare const healthzResponseSchema: z.ZodObject<{
378
+ ok: z.ZodBoolean;
379
+ version: z.ZodOptional<z.ZodString>;
380
+ }, z.core.$strict>;
381
+ /**
382
+ * Broker `/v1/usage` response. Reports are full {@link UsageReport}s minus the
383
+ * heavy provider-specific `raw` field (the server strips it before send) — we
384
+ * keep `raw` optional in the underlying schema so a misconfigured broker that
385
+ * forgot to strip still validates.
386
+ */
387
+ export declare const usageResponseSchema: z.ZodObject<{
388
+ generatedAt: z.ZodNumber;
389
+ reports: z.ZodArray<z.ZodObject<{
390
+ provider: z.ZodString;
391
+ fetchedAt: z.ZodNumber;
392
+ limits: z.ZodArray<z.ZodObject<{
393
+ id: z.ZodString;
394
+ label: z.ZodString;
395
+ scope: z.ZodObject<{
396
+ provider: z.ZodString;
397
+ accountId: z.ZodOptional<z.ZodString>;
398
+ projectId: z.ZodOptional<z.ZodString>;
399
+ orgId: z.ZodOptional<z.ZodString>;
400
+ modelId: z.ZodOptional<z.ZodString>;
401
+ tier: z.ZodOptional<z.ZodString>;
402
+ windowId: z.ZodOptional<z.ZodString>;
403
+ shared: z.ZodOptional<z.ZodBoolean>;
404
+ }, z.core.$strip>;
405
+ window: z.ZodOptional<z.ZodObject<{
406
+ id: z.ZodString;
407
+ label: z.ZodString;
408
+ durationMs: z.ZodOptional<z.ZodNumber>;
409
+ resetsAt: z.ZodOptional<z.ZodNumber>;
410
+ }, z.core.$strip>>;
411
+ amount: z.ZodObject<{
412
+ used: z.ZodOptional<z.ZodNumber>;
413
+ limit: z.ZodOptional<z.ZodNumber>;
414
+ remaining: z.ZodOptional<z.ZodNumber>;
415
+ usedFraction: z.ZodOptional<z.ZodNumber>;
416
+ remainingFraction: z.ZodOptional<z.ZodNumber>;
417
+ unit: z.ZodEnum<{
418
+ bytes: "bytes";
419
+ minutes: "minutes";
420
+ percent: "percent";
421
+ requests: "requests";
422
+ tokens: "tokens";
423
+ unknown: "unknown";
424
+ usd: "usd";
425
+ }>;
426
+ }, z.core.$strip>;
427
+ status: z.ZodOptional<z.ZodEnum<{
428
+ exhausted: "exhausted";
429
+ ok: "ok";
430
+ unknown: "unknown";
431
+ warning: "warning";
432
+ }>>;
433
+ notes: z.ZodOptional<z.ZodArray<z.ZodString>>;
434
+ }, z.core.$strip>>;
435
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
436
+ raw: z.ZodOptional<z.ZodUnknown>;
437
+ }, z.core.$strip>>;
438
+ }, z.core.$strict>;
439
+ export declare const credentialRefreshRequestSchema: z.ZodObject<{
440
+ clientId: z.ZodOptional<z.ZodString>;
441
+ clientSecret: z.ZodOptional<z.ZodString>;
442
+ }, z.core.$strict>;
443
+ export declare const credentialRefreshResponseSchema: z.ZodObject<{
444
+ entry: z.ZodObject<{
445
+ id: z.ZodNumber;
446
+ provider: z.ZodString;
447
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
448
+ type: z.ZodLiteral<"oauth">;
449
+ access: z.ZodString;
450
+ expires: z.ZodNumber;
451
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
452
+ projectId: z.ZodOptional<z.ZodString>;
453
+ email: z.ZodOptional<z.ZodString>;
454
+ accountId: z.ZodOptional<z.ZodString>;
455
+ mcpBinding: z.ZodOptional<z.ZodObject<{
456
+ resourceOrigin: z.ZodString;
457
+ tokenEndpoint: z.ZodString;
458
+ }, z.core.$strict>>;
459
+ refresh: z.ZodLiteral<"__remote__">;
460
+ }, z.core.$strict>, z.ZodObject<{
461
+ type: z.ZodLiteral<"api_key">;
462
+ key: z.ZodString;
463
+ }, z.core.$strict>], "type">;
464
+ identityKey: z.ZodNullable<z.ZodString>;
465
+ revision: z.ZodOptional<z.ZodNumber>;
466
+ }, z.core.$strict>;
467
+ }, z.core.$strict>;
468
+ export declare const credentialDisableRequestSchema: z.ZodObject<{
469
+ cause: z.ZodOptional<z.ZodString>;
470
+ expectedRevision: z.ZodOptional<z.ZodNumber>;
471
+ }, z.core.$strict>;
472
+ export declare const credentialDisableResponseSchema: z.ZodObject<{
473
+ ok: z.ZodBoolean;
474
+ }, z.core.$strict>;
475
+ export declare const credentialUploadRequestSchema: z.ZodObject<{
476
+ provider: z.ZodString;
477
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
478
+ type: z.ZodLiteral<"oauth">;
479
+ refresh: z.ZodString;
480
+ access: z.ZodString;
481
+ expires: z.ZodNumber;
482
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
483
+ projectId: z.ZodOptional<z.ZodString>;
484
+ email: z.ZodOptional<z.ZodString>;
485
+ accountId: z.ZodOptional<z.ZodString>;
486
+ mcpBinding: z.ZodOptional<z.ZodObject<{
487
+ resourceOrigin: z.ZodString;
488
+ tokenEndpoint: z.ZodString;
489
+ }, z.core.$strict>>;
490
+ }, z.core.$strict>, z.ZodObject<{
491
+ type: z.ZodLiteral<"api_key">;
492
+ key: z.ZodString;
493
+ }, z.core.$strict>], "type">;
494
+ }, z.core.$strict>;
495
+ export declare const credentialUploadResponseSchema: z.ZodObject<{
496
+ entries: z.ZodArray<z.ZodObject<{
497
+ id: z.ZodNumber;
498
+ provider: z.ZodString;
499
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
500
+ type: z.ZodLiteral<"oauth">;
501
+ access: z.ZodString;
502
+ expires: z.ZodNumber;
503
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
504
+ projectId: z.ZodOptional<z.ZodString>;
505
+ email: z.ZodOptional<z.ZodString>;
506
+ accountId: z.ZodOptional<z.ZodString>;
507
+ mcpBinding: z.ZodOptional<z.ZodObject<{
508
+ resourceOrigin: z.ZodString;
509
+ tokenEndpoint: z.ZodString;
510
+ }, z.core.$strict>>;
511
+ refresh: z.ZodLiteral<"__remote__">;
512
+ }, z.core.$strict>, z.ZodObject<{
513
+ type: z.ZodLiteral<"api_key">;
514
+ key: z.ZodString;
515
+ }, z.core.$strict>], "type">;
516
+ identityKey: z.ZodNullable<z.ZodString>;
517
+ revision: z.ZodOptional<z.ZodNumber>;
518
+ }, z.core.$strict>>;
519
+ }, z.core.$strict>;
520
+ export declare const credentialIfAbsentUploadResponseSchema: z.ZodObject<{
521
+ inserted: z.ZodBoolean;
522
+ reason: z.ZodEnum<{
523
+ inserted: "inserted";
524
+ "skipped-existing": "skipped-existing";
525
+ "skipped-existing-config": "skipped-existing-config";
526
+ "skipped-existing-env": "skipped-existing-env";
527
+ "skipped-existing-fallback": "skipped-existing-fallback";
528
+ "skipped-existing-runtime": "skipped-existing-runtime";
529
+ "skipped-invalid": "skipped-invalid";
530
+ "updated-existing": "updated-existing";
531
+ }>;
532
+ entries: z.ZodArray<z.ZodObject<{
533
+ id: z.ZodNumber;
534
+ provider: z.ZodString;
535
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
536
+ type: z.ZodLiteral<"oauth">;
537
+ access: z.ZodString;
538
+ expires: z.ZodNumber;
539
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
540
+ projectId: z.ZodOptional<z.ZodString>;
541
+ email: z.ZodOptional<z.ZodString>;
542
+ accountId: z.ZodOptional<z.ZodString>;
543
+ mcpBinding: z.ZodOptional<z.ZodObject<{
544
+ resourceOrigin: z.ZodString;
545
+ tokenEndpoint: z.ZodString;
546
+ }, z.core.$strict>>;
547
+ refresh: z.ZodLiteral<"__remote__">;
548
+ }, z.core.$strict>, z.ZodObject<{
549
+ type: z.ZodLiteral<"api_key">;
550
+ key: z.ZodString;
551
+ }, z.core.$strict>], "type">;
552
+ identityKey: z.ZodNullable<z.ZodString>;
553
+ revision: z.ZodOptional<z.ZodNumber>;
554
+ }, z.core.$strict>>;
555
+ }, z.core.$strict>;
@@ -0,0 +1,40 @@
1
+ export declare function json(status: number, body: unknown): Response;
2
+ export declare function resolvePeer(req: Request): string;
3
+ /**
4
+ * Constant-time byte comparison. Falls back to a manual XOR accumulator if
5
+ * `node:crypto.timingSafeEqual` isn't available. Always processes every byte
6
+ * of the longer input so length itself doesn't leak via timing.
7
+ */
8
+ export declare function timingSafeEqual(a: Uint8Array, b: Uint8Array): boolean;
9
+ export declare function isAuthorized(req: Request, tokens: ReadonlySet<string>): boolean;
10
+ export declare function isNoAuthBrowserOriginRequest(req: Request, tokens: ReadonlySet<string>): boolean;
11
+ /**
12
+ * Extract allow-listed passthrough headers from an inbound request. Keys are
13
+ * lowercased; empty values are dropped. Called once per request in
14
+ * `handleFormatEndpoint`; parsers then read `options.headers`.
15
+ */
16
+ export declare function captureRequestHeaders(headers: Headers): Record<string, string>;
17
+ /**
18
+ * Resolve a prompt-cache identity from inbound request body + headers.
19
+ * Order of precedence (first wins):
20
+ * 1. Body `prompt_cache_key`
21
+ * 2. Body `metadata.{prompt_cache_key,session_id,conversation_id}`
22
+ * 3. Header `x-prompt-cache-key`
23
+ * 4. Header `session_id` / `conversation_id` (OpenAI code backend / ChatGPT-OAuth surface)
24
+ * 5. Header `x-session-id` / `x-conversation-id` (common informal)
25
+ * Returns undefined when none present; the gateway then derives a stable
26
+ * UUID from the request's stable parts.
27
+ */
28
+ export declare function resolvePromptCacheKey(body: unknown, headers?: Headers): string | undefined;
29
+ /**
30
+ * CORS headers for the auth-gateway. Currently echoes a wildcard origin; the
31
+ * request is accepted so future tightening can mirror `Origin` without
32
+ * threading the request through every caller.
33
+ */
34
+ export declare function corsHeaders(_req: Request): Record<string, string>;
35
+ /**
36
+ * Re-emit `response` with CORS headers merged. The original response body is
37
+ * passed through unchanged. Used by the gateway wrapper so every outbound
38
+ * format-endpoint response carries the same CORS surface as the preflight.
39
+ */
40
+ export declare function withCors(response: Response, req: Request): Response;
@@ -0,0 +1,3 @@
1
+ export * from "./http";
2
+ export * from "./server";
3
+ export * from "./types";
@@ -0,0 +1,70 @@
1
+ /**
2
+ * vib auth-gateway HTTP server.
3
+ *
4
+ * Accepts a provider-scoped provider-format request (OpenAI chat-completions, Anthropic
5
+ * messages, OpenAI Responses) and dispatches through pi-ai's `streamSimple()`
6
+ * — which handles credential injection, anthropic-beta headers, OpenAI code backend
7
+ * websocket transport, and all the per-provider intricacies. The gateway is
8
+ * pure protocol translation: foreign wire → vib Context → pi-ai stream() →
9
+ * vib events → foreign wire.
10
+ *
11
+ * Endpoints:
12
+ * GET /healthz → unauth; ok + version
13
+ * GET /v1/usage → aggregated provider usage (5-min per-credential cache via AuthStorage)
14
+ * GET /v1/credentials/check → per-credential auth probe (diagnose 401s in a multi-account pool)
15
+ * GET /v1/models → list models from the selected provider scope
16
+ * POST /v1/chat/completions → OpenAI chat-completions in/out
17
+ * POST /v1/messages → Anthropic messages in/out
18
+ * POST /v1/responses → OpenAI Responses in/out
19
+ */
20
+ import type { AuthStorage } from "../auth-storage";
21
+ import type { Api, AssistantMessageEventStream, Model, Provider } from "../types";
22
+ import type { AuthGatewayServerHandle, AuthGatewayServerOptions } from "./types";
23
+ export type ModelResolver = (modelId: string) => Model<Api> | undefined;
24
+ export interface AuthGatewayBootOptions extends AuthGatewayServerOptions {
25
+ /** Source of credentials. Caller wires this to a broker-backed AuthStorage. */
26
+ storage: AuthStorage;
27
+ /**
28
+ * Current broker-backed scope authority. When supplied, this is checked on
29
+ * every request so a live broker snapshot removal immediately fails closed.
30
+ */
31
+ hasProviderCredential: () => boolean;
32
+ /** Refresh the dispatch cache from the current broker snapshot before use. */
33
+ reloadProviderCredentials: (signal?: AbortSignal) => Promise<void>;
34
+ /** Confirm that the selected key is still present in the current authority snapshot. */
35
+ validateProviderCredential: (provider: string, apiKey: string) => boolean;
36
+ /**
37
+ * Resolve a client-requested model id to a pi-ai Model. Caller supplies
38
+ * this from a ModelRegistry (lives in `coding-agent` to avoid an inverse
39
+ * dependency in `pi-ai`).
40
+ */
41
+ resolveModel: ModelResolver;
42
+ /** Supplier for the source-backed model catalog used by `/v1/models`. */
43
+ listModels: () => Iterable<Model<Api>>;
44
+ }
45
+ export interface AuthGatewayModelCatalog {
46
+ readonly models: readonly Model<Api>[];
47
+ resolve(modelId: string): Model<Api> | undefined;
48
+ }
49
+ /**
50
+ * Whether a model can be served through the broker-backed auth gateway.
51
+ *
52
+ * Bedrock's credential chain is process-local AWS authority, not a broker
53
+ * credential. Advertising a native Bedrock model from this gateway would let
54
+ * direct callers bypass the broker boundary (and make readiness lie about a
55
+ * model the gateway cannot authenticate). Keep this predicate shared with the
56
+ * CLI readiness checks so every entry point applies the same fence.
57
+ */
58
+ export declare function isAuthGatewayModelBrokerConsumable(model: Pick<Model<Api>, "api" | "transport">): boolean;
59
+ /**
60
+ * Build an unambiguous, provider-scoped catalog.
61
+ *
62
+ * Models from other providers are intentionally ignored rather than allowed
63
+ * to compete for the same id. Duplicate ids within the selected provider are
64
+ * rejected because choosing either one would make request dispatch
65
+ * order-dependent.
66
+ */
67
+ export declare function createAuthGatewayModelCatalog(provider: Provider, models: Iterable<Model<Api>>): AuthGatewayModelCatalog;
68
+ export declare function releaseGatewayCredentialLeaseOnAdmission(events: Pick<AssistantMessageEventStream, "result">, release: () => void, signal?: AbortSignal): void;
69
+ export declare function startAuthGateway(opts: AuthGatewayBootOptions): AuthGatewayServerHandle;
70
+ export declare function isSafeProviderScope(provider: unknown): provider is string;