@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,3 @@
1
+ import type { CredentialRankingStrategy, UsageProvider } from "../usage";
2
+ export declare const claudeUsageProvider: UsageProvider;
3
+ export declare const claudeRankingStrategy: CredentialRankingStrategy;
@@ -0,0 +1,2 @@
1
+ import type { UsageProvider } from "../usage";
2
+ export declare const googleGeminiCliUsageProvider: UsageProvider;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * GitHub Copilot usage provider.
3
+ *
4
+ * Normalizes Copilot quota usage into the shared UsageReport schema.
5
+ */
6
+ import type { UsageProvider } from "../usage";
7
+ export declare const githubCopilotUsageProvider: UsageProvider;
@@ -0,0 +1,2 @@
1
+ import type { UsageProvider } from "../usage";
2
+ export declare const antigravityUsageProvider: UsageProvider;
@@ -0,0 +1,2 @@
1
+ import type { UsageProvider } from "../usage";
2
+ export declare const kimiUsageProvider: UsageProvider;
@@ -0,0 +1,2 @@
1
+ import type { UsageProvider } from "../usage";
2
+ export declare const minimaxCodeUsageProvider: UsageProvider;
@@ -0,0 +1,3 @@
1
+ import type { CredentialRankingStrategy, UsageProvider } from "../usage";
2
+ export declare const openaiCodexUsageProvider: UsageProvider;
3
+ export declare const codexRankingStrategy: CredentialRankingStrategy;
@@ -0,0 +1 @@
1
+ export declare const toNumber: (value: unknown) => number | undefined;
@@ -0,0 +1,2 @@
1
+ import type { UsageProvider } from "../usage";
2
+ export declare const zaiUsageProvider: UsageProvider;
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Usage reporting types for provider quota/limit endpoints.
3
+ *
4
+ * Provides a normalized schema to represent multiple limit windows, model tiers,
5
+ * and shared quotas across providers.
6
+ */
7
+ import * as z from "zod/v4";
8
+ import type { Provider } from "./types";
9
+ export type UsageUnit = "percent" | "tokens" | "requests" | "usd" | "minutes" | "bytes" | "unknown";
10
+ export type UsageStatus = "ok" | "warning" | "exhausted" | "unknown";
11
+ /** Time window for a limit (e.g. 5h, 7d, monthly). */
12
+ export interface UsageWindow {
13
+ /** Stable identifier (e.g. "5h", "7d", "monthly"). */
14
+ id: string;
15
+ /** Human label (e.g. "5 Hour", "7 Day"). */
16
+ label: string;
17
+ /** Window duration in milliseconds, when known. */
18
+ durationMs?: number;
19
+ /** Absolute reset timestamp in milliseconds since epoch. */
20
+ resetsAt?: number;
21
+ }
22
+ /** Quantitative usage data. */
23
+ export interface UsageAmount {
24
+ /** Amount used in the given unit. */
25
+ used?: number;
26
+ /** Maximum limit in the given unit. */
27
+ limit?: number;
28
+ /** Remaining amount in the given unit. */
29
+ remaining?: number;
30
+ /** Fraction used (0..1). */
31
+ usedFraction?: number;
32
+ /** Fraction remaining (0..1). */
33
+ remainingFraction?: number;
34
+ /** Unit for the amounts (percent, tokens, etc.). */
35
+ unit: UsageUnit;
36
+ }
37
+ /** Scope metadata describing what the limit applies to. */
38
+ export interface UsageScope {
39
+ provider: Provider;
40
+ accountId?: string;
41
+ projectId?: string;
42
+ orgId?: string;
43
+ modelId?: string;
44
+ tier?: string;
45
+ windowId?: string;
46
+ shared?: boolean;
47
+ }
48
+ /** Normalized limit entry for a single window or quota bucket. */
49
+ export interface UsageLimit {
50
+ /** Stable identifier for this limit entry. */
51
+ id: string;
52
+ /** Human label for display. */
53
+ label: string;
54
+ scope: UsageScope;
55
+ window?: UsageWindow;
56
+ amount: UsageAmount;
57
+ status?: UsageStatus;
58
+ notes?: string[];
59
+ }
60
+ /** Aggregated usage report for a provider. */
61
+ export interface UsageReport {
62
+ provider: Provider;
63
+ fetchedAt: number;
64
+ limits: UsageLimit[];
65
+ metadata?: Record<string, unknown>;
66
+ raw?: unknown;
67
+ }
68
+ export declare const usageUnitSchema: z.ZodEnum<{
69
+ bytes: "bytes";
70
+ minutes: "minutes";
71
+ percent: "percent";
72
+ requests: "requests";
73
+ tokens: "tokens";
74
+ unknown: "unknown";
75
+ usd: "usd";
76
+ }>;
77
+ export declare const usageStatusSchema: z.ZodEnum<{
78
+ exhausted: "exhausted";
79
+ ok: "ok";
80
+ unknown: "unknown";
81
+ warning: "warning";
82
+ }>;
83
+ export declare const usageWindowSchema: z.ZodObject<{
84
+ id: z.ZodString;
85
+ label: z.ZodString;
86
+ durationMs: z.ZodOptional<z.ZodNumber>;
87
+ resetsAt: z.ZodOptional<z.ZodNumber>;
88
+ }, z.core.$strip>;
89
+ export declare const usageAmountSchema: z.ZodObject<{
90
+ used: z.ZodOptional<z.ZodNumber>;
91
+ limit: z.ZodOptional<z.ZodNumber>;
92
+ remaining: z.ZodOptional<z.ZodNumber>;
93
+ usedFraction: z.ZodOptional<z.ZodNumber>;
94
+ remainingFraction: z.ZodOptional<z.ZodNumber>;
95
+ unit: z.ZodEnum<{
96
+ bytes: "bytes";
97
+ minutes: "minutes";
98
+ percent: "percent";
99
+ requests: "requests";
100
+ tokens: "tokens";
101
+ unknown: "unknown";
102
+ usd: "usd";
103
+ }>;
104
+ }, z.core.$strip>;
105
+ export declare const usageScopeSchema: z.ZodObject<{
106
+ provider: z.ZodString;
107
+ accountId: z.ZodOptional<z.ZodString>;
108
+ projectId: z.ZodOptional<z.ZodString>;
109
+ orgId: z.ZodOptional<z.ZodString>;
110
+ modelId: z.ZodOptional<z.ZodString>;
111
+ tier: z.ZodOptional<z.ZodString>;
112
+ windowId: z.ZodOptional<z.ZodString>;
113
+ shared: z.ZodOptional<z.ZodBoolean>;
114
+ }, z.core.$strip>;
115
+ export declare const usageLimitSchema: z.ZodObject<{
116
+ id: z.ZodString;
117
+ label: z.ZodString;
118
+ scope: z.ZodObject<{
119
+ provider: z.ZodString;
120
+ accountId: z.ZodOptional<z.ZodString>;
121
+ projectId: z.ZodOptional<z.ZodString>;
122
+ orgId: z.ZodOptional<z.ZodString>;
123
+ modelId: z.ZodOptional<z.ZodString>;
124
+ tier: z.ZodOptional<z.ZodString>;
125
+ windowId: z.ZodOptional<z.ZodString>;
126
+ shared: z.ZodOptional<z.ZodBoolean>;
127
+ }, z.core.$strip>;
128
+ window: z.ZodOptional<z.ZodObject<{
129
+ id: z.ZodString;
130
+ label: z.ZodString;
131
+ durationMs: z.ZodOptional<z.ZodNumber>;
132
+ resetsAt: z.ZodOptional<z.ZodNumber>;
133
+ }, z.core.$strip>>;
134
+ amount: z.ZodObject<{
135
+ used: z.ZodOptional<z.ZodNumber>;
136
+ limit: z.ZodOptional<z.ZodNumber>;
137
+ remaining: z.ZodOptional<z.ZodNumber>;
138
+ usedFraction: z.ZodOptional<z.ZodNumber>;
139
+ remainingFraction: z.ZodOptional<z.ZodNumber>;
140
+ unit: z.ZodEnum<{
141
+ bytes: "bytes";
142
+ minutes: "minutes";
143
+ percent: "percent";
144
+ requests: "requests";
145
+ tokens: "tokens";
146
+ unknown: "unknown";
147
+ usd: "usd";
148
+ }>;
149
+ }, z.core.$strip>;
150
+ status: z.ZodOptional<z.ZodEnum<{
151
+ exhausted: "exhausted";
152
+ ok: "ok";
153
+ unknown: "unknown";
154
+ warning: "warning";
155
+ }>>;
156
+ notes: z.ZodOptional<z.ZodArray<z.ZodString>>;
157
+ }, z.core.$strip>;
158
+ export declare const usageReportSchema: z.ZodObject<{
159
+ provider: z.ZodString;
160
+ fetchedAt: z.ZodNumber;
161
+ limits: z.ZodArray<z.ZodObject<{
162
+ id: z.ZodString;
163
+ label: z.ZodString;
164
+ scope: z.ZodObject<{
165
+ provider: z.ZodString;
166
+ accountId: z.ZodOptional<z.ZodString>;
167
+ projectId: z.ZodOptional<z.ZodString>;
168
+ orgId: z.ZodOptional<z.ZodString>;
169
+ modelId: z.ZodOptional<z.ZodString>;
170
+ tier: z.ZodOptional<z.ZodString>;
171
+ windowId: z.ZodOptional<z.ZodString>;
172
+ shared: z.ZodOptional<z.ZodBoolean>;
173
+ }, z.core.$strip>;
174
+ window: z.ZodOptional<z.ZodObject<{
175
+ id: z.ZodString;
176
+ label: z.ZodString;
177
+ durationMs: z.ZodOptional<z.ZodNumber>;
178
+ resetsAt: z.ZodOptional<z.ZodNumber>;
179
+ }, z.core.$strip>>;
180
+ amount: z.ZodObject<{
181
+ used: z.ZodOptional<z.ZodNumber>;
182
+ limit: z.ZodOptional<z.ZodNumber>;
183
+ remaining: z.ZodOptional<z.ZodNumber>;
184
+ usedFraction: z.ZodOptional<z.ZodNumber>;
185
+ remainingFraction: z.ZodOptional<z.ZodNumber>;
186
+ unit: z.ZodEnum<{
187
+ bytes: "bytes";
188
+ minutes: "minutes";
189
+ percent: "percent";
190
+ requests: "requests";
191
+ tokens: "tokens";
192
+ unknown: "unknown";
193
+ usd: "usd";
194
+ }>;
195
+ }, z.core.$strip>;
196
+ status: z.ZodOptional<z.ZodEnum<{
197
+ exhausted: "exhausted";
198
+ ok: "ok";
199
+ unknown: "unknown";
200
+ warning: "warning";
201
+ }>>;
202
+ notes: z.ZodOptional<z.ZodArray<z.ZodString>>;
203
+ }, z.core.$strip>>;
204
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
205
+ raw: z.ZodOptional<z.ZodUnknown>;
206
+ }, z.core.$strip>;
207
+ /** Optional logger for usage fetchers. */
208
+ export interface UsageLogger {
209
+ debug(message: string, meta?: Record<string, unknown>): void;
210
+ warn(message: string, meta?: Record<string, unknown>): void;
211
+ }
212
+ /** Credential bundle for usage endpoints. */
213
+ export interface UsageCredential {
214
+ type: "api_key" | "oauth";
215
+ apiKey?: string;
216
+ accessToken?: string;
217
+ refreshToken?: string;
218
+ expiresAt?: number;
219
+ accountId?: string;
220
+ projectId?: string;
221
+ email?: string;
222
+ enterpriseUrl?: string;
223
+ metadata?: Record<string, unknown>;
224
+ }
225
+ /** Parameters provided to a usage fetcher. */
226
+ export interface UsageFetchParams {
227
+ provider: Provider;
228
+ credential: UsageCredential;
229
+ baseUrl?: string;
230
+ signal?: AbortSignal;
231
+ }
232
+ /** Shared runtime utilities for fetchers. */
233
+ export interface UsageFetchContext {
234
+ fetch: typeof fetch;
235
+ logger?: UsageLogger;
236
+ retryWait?: (delayMs: number, signal?: AbortSignal) => Promise<void>;
237
+ }
238
+ /** Provider implementation for fetching usage information. */
239
+ export interface UsageProvider {
240
+ id: Provider;
241
+ fetchUsage(params: UsageFetchParams, ctx: UsageFetchContext): Promise<UsageReport | null>;
242
+ supports?(params: UsageFetchParams): boolean;
243
+ }
244
+ /** Strategy for usage-based credential ranking. Providers implement this to opt into smart credential selection. */
245
+ export interface CredentialRankingStrategy {
246
+ /** Extract the primary (short) and secondary (long) window limits from a usage report. */
247
+ findWindowLimits(report: UsageReport): {
248
+ primary?: UsageLimit;
249
+ secondary?: UsageLimit;
250
+ };
251
+ /** Fallback window durations (ms) when limits don't specify durationMs. */
252
+ windowDefaults: {
253
+ primaryMs: number;
254
+ secondaryMs: number;
255
+ };
256
+ /** Optional: priority boost for specific credential states (e.g., fresh 5h ticker start). */
257
+ hasPriorityBoost?(primary: UsageLimit | undefined): boolean;
258
+ }
@@ -0,0 +1,19 @@
1
+ export interface AbortSourceTracker {
2
+ requestAbortController: AbortController;
3
+ requestSignal: AbortSignal;
4
+ abortLocally(reason: Error): Error;
5
+ getLocalAbortReason(): Error | undefined;
6
+ wasCallerAbort(): boolean;
7
+ }
8
+ /**
9
+ * Tracks whether a merged request signal was aborted by the caller or by provider-local logic.
10
+ *
11
+ * Caller aborts always take priority. When both the caller and a local watchdog fire near
12
+ * each other, the merged `requestSignal.reason` reflects whichever AbortController called
13
+ * `.abort()` first — but ordering is racy and not meaningful for upstream consumers. What
14
+ * matters is intent: if the caller's signal aborted, the request was cancelled by the
15
+ * caller, and any local watchdog reason is incidental and **MUST NOT** be surfaced as a
16
+ * retryable transient error (which would cause auto-retry to re-enter streaming and leave
17
+ * the UI showing a spinner the user already tried to cancel).
18
+ */
19
+ export declare function createAbortSourceTracker(callerSignal?: AbortSignal): AbortSourceTracker;
@@ -0,0 +1,31 @@
1
+ /** Auth configuration for Anthropic */
2
+ export interface AnthropicAuthConfig {
3
+ apiKey: string;
4
+ baseUrl: string;
5
+ isOAuth: boolean;
6
+ }
7
+ export declare function resolveAnthropicBaseUrlFromEnv(): string | undefined;
8
+ /**
9
+ * Checks if a token is an OAuth token by looking for sk-ant-oat prefix.
10
+ */
11
+ export declare function isOAuthToken(apiKey: string): boolean;
12
+ /**
13
+ * Build an {@link AnthropicAuthConfig} from an already-resolved API key.
14
+ *
15
+ * `apiKey` is whatever the caller chose for `Authorization`/`x-api-key` —
16
+ * usually `authStorage.getApiKey("anthropic")`. `baseUrl` overrides the
17
+ * env-derived base; pass `undefined` to fall back to FOUNDRY/ANTHROPIC env
18
+ * resolution and finally `DEFAULT_BASE_URL`.
19
+ *
20
+ * `isOAuth` is derived from the token prefix so the helper stays pure: callers
21
+ * never have to thread the OAuth flag through their own resolution logic.
22
+ */
23
+ export declare function buildAnthropicAuthConfig(apiKey: string, baseUrl?: string): AnthropicAuthConfig;
24
+ /**
25
+ * Builds HTTP headers for Anthropic API requests (search variant).
26
+ */
27
+ export declare function buildAnthropicSearchHeaders(auth: AnthropicAuthConfig): Record<string, string>;
28
+ /**
29
+ * Builds the full API URL for Anthropic messages endpoint.
30
+ */
31
+ export declare function buildAnthropicUrl(auth: AnthropicAuthConfig): string;
@@ -0,0 +1,61 @@
1
+ import type { Model } from "../../types";
2
+ /**
3
+ * Raw model metadata returned by Antigravity's `fetchAvailableModels` endpoint.
4
+ */
5
+ export interface AntigravityDiscoveryApiModel {
6
+ displayName?: string;
7
+ supportsImages?: boolean;
8
+ supportsThinking?: boolean;
9
+ thinkingBudget?: number;
10
+ recommended?: boolean;
11
+ maxTokens?: number;
12
+ maxOutputTokens?: number;
13
+ model?: string;
14
+ apiProvider?: string;
15
+ modelProvider?: string;
16
+ isInternal?: boolean;
17
+ supportsVideo?: boolean;
18
+ }
19
+ /**
20
+ * Grouping metadata used by Antigravity to surface recommended model ids.
21
+ */
22
+ export interface AntigravityDiscoveryAgentModelGroup {
23
+ modelIds?: string[];
24
+ }
25
+ /**
26
+ * Sort/group metadata used by Antigravity to surface recommended model ids.
27
+ */
28
+ export interface AntigravityDiscoveryAgentModelSort {
29
+ groups?: AntigravityDiscoveryAgentModelGroup[];
30
+ }
31
+ /**
32
+ * Response payload returned by Antigravity's `fetchAvailableModels` endpoint.
33
+ */
34
+ export interface AntigravityDiscoveryApiResponse {
35
+ models?: Record<string, AntigravityDiscoveryApiModel>;
36
+ agentModelSorts?: AntigravityDiscoveryAgentModelSort[];
37
+ }
38
+ /**
39
+ * Options for fetching Antigravity discovery models.
40
+ */
41
+ export interface FetchAntigravityDiscoveryModelsOptions {
42
+ /** OAuth access token used as `Authorization: Bearer <token>`. */
43
+ token: string;
44
+ /** Optional endpoint override. Defaults to Antigravity fallback endpoints. */
45
+ endpoint?: string;
46
+ /** Deprecated and ignored for antigravity discovery parity. */
47
+ project?: string;
48
+ /** Optional user agent override. */
49
+ userAgent?: string;
50
+ /** Optional abort signal for request cancellation. */
51
+ signal?: AbortSignal;
52
+ /** Optional fetch implementation override for tests. */
53
+ fetcher?: typeof fetch;
54
+ }
55
+ /**
56
+ * Fetches discoverable Antigravity models and normalizes them into canonical model entries.
57
+ *
58
+ * Returns `null` on network/payload/auth failures.
59
+ * Returns `[]` only when the endpoint responds successfully with no usable models.
60
+ */
61
+ export declare function fetchAntigravityDiscoveryModels(options: FetchAntigravityDiscoveryModelsOptions): Promise<Model<"google-gemini-cli">[] | null>;
@@ -0,0 +1,38 @@
1
+ import type { Model } from "../../types";
2
+ /**
3
+ * Fetch options for OpenAI code provider model discovery.
4
+ */
5
+ export interface CodexModelDiscoveryOptions {
6
+ /** OAuth access token used for `Authorization: Bearer ...`. */
7
+ accessToken: string;
8
+ /** ChatGPT account id value used for `chatgpt-account-id` header. */
9
+ accountId?: string;
10
+ /** Base URL for OpenAI code backend backend. Defaults to `https://chatgpt.com/backend-api`. */
11
+ baseUrl?: string;
12
+ /** Optional client version attached as `client_version` query parameter. */
13
+ clientVersion?: string;
14
+ /** Optional endpoint path candidates. Defaults to `/OpenAI code backend/models`, then `/models`. */
15
+ paths?: readonly string[];
16
+ /** Additional headers merged on top of required OpenAI code backend headers. */
17
+ headers?: Record<string, string>;
18
+ /** Abort signal for network request cancellation. */
19
+ signal?: AbortSignal;
20
+ /** Optional fetch implementation override for tests. */
21
+ fetchFn?: typeof fetch;
22
+ /** Optional registry fetch implementation override for client version lookup. */
23
+ registryFetchFn?: typeof fetch;
24
+ }
25
+ /**
26
+ * Normalized OpenAI code backend discovery response.
27
+ */
28
+ export interface CodexModelDiscoveryResult {
29
+ models: Model<"openai-codex-responses">[];
30
+ etag?: string;
31
+ }
32
+ /**
33
+ * Fetches model metadata from OpenAI code backend backend and normalizes it for pi model management.
34
+ *
35
+ * Returns `null` when no supported model-list route can be fetched/parsed.
36
+ * Returns `{ models: [] }` when a route succeeds but yields no usable models.
37
+ */
38
+ export declare function fetchCodexModels(options: CodexModelDiscoveryOptions): Promise<CodexModelDiscoveryResult | null>;
@@ -0,0 +1,23 @@
1
+ import type { Model } from "../../types";
2
+ /**
3
+ * Options for fetching dynamic Cursor models from `GetUsableModels`.
4
+ */
5
+ export interface CursorModelDiscoveryOptions {
6
+ /** Cursor access token used for bearer authentication. */
7
+ apiKey: string;
8
+ /** Optional Cursor API base URL override. */
9
+ baseUrl?: string;
10
+ /** Optional client version override sent as `x-cursor-client-version`. */
11
+ clientVersion?: string;
12
+ /** Optional request timeout in milliseconds. */
13
+ timeoutMs?: number;
14
+ /** Optional list of custom Cursor model ids to include in request context. */
15
+ customModelIds?: string[];
16
+ }
17
+ /**
18
+ * Fetches Cursor models through `GetUsableModels` and normalizes them into canonical model entries.
19
+ *
20
+ * Returns `null` on request/decode failures.
21
+ * Returns `[]` only when the endpoint responds successfully with no usable models.
22
+ */
23
+ export declare function fetchCursorUsableModels(options: CursorModelDiscoveryOptions): Promise<Model<"cursor-agent">[] | null>;
@@ -0,0 +1,25 @@
1
+ import type { Model } from "../../types";
2
+ /**
3
+ * Configuration for Google Generative AI model discovery.
4
+ */
5
+ export interface GeminiDiscoveryOptions {
6
+ /** API key for the Google Generative AI public endpoint. */
7
+ apiKey: string;
8
+ /** Optional endpoint override for testing or proxying. */
9
+ baseUrl?: string;
10
+ /** Optional requested page size for model listing. */
11
+ pageSize?: number;
12
+ /** Maximum number of pages to request before stopping pagination. */
13
+ maxPages?: number;
14
+ /** Optional abort signal for HTTP requests. */
15
+ signal?: AbortSignal;
16
+ /** Optional fetch implementation override for tests. */
17
+ fetch?: typeof fetch;
18
+ }
19
+ /**
20
+ * Fetches and normalizes Google Generative AI models from the public models endpoint.
21
+ *
22
+ * Returns `null` on transport/protocol failures.
23
+ * Returns `[]` only when the endpoint responds successfully with no usable models.
24
+ */
25
+ export declare function fetchGeminiModels(options: GeminiDiscoveryOptions): Promise<Model<"google-generative-ai">[] | null>;
@@ -0,0 +1,4 @@
1
+ export * from "./antigravity";
2
+ export * from "./codex";
3
+ export * from "./gemini";
4
+ export * from "./openai-compatible";
@@ -0,0 +1,72 @@
1
+ import type { Api, Model, Provider } from "../../types";
2
+ /**
3
+ * Minimal OpenAI-style model entry shape consumed by discovery.
4
+ *
5
+ * Providers may return additional fields; this type only captures
6
+ * fields that are useful for generic normalization.
7
+ */
8
+ export interface OpenAICompatibleModelRecord {
9
+ id?: unknown;
10
+ name?: unknown;
11
+ object?: unknown;
12
+ owned_by?: unknown;
13
+ [key: string]: unknown;
14
+ }
15
+ /**
16
+ * Tolerant envelope for OpenAI-compatible `/models` responses.
17
+ *
18
+ * Common providers return `{ data: [...] }`, but variants such as
19
+ * `{ models: [...] }`, `{ result: [...] }`, or direct arrays are also
20
+ * accepted during extraction.
21
+ */
22
+ export interface OpenAICompatibleModelsEnvelope {
23
+ data?: unknown;
24
+ models?: unknown;
25
+ result?: unknown;
26
+ items?: unknown;
27
+ [key: string]: unknown;
28
+ }
29
+ /**
30
+ * Context passed to custom OpenAI-compatible model mappers.
31
+ */
32
+ export interface OpenAICompatibleModelMapperContext<TApi extends Api> {
33
+ api: TApi;
34
+ provider: Provider;
35
+ baseUrl: string;
36
+ }
37
+ /**
38
+ * Options for fetching and normalizing OpenAI-compatible `/models` catalogs.
39
+ */
40
+ export interface FetchOpenAICompatibleModelsOptions<TApi extends Api> {
41
+ /** API type assigned to normalized models. */
42
+ api: TApi;
43
+ /** Provider id assigned to normalized models. */
44
+ provider: Provider;
45
+ /** Provider base URL used for both fetch and normalized model records. */
46
+ baseUrl: string;
47
+ /** Optional bearer token for Authorization header. */
48
+ apiKey?: string;
49
+ /** Additional request headers. */
50
+ headers?: Record<string, string>;
51
+ /** Optional AbortSignal for request cancellation. */
52
+ signal?: AbortSignal;
53
+ /** Optional fetch implementation override for testing/custom runtimes. */
54
+ fetch?: typeof globalThis.fetch;
55
+ /**
56
+ * Optional post-normalization filter.
57
+ * Return false to skip a model.
58
+ */
59
+ filterModel?: (entry: OpenAICompatibleModelRecord, model: Model<TApi>) => boolean;
60
+ /**
61
+ * Optional mapper override for provider-specific quirks.
62
+ * Return null to skip a model.
63
+ */
64
+ mapModel?: (entry: OpenAICompatibleModelRecord, defaults: Model<TApi>, context: OpenAICompatibleModelMapperContext<TApi>) => Model<TApi> | null;
65
+ }
66
+ /**
67
+ * Fetches and normalizes an OpenAI-compatible `/models` catalog.
68
+ *
69
+ * Returns `null` on transport/protocol failures.
70
+ * Returns `[]` only when the endpoint responds successfully with no usable models.
71
+ */
72
+ export declare function fetchOpenAICompatibleModels<TApi extends Api>(options: FetchOpenAICompatibleModelsOptions<TApi>): Promise<Model<TApi>[] | null>;
@@ -0,0 +1,28 @@
1
+ import type { AssistantMessage, AssistantMessageEvent } from "../types";
2
+ export declare class EventStream<T, R = T> implements AsyncIterable<T> {
3
+ #private;
4
+ queue: T[];
5
+ waiting: Array<{
6
+ resolve: (value: IteratorResult<T>) => void;
7
+ reject: (err: unknown) => void;
8
+ }>;
9
+ done: boolean;
10
+ finalResultPromise: Promise<R>;
11
+ resolveFinalResult: (result: R) => void;
12
+ rejectFinalResult: (err: unknown) => void;
13
+ isComplete: (event: T) => boolean;
14
+ extractResult: (event: T) => R;
15
+ constructor(isComplete: (event: T) => boolean, extractResult: (event: T) => R);
16
+ push(event: T): void;
17
+ deliver(event: T): void;
18
+ end(result?: R): void;
19
+ endWaiting(): void;
20
+ fail(err: unknown): void;
21
+ [Symbol.asyncIterator](): AsyncIterator<T>;
22
+ result(): Promise<R>;
23
+ }
24
+ export declare class AssistantMessageEventStream extends EventStream<AssistantMessageEvent, AssistantMessage> {
25
+ constructor();
26
+ push(event: AssistantMessageEvent): void;
27
+ end(result?: AssistantMessage): void;
28
+ }
@@ -0,0 +1,10 @@
1
+ export declare function toFireworksPublicModelId(modelId: string): string;
2
+ export declare function toFireworksWireModelId(modelId: string): string;
3
+ /**
4
+ * Fire Pass exposes its Kimi K2.6 Turbo subscription through a dedicated router
5
+ * endpoint at `accounts/fireworks/routers/<id>` rather than the `models/` namespace.
6
+ * We keep a friendly public id (e.g. `kimi-k2.6-turbo`) in the catalog and translate
7
+ * to the wire form (`accounts/fireworks/routers/kimi-k2p6-turbo`) at request time.
8
+ */
9
+ export declare function toFirepassPublicModelId(modelId: string): string;
10
+ export declare function toFirepassWireModelId(modelId: string): string;
@@ -0,0 +1 @@
1
+ export declare function isFoundryEnabled(): boolean;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Patch `globalThis.fetch` to advertise HTTP/2 in TLS ALPN, with transparent
3
+ * HTTP/1.1 fallback when the server doesn't negotiate `h2`.
4
+ *
5
+ * Bun's HTTP/2 client is gated on `BUN_FEATURE_FLAG_EXPERIMENTAL_HTTP2_CLIENT`,
6
+ * read by the native runtime before any JS executes; assigning to
7
+ * `process.env` from inside JS is a no-op. Per-request `protocol: "http2"`
8
+ * activates h2 over TLS ALPN and rejects with `error.code === "HTTP2Unsupported"`
9
+ * if the server picks anything else, so we catch and retry without the hint.
10
+ *
11
+ * Some HTTPS endpoints (e.g. corporate API gateways behind reverse proxies)
12
+ * advertise h2 via ALPN but then refuse or reset the connection at the HTTP/2
13
+ * framing layer. Bun surfaces these as `ConnectionRefused`, `ConnectionReset`,
14
+ * or `ConnectionClosed` rather than `HTTP2Unsupported`, so we treat those
15
+ * codes as h2-fallback triggers as well.
16
+ *
17
+ * Bun negotiates h2 via ALPN over TLS only (no h2c), so plain `http://` URLs
18
+ * skip the attempt entirely — avoids the throw/retry round-trip for localhost.
19
+ *
20
+ * Idempotent.
21
+ */
22
+ export declare function installH2Fetch(): void;