@gajae-code/ai 0.1.1

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 (349) hide show
  1. package/CHANGELOG.md +2644 -0
  2. package/README.md +1181 -0
  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 +17 -0
  14. package/dist/types/auth-gateway/types.d.ts +115 -0
  15. package/dist/types/auth-storage.d.ts +641 -0
  16. package/dist/types/cli.d.ts +2 -0
  17. package/dist/types/index.d.ts +49 -0
  18. package/dist/types/model-cache.d.ts +17 -0
  19. package/dist/types/model-manager.d.ts +62 -0
  20. package/dist/types/model-thinking.d.ts +71 -0
  21. package/dist/types/models.d.ts +12 -0
  22. package/dist/types/provider-details.d.ts +24 -0
  23. package/dist/types/provider-models/bundled-references.d.ts +4 -0
  24. package/dist/types/provider-models/descriptors.d.ts +48 -0
  25. package/dist/types/provider-models/google.d.ts +20 -0
  26. package/dist/types/provider-models/index.d.ts +5 -0
  27. package/dist/types/provider-models/ollama.d.ts +7 -0
  28. package/dist/types/provider-models/openai-compat.d.ts +237 -0
  29. package/dist/types/provider-models/special.d.ts +16 -0
  30. package/dist/types/providers/amazon-bedrock.d.ts +36 -0
  31. package/dist/types/providers/anthropic-messages-server-schema.d.ts +450 -0
  32. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  33. package/dist/types/providers/anthropic.d.ts +188 -0
  34. package/dist/types/providers/aws-credentials.d.ts +43 -0
  35. package/dist/types/providers/aws-eventstream.d.ts +38 -0
  36. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  37. package/dist/types/providers/azure-openai-responses.d.ts +15 -0
  38. package/dist/types/providers/cursor/gen/agent_pb.d.ts +13022 -0
  39. package/dist/types/providers/cursor.d.ts +42 -0
  40. package/dist/types/providers/error-message.d.ts +27 -0
  41. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  42. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  43. package/dist/types/providers/google-auth.d.ts +24 -0
  44. package/dist/types/providers/google-gemini-cli.d.ts +72 -0
  45. package/dist/types/providers/google-gemini-headers.d.ts +18 -0
  46. package/dist/types/providers/google-shared.d.ts +163 -0
  47. package/dist/types/providers/google-types.d.ts +138 -0
  48. package/dist/types/providers/google-vertex.d.ts +7 -0
  49. package/dist/types/providers/google.d.ts +4 -0
  50. package/dist/types/providers/grammar.d.ts +1 -0
  51. package/dist/types/providers/kimi.d.ts +27 -0
  52. package/dist/types/providers/mock.d.ts +175 -0
  53. package/dist/types/providers/ollama.d.ts +6 -0
  54. package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
  55. package/dist/types/providers/openai-chat-server-schema.d.ts +814 -0
  56. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  57. package/dist/types/providers/openai-codex/constants.d.ts +26 -0
  58. package/dist/types/providers/openai-codex/request-transformer.d.ts +49 -0
  59. package/dist/types/providers/openai-codex/response-handler.d.ts +17 -0
  60. package/dist/types/providers/openai-codex-responses.d.ts +67 -0
  61. package/dist/types/providers/openai-completions-compat.d.ts +25 -0
  62. package/dist/types/providers/openai-completions.d.ts +33 -0
  63. package/dist/types/providers/openai-responses-server-schema.d.ts +392 -0
  64. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  65. package/dist/types/providers/openai-responses-shared.d.ts +89 -0
  66. package/dist/types/providers/openai-responses.d.ts +32 -0
  67. package/dist/types/providers/pi-native-client.d.ts +13 -0
  68. package/dist/types/providers/pi-native-server.d.ts +68 -0
  69. package/dist/types/providers/register-builtins.d.ts +31 -0
  70. package/dist/types/providers/synthetic.d.ts +26 -0
  71. package/dist/types/providers/transform-messages.d.ts +12 -0
  72. package/dist/types/providers/vision-guard.d.ts +8 -0
  73. package/dist/types/rate-limit-utils.d.ts +19 -0
  74. package/dist/types/stream.d.ts +24 -0
  75. package/dist/types/types.d.ts +746 -0
  76. package/dist/types/usage/claude.d.ts +3 -0
  77. package/dist/types/usage/gemini.d.ts +2 -0
  78. package/dist/types/usage/github-copilot.d.ts +7 -0
  79. package/dist/types/usage/google-antigravity.d.ts +2 -0
  80. package/dist/types/usage/kimi.d.ts +2 -0
  81. package/dist/types/usage/minimax-code.d.ts +2 -0
  82. package/dist/types/usage/openai-codex.d.ts +3 -0
  83. package/dist/types/usage/shared.d.ts +1 -0
  84. package/dist/types/usage/zai.d.ts +2 -0
  85. package/dist/types/usage.d.ts +258 -0
  86. package/dist/types/utils/abort.d.ts +19 -0
  87. package/dist/types/utils/anthropic-auth.d.ts +31 -0
  88. package/dist/types/utils/discovery/antigravity.d.ts +61 -0
  89. package/dist/types/utils/discovery/codex.d.ts +38 -0
  90. package/dist/types/utils/discovery/cursor.d.ts +23 -0
  91. package/dist/types/utils/discovery/gemini.d.ts +25 -0
  92. package/dist/types/utils/discovery/index.d.ts +4 -0
  93. package/dist/types/utils/discovery/openai-compatible.d.ts +72 -0
  94. package/dist/types/utils/event-stream.d.ts +28 -0
  95. package/dist/types/utils/fireworks-model-id.d.ts +10 -0
  96. package/dist/types/utils/foundry.d.ts +1 -0
  97. package/dist/types/utils/h2-fetch.d.ts +22 -0
  98. package/dist/types/utils/http-inspector.d.ts +31 -0
  99. package/dist/types/utils/idle-iterator.d.ts +67 -0
  100. package/dist/types/utils/json-parse.d.ts +10 -0
  101. package/dist/types/utils/oauth/alibaba-coding-plan.d.ts +18 -0
  102. package/dist/types/utils/oauth/anthropic.d.ts +22 -0
  103. package/dist/types/utils/oauth/api-key-login.d.ts +35 -0
  104. package/dist/types/utils/oauth/api-key-validation.d.ts +27 -0
  105. package/dist/types/utils/oauth/callback-server.d.ts +57 -0
  106. package/dist/types/utils/oauth/cerebras.d.ts +1 -0
  107. package/dist/types/utils/oauth/cloudflare-ai-gateway.d.ts +18 -0
  108. package/dist/types/utils/oauth/cursor.d.ts +15 -0
  109. package/dist/types/utils/oauth/deepseek.d.ts +10 -0
  110. package/dist/types/utils/oauth/firepass.d.ts +1 -0
  111. package/dist/types/utils/oauth/fireworks.d.ts +1 -0
  112. package/dist/types/utils/oauth/github-copilot.d.ts +38 -0
  113. package/dist/types/utils/oauth/gitlab-duo.d.ts +3 -0
  114. package/dist/types/utils/oauth/google-antigravity.d.ts +11 -0
  115. package/dist/types/utils/oauth/google-gemini-cli.d.ts +10 -0
  116. package/dist/types/utils/oauth/google-oauth-shared.d.ts +28 -0
  117. package/dist/types/utils/oauth/huggingface.d.ts +19 -0
  118. package/dist/types/utils/oauth/index.d.ts +38 -0
  119. package/dist/types/utils/oauth/kagi.d.ts +17 -0
  120. package/dist/types/utils/oauth/kilo.d.ts +5 -0
  121. package/dist/types/utils/oauth/kimi.d.ts +21 -0
  122. package/dist/types/utils/oauth/litellm.d.ts +18 -0
  123. package/dist/types/utils/oauth/lm-studio.d.ts +17 -0
  124. package/dist/types/utils/oauth/minimax-code.d.ts +28 -0
  125. package/dist/types/utils/oauth/moonshot.d.ts +1 -0
  126. package/dist/types/utils/oauth/nanogpt.d.ts +1 -0
  127. package/dist/types/utils/oauth/nvidia.d.ts +18 -0
  128. package/dist/types/utils/oauth/ollama-cloud.d.ts +2 -0
  129. package/dist/types/utils/oauth/ollama.d.ts +18 -0
  130. package/dist/types/utils/oauth/openai-codex.d.ts +21 -0
  131. package/dist/types/utils/oauth/opencode.d.ts +18 -0
  132. package/dist/types/utils/oauth/parallel.d.ts +17 -0
  133. package/dist/types/utils/oauth/perplexity.d.ts +9 -0
  134. package/dist/types/utils/oauth/pkce.d.ts +8 -0
  135. package/dist/types/utils/oauth/qianfan.d.ts +17 -0
  136. package/dist/types/utils/oauth/qwen-portal.d.ts +19 -0
  137. package/dist/types/utils/oauth/synthetic.d.ts +1 -0
  138. package/dist/types/utils/oauth/tavily.d.ts +17 -0
  139. package/dist/types/utils/oauth/together.d.ts +1 -0
  140. package/dist/types/utils/oauth/types.d.ts +44 -0
  141. package/dist/types/utils/oauth/venice.d.ts +18 -0
  142. package/dist/types/utils/oauth/vercel-ai-gateway.d.ts +18 -0
  143. package/dist/types/utils/oauth/vllm.d.ts +16 -0
  144. package/dist/types/utils/oauth/xiaomi.d.ts +19 -0
  145. package/dist/types/utils/oauth/zai.d.ts +18 -0
  146. package/dist/types/utils/oauth/zenmux.d.ts +1 -0
  147. package/dist/types/utils/overflow.d.ts +54 -0
  148. package/dist/types/utils/parse-bind.d.ts +23 -0
  149. package/dist/types/utils/provider-response.d.ts +3 -0
  150. package/dist/types/utils/retry-after.d.ts +3 -0
  151. package/dist/types/utils/retry.d.ts +26 -0
  152. package/dist/types/utils/schema/adapt.d.ts +24 -0
  153. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  154. package/dist/types/utils/schema/dereference.d.ts +11 -0
  155. package/dist/types/utils/schema/draft.d.ts +10 -0
  156. package/dist/types/utils/schema/equality.d.ts +4 -0
  157. package/dist/types/utils/schema/fields.d.ts +49 -0
  158. package/dist/types/utils/schema/index.d.ts +13 -0
  159. package/dist/types/utils/schema/json-schema-validator.d.ts +12 -0
  160. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  161. package/dist/types/utils/schema/normalize.d.ts +93 -0
  162. package/dist/types/utils/schema/spill.d.ts +8 -0
  163. package/dist/types/utils/schema/stamps.d.ts +25 -0
  164. package/dist/types/utils/schema/types.d.ts +4 -0
  165. package/dist/types/utils/schema/wire.d.ts +54 -0
  166. package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
  167. package/dist/types/utils/sse-debug.d.ts +10 -0
  168. package/dist/types/utils/tool-call-healing.d.ts +71 -0
  169. package/dist/types/utils/tool-choice.d.ts +50 -0
  170. package/dist/types/utils/validation.d.ts +17 -0
  171. package/dist/types/utils.d.ts +28 -0
  172. package/package.json +146 -0
  173. package/src/api-registry.ts +96 -0
  174. package/src/auth-broker/client.ts +358 -0
  175. package/src/auth-broker/index.ts +5 -0
  176. package/src/auth-broker/refresher.ts +127 -0
  177. package/src/auth-broker/remote-store.ts +623 -0
  178. package/src/auth-broker/server.ts +644 -0
  179. package/src/auth-broker/types.ts +127 -0
  180. package/src/auth-broker/wire-schemas.ts +200 -0
  181. package/src/auth-gateway/http.ts +194 -0
  182. package/src/auth-gateway/index.ts +3 -0
  183. package/src/auth-gateway/server.ts +717 -0
  184. package/src/auth-gateway/types.ts +134 -0
  185. package/src/auth-storage.ts +4104 -0
  186. package/src/cli.ts +262 -0
  187. package/src/index.ts +54 -0
  188. package/src/model-cache.ts +129 -0
  189. package/src/model-manager.ts +450 -0
  190. package/src/model-thinking.ts +691 -0
  191. package/src/models.json +73853 -0
  192. package/src/models.json.d.ts +9 -0
  193. package/src/models.ts +56 -0
  194. package/src/prompts/turn-aborted-guidance.md +4 -0
  195. package/src/provider-details.ts +90 -0
  196. package/src/provider-models/bundled-references.ts +38 -0
  197. package/src/provider-models/descriptors.ts +308 -0
  198. package/src/provider-models/google.ts +91 -0
  199. package/src/provider-models/index.ts +5 -0
  200. package/src/provider-models/ollama.ts +153 -0
  201. package/src/provider-models/openai-compat.ts +2275 -0
  202. package/src/provider-models/special.ts +67 -0
  203. package/src/providers/amazon-bedrock.ts +849 -0
  204. package/src/providers/anthropic-messages-server-schema.ts +229 -0
  205. package/src/providers/anthropic-messages-server.ts +677 -0
  206. package/src/providers/anthropic.ts +2696 -0
  207. package/src/providers/aws-credentials.ts +501 -0
  208. package/src/providers/aws-eventstream.ts +185 -0
  209. package/src/providers/aws-sigv4.ts +218 -0
  210. package/src/providers/azure-openai-responses.ts +337 -0
  211. package/src/providers/cursor/gen/agent_pb.ts +15274 -0
  212. package/src/providers/cursor/proto/agent.proto +3526 -0
  213. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  214. package/src/providers/cursor/proto/buf.yaml +17 -0
  215. package/src/providers/cursor.ts +2561 -0
  216. package/src/providers/error-message.ts +21 -0
  217. package/src/providers/github-copilot-headers.ts +140 -0
  218. package/src/providers/gitlab-duo.ts +372 -0
  219. package/src/providers/google-auth.ts +252 -0
  220. package/src/providers/google-gemini-cli.ts +795 -0
  221. package/src/providers/google-gemini-headers.ts +41 -0
  222. package/src/providers/google-shared.ts +902 -0
  223. package/src/providers/google-types.ts +167 -0
  224. package/src/providers/google-vertex.ts +88 -0
  225. package/src/providers/google.ts +41 -0
  226. package/src/providers/grammar.ts +70 -0
  227. package/src/providers/kimi.ts +52 -0
  228. package/src/providers/mock.ts +500 -0
  229. package/src/providers/ollama.ts +544 -0
  230. package/src/providers/openai-anthropic-shim.ts +138 -0
  231. package/src/providers/openai-chat-server-schema.ts +243 -0
  232. package/src/providers/openai-chat-server.ts +628 -0
  233. package/src/providers/openai-codex/constants.ts +43 -0
  234. package/src/providers/openai-codex/request-transformer.ts +161 -0
  235. package/src/providers/openai-codex/response-handler.ts +81 -0
  236. package/src/providers/openai-codex-responses.ts +2598 -0
  237. package/src/providers/openai-completions-compat.ts +279 -0
  238. package/src/providers/openai-completions.ts +1853 -0
  239. package/src/providers/openai-responses-server-schema.ts +290 -0
  240. package/src/providers/openai-responses-server.ts +1183 -0
  241. package/src/providers/openai-responses-shared.ts +800 -0
  242. package/src/providers/openai-responses.ts +621 -0
  243. package/src/providers/pi-native-client.ts +228 -0
  244. package/src/providers/pi-native-server.ts +210 -0
  245. package/src/providers/register-builtins.ts +412 -0
  246. package/src/providers/synthetic.ts +50 -0
  247. package/src/providers/transform-messages.ts +309 -0
  248. package/src/providers/vision-guard.ts +31 -0
  249. package/src/rate-limit-utils.ts +84 -0
  250. package/src/stream.ts +895 -0
  251. package/src/types.ts +884 -0
  252. package/src/usage/claude.ts +431 -0
  253. package/src/usage/gemini.ts +250 -0
  254. package/src/usage/github-copilot.ts +421 -0
  255. package/src/usage/google-antigravity.ts +201 -0
  256. package/src/usage/kimi.ts +271 -0
  257. package/src/usage/minimax-code.ts +31 -0
  258. package/src/usage/openai-codex.ts +503 -0
  259. package/src/usage/shared.ts +10 -0
  260. package/src/usage/zai.ts +247 -0
  261. package/src/usage.ts +183 -0
  262. package/src/utils/abort.ts +51 -0
  263. package/src/utils/anthropic-auth.ts +87 -0
  264. package/src/utils/discovery/antigravity.ts +261 -0
  265. package/src/utils/discovery/codex.ts +371 -0
  266. package/src/utils/discovery/cursor.ts +306 -0
  267. package/src/utils/discovery/gemini.ts +248 -0
  268. package/src/utils/discovery/index.ts +4 -0
  269. package/src/utils/discovery/openai-compatible.ts +224 -0
  270. package/src/utils/event-stream.ts +142 -0
  271. package/src/utils/fireworks-model-id.ts +30 -0
  272. package/src/utils/foundry.ts +8 -0
  273. package/src/utils/h2-fetch.ts +60 -0
  274. package/src/utils/http-inspector.ts +176 -0
  275. package/src/utils/idle-iterator.ts +250 -0
  276. package/src/utils/json-parse.ts +148 -0
  277. package/src/utils/oauth/alibaba-coding-plan.ts +59 -0
  278. package/src/utils/oauth/anthropic.ts +200 -0
  279. package/src/utils/oauth/api-key-login.ts +87 -0
  280. package/src/utils/oauth/api-key-validation.ts +92 -0
  281. package/src/utils/oauth/callback-server.ts +276 -0
  282. package/src/utils/oauth/cerebras.ts +16 -0
  283. package/src/utils/oauth/cloudflare-ai-gateway.ts +48 -0
  284. package/src/utils/oauth/cursor.ts +157 -0
  285. package/src/utils/oauth/deepseek.ts +53 -0
  286. package/src/utils/oauth/firepass.ts +24 -0
  287. package/src/utils/oauth/fireworks.ts +15 -0
  288. package/src/utils/oauth/github-copilot.ts +362 -0
  289. package/src/utils/oauth/gitlab-duo.ts +123 -0
  290. package/src/utils/oauth/google-antigravity.ts +200 -0
  291. package/src/utils/oauth/google-gemini-cli.ts +256 -0
  292. package/src/utils/oauth/google-oauth-shared.ts +110 -0
  293. package/src/utils/oauth/huggingface.ts +62 -0
  294. package/src/utils/oauth/index.ts +444 -0
  295. package/src/utils/oauth/kagi.ts +47 -0
  296. package/src/utils/oauth/kilo.ts +87 -0
  297. package/src/utils/oauth/kimi.ts +254 -0
  298. package/src/utils/oauth/litellm.ts +47 -0
  299. package/src/utils/oauth/lm-studio.ts +38 -0
  300. package/src/utils/oauth/minimax-code.ts +78 -0
  301. package/src/utils/oauth/moonshot.ts +16 -0
  302. package/src/utils/oauth/nanogpt.ts +15 -0
  303. package/src/utils/oauth/nvidia.ts +70 -0
  304. package/src/utils/oauth/oauth.html +199 -0
  305. package/src/utils/oauth/ollama-cloud.ts +28 -0
  306. package/src/utils/oauth/ollama.ts +47 -0
  307. package/src/utils/oauth/openai-codex.ts +299 -0
  308. package/src/utils/oauth/opencode.ts +49 -0
  309. package/src/utils/oauth/parallel.ts +46 -0
  310. package/src/utils/oauth/perplexity.ts +206 -0
  311. package/src/utils/oauth/pkce.ts +18 -0
  312. package/src/utils/oauth/qianfan.ts +58 -0
  313. package/src/utils/oauth/qwen-portal.ts +60 -0
  314. package/src/utils/oauth/synthetic.ts +16 -0
  315. package/src/utils/oauth/tavily.ts +46 -0
  316. package/src/utils/oauth/together.ts +16 -0
  317. package/src/utils/oauth/types.ts +94 -0
  318. package/src/utils/oauth/venice.ts +59 -0
  319. package/src/utils/oauth/vercel-ai-gateway.ts +47 -0
  320. package/src/utils/oauth/vllm.ts +40 -0
  321. package/src/utils/oauth/xiaomi.ts +137 -0
  322. package/src/utils/oauth/zai.ts +60 -0
  323. package/src/utils/oauth/zenmux.ts +15 -0
  324. package/src/utils/overflow.ts +137 -0
  325. package/src/utils/parse-bind.ts +54 -0
  326. package/src/utils/provider-response.ts +30 -0
  327. package/src/utils/retry-after.ts +110 -0
  328. package/src/utils/retry.ts +54 -0
  329. package/src/utils/schema/CONSTRAINTS.md +164 -0
  330. package/src/utils/schema/adapt.ts +36 -0
  331. package/src/utils/schema/compatibility.ts +435 -0
  332. package/src/utils/schema/dereference.ts +98 -0
  333. package/src/utils/schema/draft.ts +341 -0
  334. package/src/utils/schema/equality.ts +97 -0
  335. package/src/utils/schema/fields.ts +190 -0
  336. package/src/utils/schema/index.ts +13 -0
  337. package/src/utils/schema/json-schema-validator.ts +577 -0
  338. package/src/utils/schema/meta-validator.ts +167 -0
  339. package/src/utils/schema/normalize.ts +1588 -0
  340. package/src/utils/schema/spill.ts +43 -0
  341. package/src/utils/schema/stamps.ts +97 -0
  342. package/src/utils/schema/types.ts +11 -0
  343. package/src/utils/schema/wire.ts +213 -0
  344. package/src/utils/schema/zod-decontaminate.ts +331 -0
  345. package/src/utils/sse-debug.ts +289 -0
  346. package/src/utils/tool-call-healing.ts +271 -0
  347. package/src/utils/tool-choice.ts +99 -0
  348. package/src/utils/validation.ts +1019 -0
  349. package/src/utils.ts +166 -0
