@aryee337/aery-ai 0.1.148 → 0.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/CHANGELOG.md +2914 -0
  2. package/README.md +614 -813
  3. package/dist/types/api-registry.d.ts +30 -0
  4. package/dist/types/auth-broker/client.d.ts +66 -0
  5. package/dist/types/auth-broker/index.d.ts +5 -0
  6. package/dist/types/auth-broker/refresher.d.ts +25 -0
  7. package/dist/types/auth-broker/remote-store.d.ts +96 -0
  8. package/dist/types/auth-broker/server.d.ts +32 -0
  9. package/dist/types/auth-broker/types.d.ts +105 -0
  10. package/dist/types/auth-broker/wire-schemas.d.ts +412 -0
  11. package/dist/types/auth-gateway/http.d.ts +39 -0
  12. package/dist/types/auth-gateway/index.d.ts +3 -0
  13. package/dist/types/auth-gateway/server.d.ts +36 -0
  14. package/dist/types/auth-gateway/types.d.ts +117 -0
  15. package/dist/types/auth-storage.d.ts +739 -0
  16. package/dist/types/index.d.ts +49 -0
  17. package/dist/types/model-cache.d.ts +17 -0
  18. package/dist/types/model-manager.d.ts +64 -0
  19. package/dist/types/model-thinking.d.ts +100 -0
  20. package/dist/types/models.d.ts +12 -0
  21. package/dist/types/provider-details.d.ts +24 -0
  22. package/dist/types/provider-models/bundled-references.d.ts +4 -0
  23. package/dist/types/provider-models/descriptors.d.ts +50 -0
  24. package/dist/types/provider-models/google.d.ts +24 -0
  25. package/dist/types/provider-models/index.d.ts +5 -0
  26. package/dist/types/provider-models/ollama.d.ts +7 -0
  27. package/dist/types/provider-models/openai-compat.d.ts +296 -0
  28. package/dist/types/provider-models/special.d.ts +16 -0
  29. package/dist/types/providers/aery-native-client.d.ts +13 -0
  30. package/dist/types/providers/aery-native-server.d.ts +68 -0
  31. package/dist/types/providers/amazon-bedrock.d.ts +38 -0
  32. package/dist/types/providers/anthropic-client.d.ts +99 -0
  33. package/dist/types/providers/anthropic-messages-server-schema.d.ts +465 -0
  34. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  35. package/dist/types/providers/anthropic-wire.d.ts +262 -0
  36. package/dist/types/providers/anthropic.d.ts +206 -0
  37. package/dist/types/providers/aws-credentials.d.ts +43 -0
  38. package/dist/types/providers/aws-eventstream.d.ts +38 -0
  39. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  40. package/dist/types/providers/azure-openai-responses.d.ts +15 -0
  41. package/dist/types/providers/cursor/gen/agent_pb.d.ts +13022 -0
  42. package/dist/types/providers/cursor.d.ts +43 -0
  43. package/dist/types/providers/error-message.d.ts +27 -0
  44. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  45. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  46. package/dist/types/providers/google-auth.d.ts +24 -0
  47. package/dist/types/providers/google-gemini-cli.d.ts +81 -0
  48. package/dist/types/providers/google-gemini-headers.d.ts +18 -0
  49. package/dist/types/providers/google-shared.d.ts +171 -0
  50. package/dist/types/providers/google-types.d.ts +138 -0
  51. package/dist/types/providers/google-vertex.d.ts +7 -0
  52. package/dist/types/providers/google.d.ts +4 -0
  53. package/dist/types/providers/grammar.d.ts +1 -0
  54. package/dist/types/providers/kimi.d.ts +27 -0
  55. package/dist/types/providers/mock.d.ts +173 -0
  56. package/dist/types/providers/ollama.d.ts +6 -0
  57. package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
  58. package/dist/types/providers/openai-chat-server-schema.d.ts +817 -0
  59. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  60. package/dist/types/providers/openai-codex/constants.d.ts +26 -0
  61. package/dist/types/providers/openai-codex/request-transformer.d.ts +49 -0
  62. package/dist/types/providers/openai-codex/response-handler.d.ts +17 -0
  63. package/dist/types/providers/openai-codex-responses.d.ts +67 -0
  64. package/dist/types/providers/openai-completions-compat.d.ts +25 -0
  65. package/dist/types/providers/openai-completions.d.ts +54 -0
  66. package/dist/types/providers/openai-responses-server-schema.d.ts +392 -0
  67. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  68. package/dist/types/providers/openai-responses-shared.d.ts +100 -0
  69. package/dist/types/providers/openai-responses.d.ts +66 -0
  70. package/dist/types/providers/register-builtins.d.ts +31 -0
  71. package/dist/types/providers/synthetic.d.ts +26 -0
  72. package/dist/{providers → types/providers}/transform-messages.d.ts +6 -2
  73. package/dist/types/providers/vision-guard.d.ts +8 -0
  74. package/dist/types/providers/xai-responses.d.ts +23 -0
  75. package/dist/types/rate-limit-utils.d.ts +19 -0
  76. package/dist/types/stream.d.ts +28 -0
  77. package/dist/types/types.d.ts +801 -0
  78. package/dist/types/usage/claude.d.ts +4 -0
  79. package/dist/types/usage/gemini.d.ts +2 -0
  80. package/dist/types/usage/github-copilot.d.ts +7 -0
  81. package/dist/types/usage/google-antigravity.d.ts +2 -0
  82. package/dist/types/usage/kimi.d.ts +2 -0
  83. package/dist/types/usage/minimax-code.d.ts +2 -0
  84. package/dist/types/usage/openai-codex.d.ts +3 -0
  85. package/dist/types/usage/shared.d.ts +1 -0
  86. package/dist/types/usage/zai.d.ts +2 -0
  87. package/dist/types/usage.d.ts +260 -0
  88. package/dist/types/utils/abort.d.ts +19 -0
  89. package/dist/types/utils/abortable-iterator.d.ts +4 -0
  90. package/dist/types/utils/anthropic-auth.d.ts +35 -0
  91. package/dist/types/utils/discovery/antigravity.d.ts +61 -0
  92. package/dist/types/utils/discovery/codex.d.ts +38 -0
  93. package/dist/types/utils/discovery/cursor.d.ts +23 -0
  94. package/dist/types/utils/discovery/gemini.d.ts +25 -0
  95. package/dist/types/utils/discovery/index.d.ts +4 -0
  96. package/dist/types/utils/discovery/openai-compatible.d.ts +72 -0
  97. package/dist/types/utils/event-stream.d.ts +28 -0
  98. package/dist/types/utils/fireworks-model-id.d.ts +10 -0
  99. package/dist/types/utils/foundry.d.ts +1 -0
  100. package/dist/types/utils/http-inspector.d.ts +31 -0
  101. package/dist/types/utils/idle-iterator.d.ts +78 -0
  102. package/dist/types/utils/json-parse.d.ts +37 -0
  103. package/dist/types/utils/oauth/__tests__/xai-oauth.test.d.ts +1 -0
  104. package/dist/types/utils/oauth/alibaba-coding-plan.d.ts +18 -0
  105. package/dist/types/utils/oauth/anthropic.d.ts +22 -0
  106. package/dist/types/utils/oauth/api-key-login.d.ts +35 -0
  107. package/dist/types/utils/oauth/api-key-validation.d.ts +27 -0
  108. package/dist/types/utils/oauth/callback-server.d.ts +57 -0
  109. package/dist/types/utils/oauth/cerebras.d.ts +1 -0
  110. package/dist/types/utils/oauth/cloudflare-ai-gateway.d.ts +18 -0
  111. package/dist/types/utils/oauth/cursor.d.ts +15 -0
  112. package/dist/types/utils/oauth/deepseek.d.ts +10 -0
  113. package/dist/types/utils/oauth/firepass.d.ts +1 -0
  114. package/dist/types/utils/oauth/fireworks.d.ts +1 -0
  115. package/dist/types/utils/oauth/github-copilot.d.ts +38 -0
  116. package/dist/types/utils/oauth/gitlab-duo.d.ts +3 -0
  117. package/dist/types/utils/oauth/google-antigravity.d.ts +11 -0
  118. package/dist/types/utils/oauth/google-gemini-cli.d.ts +10 -0
  119. package/dist/types/utils/oauth/google-oauth-shared.d.ts +28 -0
  120. package/dist/types/utils/oauth/huggingface.d.ts +19 -0
  121. package/dist/types/utils/oauth/index.d.ts +38 -0
  122. package/dist/types/utils/oauth/kagi.d.ts +17 -0
  123. package/dist/types/utils/oauth/kilo.d.ts +5 -0
  124. package/dist/types/utils/oauth/kimi.d.ts +21 -0
  125. package/dist/types/utils/oauth/litellm.d.ts +18 -0
  126. package/dist/types/utils/oauth/lm-studio.d.ts +17 -0
  127. package/dist/types/utils/oauth/minimax-code.d.ts +28 -0
  128. package/dist/types/utils/oauth/moonshot.d.ts +1 -0
  129. package/dist/types/utils/oauth/nanogpt.d.ts +1 -0
  130. package/dist/types/utils/oauth/nvidia.d.ts +18 -0
  131. package/dist/types/utils/oauth/ollama-cloud.d.ts +2 -0
  132. package/dist/types/utils/oauth/ollama.d.ts +18 -0
  133. package/dist/types/utils/oauth/openai-codex.d.ts +21 -0
  134. package/dist/types/utils/oauth/opencode.d.ts +18 -0
  135. package/dist/types/utils/oauth/openrouter.d.ts +1 -0
  136. package/dist/types/utils/oauth/parallel.d.ts +17 -0
  137. package/dist/types/utils/oauth/perplexity.d.ts +9 -0
  138. package/dist/{utils → types/utils}/oauth/pkce.d.ts +0 -5
  139. package/dist/types/utils/oauth/qianfan.d.ts +17 -0
  140. package/dist/types/utils/oauth/qwen-portal.d.ts +19 -0
  141. package/dist/types/utils/oauth/synthetic.d.ts +1 -0
  142. package/dist/types/utils/oauth/tavily.d.ts +17 -0
  143. package/dist/types/utils/oauth/together.d.ts +1 -0
  144. package/dist/types/utils/oauth/types.d.ts +44 -0
  145. package/dist/types/utils/oauth/venice.d.ts +18 -0
  146. package/dist/types/utils/oauth/vercel-ai-gateway.d.ts +18 -0
  147. package/dist/types/utils/oauth/vllm.d.ts +16 -0
  148. package/dist/types/utils/oauth/wafer.d.ts +2 -0
  149. package/dist/types/utils/oauth/xai-oauth.d.ts +60 -0
  150. package/dist/types/utils/oauth/xiaomi.d.ts +19 -0
  151. package/dist/types/utils/oauth/zai.d.ts +18 -0
  152. package/dist/types/utils/oauth/zenmux.d.ts +1 -0
  153. package/dist/types/utils/oauth/zhipu.d.ts +18 -0
  154. package/dist/{utils → types/utils}/overflow.d.ts +9 -11
  155. package/dist/types/utils/parse-bind.d.ts +23 -0
  156. package/dist/types/utils/provider-response.d.ts +3 -0
  157. package/dist/types/utils/request-debug.d.ts +29 -0
  158. package/dist/types/utils/retry-after.d.ts +3 -0
  159. package/dist/types/utils/retry.d.ts +26 -0
  160. package/dist/types/utils/schema/adapt.d.ts +24 -0
  161. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  162. package/dist/types/utils/schema/dereference.d.ts +11 -0
  163. package/dist/types/utils/schema/draft.d.ts +10 -0
  164. package/dist/types/utils/schema/equality.d.ts +4 -0
  165. package/dist/types/utils/schema/fields.d.ts +49 -0
  166. package/dist/types/utils/schema/index.d.ts +13 -0
  167. package/dist/types/utils/schema/json-schema-validator.d.ts +12 -0
  168. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  169. package/dist/types/utils/schema/normalize.d.ts +93 -0
  170. package/dist/types/utils/schema/spill.d.ts +8 -0
  171. package/dist/types/utils/schema/stamps.d.ts +25 -0
  172. package/dist/types/utils/schema/types.d.ts +4 -0
  173. package/dist/types/utils/schema/wire.d.ts +53 -0
  174. package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
  175. package/dist/types/utils/sdk-stream-timeout.d.ts +33 -0
  176. package/dist/types/utils/sse-debug.d.ts +10 -0
  177. package/dist/types/utils/stream-markup-healing.d.ts +80 -0
  178. package/dist/types/utils/tool-choice.d.ts +50 -0
  179. package/dist/types/utils/validation.d.ts +17 -0
  180. package/dist/types/utils.d.ts +28 -0
  181. package/package.json +139 -105
  182. package/src/api-registry.ts +96 -0
  183. package/src/auth-broker/client.ts +358 -0
  184. package/src/auth-broker/index.ts +5 -0
  185. package/src/auth-broker/refresher.ts +117 -0
  186. package/src/auth-broker/remote-store.ts +623 -0
  187. package/src/auth-broker/server.ts +644 -0
  188. package/src/auth-broker/types.ts +127 -0
  189. package/src/auth-broker/wire-schemas.ts +200 -0
  190. package/src/auth-gateway/http.ts +194 -0
  191. package/src/auth-gateway/index.ts +3 -0
  192. package/src/auth-gateway/server.ts +818 -0
  193. package/src/auth-gateway/types.ts +143 -0
  194. package/src/auth-storage.ts +4422 -0
  195. package/src/index.ts +54 -0
  196. package/src/model-cache.ts +129 -0
  197. package/src/model-manager.ts +469 -0
  198. package/src/model-thinking.ts +782 -0
  199. package/src/models.json +83530 -0
  200. package/src/models.json.d.ts +9 -0
  201. package/src/models.ts +56 -0
  202. package/src/prompts/turn-aborted-guidance.md +4 -0
  203. package/src/provider-details.ts +90 -0
  204. package/src/provider-models/bundled-references.ts +38 -0
  205. package/src/provider-models/descriptors.ts +355 -0
  206. package/src/provider-models/google.ts +88 -0
  207. package/src/provider-models/index.ts +5 -0
  208. package/src/provider-models/ollama.ts +153 -0
  209. package/src/provider-models/openai-compat.ts +2817 -0
  210. package/src/provider-models/special.ts +67 -0
  211. package/src/providers/aery-native-client.ts +228 -0
  212. package/src/providers/aery-native-server.ts +212 -0
  213. package/src/providers/amazon-bedrock.ts +873 -0
  214. package/src/providers/anthropic-client.ts +318 -0
  215. package/src/providers/anthropic-messages-server-schema.ts +243 -0
  216. package/src/providers/anthropic-messages-server.ts +683 -0
  217. package/src/providers/anthropic-wire.ts +268 -0
  218. package/src/providers/anthropic.ts +3094 -0
  219. package/src/providers/aws-credentials.ts +501 -0
  220. package/src/providers/aws-eventstream.ts +185 -0
  221. package/src/providers/aws-sigv4.ts +218 -0
  222. package/src/providers/azure-openai-responses.ts +361 -0
  223. package/src/providers/cursor/gen/agent_pb.ts +15274 -0
  224. package/src/providers/cursor/proto/agent.proto +3526 -0
  225. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  226. package/src/providers/cursor/proto/buf.yaml +17 -0
  227. package/src/providers/cursor.ts +2621 -0
  228. package/src/providers/error-message.ts +21 -0
  229. package/src/providers/github-copilot-headers.ts +140 -0
  230. package/src/providers/gitlab-duo.ts +372 -0
  231. package/src/providers/google-auth.ts +252 -0
  232. package/src/providers/google-gemini-cli.ts +809 -0
  233. package/src/providers/google-gemini-headers.ts +41 -0
  234. package/src/providers/google-shared.ts +917 -0
  235. package/src/providers/google-types.ts +167 -0
  236. package/src/providers/google-vertex.ts +91 -0
  237. package/src/providers/google.ts +41 -0
  238. package/src/providers/grammar.ts +70 -0
  239. package/src/providers/kimi.ts +52 -0
  240. package/src/providers/mock.ts +496 -0
  241. package/src/providers/ollama.ts +644 -0
  242. package/src/providers/openai-anthropic-shim.ts +138 -0
  243. package/src/providers/openai-chat-server-schema.ts +252 -0
  244. package/src/providers/openai-chat-server.ts +647 -0
  245. package/src/providers/openai-codex/constants.ts +43 -0
  246. package/src/providers/openai-codex/request-transformer.ts +161 -0
  247. package/src/providers/openai-codex/response-handler.ts +81 -0
  248. package/src/providers/openai-codex-responses.ts +3018 -0
  249. package/src/providers/openai-completions-compat.ts +300 -0
  250. package/src/providers/openai-completions.ts +1979 -0
  251. package/src/providers/openai-responses-server-schema.ts +290 -0
  252. package/src/providers/openai-responses-server.ts +1183 -0
  253. package/src/providers/openai-responses-shared.ts +873 -0
  254. package/src/providers/openai-responses.ts +679 -0
  255. package/src/providers/register-builtins.ts +436 -0
  256. package/src/providers/synthetic.ts +50 -0
  257. package/src/providers/transform-messages.ts +382 -0
  258. package/src/providers/vision-guard.ts +31 -0
  259. package/src/providers/xai-responses.ts +82 -0
  260. package/src/rate-limit-utils.ts +84 -0
  261. package/src/stream.ts +1065 -0
  262. package/src/types.ts +944 -0
  263. package/src/usage/claude.ts +482 -0
  264. package/src/usage/gemini.ts +250 -0
  265. package/src/usage/github-copilot.ts +421 -0
  266. package/src/usage/google-antigravity.ts +201 -0
  267. package/src/usage/kimi.ts +271 -0
  268. package/src/usage/minimax-code.ts +31 -0
  269. package/src/usage/openai-codex.ts +503 -0
  270. package/src/usage/shared.ts +10 -0
  271. package/src/usage/zai.ts +247 -0
  272. package/src/usage.ts +185 -0
  273. package/src/utils/abort.ts +51 -0
  274. package/src/utils/abortable-iterator.ts +69 -0
  275. package/src/utils/anthropic-auth.ts +93 -0
  276. package/src/utils/discovery/antigravity.ts +261 -0
  277. package/src/utils/discovery/codex.ts +371 -0
  278. package/src/utils/discovery/cursor.ts +306 -0
  279. package/src/utils/discovery/gemini.ts +248 -0
  280. package/src/utils/discovery/index.ts +4 -0
  281. package/src/utils/discovery/openai-compatible.ts +224 -0
  282. package/src/utils/event-stream.ts +142 -0
  283. package/src/utils/fireworks-model-id.ts +30 -0
  284. package/src/utils/foundry.ts +8 -0
  285. package/src/utils/http-inspector.ts +176 -0
  286. package/src/utils/idle-iterator.ts +267 -0
  287. package/src/utils/json-parse.ts +182 -0
  288. package/src/utils/oauth/__tests__/xai-oauth.test.ts +107 -0
  289. package/src/utils/oauth/alibaba-coding-plan.ts +59 -0
  290. package/src/utils/oauth/anthropic.ts +273 -0
  291. package/src/utils/oauth/api-key-login.ts +87 -0
  292. package/src/utils/oauth/api-key-validation.ts +92 -0
  293. package/src/utils/oauth/callback-server.ts +276 -0
  294. package/src/utils/oauth/cerebras.ts +16 -0
  295. package/src/utils/oauth/cloudflare-ai-gateway.ts +48 -0
  296. package/src/utils/oauth/cursor.ts +157 -0
  297. package/src/utils/oauth/deepseek.ts +53 -0
  298. package/src/utils/oauth/firepass.ts +24 -0
  299. package/src/utils/oauth/fireworks.ts +15 -0
  300. package/src/utils/oauth/github-copilot.ts +362 -0
  301. package/src/utils/oauth/gitlab-duo.ts +123 -0
  302. package/src/utils/oauth/google-antigravity.ts +200 -0
  303. package/src/utils/oauth/google-gemini-cli.ts +256 -0
  304. package/src/utils/oauth/google-oauth-shared.ts +110 -0
  305. package/src/utils/oauth/huggingface.ts +62 -0
  306. package/src/utils/oauth/index.ts +484 -0
  307. package/src/utils/oauth/kagi.ts +47 -0
  308. package/src/utils/oauth/kilo.ts +87 -0
  309. package/src/utils/oauth/kimi.ts +254 -0
  310. package/src/utils/oauth/litellm.ts +47 -0
  311. package/src/utils/oauth/lm-studio.ts +38 -0
  312. package/src/utils/oauth/minimax-code.ts +78 -0
  313. package/src/utils/oauth/moonshot.ts +23 -0
  314. package/src/utils/oauth/nanogpt.ts +15 -0
  315. package/src/utils/oauth/nvidia.ts +70 -0
  316. package/src/utils/oauth/oauth.html +203 -0
  317. package/src/utils/oauth/ollama-cloud.ts +28 -0
  318. package/src/utils/oauth/ollama.ts +47 -0
  319. package/src/utils/oauth/openai-codex.ts +299 -0
  320. package/src/utils/oauth/opencode.ts +49 -0
  321. package/src/utils/oauth/openrouter.ts +20 -0
  322. package/src/utils/oauth/parallel.ts +46 -0
  323. package/src/utils/oauth/perplexity.ts +206 -0
  324. package/src/utils/oauth/pkce.ts +18 -0
  325. package/src/utils/oauth/qianfan.ts +58 -0
  326. package/src/utils/oauth/qwen-portal.ts +60 -0
  327. package/src/utils/oauth/synthetic.ts +15 -0
  328. package/src/utils/oauth/tavily.ts +46 -0
  329. package/src/utils/oauth/together.ts +16 -0
  330. package/src/utils/oauth/types.ts +99 -0
  331. package/src/utils/oauth/venice.ts +59 -0
  332. package/src/utils/oauth/vercel-ai-gateway.ts +47 -0
  333. package/src/utils/oauth/vllm.ts +40 -0
  334. package/src/utils/oauth/wafer.ts +50 -0
  335. package/src/utils/oauth/xai-oauth.ts +342 -0
  336. package/src/utils/oauth/xiaomi.ts +139 -0
  337. package/src/utils/oauth/zai.ts +60 -0
  338. package/src/utils/oauth/zenmux.ts +15 -0
  339. package/src/utils/oauth/zhipu.ts +60 -0
  340. package/src/utils/overflow.ts +137 -0
  341. package/src/utils/parse-bind.ts +54 -0
  342. package/src/utils/provider-response.ts +30 -0
  343. package/src/utils/request-debug.ts +336 -0
  344. package/src/utils/retry-after.ts +110 -0
  345. package/src/utils/retry.ts +54 -0
  346. package/src/utils/schema/CONSTRAINTS.md +164 -0
  347. package/src/utils/schema/adapt.ts +36 -0
  348. package/src/utils/schema/compatibility.ts +435 -0
  349. package/src/utils/schema/dereference.ts +98 -0
  350. package/src/utils/schema/draft.ts +341 -0
  351. package/src/utils/schema/equality.ts +97 -0
  352. package/src/utils/schema/fields.ts +191 -0
  353. package/src/utils/schema/index.ts +13 -0
  354. package/src/utils/schema/json-schema-validator.ts +577 -0
  355. package/src/utils/schema/meta-validator.ts +167 -0
  356. package/src/utils/schema/normalize.ts +1588 -0
  357. package/src/utils/schema/spill.ts +43 -0
  358. package/src/utils/schema/stamps.ts +97 -0
  359. package/src/utils/schema/types.ts +10 -0
  360. package/src/utils/schema/wire.ts +293 -0
  361. package/src/utils/schema/zod-decontaminate.ts +331 -0
  362. package/src/utils/sdk-stream-timeout.ts +43 -0
  363. package/src/utils/sse-debug.ts +289 -0
  364. package/src/utils/stream-markup-healing.ts +612 -0
  365. package/src/utils/tool-choice.ts +99 -0
  366. package/src/utils/validation.ts +1024 -0
  367. package/src/utils.ts +166 -0
  368. package/dist/api-registry.d.ts +0 -20
  369. package/dist/api-registry.d.ts.map +0 -1
  370. package/dist/api-registry.js +0 -44
  371. package/dist/api-registry.js.map +0 -1
  372. package/dist/bedrock-provider.d.ts +0 -5
  373. package/dist/bedrock-provider.d.ts.map +0 -1
  374. package/dist/bedrock-provider.js +0 -6
  375. package/dist/bedrock-provider.js.map +0 -1
  376. package/dist/cli.d.ts +0 -3
  377. package/dist/cli.d.ts.map +0 -1
  378. package/dist/cli.js +0 -130
  379. package/dist/cli.js.map +0 -1
  380. package/dist/env-api-keys.d.ts +0 -18
  381. package/dist/env-api-keys.d.ts.map +0 -1
  382. package/dist/env-api-keys.js +0 -178
  383. package/dist/env-api-keys.js.map +0 -1
  384. package/dist/image-models.d.ts +0 -10
  385. package/dist/image-models.d.ts.map +0 -1
  386. package/dist/image-models.generated.d.ts +0 -440
  387. package/dist/image-models.generated.d.ts.map +0 -1
  388. package/dist/image-models.generated.js +0 -442
  389. package/dist/image-models.generated.js.map +0 -1
  390. package/dist/image-models.js +0 -23
  391. package/dist/image-models.js.map +0 -1
  392. package/dist/images-api-registry.d.ts +0 -14
  393. package/dist/images-api-registry.d.ts.map +0 -1
  394. package/dist/images-api-registry.js +0 -22
  395. package/dist/images-api-registry.js.map +0 -1
  396. package/dist/images.d.ts +0 -4
  397. package/dist/images.d.ts.map +0 -1
  398. package/dist/images.js +0 -14
  399. package/dist/images.js.map +0 -1
  400. package/dist/index.d.ts +0 -32
  401. package/dist/index.d.ts.map +0 -1
  402. package/dist/index.js +0 -20
  403. package/dist/index.js.map +0 -1
  404. package/dist/models.d.ts +0 -18
  405. package/dist/models.d.ts.map +0 -1
  406. package/dist/models.generated.d.ts +0 -17480
  407. package/dist/models.generated.d.ts.map +0 -1
  408. package/dist/models.generated.js +0 -16339
  409. package/dist/models.generated.js.map +0 -1
  410. package/dist/models.js +0 -71
  411. package/dist/models.js.map +0 -1
  412. package/dist/oauth.d.ts +0 -2
  413. package/dist/oauth.d.ts.map +0 -1
  414. package/dist/oauth.js +0 -2
  415. package/dist/oauth.js.map +0 -1
  416. package/dist/providers/aery-error-formatting.d.ts +0 -13
  417. package/dist/providers/aery-error-formatting.d.ts.map +0 -1
  418. package/dist/providers/aery-error-formatting.js +0 -112
  419. package/dist/providers/aery-error-formatting.js.map +0 -1
  420. package/dist/providers/amazon-bedrock.d.ts +0 -38
  421. package/dist/providers/amazon-bedrock.d.ts.map +0 -1
  422. package/dist/providers/amazon-bedrock.js +0 -763
  423. package/dist/providers/amazon-bedrock.js.map +0 -1
  424. package/dist/providers/anthropic.d.ts +0 -71
  425. package/dist/providers/anthropic.d.ts.map +0 -1
  426. package/dist/providers/anthropic.js +0 -949
  427. package/dist/providers/anthropic.js.map +0 -1
  428. package/dist/providers/azure-openai-responses.d.ts +0 -15
  429. package/dist/providers/azure-openai-responses.d.ts.map +0 -1
  430. package/dist/providers/azure-openai-responses.js +0 -225
  431. package/dist/providers/azure-openai-responses.js.map +0 -1
  432. package/dist/providers/cloudflare.d.ts +0 -13
  433. package/dist/providers/cloudflare.d.ts.map +0 -1
  434. package/dist/providers/cloudflare.js +0 -26
  435. package/dist/providers/cloudflare.js.map +0 -1
  436. package/dist/providers/faux.d.ts +0 -56
  437. package/dist/providers/faux.d.ts.map +0 -1
  438. package/dist/providers/faux.js +0 -368
  439. package/dist/providers/faux.js.map +0 -1
  440. package/dist/providers/github-copilot-headers.d.ts +0 -8
  441. package/dist/providers/github-copilot-headers.d.ts.map +0 -1
  442. package/dist/providers/github-copilot-headers.js +0 -29
  443. package/dist/providers/github-copilot-headers.js.map +0 -1
  444. package/dist/providers/google-gemini-cli.d.ts +0 -74
  445. package/dist/providers/google-gemini-cli.d.ts.map +0 -1
  446. package/dist/providers/google-gemini-cli.js +0 -779
  447. package/dist/providers/google-gemini-cli.js.map +0 -1
  448. package/dist/providers/google-shared.d.ts +0 -70
  449. package/dist/providers/google-shared.d.ts.map +0 -1
  450. package/dist/providers/google-shared.js +0 -329
  451. package/dist/providers/google-shared.js.map +0 -1
  452. package/dist/providers/google-vertex.d.ts +0 -15
  453. package/dist/providers/google-vertex.d.ts.map +0 -1
  454. package/dist/providers/google-vertex.js +0 -442
  455. package/dist/providers/google-vertex.js.map +0 -1
  456. package/dist/providers/google.d.ts +0 -13
  457. package/dist/providers/google.d.ts.map +0 -1
  458. package/dist/providers/google.js +0 -400
  459. package/dist/providers/google.js.map +0 -1
  460. package/dist/providers/images/openrouter.d.ts +0 -3
  461. package/dist/providers/images/openrouter.d.ts.map +0 -1
  462. package/dist/providers/images/openrouter.js +0 -129
  463. package/dist/providers/images/openrouter.js.map +0 -1
  464. package/dist/providers/images/register-builtins.d.ts +0 -4
  465. package/dist/providers/images/register-builtins.d.ts.map +0 -1
  466. package/dist/providers/images/register-builtins.js +0 -34
  467. package/dist/providers/images/register-builtins.js.map +0 -1
  468. package/dist/providers/mistral.d.ts +0 -25
  469. package/dist/providers/mistral.d.ts.map +0 -1
  470. package/dist/providers/mistral.js +0 -535
  471. package/dist/providers/mistral.js.map +0 -1
  472. package/dist/providers/openai-codex-responses.d.ts +0 -30
  473. package/dist/providers/openai-codex-responses.d.ts.map +0 -1
  474. package/dist/providers/openai-codex-responses.js +0 -1090
  475. package/dist/providers/openai-codex-responses.js.map +0 -1
  476. package/dist/providers/openai-completions.d.ts +0 -19
  477. package/dist/providers/openai-completions.d.ts.map +0 -1
  478. package/dist/providers/openai-completions.js +0 -950
  479. package/dist/providers/openai-completions.js.map +0 -1
  480. package/dist/providers/openai-prompt-cache.d.ts +0 -3
  481. package/dist/providers/openai-prompt-cache.d.ts.map +0 -1
  482. package/dist/providers/openai-prompt-cache.js +0 -10
  483. package/dist/providers/openai-prompt-cache.js.map +0 -1
  484. package/dist/providers/openai-responses-shared.d.ts +0 -18
  485. package/dist/providers/openai-responses-shared.d.ts.map +0 -1
  486. package/dist/providers/openai-responses-shared.js +0 -492
  487. package/dist/providers/openai-responses-shared.js.map +0 -1
  488. package/dist/providers/openai-responses.d.ts +0 -13
  489. package/dist/providers/openai-responses.d.ts.map +0 -1
  490. package/dist/providers/openai-responses.js +0 -237
  491. package/dist/providers/openai-responses.js.map +0 -1
  492. package/dist/providers/register-builtins.d.ts +0 -38
  493. package/dist/providers/register-builtins.d.ts.map +0 -1
  494. package/dist/providers/register-builtins.js +0 -278
  495. package/dist/providers/register-builtins.js.map +0 -1
  496. package/dist/providers/simple-options.d.ts +0 -8
  497. package/dist/providers/simple-options.d.ts.map +0 -1
  498. package/dist/providers/simple-options.js +0 -41
  499. package/dist/providers/simple-options.js.map +0 -1
  500. package/dist/providers/transform-messages.d.ts.map +0 -1
  501. package/dist/providers/transform-messages.js +0 -184
  502. package/dist/providers/transform-messages.js.map +0 -1
  503. package/dist/session-resources.d.ts +0 -4
  504. package/dist/session-resources.d.ts.map +0 -1
  505. package/dist/session-resources.js +0 -22
  506. package/dist/session-resources.js.map +0 -1
  507. package/dist/stream.d.ts +0 -8
  508. package/dist/stream.d.ts.map +0 -1
  509. package/dist/stream.js +0 -27
  510. package/dist/stream.js.map +0 -1
  511. package/dist/types.d.ts +0 -498
  512. package/dist/types.d.ts.map +0 -1
  513. package/dist/types.js +0 -2
  514. package/dist/types.js.map +0 -1
  515. package/dist/utils/diagnostics.d.ts +0 -19
  516. package/dist/utils/diagnostics.d.ts.map +0 -1
  517. package/dist/utils/diagnostics.js +0 -25
  518. package/dist/utils/diagnostics.js.map +0 -1
  519. package/dist/utils/event-stream.d.ts +0 -21
  520. package/dist/utils/event-stream.d.ts.map +0 -1
  521. package/dist/utils/event-stream.js +0 -81
  522. package/dist/utils/event-stream.js.map +0 -1
  523. package/dist/utils/hash.d.ts +0 -3
  524. package/dist/utils/hash.d.ts.map +0 -1
  525. package/dist/utils/hash.js +0 -14
  526. package/dist/utils/hash.js.map +0 -1
  527. package/dist/utils/headers.d.ts +0 -2
  528. package/dist/utils/headers.d.ts.map +0 -1
  529. package/dist/utils/headers.js +0 -8
  530. package/dist/utils/headers.js.map +0 -1
  531. package/dist/utils/json-parse.d.ts +0 -16
  532. package/dist/utils/json-parse.d.ts.map +0 -1
  533. package/dist/utils/json-parse.js +0 -113
  534. package/dist/utils/json-parse.js.map +0 -1
  535. package/dist/utils/node-http-proxy.d.ts +0 -10
  536. package/dist/utils/node-http-proxy.d.ts.map +0 -1
  537. package/dist/utils/node-http-proxy.js +0 -97
  538. package/dist/utils/node-http-proxy.js.map +0 -1
  539. package/dist/utils/oauth/anthropic.d.ts +0 -25
  540. package/dist/utils/oauth/anthropic.d.ts.map +0 -1
  541. package/dist/utils/oauth/anthropic.js +0 -335
  542. package/dist/utils/oauth/anthropic.js.map +0 -1
  543. package/dist/utils/oauth/device-code.d.ts +0 -19
  544. package/dist/utils/oauth/device-code.d.ts.map +0 -1
  545. package/dist/utils/oauth/device-code.js +0 -55
  546. package/dist/utils/oauth/device-code.js.map +0 -1
  547. package/dist/utils/oauth/github-copilot.d.ts +0 -30
  548. package/dist/utils/oauth/github-copilot.d.ts.map +0 -1
  549. package/dist/utils/oauth/github-copilot.js +0 -268
  550. package/dist/utils/oauth/github-copilot.js.map +0 -1
  551. package/dist/utils/oauth/google-antigravity.d.ts +0 -26
  552. package/dist/utils/oauth/google-antigravity.d.ts.map +0 -1
  553. package/dist/utils/oauth/google-antigravity.js +0 -377
  554. package/dist/utils/oauth/google-antigravity.js.map +0 -1
  555. package/dist/utils/oauth/google-gemini-cli.d.ts +0 -26
  556. package/dist/utils/oauth/google-gemini-cli.d.ts.map +0 -1
  557. package/dist/utils/oauth/google-gemini-cli.js +0 -482
  558. package/dist/utils/oauth/google-gemini-cli.js.map +0 -1
  559. package/dist/utils/oauth/index.d.ts +0 -63
  560. package/dist/utils/oauth/index.d.ts.map +0 -1
  561. package/dist/utils/oauth/index.js +0 -131
  562. package/dist/utils/oauth/index.js.map +0 -1
  563. package/dist/utils/oauth/oauth-page.d.ts +0 -3
  564. package/dist/utils/oauth/oauth-page.d.ts.map +0 -1
  565. package/dist/utils/oauth/oauth-page.js +0 -105
  566. package/dist/utils/oauth/oauth-page.js.map +0 -1
  567. package/dist/utils/oauth/openai-codex.d.ts +0 -34
  568. package/dist/utils/oauth/openai-codex.d.ts.map +0 -1
  569. package/dist/utils/oauth/openai-codex.js +0 -385
  570. package/dist/utils/oauth/openai-codex.js.map +0 -1
  571. package/dist/utils/oauth/pkce.d.ts.map +0 -1
  572. package/dist/utils/oauth/pkce.js +0 -31
  573. package/dist/utils/oauth/pkce.js.map +0 -1
  574. package/dist/utils/oauth/types.d.ts +0 -64
  575. package/dist/utils/oauth/types.d.ts.map +0 -1
  576. package/dist/utils/oauth/types.js +0 -2
  577. package/dist/utils/oauth/types.js.map +0 -1
  578. package/dist/utils/overflow.d.ts.map +0 -1
  579. package/dist/utils/overflow.js +0 -151
  580. package/dist/utils/overflow.js.map +0 -1
  581. package/dist/utils/sanitize-unicode.d.ts +0 -22
  582. package/dist/utils/sanitize-unicode.d.ts.map +0 -1
  583. package/dist/utils/sanitize-unicode.js +0 -26
  584. package/dist/utils/sanitize-unicode.js.map +0 -1
  585. package/dist/utils/typebox-helpers.d.ts +0 -17
  586. package/dist/utils/typebox-helpers.d.ts.map +0 -1
  587. package/dist/utils/typebox-helpers.js +0 -21
  588. package/dist/utils/typebox-helpers.js.map +0 -1
  589. package/dist/utils/validation.d.ts +0 -18
  590. package/dist/utils/validation.d.ts.map +0 -1
  591. package/dist/utils/validation.js +0 -281
  592. package/dist/utils/validation.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ import { type JsonValue } from "@bufbuild/protobuf";
