jeopi-ai 16.2.13

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 (598) hide show
  1. package/CHANGELOG.md +4347 -0
  2. package/README.md +1193 -0
  3. package/dist/types/api-registry.d.ts +30 -0
  4. package/dist/types/auth-broker/client.d.ts +73 -0
  5. package/dist/types/auth-broker/discover.d.ts +35 -0
  6. package/dist/types/auth-broker/index.d.ts +7 -0
  7. package/dist/types/auth-broker/refresher.d.ts +25 -0
  8. package/dist/types/auth-broker/remote-store.d.ts +102 -0
  9. package/dist/types/auth-broker/server.d.ts +43 -0
  10. package/dist/types/auth-broker/snapshot-cache.d.ts +17 -0
  11. package/dist/types/auth-broker/types.d.ts +107 -0
  12. package/dist/types/auth-broker/wire-schemas.d.ts +411 -0
  13. package/dist/types/auth-gateway/http.d.ts +39 -0
  14. package/dist/types/auth-gateway/index.d.ts +3 -0
  15. package/dist/types/auth-gateway/server.d.ts +36 -0
  16. package/dist/types/auth-gateway/types.d.ts +123 -0
  17. package/dist/types/auth-retry.d.ts +124 -0
  18. package/dist/types/auth-storage.d.ts +1026 -0
  19. package/dist/types/dialect/anthropic.d.ts +15 -0
  20. package/dist/types/dialect/catalog.d.ts +3 -0
  21. package/dist/types/dialect/coercion.d.ts +23 -0
  22. package/dist/types/dialect/deepseek.d.ts +14 -0
  23. package/dist/types/dialect/demotion.d.ts +23 -0
  24. package/dist/types/dialect/examples.d.ts +2 -0
  25. package/dist/types/dialect/factory.d.ts +3 -0
  26. package/dist/types/dialect/fenced-thinking.d.ts +53 -0
  27. package/dist/types/dialect/gemini.d.ts +17 -0
  28. package/dist/types/dialect/gemma.d.ts +15 -0
  29. package/dist/types/dialect/glm.d.ts +9 -0
  30. package/dist/types/dialect/harmony.d.ts +8 -0
  31. package/dist/types/dialect/hermes.d.ts +9 -0
  32. package/dist/types/dialect/history.d.ts +3 -0
  33. package/dist/types/dialect/index.d.ts +11 -0
  34. package/dist/types/dialect/inventory.d.ts +12 -0
  35. package/dist/types/dialect/kimi.d.ts +14 -0
  36. package/dist/types/dialect/minimax.d.ts +3 -0
  37. package/dist/types/dialect/owned-stream.d.ts +4 -0
  38. package/dist/types/dialect/qwen3.d.ts +9 -0
  39. package/dist/types/dialect/rendering.d.ts +45 -0
  40. package/dist/types/dialect/thinking.d.ts +6 -0
  41. package/dist/types/dialect/types.d.ts +69 -0
  42. package/dist/types/dialect/xml.d.ts +9 -0
  43. package/dist/types/error/abort.d.ts +14 -0
  44. package/dist/types/error/auth-classify.d.ts +16 -0
  45. package/dist/types/error/auth.d.ts +27 -0
  46. package/dist/types/error/aws.d.ts +23 -0
  47. package/dist/types/error/classes.d.ts +102 -0
  48. package/dist/types/error/finalize.d.ts +39 -0
  49. package/dist/types/error/flags.d.ts +79 -0
  50. package/dist/types/error/format.d.ts +20 -0
  51. package/dist/types/error/gateway.d.ts +20 -0
  52. package/dist/types/error/index.d.ts +13 -0
  53. package/dist/types/error/oauth.d.ts +43 -0
  54. package/dist/types/error/provider.d.ts +42 -0
  55. package/dist/types/error/rate-limit.d.ts +59 -0
  56. package/dist/types/error/retryable.d.ts +27 -0
  57. package/dist/types/error/validation.d.ts +32 -0
  58. package/dist/types/index.d.ts +49 -0
  59. package/dist/types/provider-details.d.ts +24 -0
  60. package/dist/types/providers/__tests__/google-auth.test.d.ts +1 -0
  61. package/dist/types/providers/__tests__/kimi-code-thinking.test.d.ts +1 -0
  62. package/dist/types/providers/__tests__/openai-codex-error.test.d.ts +1 -0
  63. package/dist/types/providers/amazon-bedrock.d.ts +39 -0
  64. package/dist/types/providers/anthropic-client.d.ts +94 -0
  65. package/dist/types/providers/anthropic-messages-server-schema.d.ts +497 -0
  66. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  67. package/dist/types/providers/anthropic-wire.d.ts +318 -0
  68. package/dist/types/providers/anthropic.d.ts +248 -0
  69. package/dist/types/providers/aws-credentials.d.ts +53 -0
  70. package/dist/types/providers/aws-eventstream.d.ts +39 -0
  71. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  72. package/dist/types/providers/azure-openai-responses.d.ts +16 -0
  73. package/dist/types/providers/cursor.d.ts +91 -0
  74. package/dist/types/providers/devin.d.ts +12 -0
  75. package/dist/types/providers/error-message.d.ts +27 -0
  76. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  77. package/dist/types/providers/gitlab-duo-workflow.d.ts +254 -0
  78. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  79. package/dist/types/providers/google-auth.d.ts +32 -0
  80. package/dist/types/providers/google-gemini-cli.d.ts +118 -0
  81. package/dist/types/providers/google-interactions.d.ts +65 -0
  82. package/dist/types/providers/google-shared.d.ts +203 -0
  83. package/dist/types/providers/google-types.d.ts +155 -0
  84. package/dist/types/providers/google-vertex.d.ts +7 -0
  85. package/dist/types/providers/google.d.ts +4 -0
  86. package/dist/types/providers/grammar.d.ts +1 -0
  87. package/dist/types/providers/kimi.d.ts +27 -0
  88. package/dist/types/providers/mock.d.ts +178 -0
  89. package/dist/types/providers/ollama.d.ts +7 -0
  90. package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
  91. package/dist/types/providers/openai-chat-server-schema.d.ts +695 -0
  92. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  93. package/dist/types/providers/openai-chat-wire.d.ts +644 -0
  94. package/dist/types/providers/openai-codex/request-transformer.d.ts +54 -0
  95. package/dist/types/providers/openai-codex/response-handler.d.ts +26 -0
  96. package/dist/types/providers/openai-codex-responses.d.ts +108 -0
  97. package/dist/types/providers/openai-completions.d.ts +45 -0
  98. package/dist/types/providers/openai-reasoning-fallback.d.ts +25 -0
  99. package/dist/types/providers/openai-responses-server-schema.d.ts +349 -0
  100. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  101. package/dist/types/providers/openai-responses-wire.d.ts +6065 -0
  102. package/dist/types/providers/openai-responses.d.ts +126 -0
  103. package/dist/types/providers/openai-shared.d.ts +506 -0
  104. package/dist/types/providers/pi-native-client.d.ts +13 -0
  105. package/dist/types/providers/pi-native-server.d.ts +69 -0
  106. package/dist/types/providers/register-builtins.d.ts +32 -0
  107. package/dist/types/providers/synthetic.d.ts +26 -0
  108. package/dist/types/providers/transform-messages.d.ts +11 -0
  109. package/dist/types/providers/vision-guard.d.ts +20 -0
  110. package/dist/types/registry/aimlapi.d.ts +4 -0
  111. package/dist/types/registry/alibaba-coding-plan.d.ts +8 -0
  112. package/dist/types/registry/amazon-bedrock.d.ts +5 -0
  113. package/dist/types/registry/anthropic.d.ts +10 -0
  114. package/dist/types/registry/api-key-login.d.ts +42 -0
  115. package/dist/types/registry/api-key-validation.d.ts +43 -0
  116. package/dist/types/registry/azure.d.ts +4 -0
  117. package/dist/types/registry/cerebras.d.ts +7 -0
  118. package/dist/types/registry/cloudflare-ai-gateway.d.ts +13 -0
  119. package/dist/types/registry/coreweave.d.ts +7 -0
  120. package/dist/types/registry/cursor.d.ts +7 -0
  121. package/dist/types/registry/deepseek.d.ts +8 -0
  122. package/dist/types/registry/derived.d.ts +5 -0
  123. package/dist/types/registry/devin.d.ts +8 -0
  124. package/dist/types/registry/firepass.d.ts +16 -0
  125. package/dist/types/registry/fireworks.d.ts +7 -0
  126. package/dist/types/registry/github-copilot.d.ts +7 -0
  127. package/dist/types/registry/gitlab-duo-workflow.d.ts +10 -0
  128. package/dist/types/registry/gitlab-duo.d.ts +9 -0
  129. package/dist/types/registry/google-antigravity.d.ts +9 -0
  130. package/dist/types/registry/google-gemini-cli.d.ts +9 -0
  131. package/dist/types/registry/google-vertex.d.ts +5 -0
  132. package/dist/types/registry/google.d.ts +4 -0
  133. package/dist/types/registry/groq.d.ts +4 -0
  134. package/dist/types/registry/huggingface.d.ts +7 -0
  135. package/dist/types/registry/index.d.ts +4 -0
  136. package/dist/types/registry/kagi.d.ts +14 -0
  137. package/dist/types/registry/kilo.d.ts +7 -0
  138. package/dist/types/registry/kimi-code.d.ts +7 -0
  139. package/dist/types/registry/litellm.d.ts +13 -0
  140. package/dist/types/registry/llama-cpp.d.ts +8 -0
  141. package/dist/types/registry/lm-studio.d.ts +8 -0
  142. package/dist/types/registry/minimax-code-cn.d.ts +6 -0
  143. package/dist/types/registry/minimax-code.d.ts +6 -0
  144. package/dist/types/registry/minimax.d.ts +4 -0
  145. package/dist/types/registry/mistral.d.ts +4 -0
  146. package/dist/types/registry/moonshot.d.ts +7 -0
  147. package/dist/types/registry/nanogpt.d.ts +7 -0
  148. package/dist/types/registry/nvidia.d.ts +7 -0
  149. package/dist/types/registry/oauth/__tests__/xai-oauth.test.d.ts +1 -0
  150. package/dist/types/registry/oauth/anthropic.d.ts +23 -0
  151. package/dist/types/registry/oauth/callback-server.d.ts +72 -0
  152. package/dist/types/registry/oauth/cursor.d.ts +15 -0
  153. package/dist/types/registry/oauth/devin.d.ts +5 -0
  154. package/dist/types/registry/oauth/github-copilot.d.ts +30 -0
  155. package/dist/types/registry/oauth/gitlab-duo-workflow.d.ts +6 -0
  156. package/dist/types/registry/oauth/gitlab-duo.d.ts +3 -0
  157. package/dist/types/registry/oauth/google-antigravity.d.ts +11 -0
  158. package/dist/types/registry/oauth/google-gemini-cli.d.ts +10 -0
  159. package/dist/types/registry/oauth/google-oauth-shared.d.ts +22 -0
  160. package/dist/types/registry/oauth/index.d.ts +64 -0
  161. package/dist/types/registry/oauth/kimi.d.ts +21 -0
  162. package/dist/types/registry/oauth/minimax-code.d.ts +27 -0
  163. package/dist/types/registry/oauth/openai-codex.d.ts +33 -0
  164. package/dist/types/registry/oauth/opencode.d.ts +18 -0
  165. package/dist/types/registry/oauth/perplexity.d.ts +9 -0
  166. package/dist/types/registry/oauth/pkce.d.ts +8 -0
  167. package/dist/types/registry/oauth/types.d.ts +56 -0
  168. package/dist/types/registry/oauth/wafer.d.ts +1 -0
  169. package/dist/types/registry/oauth/xai-oauth.d.ts +52 -0
  170. package/dist/types/registry/oauth/xiaomi.d.ts +25 -0
  171. package/dist/types/registry/ollama-cloud.d.ts +7 -0
  172. package/dist/types/registry/ollama.d.ts +12 -0
  173. package/dist/types/registry/openai-codex-device.d.ts +8 -0
  174. package/dist/types/registry/openai-codex.d.ts +9 -0
  175. package/dist/types/registry/openai.d.ts +4 -0
  176. package/dist/types/registry/opencode-go.d.ts +6 -0
  177. package/dist/types/registry/opencode-zen.d.ts +6 -0
  178. package/dist/types/registry/openrouter.d.ts +13 -0
  179. package/dist/types/registry/parallel.d.ts +14 -0
  180. package/dist/types/registry/perplexity.d.ts +7 -0
  181. package/dist/types/registry/qianfan.d.ts +7 -0
  182. package/dist/types/registry/qwen-portal.d.ts +7 -0
  183. package/dist/types/registry/registry.d.ts +303 -0
  184. package/dist/types/registry/sakana.d.ts +7 -0
  185. package/dist/types/registry/synthetic.d.ts +6 -0
  186. package/dist/types/registry/tavily.d.ts +14 -0
  187. package/dist/types/registry/together.d.ts +6 -0
  188. package/dist/types/registry/types.d.ts +51 -0
  189. package/dist/types/registry/umans.d.ts +7 -0
  190. package/dist/types/registry/venice.d.ts +13 -0
  191. package/dist/types/registry/vercel-ai-gateway.d.ts +7 -0
  192. package/dist/types/registry/vllm.d.ts +7 -0
  193. package/dist/types/registry/wafer-serverless.d.ts +6 -0
  194. package/dist/types/registry/xai-oauth.d.ts +7 -0
  195. package/dist/types/registry/xai.d.ts +4 -0
  196. package/dist/types/registry/xiaomi-token-plan-ams.d.ts +6 -0
  197. package/dist/types/registry/xiaomi-token-plan-cn.d.ts +6 -0
  198. package/dist/types/registry/xiaomi-token-plan-sgp.d.ts +6 -0
  199. package/dist/types/registry/xiaomi.d.ts +6 -0
  200. package/dist/types/registry/zai.d.ts +7 -0
  201. package/dist/types/registry/zenmux.d.ts +7 -0
  202. package/dist/types/registry/zhipu-coding-plan.d.ts +7 -0
  203. package/dist/types/stream.d.ts +44 -0
  204. package/dist/types/types.d.ts +715 -0
  205. package/dist/types/usage/claude.d.ts +4 -0
  206. package/dist/types/usage/gemini.d.ts +2 -0
  207. package/dist/types/usage/github-copilot.d.ts +7 -0
  208. package/dist/types/usage/google-antigravity.d.ts +15 -0
  209. package/dist/types/usage/kimi.d.ts +2 -0
  210. package/dist/types/usage/minimax-code.d.ts +2 -0
  211. package/dist/types/usage/ollama.d.ts +5 -0
  212. package/dist/types/usage/openai-codex-base-url.d.ts +18 -0
  213. package/dist/types/usage/openai-codex-reset.d.ts +79 -0
  214. package/dist/types/usage/openai-codex.d.ts +3 -0
  215. package/dist/types/usage/opencode-go.d.ts +2 -0
  216. package/dist/types/usage/shared.d.ts +1 -0
  217. package/dist/types/usage/zai.d.ts +2 -0
  218. package/dist/types/usage.d.ts +346 -0
  219. package/dist/types/utils/abort.d.ts +25 -0
  220. package/dist/types/utils/anthropic-auth.d.ts +35 -0
  221. package/dist/types/utils/block-symbols.d.ts +20 -0
  222. package/dist/types/utils/deterministic-id.d.ts +16 -0
  223. package/dist/types/utils/empty-completion-retry.d.ts +21 -0
  224. package/dist/types/utils/event-stream.d.ts +30 -0
  225. package/dist/types/utils/foundry.d.ts +1 -0
  226. package/dist/types/utils/google-validation.d.ts +2 -0
  227. package/dist/types/utils/harmony-leak.d.ts +118 -0
  228. package/dist/types/utils/http-inspector.d.ts +30 -0
  229. package/dist/types/utils/idle-iterator.d.ts +137 -0
  230. package/dist/types/utils/leaked-thinking-stream.d.ts +29 -0
  231. package/dist/types/utils/openai-http.d.ts +54 -0
  232. package/dist/types/utils/openrouter-headers.d.ts +1 -0
  233. package/dist/types/utils/parse-bind.d.ts +23 -0
  234. package/dist/types/utils/provider-response.d.ts +3 -0
  235. package/dist/types/utils/proxy.d.ts +29 -0
  236. package/dist/types/utils/request-debug.d.ts +29 -0
  237. package/dist/types/utils/retry-after.d.ts +4 -0
  238. package/dist/types/utils/retry.d.ts +14 -0
  239. package/dist/types/utils/schema/adapt.d.ts +24 -0
  240. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  241. package/dist/types/utils/schema/dereference.d.ts +11 -0
  242. package/dist/types/utils/schema/draft.d.ts +10 -0
  243. package/dist/types/utils/schema/equality.d.ts +4 -0
  244. package/dist/types/utils/schema/fields.d.ts +54 -0
  245. package/dist/types/utils/schema/index.d.ts +15 -0
  246. package/dist/types/utils/schema/json-schema-validator.d.ts +20 -0
  247. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  248. package/dist/types/utils/schema/normalize.d.ts +124 -0
  249. package/dist/types/utils/schema/spill.d.ts +8 -0
  250. package/dist/types/utils/schema/stamps.d.ts +17 -0
  251. package/dist/types/utils/schema/strict-tool-validation.d.ts +16 -0
  252. package/dist/types/utils/schema/types.d.ts +4 -0
  253. package/dist/types/utils/schema/typescript.d.ts +18 -0
  254. package/dist/types/utils/schema/wire.d.ts +92 -0
  255. package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
  256. package/dist/types/utils/sdk-stream-timeout.d.ts +33 -0
  257. package/dist/types/utils/sse-debug.d.ts +5 -0
  258. package/dist/types/utils/stream-markup-healing.d.ts +87 -0
  259. package/dist/types/utils/thinking-loop.d.ts +102 -0
  260. package/dist/types/utils/tool-call-loop-guard.d.ts +26 -0
  261. package/dist/types/utils/tool-choice.d.ts +50 -0
  262. package/dist/types/utils/validation.d.ts +42 -0
  263. package/dist/types/utils.d.ts +24 -0
  264. package/package.json +139 -0
  265. package/src/api-registry.ts +109 -0
  266. package/src/auth-broker/client.ts +359 -0
  267. package/src/auth-broker/discover.ts +222 -0
  268. package/src/auth-broker/index.ts +7 -0
  269. package/src/auth-broker/refresher.ts +117 -0
  270. package/src/auth-broker/remote-store.ts +657 -0
  271. package/src/auth-broker/server.ts +646 -0
  272. package/src/auth-broker/snapshot-cache.ts +191 -0
  273. package/src/auth-broker/types.ts +130 -0
  274. package/src/auth-broker/wire-schemas.ts +249 -0
  275. package/src/auth-gateway/http.ts +194 -0
  276. package/src/auth-gateway/index.ts +3 -0
  277. package/src/auth-gateway/server.ts +802 -0
  278. package/src/auth-gateway/types.ts +151 -0
  279. package/src/auth-retry.ts +250 -0
  280. package/src/auth-storage.ts +5576 -0
  281. package/src/dialect/anthropic.md +31 -0
  282. package/src/dialect/anthropic.ts +608 -0
  283. package/src/dialect/catalog.ts +29 -0
  284. package/src/dialect/coercion.ts +136 -0
  285. package/src/dialect/deepseek.md +24 -0
  286. package/src/dialect/deepseek.ts +609 -0
  287. package/src/dialect/demotion.ts +36 -0
  288. package/src/dialect/examples.ts +33 -0
  289. package/src/dialect/factory.ts +34 -0
  290. package/src/dialect/fenced-thinking.ts +184 -0
  291. package/src/dialect/gemini.md +44 -0
  292. package/src/dialect/gemini.ts +597 -0
  293. package/src/dialect/gemma.md +33 -0
  294. package/src/dialect/gemma.ts +387 -0
  295. package/src/dialect/glm.md +32 -0
  296. package/src/dialect/glm.ts +456 -0
  297. package/src/dialect/harmony.md +31 -0
  298. package/src/dialect/harmony.ts +346 -0
  299. package/src/dialect/hermes.md +25 -0
  300. package/src/dialect/hermes.ts +206 -0
  301. package/src/dialect/history.ts +81 -0
  302. package/src/dialect/index.ts +15 -0
  303. package/src/dialect/inventory.ts +73 -0
  304. package/src/dialect/kimi.md +24 -0
  305. package/src/dialect/kimi.ts +340 -0
  306. package/src/dialect/minimax.md +31 -0
  307. package/src/dialect/minimax.ts +95 -0
  308. package/src/dialect/owned-stream.ts +470 -0
  309. package/src/dialect/prompt-template.md +12 -0
  310. package/src/dialect/qwen3.md +28 -0
  311. package/src/dialect/qwen3.ts +240 -0
  312. package/src/dialect/rendering.ts +249 -0
  313. package/src/dialect/thinking.ts +122 -0
  314. package/src/dialect/types.ts +57 -0
  315. package/src/dialect/xml.md +22 -0
  316. package/src/dialect/xml.ts +90 -0
  317. package/src/error/abort.ts +18 -0
  318. package/src/error/auth-classify.ts +30 -0
  319. package/src/error/auth.ts +48 -0
  320. package/src/error/aws.ts +31 -0
  321. package/src/error/classes.ts +186 -0
  322. package/src/error/finalize.ts +69 -0
  323. package/src/error/flags.ts +506 -0
  324. package/src/error/format.ts +45 -0
  325. package/src/error/gateway.ts +96 -0
  326. package/src/error/index.ts +13 -0
  327. package/src/error/oauth.ts +58 -0
  328. package/src/error/provider.ts +62 -0
  329. package/src/error/rate-limit.ts +161 -0
  330. package/src/error/retryable.ts +70 -0
  331. package/src/error/validation.ts +44 -0
  332. package/src/index.ts +49 -0
  333. package/src/provider-details.ts +90 -0
  334. package/src/providers/__tests__/google-auth.test.ts +144 -0
  335. package/src/providers/__tests__/kimi-code-thinking.test.ts +112 -0
  336. package/src/providers/__tests__/openai-codex-error.test.ts +84 -0
  337. package/src/providers/amazon-bedrock.ts +1042 -0
  338. package/src/providers/anthropic-client.ts +295 -0
  339. package/src/providers/anthropic-messages-server-schema.ts +252 -0
  340. package/src/providers/anthropic-messages-server.ts +756 -0
  341. package/src/providers/anthropic-wire.ts +318 -0
  342. package/src/providers/anthropic.ts +4078 -0
  343. package/src/providers/aws-credentials.ts +586 -0
  344. package/src/providers/aws-eventstream.ts +181 -0
  345. package/src/providers/aws-sigv4.ts +218 -0
  346. package/src/providers/azure-openai-responses.ts +382 -0
  347. package/src/providers/cursor/proto/agent.proto +3526 -0
  348. package/src/providers/cursor/proto/buf.gen.yaml +6 -0
  349. package/src/providers/cursor/proto/buf.yaml +17 -0
  350. package/src/providers/cursor.ts +2695 -0
  351. package/src/providers/devin/proto/buf/validate/validate.proto +468 -0
  352. package/src/providers/devin/proto/buf.gen.yaml +33 -0
  353. package/src/providers/devin/proto/buf.yaml +17 -0
  354. package/src/providers/devin/proto/cel/expr/checked.proto +103 -0
  355. package/src/providers/devin/proto/cel/expr/eval.proto +38 -0
  356. package/src/providers/devin/proto/cel/expr/explain.proto +15 -0
  357. package/src/providers/devin/proto/cel/expr/syntax.proto +113 -0
  358. package/src/providers/devin/proto/cel/expr/value.proto +41 -0
  359. package/src/providers/devin/proto/connectext/grpc/status/v1/status.proto +11 -0
  360. package/src/providers/devin/proto/errorspb/errors.proto +56 -0
  361. package/src/providers/devin/proto/errorspb/hintdetail.proto +7 -0
  362. package/src/providers/devin/proto/errorspb/markers.proto +10 -0
  363. package/src/providers/devin/proto/errorspb/tags.proto +12 -0
  364. package/src/providers/devin/proto/errorspb/testing.proto +6 -0
  365. package/src/providers/devin/proto/exa/analytics_pb/analytics.proto +188 -0
  366. package/src/providers/devin/proto/exa/api_server_pb/api_server.proto +2461 -0
  367. package/src/providers/devin/proto/exa/auth_pb/auth.proto +19 -0
  368. package/src/providers/devin/proto/exa/auto_cascade_common_pb/auto_cascade_common.proto +79 -0
  369. package/src/providers/devin/proto/exa/browser_preview_pb/browser_preview.proto +32 -0
  370. package/src/providers/devin/proto/exa/bug_checker_pb/bug_checker.proto +22 -0
  371. package/src/providers/devin/proto/exa/cascade_plugins_pb/cascade_plugins.proto +262 -0
  372. package/src/providers/devin/proto/exa/chat_client_server_pb/chat_client_server.proto +57 -0
  373. package/src/providers/devin/proto/exa/chat_pb/chat.proto +449 -0
  374. package/src/providers/devin/proto/exa/code_edit/code_edit_pb/code_edit.proto +186 -0
  375. package/src/providers/devin/proto/exa/codeium_common_pb/codeium_common.proto +4157 -0
  376. package/src/providers/devin/proto/exa/context_module_pb/context_module.proto +175 -0
  377. package/src/providers/devin/proto/exa/cortex_pb/cortex.proto +3268 -0
  378. package/src/providers/devin/proto/exa/dev_pb/dev.proto +26 -0
  379. package/src/providers/devin/proto/exa/diff_action_pb/diff_action.proto +75 -0
  380. package/src/providers/devin/proto/exa/eval/pr_eval/datasets_pb/datasets.proto +103 -0
  381. package/src/providers/devin/proto/exa/eval_pb/eval.proto +1315 -0
  382. package/src/providers/devin/proto/exa/extension_server_pb/extension_server.proto +556 -0
  383. package/src/providers/devin/proto/exa/file_system_provider_pb/file_system_provider.proto +75 -0
  384. package/src/providers/devin/proto/exa/index_pb/index.proto +461 -0
  385. package/src/providers/devin/proto/exa/knowledge_base_pb/knowledge_base.proto +144 -0
  386. package/src/providers/devin/proto/exa/language_server_pb/language_server.proto +2385 -0
  387. package/src/providers/devin/proto/exa/model_management_pb/model_management.proto +186 -0
  388. package/src/providers/devin/proto/exa/opensearch_clients_pb/opensearch_clients.proto +503 -0
  389. package/src/providers/devin/proto/exa/product_analytics_pb/product_analytics.proto +37 -0
  390. package/src/providers/devin/proto/exa/prompt_pb/prompt.proto +92 -0
  391. package/src/providers/devin/proto/exa/reactive_component_pb/reactive_component.proto +96 -0
  392. package/src/providers/devin/proto/exa/seat_management_pb/seat_management.proto +2680 -0
  393. package/src/providers/devin/proto/exa/tokenizer_pb/tokenizer.proto +37 -0
  394. package/src/providers/devin/proto/exa/trainer_pb/config.proto +647 -0
  395. package/src/providers/devin/proto/exa/tree_sitter/language_data_pb/language_data.proto +14 -0
  396. package/src/providers/devin/proto/exa/trust_pb/trust.proto +157 -0
  397. package/src/providers/devin/proto/exa/user_analytics_pb/user_analytics.proto +519 -0
  398. package/src/providers/devin/proto/google.golang.org/appengine/internal/base/api_base.proto +28 -0
  399. package/src/providers/devin/proto/google.golang.org/appengine/internal/datastore/datastore_v3.proto +484 -0
  400. package/src/providers/devin/proto/google.golang.org/appengine/internal/log/log_service.proto +136 -0
  401. package/src/providers/devin/proto/google.golang.org/appengine/internal/remote_api/remote_api.proto +42 -0
  402. package/src/providers/devin/proto/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +61 -0
  403. package/src/providers/devin/proto/grpc/binlog/v1/binarylog.proto +84 -0
  404. package/src/providers/devin/proto/io/prometheus/client/metrics.proto +98 -0
  405. package/src/providers/devin.ts +577 -0
  406. package/src/providers/error-message.ts +21 -0
  407. package/src/providers/github-copilot-headers.ts +141 -0
  408. package/src/providers/gitlab-duo-workflow-chatml-note.md +1 -0
  409. package/src/providers/gitlab-duo-workflow.ts +3058 -0
  410. package/src/providers/gitlab-duo.ts +395 -0
  411. package/src/providers/google-auth.ts +350 -0
  412. package/src/providers/google-gemini-cli.ts +1362 -0
  413. package/src/providers/google-interactions.ts +753 -0
  414. package/src/providers/google-shared.ts +1103 -0
  415. package/src/providers/google-types.ts +180 -0
  416. package/src/providers/google-vertex.ts +183 -0
  417. package/src/providers/google.ts +87 -0
  418. package/src/providers/grammar.ts +70 -0
  419. package/src/providers/kimi.ts +52 -0
  420. package/src/providers/mock.ts +507 -0
  421. package/src/providers/ollama.ts +773 -0
  422. package/src/providers/openai-anthropic-shim.ts +152 -0
  423. package/src/providers/openai-chat-server-schema.ts +242 -0
  424. package/src/providers/openai-chat-server.ts +715 -0
  425. package/src/providers/openai-chat-wire.ts +847 -0
  426. package/src/providers/openai-codex/request-transformer.ts +295 -0
  427. package/src/providers/openai-codex/response-handler.ts +102 -0
  428. package/src/providers/openai-codex-responses.ts +3468 -0
  429. package/src/providers/openai-completions.ts +2173 -0
  430. package/src/providers/openai-reasoning-fallback.ts +269 -0
  431. package/src/providers/openai-responses-reasoning-suppression.md +1 -0
  432. package/src/providers/openai-responses-server-schema.ts +282 -0
  433. package/src/providers/openai-responses-server.ts +1280 -0
  434. package/src/providers/openai-responses-wire.ts +6391 -0
  435. package/src/providers/openai-responses.ts +1022 -0
  436. package/src/providers/openai-shared.ts +2648 -0
  437. package/src/providers/pi-native-client.ts +266 -0
  438. package/src/providers/pi-native-server.ts +242 -0
  439. package/src/providers/register-builtins.ts +475 -0
  440. package/src/providers/synthetic.ts +50 -0
  441. package/src/providers/transform-messages.ts +787 -0
  442. package/src/providers/vision-guard.ts +54 -0
  443. package/src/registry/aimlapi.ts +6 -0
  444. package/src/registry/alibaba-coding-plan.ts +95 -0
  445. package/src/registry/amazon-bedrock.ts +22 -0
  446. package/src/registry/anthropic.ts +26 -0
  447. package/src/registry/api-key-login.ts +112 -0
  448. package/src/registry/api-key-validation.ts +161 -0
  449. package/src/registry/azure.ts +6 -0
  450. package/src/registry/cerebras.ts +23 -0
  451. package/src/registry/cloudflare-ai-gateway.ts +45 -0
  452. package/src/registry/coreweave.ts +40 -0
  453. package/src/registry/cursor.ts +20 -0
  454. package/src/registry/deepseek.ts +46 -0
  455. package/src/registry/derived.ts +9 -0
  456. package/src/registry/devin.ts +15 -0
  457. package/src/registry/firepass.ts +32 -0
  458. package/src/registry/fireworks.ts +28 -0
  459. package/src/registry/github-copilot.ts +22 -0
  460. package/src/registry/gitlab-duo-workflow.ts +20 -0
  461. package/src/registry/gitlab-duo.ts +19 -0
  462. package/src/registry/google-antigravity.ts +22 -0
  463. package/src/registry/google-gemini-cli.ts +22 -0
  464. package/src/registry/google-vertex.ts +38 -0
  465. package/src/registry/google.ts +6 -0
  466. package/src/registry/groq.ts +6 -0
  467. package/src/registry/huggingface.ts +29 -0
  468. package/src/registry/index.ts +4 -0
  469. package/src/registry/kagi.ts +46 -0
  470. package/src/registry/kilo.ts +114 -0
  471. package/src/registry/kimi-code.ts +17 -0
  472. package/src/registry/litellm.ts +45 -0
  473. package/src/registry/llama-cpp.ts +35 -0
  474. package/src/registry/lm-studio.ts +31 -0
  475. package/src/registry/minimax-code-cn.ts +12 -0
  476. package/src/registry/minimax-code.ts +12 -0
  477. package/src/registry/minimax.ts +6 -0
  478. package/src/registry/mistral.ts +6 -0
  479. package/src/registry/moonshot.ts +22 -0
  480. package/src/registry/nanogpt.ts +22 -0
  481. package/src/registry/nvidia.ts +61 -0
  482. package/src/registry/oauth/__tests__/xai-oauth.test.ts +104 -0
  483. package/src/registry/oauth/anthropic.ts +311 -0
  484. package/src/registry/oauth/callback-server.ts +315 -0
  485. package/src/registry/oauth/cursor.ts +171 -0
  486. package/src/registry/oauth/devin.ts +124 -0
  487. package/src/registry/oauth/github-copilot.ts +369 -0
  488. package/src/registry/oauth/gitlab-duo-workflow.ts +146 -0
  489. package/src/registry/oauth/gitlab-duo.ts +222 -0
  490. package/src/registry/oauth/google-antigravity.ts +209 -0
  491. package/src/registry/oauth/google-gemini-cli.ts +273 -0
  492. package/src/registry/oauth/google-oauth-shared.ts +125 -0
  493. package/src/registry/oauth/index.ts +269 -0
  494. package/src/registry/oauth/kimi.ts +289 -0
  495. package/src/registry/oauth/minimax-code.ts +53 -0
  496. package/src/registry/oauth/oauth.html +311 -0
  497. package/src/registry/oauth/openai-codex.ts +364 -0
  498. package/src/registry/oauth/opencode.ts +50 -0
  499. package/src/registry/oauth/perplexity.ts +228 -0
  500. package/src/registry/oauth/pkce.ts +18 -0
  501. package/src/registry/oauth/types.ts +65 -0
  502. package/src/registry/oauth/wafer.ts +24 -0
  503. package/src/registry/oauth/xai-oauth.ts +394 -0
  504. package/src/registry/oauth/xiaomi.ts +211 -0
  505. package/src/registry/ollama-cloud.ts +36 -0
  506. package/src/registry/ollama.ts +43 -0
  507. package/src/registry/openai-codex-device.ts +18 -0
  508. package/src/registry/openai-codex.ts +19 -0
  509. package/src/registry/openai.ts +6 -0
  510. package/src/registry/opencode-go.ts +12 -0
  511. package/src/registry/opencode-zen.ts +12 -0
  512. package/src/registry/openrouter.ts +28 -0
  513. package/src/registry/parallel.ts +45 -0
  514. package/src/registry/perplexity.ts +13 -0
  515. package/src/registry/qianfan.ts +27 -0
  516. package/src/registry/qwen-portal.ts +50 -0
  517. package/src/registry/registry.ts +161 -0
  518. package/src/registry/sakana.ts +22 -0
  519. package/src/registry/synthetic.ts +21 -0
  520. package/src/registry/tavily.ts +45 -0
  521. package/src/registry/together.ts +22 -0
  522. package/src/registry/types.ts +56 -0
  523. package/src/registry/umans.ts +23 -0
  524. package/src/registry/venice.ts +33 -0
  525. package/src/registry/vercel-ai-gateway.ts +38 -0
  526. package/src/registry/vllm.ts +34 -0
  527. package/src/registry/wafer-serverless.ts +12 -0
  528. package/src/registry/xai-oauth.ts +17 -0
  529. package/src/registry/xai.ts +6 -0
  530. package/src/registry/xiaomi-token-plan-ams.ts +12 -0
  531. package/src/registry/xiaomi-token-plan-cn.ts +12 -0
  532. package/src/registry/xiaomi-token-plan-sgp.ts +12 -0
  533. package/src/registry/xiaomi.ts +12 -0
  534. package/src/registry/zai.ts +27 -0
  535. package/src/registry/zenmux.ts +22 -0
  536. package/src/registry/zhipu-coding-plan.ts +27 -0
  537. package/src/stream.ts +1778 -0
  538. package/src/types.ts +856 -0
  539. package/src/usage/claude.ts +485 -0
  540. package/src/usage/gemini.ts +258 -0
  541. package/src/usage/github-copilot.ts +424 -0
  542. package/src/usage/google-antigravity.ts +497 -0
  543. package/src/usage/kimi.ts +271 -0
  544. package/src/usage/minimax-code.ts +30 -0
  545. package/src/usage/ollama.ts +41 -0
  546. package/src/usage/openai-codex-base-url.ts +35 -0
  547. package/src/usage/openai-codex-reset.ts +174 -0
  548. package/src/usage/openai-codex.ts +535 -0
  549. package/src/usage/opencode-go.ts +89 -0
  550. package/src/usage/shared.ts +10 -0
  551. package/src/usage/zai.ts +321 -0
  552. package/src/usage.ts +333 -0
  553. package/src/utils/abort.ts +67 -0
  554. package/src/utils/anthropic-auth.ts +93 -0
  555. package/src/utils/block-symbols.ts +32 -0
  556. package/src/utils/deterministic-id.ts +20 -0
  557. package/src/utils/empty-completion-retry.ts +159 -0
  558. package/src/utils/event-stream.ts +171 -0
  559. package/src/utils/foundry.ts +8 -0
  560. package/src/utils/google-validation.ts +25 -0
  561. package/src/utils/harmony-leak.ts +456 -0
  562. package/src/utils/http-inspector.ts +168 -0
  563. package/src/utils/idle-iterator.ts +473 -0
  564. package/src/utils/leaked-thinking-stream.ts +294 -0
  565. package/src/utils/openai-http.ts +122 -0
  566. package/src/utils/openrouter-headers.ts +12 -0
  567. package/src/utils/parse-bind.ts +56 -0
  568. package/src/utils/provider-response.ts +30 -0
  569. package/src/utils/proxy.ts +240 -0
  570. package/src/utils/request-debug.ts +351 -0
  571. package/src/utils/retry-after.ts +110 -0
  572. package/src/utils/retry.ts +59 -0
  573. package/src/utils/schema/CONSTRAINTS.md +166 -0
  574. package/src/utils/schema/adapt.ts +36 -0
  575. package/src/utils/schema/compatibility.ts +435 -0
  576. package/src/utils/schema/dereference.ts +98 -0
  577. package/src/utils/schema/draft.ts +341 -0
  578. package/src/utils/schema/equality.ts +97 -0
  579. package/src/utils/schema/fields.ts +207 -0
  580. package/src/utils/schema/index.ts +15 -0
  581. package/src/utils/schema/json-schema-validator.ts +595 -0
  582. package/src/utils/schema/meta-validator.ts +167 -0
  583. package/src/utils/schema/normalize.ts +1901 -0
  584. package/src/utils/schema/spill.ts +43 -0
  585. package/src/utils/schema/stamps.ts +109 -0
  586. package/src/utils/schema/strict-tool-validation.ts +117 -0
  587. package/src/utils/schema/types.ts +10 -0
  588. package/src/utils/schema/typescript.ts +198 -0
  589. package/src/utils/schema/wire.ts +789 -0
  590. package/src/utils/schema/zod-decontaminate.ts +331 -0
  591. package/src/utils/sdk-stream-timeout.ts +43 -0
  592. package/src/utils/sse-debug.ts +18 -0
  593. package/src/utils/stream-markup-healing.ts +247 -0
  594. package/src/utils/thinking-loop.ts +552 -0
  595. package/src/utils/tool-call-loop-guard.ts +107 -0
  596. package/src/utils/tool-choice.ts +99 -0
  597. package/src/utils/validation.ts +1507 -0
  598. package/src/utils.ts +171 -0
