@aryee337/aery-ai 0.1.148 → 0.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/CHANGELOG.md +2914 -0
  2. package/README.md +614 -813
  3. package/dist/types/api-registry.d.ts +30 -0
  4. package/dist/types/auth-broker/client.d.ts +66 -0
  5. package/dist/types/auth-broker/index.d.ts +5 -0
  6. package/dist/types/auth-broker/refresher.d.ts +25 -0
  7. package/dist/types/auth-broker/remote-store.d.ts +96 -0
  8. package/dist/types/auth-broker/server.d.ts +32 -0
  9. package/dist/types/auth-broker/types.d.ts +105 -0
  10. package/dist/types/auth-broker/wire-schemas.d.ts +412 -0
  11. package/dist/types/auth-gateway/http.d.ts +39 -0
  12. package/dist/types/auth-gateway/index.d.ts +3 -0
  13. package/dist/types/auth-gateway/server.d.ts +36 -0
  14. package/dist/types/auth-gateway/types.d.ts +117 -0
  15. package/dist/types/auth-storage.d.ts +739 -0
  16. package/dist/types/index.d.ts +49 -0
  17. package/dist/types/model-cache.d.ts +17 -0
  18. package/dist/types/model-manager.d.ts +64 -0
  19. package/dist/types/model-thinking.d.ts +100 -0
  20. package/dist/types/models.d.ts +12 -0
  21. package/dist/types/provider-details.d.ts +24 -0
  22. package/dist/types/provider-models/bundled-references.d.ts +4 -0
  23. package/dist/types/provider-models/descriptors.d.ts +50 -0
  24. package/dist/types/provider-models/google.d.ts +24 -0
  25. package/dist/types/provider-models/index.d.ts +5 -0
  26. package/dist/types/provider-models/ollama.d.ts +7 -0
  27. package/dist/types/provider-models/openai-compat.d.ts +296 -0
  28. package/dist/types/provider-models/special.d.ts +16 -0
  29. package/dist/types/providers/aery-native-client.d.ts +13 -0
  30. package/dist/types/providers/aery-native-server.d.ts +68 -0
  31. package/dist/types/providers/amazon-bedrock.d.ts +38 -0
  32. package/dist/types/providers/anthropic-client.d.ts +99 -0
  33. package/dist/types/providers/anthropic-messages-server-schema.d.ts +465 -0
  34. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  35. package/dist/types/providers/anthropic-wire.d.ts +262 -0
  36. package/dist/types/providers/anthropic.d.ts +206 -0
  37. package/dist/types/providers/aws-credentials.d.ts +43 -0
  38. package/dist/types/providers/aws-eventstream.d.ts +38 -0
  39. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  40. package/dist/types/providers/azure-openai-responses.d.ts +15 -0
  41. package/dist/types/providers/cursor/gen/agent_pb.d.ts +13022 -0
  42. package/dist/types/providers/cursor.d.ts +43 -0
  43. package/dist/types/providers/error-message.d.ts +27 -0
  44. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  45. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  46. package/dist/types/providers/google-auth.d.ts +24 -0
  47. package/dist/types/providers/google-gemini-cli.d.ts +81 -0
  48. package/dist/types/providers/google-gemini-headers.d.ts +18 -0
  49. package/dist/types/providers/google-shared.d.ts +171 -0
  50. package/dist/types/providers/google-types.d.ts +138 -0
  51. package/dist/types/providers/google-vertex.d.ts +7 -0
  52. package/dist/types/providers/google.d.ts +4 -0
  53. package/dist/types/providers/grammar.d.ts +1 -0
  54. package/dist/types/providers/kimi.d.ts +27 -0
  55. package/dist/types/providers/mock.d.ts +173 -0
  56. package/dist/types/providers/ollama.d.ts +6 -0
  57. package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
  58. package/dist/types/providers/openai-chat-server-schema.d.ts +817 -0
  59. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  60. package/dist/types/providers/openai-codex/constants.d.ts +26 -0
  61. package/dist/types/providers/openai-codex/request-transformer.d.ts +49 -0
  62. package/dist/types/providers/openai-codex/response-handler.d.ts +17 -0
  63. package/dist/types/providers/openai-codex-responses.d.ts +67 -0
  64. package/dist/types/providers/openai-completions-compat.d.ts +25 -0
  65. package/dist/types/providers/openai-completions.d.ts +54 -0
  66. package/dist/types/providers/openai-responses-server-schema.d.ts +392 -0
  67. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  68. package/dist/types/providers/openai-responses-shared.d.ts +100 -0
  69. package/dist/types/providers/openai-responses.d.ts +66 -0
  70. package/dist/types/providers/register-builtins.d.ts +31 -0
  71. package/dist/types/providers/synthetic.d.ts +26 -0
  72. package/dist/{providers → types/providers}/transform-messages.d.ts +6 -2
  73. package/dist/types/providers/vision-guard.d.ts +8 -0
  74. package/dist/types/providers/xai-responses.d.ts +23 -0
  75. package/dist/types/rate-limit-utils.d.ts +19 -0
  76. package/dist/types/stream.d.ts +28 -0
  77. package/dist/types/types.d.ts +801 -0
  78. package/dist/types/usage/claude.d.ts +4 -0
  79. package/dist/types/usage/gemini.d.ts +2 -0
  80. package/dist/types/usage/github-copilot.d.ts +7 -0
  81. package/dist/types/usage/google-antigravity.d.ts +2 -0
  82. package/dist/types/usage/kimi.d.ts +2 -0
  83. package/dist/types/usage/minimax-code.d.ts +2 -0
  84. package/dist/types/usage/openai-codex.d.ts +3 -0
  85. package/dist/types/usage/shared.d.ts +1 -0
  86. package/dist/types/usage/zai.d.ts +2 -0
  87. package/dist/types/usage.d.ts +260 -0
  88. package/dist/types/utils/abort.d.ts +19 -0
  89. package/dist/types/utils/abortable-iterator.d.ts +4 -0
  90. package/dist/types/utils/anthropic-auth.d.ts +35 -0
  91. package/dist/types/utils/discovery/antigravity.d.ts +61 -0
  92. package/dist/types/utils/discovery/codex.d.ts +38 -0
  93. package/dist/types/utils/discovery/cursor.d.ts +23 -0
  94. package/dist/types/utils/discovery/gemini.d.ts +25 -0
  95. package/dist/types/utils/discovery/index.d.ts +4 -0
  96. package/dist/types/utils/discovery/openai-compatible.d.ts +72 -0
  97. package/dist/types/utils/event-stream.d.ts +28 -0
  98. package/dist/types/utils/fireworks-model-id.d.ts +10 -0
  99. package/dist/types/utils/foundry.d.ts +1 -0
  100. package/dist/types/utils/http-inspector.d.ts +31 -0
  101. package/dist/types/utils/idle-iterator.d.ts +78 -0
  102. package/dist/types/utils/json-parse.d.ts +37 -0
  103. package/dist/types/utils/oauth/__tests__/xai-oauth.test.d.ts +1 -0
  104. package/dist/types/utils/oauth/alibaba-coding-plan.d.ts +18 -0
  105. package/dist/types/utils/oauth/anthropic.d.ts +22 -0
  106. package/dist/types/utils/oauth/api-key-login.d.ts +35 -0
  107. package/dist/types/utils/oauth/api-key-validation.d.ts +27 -0
  108. package/dist/types/utils/oauth/callback-server.d.ts +57 -0
  109. package/dist/types/utils/oauth/cerebras.d.ts +1 -0
  110. package/dist/types/utils/oauth/cloudflare-ai-gateway.d.ts +18 -0
  111. package/dist/types/utils/oauth/cursor.d.ts +15 -0
  112. package/dist/types/utils/oauth/deepseek.d.ts +10 -0
  113. package/dist/types/utils/oauth/firepass.d.ts +1 -0
  114. package/dist/types/utils/oauth/fireworks.d.ts +1 -0
  115. package/dist/types/utils/oauth/github-copilot.d.ts +38 -0
  116. package/dist/types/utils/oauth/gitlab-duo.d.ts +3 -0
  117. package/dist/types/utils/oauth/google-antigravity.d.ts +11 -0
  118. package/dist/types/utils/oauth/google-gemini-cli.d.ts +10 -0
  119. package/dist/types/utils/oauth/google-oauth-shared.d.ts +28 -0
  120. package/dist/types/utils/oauth/huggingface.d.ts +19 -0
  121. package/dist/types/utils/oauth/index.d.ts +38 -0
  122. package/dist/types/utils/oauth/kagi.d.ts +17 -0
  123. package/dist/types/utils/oauth/kilo.d.ts +5 -0
  124. package/dist/types/utils/oauth/kimi.d.ts +21 -0
  125. package/dist/types/utils/oauth/litellm.d.ts +18 -0
  126. package/dist/types/utils/oauth/lm-studio.d.ts +17 -0
  127. package/dist/types/utils/oauth/minimax-code.d.ts +28 -0
  128. package/dist/types/utils/oauth/moonshot.d.ts +1 -0
  129. package/dist/types/utils/oauth/nanogpt.d.ts +1 -0
  130. package/dist/types/utils/oauth/nvidia.d.ts +18 -0
  131. package/dist/types/utils/oauth/ollama-cloud.d.ts +2 -0
  132. package/dist/types/utils/oauth/ollama.d.ts +18 -0
  133. package/dist/types/utils/oauth/openai-codex.d.ts +21 -0
  134. package/dist/types/utils/oauth/opencode.d.ts +18 -0
  135. package/dist/types/utils/oauth/openrouter.d.ts +1 -0
  136. package/dist/types/utils/oauth/parallel.d.ts +17 -0
  137. package/dist/types/utils/oauth/perplexity.d.ts +9 -0
  138. package/dist/{utils → types/utils}/oauth/pkce.d.ts +0 -5
  139. package/dist/types/utils/oauth/qianfan.d.ts +17 -0
  140. package/dist/types/utils/oauth/qwen-portal.d.ts +19 -0
  141. package/dist/types/utils/oauth/synthetic.d.ts +1 -0
  142. package/dist/types/utils/oauth/tavily.d.ts +17 -0
  143. package/dist/types/utils/oauth/together.d.ts +1 -0
  144. package/dist/types/utils/oauth/types.d.ts +44 -0
  145. package/dist/types/utils/oauth/venice.d.ts +18 -0
  146. package/dist/types/utils/oauth/vercel-ai-gateway.d.ts +18 -0
  147. package/dist/types/utils/oauth/vllm.d.ts +16 -0
  148. package/dist/types/utils/oauth/wafer.d.ts +2 -0
  149. package/dist/types/utils/oauth/xai-oauth.d.ts +60 -0
  150. package/dist/types/utils/oauth/xiaomi.d.ts +19 -0
  151. package/dist/types/utils/oauth/zai.d.ts +18 -0
  152. package/dist/types/utils/oauth/zenmux.d.ts +1 -0
  153. package/dist/types/utils/oauth/zhipu.d.ts +18 -0
  154. package/dist/{utils → types/utils}/overflow.d.ts +9 -11
  155. package/dist/types/utils/parse-bind.d.ts +23 -0
  156. package/dist/types/utils/provider-response.d.ts +3 -0
  157. package/dist/types/utils/request-debug.d.ts +29 -0
  158. package/dist/types/utils/retry-after.d.ts +3 -0
  159. package/dist/types/utils/retry.d.ts +26 -0
  160. package/dist/types/utils/schema/adapt.d.ts +24 -0
  161. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  162. package/dist/types/utils/schema/dereference.d.ts +11 -0
  163. package/dist/types/utils/schema/draft.d.ts +10 -0
  164. package/dist/types/utils/schema/equality.d.ts +4 -0
  165. package/dist/types/utils/schema/fields.d.ts +49 -0
  166. package/dist/types/utils/schema/index.d.ts +13 -0
  167. package/dist/types/utils/schema/json-schema-validator.d.ts +12 -0
  168. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  169. package/dist/types/utils/schema/normalize.d.ts +93 -0
  170. package/dist/types/utils/schema/spill.d.ts +8 -0
  171. package/dist/types/utils/schema/stamps.d.ts +25 -0
  172. package/dist/types/utils/schema/types.d.ts +4 -0
  173. package/dist/types/utils/schema/wire.d.ts +53 -0
  174. package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
  175. package/dist/types/utils/sdk-stream-timeout.d.ts +33 -0
  176. package/dist/types/utils/sse-debug.d.ts +10 -0
  177. package/dist/types/utils/stream-markup-healing.d.ts +80 -0
  178. package/dist/types/utils/tool-choice.d.ts +50 -0
  179. package/dist/types/utils/validation.d.ts +17 -0
  180. package/dist/types/utils.d.ts +28 -0
  181. package/package.json +139 -105
  182. package/src/api-registry.ts +96 -0
  183. package/src/auth-broker/client.ts +358 -0
  184. package/src/auth-broker/index.ts +5 -0
  185. package/src/auth-broker/refresher.ts +117 -0
  186. package/src/auth-broker/remote-store.ts +623 -0
  187. package/src/auth-broker/server.ts +644 -0
  188. package/src/auth-broker/types.ts +127 -0
  189. package/src/auth-broker/wire-schemas.ts +200 -0
  190. package/src/auth-gateway/http.ts +194 -0
  191. package/src/auth-gateway/index.ts +3 -0
  192. package/src/auth-gateway/server.ts +818 -0
  193. package/src/auth-gateway/types.ts +143 -0
  194. package/src/auth-storage.ts +4422 -0
  195. package/src/index.ts +54 -0
  196. package/src/model-cache.ts +129 -0
  197. package/src/model-manager.ts +469 -0
  198. package/src/model-thinking.ts +782 -0
  199. package/src/models.json +83530 -0
  200. package/src/models.json.d.ts +9 -0
  201. package/src/models.ts +56 -0
  202. package/src/prompts/turn-aborted-guidance.md +4 -0
  203. package/src/provider-details.ts +90 -0
  204. package/src/provider-models/bundled-references.ts +38 -0
  205. package/src/provider-models/descriptors.ts +355 -0
  206. package/src/provider-models/google.ts +88 -0
  207. package/src/provider-models/index.ts +5 -0
  208. package/src/provider-models/ollama.ts +153 -0
  209. package/src/provider-models/openai-compat.ts +2817 -0
  210. package/src/provider-models/special.ts +67 -0
  211. package/src/providers/aery-native-client.ts +228 -0
  212. package/src/providers/aery-native-server.ts +212 -0
  213. package/src/providers/amazon-bedrock.ts +873 -0
  214. package/src/providers/anthropic-client.ts +318 -0
  215. package/src/providers/anthropic-messages-server-schema.ts +243 -0
  216. package/src/providers/anthropic-messages-server.ts +683 -0
  217. package/src/providers/anthropic-wire.ts +268 -0
  218. package/src/providers/anthropic.ts +3094 -0
  219. package/src/providers/aws-credentials.ts +501 -0
  220. package/src/providers/aws-eventstream.ts +185 -0
  221. package/src/providers/aws-sigv4.ts +218 -0
  222. package/src/providers/azure-openai-responses.ts +361 -0
  223. package/src/providers/cursor/gen/agent_pb.ts +15274 -0
  224. package/src/providers/cursor/proto/agent.proto +3526 -0
  225. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  226. package/src/providers/cursor/proto/buf.yaml +17 -0
  227. package/src/providers/cursor.ts +2621 -0
  228. package/src/providers/error-message.ts +21 -0
  229. package/src/providers/github-copilot-headers.ts +140 -0
  230. package/src/providers/gitlab-duo.ts +372 -0
  231. package/src/providers/google-auth.ts +252 -0
  232. package/src/providers/google-gemini-cli.ts +809 -0
  233. package/src/providers/google-gemini-headers.ts +41 -0
  234. package/src/providers/google-shared.ts +917 -0
  235. package/src/providers/google-types.ts +167 -0
  236. package/src/providers/google-vertex.ts +91 -0
  237. package/src/providers/google.ts +41 -0
  238. package/src/providers/grammar.ts +70 -0
  239. package/src/providers/kimi.ts +52 -0
  240. package/src/providers/mock.ts +496 -0
  241. package/src/providers/ollama.ts +644 -0
  242. package/src/providers/openai-anthropic-shim.ts +138 -0
  243. package/src/providers/openai-chat-server-schema.ts +252 -0
  244. package/src/providers/openai-chat-server.ts +647 -0
  245. package/src/providers/openai-codex/constants.ts +43 -0
  246. package/src/providers/openai-codex/request-transformer.ts +161 -0
  247. package/src/providers/openai-codex/response-handler.ts +81 -0
  248. package/src/providers/openai-codex-responses.ts +3018 -0
  249. package/src/providers/openai-completions-compat.ts +300 -0
  250. package/src/providers/openai-completions.ts +1979 -0
  251. package/src/providers/openai-responses-server-schema.ts +290 -0
  252. package/src/providers/openai-responses-server.ts +1183 -0
  253. package/src/providers/openai-responses-shared.ts +873 -0
  254. package/src/providers/openai-responses.ts +679 -0
  255. package/src/providers/register-builtins.ts +436 -0
  256. package/src/providers/synthetic.ts +50 -0
  257. package/src/providers/transform-messages.ts +382 -0
  258. package/src/providers/vision-guard.ts +31 -0
  259. package/src/providers/xai-responses.ts +82 -0
  260. package/src/rate-limit-utils.ts +84 -0
  261. package/src/stream.ts +1065 -0
  262. package/src/types.ts +944 -0
  263. package/src/usage/claude.ts +482 -0
  264. package/src/usage/gemini.ts +250 -0
  265. package/src/usage/github-copilot.ts +421 -0
  266. package/src/usage/google-antigravity.ts +201 -0
  267. package/src/usage/kimi.ts +271 -0
  268. package/src/usage/minimax-code.ts +31 -0
  269. package/src/usage/openai-codex.ts +503 -0
  270. package/src/usage/shared.ts +10 -0
  271. package/src/usage/zai.ts +247 -0
  272. package/src/usage.ts +185 -0
  273. package/src/utils/abort.ts +51 -0
  274. package/src/utils/abortable-iterator.ts +69 -0
  275. package/src/utils/anthropic-auth.ts +93 -0
  276. package/src/utils/discovery/antigravity.ts +261 -0
  277. package/src/utils/discovery/codex.ts +371 -0
  278. package/src/utils/discovery/cursor.ts +306 -0
  279. package/src/utils/discovery/gemini.ts +248 -0
  280. package/src/utils/discovery/index.ts +4 -0
  281. package/src/utils/discovery/openai-compatible.ts +224 -0
  282. package/src/utils/event-stream.ts +142 -0
  283. package/src/utils/fireworks-model-id.ts +30 -0
  284. package/src/utils/foundry.ts +8 -0
  285. package/src/utils/http-inspector.ts +176 -0
  286. package/src/utils/idle-iterator.ts +267 -0
  287. package/src/utils/json-parse.ts +182 -0
  288. package/src/utils/oauth/__tests__/xai-oauth.test.ts +107 -0
  289. package/src/utils/oauth/alibaba-coding-plan.ts +59 -0
  290. package/src/utils/oauth/anthropic.ts +273 -0
  291. package/src/utils/oauth/api-key-login.ts +87 -0
  292. package/src/utils/oauth/api-key-validation.ts +92 -0
  293. package/src/utils/oauth/callback-server.ts +276 -0
  294. package/src/utils/oauth/cerebras.ts +16 -0
  295. package/src/utils/oauth/cloudflare-ai-gateway.ts +48 -0
  296. package/src/utils/oauth/cursor.ts +157 -0
  297. package/src/utils/oauth/deepseek.ts +53 -0
  298. package/src/utils/oauth/firepass.ts +24 -0
  299. package/src/utils/oauth/fireworks.ts +15 -0
  300. package/src/utils/oauth/github-copilot.ts +362 -0
  301. package/src/utils/oauth/gitlab-duo.ts +123 -0
  302. package/src/utils/oauth/google-antigravity.ts +200 -0
  303. package/src/utils/oauth/google-gemini-cli.ts +256 -0
  304. package/src/utils/oauth/google-oauth-shared.ts +110 -0
  305. package/src/utils/oauth/huggingface.ts +62 -0
  306. package/src/utils/oauth/index.ts +484 -0
  307. package/src/utils/oauth/kagi.ts +47 -0
  308. package/src/utils/oauth/kilo.ts +87 -0
  309. package/src/utils/oauth/kimi.ts +254 -0
  310. package/src/utils/oauth/litellm.ts +47 -0
  311. package/src/utils/oauth/lm-studio.ts +38 -0
  312. package/src/utils/oauth/minimax-code.ts +78 -0
  313. package/src/utils/oauth/moonshot.ts +23 -0
  314. package/src/utils/oauth/nanogpt.ts +15 -0
  315. package/src/utils/oauth/nvidia.ts +70 -0
  316. package/src/utils/oauth/oauth.html +203 -0
  317. package/src/utils/oauth/ollama-cloud.ts +28 -0
  318. package/src/utils/oauth/ollama.ts +47 -0
  319. package/src/utils/oauth/openai-codex.ts +299 -0
  320. package/src/utils/oauth/opencode.ts +49 -0
  321. package/src/utils/oauth/openrouter.ts +20 -0
  322. package/src/utils/oauth/parallel.ts +46 -0
  323. package/src/utils/oauth/perplexity.ts +206 -0
  324. package/src/utils/oauth/pkce.ts +18 -0
  325. package/src/utils/oauth/qianfan.ts +58 -0
  326. package/src/utils/oauth/qwen-portal.ts +60 -0
  327. package/src/utils/oauth/synthetic.ts +15 -0
  328. package/src/utils/oauth/tavily.ts +46 -0
  329. package/src/utils/oauth/together.ts +16 -0
  330. package/src/utils/oauth/types.ts +99 -0
  331. package/src/utils/oauth/venice.ts +59 -0
  332. package/src/utils/oauth/vercel-ai-gateway.ts +47 -0
  333. package/src/utils/oauth/vllm.ts +40 -0
  334. package/src/utils/oauth/wafer.ts +50 -0
  335. package/src/utils/oauth/xai-oauth.ts +342 -0
  336. package/src/utils/oauth/xiaomi.ts +139 -0
  337. package/src/utils/oauth/zai.ts +60 -0
  338. package/src/utils/oauth/zenmux.ts +15 -0
  339. package/src/utils/oauth/zhipu.ts +60 -0
  340. package/src/utils/overflow.ts +137 -0
  341. package/src/utils/parse-bind.ts +54 -0
  342. package/src/utils/provider-response.ts +30 -0
  343. package/src/utils/request-debug.ts +336 -0
  344. package/src/utils/retry-after.ts +110 -0
  345. package/src/utils/retry.ts +54 -0
  346. package/src/utils/schema/CONSTRAINTS.md +164 -0
  347. package/src/utils/schema/adapt.ts +36 -0
  348. package/src/utils/schema/compatibility.ts +435 -0
  349. package/src/utils/schema/dereference.ts +98 -0
  350. package/src/utils/schema/draft.ts +341 -0
  351. package/src/utils/schema/equality.ts +97 -0
  352. package/src/utils/schema/fields.ts +191 -0
  353. package/src/utils/schema/index.ts +13 -0
  354. package/src/utils/schema/json-schema-validator.ts +577 -0
  355. package/src/utils/schema/meta-validator.ts +167 -0
  356. package/src/utils/schema/normalize.ts +1588 -0
  357. package/src/utils/schema/spill.ts +43 -0
  358. package/src/utils/schema/stamps.ts +97 -0
  359. package/src/utils/schema/types.ts +10 -0
  360. package/src/utils/schema/wire.ts +293 -0
  361. package/src/utils/schema/zod-decontaminate.ts +331 -0
  362. package/src/utils/sdk-stream-timeout.ts +43 -0
  363. package/src/utils/sse-debug.ts +289 -0
  364. package/src/utils/stream-markup-healing.ts +612 -0
  365. package/src/utils/tool-choice.ts +99 -0
  366. package/src/utils/validation.ts +1024 -0
  367. package/src/utils.ts +166 -0
  368. package/dist/api-registry.d.ts +0 -20
  369. package/dist/api-registry.d.ts.map +0 -1
  370. package/dist/api-registry.js +0 -44
  371. package/dist/api-registry.js.map +0 -1
  372. package/dist/bedrock-provider.d.ts +0 -5
  373. package/dist/bedrock-provider.d.ts.map +0 -1
  374. package/dist/bedrock-provider.js +0 -6
  375. package/dist/bedrock-provider.js.map +0 -1
  376. package/dist/cli.d.ts +0 -3
  377. package/dist/cli.d.ts.map +0 -1
  378. package/dist/cli.js +0 -130
  379. package/dist/cli.js.map +0 -1
  380. package/dist/env-api-keys.d.ts +0 -18
  381. package/dist/env-api-keys.d.ts.map +0 -1
  382. package/dist/env-api-keys.js +0 -178
  383. package/dist/env-api-keys.js.map +0 -1
  384. package/dist/image-models.d.ts +0 -10
  385. package/dist/image-models.d.ts.map +0 -1
  386. package/dist/image-models.generated.d.ts +0 -440
  387. package/dist/image-models.generated.d.ts.map +0 -1
  388. package/dist/image-models.generated.js +0 -442
  389. package/dist/image-models.generated.js.map +0 -1
  390. package/dist/image-models.js +0 -23
  391. package/dist/image-models.js.map +0 -1
  392. package/dist/images-api-registry.d.ts +0 -14
  393. package/dist/images-api-registry.d.ts.map +0 -1
  394. package/dist/images-api-registry.js +0 -22
  395. package/dist/images-api-registry.js.map +0 -1
  396. package/dist/images.d.ts +0 -4
  397. package/dist/images.d.ts.map +0 -1
  398. package/dist/images.js +0 -14
  399. package/dist/images.js.map +0 -1
  400. package/dist/index.d.ts +0 -32
  401. package/dist/index.d.ts.map +0 -1
  402. package/dist/index.js +0 -20
  403. package/dist/index.js.map +0 -1
  404. package/dist/models.d.ts +0 -18
  405. package/dist/models.d.ts.map +0 -1
  406. package/dist/models.generated.d.ts +0 -17480
  407. package/dist/models.generated.d.ts.map +0 -1
  408. package/dist/models.generated.js +0 -16339
  409. package/dist/models.generated.js.map +0 -1
  410. package/dist/models.js +0 -71
  411. package/dist/models.js.map +0 -1
  412. package/dist/oauth.d.ts +0 -2
  413. package/dist/oauth.d.ts.map +0 -1
  414. package/dist/oauth.js +0 -2
  415. package/dist/oauth.js.map +0 -1
  416. package/dist/providers/aery-error-formatting.d.ts +0 -13
  417. package/dist/providers/aery-error-formatting.d.ts.map +0 -1
  418. package/dist/providers/aery-error-formatting.js +0 -112
  419. package/dist/providers/aery-error-formatting.js.map +0 -1
  420. package/dist/providers/amazon-bedrock.d.ts +0 -38
  421. package/dist/providers/amazon-bedrock.d.ts.map +0 -1
  422. package/dist/providers/amazon-bedrock.js +0 -763
  423. package/dist/providers/amazon-bedrock.js.map +0 -1
  424. package/dist/providers/anthropic.d.ts +0 -71
  425. package/dist/providers/anthropic.d.ts.map +0 -1
  426. package/dist/providers/anthropic.js +0 -949
  427. package/dist/providers/anthropic.js.map +0 -1
  428. package/dist/providers/azure-openai-responses.d.ts +0 -15
  429. package/dist/providers/azure-openai-responses.d.ts.map +0 -1
  430. package/dist/providers/azure-openai-responses.js +0 -225
  431. package/dist/providers/azure-openai-responses.js.map +0 -1
  432. package/dist/providers/cloudflare.d.ts +0 -13
  433. package/dist/providers/cloudflare.d.ts.map +0 -1
  434. package/dist/providers/cloudflare.js +0 -26
  435. package/dist/providers/cloudflare.js.map +0 -1
  436. package/dist/providers/faux.d.ts +0 -56
  437. package/dist/providers/faux.d.ts.map +0 -1
  438. package/dist/providers/faux.js +0 -368
  439. package/dist/providers/faux.js.map +0 -1
  440. package/dist/providers/github-copilot-headers.d.ts +0 -8
  441. package/dist/providers/github-copilot-headers.d.ts.map +0 -1
  442. package/dist/providers/github-copilot-headers.js +0 -29
  443. package/dist/providers/github-copilot-headers.js.map +0 -1
  444. package/dist/providers/google-gemini-cli.d.ts +0 -74
  445. package/dist/providers/google-gemini-cli.d.ts.map +0 -1
  446. package/dist/providers/google-gemini-cli.js +0 -779
  447. package/dist/providers/google-gemini-cli.js.map +0 -1
  448. package/dist/providers/google-shared.d.ts +0 -70
  449. package/dist/providers/google-shared.d.ts.map +0 -1
  450. package/dist/providers/google-shared.js +0 -329
  451. package/dist/providers/google-shared.js.map +0 -1
  452. package/dist/providers/google-vertex.d.ts +0 -15
  453. package/dist/providers/google-vertex.d.ts.map +0 -1
  454. package/dist/providers/google-vertex.js +0 -442
  455. package/dist/providers/google-vertex.js.map +0 -1
  456. package/dist/providers/google.d.ts +0 -13
  457. package/dist/providers/google.d.ts.map +0 -1
  458. package/dist/providers/google.js +0 -400
  459. package/dist/providers/google.js.map +0 -1
  460. package/dist/providers/images/openrouter.d.ts +0 -3
  461. package/dist/providers/images/openrouter.d.ts.map +0 -1
  462. package/dist/providers/images/openrouter.js +0 -129
  463. package/dist/providers/images/openrouter.js.map +0 -1
  464. package/dist/providers/images/register-builtins.d.ts +0 -4
  465. package/dist/providers/images/register-builtins.d.ts.map +0 -1
  466. package/dist/providers/images/register-builtins.js +0 -34
  467. package/dist/providers/images/register-builtins.js.map +0 -1
  468. package/dist/providers/mistral.d.ts +0 -25
  469. package/dist/providers/mistral.d.ts.map +0 -1
  470. package/dist/providers/mistral.js +0 -535
  471. package/dist/providers/mistral.js.map +0 -1
  472. package/dist/providers/openai-codex-responses.d.ts +0 -30
  473. package/dist/providers/openai-codex-responses.d.ts.map +0 -1
  474. package/dist/providers/openai-codex-responses.js +0 -1090
  475. package/dist/providers/openai-codex-responses.js.map +0 -1
  476. package/dist/providers/openai-completions.d.ts +0 -19
  477. package/dist/providers/openai-completions.d.ts.map +0 -1
  478. package/dist/providers/openai-completions.js +0 -950
  479. package/dist/providers/openai-completions.js.map +0 -1
  480. package/dist/providers/openai-prompt-cache.d.ts +0 -3
  481. package/dist/providers/openai-prompt-cache.d.ts.map +0 -1
  482. package/dist/providers/openai-prompt-cache.js +0 -10
  483. package/dist/providers/openai-prompt-cache.js.map +0 -1
  484. package/dist/providers/openai-responses-shared.d.ts +0 -18
  485. package/dist/providers/openai-responses-shared.d.ts.map +0 -1
  486. package/dist/providers/openai-responses-shared.js +0 -492
  487. package/dist/providers/openai-responses-shared.js.map +0 -1
  488. package/dist/providers/openai-responses.d.ts +0 -13
  489. package/dist/providers/openai-responses.d.ts.map +0 -1
  490. package/dist/providers/openai-responses.js +0 -237
  491. package/dist/providers/openai-responses.js.map +0 -1
  492. package/dist/providers/register-builtins.d.ts +0 -38
  493. package/dist/providers/register-builtins.d.ts.map +0 -1
  494. package/dist/providers/register-builtins.js +0 -278
  495. package/dist/providers/register-builtins.js.map +0 -1
  496. package/dist/providers/simple-options.d.ts +0 -8
  497. package/dist/providers/simple-options.d.ts.map +0 -1
  498. package/dist/providers/simple-options.js +0 -41
  499. package/dist/providers/simple-options.js.map +0 -1
  500. package/dist/providers/transform-messages.d.ts.map +0 -1
  501. package/dist/providers/transform-messages.js +0 -184
  502. package/dist/providers/transform-messages.js.map +0 -1
  503. package/dist/session-resources.d.ts +0 -4
  504. package/dist/session-resources.d.ts.map +0 -1
  505. package/dist/session-resources.js +0 -22
  506. package/dist/session-resources.js.map +0 -1
  507. package/dist/stream.d.ts +0 -8
  508. package/dist/stream.d.ts.map +0 -1
  509. package/dist/stream.js +0 -27
  510. package/dist/stream.js.map +0 -1
  511. package/dist/types.d.ts +0 -498
  512. package/dist/types.d.ts.map +0 -1
  513. package/dist/types.js +0 -2
  514. package/dist/types.js.map +0 -1
  515. package/dist/utils/diagnostics.d.ts +0 -19
  516. package/dist/utils/diagnostics.d.ts.map +0 -1
  517. package/dist/utils/diagnostics.js +0 -25
  518. package/dist/utils/diagnostics.js.map +0 -1
  519. package/dist/utils/event-stream.d.ts +0 -21
  520. package/dist/utils/event-stream.d.ts.map +0 -1
  521. package/dist/utils/event-stream.js +0 -81
  522. package/dist/utils/event-stream.js.map +0 -1
  523. package/dist/utils/hash.d.ts +0 -3
  524. package/dist/utils/hash.d.ts.map +0 -1
  525. package/dist/utils/hash.js +0 -14
  526. package/dist/utils/hash.js.map +0 -1
  527. package/dist/utils/headers.d.ts +0 -2
  528. package/dist/utils/headers.d.ts.map +0 -1
  529. package/dist/utils/headers.js +0 -8
  530. package/dist/utils/headers.js.map +0 -1
  531. package/dist/utils/json-parse.d.ts +0 -16
  532. package/dist/utils/json-parse.d.ts.map +0 -1
  533. package/dist/utils/json-parse.js +0 -113
  534. package/dist/utils/json-parse.js.map +0 -1
  535. package/dist/utils/node-http-proxy.d.ts +0 -10
  536. package/dist/utils/node-http-proxy.d.ts.map +0 -1
  537. package/dist/utils/node-http-proxy.js +0 -97
  538. package/dist/utils/node-http-proxy.js.map +0 -1
  539. package/dist/utils/oauth/anthropic.d.ts +0 -25
  540. package/dist/utils/oauth/anthropic.d.ts.map +0 -1
  541. package/dist/utils/oauth/anthropic.js +0 -335
  542. package/dist/utils/oauth/anthropic.js.map +0 -1
  543. package/dist/utils/oauth/device-code.d.ts +0 -19
  544. package/dist/utils/oauth/device-code.d.ts.map +0 -1
  545. package/dist/utils/oauth/device-code.js +0 -55
  546. package/dist/utils/oauth/device-code.js.map +0 -1
  547. package/dist/utils/oauth/github-copilot.d.ts +0 -30
  548. package/dist/utils/oauth/github-copilot.d.ts.map +0 -1
  549. package/dist/utils/oauth/github-copilot.js +0 -268
  550. package/dist/utils/oauth/github-copilot.js.map +0 -1
  551. package/dist/utils/oauth/google-antigravity.d.ts +0 -26
  552. package/dist/utils/oauth/google-antigravity.d.ts.map +0 -1
  553. package/dist/utils/oauth/google-antigravity.js +0 -377
  554. package/dist/utils/oauth/google-antigravity.js.map +0 -1
  555. package/dist/utils/oauth/google-gemini-cli.d.ts +0 -26
  556. package/dist/utils/oauth/google-gemini-cli.d.ts.map +0 -1
  557. package/dist/utils/oauth/google-gemini-cli.js +0 -482
  558. package/dist/utils/oauth/google-gemini-cli.js.map +0 -1
  559. package/dist/utils/oauth/index.d.ts +0 -63
  560. package/dist/utils/oauth/index.d.ts.map +0 -1
  561. package/dist/utils/oauth/index.js +0 -131
  562. package/dist/utils/oauth/index.js.map +0 -1
  563. package/dist/utils/oauth/oauth-page.d.ts +0 -3
  564. package/dist/utils/oauth/oauth-page.d.ts.map +0 -1
  565. package/dist/utils/oauth/oauth-page.js +0 -105
  566. package/dist/utils/oauth/oauth-page.js.map +0 -1
  567. package/dist/utils/oauth/openai-codex.d.ts +0 -34
  568. package/dist/utils/oauth/openai-codex.d.ts.map +0 -1
  569. package/dist/utils/oauth/openai-codex.js +0 -385
  570. package/dist/utils/oauth/openai-codex.js.map +0 -1
  571. package/dist/utils/oauth/pkce.d.ts.map +0 -1
  572. package/dist/utils/oauth/pkce.js +0 -31
  573. package/dist/utils/oauth/pkce.js.map +0 -1
  574. package/dist/utils/oauth/types.d.ts +0 -64
  575. package/dist/utils/oauth/types.d.ts.map +0 -1
  576. package/dist/utils/oauth/types.js +0 -2
  577. package/dist/utils/oauth/types.js.map +0 -1
  578. package/dist/utils/overflow.d.ts.map +0 -1
  579. package/dist/utils/overflow.js +0 -151
  580. package/dist/utils/overflow.js.map +0 -1
  581. package/dist/utils/sanitize-unicode.d.ts +0 -22
  582. package/dist/utils/sanitize-unicode.d.ts.map +0 -1
  583. package/dist/utils/sanitize-unicode.js +0 -26
  584. package/dist/utils/sanitize-unicode.js.map +0 -1
  585. package/dist/utils/typebox-helpers.d.ts +0 -17
  586. package/dist/utils/typebox-helpers.d.ts.map +0 -1
  587. package/dist/utils/typebox-helpers.js +0 -21
  588. package/dist/utils/typebox-helpers.js.map +0 -1
  589. package/dist/utils/validation.d.ts +0 -18
  590. package/dist/utils/validation.d.ts.map +0 -1
  591. package/dist/utils/validation.js +0 -281
  592. package/dist/utils/validation.js.map +0 -1