2
+ import type { CursorExecHandlerResult, CursorExecHandlers, CursorToolResultHandler, Message, StreamFunction, StreamOptions, ToolResultMessage } from "../types";
3
+ export declare const CURSOR_API_URL = "https://api2.cursor.sh";
4
+ export declare const CURSOR_CLIENT_VERSION = "cli-2026.01.09-231024f";
5
+ export interface CursorOptions extends StreamOptions {
6
+ customSystemPrompt?: string;
7
+ conversationId?: string;
8
+ execHandlers?: CursorExecHandlers;
9
+ onToolResult?: CursorToolResultHandler;
10
+ }
11
+ export declare const streamCursor: StreamFunction<"cursor-agent">;
12
+ /** Exported for tests: verifies handler is invoked with correct `this` when passed as bound. */
13
+ export declare function resolveExecHandler<TArgs, TResult>(args: TArgs, handler: ((args: TArgs) => Promise<CursorExecHandlerResult<TResult>>) | undefined, onToolResult: CursorToolResultHandler | undefined, buildFromToolResult: (toolResult: ToolResultMessage) => TResult, buildRejected: (reason: string) => TResult, buildError: (error: string) => TResult): Promise<{
14
+ execResult: TResult;
15
+ toolResult?: ToolResultMessage;
16
+ }>;
17
+ /**
18
+ * Build `ConversationStateStructure.rootPromptMessagesJson` blob IDs for the
19
+ * system prompt plus prior conversation history, as JSON blobs matching
20
+ * Cursor's internal Vercel-AI-SDK-shaped message format.
21
+ *
22
+ * Cursor's server uses `rootPromptMessagesJson` (not `turns[]`) to build the
23
+ * actual model prompt. `turns[]` is UI/display metadata. Without populating
24
+ * this field, multi-turn conversations lose prior context — the model sees
25
+ * only an empty placeholder where historical user turns should be.
26
+ * The active user message is excluded because it is sent in the action.
27
+ */
28
+ /**
29
+ * Build one Cursor system-message JSON blob per ordered system prompt. Emitting separate blobs
30
+ * (rather than a single `\n\n`-joined string) lets Cursor's blob cache hit independently per
31
+ * entry: changing only the last prompt does not invalidate earlier blob ids, so the prefix
32
+ * up to the changed prompt remains cached on the server side.
33
+ *
34
+ * When no system prompts are provided, returns a single default greeting so we never emit
35
+ * an empty `rootPromptMessagesJson` head.
36
+ */
37
+ export declare function buildCursorSystemPromptJsons(systemPrompt: readonly string[] | undefined): string[];
38
+ /** Exported for tests: decodes Cursor history blobs built from conversation messages. */
39
+ export declare function buildCursorHistoryForTest(messages: Message[], activeUserMessageIndex?: number): {
40
+ rootPromptMessagesJson: unknown[];
41
+ turnUserMessagesJson: JsonValue[];
42
+ turnStepMessagesJson: JsonValue[][];
43
+ };
@@ -0,0 +1,27 @@
1
+ import type { Api, Model } from "../types";
2
+ export declare function createProviderErrorMessage(model: Model<Api>, err: unknown): {
3
+ role: "assistant";
4
+ content: {
5
+ type: "text";
6
+ text: string;
7
+ }[];
8
+ api: Api;
9
+ provider: string;
10
+ model: string;
11
+ usage: {
12
+ input: number;
13
+ output: number;
14
+ cacheRead: number;
15
+ cacheWrite: number;
16
+ totalTokens: number;
17
+ cost: {
18
+ input: number;
19
+ output: number;
20
+ cacheRead: number;
21
+ cacheWrite: number;
22
+ total: number;
23
+ };
24
+ };
25
+ stopReason: "error";
26
+ timestamp: number;
27
+ };
@@ -0,0 +1,40 @@
1
+ import type { Message } from "../types";
2
+ /**
3
+ * Infer whether the current request to Copilot is user-initiated or agent-initiated.
4
+ * Accepts `unknown[]` because providers may pass pre-converted message shapes.
5
+ */
6
+ export type CopilotInitiator = "user" | "agent";
7
+ export type CopilotPremiumRequests = number;
8
+ export type CopilotDynamicHeaders = {
9
+ headers: Record<string, string>;
10
+ initiator: CopilotInitiator;
11
+ premiumRequests: CopilotPremiumRequests;
12
+ };
13
+ export declare function resolveGitHubCopilotBaseUrl(baseUrl: string | undefined, apiKey: string | undefined): string | undefined;
14
+ export declare function inferCopilotInitiator(messages: unknown[]): CopilotInitiator;
15
+ /** Check whether any message in the conversation contains image content. */
16
+ export declare function hasCopilotVisionInput(messages: Message[]): boolean;
17
+ /**
18
+ * Resolve an explicitly configured Copilot initiator header, if present.
19
+ * Handles case-insensitive X-Initiator keys and returns the last valid value.
20
+ */
21
+ export declare function getCopilotInitiatorOverride(headers: Record<string, string> | undefined): CopilotInitiator | undefined;
22
+ export type CopilotPlanTier = "free" | "paid";
23
+ export declare function getCopilotPremiumMultiplier(premiumMultiplier: number | undefined, planTier?: string): number;
24
+ export declare function getCopilotPremiumRequests(params: {
25
+ initiator: CopilotInitiator;
26
+ premiumMultiplier?: number;
27
+ planTier?: string;
28
+ }): CopilotPremiumRequests;
29
+ /**
30
+ * Build dynamic Copilot headers that vary per-request.
31
+ * Static headers (User-Agent, Editor-Version, etc.) come from model.headers.
32
+ */
33
+ export declare function buildCopilotDynamicHeaders(params: {
34
+ messages: unknown[];
35
+ hasImages: boolean;
36
+ premiumMultiplier?: number;
37
+ headers?: Record<string, string>;
38
+ initiatorOverride?: CopilotInitiator;
39
+ planTier?: string;
40
+ }): CopilotDynamicHeaders;
@@ -0,0 +1,27 @@
1
+ import type { Api, Context, Model, SimpleStreamOptions } from "../types";
2
+ import { AssistantMessageEventStream } from "../utils/event-stream";
3
+ type GitLabProvider = "anthropic" | "openai";
4
+ type GitLabOpenAIApiType = "chat" | "responses";
5
+ export type GitLabModelMapping = {
6
+ provider: GitLabProvider;
7
+ model: string;
8
+ openaiApiType?: GitLabOpenAIApiType;
9
+ name: string;
10
+ reasoning: boolean;
11
+ input: ("text" | "image")[];
12
+ cost: {
13
+ input: number;
14
+ output: number;
15
+ cacheRead: number;
16
+ cacheWrite: number;
17
+ };
18
+ contextWindow: number;
19
+ maxTokens: number;
20
+ };
21
+ export declare const MODEL_MAPPINGS: Record<string, GitLabModelMapping>;
22
+ export declare function getModelMapping(modelId: string): GitLabModelMapping | undefined;
23
+ export declare function getGitLabDuoModels(): Model<Api>[];
24
+ export declare function clearGitLabDuoDirectAccessCache(): void;
25
+ export declare function isGitLabDuoModel(model: Model<Api>): boolean;
26
+ export declare function streamGitLabDuo(model: Model<Api>, context: Context, options?: SimpleStreamOptions): AssistantMessageEventStream;
27
+ export {};
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Application Default Credentials (ADC) resolution for Vertex AI.
3
+ *
4
+ * Replaces `google-auth-library` with a direct WebCrypto + REST implementation.
5
+ * Sources, in priority order:
6
+ * 1. `GOOGLE_APPLICATION_CREDENTIALS` env → file with `type: "service_account"` (RS256 JWT exchange)
7
+ * or `type: "authorized_user"` (refresh-token exchange).
8
+ * 2. `~/.config/gcloud/application_default_credentials.json` (user ADC, same authorized_user flow).
9
+ * 3. GCE / Cloud Run metadata server (`metadata.google.internal`).
10
+ *
11
+ * Tokens are cached per source key and refreshed `GOOGLE_VERTEX_REFRESH_SKEW_MS` before expiry
12
+ * (default 60s). Concurrent callers waiting on a refresh share the same in-flight promise.
13
+ */
14
+ import type { FetchImpl } from "../types";
15
+ /**
16
+ * Returns a Bearer access token suitable for the `Authorization` header on Vertex AI calls.
17
+ * The token is cached in module scope and refreshed `GOOGLE_VERTEX_REFRESH_SKEW_MS` ms before it expires.
18
+ */
19
+ export declare function getVertexAccessToken(options?: {
20
+ signal?: AbortSignal;
21
+ fetch?: FetchImpl;
22
+ }): Promise<string>;
23
+ /** Test seam: clears every cached token. */
24
+ export declare function __resetVertexTokenCache(): void;
@@ -0,0 +1,81 @@
1
+ import type { Context, Model, StreamFunction, StreamOptions } from "../types";
2
+ import type { Content, FunctionCallingConfigMode, ThinkingConfig } from "./google-shared";
3
+ import { type GoogleThinkingLevel } from "./google-shared";
4
+ /**
5
+ * Thinking level for Gemini 3 models. Re-exported from `google-shared` so existing
6
+ * `import { GoogleThinkingLevel } from "./google-gemini-cli"` callers keep working.
7
+ */
8
+ export type { GoogleThinkingLevel };
9
+ export interface GoogleGeminiCliOptions extends StreamOptions {
10
+ /**
11
+ * Tool selection mode. String forms map directly to Gemini
12
+ * `FunctionCallingConfigMode`. The object form forces a single named tool —
13
+ * `mode: "ANY"` is wire-required when `allowedFunctionNames` is set.
14
+ */
15
+ toolChoice?: "auto" | "none" | "any" | {
16
+ mode: "ANY";
17
+ allowedFunctionNames: [string, ...string[]];
18
+ };
19
+ /**
20
+ * Thinking/reasoning configuration.
21
+ * - Gemini 2.x models: use `budgetTokens` to set the thinking budget
22
+ * - Gemini 3 models (gemini-3-pro-*, gemini-3-flash-*): use `level` instead
23
+ *
24
+ * When using `streamSimple`, this is handled automatically based on the model.
25
+ */
26
+ thinking?: {
27
+ enabled: boolean;
28
+ /** Thinking budget in tokens. Use for Gemini 2.x models. */
29
+ budgetTokens?: number;
30
+ /** Thinking level. Use for Gemini 3 models (LOW/HIGH for Pro, MINIMAL/LOW/MEDIUM/HIGH for Flash). */
31
+ level?: GoogleThinkingLevel;
32
+ };
33
+ projectId?: string;
34
+ }
35
+ export { ANTIGRAVITY_SYSTEM_INSTRUCTION, getAntigravityUserAgent, getGeminiCliHeaders, getGeminiCliUserAgent, } from "./google-gemini-headers";
36
+ interface ParsedGeminiCliCredentials {
37
+ accessToken: string;
38
+ projectId: string;
39
+ refreshToken?: string;
40
+ expiresAt?: number;
41
+ }
42
+ export declare function parseGeminiCliCredentials(apiKeyRaw: string): ParsedGeminiCliCredentials;
43
+ export declare function shouldRefreshGeminiCliCredentials(expiresAt: number | undefined, isAntigravity: boolean, nowMs?: number): boolean;
44
+ interface CloudCodeAssistRequest {
45
+ project: string;
46
+ model: string;
47
+ request: {
48
+ contents: Content[];
49
+ sessionId?: string;
50
+ systemInstruction?: {
51
+ role?: string;
52
+ parts: {
53
+ text: string;
54
+ }[];
55
+ };
56
+ generationConfig?: {
57
+ maxOutputTokens?: number;
58
+ temperature?: number;
59
+ topP?: number;
60
+ topK?: number;
61
+ minP?: number;
62
+ presencePenalty?: number;
63
+ repetitionPenalty?: number;
64
+ thinkingConfig?: ThinkingConfig;
65
+ };
66
+ tools?: {
67
+ functionDeclarations: Record<string, unknown>[];
68
+ }[] | undefined;
69
+ toolConfig?: {
70
+ functionCallingConfig: {
71
+ mode: FunctionCallingConfigMode;
72
+ allowedFunctionNames?: string[];
73
+ };
74
+ };
75
+ };
76
+ requestType?: string;
77
+ userAgent?: string;
78
+ requestId?: string;
79
+ }
80
+ export declare const streamGoogleGeminiCli: StreamFunction<"google-gemini-cli">;
81
+ export declare function buildRequest(model: Model<"google-gemini-cli">, context: Context, projectId: string, options?: GoogleGeminiCliOptions, isAntigravity?: boolean): CloudCodeAssistRequest;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Build a User-Agent string that identifies as Gemini CLI to unlock higher rate limits.
3
+ * Uses the same format as the official Gemini CLI (v0.35+):
4
+ * GeminiCLI/VERSION/MODEL (PLATFORM; ARCH; SURFACE)
5
+ */
6
+ export declare function getGeminiCliUserAgent(modelId?: string): string;
7
+ export declare const getGeminiCliHeaders: (modelId?: string) => {
8
+ "User-Agent": string;
9
+ "Client-Metadata": string;
10
+ };
11
+ export declare const ANTIGRAVITY_SYSTEM_INSTRUCTION: string;
12
+ /**
13
+ * Antigravity / Cloud Code Assist user agent. Lives in its own file so discovery
14
+ * and usage code can read it without pulling the heavy google-gemini-cli provider
15
+ * (and its @google/genai → google-auth-library dependency chain) into the startup
16
+ * parse graph.
17
+ */
18
+ export declare let getAntigravityUserAgent: () => string;
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Shared utilities for Google Generative AI and Google Cloud Code Assist providers.
3
+ */
4
+ import type { AssistantMessage, Context, FetchImpl, Model, StopReason, StreamOptions, TextContent, ThinkingContent, Tool, ToolCall } from "../types";
5
+ import { AssistantMessageEventStream } from "../utils/event-stream";
6
+ import { normalizeSchemaForGoogle } from "../utils/schema";
7
+ import type { Content, FinishReason, FunctionCallingConfigMode, GenerateContentParameters, GenerateContentResponse, Part } from "./google-types";
8
+ export type { Content, FunctionCallingConfigMode, GenerateContentParameters, GenerateContentResponse, ThinkingConfig, } from "./google-types";
9
+ export { normalizeSchemaForGoogle };
10
+ type GoogleApiType = "google-generative-ai" | "google-gemini-cli" | "google-vertex";
11
+ /**
12
+ * Thinking level for Gemini 3 models. Mirrors Google's `ThinkingLevel` enum values.
13
+ * Defined here (not in any specific provider) so all Google providers can reference it
14
+ * without inducing a circular dependency.
15
+ */
16
+ export type GoogleThinkingLevel = "THINKING_LEVEL_UNSPECIFIED" | "MINIMAL" | "LOW" | "MEDIUM" | "HIGH";
17
+ /**
18
+ * Sampling/thinking options shared by `streamGoogle` and `streamGoogleVertex`.
19
+ * `google-gemini-cli` uses a different transport and request shape — do not extend this for it.
20
+ */
21
+ export interface GoogleSharedStreamOptions extends StreamOptions {
22
+ /**
23
+ * Tool selection mode. String forms map directly to Gemini
24
+ * `FunctionCallingConfigMode`. The object form forces a single named tool
25
+ * — `mode: "ANY"` is wire-required when `allowedFunctionNames` is set.
26
+ */
27
+ toolChoice?: "auto" | "none" | "any" | {
28
+ mode: "ANY";
29
+ allowedFunctionNames: [string, ...string[]];
30
+ };
31
+ thinking?: {
32
+ enabled: boolean;
33
+ budgetTokens?: number;
34
+ level?: GoogleThinkingLevel;
35
+ };
36
+ }
37
+ /**
38
+ * Determines whether a streamed Gemini `Part` should be treated as "thinking".
39
+ *
40
+ * Protocol note (Gemini / Vertex AI thought signatures):
41
+ * - `thought: true` is the definitive marker for thinking content (thought summaries).
42
+ * - `thoughtSignature` is an encrypted representation of the model's internal thought process
43
+ * used to preserve reasoning context across multi-turn interactions.
44
+ * - `thoughtSignature` can appear on ANY part type (text, functionCall, etc.) - it does NOT
45
+ * indicate the part itself is thinking content.
46
+ * - For non-functionCall responses, the signature appears on the last part for context replay.
47
+ * - When persisting/replaying model outputs, signature-bearing parts must be preserved as-is;
48
+ * do not merge/move signatures across parts.
49
+ *
50
+ * See: https://ai.google.dev/gemini-api/docs/thought-signatures
51
+ */
52
+ export declare function isThinkingPart(part: Pick<Part, "thought" | "thoughtSignature">): boolean;
53
+ /**
54
+ * Retain thought signatures during streaming.
55
+ *
56
+ * Some backends only send `thoughtSignature` on the first delta for a given part/block; later deltas may omit it.
57
+ * This helper preserves the last non-empty signature for the current block.
58
+ *
59
+ * Note: this does NOT merge or move signatures across distinct response parts. It only prevents
60
+ * a signature from being overwritten with `undefined` within the same streamed block.
61
+ */
62
+ export declare function retainThoughtSignature(existing: string | undefined, incoming: string | undefined): string | undefined;
63
+ /**
64
+ * Claude models via Google APIs require explicit tool call IDs in function calls/responses.
65
+ */
66
+ export declare function requiresToolCallId(modelId: string): boolean;
67
+ /**
68
+ * Convert internal messages to Gemini Content[] format.
69
+ */
70
+ export declare function convertMessages<T extends GoogleApiType>(model: Model<T>, context: Context): Content[];
71
+ /**
72
+ * Convert tools to Gemini function declarations format.
73
+ *
74
+ * We prefer `parametersJsonSchema` (full JSON Schema: anyOf/oneOf/const/etc.).
75
+ *
76
+ * Claude models via Cloud Code Assist require the legacy `parameters` field; the API
77
+ * translates it into Anthropic's `input_schema`. When using that path, we sanitize the
78
+ * schema to remove Google-unsupported JSON Schema keywords.
79
+ */
80
+ export declare function convertTools(tools: Tool[], model: Model<"google-generative-ai" | "google-gemini-cli" | "google-vertex">): {
81
+ functionDeclarations: Record<string, unknown>[];
82
+ }[] | undefined;
83
+ /**
84
+ * Map tool choice string to Gemini FunctionCallingConfigMode.
85
+ */
86
+ export declare function mapToolChoice(choice: string): FunctionCallingConfigMode;
87
+ /**
88
+ * Map Gemini FinishReason to our StopReason.
89
+ */
90
+ export declare function mapStopReason(reason: FinishReason): StopReason;
91
+ /**
92
+ * Map string finish reason to our StopReason (for raw API responses).
93
+ */
94
+ export declare function mapStopReasonString(reason: string): StopReason;
95
+ export declare function nextToolCallId(name: string): string;
96
+ /**
97
+ * Push the appropriate `text_end` / `thinking_end` event for the given block.
98
+ * Shared between the SDK-backed stream consumer and the gemini-cli SSE consumer so
99
+ * the end-of-block event shape stays in lockstep.
100
+ */
101
+ export declare function pushBlockEndEvent(block: TextContent | ThinkingContent, contentIndex: number, output: AssistantMessage, stream: AssistantMessageEventStream): void;
102
+ /**
103
+ * Push the three lifecycle events (`toolcall_start` / `toolcall_delta` / `toolcall_end`) for a
104
+ * fully-assembled `ToolCall`. Caller is responsible for appending the toolCall to `output.content`
105
+ * before invoking — this helper does not mutate `output.content`.
106
+ */
107
+ export declare function pushToolCallEvents(toolCall: ToolCall, contentIndex: number, output: AssistantMessage, stream: AssistantMessageEventStream): void;
108
+ /**
109
+ * Append a new text- or thinking-block to `output.content` and push the matching
110
+ * `text_start` / `thinking_start` event. `onBeforeStartEvent` lets the SSE consumer
111
+ * inject its `ensureStarted()` first-token side effect into the canonical event order.
112
+ */
113
+ export declare function startTextOrThinkingBlock(isThinking: boolean, output: AssistantMessage, stream: AssistantMessageEventStream, onBeforeStartEvent?: () => void): TextContent | ThinkingContent;
114
+ /**
115
+ * Drives the chunked `generateContentStream` iterator into an `AssistantMessage` and
116
+ * the corresponding `AssistantMessageEventStream`. Shared between `streamGoogle` and
117
+ * `streamGoogleVertex` — every observable event order and stop-reason rule is preserved.
118
+ *
119
+ * The caller still owns: `output` construction, timing fields (`duration`/`ttft`),
120
+ * `rawRequestDump`, the `client.models.generateContentStream(params)` call itself,
121
+ * pushing `start`/`done`/`error` events, and the surrounding try/catch that translates
122
+ * thrown errors into `output.stopReason`/`errorMessage`.
123
+ *
124
+ * This helper handles: the chunk loop, currentBlock flush transitions, usage metadata
125
+ * decoding (`calculateCost` included), tool-call id collision avoidance, finish-reason
126
+ * mapping, and the abort/stop-reason post-checks that re-throw to bubble into the
127
+ * caller's catch.
128
+ */
129
+ export declare function consumeGoogleStream<T extends GoogleApiType>(args: {
130
+ googleStream: AsyncIterable<GenerateContentResponse>;
131
+ output: AssistantMessage;
132
+ stream: AssistantMessageEventStream;
133
+ model: Model<T>;
134
+ options: {
135
+ signal?: AbortSignal;
136
+ } | undefined;
137
+ /** Vertex preserves `textSignature` on streamed text deltas; google-generative-ai does not. */
138
+ retainTextSignature?: boolean;
139
+ onFirstToken?: () => void;
140
+ }): Promise<void>;
141
+ /**
142
+ * Build the `GenerateContentParameters` payload for the public Gemini API and Vertex AI.
143
+ * Both surfaces accept the same `GenerateContentConfig` shape — every numeric/string knob,
144
+ * tool-config, thinking-config, and system-instruction conversion is identical.
145
+ *
146
+ * `google-gemini-cli` is NOT routed through here: its `CloudCodeAssistRequest` body has a
147
+ * distinct top-level shape (project/request/requestType) and a different thinking-config
148
+ * placement on `generationConfig`.
149
+ */
150
+ export declare function buildGoogleGenerateContentParams<T extends "google-generative-ai" | "google-vertex">(model: Model<T>, context: Context, options: GoogleSharedStreamOptions): GenerateContentParameters;
151
+ /**
152
+ * Drive the `streamGoogle` / `streamGoogleVertex` event flow: build the assistant message,
153
+ * push start/done/error events, run `consumeGoogleStream`, and translate thrown errors into
154
+ * the canonical `error` event shape.
155
+ *
156
+ * Caller-supplied `prepare()` runs inside the try-block so any failure (missing project,
157
+ * bad auth, etc.) is funneled through the same error path as a streaming failure.
158
+ */
159
+ export interface GoogleGenAIRequestPlan {
160
+ params: GenerateContentParameters;
161
+ url: string;
162
+ headers: Record<string, string>;
163
+ fetch?: FetchImpl;
164
+ }
165
+ export declare function streamGoogleGenAI<T extends "google-generative-ai" | "google-vertex">(args: {
166
+ model: Model<T>;
167
+ options: GoogleSharedStreamOptions | undefined;
168
+ api: T;
169
+ retainTextSignature?: boolean;
170
+ prepare: () => GoogleGenAIRequestPlan | Promise<GoogleGenAIRequestPlan>;
171
+ }): AssistantMessageEventStream;
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Local mirror of the subset of `@google/genai` types this package consumes.
3
+ *
4
+ * Field shapes match Gemini / Vertex AI wire format 1:1. Enum-shaped values are
5
+ * modelled as string literal unions so they pass through `JSON.stringify` and
6
+ * `JSON.parse` unchanged.
7
+ *
8
+ * Keep this file in sync with the actual request/response surface of:
9
+ * - `POST {generativelanguage,aiplatform}.googleapis.com/.../models/{model}:streamGenerateContent?alt=sse`
10
+ * - The Cloud Code Assist endpoint used by `google-gemini-cli.ts`
11
+ */
12
+ /** Mirror of `@google/genai`'s `FinishReason` string enum. */
13
+ export type FinishReason = "FINISH_REASON_UNSPECIFIED" | "STOP" | "MAX_TOKENS" | "SAFETY" | "RECITATION" | "LANGUAGE" | "OTHER" | "BLOCKLIST" | "PROHIBITED_CONTENT" | "SPII" | "MALFORMED_FUNCTION_CALL" | "IMAGE_SAFETY" | "IMAGE_PROHIBITED_CONTENT" | "IMAGE_RECITATION" | "IMAGE_OTHER" | "UNEXPECTED_TOOL_CALL" | "NO_IMAGE";
14
+ /** Mirror of `@google/genai`'s `FunctionCallingConfigMode` string enum. */
15
+ export type FunctionCallingConfigMode = "MODE_UNSPECIFIED" | "AUTO" | "NONE" | "ANY" | "VALIDATED";
16
+ /** Mirror of `@google/genai`'s `ThinkingLevel` string enum. */
17
+ export type ThinkingLevel = "THINKING_LEVEL_UNSPECIFIED" | "MINIMAL" | "LOW" | "MEDIUM" | "HIGH";
18
+ /** Inline base64-encoded data part. */
19
+ export interface InlineDataPart {
20
+ mimeType: string;
21
+ data: string;
22
+ }
23
+ /** Function call emitted by the model. */
24
+ export interface FunctionCallPart {
25
+ name?: string;
26
+ args?: Record<string, unknown>;
27
+ id?: string;
28
+ }
29
+ /** Tool execution result fed back to the model. */
30
+ export interface FunctionResponsePart {
31
+ name: string;
32
+ response: Record<string, unknown>;
33
+ parts?: Part[];
34
+ id?: string;
35
+ }
36
+ /**
37
+ * A single piece of a `Content` message. Mirrors the SDK's union by keeping
38
+ * every optional field — the model and the wire treat shape as discriminator.
39
+ */
40
+ export interface Part {
41
+ text?: string;
42
+ thought?: boolean;
43
+ thoughtSignature?: string;
44
+ inlineData?: InlineDataPart;
45
+ functionCall?: FunctionCallPart;
46
+ functionResponse?: FunctionResponsePart;
47
+ }
48
+ /** Conversation turn. Roles: `"user"`, `"model"`, optionally absent for system instructions. */
49
+ export interface Content {
50
+ role?: string;
51
+ parts?: Part[];
52
+ }
53
+ /** Thinking/reasoning configuration shared by Gemini 2.x and 3.x models. */
54
+ export interface ThinkingConfig {
55
+ includeThoughts?: boolean;
56
+ thinkingBudget?: number;
57
+ thinkingLevel?: ThinkingLevel;
58
+ }
59
+ /** Function declaration entry inside `tools[].functionDeclarations`. */
60
+ export interface FunctionDeclaration {
61
+ name: string;
62
+ description?: string;
63
+ parameters?: Record<string, unknown>;
64
+ parametersJsonSchema?: Record<string, unknown>;
65
+ }
66
+ /** Tool group as accepted at the request top level. */
67
+ export interface ToolDeclaration {
68
+ functionDeclarations: Record<string, unknown>[];
69
+ }
70
+ /** Tool selection mode container. */
71
+ export interface ToolConfig {
72
+ functionCallingConfig?: {
73
+ mode: FunctionCallingConfigMode;
74
+ allowedFunctionNames?: string[];
75
+ };
76
+ }
77
+ /**
78
+ * Generation/sampling and request-shape options passed via the SDK's `config`.
79
+ *
80
+ * Fields that the wire format places at the request body root (systemInstruction,
81
+ * tools, toolConfig, safetySettings, cachedContent) live here too — the
82
+ * transformer in `google-shared.ts` lifts them out when serializing.
83
+ */
84
+ export interface GenerateContentConfig {
85
+ temperature?: number;
86
+ maxOutputTokens?: number;
87
+ topP?: number;
88
+ topK?: number;
89
+ candidateCount?: number;
90
+ stopSequences?: string[];
91
+ presencePenalty?: number;
92
+ frequencyPenalty?: number;
93
+ seed?: number;
94
+ responseMimeType?: string;
95
+ responseSchema?: Record<string, unknown>;
96
+ responseJsonSchema?: Record<string, unknown>;
97
+ responseModalities?: string[];
98
+ systemInstruction?: Content | {
99
+ role?: string;
100
+ parts: {
101
+ text: string;
102
+ }[];
103
+ };
104
+ tools?: ToolDeclaration[];
105
+ toolConfig?: ToolConfig;
106
+ safetySettings?: Array<Record<string, unknown>>;
107
+ cachedContent?: string;
108
+ thinkingConfig?: ThinkingConfig;
109
+ abortSignal?: AbortSignal;
110
+ }
111
+ /** Top-level argument to `generateContentStream`. */
112
+ export interface GenerateContentParameters {
113
+ model: string;
114
+ contents: Content[];
115
+ config?: GenerateContentConfig;
116
+ }
117
+ /** Per-stream candidate envelope. */
118
+ export interface Candidate {
119
+ content?: Content;
120
+ finishReason?: FinishReason;
121
+ index?: number;
122
+ }
123
+ /** Cumulative token accounting attached to the trailing chunk. */
124
+ export interface UsageMetadata {
125
+ promptTokenCount?: number;
126
+ candidatesTokenCount?: number;
127
+ thoughtsTokenCount?: number;
128
+ totalTokenCount?: number;
129
+ cachedContentTokenCount?: number;
130
+ }
131
+ /** Single SSE chunk's parsed JSON body. */
132
+ export interface GenerateContentResponse {
133
+ candidates?: Candidate[];
134
+ usageMetadata?: UsageMetadata;
135
+ modelVersion?: string;
136
+ responseId?: string;
137
+ promptFeedback?: Record<string, unknown>;
138
+ }
@@ -0,0 +1,7 @@
1
+ import type { StreamFunction } from "../types";
2
+ import { type GoogleSharedStreamOptions } from "./google-shared";
3
+ export interface GoogleVertexOptions extends GoogleSharedStreamOptions {
4
+ project?: string;
5
+ location?: string;
6
+ }
7
+ export declare const streamGoogleVertex: StreamFunction<"google-vertex">;
@@ -0,0 +1,4 @@
1
+ import type { StreamFunction } from "../types";
2
+ import { type GoogleSharedStreamOptions } from "./google-shared";
3
+ export type GoogleOptions = GoogleSharedStreamOptions;
4
+ export declare const streamGoogle: StreamFunction<"google-generative-ai">;
@@ -0,0 +1 @@
1
+ export declare function compactGrammarDefinition(syntax: "lark" | "regex", definition: string): string;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Kimi Code provider - wraps OpenAI or Anthropic API based on format setting.
3
+ *
4
+ * Kimi offers both OpenAI-compatible and Anthropic-compatible APIs:
5
+ * - OpenAI: https://api.kimi.com/coding/v1/chat/completions
6
+ * - Anthropic: https://api.kimi.com/coding/v1/messages
7
+ *
8
+ * The Anthropic API is generally more stable and recommended.
9
+ * Note: Kimi calculates TPM rate limits based on max_tokens, not actual output.
10
+ */
11
+ import type { Api, Context, Model } from "../types";
12
+ import type { AssistantMessageEventStream } from "../utils/event-stream";
13
+ import { type OpenAIAnthropicApiFormat, type OpenAIAnthropicShimOptions } from "./openai-anthropic-shim";
14
+ export type KimiApiFormat = OpenAIAnthropicApiFormat;
15
+ export interface KimiOptions extends OpenAIAnthropicShimOptions {
16
+ /** API format: "openai" or "anthropic". Default: "anthropic" */
17
+ format?: KimiApiFormat;
18
+ }
19
+ /**
20
+ * Stream from Kimi Code, routing to either OpenAI or Anthropic API based on format.
21
+ * Returns synchronously like other providers - async header fetching happens internally.
22
+ */
23
+ export declare function streamKimi(model: Model<"openai-completions">, context: Context, options?: KimiOptions): AssistantMessageEventStream;
24
+ /**
25
+ * Check if a model is a Kimi Code model.
26
+ */
27
+ export declare function isKimiModel(model: Model<Api>): boolean;