@@ -0,0 +1,118 @@
1
+ import type { Context, Model, ProviderSessionState, 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
+ * Explicit wire suppression when `enabled` is false. Cloud Code Assist
34
+ * re-applies the per-id baked server default when thinkingConfig is
35
+ * omitted, so models with `thinking.suppressWhenOff` must send
36
+ * `includeThoughts: false` plus a MINIMAL level (or zero budget).
37
+ */
38
+ suppress?: {
39
+ level: GoogleThinkingLevel;
40
+ } | {
41
+ budget: number;
42
+ };
43
+ };
44
+ /**
45
+ * Upstream wire model id override for collapsed effort-tier variants.
46
+ * Serialized as `requestModelId ?? model.requestModelId ?? model.id`.
47
+ */
48
+ requestModelId?: string;
49
+ projectId?: string;
50
+ /** Antigravity endpoint routing mode: "auto" (default with failover), "production", "sandbox". */
51
+ antigravityEndpointMode?: "auto" | "production" | "sandbox";
52
+ providerSessionState?: Map<string, ProviderSessionState>;
53
+ }
54
+ export interface AntigravityProviderSessionState extends ProviderSessionState {
55
+ lastGoodEndpoint?: string;
56
+ /**
57
+ * Per-conversation request-envelope identity that mirrors the real
58
+ * Antigravity client. `sessionId` is the signed-decimal session id;
59
+ * `agentId`/`trajectoryId` are UUIDs; `stepIndex` is the monotonic step
60
+ * counter; `lastExecutionId` is the prior response id echoed as
61
+ * `labels.last_execution_id`.
62
+ */
63
+ agentId?: string;
64
+ trajectoryId?: string;
65
+ sessionId?: string;
66
+ stepIndex?: number;
67
+ lastExecutionId?: string;
68
+ }
69
+ export declare function getAntigravityProviderSessionState(providerSessionState: Map<string, ProviderSessionState> | undefined): AntigravityProviderSessionState | undefined;
70
+ export { ANTIGRAVITY_SYSTEM_INSTRUCTION, getAntigravityUserAgent, getGeminiCliHeaders, getGeminiCliUserAgent, } from "jeopi-catalog/wire/gemini-headers";
71
+ interface ParsedGeminiCliCredentials {
72
+ accessToken: string;
73
+ projectId: string;
74
+ refreshToken?: string;
75
+ expiresAt?: number;
76
+ email?: string;
77
+ }
78
+ export declare function parseGeminiCliCredentials(apiKeyRaw: string): ParsedGeminiCliCredentials;
79
+ export declare function shouldRefreshGeminiCliCredentials(expiresAt: number | undefined, isAntigravity: boolean, nowMs?: number): boolean;
80
+ interface CloudCodeAssistRequest {
81
+ project: string;
82
+ model: string;
83
+ request: {
84
+ contents: Content[];
85
+ sessionId?: string;
86
+ systemInstruction?: {
87
+ role?: string;
88
+ parts: {
89
+ text: string;
90
+ }[];
91
+ };
92
+ generationConfig?: {
93
+ maxOutputTokens?: number;
94
+ temperature?: number;
95
+ topP?: number;
96
+ topK?: number;
97
+ minP?: number;
98
+ presencePenalty?: number;
99
+ repetitionPenalty?: number;
100
+ thinkingConfig?: ThinkingConfig;
101
+ };
102
+ tools?: {
103
+ functionDeclarations: Record<string, unknown>[];
104
+ }[] | undefined;
105
+ toolConfig?: {
106
+ functionCallingConfig: {
107
+ mode: FunctionCallingConfigMode;
108
+ allowedFunctionNames?: string[];
109
+ };
110
+ };
111
+ labels?: Record<string, string>;
112
+ };
113
+ requestType?: string;
114
+ userAgent?: string;
115
+ requestId?: string;
116
+ }
117
+ export declare const streamGoogleGeminiCli: StreamFunction<"google-gemini-cli">;
118
+ export declare function buildRequest(model: Model<"google-gemini-cli">, context: Context, projectId: string, options?: GoogleGeminiCliOptions, isAntigravity?: boolean): CloudCodeAssistRequest;
@@ -0,0 +1,65 @@
1
+ import type { Context, FetchImpl, Model, ProviderSessionState } from "../types";
2
+ import { AssistantMessageEventStream } from "../utils/event-stream";
3
+ import { type GoogleSharedStreamOptions } from "./google-shared";
4
+ type GoogleInteractionsApi = "google-generative-ai" | "google-vertex";
5
+ /** Provider session state storing the last Gemini Interactions response id. */
6
+ export interface GoogleInteractionsProviderSessionState extends ProviderSessionState {
7
+ lastInteractionId?: string;
8
+ }
9
+ /** Conversation anchor for continuing an Interactions turn from a prior assistant response. */
10
+ export interface InteractionAnchor {
11
+ id?: string;
12
+ messageIndex?: number;
13
+ }
14
+ /** Provider-specific URL, headers, and fetch implementation for an Interactions request. */
15
+ export interface GoogleInteractionsPlan {
16
+ url: string;
17
+ headers: Record<string, string>;
18
+ fetch?: FetchImpl;
19
+ }
20
+ /**
21
+ * Streams Gemini Interactions API model-mode responses for direct Google and Vertex providers.
22
+ *
23
+ * `fallback`, when supplied, is the legacy `:streamGenerateContent` stream factory. It runs
24
+ * transparently — forwarding its events into this stream — when the Interactions attempt fails
25
+ * before any content is emitted with a signal that the model/endpoint does not support
26
+ * Interactions (HTTP 404/400). Provide it only for auto-selected Interactions requests so an
27
+ * explicit `useInteractionsApi: true` still surfaces failures.
28
+ */
29
+ export declare function streamGoogleInteractions<T extends GoogleInteractionsApi>(args: {
30
+ model: Model<T>;
31
+ context: Context;
32
+ options: GoogleSharedStreamOptions | undefined;
33
+ api: T;
34
+ anchor: InteractionAnchor;
35
+ state: GoogleInteractionsProviderSessionState | undefined;
36
+ prepare: () => GoogleInteractionsPlan | Promise<GoogleInteractionsPlan>;
37
+ fallback?: () => AssistantMessageEventStream;
38
+ }): AssistantMessageEventStream;
39
+ /**
40
+ * Whether a model is served by the Gemini Interactions API. Interactions is a Gemini 3-era
41
+ * transport, so the catalog subset that supports it is Gemini 3.0+. Older Gemini and non-Gemini
42
+ * ids keep `:streamGenerateContent`, which covers the full catalog.
43
+ */
44
+ export declare function modelSupportsInteractions(model: Pick<Model, "id">): boolean;
45
+ /**
46
+ * Resolves whether a Google provider call should use Interactions and which lineage anchor to send.
47
+ *
48
+ * Precedence: explicit `useInteractionsApi: false` always wins (force generateContent); otherwise
49
+ * Interactions engages when explicitly requested, when continuing a stored interaction
50
+ * (`previousInteractionId`/assistant lineage/session state), or when `autoEligible` (the
51
+ * zero-config default for the capable model subset on the official endpoint). `auto` flags the
52
+ * last case for the caller — it is the only mode that wires up the generateContent fallback.
53
+ */
54
+ export declare function resolveInteractionDispatch(args: {
55
+ context: Context;
56
+ options: GoogleSharedStreamOptions | undefined;
57
+ provider: string;
58
+ autoEligible: boolean;
59
+ }): {
60
+ useInteractions: boolean;
61
+ auto: boolean;
62
+ anchor: InteractionAnchor;
63
+ state: GoogleInteractionsProviderSessionState | undefined;
64
+ };
65
+ export {};
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Shared utilities for Google Generative AI and Google Cloud Code Assist providers.
3
+ */
4
+ import type { AssistantMessage, Context, FetchImpl, Model, ServiceTier, 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
+ /** Gemini/Vertex serving tier (`flex`/`priority`); other values are omitted. */
37
+ serviceTier?: ServiceTier;
38
+ /**
39
+ * Continues a Gemini Interactions API conversation from a stored interaction.
40
+ * When set on the direct Google provider, the request uses `/interactions`
41
+ * with `previous_interaction_id` instead of the legacy generateContent stream.
42
+ */
43
+ previousInteractionId?: string;
44
+ /**
45
+ * Uses the Gemini Interactions API for direct Google requests, storing the
46
+ * returned interaction id on the assistant response for follow-up turns.
47
+ */
48
+ useInteractionsApi?: boolean;
49
+ /** Overrides Interactions API request storage; default is the API default (`true`). */
50
+ storeInteraction?: boolean;
51
+ }
52
+ /**
53
+ * Determines whether a streamed Gemini `Part` should be treated as "thinking".
54
+ *
55
+ * Protocol note (Gemini / Vertex AI thought signatures):
56
+ * - `thought: true` is the definitive marker for thinking content (thought summaries).
57
+ * - `thoughtSignature` is an encrypted representation of the model's internal thought process
58
+ * used to preserve reasoning context across multi-turn interactions.
59
+ * - `thoughtSignature` can appear on ANY part type (text, functionCall, etc.) - it does NOT
60
+ * indicate the part itself is thinking content.
61
+ * - For non-functionCall responses, the signature appears on the last part for context replay.
62
+ * - When persisting/replaying model outputs, signature-bearing parts must be preserved as-is;
63
+ * do not merge/move signatures across parts.
64
+ *
65
+ * See: https://ai.google.dev/gemini-api/docs/thought-signatures
66
+ */
67
+ export declare function isThinkingPart(part: Pick<Part, "thought" | "thoughtSignature">): boolean;
68
+ /**
69
+ * Retain thought signatures during streaming.
70
+ *
71
+ * Some backends only send `thoughtSignature` on the first delta for a given part/block; later deltas may omit it.
72
+ * This helper preserves the last non-empty signature for the current block.
73
+ *
74
+ * Note: this does NOT merge or move signatures across distinct response parts. It only prevents
75
+ * a signature from being overwritten with `undefined` within the same streamed block.
76
+ */
77
+ export declare function retainThoughtSignature(existing: string | undefined, incoming: string | undefined): string | undefined;
78
+ /**
79
+ * Convert internal messages to Gemini Content[] format.
80
+ */
81
+ export declare function convertMessages<T extends GoogleApiType>(model: Model<T>, context: Context): Content[];
82
+ /**
83
+ * Convert tools to Gemini function declarations format.
84
+ *
85
+ * We prefer `parametersJsonSchema` (full JSON Schema: anyOf/oneOf/const/etc.).
86
+ *
87
+ * Claude models via Cloud Code Assist require the legacy `parameters` field; the API
88
+ * translates it into Anthropic's `input_schema`. When using that path, we sanitize the
89
+ * schema to remove Google-unsupported JSON Schema keywords.
90
+ */
91
+ export declare function convertTools(tools: Tool[], model: Model<"google-generative-ai" | "google-gemini-cli" | "google-vertex">): {
92
+ functionDeclarations: Record<string, unknown>[];
93
+ }[] | undefined;
94
+ /**
95
+ * Map tool choice string to Gemini FunctionCallingConfigMode.
96
+ */
97
+ export declare function mapToolChoice(choice: string): FunctionCallingConfigMode;
98
+ /**
99
+ * Map Gemini FinishReason to our StopReason.
100
+ */
101
+ export declare function mapStopReason(reason: FinishReason): StopReason;
102
+ /**
103
+ * Map string finish reason to our StopReason (for raw API responses).
104
+ */
105
+ export declare function mapStopReasonString(reason: string): StopReason;
106
+ /**
107
+ * Bounded retries for the well-known Gemini "empty response" failure: a benign
108
+ * `finishReason: STOP` carrying only an empty/whitespace text part and no tool call.
109
+ * Shared by the public/Vertex `streamGoogleGenAI` path and the Cloud Code Assist
110
+ * (`google-gemini-cli`/`google-antigravity`) provider so both apply the same policy.
111
+ */
112
+ export declare const MAX_EMPTY_STREAM_RETRIES = 2;
113
+ export declare const EMPTY_STREAM_BASE_DELAY_MS = 500;
114
+ /**
115
+ * Whether a completed Google assistant message carries content worth delivering.
116
+ *
117
+ * A tool call or any non-whitespace text counts as meaningful. An empty/whitespace-only
118
+ * text part — or thinking that never produced an answer — is the "empty response" failure:
119
+ * delivered as-is the agent loop has nothing to act on and silently halts, so the request
120
+ * must be retried instead of surfaced.
121
+ */
122
+ export declare function hasMeaningfulGoogleContent(output: AssistantMessage): boolean;
123
+ export declare function nextToolCallId(name: string): string;
124
+ /**
125
+ * Push the appropriate `text_end` / `thinking_end` event for the given block.
126
+ * Shared between the SDK-backed stream consumer and the gemini-cli SSE consumer so
127
+ * the end-of-block event shape stays in lockstep.
128
+ */
129
+ export declare function pushBlockEndEvent(block: TextContent | ThinkingContent, contentIndex: number, output: AssistantMessage, stream: AssistantMessageEventStream): void;
130
+ /**
131
+ * Push the three lifecycle events (`toolcall_start` / `toolcall_delta` / `toolcall_end`) for a
132
+ * fully-assembled `ToolCall`. Caller is responsible for appending the toolCall to `output.content`
133
+ * before invoking — this helper does not mutate `output.content`.
134
+ */
135
+ export declare function pushToolCallEvents(toolCall: ToolCall, contentIndex: number, output: AssistantMessage, stream: AssistantMessageEventStream): void;
136
+ /**
137
+ * Append a new text- or thinking-block to `output.content` and push the matching
138
+ * `text_start` / `thinking_start` event. `onBeforeStartEvent` lets the SSE consumer
139
+ * inject its `ensureStarted()` first-token side effect into the canonical event order.
140
+ */
141
+ export declare function startTextOrThinkingBlock(isThinking: true, output: AssistantMessage, stream: AssistantMessageEventStream, onBeforeStartEvent?: () => void): ThinkingContent;
142
+ export declare function startTextOrThinkingBlock(isThinking: false, output: AssistantMessage, stream: AssistantMessageEventStream, onBeforeStartEvent?: () => void): TextContent;
143
+ export declare function startTextOrThinkingBlock(isThinking: boolean, output: AssistantMessage, stream: AssistantMessageEventStream, onBeforeStartEvent?: () => void): TextContent | ThinkingContent;
144
+ /**
145
+ * Drives the chunked `generateContentStream` iterator into an `AssistantMessage` and
146
+ * the corresponding `AssistantMessageEventStream`. Shared between `streamGoogle` and
147
+ * `streamGoogleVertex` — every observable event order and stop-reason rule is preserved.
148
+ *
149
+ * The caller still owns: `output` construction, timing fields (`duration`/`ttft`),
150
+ * `rawRequestDump`, the `client.models.generateContentStream(params)` call itself,
151
+ * pushing `start`/`done`/`error` events, and the surrounding try/catch that translates
152
+ * thrown errors into `output.stopReason`/`errorMessage`.
153
+ *
154
+ * This helper handles: the chunk loop, currentBlock flush transitions, usage metadata
155
+ * decoding (`calculateCost` included), tool-call id collision avoidance, finish-reason
156
+ * mapping, and the abort/stop-reason post-checks that re-throw to bubble into the
157
+ * caller's catch.
158
+ */
159
+ export declare function consumeGoogleStream<T extends GoogleApiType>(args: {
160
+ googleStream: AsyncIterable<GenerateContentResponse>;
161
+ output: AssistantMessage;
162
+ stream: AssistantMessageEventStream;
163
+ model: Model<T>;
164
+ options: {
165
+ signal?: AbortSignal;
166
+ } | undefined;
167
+ /** Vertex preserves `textSignature` on streamed text deltas; google-generative-ai does not. */
168
+ retainTextSignature?: boolean;
169
+ onFirstToken?: () => void;
170
+ }): Promise<void>;
171
+ /**
172
+ * Build the `GenerateContentParameters` payload for the public Gemini API and Vertex AI.
173
+ * Both surfaces accept the same `GenerateContentConfig` shape — every numeric/string knob,
174
+ * tool-config, thinking-config, and system-instruction conversion is identical.
175
+ *
176
+ * `google-gemini-cli` is NOT routed through here: its `CloudCodeAssistRequest` body has a
177
+ * distinct top-level shape (project/request/requestType) and a different thinking-config
178
+ * placement on `generationConfig`.
179
+ */
180
+ export declare function buildGoogleGenerateContentParams<T extends "google-generative-ai" | "google-vertex">(model: Model<T>, context: Context, options: GoogleSharedStreamOptions): GenerateContentParameters;
181
+ /**
182
+ * Drive the `streamGoogle` / `streamGoogleVertex` event flow: build the assistant message,
183
+ * push start/done/error events, run `consumeGoogleStream`, and translate thrown errors into
184
+ * the canonical `error` event shape.
185
+ *
186
+ * Caller-supplied `prepare()` runs inside the try-block so any failure (missing project,
187
+ * bad auth, etc.) is funneled through the same error path as a streaming failure.
188
+ */
189
+ export interface GoogleGenAIRequestPlan {
190
+ params: GenerateContentParameters;
191
+ url: string;
192
+ headers: Record<string, string>;
193
+ fetch?: FetchImpl;
194
+ /** Optional URL retried once when {@link url} returns 404 (regional Vertex endpoint missing a global-only model). */
195
+ fallbackUrl?: string;
196
+ }
197
+ export declare function streamGoogleGenAI<T extends "google-generative-ai" | "google-vertex">(args: {
198
+ model: Model<T>;
199
+ options: GoogleSharedStreamOptions | undefined;
200
+ api: T;
201
+ retainTextSignature?: boolean;
202
+ prepare: () => GoogleGenAIRequestPlan | Promise<GoogleGenAIRequestPlan>;
203
+ }): AssistantMessageEventStream;
@@ -0,0 +1,155 @@
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
+ /**
110
+ * Gemini/Vertex serving tier. Serialized to the request body root as
111
+ * `serviceTier` (camelCase) by the transformer in `google-shared.ts`.
112
+ */
113
+ serviceTier?: "auto" | "default" | "flex" | "scale" | "priority";
114
+ abortSignal?: AbortSignal;
115
+ }
116
+ /** Top-level argument to `generateContentStream`. */
117
+ export interface GenerateContentParameters {
118
+ model: string;
119
+ contents: Content[];
120
+ config?: GenerateContentConfig;
121
+ }
122
+ /** Per-stream candidate envelope. */
123
+ export interface Candidate {
124
+ content?: Content;
125
+ finishReason?: FinishReason;
126
+ index?: number;
127
+ }
128
+ /** Cumulative token accounting attached to the trailing chunk. */
129
+ export interface UsageMetadata {
130
+ promptTokenCount?: number;
131
+ candidatesTokenCount?: number;
132
+ thoughtsTokenCount?: number;
133
+ totalTokenCount?: number;
134
+ cachedContentTokenCount?: number;
135
+ }
136
+ /** Prompt-level safety feedback; `blockReason` is set (with no candidates) when the prompt is blocked. */
137
+ export interface PromptFeedback {
138
+ blockReason?: string;
139
+ blockReasonMessage?: string;
140
+ [key: string]: unknown;
141
+ }
142
+ /** Single SSE chunk's parsed JSON body. */
143
+ export interface GenerateContentResponse {
144
+ candidates?: Candidate[];
145
+ usageMetadata?: UsageMetadata;
146
+ modelVersion?: string;
147
+ responseId?: string;
148
+ promptFeedback?: PromptFeedback;
149
+ /** In-band stream failure (quota, internal error) delivered as a final JSON event. */
150
+ error?: {
151
+ code?: number;
152
+ message?: string;
153
+ status?: string;
154
+ };
155
+ }
@@ -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;