@@ -0,0 +1,412 @@
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
+ /** Real OAuth credential (broker-side) — refresh token is the actual upstream value. */
15
+ export declare const oauthCredentialSchema: z.ZodObject<{
16
+ type: z.ZodLiteral<"oauth">;
17
+ refresh: z.ZodString;
18
+ access: z.ZodString;
19
+ expires: z.ZodNumber;
20
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
21
+ projectId: z.ZodOptional<z.ZodString>;
22
+ email: z.ZodOptional<z.ZodString>;
23
+ accountId: z.ZodOptional<z.ZodString>;
24
+ }, z.core.$strict>;
25
+ /** OAuth credential as it appears in broker snapshots — refresh replaced with sentinel. */
26
+ export declare const remoteOauthCredentialSchema: z.ZodObject<{
27
+ type: z.ZodLiteral<"oauth">;
28
+ access: z.ZodString;
29
+ expires: z.ZodNumber;
30
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
31
+ projectId: z.ZodOptional<z.ZodString>;
32
+ email: z.ZodOptional<z.ZodString>;
33
+ accountId: z.ZodOptional<z.ZodString>;
34
+ refresh: z.ZodLiteral<"__remote__">;
35
+ }, z.core.$strict>;
36
+ export declare const apiKeyCredentialSchema: z.ZodObject<{
37
+ type: z.ZodLiteral<"api_key">;
38
+ key: z.ZodString;
39
+ }, z.core.$strict>;
40
+ /** Discriminated union accepted on POST /v1/credential (writes). */
41
+ export declare const writableAuthCredentialSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
42
+ type: z.ZodLiteral<"oauth">;
43
+ refresh: z.ZodString;
44
+ access: z.ZodString;
45
+ expires: z.ZodNumber;
46
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
47
+ projectId: z.ZodOptional<z.ZodString>;
48
+ email: z.ZodOptional<z.ZodString>;
49
+ accountId: z.ZodOptional<z.ZodString>;
50
+ }, z.core.$strict>, z.ZodObject<{
51
+ type: z.ZodLiteral<"api_key">;
52
+ key: z.ZodString;
53
+ }, z.core.$strict>], "type">;
54
+ /** Discriminated union returned in snapshots (refresh is sentinel for OAuth). */
55
+ export declare const snapshotCredentialSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
56
+ type: z.ZodLiteral<"oauth">;
57
+ access: z.ZodString;
58
+ expires: z.ZodNumber;
59
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
60
+ projectId: z.ZodOptional<z.ZodString>;
61
+ email: z.ZodOptional<z.ZodString>;
62
+ accountId: z.ZodOptional<z.ZodString>;
63
+ refresh: z.ZodLiteral<"__remote__">;
64
+ }, z.core.$strict>, z.ZodObject<{
65
+ type: z.ZodLiteral<"api_key">;
66
+ key: z.ZodString;
67
+ }, z.core.$strict>], "type">;
68
+ export declare const credentialSnapshotEntrySchema: z.ZodObject<{
69
+ id: z.ZodNumber;
70
+ provider: z.ZodString;
71
+ credential: 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
+ refresh: z.ZodLiteral<"__remote__">;
80
+ }, z.core.$strict>, z.ZodObject<{
81
+ type: z.ZodLiteral<"api_key">;
82
+ key: z.ZodString;
83
+ }, z.core.$strict>], "type">;
84
+ identityKey: z.ZodNullable<z.ZodString>;
85
+ }, z.core.$strict>;
86
+ export declare const snapshotEntrySchema: z.ZodObject<{
87
+ id: z.ZodNumber;
88
+ provider: z.ZodString;
89
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
90
+ type: z.ZodLiteral<"oauth">;
91
+ access: z.ZodString;
92
+ expires: z.ZodNumber;
93
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
94
+ projectId: z.ZodOptional<z.ZodString>;
95
+ email: z.ZodOptional<z.ZodString>;
96
+ accountId: z.ZodOptional<z.ZodString>;
97
+ refresh: z.ZodLiteral<"__remote__">;
98
+ }, z.core.$strict>, z.ZodObject<{
99
+ type: z.ZodLiteral<"api_key">;
100
+ key: z.ZodString;
101
+ }, z.core.$strict>], "type">;
102
+ identityKey: z.ZodNullable<z.ZodString>;
103
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
104
+ }, z.core.$strict>;
105
+ export declare const refresherScheduleSchema: z.ZodObject<{
106
+ enabled: z.ZodBoolean;
107
+ intervalMs: z.ZodNumber;
108
+ skewMs: z.ZodNumber;
109
+ nextSweepInMs: z.ZodNumber;
110
+ }, z.core.$strict>;
111
+ export declare const snapshotResponseSchema: z.ZodObject<{
112
+ generation: z.ZodNumber;
113
+ generatedAt: z.ZodNumber;
114
+ serverNowMs: z.ZodNumber;
115
+ refresher: z.ZodObject<{
116
+ enabled: z.ZodBoolean;
117
+ intervalMs: z.ZodNumber;
118
+ skewMs: z.ZodNumber;
119
+ nextSweepInMs: z.ZodNumber;
120
+ }, z.core.$strict>;
121
+ credentials: z.ZodArray<z.ZodObject<{
122
+ id: z.ZodNumber;
123
+ provider: z.ZodString;
124
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
125
+ type: z.ZodLiteral<"oauth">;
126
+ access: z.ZodString;
127
+ expires: z.ZodNumber;
128
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
129
+ projectId: z.ZodOptional<z.ZodString>;
130
+ email: z.ZodOptional<z.ZodString>;
131
+ accountId: z.ZodOptional<z.ZodString>;
132
+ refresh: z.ZodLiteral<"__remote__">;
133
+ }, z.core.$strict>, z.ZodObject<{
134
+ type: z.ZodLiteral<"api_key">;
135
+ key: z.ZodString;
136
+ }, z.core.$strict>], "type">;
137
+ identityKey: z.ZodNullable<z.ZodString>;
138
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
139
+ }, z.core.$strict>>;
140
+ }, z.core.$strict>;
141
+ /** First frame on connect — full snapshot embedded inline with a `kind` tag. */
142
+ export declare const snapshotStreamSnapshotEventSchema: z.ZodObject<{
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
+ refresh: z.ZodLiteral<"__remote__">;
164
+ }, z.core.$strict>, z.ZodObject<{
165
+ type: z.ZodLiteral<"api_key">;
166
+ key: z.ZodString;
167
+ }, z.core.$strict>], "type">;
168
+ identityKey: z.ZodNullable<z.ZodString>;
169
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
170
+ }, z.core.$strict>>;
171
+ kind: z.ZodLiteral<"snapshot">;
172
+ }, z.core.$strict>;
173
+ /** Per-credential upsert/refresh delta. */
174
+ export declare const snapshotStreamEntryEventSchema: z.ZodObject<{
175
+ kind: z.ZodLiteral<"entry">;
176
+ generation: z.ZodNumber;
177
+ serverNowMs: z.ZodNumber;
178
+ refresher: z.ZodObject<{
179
+ enabled: z.ZodBoolean;
180
+ intervalMs: z.ZodNumber;
181
+ skewMs: z.ZodNumber;
182
+ nextSweepInMs: z.ZodNumber;
183
+ }, z.core.$strict>;
184
+ entry: z.ZodObject<{
185
+ id: z.ZodNumber;
186
+ provider: z.ZodString;
187
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
188
+ type: z.ZodLiteral<"oauth">;
189
+ access: z.ZodString;
190
+ expires: z.ZodNumber;
191
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
192
+ projectId: z.ZodOptional<z.ZodString>;
193
+ email: z.ZodOptional<z.ZodString>;
194
+ accountId: z.ZodOptional<z.ZodString>;
195
+ refresh: z.ZodLiteral<"__remote__">;
196
+ }, z.core.$strict>, z.ZodObject<{
197
+ type: z.ZodLiteral<"api_key">;
198
+ key: z.ZodString;
199
+ }, z.core.$strict>], "type">;
200
+ identityKey: z.ZodNullable<z.ZodString>;
201
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
202
+ }, z.core.$strict>;
203
+ }, z.core.$strict>;
204
+ /** Per-credential delete delta. */
205
+ export declare const snapshotStreamRemovedEventSchema: z.ZodObject<{
206
+ kind: z.ZodLiteral<"removed">;
207
+ generation: 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
+ id: z.ZodNumber;
216
+ }, z.core.$strict>;
217
+ /** Discriminated union over every event frame the snapshot stream emits. */
218
+ export declare const snapshotStreamEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
219
+ generation: z.ZodNumber;
220
+ generatedAt: z.ZodNumber;
221
+ serverNowMs: z.ZodNumber;
222
+ refresher: z.ZodObject<{
223
+ enabled: z.ZodBoolean;
224
+ intervalMs: z.ZodNumber;
225
+ skewMs: z.ZodNumber;
226
+ nextSweepInMs: z.ZodNumber;
227
+ }, z.core.$strict>;
228
+ credentials: z.ZodArray<z.ZodObject<{
229
+ id: z.ZodNumber;
230
+ provider: z.ZodString;
231
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
232
+ type: z.ZodLiteral<"oauth">;
233
+ access: z.ZodString;
234
+ expires: z.ZodNumber;
235
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
236
+ projectId: z.ZodOptional<z.ZodString>;
237
+ email: z.ZodOptional<z.ZodString>;
238
+ accountId: z.ZodOptional<z.ZodString>;
239
+ refresh: z.ZodLiteral<"__remote__">;
240
+ }, z.core.$strict>, z.ZodObject<{
241
+ type: z.ZodLiteral<"api_key">;
242
+ key: z.ZodString;
243
+ }, z.core.$strict>], "type">;
244
+ identityKey: z.ZodNullable<z.ZodString>;
245
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
246
+ }, z.core.$strict>>;
247
+ kind: z.ZodLiteral<"snapshot">;
248
+ }, z.core.$strict>, z.ZodObject<{
249
+ kind: z.ZodLiteral<"entry">;
250
+ generation: z.ZodNumber;
251
+ serverNowMs: z.ZodNumber;
252
+ refresher: z.ZodObject<{
253
+ enabled: z.ZodBoolean;
254
+ intervalMs: z.ZodNumber;
255
+ skewMs: z.ZodNumber;
256
+ nextSweepInMs: z.ZodNumber;
257
+ }, z.core.$strict>;
258
+ entry: z.ZodObject<{
259
+ id: z.ZodNumber;
260
+ provider: z.ZodString;
261
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
262
+ type: z.ZodLiteral<"oauth">;
263
+ access: z.ZodString;
264
+ expires: z.ZodNumber;
265
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
266
+ projectId: z.ZodOptional<z.ZodString>;
267
+ email: z.ZodOptional<z.ZodString>;
268
+ accountId: z.ZodOptional<z.ZodString>;
269
+ refresh: z.ZodLiteral<"__remote__">;
270
+ }, z.core.$strict>, z.ZodObject<{
271
+ type: z.ZodLiteral<"api_key">;
272
+ key: z.ZodString;
273
+ }, z.core.$strict>], "type">;
274
+ identityKey: z.ZodNullable<z.ZodString>;
275
+ rotatesInMs: z.ZodNullable<z.ZodNumber>;
276
+ }, z.core.$strict>;
277
+ }, z.core.$strict>, z.ZodObject<{
278
+ kind: z.ZodLiteral<"removed">;
279
+ generation: z.ZodNumber;
280
+ serverNowMs: z.ZodNumber;
281
+ refresher: z.ZodObject<{
282
+ enabled: z.ZodBoolean;
283
+ intervalMs: z.ZodNumber;
284
+ skewMs: z.ZodNumber;
285
+ nextSweepInMs: z.ZodNumber;
286
+ }, z.core.$strict>;
287
+ id: z.ZodNumber;
288
+ }, z.core.$strict>], "kind">;
289
+ export declare const healthzResponseSchema: z.ZodObject<{
290
+ ok: z.ZodBoolean;
291
+ version: z.ZodOptional<z.ZodString>;
292
+ }, z.core.$strict>;
293
+ /**
294
+ * Broker `/v1/usage` response. Reports are full {@link UsageReport}s minus the
295
+ * heavy provider-specific `raw` field (the server strips it before send) — we
296
+ * keep `raw` optional in the underlying schema so a misconfigured broker that
297
+ * forgot to strip still validates.
298
+ */
299
+ export declare const usageResponseSchema: z.ZodObject<{
300
+ generatedAt: z.ZodNumber;
301
+ reports: z.ZodArray<z.ZodObject<{
302
+ provider: z.ZodString;
303
+ fetchedAt: z.ZodNumber;
304
+ limits: z.ZodArray<z.ZodObject<{
305
+ id: z.ZodString;
306
+ label: z.ZodString;
307
+ scope: z.ZodObject<{
308
+ provider: z.ZodString;
309
+ accountId: z.ZodOptional<z.ZodString>;
310
+ projectId: z.ZodOptional<z.ZodString>;
311
+ orgId: z.ZodOptional<z.ZodString>;
312
+ modelId: z.ZodOptional<z.ZodString>;
313
+ tier: z.ZodOptional<z.ZodString>;
314
+ windowId: z.ZodOptional<z.ZodString>;
315
+ shared: z.ZodOptional<z.ZodBoolean>;
316
+ }, z.core.$strip>;
317
+ window: z.ZodOptional<z.ZodObject<{
318
+ id: z.ZodString;
319
+ label: z.ZodString;
320
+ durationMs: z.ZodOptional<z.ZodNumber>;
321
+ resetsAt: z.ZodOptional<z.ZodNumber>;
322
+ }, z.core.$strip>>;
323
+ amount: z.ZodObject<{
324
+ used: z.ZodOptional<z.ZodNumber>;
325
+ limit: z.ZodOptional<z.ZodNumber>;
326
+ remaining: z.ZodOptional<z.ZodNumber>;
327
+ usedFraction: z.ZodOptional<z.ZodNumber>;
328
+ remainingFraction: z.ZodOptional<z.ZodNumber>;
329
+ unit: z.ZodEnum<{
330
+ bytes: "bytes";
331
+ minutes: "minutes";
332
+ percent: "percent";
333
+ requests: "requests";
334
+ tokens: "tokens";
335
+ unknown: "unknown";
336
+ usd: "usd";
337
+ }>;
338
+ }, z.core.$strip>;
339
+ status: z.ZodOptional<z.ZodEnum<{
340
+ exhausted: "exhausted";
341
+ ok: "ok";
342
+ unknown: "unknown";
343
+ warning: "warning";
344
+ }>>;
345
+ notes: z.ZodOptional<z.ZodArray<z.ZodString>>;
346
+ }, z.core.$strip>>;
347
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
348
+ raw: z.ZodOptional<z.ZodUnknown>;
349
+ }, z.core.$strip>>;
350
+ }, z.core.$strict>;
351
+ export declare const credentialRefreshResponseSchema: z.ZodObject<{
352
+ entry: z.ZodObject<{
353
+ id: z.ZodNumber;
354
+ provider: z.ZodString;
355
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
356
+ type: z.ZodLiteral<"oauth">;
357
+ access: z.ZodString;
358
+ expires: z.ZodNumber;
359
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
360
+ projectId: z.ZodOptional<z.ZodString>;
361
+ email: z.ZodOptional<z.ZodString>;
362
+ accountId: z.ZodOptional<z.ZodString>;
363
+ refresh: z.ZodLiteral<"__remote__">;
364
+ }, z.core.$strict>, z.ZodObject<{
365
+ type: z.ZodLiteral<"api_key">;
366
+ key: z.ZodString;
367
+ }, z.core.$strict>], "type">;
368
+ identityKey: z.ZodNullable<z.ZodString>;
369
+ }, z.core.$strict>;
370
+ }, z.core.$strict>;
371
+ export declare const credentialDisableRequestSchema: z.ZodObject<{
372
+ cause: z.ZodOptional<z.ZodString>;
373
+ }, z.core.$strict>;
374
+ export declare const credentialDisableResponseSchema: z.ZodObject<{
375
+ ok: z.ZodBoolean;
376
+ }, z.core.$strict>;
377
+ export declare const credentialUploadRequestSchema: z.ZodObject<{
378
+ provider: z.ZodString;
379
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
380
+ type: z.ZodLiteral<"oauth">;
381
+ refresh: z.ZodString;
382
+ access: z.ZodString;
383
+ expires: z.ZodNumber;
384
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
385
+ projectId: z.ZodOptional<z.ZodString>;
386
+ email: z.ZodOptional<z.ZodString>;
387
+ accountId: z.ZodOptional<z.ZodString>;
388
+ }, z.core.$strict>, z.ZodObject<{
389
+ type: z.ZodLiteral<"api_key">;
390
+ key: z.ZodString;
391
+ }, z.core.$strict>], "type">;
392
+ }, z.core.$strict>;
393
+ export declare const credentialUploadResponseSchema: z.ZodObject<{
394
+ entries: z.ZodArray<z.ZodObject<{
395
+ id: z.ZodNumber;
396
+ provider: z.ZodString;
397
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
398
+ type: z.ZodLiteral<"oauth">;
399
+ access: z.ZodString;
400
+ expires: z.ZodNumber;
401
+ enterpriseUrl: z.ZodOptional<z.ZodString>;
402
+ projectId: z.ZodOptional<z.ZodString>;
403
+ email: z.ZodOptional<z.ZodString>;
404
+ accountId: z.ZodOptional<z.ZodString>;
405
+ refresh: z.ZodLiteral<"__remote__">;
406
+ }, z.core.$strict>, z.ZodObject<{
407
+ type: z.ZodLiteral<"api_key">;
408
+ key: z.ZodString;
409
+ }, z.core.$strict>], "type">;
410
+ identityKey: z.ZodNullable<z.ZodString>;
411
+ }, z.core.$strict>>;
412
+ }, z.core.$strict>;
@@ -0,0 +1,39 @@
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
+ /**
11
+ * Extract allow-listed passthrough headers from an inbound request. Keys are
12
+ * lowercased; empty values are dropped. Called once per request in
13
+ * `handleFormatEndpoint`; parsers then read `options.headers`.
14
+ */
15
+ export declare function captureRequestHeaders(headers: Headers): Record<string, string>;
16
+ /**
17
+ * Resolve a prompt-cache identity from inbound request body + headers.
18
+ * Order of precedence (first wins):
19
+ * 1. Body `prompt_cache_key`
20
+ * 2. Body `metadata.{prompt_cache_key,session_id,conversation_id}`
21
+ * 3. Header `x-prompt-cache-key`
22
+ * 4. Header `session_id` / `conversation_id` (Codex / ChatGPT-OAuth surface)
23
+ * 5. Header `x-session-id` / `x-conversation-id` (common informal)
24
+ * Returns undefined when none present; the gateway then derives a stable
25
+ * UUID from the request's stable parts.
26
+ */
27
+ export declare function resolvePromptCacheKey(body: unknown, headers?: Headers): string | undefined;
28
+ /**
29
+ * CORS headers for the auth-gateway. Currently echoes a wildcard origin; the
30
+ * request is accepted so future tightening can mirror `Origin` without
31
+ * threading the request through every caller.
32
+ */
33
+ export declare function corsHeaders(_req: Request): Record<string, string>;
34
+ /**
35
+ * Re-emit `response` with CORS headers merged. The original response body is
36
+ * passed through unchanged. Used by the gateway wrapper so every outbound
37
+ * format-endpoint response carries the same CORS surface as the preflight.
38
+ */
39
+ 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,36 @@
1
+ import type { AuthStorage } from "../auth-storage";
2
+ import type { Api, Model } from "../types";
3
+ import type { AuthGatewayServerHandle, AuthGatewayServerOptions } from "./types";
4
+ export type ModelResolver = (modelId: string) => Model<Api> | undefined;
5
+ export interface AuthGatewayBootOptions extends AuthGatewayServerOptions {
6
+ /** Source of credentials. Caller wires this to a broker-backed AuthStorage. */
7
+ storage: AuthStorage;
8
+ /**
9
+ * Resolve a client-requested model id to an aery-ai Model. Caller supplies
10
+ * this from a ModelRegistry (lives in `coding-agent` to avoid an inverse
11
+ * dependency in `aery-ai`).
12
+ */
13
+ resolveModel: ModelResolver;
14
+ /** Optional supplier for `/v1/models` listing. Returns the full model array. */
15
+ listModels?: () => Iterable<Model<Api>>;
16
+ }
17
+ /**
18
+ * Classify an upstream / gateway-internal error into a status code and a
19
+ * format-neutral type. The order is intentional:
20
+ *
21
+ * 1. Honour an explicit numeric `status` property on the thrown error.
22
+ * 2. Parse a status code embedded in the message string. Provider errors
23
+ * virtually always carry one (`Google API error (400): …`, `HTTP 429`,
24
+ * `status=503`) and the embedded value is authoritative.
25
+ * 3. Fall through to **word-boundaried** substring heuristics. The old
26
+ * `lower.includes("rate")` test famously matched
27
+ * `GenerateContentRequest`, surfacing every Google 400 as a 429
28
+ * `rate_limit_error`. The patterns here all require boundaries so they
29
+ * don't collide with provider field names.
30
+ */
31
+ export declare function classifyGatewayError(err: unknown): {
32
+ status: number;
33
+ type: string;
34
+ message: string;
35
+ };
36
+ export declare function startAuthGateway(opts: AuthGatewayBootOptions): AuthGatewayServerHandle;
@@ -0,0 +1,117 @@
1
+ import type { Effort } from "../model-thinking";
2
+ import type { AssistantMessage, AssistantMessageEventStream, CacheRetention, Context, ServiceTier, TokenTaskBudget } from "../types";
3
+ /**
4
+ * Wire types for the aery auth-gateway.
5
+ *
6
+ * The gateway sits between unauthenticated clients (containerized aery,
7
+ * llm-git, …) and the broker. It accepts provider-format HTTP requests
8
+ * (OpenAI chat-completions / Anthropic messages / OpenAI Responses),
9
+ * dispatches them through aery-ai's `streamSimple()`, and translates the
10
+ * canonical event stream back to the matching wire format. The gateway
11
+ * injects `Authorization` server-side so clients never see access tokens.
12
+ */
13
+ /** Default bind. Loopback-only — front with reverse proxy for remote access. */
14
+ export declare const DEFAULT_AUTH_GATEWAY_BIND = "127.0.0.1:4000";
15
+ export type AuthGatewayToolChoice = "auto" | "none" | "required" | {
16
+ name: string;
17
+ };
18
+ export interface AuthGatewayParsedRequestOptions {
19
+ maxOutputTokens?: number;
20
+ temperature?: number;
21
+ topP?: number;
22
+ topK?: number;
23
+ /** OpenAI nucleus-min sampling (`min_p`). */
24
+ minP?: number;
25
+ /** Anthropic `stop_sequences` / OpenAI `stop`. */
26
+ stopSequences?: string[];
27
+ /** OpenAI `presence_penalty`. */
28
+ presencePenalty?: number;
29
+ /** OpenAI `frequency_penalty`. */
30
+ frequencyPenalty?: number;
31
+ /** OpenRouter / vLLM `repetition_penalty`. */
32
+ repetitionPenalty?: number;
33
+ /** OpenAI deterministic-sampling `seed`. */
34
+ seed?: number;
35
+ /** OpenAI `logit_bias` map (token id → bias). */
36
+ logitBias?: Record<string, number>;
37
+ /** OpenAI `response_format` (text | json_object | json_schema). Opaque passthrough. */
38
+ responseFormat?: unknown;
39
+ toolChoice?: AuthGatewayToolChoice;
40
+ /** OpenAI `parallel_tool_calls`. */
41
+ parallelToolCalls?: boolean;
42
+ /** Effort-level reasoning request (OpenAI Responses / Chat `reasoning_effort`). */
43
+ reasoning?: Effort;
44
+ /** Force-disable reasoning (Anthropic `thinking: { type: "disabled" }`). */
45
+ disableReasoning?: boolean;
46
+ /**
47
+ * Explicit Anthropic `thinking.budget_tokens`. Mirrors Rust's
48
+ * `resolve_thinking_budget`: pins onto whichever effort the client
49
+ * requested (defaulting to High when unspecified). Preferred over the
50
+ * removed legacy single-number `thinkingBudget` for new code.
51
+ */
52
+ explicitThinkingBudgetTokens?: number;
53
+ /** Per-effort thinking budget map. */
54
+ thinkingBudgets?: Partial<Record<Effort, number>>;
55
+ /** Suppress the provider's reasoning summary stream. */
56
+ hideThinkingSummary?: boolean;
57
+ /** Anthropic `output_config.task_budget` advisory loop budget. */
58
+ taskBudget?: TokenTaskBudget;
59
+ /** OpenAI service tier (auto|default|flex|scale|priority). */
60
+ serviceTier?: ServiceTier;
61
+ /** Cache retention hint derived from inbound `cache_control` markers. */
62
+ cacheRetention?: CacheRetention;
63
+ /** OpenAI Responses `prompt_cache_key`; also seeds provider routing when no separate session id exists. */
64
+ promptCacheKey?: string;
65
+ /** OpenAI Responses `previous_response_id` for response chaining. */
66
+ previousResponseId?: string;
67
+ /** OpenAI / abuse-tracking `user` field. */
68
+ user?: string;
69
+ /**
70
+ * Provider-specific metadata. Anthropic uses `metadata.user_id`; OpenRouter
71
+ * carries routing hints; xAI uses `search_parameters`; OpenAI accepts a
72
+ * free-form bag. The gateway forwards as-is.
73
+ */
74
+ metadata?: Record<string, unknown>;
75
+ /**
76
+ * Captured allow-listed passthrough headers (anthropic-beta,
77
+ * anthropic-version, openai-organization, openai-project, openai-beta,
78
+ * x-stainless-*). Keys are lowercased.
79
+ */
80
+ headers?: Record<string, string>;
81
+ /**
82
+ * Escape hatch for provider-specific request controls that don't yet have a
83
+ * first-class field. Prefer adding a typed field over widening this.
84
+ */
85
+ extra?: Record<string, unknown>;
86
+ }
87
+ export interface AuthGatewayParsedRequest {
88
+ modelId: string;
89
+ context: Context;
90
+ stream: boolean;
91
+ options: AuthGatewayParsedRequestOptions;
92
+ }
93
+ export interface AuthGatewayFormatModule {
94
+ parseRequest(body: unknown, headers?: Headers): AuthGatewayParsedRequest;
95
+ encodeResponse(message: AssistantMessage, requestedModelId: string): Record<string, unknown>;
96
+ encodeStream(events: AssistantMessageEventStream, requestedModelId: string, options?: AuthGatewayParsedRequestOptions): ReadableStream<Uint8Array>;
97
+ /**
98
+ * Emit a protocol-specific error envelope. OpenAI returns
99
+ * `{ error: { message, type } }`; Anthropic returns
100
+ * `{ type: "error", error: { type, message } }`.
101
+ */
102
+ formatError(status: number, type: string, message: string): Response;
103
+ }
104
+ export interface AuthGatewayServerOptions {
105
+ /** Listen address. Default `127.0.0.1:4000`. */
106
+ bind?: string;
107
+ /** Accept any of these bearer tokens. Empty allows unauthenticated calls. */
108
+ bearerTokens: string[];
109
+ /** Version surfaced on `/healthz`. */
110
+ version?: string;
111
+ }
112
+ export interface AuthGatewayServerHandle {
113
+ url: string;
114
+ port: number;
115
+ hostname: string;
116
+ close(): Promise<void>;
117
+ }