@theoremjs/agents 0.3.0 → 0.3.2

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 (570) hide show
  1. package/README.md +277 -995
  2. package/esm/mod.d.ts +34 -20
  3. package/esm/mod.js +19 -12
  4. package/esm/src/cli/commands/bench.js +36 -14
  5. package/esm/src/cli/commands/detect-compile.d.ts +17 -0
  6. package/esm/src/cli/commands/detect-compile.js +22 -0
  7. package/esm/src/cli/commands/eval.d.ts +3 -3
  8. package/esm/src/cli/commands/fuzz-canary.js +55 -16
  9. package/esm/src/cli/commands/profile.js +4 -4
  10. package/esm/src/cli/commands/run.d.ts +2 -2
  11. package/esm/src/cli/commands/run.js +1 -1
  12. package/esm/src/cli/commands/test.d.ts +4 -3
  13. package/esm/src/cli/commands/test.js +2 -2
  14. package/esm/src/cli/index.js +9 -9
  15. package/esm/src/cli/matrix/fixtures.js +25 -30
  16. package/esm/src/evals/attachments.d.ts +1 -0
  17. package/esm/src/evals/attachments.js +4 -2
  18. package/esm/src/evals/breakdown.d.ts +2 -0
  19. package/esm/src/evals/breakdown.js +1 -0
  20. package/esm/src/evals/graders/answer.d.ts +3 -0
  21. package/esm/src/evals/graders/answer.js +1 -0
  22. package/esm/src/evals/graders/code.d.ts +7 -31
  23. package/esm/src/evals/graders/code.js +4 -25
  24. package/esm/src/evals/graders/judge.d.ts +4 -0
  25. package/esm/src/evals/graders/judge.js +7 -5
  26. package/esm/src/evals/graders/latency.d.ts +1 -0
  27. package/esm/src/evals/graders/latency.js +3 -2
  28. package/esm/src/evals/graders/live.d.ts +3 -0
  29. package/esm/src/evals/graders/live.js +2 -0
  30. package/esm/src/evals/graders/media.js +1 -2
  31. package/esm/src/evals/graders/shared.js +1 -1
  32. package/esm/src/evals/graders/transcript.d.ts +2 -0
  33. package/esm/src/evals/graders/transcript.js +5 -3
  34. package/esm/src/evals/mod.d.ts +1 -9
  35. package/esm/src/evals/mod.js +1 -9
  36. package/esm/src/evals/record.d.ts +6 -0
  37. package/esm/src/evals/record.js +4 -2
  38. package/esm/src/evals/rubrics/mod.d.ts +1 -1
  39. package/esm/src/evals/rubrics/mod.js +1 -1
  40. package/esm/src/evals/rubrics/mustache.js +1 -1
  41. package/esm/src/evals/rubrics/types.js +1 -1
  42. package/esm/src/evals/run.d.ts +9 -52
  43. package/esm/src/evals/run.js +12 -46
  44. package/esm/src/evals/suite.d.ts +12 -3
  45. package/esm/src/evals/suite.js +9 -4
  46. package/esm/src/evals/summary.d.ts +3 -0
  47. package/esm/src/evals/summary.js +1 -0
  48. package/esm/src/evals/trial.d.ts +3 -16
  49. package/esm/src/evals/trial.js +7 -30
  50. package/esm/src/evals/types.d.ts +30 -121
  51. package/esm/src/evals/types.js +3 -16
  52. package/esm/src/evals/verdict.d.ts +5 -0
  53. package/esm/src/evals/verdict.js +4 -1
  54. package/esm/src/guardrails/boundaries.d.ts +41 -0
  55. package/esm/src/guardrails/boundaries.js +103 -0
  56. package/esm/src/guardrails/canary-gate.d.ts +1 -0
  57. package/esm/src/guardrails/canary.d.ts +49 -15
  58. package/esm/src/guardrails/canary.js +103 -30
  59. package/esm/src/guardrails/compile-egress.d.ts +6 -5
  60. package/esm/src/guardrails/compile-egress.js +6 -5
  61. package/esm/src/guardrails/corpus/canary-egress-attacks.d.ts +3 -1
  62. package/esm/src/guardrails/corpus/canary-egress-attacks.js +4 -2
  63. package/esm/src/guardrails/corpus/fuzz-inbound.js +14 -17
  64. package/esm/src/guardrails/corpus/inbound-payloads.d.ts +2 -0
  65. package/esm/src/guardrails/corpus/inbound-payloads.js +4 -2
  66. package/esm/src/guardrails/corpus/live-attacks.d.ts +2 -0
  67. package/esm/src/guardrails/corpus/live-attacks.js +6 -1
  68. package/esm/src/guardrails/corpus/mod.d.ts +1 -1
  69. package/esm/src/guardrails/corpus/secrets.d.ts +3 -3
  70. package/esm/src/guardrails/corpus/secrets.js +2 -2
  71. package/esm/src/guardrails/corpus/strings.d.ts +1 -1
  72. package/esm/src/guardrails/corpus/strings.js +1 -1
  73. package/esm/src/guardrails/corpus/types.d.ts +5 -1
  74. package/esm/src/guardrails/credential-rules.d.ts +36 -0
  75. package/esm/src/guardrails/credential-rules.js +3001 -0
  76. package/esm/src/guardrails/credential-scan.d.ts +45 -0
  77. package/esm/src/guardrails/credential-scan.js +172 -0
  78. package/esm/src/guardrails/destinations.d.ts +45 -0
  79. package/esm/src/guardrails/destinations.js +234 -0
  80. package/esm/src/guardrails/detect-at.d.ts +107 -0
  81. package/esm/src/guardrails/detect-at.js +434 -0
  82. package/esm/src/guardrails/detect-reply.d.ts +61 -0
  83. package/esm/src/guardrails/detect-reply.js +95 -0
  84. package/esm/src/guardrails/detect-stream.d.ts +33 -0
  85. package/esm/src/guardrails/detect-stream.js +77 -0
  86. package/esm/src/guardrails/detectors.d.ts +216 -0
  87. package/esm/src/guardrails/detectors.js +503 -0
  88. package/esm/src/guardrails/egress-automata.d.ts +4 -6
  89. package/esm/src/guardrails/egress-automata.js +24095 -4572
  90. package/esm/src/guardrails/egress-compiler.d.ts +38 -16
  91. package/esm/src/guardrails/egress-compiler.js +254 -60
  92. package/esm/src/guardrails/egress-patterns.d.ts +4 -2
  93. package/esm/src/guardrails/egress-patterns.js +6 -2
  94. package/esm/src/guardrails/egress-stream.d.ts +54 -36
  95. package/esm/src/guardrails/egress-stream.js +253 -124
  96. package/esm/src/guardrails/egress-urls.d.ts +6 -3
  97. package/esm/src/guardrails/egress-urls.js +14 -22
  98. package/esm/src/guardrails/egress.d.ts +26 -86
  99. package/esm/src/guardrails/egress.js +59 -309
  100. package/esm/src/guardrails/error.d.ts +13 -8
  101. package/esm/src/guardrails/error.js +25 -18
  102. package/esm/src/guardrails/event-schemas.d.ts +46 -3
  103. package/esm/src/guardrails/event-schemas.js +12 -5
  104. package/esm/src/guardrails/events.d.ts +5 -1
  105. package/esm/src/guardrails/events.js +4 -1
  106. package/esm/src/guardrails/hints.d.ts +14 -0
  107. package/esm/src/guardrails/hints.js +57 -0
  108. package/esm/src/guardrails/hits.d.ts +7 -1
  109. package/esm/src/guardrails/hits.js +12 -1
  110. package/esm/src/guardrails/host-patterns.d.ts +85 -0
  111. package/esm/src/guardrails/host-patterns.js +173 -0
  112. package/esm/src/guardrails/injection-patterns.d.ts +6 -1
  113. package/esm/src/guardrails/injection-patterns.js +33 -1
  114. package/esm/src/guardrails/injection-reversed.d.ts +9 -0
  115. package/esm/src/guardrails/injection-reversed.js +49 -0
  116. package/esm/src/guardrails/injection.d.ts +17 -1
  117. package/esm/src/guardrails/injection.js +259 -36
  118. package/esm/src/guardrails/labels.d.ts +40 -0
  119. package/esm/src/guardrails/labels.js +881 -0
  120. package/esm/src/guardrails/live-outbound-gate.d.ts +9 -8
  121. package/esm/src/guardrails/live-outbound-gate.js +100 -107
  122. package/esm/src/guardrails/mod.d.ts +30 -22
  123. package/esm/src/guardrails/mod.js +19 -14
  124. package/esm/src/guardrails/network.d.ts +4 -0
  125. package/esm/src/guardrails/network.js +21 -19
  126. package/esm/src/guardrails/normalize.d.ts +15 -1
  127. package/esm/src/guardrails/normalize.js +34 -1
  128. package/esm/src/guardrails/policy.d.ts +2 -17
  129. package/esm/src/guardrails/policy.js +12 -41
  130. package/esm/src/guardrails/progressive-yield.d.ts +65 -24
  131. package/esm/src/guardrails/progressive-yield.js +191 -147
  132. package/esm/src/guardrails/prompt-echo.d.ts +4 -2
  133. package/esm/src/guardrails/prompt-echo.js +87 -6
  134. package/esm/src/guardrails/quota.d.ts +4 -1
  135. package/esm/src/guardrails/quota.js +7 -2
  136. package/esm/src/guardrails/rules.d.ts +20 -29
  137. package/esm/src/guardrails/rules.js +23 -30
  138. package/esm/src/guardrails/sanitize.d.ts +32 -15
  139. package/esm/src/guardrails/sanitize.js +100 -124
  140. package/esm/src/guardrails/sensitive-groups.d.ts +21 -0
  141. package/esm/src/guardrails/sensitive-groups.js +12 -0
  142. package/esm/src/guardrails/sensitive.d.ts +16 -23
  143. package/esm/src/guardrails/sensitive.js +168 -47
  144. package/esm/src/guardrails/serialize.d.ts +1 -0
  145. package/esm/src/guardrails/testing.d.ts +4 -2
  146. package/esm/src/guardrails/testing.js +4 -2
  147. package/esm/src/guardrails/theorem-error.d.ts +5 -2
  148. package/esm/src/guardrails/theorem-error.js +6 -3
  149. package/esm/src/guardrails/thought-guard.d.ts +34 -13
  150. package/esm/src/guardrails/thought-guard.js +264 -64
  151. package/esm/src/guardrails/tool-directives.d.ts +29 -10
  152. package/esm/src/guardrails/tool-directives.js +133 -47
  153. package/esm/src/guardrails/tool-leak.d.ts +26 -0
  154. package/esm/src/guardrails/tool-leak.js +45 -0
  155. package/esm/src/guardrails/tool-result.d.ts +45 -14
  156. package/esm/src/guardrails/tool-result.js +94 -70
  157. package/esm/src/guardrails/types.d.ts +79 -71
  158. package/esm/src/guardrails/types.js +11 -7
  159. package/esm/src/host/client-turn.d.ts +29 -2
  160. package/esm/src/host/client-turn.js +46 -4
  161. package/esm/src/host/mint-trace.d.ts +1 -0
  162. package/esm/src/host/mint-trace.js +3 -2
  163. package/esm/src/host/mod.d.ts +2 -2
  164. package/esm/src/host/mod.js +1 -1
  165. package/esm/src/host/readStreamingJsonStringField.js +2 -43
  166. package/esm/src/host/reply.d.ts +6 -0
  167. package/esm/src/host/reply.js +8 -1
  168. package/esm/src/interface/blocks.d.ts +3 -0
  169. package/esm/src/interface/blocks.js +84 -14
  170. package/esm/src/interface/composer-actions.d.ts +4 -0
  171. package/esm/src/interface/composer-actions.js +5 -3
  172. package/esm/src/interface/draft.d.ts +6 -0
  173. package/esm/src/interface/draft.js +22 -11
  174. package/esm/src/interface/from-profile.d.ts +13 -1
  175. package/esm/src/interface/from-profile.js +66 -31
  176. package/esm/src/interface/history.d.ts +9 -3
  177. package/esm/src/interface/history.js +33 -24
  178. package/esm/src/interface/inputs.d.ts +1 -0
  179. package/esm/src/interface/inputs.js +3 -0
  180. package/esm/src/interface/mod.d.ts +4 -2
  181. package/esm/src/interface/mod.js +3 -2
  182. package/esm/src/interface/models.d.ts +7 -0
  183. package/esm/src/interface/models.js +5 -0
  184. package/esm/src/interface/pending.d.ts +9 -0
  185. package/esm/src/interface/pending.js +9 -3
  186. package/esm/src/interface/profile-interface.js +54 -40
  187. package/esm/src/interface/session.d.ts +12 -5
  188. package/esm/src/interface/session.js +17 -10
  189. package/esm/src/interface/stop.d.ts +13 -0
  190. package/esm/src/interface/stop.js +28 -0
  191. package/esm/src/interface/tool-calls.d.ts +14 -2
  192. package/esm/src/interface/tool-calls.js +64 -10
  193. package/esm/src/interface/tool-invoke.d.ts +2 -0
  194. package/esm/src/interface/tool-invoke.js +3 -1
  195. package/esm/src/interface/tool-media.d.ts +2 -0
  196. package/esm/src/interface/tool-media.js +2 -1
  197. package/esm/src/interface/types.d.ts +105 -40
  198. package/esm/src/interface/types.js +1 -0
  199. package/esm/src/kernel/api-catalog.d.ts +85 -0
  200. package/esm/src/kernel/api-catalog.js +229 -0
  201. package/esm/src/kernel/auth/crypto.d.ts +7 -2
  202. package/esm/src/kernel/auth/crypto.js +12 -10
  203. package/esm/src/kernel/auth/oauth.d.ts +2 -1
  204. package/esm/src/kernel/auth/oauth.js +23 -22
  205. package/esm/src/kernel/auth/typed-secret.js +2 -2
  206. package/esm/src/kernel/auth/types.d.ts +13 -0
  207. package/esm/src/kernel/checkpoint.d.ts +43 -0
  208. package/esm/src/kernel/checkpoint.js +58 -0
  209. package/esm/src/kernel/default-scope.d.ts +43 -5
  210. package/esm/src/kernel/default-scope.js +54 -5
  211. package/esm/src/kernel/engine/call-trace.d.ts +19 -0
  212. package/esm/src/kernel/engine/call-trace.js +29 -0
  213. package/esm/src/kernel/engine/compaction.d.ts +6 -5
  214. package/esm/src/kernel/engine/compaction.js +12 -11
  215. package/esm/src/kernel/engine/decision.d.ts +10 -8
  216. package/esm/src/kernel/engine/decision.js +174 -146
  217. package/esm/src/kernel/engine/embedding.d.ts +8 -0
  218. package/esm/src/kernel/engine/embedding.js +118 -0
  219. package/esm/src/kernel/engine/live-inbound.d.ts +14 -4
  220. package/esm/src/kernel/engine/live-inbound.js +36 -11
  221. package/esm/src/kernel/engine/live-ingress.d.ts +6 -0
  222. package/esm/src/kernel/engine/live-ingress.js +6 -1
  223. package/esm/src/kernel/engine/repair.js +12 -12
  224. package/esm/src/kernel/engine/runner/gates.d.ts +2 -2
  225. package/esm/src/kernel/engine/runner/gates.js +287 -101
  226. package/esm/src/kernel/engine/runner/mod.d.ts +19 -5
  227. package/esm/src/kernel/engine/runner/mod.js +107 -56
  228. package/esm/src/kernel/engine/runner/nested.d.ts +32 -0
  229. package/esm/src/kernel/engine/runner/nested.js +134 -0
  230. package/esm/src/kernel/engine/runner/schema-validation.d.ts +24 -3
  231. package/esm/src/kernel/engine/runner/schema-validation.js +78 -4
  232. package/esm/src/kernel/engine/runner/stages.d.ts +1 -1
  233. package/esm/src/kernel/engine/runner/stages.js +1 -8
  234. package/esm/src/kernel/engine/runner/state.d.ts +33 -12
  235. package/esm/src/kernel/engine/runner/state.js +11 -1
  236. package/esm/src/kernel/engine/runner/step-order.d.ts +27 -0
  237. package/esm/src/kernel/engine/runner/step-order.js +165 -0
  238. package/esm/src/kernel/engine/runner/steps.d.ts +2 -2
  239. package/esm/src/kernel/engine/runner/steps.js +329 -169
  240. package/esm/src/kernel/engine/runner/stream.d.ts +42 -11
  241. package/esm/src/kernel/engine/runner/stream.js +197 -46
  242. package/esm/src/kernel/engine/runner/usage.d.ts +5 -5
  243. package/esm/src/kernel/engine/runner/usage.js +12 -14
  244. package/esm/src/kernel/engine/session/mod.d.ts +8 -6
  245. package/esm/src/kernel/engine/session/mod.js +360 -129
  246. package/esm/src/kernel/engine/session/session-trace.d.ts +10 -10
  247. package/esm/src/kernel/engine/session/session-trace.js +41 -30
  248. package/esm/src/kernel/engine/token-estimate.d.ts +10 -64
  249. package/esm/src/kernel/engine/token-estimate.js +14 -194
  250. package/esm/src/kernel/engine/tool-trace.d.ts +3 -3
  251. package/esm/src/kernel/engine/tool-trace.js +2 -1
  252. package/esm/src/kernel/engine/turn-trace.d.ts +8 -7
  253. package/esm/src/kernel/engine/turn-trace.js +28 -36
  254. package/esm/src/kernel/engine/usage.d.ts +6 -0
  255. package/esm/src/kernel/engine/usage.js +17 -0
  256. package/esm/src/kernel/interaction-parts.d.ts +3 -0
  257. package/esm/src/kernel/interaction-parts.js +18 -0
  258. package/esm/src/kernel/json.d.ts +10 -0
  259. package/esm/src/kernel/json.js +3 -0
  260. package/esm/src/kernel/mod.d.ts +38 -11
  261. package/esm/src/kernel/mod.js +22 -7
  262. package/esm/src/kernel/profile-graph.d.ts +11 -6
  263. package/esm/src/kernel/profile-graph.js +14 -7
  264. package/esm/src/kernel/profile-presence.d.ts +10 -1
  265. package/esm/src/kernel/profile-presence.js +90 -75
  266. package/esm/src/kernel/profile-scope.d.ts +7 -3
  267. package/esm/src/kernel/profile-scope.js +67 -55
  268. package/esm/src/kernel/protocols/binding.d.ts +65 -0
  269. package/esm/src/kernel/protocols/binding.js +125 -0
  270. package/esm/src/kernel/protocols/limits.d.ts +15 -0
  271. package/esm/src/kernel/protocols/limits.js +28 -0
  272. package/esm/src/kernel/protocols/mod.d.ts +5 -0
  273. package/esm/src/kernel/protocols/mod.js +5 -0
  274. package/esm/src/kernel/protocols/prices.d.ts +36 -0
  275. package/esm/src/kernel/protocols/prices.js +37 -0
  276. package/esm/src/kernel/protocols/protocol.d.ts +253 -0
  277. package/esm/src/kernel/protocols/protocol.js +253 -0
  278. package/esm/src/kernel/protocols/provider.d.ts +108 -0
  279. package/esm/src/kernel/protocols/provider.js +143 -0
  280. package/esm/src/kernel/protocols/runtime.d.ts +55 -0
  281. package/esm/src/kernel/protocols/runtime.js +534 -0
  282. package/esm/src/kernel/provider-budget.d.ts +32 -0
  283. package/esm/src/kernel/provider-budget.js +262 -0
  284. package/esm/src/kernel/provider-dispatch.d.ts +13 -0
  285. package/esm/src/kernel/provider-dispatch.js +36 -0
  286. package/esm/src/kernel/provider-live.d.ts +7 -0
  287. package/esm/src/kernel/provider-live.js +189 -0
  288. package/esm/src/kernel/provider-runtime.d.ts +57 -0
  289. package/esm/src/kernel/provider-runtime.js +524 -0
  290. package/esm/src/kernel/registry/attachments.d.ts +15 -4
  291. package/esm/src/kernel/registry/attachments.js +31 -22
  292. package/esm/src/kernel/registry/catalog.d.ts +6 -0
  293. package/esm/src/kernel/registry/catalog.js +9 -2
  294. package/esm/src/kernel/registry/embedding-rules.d.ts +28 -0
  295. package/esm/src/kernel/registry/embedding-rules.js +66 -0
  296. package/esm/src/kernel/registry/ingress.d.ts +6 -2
  297. package/esm/src/kernel/registry/ingress.js +55 -10
  298. package/esm/src/kernel/registry/kernel-registry.d.ts +3 -0
  299. package/esm/src/kernel/registry/kernel-registry.js +9 -2
  300. package/esm/src/kernel/registry/profile-outputs.js +4 -1
  301. package/esm/src/kernel/registry/profiles.d.ts +38 -14
  302. package/esm/src/kernel/registry/profiles.js +280 -205
  303. package/esm/src/kernel/registry/provider-request.d.ts +3 -3
  304. package/esm/src/kernel/registry/provider-request.js +5 -13
  305. package/esm/src/kernel/registry/resolve.d.ts +4 -1
  306. package/esm/src/kernel/registry/resolve.js +59 -58
  307. package/esm/src/kernel/registry/schemas.d.ts +3 -0
  308. package/esm/src/kernel/registry/schemas.js +3 -1
  309. package/esm/src/kernel/registry/slot-fill.d.ts +7 -0
  310. package/esm/src/kernel/registry/slot-fill.js +22 -0
  311. package/esm/src/kernel/registry/system-prompt.js +7 -8
  312. package/esm/src/kernel/registry/vault.d.ts +14 -13
  313. package/esm/src/kernel/registry/vault.js +1 -14
  314. package/esm/src/kernel/schema.d.ts +100 -46
  315. package/esm/src/kernel/schema.js +499 -257
  316. package/esm/src/kernel/scope.d.ts +12 -5
  317. package/esm/src/kernel/scope.js +23 -3
  318. package/esm/src/kernel/stages.d.ts +38 -3
  319. package/esm/src/kernel/stages.js +82 -39
  320. package/esm/src/kernel/stop.d.ts +29 -6
  321. package/esm/src/kernel/stop.js +16 -4
  322. package/esm/src/kernel/system-parts.js +6 -6
  323. package/esm/src/kernel/tools/activity-label.d.ts +12 -6
  324. package/esm/src/kernel/tools/activity-label.js +258 -32
  325. package/esm/src/kernel/tools/agent.d.ts +66 -0
  326. package/esm/src/kernel/tools/agent.js +212 -0
  327. package/esm/src/kernel/tools/coordinate.d.ts +4 -0
  328. package/esm/src/kernel/tools/coordinate.js +165 -0
  329. package/esm/src/kernel/tools/events.d.ts +21 -6
  330. package/esm/src/kernel/tools/events.js +53 -18
  331. package/esm/src/kernel/tools/execute.d.ts +47 -11
  332. package/esm/src/kernel/tools/execute.js +508 -136
  333. package/esm/src/kernel/tools/gate-answer.d.ts +12 -2
  334. package/esm/src/kernel/tools/gate-answer.js +17 -6
  335. package/esm/src/kernel/tools/handler-events.d.ts +45 -0
  336. package/esm/src/kernel/tools/handler-events.js +106 -0
  337. package/esm/src/kernel/tools/harness.d.ts +1 -0
  338. package/esm/src/kernel/tools/harness.js +2 -1
  339. package/esm/src/kernel/tools/http-limit.d.ts +27 -0
  340. package/esm/src/kernel/tools/http-limit.js +85 -0
  341. package/esm/src/kernel/tools/invoke.d.ts +27 -5
  342. package/esm/src/kernel/tools/invoke.js +223 -70
  343. package/esm/src/kernel/tools/mcp-sessions.d.ts +4 -1
  344. package/esm/src/kernel/tools/mcp-sessions.js +13 -8
  345. package/esm/src/kernel/tools/mod.d.ts +4 -3
  346. package/esm/src/kernel/tools/mod.js +3 -2
  347. package/esm/src/kernel/tools/model-text.d.ts +10 -5
  348. package/esm/src/kernel/tools/model-text.js +18 -12
  349. package/esm/src/kernel/tools/operation.d.ts +76 -0
  350. package/esm/src/kernel/tools/operation.js +100 -0
  351. package/esm/src/kernel/tools/page-answer.d.ts +8 -0
  352. package/esm/src/kernel/tools/page-answer.js +19 -0
  353. package/esm/src/kernel/tools/permission.d.ts +11 -2
  354. package/esm/src/kernel/tools/permission.js +12 -12
  355. package/esm/src/kernel/tools/project.d.ts +4 -1
  356. package/esm/src/kernel/tools/project.js +32 -2
  357. package/esm/src/kernel/tools/registry.d.ts +9 -2
  358. package/esm/src/kernel/tools/registry.js +69 -10
  359. package/esm/src/kernel/tools/remote.d.ts +40 -6
  360. package/esm/src/kernel/tools/remote.js +219 -92
  361. package/esm/src/kernel/tools/resolve.d.ts +3 -0
  362. package/esm/src/kernel/tools/resolve.js +12 -4
  363. package/esm/src/kernel/tools/run.d.ts +28 -0
  364. package/esm/src/kernel/tools/run.js +86 -0
  365. package/esm/src/kernel/tools/schema.d.ts +3 -3
  366. package/esm/src/kernel/tools/schema.js +21 -100
  367. package/esm/src/kernel/tools/signed-in-fetch.d.ts +2 -1
  368. package/esm/src/kernel/tools/signed-in-fetch.js +3 -3
  369. package/esm/src/kernel/tools/stage-run.d.ts +27 -4
  370. package/esm/src/kernel/tools/stage-run.js +75 -17
  371. package/esm/src/kernel/tools/types.d.ts +235 -25
  372. package/esm/src/kernel/tools/unchecked-output.d.ts +14 -0
  373. package/esm/src/kernel/tools/unchecked-output.js +18 -0
  374. package/esm/src/kernel/turn-events.d.ts +208 -31
  375. package/esm/src/kernel/turn-events.js +127 -9
  376. package/esm/src/kernel/types.d.ts +302 -161
  377. package/esm/src/kernel/util/base64.d.ts +2 -0
  378. package/esm/src/kernel/util/base64.js +2 -0
  379. package/esm/src/kernel/util/partial-json.d.ts +23 -0
  380. package/esm/src/kernel/util/partial-json.js +128 -0
  381. package/esm/src/kernel/util/record.d.ts +1 -0
  382. package/esm/src/kernel/util/record.js +1 -0
  383. package/esm/src/observability/destinations.d.ts +5 -0
  384. package/esm/src/observability/destinations.js +7 -2
  385. package/esm/src/observability/jsonl.d.ts +2 -2
  386. package/esm/src/observability/jsonl.js +15 -22
  387. package/esm/src/observability/mod.d.ts +3 -3
  388. package/esm/src/observability/mod.js +2 -2
  389. package/esm/src/observability/openinference.d.ts +1 -1
  390. package/esm/src/observability/openinference.js +3 -3
  391. package/esm/src/observability/otlp.d.ts +3 -0
  392. package/esm/src/observability/otlp.js +3 -3
  393. package/esm/src/observability/phoenix.d.ts +1 -0
  394. package/esm/src/observability/policy.d.ts +3 -0
  395. package/esm/src/observability/policy.js +5 -1
  396. package/esm/src/observability/resolve-policy.js +11 -5
  397. package/esm/src/observability/spans.d.ts +8 -2
  398. package/esm/src/observability/spans.js +21 -5
  399. package/esm/src/observability/trace-catalog.d.ts +19 -2
  400. package/esm/src/observability/trace-catalog.js +130 -88
  401. package/esm/src/observability/trace-record.js +22 -17
  402. package/esm/src/observability/trace-schema.d.ts +3 -0
  403. package/esm/src/observability/trace-schema.js +1 -1
  404. package/esm/src/observability/trace-sink.d.ts +1 -0
  405. package/esm/src/observability/trace-sink.js +1 -1
  406. package/esm/src/observability/trace-span.d.ts +7 -1
  407. package/esm/src/observability/trace-span.js +3 -1
  408. package/esm/src/observability/trace.d.ts +2 -0
  409. package/esm/src/observability/trace.js +4 -2
  410. package/esm/src/observability/types.d.ts +35 -11
  411. package/esm/src/observability/types.js +1 -1
  412. package/esm/src/presets/google/speech-voices.d.ts +1 -0
  413. package/esm/src/presets/google-limits.d.ts +1 -0
  414. package/esm/src/presets/google.d.ts +27 -12
  415. package/esm/src/presets/google.js +34 -25
  416. package/esm/src/presets/local.d.ts +26 -0
  417. package/esm/src/presets/local.js +30 -0
  418. package/esm/src/presets/mod.d.ts +5 -4
  419. package/esm/src/presets/mod.js +4 -4
  420. package/esm/src/presets/openrouter.d.ts +14 -1
  421. package/esm/src/presets/openrouter.js +19 -1
  422. package/esm/src/providers/embedding-limits.d.ts +7 -0
  423. package/esm/src/providers/embedding-limits.js +12 -0
  424. package/esm/src/providers/gemini/embedding-protocol.d.ts +8 -0
  425. package/esm/src/providers/gemini/embedding-protocol.js +125 -0
  426. package/esm/src/providers/gemini/interactions-protocol.d.ts +8 -0
  427. package/esm/src/providers/gemini/interactions-protocol.js +102 -0
  428. package/esm/src/providers/gemini/live-protocol.d.ts +3 -0
  429. package/esm/src/providers/gemini/live-protocol.js +191 -0
  430. package/esm/src/providers/gemini/prices.d.ts +3 -0
  431. package/esm/src/providers/gemini/prices.js +63 -0
  432. package/esm/src/providers/gemini/provider.d.ts +7 -0
  433. package/esm/src/providers/gemini/provider.js +39 -0
  434. package/esm/src/providers/google/api-error.d.ts +2 -0
  435. package/esm/src/providers/google/api-error.js +26 -18
  436. package/esm/src/providers/google/builtins.d.ts +14 -0
  437. package/esm/src/providers/google/builtins.js +57 -0
  438. package/esm/src/providers/google/grounding.d.ts +4 -4
  439. package/esm/src/providers/google/interactions/framing.d.ts +20 -8
  440. package/esm/src/providers/google/interactions/framing.js +85 -44
  441. package/esm/src/providers/google/interactions/steps.d.ts +5 -5
  442. package/esm/src/providers/google/interactions/steps.js +4 -4
  443. package/esm/src/providers/google/interactions/stream.d.ts +10 -11
  444. package/esm/src/providers/google/interactions/stream.js +33 -100
  445. package/esm/src/providers/google/live/framing.d.ts +15 -5
  446. package/esm/src/providers/google/live/framing.js +25 -25
  447. package/esm/src/providers/google/live/stream.d.ts +6 -44
  448. package/esm/src/providers/google/live/stream.js +4 -210
  449. package/esm/src/providers/google/urls.d.ts +1 -3
  450. package/esm/src/providers/google/urls.js +1 -3
  451. package/esm/src/providers/google/usage.js +2 -2
  452. package/esm/src/providers/live.d.ts +6 -0
  453. package/esm/src/providers/live.js +6 -0
  454. package/esm/src/providers/local/embedding-protocol.d.ts +7 -0
  455. package/esm/src/providers/local/embedding-protocol.js +60 -0
  456. package/esm/src/providers/local/provider.d.ts +7 -0
  457. package/esm/src/providers/local/provider.js +28 -0
  458. package/esm/src/providers/mod.d.ts +28 -7
  459. package/esm/src/providers/mod.js +19 -3
  460. package/esm/src/providers/open-ai/protocol.d.ts +3 -0
  461. package/esm/src/providers/open-ai/protocol.js +189 -0
  462. package/esm/src/providers/openrouter/embedding-protocol.d.ts +6 -0
  463. package/esm/src/providers/openrouter/embedding-protocol.js +86 -0
  464. package/esm/src/providers/openrouter/image.d.ts +0 -9
  465. package/esm/src/providers/openrouter/image.js +0 -153
  466. package/esm/src/providers/openrouter/images-protocol.d.ts +3 -0
  467. package/esm/src/providers/openrouter/images-protocol.js +82 -0
  468. package/esm/src/providers/openrouter/openai/compat.d.ts +2 -2
  469. package/esm/src/providers/openrouter/openai/compat.js +6 -6
  470. package/esm/src/providers/openrouter/openai/image-payload.d.ts +2 -2
  471. package/esm/src/providers/openrouter/openai/reasoning-state.d.ts +2 -0
  472. package/esm/src/providers/openrouter/openai/reasoning-state.js +31 -0
  473. package/esm/src/providers/openrouter/protocol.d.ts +8 -0
  474. package/esm/src/providers/openrouter/protocol.js +171 -0
  475. package/esm/src/providers/openrouter/provider.d.ts +10 -0
  476. package/esm/src/providers/openrouter/provider.js +50 -0
  477. package/esm/src/providers/shared/carried-tool-files.d.ts +7 -0
  478. package/esm/src/providers/shared/carried-tool-files.js +43 -0
  479. package/esm/src/providers/shared/pcm.js +2 -2
  480. package/esm/src/providers/shared/protocol-events.d.ts +8 -0
  481. package/esm/src/providers/shared/protocol-events.js +20 -0
  482. package/esm/src/providers/shared/response-identity.d.ts +2 -2
  483. package/esm/src/providers/shared/retry.d.ts +18 -0
  484. package/esm/src/providers/shared/retry.js +89 -0
  485. package/esm/src/providers/shared/sse.d.ts +0 -4
  486. package/esm/src/providers/shared/sse.js +50 -36
  487. package/esm/src/providers/shared/tool-args.d.ts +6 -7
  488. package/esm/src/providers/shared/tool-args.js +10 -6
  489. package/esm/src/providers/shared/tool-draft.d.ts +16 -0
  490. package/esm/src/providers/shared/tool-draft.js +14 -0
  491. package/esm/src/providers/shared/upstream-tap.d.ts +2 -2
  492. package/esm/src/providers/shared/upstream-tape.js +1 -1
  493. package/esm/src/providers/system-one/protocol.d.ts +8 -0
  494. package/esm/src/providers/system-one/protocol.js +93 -0
  495. package/esm/src/providers/types.d.ts +48 -16
  496. package/esm/src/providers/types.js +2 -1
  497. package/esm/src/providers/typesafe/provider.d.ts +7 -0
  498. package/esm/src/providers/typesafe/provider.js +24 -0
  499. package/esm/src/surface/formats.d.ts +19 -1
  500. package/esm/src/surface/formats.js +68 -29
  501. package/esm/src/surface/mod.d.ts +4 -2
  502. package/esm/src/surface/mod.js +4 -2
  503. package/esm/src/surface/runtime.d.ts +4 -0
  504. package/esm/src/surface/runtime.js +2 -0
  505. package/esm/src/surface/tools.d.ts +2 -8
  506. package/esm/src/surface/tools.js +4 -22
  507. package/esm/src/surface/types.d.ts +6 -0
  508. package/package.json +5 -13
  509. package/esm/src/cli/commands/egress-compile.d.ts +0 -17
  510. package/esm/src/cli/commands/egress-compile.js +0 -25
  511. package/esm/src/guardrails/egress-policy.d.ts +0 -27
  512. package/esm/src/guardrails/egress-policy.js +0 -76
  513. package/esm/src/guardrails/egress-rules.d.ts +0 -54
  514. package/esm/src/guardrails/egress-rules.js +0 -49
  515. package/esm/src/guardrails/lexicon.d.ts +0 -30
  516. package/esm/src/guardrails/lexicon.js +0 -478
  517. package/esm/src/kernel/engine/media-probe/audio.d.ts +0 -7
  518. package/esm/src/kernel/engine/media-probe/audio.js +0 -342
  519. package/esm/src/kernel/engine/media-probe/bytes.d.ts +0 -6
  520. package/esm/src/kernel/engine/media-probe/bytes.js +0 -26
  521. package/esm/src/kernel/engine/media-probe/image.d.ts +0 -5
  522. package/esm/src/kernel/engine/media-probe/image.js +0 -171
  523. package/esm/src/kernel/engine/media-probe/iso-bmff.d.ts +0 -19
  524. package/esm/src/kernel/engine/media-probe/iso-bmff.js +0 -48
  525. package/esm/src/kernel/engine/media-probe/matroska.d.ts +0 -35
  526. package/esm/src/kernel/engine/media-probe/matroska.js +0 -226
  527. package/esm/src/kernel/engine/media-probe/mp4.d.ts +0 -22
  528. package/esm/src/kernel/engine/media-probe/mp4.js +0 -279
  529. package/esm/src/kernel/engine/media-probe/opus.d.ts +0 -4
  530. package/esm/src/kernel/engine/media-probe/opus.js +0 -23
  531. package/esm/src/kernel/engine/media-probe/pdf.d.ts +0 -5
  532. package/esm/src/kernel/engine/media-probe/pdf.js +0 -117
  533. package/esm/src/kernel/engine/media-probe/video.d.ts +0 -15
  534. package/esm/src/kernel/engine/media-probe/video.js +0 -49
  535. package/esm/src/presets/typesafe.d.ts +0 -2
  536. package/esm/src/presets/typesafe.js +0 -2
  537. package/esm/src/providers/create-provider.d.ts +0 -21
  538. package/esm/src/providers/create-provider.js +0 -90
  539. package/esm/src/providers/decision/usage.d.ts +0 -3
  540. package/esm/src/providers/decision/usage.js +0 -25
  541. package/esm/src/providers/google/interactions/mod.d.ts +0 -2
  542. package/esm/src/providers/google/interactions/mod.js +0 -2
  543. package/esm/src/providers/google/keys.d.ts +0 -20
  544. package/esm/src/providers/google/keys.js +0 -87
  545. package/esm/src/providers/google/live/mod.d.ts +0 -7
  546. package/esm/src/providers/google/live/mod.js +0 -7
  547. package/esm/src/providers/google/live/openapi-schema.d.ts +0 -1
  548. package/esm/src/providers/google/live/openapi-schema.js +0 -42
  549. package/esm/src/providers/google/live/session.d.ts +0 -14
  550. package/esm/src/providers/google/live/session.js +0 -150
  551. package/esm/src/providers/local/local.d.ts +0 -12
  552. package/esm/src/providers/local/local.js +0 -186
  553. package/esm/src/providers/local/mod.d.ts +0 -8
  554. package/esm/src/providers/local/mod.js +0 -8
  555. package/esm/src/providers/openrouter/cache-control.d.ts +0 -5
  556. package/esm/src/providers/openrouter/cache-control.js +0 -4
  557. package/esm/src/providers/openrouter/chat.d.ts +0 -64
  558. package/esm/src/providers/openrouter/chat.js +0 -490
  559. package/esm/src/providers/openrouter/openai/sdk-messages.d.ts +0 -10
  560. package/esm/src/providers/openrouter/openai/sdk-messages.js +0 -99
  561. package/esm/src/providers/openrouter/resolve-api-key.d.ts +0 -3
  562. package/esm/src/providers/openrouter/resolve-api-key.js +0 -8
  563. package/esm/src/providers/openrouter/speech.d.ts +0 -18
  564. package/esm/src/providers/openrouter/speech.js +0 -109
  565. package/esm/src/providers/probe.d.ts +0 -5
  566. package/esm/src/providers/probe.js +0 -15
  567. package/esm/src/providers/shared/builtin-wire.d.ts +0 -4
  568. package/esm/src/providers/shared/builtin-wire.js +0 -9
  569. package/esm/src/providers/shared/vault.d.ts +0 -13
  570. package/esm/src/providers/shared/vault.js +0 -41
