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,55 @@
1
+ /**
2
+ * AWS Signature V4 signing for HTTP requests. WebCrypto-only — no node:crypto.
3
+ *
4
+ * Matches `@smithy/signature-v4` for our usage: header-based signing with a
5
+ * full SHA-256 payload hash (Bedrock requires `applyChecksum: true`).
6
+ *
7
+ * Returns the set of headers to attach to the request:
8
+ * - `host`
9
+ * - `x-amz-date`
10
+ * - `x-amz-content-sha256`
11
+ * - `x-amz-security-token` (only when credentials carry a sessionToken)
12
+ * - `authorization`
13
+ */
14
+ export interface AwsCredentials {
15
+ accessKeyId: string;
16
+ secretAccessKey: string;
17
+ sessionToken?: string;
18
+ }
19
+ export interface SignParams {
20
+ method: string;
21
+ /** Hostname only — used to build the `host` header and the canonical request. */
22
+ host: string;
23
+ /** URI path component, e.g. `/model/anthropic.claude/converse-stream`. */
24
+ path: string;
25
+ /** Optional pre-built query string (without leading `?`). */
26
+ query?: string;
27
+ /** Extra headers to sign in addition to `host`/`x-amz-*`. Names are case-insensitive. */
28
+ headers?: Record<string, string>;
29
+ body: Uint8Array;
30
+ region: string;
31
+ service: string;
32
+ credentials: AwsCredentials;
33
+ /** Override clock for deterministic tests. */
34
+ date?: Date;
35
+ }
36
+ export declare function toHex(bytes: Uint8Array): string;
37
+ export declare function sha256(data: Uint8Array | string): Promise<Uint8Array>;
38
+ export declare function sha256Hex(data: Uint8Array | string): Promise<string>;
39
+ /**
40
+ * Derive a signing key: HMAC chain `kSecret → kDate → kRegion → kService → kSigning`.
41
+ */
42
+ export declare function getSigningKey(secretAccessKey: string, shortDate: string, region: string, service: string): Promise<Uint8Array>;
43
+ /** `YYYYMMDDTHHMMSSZ` + 8-char `YYYYMMDD`. */
44
+ export declare function formatAmzDate(d: Date): {
45
+ longDate: string;
46
+ shortDate: string;
47
+ };
48
+ export interface SignedHeaders {
49
+ host: string;
50
+ "x-amz-date": string;
51
+ "x-amz-content-sha256": string;
52
+ authorization: string;
53
+ "x-amz-security-token"?: string;
54
+ }
55
+ export declare function signRequest(params: SignParams): Promise<SignedHeaders>;
@@ -0,0 +1,16 @@
1
+ import type { ServiceTier, StreamFunction, StreamOptions, ToolChoice } from "../types";
2
+ export { parseAzureDeploymentNameMap } from "./openai-shared";
3
+ export interface AzureOpenAIResponsesOptions extends StreamOptions {
4
+ reasoning?: "minimal" | "low" | "medium" | "high" | "xhigh";
5
+ reasoningSummary?: "auto" | "detailed" | "concise" | null;
6
+ azureApiVersion?: string;
7
+ azureResourceName?: string;
8
+ azureBaseUrl?: string;
9
+ azureDeploymentName?: string;
10
+ toolChoice?: ToolChoice;
11
+ serviceTier?: ServiceTier;
12
+ }
13
+ /**
14
+ * Generate function for Azure OpenAI Responses API
15
+ */
16
+ export declare const streamAzureOpenAIResponses: StreamFunction<"azure-openai-responses">;
@@ -0,0 +1,91 @@
1
+ import { type JsonValue } from "@bufbuild/protobuf";
2
+ import type { AssistantMessage, CursorExecHandlerResult, CursorExecHandlers, CursorToolResultHandler, Message, StreamFunction, StreamOptions, TextContent, ThinkingContent, ToolCall, ToolResultMessage } from "../types";
3
+ import { kStreamingBlockIndex, kStreamingBlockKind, kStreamingLastParseLen, kStreamingPartialJson } from "../utils/block-symbols";
4
+ import { AssistantMessageEventStream } from "../utils/event-stream";
5
+ export declare const CURSOR_API_URL = "https://api2.cursor.sh";
6
+ export declare const CURSOR_CLIENT_VERSION = "cli-2026.01.09-231024f";
7
+ export interface CursorOptions extends StreamOptions {
8
+ customSystemPrompt?: string;
9
+ conversationId?: string;
10
+ execHandlers?: CursorExecHandlers;
11
+ onToolResult?: CursorToolResultHandler;
12
+ }
13
+ export declare const streamCursor: StreamFunction<"cursor-agent">;
14
+ export type ToolCallState = ToolCall & {
15
+ [kStreamingBlockIndex]: number;
16
+ [kStreamingPartialJson]?: string;
17
+ [kStreamingLastParseLen]?: number;
18
+ [kStreamingBlockKind]: "mcp" | "todo";
19
+ };
20
+ export interface BlockState {
21
+ currentTextBlock: (TextContent & {
22
+ [kStreamingBlockIndex]: number;
23
+ }) | null;
24
+ currentThinkingBlock: (ThinkingContent & {
25
+ [kStreamingBlockIndex]: number;
26
+ }) | null;
27
+ currentToolCall: ToolCallState | null;
28
+ firstTokenTime: number | undefined;
29
+ setTextBlock: (b: (TextContent & {
30
+ [kStreamingBlockIndex]: number;
31
+ }) | null) => void;
32
+ setThinkingBlock: (b: (ThinkingContent & {
33
+ [kStreamingBlockIndex]: number;
34
+ }) | null) => void;
35
+ setToolCall: (t: ToolCallState | null) => void;
36
+ setFirstTokenTime: () => void;
37
+ }
38
+ export interface UsageState {
39
+ sawTokenDelta: boolean;
40
+ }
41
+ /** Exported for tests: verifies handler is invoked with correct `this` when passed as bound. */
42
+ 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<{
43
+ execResult: TResult;
44
+ toolResult?: ToolResultMessage;
45
+ }>;
46
+ /**
47
+ * Merge the decoded completion-frame `McpArgs` map into the args assembled
48
+ * from streamed `args_text_delta` snapshots.
49
+ *
50
+ * The completion frame is authoritative for the scalars it carries — but it
51
+ * can omit oversized parameters entirely and can downgrade a structured value
52
+ * to its raw string fallback when `decodeMcpArgValue` cannot parse it as
53
+ * JSON. Overwriting the streamed args wholesale therefore loses data (e.g.
54
+ * the task tool's `tasks` array on multi-subagent dispatches, issue #2615).
55
+ *
56
+ * Rules per key:
57
+ * - completion key absent → keep the streamed value.
58
+ * - completion is a string while the streamed value is structured (object or
59
+ * array) → keep the streamed value (the completion frame downgraded it).
60
+ * - otherwise → completion wins.
61
+ */
62
+ export declare function mergeCursorMcpToolCallArgs(streamed: Record<string, unknown> | undefined, completion: Record<string, unknown> | undefined): Record<string, unknown>;
63
+ /** Exported for tests: drives one Cursor interaction update through the streaming state machine. */
64
+ export declare function processInteractionUpdate(update: any, output: AssistantMessage, stream: AssistantMessageEventStream, state: BlockState, usageState: UsageState): void;
65
+ /**
66
+ * Build `ConversationStateStructure.rootPromptMessagesJson` blob IDs for the
67
+ * system prompt plus prior conversation history, as JSON blobs matching
68
+ * Cursor's internal Vercel-AI-SDK-shaped message format.
69
+ *
70
+ * Cursor's server uses `rootPromptMessagesJson` (not `turns[]`) to build the
71
+ * actual model prompt. `turns[]` is UI/display metadata. Without populating
72
+ * this field, multi-turn conversations lose prior context — the model sees
73
+ * only an empty placeholder where historical user turns should be.
74
+ * The active user message is excluded because it is sent in the action.
75
+ */
76
+ /**
77
+ * Build one Cursor system-message JSON blob per ordered system prompt. Emitting separate blobs
78
+ * (rather than a single `\n\n`-joined string) lets Cursor's blob cache hit independently per
79
+ * entry: changing only the last prompt does not invalidate earlier blob ids, so the prefix
80
+ * up to the changed prompt remains cached on the server side.
81
+ *
82
+ * When no system prompts are provided, returns a single default greeting so we never emit
83
+ * an empty `rootPromptMessagesJson` head.
84
+ */
85
+ export declare function buildCursorSystemPromptJsons(systemPrompt: readonly string[] | undefined): string[];
86
+ /** Exported for tests: decodes Cursor history blobs built from conversation messages. */
87
+ export declare function buildCursorHistoryForTest(messages: Message[], activeUserMessageIndex?: number): {
88
+ rootPromptMessagesJson: unknown[];
89
+ turnUserMessagesJson: JsonValue[];
90
+ turnStepMessagesJson: JsonValue[][];
91
+ };
@@ -0,0 +1,12 @@
1
+ import type { StreamFunction, StreamOptions } from "../types";
2
+ /** Base host for Codeium/Windsurf's Cascade chat API (Connect protocol over HTTP/1.1). */
3
+ export declare const DEVIN_API_URL = "https://server.codeium.com";
4
+ export interface DevinOptions extends StreamOptions {
5
+ /** Cascade conversation id; reused as `cascade_id` so the server threads turns. */
6
+ conversationId?: string;
7
+ /** Falls back to `cascade_id` when no `conversationId` is supplied. */
8
+ sessionId?: string;
9
+ /** Wire model uid selected after thinking-effort routing. */
10
+ chatModelUid?: string;
11
+ }
12
+ export declare const streamDevin: StreamFunction<"devin-agent">;
@@ -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,254 @@
1
+ import { type GitLabDuoWorkflowNamespaceSelection } from "jeopi-catalog/discovery/gitlab-duo-workflow";
2
+ import type { AssistantMessage, Context, FetchImpl, Model, ProviderSessionState, StreamFunction, StreamOptions, Tool, ToolChoice, ToolResultMessage } from "../types";
3
+ import { AssistantMessageEventStream } from "../utils/event-stream";
4
+ export declare const GITLAB_DUO_WORKFLOW_PROVIDER_ID = "gitlab-duo-agent";
5
+ export declare const GITLAB_DUO_WORKFLOW_API = "gitlab-duo-agent";
6
+ export declare const GITLAB_DUO_WORKFLOW_DEFINITION = "ambient";
7
+ export type GitLabDuoWorkflowDefinition = "ambient" | (string & {});
8
+ export declare const GITLAB_DUO_WORKFLOW_CLIENT_CAPABILITIES: readonly ["incremental_streaming", "read_file_chunked", "shell_command", "command_timeout", "tool_call_approval"];
9
+ export interface GitLabMcpToolArgs {
10
+ name?: string;
11
+ tool_name?: string;
12
+ toolName?: string;
13
+ providerIdentifier?: string;
14
+ provider_identifier?: string;
15
+ toolCallId?: string;
16
+ tool_call_id?: string;
17
+ args?: Record<string, unknown> | string;
18
+ arguments?: Record<string, unknown> | string;
19
+ }
20
+ export interface GitLabPlainTextResponse {
21
+ response?: string;
22
+ error?: string;
23
+ }
24
+ export type PlainTextResponse = GitLabPlainTextResponse;
25
+ export interface GitLabDuoWorkflowOptions extends StreamOptions {
26
+ rootNamespaceId?: string;
27
+ namespaceId?: string;
28
+ projectId?: string;
29
+ projectPath?: string;
30
+ workflowDefinition?: GitLabDuoWorkflowDefinition;
31
+ workflowId?: string;
32
+ workflowToken?: string;
33
+ cwd?: string;
34
+ webSocketFactory?: GitLabDuoWorkflowWebSocketFactory;
35
+ /** Idle WebSocket deadline (ms) before aborting and resuming; defaults to {@link GITLAB_DUO_WORKFLOW_IDLE_TIMEOUT_MS}. */
36
+ idleTimeoutMs?: number;
37
+ /**
38
+ * Tool-choice override forwarded from the stream layer. Only `"none"` is
39
+ * acted on: a side-request (e.g. handoff) keeps tool definitions in the cache
40
+ * prefix but disables tool use, so the provider must not advertise them to Duo.
41
+ */
42
+ toolChoice?: ToolChoice;
43
+ }
44
+ export interface GitLabDuoWorkflowWebSocketLike {
45
+ readyState?: number;
46
+ binaryType?: string;
47
+ onopen: ((event: Event) => void) | null;
48
+ onmessage: ((event: MessageEvent) => void) | null;
49
+ onerror: ((event: Event) => void) | null;
50
+ onclose: ((event: CloseEvent) => void) | null;
51
+ send(data: string): void;
52
+ close(code?: number, reason?: string): void;
53
+ }
54
+ export interface GitLabDuoWorkflowWebSocketFactoryOptions {
55
+ headers: Record<string, string>;
56
+ protocols?: string[];
57
+ }
58
+ export type GitLabDuoWorkflowWebSocketFactory = (url: string, options: GitLabDuoWorkflowWebSocketFactoryOptions) => GitLabDuoWorkflowWebSocketLike;
59
+ export interface GitLabDirectAccessResponse {
60
+ token?: string;
61
+ access_token?: string;
62
+ jwt?: string;
63
+ workflow_token?: string;
64
+ duo_workflow_access_token?: string;
65
+ duo_workflow_service?: {
66
+ token?: string;
67
+ base_url?: string;
68
+ headers?: Record<string, string>;
69
+ };
70
+ gitlab_rails?: {
71
+ token?: string;
72
+ };
73
+ [key: string]: unknown;
74
+ }
75
+ interface GitLabDuoWorkflowCreateBodyOptions {
76
+ projectId?: string;
77
+ goal?: string;
78
+ workflowDefinition?: GitLabDuoWorkflowDefinition;
79
+ }
80
+ interface GitLabDuoWorkflowStartMetadataOptions {
81
+ projectId?: string;
82
+ projectPath?: string;
83
+ namespaceId?: string;
84
+ rootNamespaceId?: string;
85
+ workflowDefinition?: GitLabDuoWorkflowDefinition;
86
+ inlineFlow?: boolean;
87
+ }
88
+ export interface GitLabMcpToolDefinition {
89
+ name: string;
90
+ originalToolName: string;
91
+ serverName: string;
92
+ description: string;
93
+ inputSchema: string;
94
+ isApproved: boolean;
95
+ }
96
+ export interface GitLabDuoWorkflowAdditionalContextItem {
97
+ id: string;
98
+ category: "agent_user_environment" | "user_rule";
99
+ content: string;
100
+ metadata: {
101
+ title: string;
102
+ enabled: boolean;
103
+ subType: "snippet";
104
+ icon: string;
105
+ secondaryText: string;
106
+ subTypeLabel: string;
107
+ };
108
+ }
109
+ export interface GitLabDuoWorkflowStartRequest {
110
+ workflowID: string;
111
+ clientVersion: "1.0";
112
+ workflowDefinition: GitLabDuoWorkflowDefinition;
113
+ goal: string;
114
+ workflowMetadata: string;
115
+ additional_context: readonly GitLabDuoWorkflowAdditionalContextItem[];
116
+ approval?: {
117
+ approval?: Record<string, never>;
118
+ rejection?: {
119
+ message?: string;
120
+ };
121
+ };
122
+ clientCapabilities: readonly (typeof GITLAB_DUO_WORKFLOW_CLIENT_CAPABILITIES)[number][];
123
+ mcpTools: GitLabMcpToolDefinition[];
124
+ preapproved_tools: string[];
125
+ flowConfigSchemaVersion?: "v1";
126
+ flowConfigId?: string;
127
+ flowVersion?: string;
128
+ flowConfig?: GitLabDuoWorkflowInlineFlowConfig;
129
+ }
130
+ export interface GitLabDuoWorkflowInlineFlowComponent {
131
+ name: string;
132
+ type: "AgentComponent";
133
+ prompt_id: string;
134
+ toolset: string[];
135
+ inputs: {
136
+ from: string;
137
+ as: string;
138
+ }[];
139
+ ui_log_events: string[];
140
+ }
141
+ export interface GitLabDuoWorkflowInlineFlowPrompt {
142
+ name: string;
143
+ prompt_id: string;
144
+ unit_primitives: string[];
145
+ prompt_template: {
146
+ system: string;
147
+ user: string;
148
+ placeholder: string;
149
+ };
150
+ }
151
+ export interface GitLabDuoWorkflowInlineFlowConfig {
152
+ version: "v1";
153
+ environment: "ambient";
154
+ flow: {
155
+ entry_point: string;
156
+ };
157
+ components: GitLabDuoWorkflowInlineFlowComponent[];
158
+ routers: {
159
+ from: string;
160
+ to: string;
161
+ }[];
162
+ prompts: GitLabDuoWorkflowInlineFlowPrompt[];
163
+ }
164
+ export interface GitLabDuoWorkflowActionResponse {
165
+ actionResponse: {
166
+ requestID: string;
167
+ plainTextResponse?: GitLabPlainTextResponse;
168
+ };
169
+ }
170
+ interface GitLabDuoWorkflowActionDescriptor {
171
+ requestID: string;
172
+ name: string;
173
+ args: unknown;
174
+ }
175
+ export interface GitLabDuoWorkflowActiveSession {
176
+ workflowId: string;
177
+ startPayload: GitLabDuoWorkflowStartRequest;
178
+ ws: GitLabDuoWorkflowWebSocketLike;
179
+ stop?: () => void;
180
+ pendingActions?: GitLabDuoWorkflowActionDescriptor[];
181
+ checkpointAgentContentByKey?: Record<string, string>;
182
+ checkpointAgentContentSignatures?: Record<string, true>;
183
+ paused?: boolean;
184
+ pauseBuffer?: unknown[];
185
+ lastToolBoundaryContentLength?: number;
186
+ }
187
+ export interface GitLabDuoWorkflowProviderSessionState extends ProviderSessionState {
188
+ active?: GitLabDuoWorkflowActiveSession;
189
+ }
190
+ export interface GitLabDuoWorkflowStreamState {
191
+ stream: AssistantMessageEventStream;
192
+ output: AssistantMessage;
193
+ activeTextIndex?: number;
194
+ activeThinkingIndex?: number;
195
+ activeCheckpointMessageKey?: string;
196
+ started: boolean;
197
+ checkpointAgentContentByKey?: Record<string, string>;
198
+ checkpointAgentContentSignatures?: Record<string, true>;
199
+ pauseRequested?: boolean;
200
+ stepLimitRequested?: boolean;
201
+ retryableErrorRequested?: boolean;
202
+ lastCheckpointContentLength?: number;
203
+ stalledRequested?: boolean;
204
+ providerSessionState?: GitLabDuoWorkflowProviderSessionState;
205
+ lastApprovalStatus?: string;
206
+ goalOverflowMessage?: string;
207
+ }
208
+ type GitLabDuoWorkflowSocketResult = "closed" | "terminal" | "approval" | "action" | "pause" | "timeout" | "step_limit" | "retryable_error" | "stalled";
209
+ export interface GitLabAvailableModel {
210
+ name?: string | null;
211
+ ref?: string | null;
212
+ }
213
+ export interface GitLabAvailableModelsPayload {
214
+ pinnedModel?: GitLabAvailableModel | null;
215
+ selectedModel?: GitLabAvailableModel | null;
216
+ defaultModel?: GitLabAvailableModel | null;
217
+ selectableModels?: GitLabAvailableModel[] | null;
218
+ }
219
+ export declare const streamGitLabDuoWorkflow: StreamFunction<"gitlab-duo-agent">;
220
+ export declare function buildGitLabDuoWorkflowDirectAccessBody(rootNamespaceId: string, projectId?: string, workflowDefinition?: GitLabDuoWorkflowDefinition): Record<string, string>;
221
+ export declare function buildGitLabDuoWorkflowCreateBody(namespaceId?: string, options?: GitLabDuoWorkflowCreateBodyOptions): Record<string, string | boolean | string[] | number[]>;
222
+ export declare function buildGitLabDuoWorkflowStopBody(): Record<string, string>;
223
+ export declare function buildGitLabDuoWorkflowWebSocketUrl(baseUrl: string, options?: {
224
+ projectId?: string;
225
+ namespaceId?: string;
226
+ rootNamespaceId?: string;
227
+ selectedModelIdentifier?: string;
228
+ workflowDefinition?: GitLabDuoWorkflowDefinition;
229
+ serviceEndpoint?: boolean;
230
+ }): string;
231
+ export declare function buildGitLabDuoWorkflowWebSocketHeaders(options: {
232
+ token: string;
233
+ baseUrl?: string;
234
+ projectId?: string;
235
+ namespaceId?: string;
236
+ rootNamespaceId?: string;
237
+ extraHeaders?: Record<string, string>;
238
+ }): Record<string, string>;
239
+ export declare function buildGitLabDuoWorkflowStartRequest(workflowId: string, model: Model<"gitlab-duo-agent">, context: Context, tools?: Tool[] | undefined, availableModels?: GitLabAvailableModelsPayload | null, metadataOptions?: GitLabDuoWorkflowStartMetadataOptions): GitLabDuoWorkflowStartRequest;
240
+ export declare function buildGitLabDuoWorkflowInlineFlowConfig(systemPrompt: string): GitLabDuoWorkflowInlineFlowConfig;
241
+ export declare function buildGitLabDuoWorkflowClientAdditionalContext(): GitLabDuoWorkflowAdditionalContextItem[];
242
+ export declare function buildGitLabDuoWorkflowMcpTools(tools: Tool[] | undefined): GitLabMcpToolDefinition[];
243
+ export declare function selectGitLabDuoWorkflowModelRef(selectedModel: string, availableModels?: GitLabAvailableModelsPayload | null): string;
244
+ export declare function buildGitLabPlainTextFromToolResult(toolResult: ToolResultMessage): GitLabPlainTextResponse;
245
+ export declare function gitLabDuoWorkflowErrorText(error: unknown): string;
246
+ export declare function buildGitLabDuoWorkflowSettingsBody(): Record<string, unknown>;
247
+ export declare function runGitLabDuoWorkflowSocket(ws: GitLabDuoWorkflowWebSocketLike, startPayload: GitLabDuoWorkflowStartRequest, state: GitLabDuoWorkflowStreamState, options: GitLabDuoWorkflowOptions, resumeResponse?: GitLabDuoWorkflowActionResponse | readonly GitLabDuoWorkflowActionResponse[], replayMessages?: readonly unknown[]): Promise<GitLabDuoWorkflowSocketResult>;
248
+ export declare function buildGitLabDuoWorkflowApprovalStartRequest(startPayload: GitLabDuoWorkflowStartRequest): GitLabDuoWorkflowStartRequest;
249
+ export declare function describeGitLabDuoWorkflowSocketEvent(event: unknown): string;
250
+ export declare function traceGitLabDuoWorkflow(event: string, data?: Record<string, unknown>): void;
251
+ export declare function extractGitLabWorkflowToken(payload: GitLabDirectAccessResponse): string | undefined;
252
+ export declare function resolveGitLabDuoWorkflowNamespaceSelection(model: Model<"gitlab-duo-agent">, options: GitLabDuoWorkflowOptions, apiKey: string, baseUrl: string, fetchImpl: FetchImpl): Promise<GitLabDuoWorkflowNamespaceSelection>;
253
+ export declare function resolveGitLabDuoWorkflowRootNamespaceId(model: Model<"gitlab-duo-agent">, options: GitLabDuoWorkflowOptions, apiKey: string, baseUrl: string, fetchImpl: FetchImpl): Promise<string>;
254
+ export {};
@@ -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,32 @@
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;
25
+ /**
26
+ * Sync best-effort probe for a usable Vertex bearer credential source — an explicit access-token
27
+ * env var, `GOOGLE_APPLICATION_CREDENTIALS`, a user ADC file, or a GCP runtime whose metadata
28
+ * server can mint ADC (GCE/Cloud Run/App Engine/Functions). Lets callers prefer the bearer
29
+ * Interactions transport only when ADC is actually reachable, without paying the async
30
+ * metadata-probe cost for API-key-only setups.
31
+ */
32
+ export declare function hasVertexBearerCredentialsHint(): boolean;