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,715 @@
1
+ export * from "jeopi-catalog/effort";
2
+ export * from "jeopi-catalog/types";
3
+ import type { Type } from "arktype";
4
+ import type { DeleteArgs, DeleteResult, DiagnosticsArgs, DiagnosticsResult, GrepArgs, GrepResult, LsArgs, LsResult, McpResult, ReadArgs, ReadResult, ShellArgs, ShellResult, WriteArgs, WriteResult } from "jeopi-catalog/discovery/cursor-gen/agent_pb";
5
+ import type { Effort } from "jeopi-catalog/effort";
6
+ import type { Api, FetchImpl, Model, Provider, ThinkingBudgets, Usage } from "jeopi-catalog/types";
7
+ import type { ZodType, z } from "zod/v4";
8
+ import type { ApiKey } from "./auth-retry";
9
+ import type { BedrockOptions } from "./providers/amazon-bedrock";
10
+ import type { AnthropicOptions } from "./providers/anthropic";
11
+ import type { FallbackParam, StopDetails } from "./providers/anthropic-wire";
12
+ import type { AzureOpenAIResponsesOptions } from "./providers/azure-openai-responses";
13
+ import type { CursorOptions } from "./providers/cursor";
14
+ import type { DevinOptions } from "./providers/devin";
15
+ import type { GitLabDuoWorkflowOptions } from "./providers/gitlab-duo-workflow";
16
+ import type { GoogleOptions } from "./providers/google";
17
+ import type { GoogleGeminiCliOptions } from "./providers/google-gemini-cli";
18
+ import type { GoogleVertexOptions } from "./providers/google-vertex";
19
+ import type { OllamaChatOptions } from "./providers/ollama";
20
+ import type { OpenAICodexResponsesOptions } from "./providers/openai-codex-responses";
21
+ import type { OpenAICompletionsOptions } from "./providers/openai-completions";
22
+ import type { OpenAIResponsesOptions } from "./providers/openai-responses";
23
+ import type { kStreamingPartialJson } from "./utils/block-symbols";
24
+ import type { AssistantMessageEventStream } from "./utils/event-stream";
25
+ export type { StopDetails } from "./providers/anthropic-wire";
26
+ export type { AssistantMessageEventStream } from "./utils/event-stream";
27
+ /**
28
+ * Ceiling on the output-token count omp requests from any OpenAI-family endpoint
29
+ * (openai-responses, azure/xai responses, and openai-completions). Mirrors
30
+ * Anthropic's {@link CLAUDE_CODE_MAX_OUTPUT_TOKENS}.
31
+ *
32
+ * Catalog `maxTokens` frequently reflects a model's context window rather than a
33
+ * given upstream's real per-request output cap. OpenRouter, for instance,
34
+ * advertises 131072 output tokens for `z-ai/glm-4.7`, but the Cerebras upstream
35
+ * only allows ~131072 tokens total — so requesting the full ceiling overflows
36
+ * with a 400. Requested output is clamped to this value (and to `model.maxTokens`).
37
+ */
38
+ export declare const OPENAI_MAX_OUTPUT_TOKENS = 64000;
39
+ export interface ApiOptionsMap {
40
+ "anthropic-messages": AnthropicOptions;
41
+ "bedrock-converse-stream": BedrockOptions;
42
+ "openai-completions": OpenAICompletionsOptions;
43
+ "openai-responses": OpenAIResponsesOptions;
44
+ openrouter: OpenAIResponsesOptions | OpenAICompletionsOptions;
45
+ "openai-codex-responses": OpenAICodexResponsesOptions;
46
+ "azure-openai-responses": AzureOpenAIResponsesOptions;
47
+ "google-generative-ai": GoogleOptions;
48
+ "google-gemini-cli": GoogleGeminiCliOptions;
49
+ "google-vertex": GoogleVertexOptions;
50
+ "ollama-chat": OllamaChatOptions;
51
+ "cursor-agent": CursorOptions;
52
+ "gitlab-duo-agent": GitLabDuoWorkflowOptions;
53
+ "devin-agent": DevinOptions;
54
+ }
55
+ export type OptionsForApi<TApi extends Api> = StreamOptions | (TApi extends keyof ApiOptionsMap ? ApiOptionsMap[TApi] : never);
56
+ export interface TokenTaskBudget {
57
+ type: "tokens";
58
+ total: number;
59
+ remaining?: number;
60
+ }
61
+ export type MessageAttribution = "user" | "agent";
62
+ export type ToolChoice = "auto" | "none" | "any" | "required" | {
63
+ type: "function";
64
+ name: string;
65
+ } | {
66
+ type: "function";
67
+ function: {
68
+ name: string;
69
+ };
70
+ } | {
71
+ type: "tool";
72
+ name: string;
73
+ };
74
+ export type CacheRetention = "none" | "short" | "long";
75
+ /**
76
+ * Service tier hint for processing priority / cost control. These are the
77
+ * values providers consume on the wire:
78
+ *
79
+ * - OpenAI / OpenAI-Codex: sent verbatim as the `service_tier` field
80
+ * (`flex`/`scale`/`priority`).
81
+ * - Google (Gemini API + Vertex AI): sent as the top-level `serviceTier`
82
+ * field (`flex`/`priority`).
83
+ * - OpenRouter: passed through as `service_tier`; OpenRouter realizes it for
84
+ * the OpenAI- and Google-family upstreams it supports and ignores it
85
+ * otherwise.
86
+ * - Direct Anthropic: `"priority"` is translated into `speed: "fast"` plus the
87
+ * fast-mode beta on supported Opus models. Other tiers are ignored.
88
+ *
89
+ * Per-family scoping is expressed by {@link ServiceTierByFamily}, not by
90
+ * scoped sentinel values — see {@link serviceTierFamily}.
91
+ */
92
+ export type ServiceTier = "auto" | "default" | "flex" | "scale" | "priority";
93
+ /** Provider families that expose an independent service-tier knob. */
94
+ export type ServiceTierFamily = "openai" | "anthropic" | "google";
95
+ /**
96
+ * Per-family service-tier selection. A request consults only the entry for the
97
+ * family its model belongs to (see {@link resolveModelServiceTier}), so a user
98
+ * can opt one family into priority without affecting the others when switching
99
+ * models mid-session.
100
+ */
101
+ export type ServiceTierByFamily = Partial<Record<ServiceTierFamily, ServiceTier>>;
102
+ /**
103
+ * Classify a model into the service-tier family whose knob governs it, or
104
+ * `undefined` when the model exposes no serving-priority control.
105
+ *
106
+ * OpenRouter models are classified by id namespace (`anthropic/`, `google/`,
107
+ * `openai/`); Claude on Bedrock/Vertex (api `anthropic-messages`) is the
108
+ * anthropic family even though its provider is `amazon-bedrock`/`google-vertex`.
109
+ */
110
+ export declare function serviceTierFamily(model: Pick<Model, "provider" | "api" | "id">): ServiceTierFamily | undefined;
111
+ /**
112
+ * Reduce a per-family tier map to the single wire tier for `model` — the entry
113
+ * for the model's family, or `undefined` when the model has no family.
114
+ */
115
+ export declare function resolveModelServiceTier(tiers: ServiceTierByFamily | null | undefined, model: Pick<Model, "provider" | "api" | "id">): ServiceTier | undefined;
116
+ /**
117
+ * True when the tier should be sent on the wire as the provider's service-tier
118
+ * request field. OpenAI / OpenAI-Codex accept `flex`/`scale`/`priority`; Google
119
+ * (Gemini API + Vertex) and OpenRouter accept `flex`/`priority`; Fireworks
120
+ * Serverless realizes only its Priority serving path. Anthropic is absent — it
121
+ * realizes `priority` via `speed: "fast"`, not a service-tier field.
122
+ */
123
+ export declare function shouldSendServiceTier(serviceTier: ServiceTier | null | undefined, provider: Provider | undefined): boolean;
124
+ /**
125
+ * True when `priority` will actually be realized on the wire for `model`.
126
+ * Direct Anthropic realizes fast mode; OpenAI/Google/Fireworks emit the
127
+ * service-tier field; OpenRouter realizes it only for its OpenAI- and
128
+ * Google-family upstreams. Bedrock/Vertex Claude and OpenRouter Anthropic
129
+ * models do not realize priority and return `false`.
130
+ */
131
+ export declare function realizesPriorityServiceTier(serviceTier: ServiceTier | null | undefined, model: Pick<Model, "provider" | "api" | "id">): boolean;
132
+ /**
133
+ * Premium-request weight contributed by a priority request to a provider that
134
+ * realizes it and bills extra. Mirrors GitHub Copilot's `premiumRequests`
135
+ * accounting so the "premium requests" stat aggregates priority traffic across
136
+ * the OpenAI family, direct Anthropic fast mode, and Google priority.
137
+ *
138
+ * Returns 1 only when priority is actually realized on the wire for `model`
139
+ * (see {@link realizesPriorityServiceTier}) and the provider bills it as a
140
+ * premium request. OpenRouter is excluded — it bills per its own pricing, not
141
+ * Copilot-premium semantics — as are Bedrock/Vertex Claude, where priority is
142
+ * silently dropped.
143
+ */
144
+ export declare function getPriorityPremiumRequests(serviceTier: ServiceTier | null | undefined, model: Pick<Model, "provider" | "api" | "id">): number;
145
+ /**
146
+ * Coerce a persisted service-tier value to a {@link ServiceTierByFamily}. Newer
147
+ * sessions store the family map directly; legacy sessions stored a single
148
+ * scalar — `"priority"` applied everywhere, `"openai-only"`/`"claude-only"`
149
+ * scoped to one family, and the remaining values were OpenAI-only semantics.
150
+ */
151
+ export declare function coerceServiceTierByFamily(value: unknown): ServiceTierByFamily | undefined;
152
+ export interface ProviderSessionState {
153
+ close(): void;
154
+ }
155
+ export interface ProviderResponseMetadata {
156
+ status: number;
157
+ headers: Record<string, string>;
158
+ requestId?: string | null;
159
+ metadata?: Record<string, unknown>;
160
+ }
161
+ export interface RawSseEvent {
162
+ event: string | null;
163
+ data: string;
164
+ raw: string[];
165
+ }
166
+ export interface StreamOptions {
167
+ temperature?: number;
168
+ topP?: number;
169
+ topK?: number;
170
+ minP?: number;
171
+ presencePenalty?: number;
172
+ repetitionPenalty?: number;
173
+ /**
174
+ * Stop sequences. Anthropic encodes as `stop_sequences` (array, max 4);
175
+ * OpenAI chat-completions encodes as `stop` (string or array of up to 4);
176
+ * OpenAI Responses API has no `stop` field today (silently dropped by the
177
+ * provider when present).
178
+ */
179
+ stopSequences?: string[];
180
+ /**
181
+ * Frequency penalty (OpenAI). Penalizes new tokens based on existing frequency
182
+ * in the text so far. Range -2.0 to 2.0. Parallel to {@link presencePenalty}.
183
+ */
184
+ frequencyPenalty?: number;
185
+ maxTokens?: number;
186
+ signal?: AbortSignal;
187
+ apiKey?: string;
188
+ cacheRetention?: CacheRetention;
189
+ /**
190
+ * Additional headers to include in provider requests.
191
+ * These are merged on top of model-defined headers.
192
+ */
193
+ headers?: Record<string, string>;
194
+ /**
195
+ * Optional explicit request attribution override for providers that support it.
196
+ */
197
+ initiatorOverride?: MessageAttribution;
198
+ /**
199
+ * Maximum delay in milliseconds to wait for a retry when the server requests a long wait.
200
+ * If the server's requested delay exceeds this value, the request fails immediately
201
+ * with an error containing the requested delay, allowing higher-level retry logic
202
+ * to handle it with user visibility.
203
+ * Default: 60000 (60 seconds). Set to 0 to disable the cap.
204
+ */
205
+ maxRetryDelayMs?: number;
206
+ /**
207
+ * Optional metadata to include in API requests.
208
+ * Providers extract the fields they understand and ignore the rest.
209
+ * For example, Anthropic uses `user_id` for abuse tracking and rate limiting.
210
+ */
211
+ metadata?: Record<string, unknown>;
212
+ /**
213
+ * Config options for the thinking/response loop guard.
214
+ */
215
+ loopGuard?: {
216
+ enabled?: boolean;
217
+ checkAssistantContent?: boolean;
218
+ };
219
+ /**
220
+ * Advisory token budget for a full agentic loop. Anthropic encodes this as
221
+ * `output_config.task_budget` with the `task-budgets-2026-03-13` beta header.
222
+ */
223
+ taskBudget?: TokenTaskBudget;
224
+ /**
225
+ * Optional session identifier for providers that support session-based
226
+ * routing, request affinity, or transport reuse. Providers may also use this
227
+ * as the prompt-cache key when `promptCacheKey` is not set.
228
+ */
229
+ sessionId?: string;
230
+ /**
231
+ * Optional prompt-cache identity. When set, OpenAI Responses-compatible
232
+ * providers use this for `prompt_cache_key` while keeping `sessionId` for
233
+ * provider routing / conversation headers.
234
+ */
235
+ promptCacheKey?: string;
236
+ /**
237
+ * Provider-scoped mutable state store for this agent session.
238
+ * Providers can use this to persist transport/session state between turns.
239
+ */
240
+ providerSessionState?: Map<string, ProviderSessionState>;
241
+ /**
242
+ * Force Gemini model-mode Interactions API transport for providers that support it.
243
+ * When unset, those providers may still use Interactions to continue known
244
+ * server-side conversation lineage via `previousInteractionId` or stored state.
245
+ */
246
+ useInteractionsApi?: boolean;
247
+ /**
248
+ * Whether supported Interactions transports should store server-side conversation
249
+ * state and return response ids for follow-up turns. Defaults to true.
250
+ */
251
+ storeInteraction?: boolean;
252
+ /**
253
+ * Explicit Interactions response id to continue. Mutually exclusive with
254
+ * `storeInteraction: false` because the follow-up itself must be storable.
255
+ */
256
+ previousInteractionId?: string;
257
+ /**
258
+ * Optional per-provider concurrent request cap for LLM stream calls. Keys are
259
+ * provider ids (`model.provider`); positive numeric values cap in-flight
260
+ * requests across local OMP processes that share the same config root. Omitted
261
+ * providers are unlimited. Non-chat provider APIs that bypass stream helpers
262
+ * are not covered.
263
+ */
264
+ maxInFlightRequests?: Record<string, number>;
265
+ /**
266
+ * Optional callback for inspecting or replacing provider payloads before sending.
267
+ * Return undefined to keep the payload unchanged.
268
+ */
269
+ onPayload?: (payload: unknown, model?: Model<Api>) => unknown | undefined | Promise<unknown | undefined>;
270
+ /**
271
+ * Optional callback for provider response metadata after headers are received.
272
+ */
273
+ onResponse?: (response: ProviderResponseMetadata, model?: Model<Api>) => void | Promise<void>;
274
+ /**
275
+ * Optional callback for raw Server-Sent Events as they arrive from HTTP streaming providers,
276
+ * plus synthesized SSE-shaped frames for the Codex WebSocket transport (one synthetic frame
277
+ * per JSON request/response message). WebSocket frames are tagged with a leading
278
+ * `: ws → <type>` (outbound) or `: ws ← <type>` (inbound) comment line in `RawSseEvent.raw`.
279
+ *
280
+ * Diagnostic only: provider implementations must ignore callback failures and must not
281
+ * let observers alter stream contents.
282
+ */
283
+ onSseEvent?: (event: RawSseEvent, model?: Model<Api>) => void;
284
+ /**
285
+ * Optional override for the first-event watchdog in milliseconds. Built-in
286
+ * providers apply this budget twice when they can: once to the underlying
287
+ * SDK/request while waiting for the HTTP stream object to exist, then again
288
+ * in the iterator while waiting for the first semantic stream event. Set to
289
+ * `0` to disable both layers for this request. After the first semantic
290
+ * event arrives, `streamIdleTimeoutMs` governs inter-event stalls. Falls
291
+ * back to `PI_STREAM_FIRST_EVENT_TIMEOUT_MS` and then to a 100s default.
292
+ * OpenAI-family transports additionally honor
293
+ * `PI_OPENAI_STREAM_FIRST_EVENT_TIMEOUT_MS` as the most-specific override and
294
+ * floor the first-event budget at the resolved idle (per-call
295
+ * `streamIdleTimeoutMs` or `PI_OPENAI_STREAM_IDLE_TIMEOUT_MS`) so slow local
296
+ * OpenAI-compatible servers are not undercut during prompt processing.
297
+ *
298
+ * Iterator-level honored by: every built-in provider (via the lazy-stream
299
+ * forwarder in `register-builtins`). SDK-request honored by:
300
+ * `openai-completions`, `openai-responses`, `azure-openai-responses`,
301
+ * `anthropic-messages`.
302
+ */
303
+ streamFirstEventTimeoutMs?: number;
304
+ /**
305
+ * Optional override for the maximum idle gap between streamed events in
306
+ * milliseconds. Once the first event arrives, this guards against silent
307
+ * mid-stream stalls (broker dies, half-open socket, model produces no real
308
+ * progress for too long). Set to `0` to disable. Falls back to
309
+ * `PI_STREAM_IDLE_TIMEOUT_MS` (alias: `PI_OPENAI_STREAM_IDLE_TIMEOUT_MS`)
310
+ * and then to a 120s default.
311
+ */
312
+ streamIdleTimeoutMs?: number;
313
+ /**
314
+ * Optional retry delay hook for tests and transports that need custom scheduling.
315
+ */
316
+ providerRetryWait?: (delayMs: number, signal?: AbortSignal) => Promise<void>;
317
+ /**
318
+ * Optional `fetch` implementation override. Providers route every HTTP
319
+ * request — direct calls, SDK clients, and retry helpers — through this
320
+ * implementation when set. Defaults to `globalThis.fetch`. Providers that
321
+ * do not use `fetch` (Bedrock's AWS SDK transport, Cursor's HTTP/2
322
+ * channel) silently ignore the override.
323
+ */
324
+ fetch?: FetchImpl;
325
+ /** Current session working directory for providers that need workspace-scoped discovery. */
326
+ cwd?: string;
327
+ /** Cursor exec/MCP tool handlers (cursor-agent only). */
328
+ execHandlers?: CursorExecHandlers;
329
+ }
330
+ export interface SimpleStreamOptions extends Omit<StreamOptions, "apiKey"> {
331
+ /**
332
+ * API key for the request: either a static bearer string, or an
333
+ * {@link ApiKeyResolver} that mints/rotates the key across the central
334
+ * a/b/c auth-retry policy. `streamSimple`/`completeSimple` resolve a
335
+ * resolver to a string before per-provider dispatch, so providers only
336
+ * ever see the resolved {@link StreamOptions.apiKey} string.
337
+ */
338
+ apiKey?: ApiKey;
339
+ reasoning?: Effort;
340
+ /**
341
+ * Force-disable reasoning for the request even when the model supports it.
342
+ * Takes precedence over `reasoning`. Useful for fast utility calls
343
+ * (e.g. title generation) where the model would otherwise burn the entire
344
+ * output budget on internal thinking. Provider support is format-specific:
345
+ * some transports can disable reasoning directly, while generic
346
+ * effort-based OpenAI-compatible endpoints use the lowest supported effort.
347
+ */
348
+ disableReasoning?: boolean;
349
+ /**
350
+ * If true, request that the provider omit thinking/reasoning summaries
351
+ * from the response (e.g. Anthropic `thinking.display = "omitted"`,
352
+ * OpenAI Responses `reasoning.summary` left unset). The model still
353
+ * reasons internally; only the human-readable summary stream is dropped.
354
+ * Useful when the UI hides thinking blocks anyway and the summary is wasted bandwidth.
355
+ */
356
+ hideThinkingSummary?: boolean;
357
+ /** OpenAI Responses/Codex `text.verbosity` response detail level. */
358
+ textVerbosity?: "low" | "medium" | "high";
359
+ /** Custom token budgets for thinking levels (token-based providers only) */
360
+ thinkingBudgets?: ThinkingBudgets;
361
+ /** Cursor exec handlers for local tool execution */
362
+ cursorExecHandlers?: CursorExecHandlers;
363
+ /** Hook to handle tool results from Cursor exec */
364
+ cursorOnToolResult?: CursorToolResultHandler;
365
+ /** Optional tool choice override for compatible providers */
366
+ toolChoice?: ToolChoice;
367
+ /** OpenAI service tier for processing priority/cost control. Ignored by non-OpenAI providers. */
368
+ serviceTier?: ServiceTier;
369
+ /** API format for Kimi Code provider: "openai" or "anthropic" (default: "anthropic") */
370
+ kimiApiFormat?: "openai" | "anthropic";
371
+ /** API format for Synthetic provider: "openai" or "anthropic" (default: "openai") */
372
+ syntheticApiFormat?: "openai" | "anthropic";
373
+ /** Hint that websocket transport should be preferred when supported by the provider implementation. */
374
+ preferWebsockets?: boolean;
375
+ /**
376
+ * OpenRouter routing-variant suffix automatically appended to model IDs when
377
+ * the request targets OpenRouter (`model.provider === "openrouter"`). Common
378
+ * values: `"nitro"` (throughput), `"floor"` (cheapest), `"online"` (web
379
+ * search plugin), `"exacto"` (cherry-picked high-quality providers, only
380
+ * defined for some models). Ignored when the resolved model id already
381
+ * contains a `:<variant>` suffix (e.g. the user typed `:nitro` explicitly
382
+ * or the catalog entry already names the variant).
383
+ */
384
+ openrouterVariant?: string;
385
+ /** Antigravity endpoint routing mode: "auto" (default with failover), "production", "sandbox". */
386
+ antigravityEndpointMode?: "auto" | "production" | "sandbox";
387
+ /**
388
+ * Anthropic `server-side-fallback-2026-06-01` fallback chain (top-level
389
+ * `fallbacks` request field). Opt-in ONLY — leaving this undefined is
390
+ * the default and preserves the pre-fallback behavior on every
391
+ * provider. Non-Anthropic providers ignore the field.
392
+ */
393
+ fallbacks?: FallbackParam[];
394
+ }
395
+ export type StreamFunction<TApi extends Api> = (model: Model<TApi>, context: Context, options: OptionsForApi<TApi>) => AssistantMessageEventStream;
396
+ export interface TextSignatureV1 {
397
+ v: 1;
398
+ id: string;
399
+ phase?: "commentary" | "final_answer";
400
+ }
401
+ export interface TextContent {
402
+ type: "text";
403
+ text: string;
404
+ textSignature?: string;
405
+ }
406
+ export interface ThinkingContent {
407
+ type: "thinking";
408
+ thinking: string;
409
+ thinkingSignature?: string;
410
+ itemId?: string;
411
+ }
412
+ export interface RedactedThinkingContent {
413
+ type: "redactedThinking";
414
+ data: string;
415
+ }
416
+ /**
417
+ * Anthropic server-side-fallback boundary marker persisted on assistant
418
+ * turns whose provider request opted into
419
+ * `AnthropicOptions.fallbacks`. Consumers other than the Anthropic
420
+ * provider MUST ignore it — `transformMessages` strips the block on any
421
+ * cross-provider hop and on non-official Anthropic replays, so downstream
422
+ * converters never see it.
423
+ */
424
+ export interface AnthropicFallbackContent {
425
+ type: "fallback";
426
+ from: {
427
+ model: string;
428
+ };
429
+ to: {
430
+ model: string;
431
+ };
432
+ }
433
+ export interface ImageContent {
434
+ type: "image";
435
+ data: string;
436
+ mimeType: string;
437
+ /**
438
+ * OpenAI-only resolution hint. `"original"` preserves native resolution
439
+ * (required for snapcompact frames, whose glyphs do not survive the
440
+ * default `auto` downscale). Providers without a detail knob ignore it.
441
+ */
442
+ detail?: "auto" | "low" | "high" | "original";
443
+ }
444
+ export interface ToolCall {
445
+ type: "toolCall";
446
+ id: string;
447
+ name: string;
448
+ arguments: Record<string, unknown>;
449
+ [kStreamingPartialJson]?: string;
450
+ thoughtSignature?: string;
451
+ intent?: string;
452
+ /**
453
+ * Verbatim in-band syntax block that produced this synthetic `ptc_*` call.
454
+ * Present only for owned prompt/tool-call formats; provider-native calls omit it.
455
+ */
456
+ rawBlock?: string;
457
+ /**
458
+ * Original wire-level name when the tool was invoked via OpenAI's custom-tool
459
+ * mechanism (e.g., `apply_patch`). Set by `openai-responses` on receive so
460
+ * the history-replay path can re-emit the call as `custom_tool_call` with
461
+ * its paired tool-result as `custom_tool_call_output`. Absent for regular
462
+ * JSON function tools.
463
+ */
464
+ customWireName?: string;
465
+ }
466
+ export type StopReason = "stop" | "length" | "toolUse" | "error" | "aborted";
467
+ export interface OpenAIResponsesHistoryPayload {
468
+ type: "openaiResponsesHistory";
469
+ provider?: string;
470
+ dt?: boolean;
471
+ items: Array<Record<string, unknown>>;
472
+ }
473
+ export type ProviderPayload = OpenAIResponsesHistoryPayload;
474
+ export interface UserMessage {
475
+ role: "user";
476
+ content: string | (TextContent | ImageContent)[];
477
+ /** True if the message was injected by the system (e.g., auto-continue). */
478
+ synthetic?: boolean;
479
+ /** True when injected mid-turn as a steer; consumed by the agent's pre-LLM transform to wrap it for emphasis. Never rendered. */
480
+ steering?: boolean;
481
+ /** Who initiated this message for billing/attribution semantics. */
482
+ attribution?: MessageAttribution;
483
+ /** Provider-specific opaque payload used to reconstruct transport-native history. */
484
+ providerPayload?: ProviderPayload;
485
+ timestamp: number;
486
+ }
487
+ export interface DeveloperMessage {
488
+ role: "developer";
489
+ content: string | (TextContent | ImageContent)[];
490
+ /** Who initiated this message for billing/attribution semantics. */
491
+ attribution?: MessageAttribution;
492
+ /** Provider-specific opaque payload used to reconstruct transport-native history. */
493
+ providerPayload?: ProviderPayload;
494
+ timestamp: number;
495
+ }
496
+ export interface ContextSnapshot {
497
+ promptTokens: number;
498
+ nonMessageTokens: number;
499
+ lastMessageTimestamp?: number;
500
+ }
501
+ export interface AssistantMessage {
502
+ role: "assistant";
503
+ content: (TextContent | ThinkingContent | RedactedThinkingContent | AnthropicFallbackContent | ToolCall)[];
504
+ api: Api;
505
+ provider: Provider;
506
+ model: string;
507
+ contextSnapshot?: ContextSnapshot;
508
+ responseId?: string;
509
+ /**
510
+ * Name of the upstream provider an aggregator routed this request to, as
511
+ * reported in the response (e.g. OpenRouter's top-level `provider` field:
512
+ * `"OpenAI"`, `"Anthropic"`, `"Together"`). Distinct from `provider`, which
513
+ * is the configured gateway we called (`"openrouter"`). Undefined for direct
514
+ * providers that expose no such field.
515
+ */
516
+ upstreamProvider?: string;
517
+ usage: Usage;
518
+ stopReason: StopReason;
519
+ stopDetails?: StopDetails | null;
520
+ errorMessage?: string;
521
+ /** HTTP status surfaced by the provider when the request failed. Populated by every provider's catch block alongside `errorMessage` so consumers (auth retry, telemetry, UI) can branch without regex-scraping the message. */
522
+ errorStatus?: number;
523
+ /** Structured machine-readable error classifier; see `utils/error-id.ts` for bit layout and helpers. */
524
+ errorId?: number;
525
+ /**
526
+ * Stable identifiers for request features the provider silently dropped
527
+ * during this turn (e.g. `"priority"`). Set when a server-side rejection
528
+ * triggered an in-provider fallback retry that succeeded without the
529
+ * feature. Callers can use this to sync user-facing toggles back to the
530
+ * server's actual state.
531
+ */
532
+ disabledFeatures?: string[];
533
+ /** Provider-specific opaque payload used to reconstruct transport-native history. */
534
+ providerPayload?: ProviderPayload;
535
+ timestamp: number;
536
+ duration?: number;
537
+ ttft?: number;
538
+ }
539
+ export interface ToolResultMessage<TDetails = unknown> {
540
+ role: "toolResult";
541
+ toolCallId: string;
542
+ toolName: string;
543
+ content: (TextContent | ImageContent)[];
544
+ details?: TDetails;
545
+ isError: boolean;
546
+ /** Who initiated this message for billing/attribution semantics. */
547
+ attribution?: MessageAttribution;
548
+ /** Timestamp when output was pruned (ms since epoch). Undefined if unpruned. */
549
+ prunedAt?: number;
550
+ /**
551
+ * Tool-declared: this result carried no information worth retaining once
552
+ * consumed (zero matches, elapsed wait). Compaction passes may elide it.
553
+ * Never set together with isError.
554
+ */
555
+ useless?: boolean;
556
+ timestamp: number;
557
+ }
558
+ export type Message = UserMessage | DeveloperMessage | AssistantMessage | ToolResultMessage;
559
+ export type CursorExecHandlerResult<T> = {
560
+ result: T;
561
+ toolResult?: ToolResultMessage;
562
+ } | T | ToolResultMessage;
563
+ export type CursorToolResultHandler = (result: ToolResultMessage) => ToolResultMessage | undefined | Promise<ToolResultMessage | undefined>;
564
+ export interface CursorMcpCall {
565
+ name: string;
566
+ providerIdentifier: string;
567
+ toolName: string;
568
+ toolCallId: string;
569
+ args: Record<string, unknown>;
570
+ rawArgs: Record<string, Uint8Array>;
571
+ }
572
+ export interface CursorShellStreamCallbacks {
573
+ onStdout(data: string): void;
574
+ onStderr(data: string): void;
575
+ }
576
+ export interface CursorExecHandlers {
577
+ read?: (args: ReadArgs) => Promise<CursorExecHandlerResult<ReadResult>>;
578
+ ls?: (args: LsArgs) => Promise<CursorExecHandlerResult<LsResult>>;
579
+ grep?: (args: GrepArgs) => Promise<CursorExecHandlerResult<GrepResult>>;
580
+ write?: (args: WriteArgs) => Promise<CursorExecHandlerResult<WriteResult>>;
581
+ delete?: (args: DeleteArgs) => Promise<CursorExecHandlerResult<DeleteResult>>;
582
+ shell?: (args: ShellArgs) => Promise<CursorExecHandlerResult<ShellResult>>;
583
+ shellStream?: (args: ShellArgs, callbacks: CursorShellStreamCallbacks) => Promise<CursorExecHandlerResult<ShellResult>>;
584
+ diagnostics?: (args: DiagnosticsArgs) => Promise<CursorExecHandlerResult<DiagnosticsResult>>;
585
+ mcp?: (call: CursorMcpCall) => Promise<CursorExecHandlerResult<McpResult>>;
586
+ onToolResult?: CursorToolResultHandler;
587
+ }
588
+ /**
589
+ * Plain JSON Schema document used by extension-authored tools (legacy TypeBox
590
+ * emits this shape). Distinguished from arktype at runtime.
591
+ */
592
+ export type TJsonSchema = Record<string, unknown>;
593
+ /**
594
+ * Schema type accepted by the {@link Tool} interface.
595
+ *
596
+ * Canonical authoring uses Zod or ArkType. Extension compat may supply a JSON
597
+ * Schema object (including TypeBox static schema objects).
598
+ */
599
+ export type TSchema = ZodType | Type | TJsonSchema;
600
+ /** Resolve parameter types for tool execution / handlers. */
601
+ export type Static<S> = S extends ZodType ? z.infer<S> : S extends Type ? S["infer"] : S extends {
602
+ static: infer T;
603
+ } ? T : unknown;
604
+ export interface ToolCallExample<TArgs = Record<string, unknown>> {
605
+ caption?: string;
606
+ call: TArgs;
607
+ }
608
+ export interface ToolCompareExample<TArgs = Record<string, unknown>> {
609
+ caption?: string;
610
+ bad: TArgs;
611
+ good: TArgs;
612
+ }
613
+ export interface ToolNoteExample {
614
+ caption: string;
615
+ note?: string;
616
+ }
617
+ export type ToolExample<TArgs = Record<string, unknown>> = ToolCallExample<TArgs> | ToolCompareExample<TArgs> | ToolNoteExample;
618
+ export interface Tool<TParameters extends TSchema = TSchema> {
619
+ name: string;
620
+ description: string;
621
+ parameters: TParameters;
622
+ /** If true, tool is strictly typed and validated against the parameters schema before execution */
623
+ strict?: boolean;
624
+ /**
625
+ * Optional grammar constraint for OpenAI custom-tool emission.
626
+ * When set, providers that support grammar-constrained tools (currently only
627
+ * `openai-responses` against models with the right capability flag) may emit
628
+ * this tool as `{type: "custom", format: {type: "grammar", …}}` instead of a
629
+ * JSON function tool. Other providers ignore the field.
630
+ */
631
+ customFormat?: {
632
+ syntax: "lark" | "regex";
633
+ definition: string;
634
+ };
635
+ /**
636
+ * Optional wire-level name used when this tool is emitted as a custom tool
637
+ * (e.g. OpenAI's `{type: "custom"}` shape). Models trained on specific tool
638
+ * names — like GPT-5 on `apply_patch` — need to see that exact name on the
639
+ * wire, but it may differ from the harness-internal `name`. The agent-loop
640
+ * dispatcher matches both `name` and `customWireName` so returned tool
641
+ * calls route correctly. Absent for regular JSON function tools.
642
+ */
643
+ customWireName?: string;
644
+ /**
645
+ * Illustrative calls/notes; the AI layer renders them into an `<examples>`
646
+ * block in the model's native tool-call syntax and appends to the wire
647
+ * description. Author `call`/`bad`/`good` as plain argument objects WITHOUT
648
+ * `i` — when intent tracing injects `i` into the schema, the renderer adds
649
+ * a placeholder `i` automatically. Type each tool's `examples` against its
650
+ * own schema (e.g. `readonly ToolExample<typeof schema["type"]>[]`).
651
+ */
652
+ examples?: readonly ToolExample[];
653
+ }
654
+ export interface Context {
655
+ systemPrompt?: string[];
656
+ messages: Message[];
657
+ tools?: Tool[];
658
+ }
659
+ export type AssistantMessageEvent = {
660
+ type: "start";
661
+ contentIndex?: undefined;
662
+ partial: AssistantMessage;
663
+ } | {
664
+ type: "text_start";
665
+ contentIndex: number;
666
+ partial: AssistantMessage;
667
+ } | {
668
+ type: "text_delta";
669
+ contentIndex: number;
670
+ delta: string;
671
+ partial: AssistantMessage;
672
+ } | {
673
+ type: "text_end";
674
+ contentIndex: number;
675
+ content: string;
676
+ partial: AssistantMessage;
677
+ } | {
678
+ type: "thinking_start";
679
+ contentIndex: number;
680
+ partial: AssistantMessage;
681
+ } | {
682
+ type: "thinking_delta";
683
+ contentIndex: number;
684
+ delta: string;
685
+ partial: AssistantMessage;
686
+ } | {
687
+ type: "thinking_end";
688
+ contentIndex: number;
689
+ content: string;
690
+ partial: AssistantMessage;
691
+ } | {
692
+ type: "toolcall_start";
693
+ contentIndex: number;
694
+ partial: AssistantMessage;
695
+ } | {
696
+ type: "toolcall_delta";
697
+ contentIndex: number;
698
+ delta: string;
699
+ partial: AssistantMessage;
700
+ } | {
701
+ type: "toolcall_end";
702
+ contentIndex: number;
703
+ toolCall: ToolCall;
704
+ partial: AssistantMessage;
705
+ } | {
706
+ type: "done";
707
+ contentIndex?: undefined;
708
+ reason: Extract<StopReason, "stop" | "length" | "toolUse">;
709
+ message: AssistantMessage;
710
+ } | {
711
+ type: "error";
712
+ contentIndex?: undefined;
713
+ reason: Extract<StopReason, "aborted" | "error">;
714
+ error: AssistantMessage;
715
+ };