@@ -1,12 +1,16 @@
1
+ import { type ProviderCheckpoint, type ProviderWarning } from './checkpoint.js';
1
2
  import { z } from 'zod';
2
3
  import { type ErrorCopies, type GuardrailEvent } from '../guardrails/event-schemas.js';
3
4
  import type { ErrorKind } from '../guardrails/theorem-error.js';
4
- import { AWAITING_USER_INPUT_STATUS, type CompactionMeter, type CompactionOutcome, type MediaInputKind, type Provider, type StageApplyWarningCode, type ToolAuthType, type ToolPermission, type TurnStage, type TurnStopKind } from './schema.js';
5
+ import { type JsonObject, type JsonValue } from './json.js';
6
+ import { AWAITING_USER_INPUT_STATUS, type CompactionMeter, type CompactionOutcome, type MediaInputKind, type StageApplyWarningCode, type ToolAccess, type ToolAuthType, type ToolPermission, type TurnStage, type TurnStopKind } from './schema.js';
5
7
  export type { ErrorCopies, ErrorKind, GuardrailEvent };
8
+ /** A text part of a history message. */
6
9
  export interface InteractionTextPart {
7
10
  type: 'text';
8
11
  text: string;
9
12
  }
13
+ /** A media part of a history message, carried inline as base64. */
10
14
  export interface InteractionMediaPart {
11
15
  type: MediaInputKind;
12
16
  mimeType: string;
@@ -18,7 +22,31 @@ export interface InteractionMediaRefPart {
18
22
  mimeType: string;
19
23
  uri: string;
20
24
  }
25
+ /** A part of a history message: text or media. */
21
26
  export type InteractionPart = InteractionTextPart | InteractionMediaPart | InteractionMediaRefPart;
27
+ export declare const interactionPartSchema: z.ZodType<InteractionPart>;
28
+ /** One message of a conversation history the host replays into a turn. */
29
+ /** Where a piece of signed reasoning came from. `protocol` decides where it may go back to. */
30
+ export interface ReasoningOrigin {
31
+ protocol: string;
32
+ provider?: string;
33
+ apiId?: string;
34
+ }
35
+ /**
36
+ * Signed reasoning a model wrote, kept word for word: Gemini's thought signatures, OpenRouter's
37
+ * `reasoning_details`. It goes back only to the protocol that wrote it, or one extended from it;
38
+ * `data` is that protocol's own shape, checked against its `reasoning` schema.
39
+ */
40
+ export interface ReasoningPart {
41
+ text?: string;
42
+ data: JsonValue;
43
+ origin: ReasoningOrigin;
44
+ }
45
+ export declare const reasoningPartSchema: z.ZodObject<{
46
+ text: z.ZodOptional<z.ZodString>;
47
+ data: z.ZodType<JsonValue>;
48
+ origin: z.ZodType<ReasoningOrigin>;
49
+ }>;
22
50
  export interface TurnHistoryMessage {
23
51
  role: 'system' | 'user' | 'assistant' | 'tool';
24
52
  content?: string;
@@ -30,21 +58,40 @@ export interface TurnHistoryMessage {
30
58
  name: string;
31
59
  arguments: string;
32
60
  };
33
- /** The call's `ToolCallRequest.thoughtSignature`, replayed with it. */
34
- thoughtSignature?: string;
35
61
  }[];
62
+ /** On an assistant message: the signed reasoning written with it, to go back with it. */
63
+ reasoning?: ReasoningPart[];
36
64
  tool_call_id?: string;
37
65
  name?: string;
38
66
  metadata?: Record<string, unknown>;
39
67
  }
