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,15 @@
1
+ import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types";
2
+ export declare const ANTHROPIC_THINKING_TAG_PREFIXES: readonly ["<thinking", "</thinking", "<think", "</think", "<scratchpad", "</scratchpad", "<antml:thinking", "</antml:thinking", "<antml:think", "</antml:think", "<antml:scratchpad", "</antml:scratchpad"];
3
+ export interface AnthropicInbandScannerConfig {
4
+ readonly wrapperTags?: Readonly<Record<string, true>>;
5
+ readonly baseTagPrefixes?: readonly string[];
6
+ readonly allTagPrefixes?: readonly string[];
7
+ }
8
+ export declare class AnthropicInbandScanner implements InbandScanner {
9
+ #private;
10
+ constructor(options?: InbandScannerOptions, config?: AnthropicInbandScannerConfig);
11
+ feed(text: string): InbandScanEvent[];
12
+ flush(): InbandScanEvent[];
13
+ }
14
+ declare const definition: DialectDefinition;
15
+ export default definition;
@@ -0,0 +1,3 @@
1
+ import type { Dialect, InbandTool } from "./types";
2
+ export declare function renderToolCatalog(tools: readonly InbandTool[]): string;
3
+ export declare function renderInbandToolPrompt(tools: readonly InbandTool[], dialect: Dialect): string;
@@ -0,0 +1,23 @@
1
+ import type { InbandTool } from "./types";
2
+ export interface ToolArgShape {
3
+ stringArgs: Set<string>;
4
+ properties: Record<string, unknown>;
5
+ parameterOrder: string[];
6
+ }
7
+ export declare function buildArgShapes(tools?: readonly InbandTool[]): Map<string, ToolArgShape>;
8
+ export declare function buildStringArgsResolver(tools?: readonly InbandTool[]): (toolName: string) => ReadonlySet<string>;
9
+ export declare function resolveToolSchema(tool: InbandTool): Record<string, unknown>;
10
+ export declare function isStringOnlySchema(schema: unknown): boolean;
11
+ export declare function collectSchemaTypes(schema: unknown, out?: Set<string>, depth?: number): Set<string>;
12
+ export declare function jsonTypeOf(value: unknown): string;
13
+ export declare function decodeValue(raw: string): unknown;
14
+ export declare function coerceValue(raw: string, schema: unknown): unknown;
15
+ export declare function isArraySchema(schema: unknown): boolean;
16
+ export declare function isObjectSchema(schema: unknown): boolean;
17
+ export declare function getObjectProperties(schema: unknown): Record<string, unknown>;
18
+ export declare function getArrayItemSchema(schema: unknown): unknown;
19
+ export declare function mintToolCallId(): string;
20
+ export declare function partialSuffixOverlap(text: string, tag: string): number;
21
+ export declare function partialSuffixOverlapAny(text: string, tags: readonly string[]): number;
22
+ export declare function normalizeKimiFunctionName(rawId: string): string;
23
+ export declare function asRecord(value: unknown): Record<string, unknown>;
@@ -0,0 +1,14 @@
1
+ import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types";
2
+ export declare const DEEPSEEK_TOOL_CALLS_BEGIN = "<\uFF5Ctool\u2581calls\u2581begin\uFF5C>";
3
+ export declare const DEEPSEEK_TOOL_CALLS_END = "<\uFF5Ctool\u2581calls\u2581end\uFF5C>";
4
+ export declare const DEEPSEEK_TOOL_CALL_BEGIN = "<\uFF5Ctool\u2581call\u2581begin\uFF5C>";
5
+ export declare const DEEPSEEK_TOOL_CALL_END = "<\uFF5Ctool\u2581call\u2581end\uFF5C>";
6
+ export declare const DEEPSEEK_TOOL_SEPARATOR = "<\uFF5Ctool\u2581sep\uFF5C>";
7
+ export declare class DeepSeekInbandScanner implements InbandScanner {
8
+ #private;
9
+ constructor(options?: InbandScannerOptions);
10
+ feed(text: string): InbandScanEvent[];
11
+ flush(): InbandScanEvent[];
12
+ }
13
+ declare const definition: DialectDefinition;
14
+ export default definition;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Wrap a prior-turn reasoning string for demotion into native conversation
3
+ * history — the cross-provider / cross-model case where the target cannot replay
4
+ * it as a structured thinking block (verified end-to-end against Gemini 3: a
5
+ * replayed unsigned `thought` part is schema-accepted but silently discarded —
6
+ * neither recalled nor influencing generation).
7
+ *
8
+ * Fable is the exception: replaying prior reasoning inside `<thinking>` /
9
+ * `antml:thinking`-style assistant text is treated as a reasoning-extraction
10
+ * attempt and can train the next turn to leak thoughts, so Fable receives the
11
+ * reasoning as markdown-italic assistant prose instead. Harmony and Gemma are
12
+ * also exceptions: their `renderThinking` emits chat-template control tokens
13
+ * (`<|channel|>analysis`, `<|channel>thought`) that must not appear inside a
14
+ * structured native message, so they fall back to a plain `<think>` block. Every
15
+ * other dialect's thinking form is inline-safe XML tags or a markdown fence.
16
+ *
17
+ * The result ends with a trailing newline so the block stays separated from the
18
+ * turn's reply text when the wire encoder concatenates parts.
19
+ *
20
+ * Distinct from {@link DialectDefinition.renderThinking}, which targets the
21
+ * owned-dialect *text transport* where those control tokens are legal.
22
+ */
23
+ export declare function renderDemotedThinking(modelId: string, text: string): string;
@@ -0,0 +1,2 @@
1
+ import type { Dialect, InbandTool } from "./types";
2
+ export declare function renderToolExamples(tool: InbandTool, dialect: Dialect, intentField?: string): string;
@@ -0,0 +1,3 @@
1
+ import type { Dialect, DialectDefinition, InbandScanner, InbandScannerOptions } from "./types";
2
+ export declare function getDialectDefinition(dialect: Dialect): DialectDefinition;
3
+ export declare function createInbandScanner(dialect: Dialect, options?: InbandScannerOptions): InbandScanner;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Close-matcher for a ` ```thinking ` block that respects nested Markdown code
3
+ * fences. A naive `indexOf("```")` closes the thinking section at the FIRST
4
+ * backtick fence inside the reasoning, so an inner ` ```rs … ``` ` code block
5
+ * leaks its body (and everything after) into the visible channel. This scanner
6
+ * tracks inner-fence nesting so only the real thinking closer ends the block.
7
+ *
8
+ * Distinguishing an inner opener from the closer: a fenced code block opener is
9
+ * ` ``` ` immediately followed by a language token (`rs`, `tool_code`, `c++` …)
10
+ * and a newline. The thinking closer is a bare ` ``` `, or ` ``` ` glued to the
11
+ * visible reply — its remainder is prose (contains whitespace/punctuation), not
12
+ * a language token. So a top-level fence whose info is a single language-token
13
+ * word opens a nested block; anything else closes the thinking, and the text
14
+ * after the fence run is the visible reply. This preserves the long-standing
15
+ * inline-close behavior (` ```Visible reply ` ends the block) while skipping
16
+ * language-tagged inner fences.
17
+ *
18
+ * Used by both the owned Gemini scanner (live ` ```thinking ` stream) and the
19
+ * generic `ThinkingInbandScanner` (leaked-idiom healing).
20
+ *
21
+ * Limitation: an *info-less* nested fence (a bare ` ``` ` opening a code block
22
+ * inside the reasoning) is indistinguishable from the thinking closer and ends
23
+ * the block. Models tag their fences with a language in practice, so this is
24
+ * strictly better than the previous first-` ``` ` behavior.
25
+ */
26
+ /** Result of feeding bytes to {@link FencedThinkingScanner}. */
27
+ export interface FencedThinkingResult {
28
+ /** Thinking text to emit for this feed (may be empty). */
29
+ readonly thinking: string;
30
+ /** True once the thinking closer has been consumed. */
31
+ readonly closed: boolean;
32
+ /** Bytes after the closing fence (visible reply); only meaningful when {@link closed}. */
33
+ readonly rest: string;
34
+ }
35
+ /**
36
+ * Stateful, line-oriented close-matcher for one ` ```thinking ` block. Owns the
37
+ * partial-line buffer so an ambiguous trailing fence is held until it resolves.
38
+ *
39
+ * Streaming stays character-level for ordinary content: a line is emitted as its
40
+ * bytes arrive, yet retained in the buffer until its newline so the complete
41
+ * line can be classified ({@link #emitted} tracks how many leading bytes are
42
+ * already emitted). A top-level fence candidate is held until its info
43
+ * disambiguates opener (language token) from closer (prose / bare).
44
+ */
45
+ export declare class FencedThinkingScanner {
46
+ #private;
47
+ /**
48
+ * Feed bytes and return thinking deltas plus close state. When `final`, the
49
+ * held tail resolves: a bare ` ``` ` or a ` ```<reply> ` fence closes the
50
+ * block (remainder becomes `rest`), otherwise it is unterminated thinking.
51
+ */
52
+ feed(text: string, final: boolean): FencedThinkingResult;
53
+ }
@@ -0,0 +1,17 @@
1
+ import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types";
2
+ /**
3
+ * Scanner for the hosted-Gemini / Gemma 3 Pythonic tool-calling convention
4
+ * (see `docs/toolconv/gemini.md`). Tool calls arrive as a ```` ```tool_code ````
5
+ * fenced block whose body is one or more Python call expressions, e.g.
6
+ * `print(default_api.search(pattern="x", skip=40))`. Like the qwen3 scanner we
7
+ * buffer the whole block until its closing fence, then parse all calls at once
8
+ * (no incremental argument deltas — Python literals are not worth streaming).
9
+ */
10
+ export declare class GeminiInbandScanner implements InbandScanner {
11
+ #private;
12
+ constructor(options?: InbandScannerOptions);
13
+ feed(text: string): InbandScanEvent[];
14
+ flush(): InbandScanEvent[];
15
+ }
16
+ declare const definition: DialectDefinition;
17
+ export default definition;
@@ -0,0 +1,15 @@
1
+ import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types";
2
+ /**
3
+ * Scanner for the Gemma 4 token-delimited tool-calling convention (see
4
+ * `docs/toolconv/gemma.md`). Each call is one `<|tool_call>call:NAME{…}<tool_call|>`
5
+ * block whose argument list is `key:value` pairs; string values are wrapped in
6
+ * the `<|"|>` token rather than ASCII quotes, so splitting must skip those spans.
7
+ */
8
+ export declare class GemmaInbandScanner implements InbandScanner {
9
+ #private;
10
+ constructor(options?: InbandScannerOptions);
11
+ feed(text: string): InbandScanEvent[];
12
+ flush(): InbandScanEvent[];
13
+ }
14
+ declare const definition: DialectDefinition;
15
+ export default definition;
@@ -0,0 +1,9 @@
1
+ import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types";
2
+ export declare class GLMInbandScanner implements InbandScanner {
3
+ #private;
4
+ constructor(options?: InbandScannerOptions);
5
+ feed(text: string): InbandScanEvent[];
6
+ flush(): InbandScanEvent[];
7
+ }
8
+ declare const definition: DialectDefinition;
9
+ export default definition;
@@ -0,0 +1,8 @@
1
+ import type { DialectDefinition, InbandScanEvent, InbandScanner } from "./types";
2
+ export declare class HarmonyInbandScanner implements InbandScanner {
3
+ #private;
4
+ feed(text: string): InbandScanEvent[];
5
+ flush(): InbandScanEvent[];
6
+ }
7
+ declare const definition: DialectDefinition;
8
+ export default definition;
@@ -0,0 +1,9 @@
1
+ import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types";
2
+ export declare class HermesInbandScanner implements InbandScanner {
3
+ #private;
4
+ constructor(options?: InbandScannerOptions);
5
+ feed(text: string): InbandScanEvent[];
6
+ flush(): InbandScanEvent[];
7
+ }
8
+ declare const definition: DialectDefinition;
9
+ export default definition;
@@ -0,0 +1,3 @@
1
+ import type { Context } from "../types";
2
+ import type { Dialect, InbandTool } from "./types";
3
+ export declare function encodeInbandToolHistory(messages: Context["messages"], dialect: Dialect, tools?: readonly InbandTool[]): Context["messages"];
@@ -0,0 +1,11 @@
1
+ export * from "./catalog";
2
+ export * from "./coercion";
3
+ export * from "./demotion";
4
+ export * from "./examples";
5
+ export * from "./factory";
6
+ export * from "./history";
7
+ export * from "./inventory";
8
+ export * from "./owned-stream";
9
+ export { renderDelimitedThinking } from "./rendering";
10
+ export * from "./thinking";
11
+ export * from "./types";
@@ -0,0 +1,12 @@
1
+ import type { InbandTool } from "./types";
2
+ /**
3
+ * Human-readable per-tool inventory: each tool renders as a `# Tool: <name>`
4
+ * section with its description, a simplified TypeScript-style parameter
5
+ * signature (derived from the wire JSON Schema), and examples in the model's
6
+ * native dialect. Shared by the verbose system-prompt inventory and
7
+ * `/dump` so both render the catalog the same way.
8
+ *
9
+ * `model` is a model id; the native example dialect is resolved from it
10
+ * (`preferredDialect`, which falls back to XML for empty/unknown ids).
11
+ */
12
+ export declare function renderToolInventory(tools: readonly InbandTool[], model: string): string;
@@ -0,0 +1,14 @@
1
+ import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types";
2
+ export declare const KIMI_SECTION_BEGIN = "<|tool_calls_section_begin|>";
3
+ export declare const KIMI_SECTION_END = "<|tool_calls_section_end|>";
4
+ export declare const KIMI_CALL_BEGIN = "<|tool_call_begin|>";
5
+ export declare const KIMI_CALL_END = "<|tool_call_end|>";
6
+ export declare const KIMI_ARG_BEGIN = "<|tool_call_argument_begin|>";
7
+ export declare class KimiInbandScanner implements InbandScanner {
8
+ #private;
9
+ constructor(options?: InbandScannerOptions);
10
+ feed(text: string): InbandScanEvent[];
11
+ flush(): InbandScanEvent[];
12
+ }
13
+ declare const definition: DialectDefinition;
14
+ export default definition;
@@ -0,0 +1,3 @@
1
+ import type { DialectDefinition } from "./types";
2
+ declare const definition: DialectDefinition;
3
+ export default definition;
@@ -0,0 +1,4 @@
1
+ import type { AssistantMessage, AssistantMessageEventStream as AssistantMessageEventStreamType } from "../types";
2
+ import type { Dialect, InbandTool } from "./types";
3
+ export declare function parseInbandToolMessage(message: AssistantMessage, dialect: Dialect, tools: readonly InbandTool[]): AssistantMessage;
4
+ export declare function wrapInbandToolStream(inner: AssistantMessageEventStreamType, tools: readonly InbandTool[], dialect: Dialect, onAbort?: () => void, abortOnFabrication?: boolean): AssistantMessageEventStreamType;
@@ -0,0 +1,9 @@
1
+ import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types";
2
+ export declare class Qwen3InbandScanner implements InbandScanner {
3
+ #private;
4
+ constructor(options?: InbandScannerOptions);
5
+ feed(text: string): InbandScanEvent[];
6
+ flush(): InbandScanEvent[];
7
+ }
8
+ declare const definition: DialectDefinition;
9
+ export default definition;
@@ -0,0 +1,45 @@
1
+ import type { AssistantMessage, Message, ToolCall } from "../types";
2
+ import type { DialectRenderOptions, DialectToolResult } from "./types";
3
+ export declare function renderToolResponseResults(results: readonly DialectToolResult[]): string;
4
+ export declare function kimiCallId(name: string, id: string, index: number): string;
5
+ export declare function harmonyRecipient(name: string): string;
6
+ export declare function stringifyJson(value: unknown): string;
7
+ export declare function escapeXmlAttr(value: string): string;
8
+ export declare function escapeXmlText(value: string): string;
9
+ export type AssistantTranscriptParts = {
10
+ readonly text: string;
11
+ readonly thinking: string;
12
+ readonly toolCalls: readonly ToolCall[];
13
+ };
14
+ export type ToolCallRenderer = (calls: readonly ToolCall[], options?: DialectRenderOptions) => string;
15
+ export type ToolResultRenderer = (results: readonly DialectToolResult[], options?: DialectRenderOptions) => string;
16
+ export type ChatMlTranscriptConfig = {
17
+ readonly bos?: string;
18
+ readonly toolResultRole: "tool" | "user";
19
+ readonly renderThinking: (text: string) => string;
20
+ readonly renderCalls: ToolCallRenderer;
21
+ readonly renderResultsBody: ToolResultRenderer;
22
+ };
23
+ export type LegacyTextTranscriptConfig = {
24
+ readonly renderThinking: (text: string) => string;
25
+ readonly renderCalls: ToolCallRenderer;
26
+ readonly renderResults: ToolResultRenderer;
27
+ };
28
+ export declare function renderChatMlTranscript(messages: readonly Message[], options: DialectRenderOptions, config: ChatMlTranscriptConfig): string;
29
+ export declare function renderLegacyTextTranscript(messages: readonly Message[], options: DialectRenderOptions, config: LegacyTextTranscriptConfig): string;
30
+ export declare function assistantTranscriptParts(message: AssistantMessage): AssistantTranscriptParts;
31
+ export declare function collectToolResultRun(messages: readonly Message[], start: number): {
32
+ readonly results: readonly DialectToolResult[];
33
+ readonly next: number;
34
+ };
35
+ export declare function messageContentText(content: string | readonly {
36
+ readonly type: string;
37
+ readonly text?: string;
38
+ readonly mimeType?: string;
39
+ }[]): string;
40
+ export declare function renderDelimitedThinking(open: string, close: string, text: string): string;
41
+ export declare function chatMlTurn(role: "assistant" | "system" | "tool" | "user", body: string): string;
42
+ export declare function kimiTurn(role: "assistant" | "system" | "user", name: string, body: string): string;
43
+ export declare function gemmaTurn(role: "model" | "system" | "user", body: string): string;
44
+ export declare function geminiTurn(role: "model" | "user", body: string): string;
45
+ export declare function joinUserBodies(left: string, right: string): string;
@@ -0,0 +1,6 @@
1
+ import type { InbandScanEvent, InbandScanner } from "./types";
2
+ export declare class ThinkingInbandScanner implements InbandScanner {
3
+ #private;
4
+ feed(text: string): InbandScanEvent[];
5
+ flush(): InbandScanEvent[];
6
+ }
@@ -0,0 +1,69 @@
1
+ import type { Dialect as CatalogDialect } from "jeopi-catalog/identity";
2
+ import type { Context, Message, ToolCall } from "../types";
3
+ export type { Dialect } from "jeopi-catalog/identity";
4
+ export type InbandScanEvent = {
5
+ type: "text";
6
+ text: string;
7
+ } | {
8
+ type: "thinkingStart";
9
+ } | {
10
+ type: "thinkingDelta";
11
+ delta: string;
12
+ } | {
13
+ type: "thinkingEnd";
14
+ thinking: string;
15
+ } | {
16
+ type: "toolStart";
17
+ id: string;
18
+ name: string;
19
+ } | {
20
+ type: "toolArgDelta";
21
+ id: string;
22
+ name: string;
23
+ key: string;
24
+ delta: string;
25
+ } | {
26
+ type: "toolEnd";
27
+ id: string;
28
+ name: string;
29
+ arguments: Record<string, unknown>;
30
+ rawBlock?: string;
31
+ };
32
+ export interface InbandScanner {
33
+ feed(text: string): InbandScanEvent[];
34
+ flush(): InbandScanEvent[];
35
+ }
36
+ export interface DialectToolResult {
37
+ readonly id: string;
38
+ readonly name: string;
39
+ readonly index: number;
40
+ readonly text: string;
41
+ readonly isError: boolean;
42
+ }
43
+ export interface DialectRenderOptions {
44
+ readonly tools?: readonly InbandTool[];
45
+ readonly example?: boolean;
46
+ }
47
+ export interface DialectDefinition {
48
+ readonly dialect: CatalogDialect;
49
+ readonly prompt: string;
50
+ createScanner(options?: InbandScannerOptions): InbandScanner;
51
+ /** Render a single tool-call invocation — the inner element only, WITHOUT any parallel-call block envelope (e.g. anthropic's `<function_calls>` / kimi's section wrapper). */
52
+ renderToolCall(call: ToolCall, options?: DialectRenderOptions): string;
53
+ /** Render a batch of (parallel) tool calls as one complete block, including whatever envelope the dialect wraps multiple calls in. */
54
+ renderAssistantToolCalls(calls: readonly ToolCall[], options?: DialectRenderOptions): string;
55
+ renderToolResults(results: readonly DialectToolResult[], options?: DialectRenderOptions): string;
56
+ renderThinking(text: string): string;
57
+ renderTranscript(messages: readonly Message[], options?: DialectRenderOptions): string;
58
+ }
59
+ export interface InbandScannerOptions {
60
+ /** string-typed arg names for a tool → read verbatim. Ignored by JSON-carrying dialects. */
61
+ stringArgs?: (toolName: string) => ReadonlySet<string>;
62
+ /** Full tool schemas for schema-driven dialects such as GLM XML and pi-native. */
63
+ tools?: readonly InbandTool[];
64
+ /** XML only: parse pipe-wrapped DeepSeek DSML tags vs plain Anthropic invoke/parameter tags. */
65
+ xmlTagset?: "anthropic" | "dsml";
66
+ /** Emit thinking markers as thinking events instead of visible text when the dialect defines them. */
67
+ parseThinking?: boolean;
68
+ }
69
+ export type InbandTool = NonNullable<Context["tools"]>[number];
@@ -0,0 +1,9 @@
1
+ import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types";
2
+ export declare class XmlInbandScanner implements InbandScanner {
3
+ #private;
4
+ constructor(options?: InbandScannerOptions);
5
+ feed(text: string): InbandScanEvent[];
6
+ flush(): InbandScanEvent[];
7
+ }
8
+ declare const definition: DialectDefinition;
9
+ export default definition;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A request was cancelled — by the caller's `AbortSignal` or a provider-local
3
+ * watchdog. Carries the {@link Flag.Abort} classification structurally so retry
4
+ * logic does not have to regex the message text.
5
+ *
6
+ * The default message is kept byte-identical to the historical
7
+ * `"Request was aborted"` string so any remaining text-based matchers keep
8
+ * working through the migration.
9
+ */
10
+ export declare class AbortError extends Error {
11
+ constructor(message?: string, options?: {
12
+ cause?: unknown;
13
+ });
14
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Whether an OAuth refresh failure is definitive (the credential must be
3
+ * disabled) versus transient. Thin alias over the {@link Flag.OAuthExpiry}
4
+ * text classifier {@link isOAuthExpiry}; retained as the public
5
+ * `jeopi-ai` entrypoint name used by the coding agent and auth-broker.
6
+ */
7
+ export declare function isDefinitiveOAuthFailure(errorMsg: string): boolean;
8
+ /**
9
+ * Whether an upstream failure should rotate to a sibling credential: a hard
10
+ * `401`, a body-classified usage limit (Codex `usage_limit_reached`, Anthropic
11
+ * account rate-limit, Google `resource_exhausted`, OpenAI `insufficient_quota`,
12
+ * …), or a bare `429` whose payload did not preserve a richer quota code.
13
+ * Transient 429s (`Too many requests`, per-minute caps) stay in the
14
+ * upstream-backoff lane.
15
+ */
16
+ export declare function isAuthRetryableError(error: unknown): boolean;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * No API key / credential was available to dispatch a request.
3
+ *
4
+ * The default message preserves the historical `"No API key for provider: X"`
5
+ * wording, which {@link Flag.AuthFailed}'s regex (`no api key`) keys off — but
6
+ * the flag is also attached structurally so classification never depends on the
7
+ * exact phrasing.
8
+ */
9
+ export declare class MissingApiKeyError extends Error {
10
+ readonly provider: string | undefined;
11
+ constructor(provider?: string, message?: string);
12
+ }
13
+ /** A user-facing login flow required an `onPrompt` callback that was not supplied. */
14
+ export declare class OnPromptRequiredError extends Error {
15
+ constructor(providerLabel: string);
16
+ }
17
+ /** An interactive login asked for an API key but the user supplied an empty value. */
18
+ export declare class ApiKeyRequiredError extends Error {
19
+ constructor(message?: string);
20
+ }
21
+ /**
22
+ * A user cancelled an interactive login / device flow. Classified as an abort
23
+ * so it is never surfaced as a retryable transient failure.
24
+ */
25
+ export declare class LoginCancelledError extends Error {
26
+ constructor(message?: string);
27
+ }
@@ -0,0 +1,23 @@
1
+ /** Which AWS credential-resolution path failed. */
2
+ export type AwsCredentialsErrorKind =
3
+ /** No usable credential source resolved (chain exhausted). */
4
+ "resolution"
5
+ /** SSO cache token missing (`aws sso login` not run). */
6
+ | "sso-token-missing"
7
+ /** SSO cache token present but expired. */
8
+ | "sso-token-expired"
9
+ /** SSO `GetRoleCredentials` call failed or returned no role. */
10
+ | "sso-role"
11
+ /** External `credential_process` failed, timed out, or emitted bad output. */
12
+ | "credential-process";
13
+ /** A failure resolving AWS credentials for the Bedrock provider. */
14
+ export declare class AwsCredentialsError extends Error {
15
+ readonly kind: AwsCredentialsErrorKind;
16
+ constructor(message: string, kind: AwsCredentialsErrorKind, options?: {
17
+ cause?: unknown;
18
+ });
19
+ }
20
+ /** A malformed AWS event-stream frame (bad length, CRC mismatch, unknown header type). */
21
+ export declare class EventStreamFrameError extends Error {
22
+ constructor(detail: string);
23
+ }
@@ -0,0 +1,102 @@
1
+ import type { CapturedHttpErrorResponse } from "../utils/http-inspector";
2
+ /** Prefix on errors raised when an Anthropic SSE stream envelope is malformed. */
3
+ export declare const STREAM_ENVELOPE_ERROR_PREFIX = "Anthropic stream envelope error:";
4
+ /** Structured HTTP errors thrown by provider clients. */
5
+ export interface ProviderHttpErrorOptions {
6
+ /** Response headers; enables `retry-after`/rate-limit extraction downstream. */
7
+ headers?: Headers;
8
+ /** Machine-readable error code from the response body (`error.code` / `error.type`). */
9
+ code?: string;
10
+ cause?: unknown;
11
+ }
12
+ /** Non-2xx HTTP response from a provider. */
13
+ export declare class ProviderHttpError extends Error {
14
+ readonly status: number;
15
+ readonly headers: Headers | undefined;
16
+ readonly code: string | undefined;
17
+ constructor(message: string, status: number, options?: ProviderHttpErrorOptions);
18
+ }
19
+ /** Non-2xx response from an OpenAI-wire endpoint, with the decoded body attached. */
20
+ export declare class OpenAIHttpError extends ProviderHttpError {
21
+ readonly captured: CapturedHttpErrorResponse;
22
+ constructor(message: string, captured: CapturedHttpErrorResponse, code?: string, cause?: unknown);
23
+ /**
24
+ * Pull a human-readable message and machine code out of an OpenAI-style error
25
+ * envelope (`{ error: { message, code, type } }`), tolerating the flat shapes
26
+ * compat hosts return (`{ error: "..." }`, `{ message: "..." }`) and falling
27
+ * back to the raw body text.
28
+ */
29
+ static parseEnvelope(bodyJson: unknown, bodyText: string | undefined): {
30
+ detail: string | undefined;
31
+ code: string | undefined;
32
+ };
33
+ }
34
+ /** Non-2xx response from the Anthropic API. */
35
+ export declare class AnthropicApiError extends ProviderHttpError {
36
+ readonly headers: Headers;
37
+ readonly requestId: string | null;
38
+ constructor(status: number, message: string, headers: Headers);
39
+ static fromResponse(response: Response): Promise<AnthropicApiError>;
40
+ }
41
+ /** Network-level failure (DNS, TLS, socket reset) after retries were exhausted. */
42
+ export declare class AnthropicConnectionError extends Error {
43
+ constructor(cause: unknown);
44
+ }
45
+ /** No response headers arrived within the configured request timeout. */
46
+ export declare class AnthropicConnectionTimeoutError extends Error {
47
+ constructor();
48
+ }
49
+ /**
50
+ * A malformed Anthropic SSE stream envelope — events arriving out of order
51
+ * (before `message_start`) or otherwise violating the message-event grammar.
52
+ * The message is prefixed with {@link STREAM_ENVELOPE_ERROR_PREFIX} so the
53
+ * shared envelope predicates classify it.
54
+ */
55
+ export declare class AnthropicStreamEnvelopeError extends Error {
56
+ constructor(detail: string);
57
+ }
58
+ /** Non-2xx response (or in-stream exception event) from the Bedrock runtime API. */
59
+ export declare class BedrockApiError extends ProviderHttpError {
60
+ readonly name = "BedrockApiError";
61
+ }
62
+ /** Non-2xx response (or in-stream error chunk) from the Cloud Code Assist API. */
63
+ export declare class GeminiCliApiError extends ProviderHttpError {
64
+ readonly name = "GeminiCliApiError";
65
+ }
66
+ /** Non-2xx response (or in-stream error chunk) from the Google Generative Language / Vertex API. */
67
+ export declare class GoogleApiError extends ProviderHttpError {
68
+ readonly name = "GoogleApiError";
69
+ }
70
+ /** Non-2xx response from the Ollama `/api/chat` endpoint. */
71
+ export declare class OllamaApiError extends ProviderHttpError {
72
+ readonly name = "OllamaApiError";
73
+ }
74
+ /** Auth gateway HTTP failure. */
75
+ export declare class AuthGatewayError extends ProviderHttpError {
76
+ constructor(message: string, status: number, headers?: Headers, code?: string);
77
+ }
78
+ export declare class CodexWebSocketTransportError extends Error {
79
+ constructor(detail: string);
80
+ }
81
+ export declare class CodexWhitespaceToolCallLoopError extends Error {
82
+ constructor(message: string);
83
+ }
84
+ export declare class CodexProviderStreamError extends Error {
85
+ readonly retryable: boolean;
86
+ constructor(message: string, options?: {
87
+ retryable?: boolean;
88
+ cause?: unknown;
89
+ });
90
+ }
91
+ export declare class AuthBrokerError extends Error {
92
+ readonly status: number | undefined;
93
+ readonly body: string | undefined;
94
+ constructor(message: string, opts?: {
95
+ status?: number;
96
+ body?: string;
97
+ cause?: unknown;
98
+ });
99
+ }
100
+ export declare class AuthBrokerStreamUnsupportedError extends AuthBrokerError {
101
+ constructor(message?: string);
102
+ }