@@ -0,0 +1,49 @@
1
+ export { type ZodType, z } from "zod/v4";
2
+ export * from "./api-registry";
3
+ export * from "./auth-broker";
4
+ export { type AuthGatewayBootOptions, type ModelResolver, startAuthGateway } from "./auth-gateway/server";
5
+ export * from "./auth-gateway/types";
6
+ export * from "./auth-storage";
7
+ export * from "./model-cache";
8
+ export * from "./model-manager";
9
+ export * from "./model-thinking";
10
+ export * from "./models";
11
+ export * from "./provider-details";
12
+ export * from "./provider-models";
13
+ export * from "./providers/anthropic";
14
+ export * from "./providers/azure-openai-responses";
15
+ export type * from "./providers/cursor";
16
+ export * from "./providers/gitlab-duo";
17
+ export type * from "./providers/google";
18
+ export type * from "./providers/google-gemini-cli";
19
+ export * from "./providers/google-gemini-headers";
20
+ export type * from "./providers/google-vertex";
21
+ export * from "./providers/kimi";
22
+ export * from "./providers/mock";
23
+ export * from "./providers/ollama";
24
+ export * from "./providers/openai-codex-responses";
25
+ export * from "./providers/openai-completions";
26
+ export * from "./providers/openai-responses";
27
+ export * from "./providers/synthetic";
28
+ export * from "./rate-limit-utils";
29
+ export * from "./stream";
30
+ export * from "./types";
31
+ export * from "./usage";
32
+ export * from "./usage/claude";
33
+ export * from "./usage/gemini";
34
+ export * from "./usage/github-copilot";
35
+ export * from "./usage/google-antigravity";
36
+ export * from "./usage/kimi";
37
+ export * from "./usage/minimax-code";
38
+ export * from "./usage/openai-codex";
39
+ export * from "./usage/zai";
40
+ export * from "./utils/anthropic-auth";
41
+ export * from "./utils/discovery";
42
+ export * from "./utils/event-stream";
43
+ export * from "./utils/h2-fetch";
44
+ export * from "./utils/oauth";
45
+ export type { OAuthCredentials, OAuthProvider, OAuthProviderId, OAuthProviderInfo, } from "./utils/oauth/types";
46
+ export * from "./utils/overflow";
47
+ export * from "./utils/retry";
48
+ export * from "./utils/schema";
49
+ export * from "./utils/validation";
@@ -0,0 +1,17 @@
1
+ import type { Api, Model } from "./types";
2
+ interface CacheEntry<TApi extends Api = Api> {
3
+ models: Model<TApi>[];
4
+ fresh: boolean;
5
+ authoritative: boolean;
6
+ updatedAt: number;
7
+ /**
8
+ * Hash of the static catalog slice that was merged into `models` when this
9
+ * row was written. `resolveProviderModels` compares against the current
10
+ * static fingerprint and bypasses the static+cache re-merge when they
11
+ * match — the cache already incorporates the same static state.
12
+ */
13
+ staticFingerprint: string;
14
+ }
15
+ export declare function readModelCache<TApi extends Api>(providerId: string, ttlMs: number, now: () => number, dbPath?: string): CacheEntry<TApi> | null;
16
+ export declare function writeModelCache<TApi extends Api>(providerId: string, updatedAt: number, models: Model<TApi>[], authoritative: boolean, staticFingerprint: string, dbPath?: string): void;
17
+ export {};
@@ -0,0 +1,62 @@
1
+ import type { Api, Model, Provider } from "./types";
2
+ /**
3
+ * Controls when dynamic endpoint models should be fetched.
4
+ */
5
+ export type ModelRefreshStrategy = "online" | "offline" | "online-if-uncached";
6
+ /**
7
+ * Hook for loading and mapping models.dev fallback data into canonical model objects.
8
+ */
9
+ export interface ModelsDevFallback<TApi extends Api = Api, TPayload = unknown> {
10
+ /** Fetches raw fallback payload (for example from models.dev). */
11
+ fetch(): Promise<TPayload>;
12
+ /** Maps payload into provider models. */
13
+ map(payload: TPayload, providerId: Provider): readonly Model<TApi>[];
14
+ }
15
+ /**
16
+ * Configuration for provider model resolution.
17
+ */
18
+ export interface ModelManagerOptions<TApi extends Api = Api, TModelsDevPayload = unknown> {
19
+ /** Provider id used for static lookup and cache namespacing. */
20
+ providerId: Provider;
21
+ /** Optional static list override. When omitted, bundled models.json is used. */
22
+ staticModels?: readonly Model<TApi>[];
23
+ /** Optional override for the cache database path. Default: <agent-dir>/models.db. */
24
+ cacheDbPath?: string;
25
+ /** Maximum cache age in milliseconds before considered stale. Default: 24h. */
26
+ cacheTtlMs?: number;
27
+ /** Optional dynamic endpoint fetcher. */
28
+ fetchDynamicModels?: () => Promise<readonly Model<TApi>[] | null>;
29
+ /** Optional models.dev fallback hook. */
30
+ modelsDev?: ModelsDevFallback<TApi, TModelsDevPayload>;
31
+ /** Clock override for deterministic tests. */
32
+ now?: () => number;
33
+ }
34
+ /**
35
+ * Resolution result.
36
+ *
37
+ * `stale` is false when the resolved catalog is authoritative for the selected provider:
38
+ * - dynamic endpoint data was fetched in this call,
39
+ * - a still-fresh authoritative cache was reused in `online-if-uncached` mode, or
40
+ * - the provider has no dynamic fetcher configured.
41
+ */
42
+ export interface ModelResolutionResult<TApi extends Api = Api> {
43
+ models: Model<TApi>[];
44
+ stale: boolean;
45
+ }
46
+ /**
47
+ * Stateful facade over provider model resolution.
48
+ */
49
+ export interface ModelManager<TApi extends Api = Api> {
50
+ refresh(strategy?: ModelRefreshStrategy): Promise<ModelResolutionResult<TApi>>;
51
+ }
52
+ /**
53
+ * Creates a reusable provider model manager.
54
+ */
55
+ export declare function createModelManager<TApi extends Api = Api, TModelsDevPayload = unknown>(options: ModelManagerOptions<TApi, TModelsDevPayload>): ModelManager<TApi>;
56
+ /**
57
+ * Resolves provider models with source precedence:
58
+ * static -> models.dev -> cache -> dynamic.
59
+ *
60
+ * Later sources override earlier ones by model id.
61
+ */
62
+ export declare function resolveProviderModels<TApi extends Api = Api, TModelsDevPayload = unknown>(options: ModelManagerOptions<TApi, TModelsDevPayload>, strategy?: ModelRefreshStrategy): Promise<ModelResolutionResult<TApi>>;
@@ -0,0 +1,71 @@
1
+ import type { Api, Model as ApiModel } from "./types";
2
+ /** User-facing thinking levels, ordered least to most intensive. */
3
+ export declare const enum Effort {
4
+ Minimal = "minimal",
5
+ Low = "low",
6
+ Medium = "medium",
7
+ High = "high",
8
+ XHigh = "xhigh"
9
+ }
10
+ export declare const THINKING_EFFORTS: readonly Effort[];
11
+ /**
12
+ * Static fallback model injected when Cloudflare AI Gateway discovery
13
+ * returns no results. Ensures the provider always has at least one usable
14
+ * model entry in the catalog.
15
+ */
16
+ export declare const CLOUDFLARE_FALLBACK_MODEL: ApiModel<"anthropic-messages">;
17
+ /**
18
+ * Returns a copy of the model with canonical thinking metadata attached.
19
+ *
20
+ * This helper belongs to catalog enrichment only. Runtime consumers should
21
+ * trust `model.thinking` and avoid inferring capabilities on demand.
22
+ */
23
+ export declare function enrichModelThinking<TApi extends Api>(model: ApiModel<TApi>): ApiModel<TApi>;
24
+ /**
25
+ * Returns a copy of the model with thinking metadata recomputed from the
26
+ * canonical rules, replacing any existing `thinking`.
27
+ */
28
+ export declare function refreshModelThinking<TApi extends Api>(model: ApiModel<TApi>): ApiModel<TApi>;
29
+ /**
30
+ * Apply upstream metadata corrections to a mutable array of models.
31
+ *
32
+ * Each model is first normalized through `refreshModelThinking()` so generated
33
+ * catalogs keep canonical thinking metadata and policy fixes in one pass.
34
+ */
35
+ export declare function applyGeneratedModelPolicies(models: ApiModel<Api>[]): void;
36
+ /**
37
+ * Link OpenAI model variants to their context promotion targets.
38
+ *
39
+ * When a model's context is exhausted, the agent can promote to a sibling
40
+ * model with a larger context window on the same provider:
41
+ * - `OpenAI code backend-spark` variants promote to `gpt-5.5`.
42
+ * - `gpt-5.5` (270K input) promotes to `gpt-5.4` (1M input).
43
+ */
44
+ export declare function linkOpenAIPromotionTargets(models: ApiModel<Api>[]): void;
45
+ /**
46
+ * Returns the supported thinking efforts declared on the model metadata.
47
+ *
48
+ * Catalog enrichment is responsible for normalizing bundled model metadata up front.
49
+ * Runtime callers must treat explicit `model.thinking` on custom models as authoritative
50
+ * so proxy-specific overrides from `models.yml` survive request construction.
51
+ *
52
+ * @throws Error when a reasoning-capable model is missing thinking metadata
53
+ */
54
+ export declare function getSupportedEfforts<TApi extends Api>(model: ApiModel<TApi>): readonly Effort[];
55
+ /**
56
+ * Clamps a requested thinking level against explicit model metadata.
57
+ *
58
+ * Non-reasoning models always resolve to `undefined`.
59
+ */
60
+ export declare function clampThinkingLevelForModel<TApi extends Api>(model: ApiModel<TApi> | undefined, requested: Effort | undefined): Effort | undefined;
61
+ export declare function requireSupportedEffort<TApi extends Api>(model: ApiModel<TApi>, effort: Effort): Effort;
62
+ /** Maps a normalized thinking effort to Google's `thinkingLevel` enum values. */
63
+ export declare function mapEffortToGoogleThinkingLevel<TApi extends Api>(model: ApiModel<TApi>, effort: Effort): "MINIMAL" | "LOW" | "MEDIUM" | "HIGH";
64
+ /** Maps a normalized thinking effort to Anthropic adaptive effort values. */
65
+ export declare function mapEffortToAnthropicAdaptiveEffort<TApi extends Api>(model: ApiModel<TApi>, effort: Effort): "low" | "medium" | "high" | "xhigh" | "max";
66
+ /**
67
+ * Returns true for Anthropic models with Opus 4.7 API restrictions:
68
+ * - Sampling parameters (temperature/top_p/top_k) return 400 error
69
+ * - Thinking content is omitted by default (needs display: "summarized")
70
+ */
71
+ export declare function hasOpus47ApiRestrictions(modelId: string): boolean;
@@ -0,0 +1,12 @@
1
+ import MODELS from "./models.json";
2
+ import type { Api, KnownProvider, Model, Usage } from "./types";
3
+ export type GeneratedProvider = keyof typeof MODELS;
4
+ export declare function getBundledModel<TApi extends Api = Api>(provider: GeneratedProvider, modelId: string): Model<TApi>;
5
+ export declare function getBundledProviders(): KnownProvider[];
6
+ export declare function getBundledModels(provider: GeneratedProvider): Model<Api>[];
7
+ export declare function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage["cost"];
8
+ /**
9
+ * Check if two models are equal by comparing both their id and provider.
10
+ * Returns false if either model is null or undefined.
11
+ */
12
+ export declare function modelsAreEqual<TApi extends Api>(a: Model<TApi> | null | undefined, b: Model<TApi> | null | undefined): boolean;
@@ -0,0 +1,24 @@
1
+ import type { Api, Model, Provider, ProviderSessionState } from "./types";
2
+ export interface ProviderDetailField {
3
+ label: string;
4
+ value: string;
5
+ }
6
+ export interface ProviderDetails {
7
+ provider: Provider;
8
+ api: Api;
9
+ fields: ProviderDetailField[];
10
+ }
11
+ export interface ProviderDetailsContext {
12
+ model: Model<Api>;
13
+ sessionId?: string;
14
+ authMode?: string;
15
+ /**
16
+ * Human-readable description of the active credential, e.g.
17
+ * `"broker http://can.internal:8765 · oauth #5 (foo@bar.com)"`.
18
+ * Rendered as a `Source` field; omitted when undefined.
19
+ */
20
+ credentialSource?: string;
21
+ preferWebsockets?: boolean;
22
+ providerSessionState?: Map<string, ProviderSessionState>;
23
+ }
24
+ export declare function getProviderDetails(context: ProviderDetailsContext): ProviderDetails;
@@ -0,0 +1,4 @@
1
+ import { getBundledModels } from "../models";
2
+ import type { Api, Model } from "../types";
3
+ export declare function createBundledReferenceMap<TApi extends Api>(provider: Parameters<typeof getBundledModels>[0]): Map<string, Model<TApi>>;
4
+ export declare function createReferenceResolver<TApi extends Api>(providerRefs: Map<string, Model<TApi>>): (modelId: string) => Model<TApi> | undefined;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Unified provider descriptors — single source of truth for provider metadata
3
+ * used by both runtime model discovery (model-registry.ts) and catalog
4
+ * generation (generate-models.ts).
5
+ */
6
+ import type { ModelManagerOptions } from "../model-manager";
7
+ import type { Api, KnownProvider } from "../types";
8
+ import type { OAuthProvider } from "../utils/oauth/types";
9
+ /** Catalog discovery configuration for providers that support endpoint-based model listing. */
10
+ export interface CatalogDiscoveryConfig {
11
+ /** Human-readable name for log messages. */
12
+ label: string;
13
+ /** Environment variables to check for API keys during catalog generation. */
14
+ envVars: string[];
15
+ /** OAuth provider for credential refresh during catalog generation. */
16
+ oauthProvider?: OAuthProvider;
17
+ /** When true, catalog discovery proceeds even without credentials. */
18
+ allowUnauthenticated?: boolean;
19
+ }
20
+ /** Unified provider descriptor used by both runtime discovery and catalog generation. */
21
+ export interface ProviderDescriptor {
22
+ providerId: KnownProvider;
23
+ createModelManagerOptions(config: {
24
+ apiKey?: string;
25
+ baseUrl?: string;
26
+ }): ModelManagerOptions<Api>;
27
+ /** Preferred model ID when no explicit selection is made. */
28
+ defaultModel: string;
29
+ /** When true, the runtime creates a model manager even without a valid API key (e.g. ollama). */
30
+ allowUnauthenticated?: boolean;
31
+ /** Catalog discovery configuration. Only providers with this field participate in generate-models.ts. */
32
+ catalogDiscovery?: CatalogDiscoveryConfig;
33
+ }
34
+ /** A provider descriptor that has catalog discovery configured. */
35
+ export type CatalogProviderDescriptor = ProviderDescriptor & {
36
+ catalogDiscovery: CatalogDiscoveryConfig;
37
+ };
38
+ /** Type guard for descriptors with catalog discovery. */
39
+ export declare function isCatalogDescriptor(d: ProviderDescriptor): d is CatalogProviderDescriptor;
40
+ /** Whether catalog discovery may run without provider credentials. */
41
+ export declare function allowsUnauthenticatedCatalogDiscovery(descriptor: CatalogProviderDescriptor): boolean;
42
+ /**
43
+ * All standard providers. Special providers (google-antigravity, google-gemini-cli,
44
+ * OpenAI code provider) are handled separately because they require different config shapes.
45
+ */
46
+ export declare const PROVIDER_DESCRIPTORS: readonly ProviderDescriptor[];
47
+ /** Default model IDs for all known providers, built from descriptors + special providers. */
48
+ export declare const DEFAULT_MODEL_PER_PROVIDER: Record<KnownProvider, string>;
@@ -0,0 +1,20 @@
1
+ import type { ModelManagerOptions } from "../model-manager";
2
+ export interface GoogleModelManagerConfig {
3
+ apiKey?: string;
4
+ baseUrl?: string;
5
+ }
6
+ export interface GoogleVertexModelManagerConfig {
7
+ apiKey?: string;
8
+ }
9
+ export interface GoogleAntigravityModelManagerConfig {
10
+ oauthToken?: string;
11
+ endpoint?: string;
12
+ }
13
+ export interface GoogleGeminiCliModelManagerConfig {
14
+ oauthToken?: string;
15
+ endpoint?: string;
16
+ }
17
+ export declare function googleModelManagerOptions(config?: GoogleModelManagerConfig): ModelManagerOptions<"google-generative-ai">;
18
+ export declare function googleVertexModelManagerOptions(_config?: GoogleVertexModelManagerConfig): ModelManagerOptions<"google-vertex">;
19
+ export declare function googleAntigravityModelManagerOptions(config?: GoogleAntigravityModelManagerConfig): ModelManagerOptions<"google-gemini-cli">;
20
+ export declare function googleGeminiCliModelManagerOptions(config?: GoogleGeminiCliModelManagerConfig): ModelManagerOptions<"google-gemini-cli">;
@@ -0,0 +1,5 @@
1
+ export * from "./descriptors";
2
+ export * from "./google";
3
+ export * from "./ollama";
4
+ export * from "./openai-compat";
5
+ export * from "./special";
@@ -0,0 +1,7 @@
1
+ import type { ModelManagerOptions } from "../model-manager";
2
+ export interface OllamaCloudModelManagerConfig {
3
+ apiKey?: string;
4
+ baseUrl?: string;
5
+ }
6
+ export declare function normalizeOllamaCloudBaseUrl(baseUrl?: string): string;
7
+ export declare function ollamaCloudModelManagerOptions(config?: OllamaCloudModelManagerConfig): ModelManagerOptions<"ollama-chat">;
@@ -0,0 +1,237 @@
1
+ import type { ModelManagerOptions } from "../model-manager";
2
+ import type { Api, Model } from "../types";
3
+ export interface ModelsDevModel {
4
+ id?: string;
5
+ name?: string;
6
+ tool_call?: boolean;
7
+ reasoning?: boolean;
8
+ limit?: {
9
+ context?: number;
10
+ output?: number;
11
+ };
12
+ cost?: {
13
+ input?: number;
14
+ output?: number;
15
+ cache_read?: number;
16
+ cache_write?: number;
17
+ };
18
+ modalities?: {
19
+ input?: string[];
20
+ };
21
+ status?: string;
22
+ provider?: {
23
+ npm?: string;
24
+ };
25
+ }
26
+ export interface OpenAIModelManagerConfig {
27
+ apiKey?: string;
28
+ baseUrl?: string;
29
+ }
30
+ export declare function openaiModelManagerOptions(config?: OpenAIModelManagerConfig): ModelManagerOptions<"openai-responses">;
31
+ export interface GroqModelManagerConfig {
32
+ apiKey?: string;
33
+ baseUrl?: string;
34
+ }
35
+ export declare function groqModelManagerOptions(config?: GroqModelManagerConfig): ModelManagerOptions<"openai-completions">;
36
+ export interface CerebrasModelManagerConfig {
37
+ apiKey?: string;
38
+ baseUrl?: string;
39
+ }
40
+ export declare function cerebrasModelManagerOptions(config?: CerebrasModelManagerConfig): ModelManagerOptions<"openai-completions">;
41
+ export interface HuggingfaceModelManagerConfig {
42
+ apiKey?: string;
43
+ baseUrl?: string;
44
+ }
45
+ export declare function huggingfaceModelManagerOptions(config?: HuggingfaceModelManagerConfig): ModelManagerOptions<"openai-completions">;
46
+ export interface NvidiaModelManagerConfig {
47
+ apiKey?: string;
48
+ baseUrl?: string;
49
+ }
50
+ export declare function nvidiaModelManagerOptions(config?: NvidiaModelManagerConfig): ModelManagerOptions<"openai-completions">;
51
+ export interface XaiModelManagerConfig {
52
+ apiKey?: string;
53
+ baseUrl?: string;
54
+ }
55
+ export declare function xaiModelManagerOptions(config?: XaiModelManagerConfig): ModelManagerOptions<"openai-completions">;
56
+ export interface DeepSeekModelManagerConfig {
57
+ apiKey?: string;
58
+ baseUrl?: string;
59
+ }
60
+ export declare function deepseekModelManagerOptions(config?: DeepSeekModelManagerConfig): ModelManagerOptions<"openai-completions">;
61
+ export interface FireworksModelManagerConfig {
62
+ apiKey?: string;
63
+ baseUrl?: string;
64
+ }
65
+ export declare function fireworksModelManagerOptions(config?: FireworksModelManagerConfig): ModelManagerOptions<"openai-completions">;
66
+ export interface FirepassModelManagerConfig {
67
+ apiKey?: string;
68
+ baseUrl?: string;
69
+ }
70
+ /**
71
+ * Fire Pass is a Fireworks subscription product that exposes a single router
72
+ * model (Kimi K2.6 Turbo) under `accounts/fireworks/routers/kimi-k2p6-turbo`.
73
+ * The dedicated `fpk_…` keys do not authorize `/v1/models`, so this manager
74
+ * never performs dynamic discovery — the bundled catalog entry is canonical.
75
+ * See https://docs.fireworks.ai/firepass.
76
+ */
77
+ export declare function firepassModelManagerOptions(_config?: FirepassModelManagerConfig): ModelManagerOptions<"openai-completions">;
78
+ export interface MistralModelManagerConfig {
79
+ apiKey?: string;
80
+ baseUrl?: string;
81
+ }
82
+ export declare function mistralModelManagerOptions(config?: MistralModelManagerConfig): ModelManagerOptions<"openai-completions">;
83
+ export interface OpenCodeModelManagerConfig {
84
+ apiKey?: string;
85
+ baseUrl?: string;
86
+ }
87
+ export declare function opencodeZenModelManagerOptions(config?: OpenCodeModelManagerConfig): ModelManagerOptions<"openai-completions">;
88
+ export declare function opencodeGoModelManagerOptions(config?: OpenCodeModelManagerConfig): ModelManagerOptions<"openai-completions">;
89
+ export interface OllamaModelManagerConfig {
90
+ apiKey?: string;
91
+ baseUrl?: string;
92
+ }
93
+ export declare function ollamaModelManagerOptions(config?: OllamaModelManagerConfig): ModelManagerOptions<"openai-responses">;
94
+ export interface OpenRouterModelManagerConfig {
95
+ apiKey?: string;
96
+ baseUrl?: string;
97
+ }
98
+ export declare function openrouterModelManagerOptions(config?: OpenRouterModelManagerConfig): ModelManagerOptions<"openai-completions">;
99
+ export interface ZenMuxModelManagerConfig {
100
+ apiKey?: string;
101
+ baseUrl?: string;
102
+ }
103
+ export declare function zenmuxModelManagerOptions(config?: ZenMuxModelManagerConfig): ModelManagerOptions<Api>;
104
+ export interface KiloModelManagerConfig {
105
+ apiKey?: string;
106
+ baseUrl?: string;
107
+ }
108
+ export declare function kiloModelManagerOptions(config?: KiloModelManagerConfig): ModelManagerOptions<"openai-completions">;
109
+ export interface AlibabaCodingPlanModelManagerConfig {
110
+ apiKey?: string;
111
+ baseUrl?: string;
112
+ }
113
+ export declare function alibabaCodingPlanModelManagerOptions(config?: AlibabaCodingPlanModelManagerConfig): ModelManagerOptions<"openai-completions">;
114
+ export interface VercelAiGatewayModelManagerConfig {
115
+ apiKey?: string;
116
+ baseUrl?: string;
117
+ }
118
+ export declare function vercelAiGatewayModelManagerOptions(config?: VercelAiGatewayModelManagerConfig): ModelManagerOptions<"anthropic-messages">;
119
+ export interface KimiCodeModelManagerConfig {
120
+ apiKey?: string;
121
+ baseUrl?: string;
122
+ }
123
+ export declare function kimiCodeModelManagerOptions(config?: KimiCodeModelManagerConfig): ModelManagerOptions<"openai-completions">;
124
+ export interface LmStudioModelManagerConfig {
125
+ apiKey?: string;
126
+ baseUrl?: string;
127
+ }
128
+ export declare function lmStudioModelManagerOptions(config?: LmStudioModelManagerConfig): ModelManagerOptions<"openai-completions">;
129
+ export interface SyntheticModelManagerConfig {
130
+ apiKey?: string;
131
+ baseUrl?: string;
132
+ }
133
+ export declare function syntheticModelManagerOptions(config?: SyntheticModelManagerConfig): ModelManagerOptions<"openai-completions">;
134
+ export interface VeniceModelManagerConfig {
135
+ apiKey?: string;
136
+ baseUrl?: string;
137
+ }
138
+ export declare function veniceModelManagerOptions(config?: VeniceModelManagerConfig): ModelManagerOptions<"openai-completions">;
139
+ export interface TogetherModelManagerConfig {
140
+ apiKey?: string;
141
+ baseUrl?: string;
142
+ }
143
+ export declare function togetherModelManagerOptions(config?: TogetherModelManagerConfig): ModelManagerOptions<"openai-completions">;
144
+ export interface MoonshotModelManagerConfig {
145
+ apiKey?: string;
146
+ baseUrl?: string;
147
+ }
148
+ export declare function moonshotModelManagerOptions(config?: MoonshotModelManagerConfig): ModelManagerOptions<"openai-completions">;
149
+ export interface QwenPortalModelManagerConfig {
150
+ apiKey?: string;
151
+ baseUrl?: string;
152
+ }
153
+ export declare function qwenPortalModelManagerOptions(config?: QwenPortalModelManagerConfig): ModelManagerOptions<"openai-completions">;
154
+ export interface QianfanModelManagerConfig {
155
+ apiKey?: string;
156
+ baseUrl?: string;
157
+ }
158
+ export declare function qianfanModelManagerOptions(config?: QianfanModelManagerConfig): ModelManagerOptions<"openai-completions">;
159
+ export interface CloudflareAiGatewayModelManagerConfig {
160
+ apiKey?: string;
161
+ baseUrl?: string;
162
+ }
163
+ export declare function cloudflareAiGatewayModelManagerOptions(config?: CloudflareAiGatewayModelManagerConfig): ModelManagerOptions<"anthropic-messages">;
164
+ export interface XiaomiModelManagerConfig {
165
+ apiKey?: string;
166
+ baseUrl?: string;
167
+ }
168
+ export declare function xiaomiModelManagerOptions(config?: XiaomiModelManagerConfig): ModelManagerOptions<"openai-completions">;
169
+ export interface LiteLLMModelManagerConfig {
170
+ apiKey?: string;
171
+ baseUrl?: string;
172
+ }
173
+ export declare function litellmModelManagerOptions(config?: LiteLLMModelManagerConfig): ModelManagerOptions<"openai-completions">;
174
+ export interface VllmModelManagerConfig {
175
+ apiKey?: string;
176
+ baseUrl?: string;
177
+ }
178
+ export declare function vllmModelManagerOptions(config?: VllmModelManagerConfig): ModelManagerOptions<"openai-completions">;
179
+ export interface NanoGptModelManagerConfig {
180
+ apiKey?: string;
181
+ baseUrl?: string;
182
+ }
183
+ export declare function nanoGptModelManagerOptions(config?: NanoGptModelManagerConfig): ModelManagerOptions<"openai-completions">;
184
+ export interface GithubCopilotModelManagerConfig {
185
+ apiKey?: string;
186
+ baseUrl?: string;
187
+ }
188
+ export declare function githubCopilotModelManagerOptions(config?: GithubCopilotModelManagerConfig): ModelManagerOptions<Api>;
189
+ export interface AnthropicModelManagerConfig {
190
+ apiKey?: string;
191
+ baseUrl?: string;
192
+ }
193
+ export declare function anthropicModelManagerOptions(config?: AnthropicModelManagerConfig): ModelManagerOptions<"anthropic-messages">;
194
+ export declare const UNK_CONTEXT_WINDOW = 222222;
195
+ export declare const UNK_MAX_TOKENS = 8888;
196
+ /** Describes how to map models.dev API data for a single provider. */
197
+ export interface ModelsDevProviderDescriptor {
198
+ /** Key in the models.dev API response JSON (e.g., "anthropic", "amazon-bedrock") */
199
+ modelsDevKey: string;
200
+ /** Provider ID in our system */
201
+ providerId: string;
202
+ /** Default API type for this provider's models */
203
+ api: Api;
204
+ /** Default base URL */
205
+ baseUrl: string;
206
+ /** Default context window fallback (default: UNKNNOWN_CONTEXT_WINDOW) */
207
+ defaultContextWindow?: number;
208
+ /** Default max tokens fallback (default: UNKNNOWN_MAX_TOKENS) */
209
+ defaultMaxTokens?: number;
210
+ /** Optional compat overrides applied to every model from this provider */
211
+ compat?: Model<Api>["compat"];
212
+ /** Optional static headers applied to every model */
213
+ headers?: Record<string, string>;
214
+ /**
215
+ * Optional filter: return false to skip a model.
216
+ * Called with (modelId, rawModel). Default: skip if tool_call !== true.
217
+ */
218
+ filterModel?: (modelId: string, model: ModelsDevModel) => boolean;
219
+ /**
220
+ * Optional transform: modify the mapped model before it's added.
221
+ * Can return null to skip the model, or an array to emit multiple models.
222
+ */
223
+ transformModel?: (model: Model<Api>, modelId: string, raw: ModelsDevModel) => Model<Api> | Model<Api>[] | null;
224
+ /**
225
+ * Optional: override the API type per-model.
226
+ * Called with (modelId, raw). Return the API type to use.
227
+ * If not provided, uses the `api` field.
228
+ */
229
+ resolveApi?: (modelId: string, raw: ModelsDevModel) => {
230
+ api: Api;
231
+ baseUrl: string;
232
+ } | null;
233
+ }
234
+ /** Generic mapper that converts models.dev data using provider descriptors. */
235
+ export declare function mapModelsDevToModels(data: Record<string, unknown>, descriptors: readonly ModelsDevProviderDescriptor[]): Model<Api>[];
236
+ /** All provider descriptors for models.dev data mapping in generate-models.ts. */
237
+ export declare const MODELS_DEV_PROVIDER_DESCRIPTORS: readonly ModelsDevProviderDescriptor[];
@@ -0,0 +1,16 @@
1
+ import type { ModelManagerOptions } from "../model-manager";
2
+ export interface OpenAICodexModelManagerConfig {
3
+ accessToken?: string;
4
+ accountId?: string;
5
+ clientVersion?: string;
6
+ }
7
+ export declare function openaiCodexModelManagerOptions(config?: OpenAICodexModelManagerConfig): ModelManagerOptions<"openai-codex-responses">;
8
+ export interface CursorModelManagerConfig {
9
+ apiKey?: string;
10
+ baseUrl?: string;
11
+ clientVersion?: string;
12
+ }
13
+ export declare function cursorModelManagerOptions(config?: CursorModelManagerConfig): ModelManagerOptions<"cursor-agent">;
14
+ export interface ZaiModelManagerConfig {
15
+ }
16
+ export declare function zaiModelManagerOptions(_config?: ZaiModelManagerConfig): ModelManagerOptions<"anthropic-messages">;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Amazon Bedrock Converse Stream provider.
3
+ *
4
+ * Talks directly to `bedrock-runtime.{region}.amazonaws.com` over HTTPS with
5
+ * SigV4 signing and decodes the `application/vnd.amazon.eventstream` response.
6
+ * No `@aws-sdk/*`, no `@smithy/*`, no `proxy-agent`. Proxies are honored via
7
+ * Bun's native `HTTPS_PROXY` support.
8
+ */
9
+ import type { Effort } from "../model-thinking";
10
+ import type { StreamFunction, StreamOptions, ThinkingBudgets } from "../types";
11
+ export type BedrockThinkingDisplay = "summarized" | "omitted";
12
+ export interface BedrockOptions extends StreamOptions {
13
+ region?: string;
14
+ profile?: string;
15
+ toolChoice?: "auto" | "any" | "none" | {
16
+ type: "tool";
17
+ name: string;
18
+ };
19
+ reasoning?: Effort;
20
+ thinkingBudgets?: ThinkingBudgets;
21
+ interleavedThinking?: boolean;
22
+ /**
23
+ * Controls how Anthropic model returns thinking content in Bedrock responses.
24
+ * - `"summarized"`: thinking blocks include human-readable summaries (default here).
25
+ * - `"omitted"`: thinking content is suppressed; the encrypted signature still
26
+ * travels back for multi-turn continuity.
27
+ *
28
+ * Starting with Anthropic model Opus 4.7 the Anthropic API default is `"omitted"`, which
29
+ * leaves callers waiting on a silent stream during long reasoning runs (issue
30
+ * #1373). We default to `"summarized"` so adaptive-thinking models that accept
31
+ * the field keep producing visible thinking deltas. Older adaptive-thinking
32
+ * models (Opus 4.6, Sonnet 4.6+) reject the field, so we omit it for them.
33
+ */
34
+ thinkingDisplay?: BedrockThinkingDisplay;
35
+ }
36
+ export declare const streamBedrock: StreamFunction<"bedrock-converse-stream">;