68
+ /** The schema a history message parses against. */
40
69
  export declare const turnHistoryMessageSchema: z.ZodType<TurnHistoryMessage>;
41
70
  /** Why a turn or live utterance ended. */
42
71
  export interface TurnStop {
43
72
  kind: TurnStopKind;
44
73
  native?: string;
45
74
  }
75
+ export declare const turnStopSchema: z.ZodObject<{
76
+ kind: z.ZodEnum<{
77
+ length: "length";
78
+ tool: "tool";
79
+ cancelled: "cancelled";
80
+ interrupted: "interrupted";
81
+ stream_incomplete: "stream_incomplete";
82
+ provider_error: "provider_error";
83
+ completed: "completed";
84
+ gate: "gate";
85
+ filtered: "filtered";
86
+ step_limit: "step_limit";
87
+ generation_complete: "generation_complete";
88
+ }>;
89
+ native: z.ZodOptional<z.ZodString>;
90
+ }, z.core.$strip>;
46
91
  declare const TURN_TOKEN_SIDES: readonly ["input", "output"];
92
+ /** Which side of a call's tokens, input or output, was estimated rather than reported. */
47
93
  export type TurnTokenSide = (typeof TURN_TOKEN_SIDES)[number];
94
+ /** What a turn cost, as the provider reports it. */
48
95
  export interface TurnCost {
49
96
  /** What the provider charged, in US dollars. */
50
97
  usd: number;
@@ -118,6 +165,7 @@ export interface TurnResponse {
118
165
  }
119
166
  declare const SOURCE_TYPES: readonly ["web", "maps"];
120
167
  export type SourceType = (typeof SOURCE_TYPES)[number];
168
+ /** A source a grounded answer cites. */
121
169
  export interface Source {
122
170
  title: string;
123
171
  uri: string;
@@ -133,7 +181,8 @@ export interface GroundingEvent {
133
181
  searchHtml?: string;
134
182
  }
135
183
  export interface EvidenceBase {
136
- provider: Provider;
184
+ /** The registered provider's id. */
185
+ provider: string;
137
186
  /** The provider's own payload, for the builder: `forClient` strips it unless `includeEvidenceRaw`. */
138
187
  raw?: Record<string, unknown>;
139
188
  /**
@@ -143,6 +192,7 @@ export interface EvidenceBase {
143
192
  */
144
193
  partial?: boolean;
145
194
  }
195
+ /** What a provider returned beside the answer, such as code it ran or search results it used. */
146
196
  export type ProviderEvidence = (EvidenceBase & {
147
197
  kind: 'code_execution_call';
148
198
  /** Generated source from `code_execution_call.arguments.code`. */
@@ -173,7 +223,7 @@ export type ProviderEvidence = (EvidenceBase & {
173
223
  });
174
224
  /** A session the provider ended after warning it would. */
175
225
  export interface SessionEnded {
176
- /** The provider warned first (Gemini `goAway`). */
226
+ /** The provider warned first. */
177
227
  cause: 'go_away';
178
228
  code: number;
179
229
  /** Milliseconds from the last warning to the close; compare with `timeLeftMs`. */
@@ -204,10 +254,13 @@ export type SessionEvent = {
204
254
  } | {
205
255
  kind: 'waiting_for_input' | 'turn_complete' | 'working' | 'idle';
206
256
  };
257
+ /** The kind of a live session event. */
207
258
  export type SessionEventKind = SessionEvent['kind'];
259
+ /** The live session event of kind `K`. */
208
260
  export type SessionEventOf<K extends SessionEventKind> = Extract<SessionEvent, {
209
261
  kind: K;
210
262
  }>;
263
+ /** Why a tool call failed, for the builder and for the user. */
211
264
  export interface ToolFailure {
212
265
  /** What went wrong, for the builder. Stable per failure site. */
213
266
  code: string;
@@ -232,22 +285,30 @@ export interface ToolAuthChallenge {
232
285
  resource?: string;
233
286
  requiredScopes?: string[];
234
287
  }
235
- /** Fields every gate carries. `tool` and `summary` are trimmed and never blank. */
288
+ /**
289
+ * Fields every gate carries. `tool`, `summary`, and `request` are trimmed and never blank.
290
+ * `request` is the tool's `labels.request` filled from the call's input; `access` is the tool's.
291
+ */
236
292
  export interface ToolGateBase {
237
293
  tool: string;
238
294
  permission?: ToolPermission;
239
295
  summary?: string;
296
+ request?: string;
297
+ access?: ToolAccess;
298
+ preparedArguments?: Record<string, unknown>;
240
299
  }
241
300
  /**
242
- * Confirm-to-run / permission / sign-in gate: the tool's body did not run.
243
- * A sign-in gate (`auth`) carries the challenge that says where.
301
+ * Confirm-to-run / permission / sign-in / page gate: the tool's body did not run.
302
+ * A sign-in gate (`auth`) carries the challenge that says where. A `page` gate waits for the
303
+ * page's answer to a tool with `answeredBy: 'page'`; no person decides it.
244
304
  */
245
305
  export type ToolGate = (ToolGateBase & {
246
- kind: 'confirmation' | 'permission';
306
+ kind: 'confirmation' | 'permission' | 'page';
247
307
  }) | (ToolGateBase & {
248
308
  kind: 'auth';
249
309
  authChallenge: ToolAuthChallenge;
250
310
  });
311
+ /** The schema a tool gate parses against. */
251
312
  export declare const toolGateSchema: z.ZodType<ToolGate>;
252
313
  export interface ToolWarning {
253
314
  code: string;
@@ -276,13 +337,18 @@ export type AwaitingUserInput = {
276
337
  kind: 'choice';
277
338
  options: string[];
278
339
  });
340
+ /** The schema a pause for user input parses against. */
279
341
  export declare const awaitingUserInputSchema: z.ZodType<AwaitingUserInput>;
342
+ /** True when a tool output asks the turn to pause for the user. */
343
+ export declare function isAwaitingUserInput(output: unknown): output is AwaitingUserInput;
344
+ /** A function tool as it is sent to the model. */
280
345
  export interface WireFunctionTool {
281
346
  type: 'function';
282
347
  name: string;
283
348
  description: string;
284
349
  parameters: Record<string, unknown>;
285
350
  }
351
+ /** The tools a turn was offered: provider builtins, gated ids, and the wire definitions. */
286
352
  export interface TurnToolSnapshot {
287
353
  builtins: string[];
288
354
  /** Tool ids eligible this turn (custom: allow + path; builtin: model builtInTools + path). */
@@ -295,16 +361,21 @@ export interface TurnToolSnapshot {
295
361
  sessionPermissions?: string[];
296
362
  wire: WireFunctionTool[];
297
363
  }
364
+ /** The schema a tool snapshot parses against. */
298
365
  export declare const turnToolSnapshotSchema: z.ZodType<TurnToolSnapshot>;
299
366
  export interface ToolEventBase {
300
367
  name: string;
301
368
  /** Call id: the provider's own id when it sent one, else kernel-assigned. */
302
369
  callId: string;
303
370
  }
371
+ export interface GateReference {
372
+ callId: string;
373
+ operationId: string;
374
+ }
375
+ export declare const gateReferenceSchema: z.ZodType<GateReference>;
304
376
  /**
305
- * The model's call, as the provider emitted it (no phase). It is the first
306
- * event of every call and the one owner of its arguments; phase events join
307
- * it by `callId`.
377
+ * invariant: The provider request owns the arguments. Kernel events add an operation ID.
378
+ * Interface folds join phases by that ID, or by callId for historical events.
308
379
  */
309
380
  export interface ToolCallRequest extends ToolEventBase {
310
381
  phase?: undefined;
@@ -314,18 +385,23 @@ export interface ToolCallRequest extends ToolEventBase {
314
385
  */
315
386
  arguments: Record<string, unknown>;
316
387
  /**
317
- * Google's opaque signature for the thought that led to this call, when the
318
- * provider sent one. Only the first call of a step carries it: the model
319
- * thinks once before all of that step's calls. Replaying a call without it
320
- * fails on Google (probe 25/09/2026).
388
+ * On a step's first call: the signed reasoning the model wrote before the step's calls (a Gemini
389
+ * thought signature, OpenRouter's `reasoning_details`). It goes back on the assistant message
390
+ * holding the step's calls, word for word; a host keeping its own history keeps it there.
321
391
  */
322
- thoughtSignature?: string;
392
+ reasoning?: ReasoningPart[];
323
393
  /**
324
394
  * The model step that made this call: calls sharing it were made together,
325
395
  * in one model response, and replay as one assistant message. Unique within
326
396
  * the turn. Absent on a host's own call (`invokeTool` without a `callId`).
327
397
  */
328
398
  stepId?: string;
399
+ /**
400
+ * How many calls the step has, on every call of it: a host that runs a step's
401
+ * calls as one knows the step is complete once it has seen this many. Set
402
+ * wherever `stepId` is; absent with it.
403
+ */
404
+ stepCallCount?: number;
329
405
  }
330
406
  export interface ToolPhaseBase extends ToolEventBase {
331
407
  /** When the kernel emitted this phase (epoch ms). */
@@ -341,24 +417,38 @@ export interface ToolCallEdit {
341
417
  *
342
418
  * - `running` — the body started; `edited` when the user changed the arguments;
343
419
  * `activity` is the tool's activity label filled from the call's input.
344
- * - `progress` / `trace` / `artifact` / `warning` — streamed while it ran.
345
- * - `complete` — `output`; `awaiting` when it asked the user something; `parts` for the
346
- * media it returned beside its output (images, audio);
420
+ * - `progress` / `trace` / `artifact` / `warning` — streamed while it ran. A `progress` its
421
+ * output's check stops is not sent.
422
+ * - `draft` — the next piece of what the tool is writing, for a preview, each piece read at
423
+ * `tool_output_<kind>` first (an agent tool's: its agent's reply). Sent only under
424
+ * `outputs.streaming.mode` `sse`. The model never reads it: it reads `complete`'s output.
425
+ * - `complete` — `output`, as the person is shown it (read at `tool_shown_<kind>`); `awaiting`
426
+ * when it asked the user something; `parts` for the media it returned beside its output
427
+ * (images, audio);
347
428
  * `readBack` is the text the model reads back, after guardrails;
348
- * `activityPast` is the tool's past activity label filled from its input and output.
349
- * - `gate` — confirmation, permission or sign-in held the call; the body did not run.
429
+ * `activityPast` is the tool's past activity label filled from its input and output, or its
430
+ * failed label when a `post_tool` handler asked for it (`labelFailed`).
431
+ * - `gate` — confirmation, permission, or sign-in held the call; the body did not run.
350
432
  * A sign-in gate's `readBack` is what the model reads while the person signs in.
351
433
  * - `error` — the call failed or was refused (`failure.kind` `declined` · `blocked` · `cancelled` · …);
352
- * `readBack` is the text the model reads back for it, after guardrails.
434
+ * `readBack` is the text the model reads back for it, after guardrails;
435
+ * `activityPast` is the tool's failed label.
353
436
  * - `cancel` — cancelled in flight (e.g. live barge-in).
354
437
  */
355
438
  export type ToolPhaseEvent = ToolPhaseBase & ({
356
439
  phase: 'running';
357
440
  edited?: ToolCallEdit;
358
441
  activity?: string;
442
+ } | {
443
+ phase: 'dispatch';
444
+ grantId: string;
445
+ arguments: Record<string, unknown>;
359
446
  } | {
360
447
  phase: 'progress';
361
448
  data: unknown;
449
+ } | {
450
+ phase: 'draft';
451
+ text: string;
362
452
  } | {
363
453
  phase: 'trace';
364
454
  step: ToolTraceStep;
@@ -375,6 +465,8 @@ export type ToolPhaseEvent = ToolPhaseBase & ({
375
465
  readBack?: string;
376
466
  parts?: InteractionPart[];
377
467
  activityPast?: string;
468
+ /** An agent tool's call: the called agent's own usage, which the caller's `done.tokens` includes. */
469
+ tokens?: TurnTokens;
378
470
  } | {
379
471
  phase: 'gate';
380
472
  gate: ToolGate;
@@ -383,11 +475,19 @@ export type ToolPhaseEvent = ToolPhaseBase & ({
383
475
  phase: 'error';
384
476
  failure: ToolFailure;
385
477
  readBack?: string;
478
+ activityPast?: string;
479
+ /** An agent tool's call: the called agent's own usage, as on `complete`. */
480
+ tokens?: TurnTokens;
386
481
  } | {
387
482
  phase: 'cancel';
388
483
  });
389
484
  export type ToolCallPhase = ToolPhaseEvent['phase'];
390
- export type ToolCallEvent = ToolCallRequest | ToolPhaseEvent;
485
+ /** A tool call event: the model's request or a phase of running it. */
486
+ export type ToolCallEvent = (ToolCallRequest | ToolPhaseEvent) & {
487
+ /** Kernel-issued identity. Historical events can predate this field. */
488
+ operationId?: string;
489
+ };
490
+ /** A note that a stage handler's result was partly or wholly ignored, and why. */
391
491
  export interface StageApplyWarning {
392
492
  code: StageApplyWarningCode;
393
493
  message: string;
@@ -447,6 +547,7 @@ export interface CompactionEvent extends Omit<CompactionResult, 'toCompact'> {
447
547
  /** Stops that end a turn with tools pending; `done.tools` is present exactly on them. */
448
548
  export type ToolSnapshotStopKind = Extract<TurnStopKind, 'tool' | 'gate'>;
449
549
  export interface DoneBase {
550
+ providerState?: ProviderCheckpoint;
450
551
  /** The turn's summed usage (`sumTokens` over its `tokens` events). */
451
552
  tokens?: TurnTokens;
452
553
  /** The turn's root span as a W3C `traceparent`, for a later request's `links`. */
@@ -471,18 +572,70 @@ export type DoneEvent = DoneBase & ({
471
572
  };
472
573
  tools?: undefined;
473
574
  });
474
- /** Every event a host receives from `runTurn`, `invokeTool` or a live session. */
575
+ /** Every event a host receives from `runTurn`, `invokeTool`, or a live session. */
576
+ /** One item an item rule removed from a structured reply, and why. */
577
+ export interface RemovedItem {
578
+ /** The dotted path of the list it sat in. */
579
+ path: string;
580
+ reason: string;
581
+ item: unknown;
582
+ }
583
+ /** A field of a structured reply that still failed its checks when the turn ran out of retries. */
584
+ export interface InvalidField {
585
+ /** The dotted path of the field. */
586
+ path: string;
587
+ error: string;
588
+ }
589
+ /** Why a turn threw an attempt's reply away and asked again. */
590
+ export type AttemptReason = 'validation' | 'egress';
475
591
  export type TurnEvent = {
592
+ type: 'provider_warning';
593
+ warning: ProviderWarning;
594
+ } | {
595
+ type: 'provider_checkpoint';
596
+ providerState: ProviderCheckpoint;
597
+ history?: TurnHistoryMessage[];
598
+ } | {
476
599
  type: 'text';
477
600
  text: string;
478
601
  } | {
479
602
  type: 'thought';
480
603
  text: string;
481
604
  }
605
+ /** Content a protocol emits with no common shape; `kind` is `<protocol>.<kind>`. */
606
+ | {
607
+ type: 'custom';
608
+ kind: string;
609
+ data: JsonObject;
610
+ }
482
611
  /** The profile's structured-output schema validates `structured`. */
483
612
  | {
484
613
  type: 'structured';
485
614
  structured: unknown;
615
+ /** Items the profile's item rules removed from `structured`, each with why. */
616
+ removed?: RemovedItem[];
617
+ /** The fields still invalid when `outputs.validation` ran out of retries; the reply goes out as it is. */
618
+ failed?: InvalidField[];
619
+ }
620
+ /**
621
+ * The next piece of a structured reply's JSON as the model writes it, for a preview: read at
622
+ * `reply` as the reply's text, before the `structured` event that follows is read whole at
623
+ * `reply_structured`. That event is the reply. Sent only under `outputs.streaming.mode` `sse`; an
624
+ * `attempt` throws it away with the rest of the reply.
625
+ */
626
+ | {
627
+ type: 'structured_draft';
628
+ text: string;
629
+ }
630
+ /**
631
+ * The turn threw the reply so far away and asks again. Text, media, and structured output since
632
+ * the turn began, or since the last `attempt`, are not the reply; {@linkcode keptReply} drops them.
633
+ * `attempt` counts the retries: 1 for the first, as the trace's `theorem.attempt.retry` does.
634
+ */
635
+ | {
636
+ type: 'attempt';
637
+ attempt: number;
638
+ reason: AttemptReason;
486
639
  } | {
487
640
  type: 'media';
488
641
  media: {
@@ -537,6 +690,17 @@ export type TurnEvent = {
537
690
  injected?: {
538
691
  id: string;
539
692
  }[];
693
+ }
694
+ /**
695
+ * A tool call the model is still writing: the next piece of its arguments' JSON text, in order,
696
+ * for a preview. The `tool` call that follows owns the arguments; a draft cut off before it never
697
+ * runs. Sent only under `outputs.streaming.mode` `sse`.
698
+ */
699
+ | {
700
+ type: 'tool_draft';
701
+ callId: string;
702
+ name: string;
703
+ text: string;
540
704
  } | {
541
705
  type: 'tool';
542
706
  tool: ToolCallEvent;
@@ -549,12 +713,14 @@ export type TurnEvent = {
549
713
  errorKind: ErrorKind;
550
714
  /** Public-safe failure text for hosts to show users: the wording for `errorKind`. */
551
715
  error?: string;
552
- /** The lexicon key and parameters behind `error` when more specific than the kind's. */
716
+ /** The labels key and parameters behind `error` when more specific than the kind's. */
553
717
  errorCopy?: ErrorCopies;
554
718
  /** Raw diagnostic detail for traces/logs; never surface to end users (`forClient` strips it). */
555
719
  errorInternal?: string;
556
720
  };
721
+ /** The `type` of a turn event. */
557
722
  export type TurnEventType = TurnEvent['type'];
723
+ /** The turn event whose `type` is `K`. */
558
724
  export type TurnEventOf<K extends TurnEventType> = Extract<TurnEvent, {
559
725
  type: K;
560
726
  }>;
@@ -563,24 +729,27 @@ export type TurnEventOf<K extends TurnEventType> = Extract<TurnEvent, {
563
729
  * reports the turn's own `done`; a live session forwards it (`turnDoneOf`).
564
730
  */
565
731
  export interface CallDone {
732
+ providerState?: ProviderCheckpoint;
566
733
  stop: TurnStop;
567
734
  interactionId?: string;
568
735
  /** A user utterance interrupted the live response (barge-in). */
569
736
  interrupted?: boolean;
570
737
  }
571
738
  /**
572
- * What a provider yields: the host events, its call's `done`, and the
573
- * response's identity (`response`, recorded on the call's trace), which hosts
574
- * never receive.
739
+ * What a model call yields to the engine: the host events, its call's `done`, the response's
740
+ * identity (`response`, recorded on the call's trace) and the signed reasoning it wrote, which the
741
+ * engine puts on the step's first call. Hosts never receive the last three as they are.
575
742
  */
576
- export type ProviderEvent = Exclude<TurnEvent, {
743
+ export type ModelEvent = Exclude<TurnEvent, {
577
744
  type: 'done';
578
745
  }> | ({
579
746
  type: 'done';
580
747
  } & CallDone) | {
581
748
  type: 'response';
582
749
  response: TurnResponse;
583
- };
750
+ } | ({
751
+ type: 'reasoning';
752
+ } & ReasoningPart);
584
753
  /** A `done` before its stop decides whether it carries the turn's tools. */
585
754
  export type DoneFields = DoneBase & {
586
755
  stop: TurnStop;
@@ -591,9 +760,17 @@ export type DoneFields = DoneBase & {
591
760
  * (a live session forwarding a call's `done`), such a stop has no host `done`.
592
761
  */
593
762
  export declare function turnDoneOf(done: DoneFields, tools: TurnToolSnapshot): TurnEventOf<'done'>;
763
+ /** Builds the `done` event from a model call's end, with the tools the turn was offered. */
594
764
  export declare function turnDoneOf(done: DoneFields): TurnEventOf<'done'> | undefined;
765
+ /** The schema any turn event parses against. */
595
766
  export declare const turnEventSchema: z.ZodType<TurnEvent>;
596
767
  /** Every `TurnEvent` kind and its schema: a wire parser tells a kind it doesn't know from a malformed one it does. */
597
768
  export declare const TURN_EVENT_SCHEMAS: {
598
769
  readonly [K in TurnEventType]: z.ZodType<TurnEventOf<K>>;
599
770
  };
771
+ /**
772
+ * `events` without the replies a retry threw away: each `attempt` drops the text, media and
773
+ * structured output before it, back to the turn's start or its last `done`. Tool calls, thoughts
774
+ * and everything else stay, since they happened.
775
+ */
776
+ export declare function keptReply(events: readonly TurnEvent[]): TurnEvent[];