@theoremjs/agents 0.0.0-stage → 0.3.0

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 (514) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1264 -2
  3. package/esm/_dnt.polyfills.d.ts +66 -0
  4. package/esm/_dnt.polyfills.js +51 -0
  5. package/esm/mod.d.ts +65 -0
  6. package/esm/mod.js +42 -0
  7. package/esm/package.json +3 -0
  8. package/esm/src/cli/bin.d.ts +7 -0
  9. package/esm/src/cli/bin.js +9 -0
  10. package/esm/src/cli/commands/bench.d.ts +6 -0
  11. package/esm/src/cli/commands/bench.js +458 -0
  12. package/esm/src/cli/commands/egress-compile.d.ts +17 -0
  13. package/esm/src/cli/commands/egress-compile.js +25 -0
  14. package/esm/src/cli/commands/eval.d.ts +37 -0
  15. package/esm/src/cli/commands/eval.js +190 -0
  16. package/esm/src/cli/commands/fuzz-canary.d.ts +15 -0
  17. package/esm/src/cli/commands/fuzz-canary.js +202 -0
  18. package/esm/src/cli/commands/fuzz-guardrails.d.ts +2 -0
  19. package/esm/src/cli/commands/fuzz-guardrails.js +5 -0
  20. package/esm/src/cli/commands/profile.d.ts +2 -0
  21. package/esm/src/cli/commands/profile.js +80 -0
  22. package/esm/src/cli/commands/run.d.ts +13 -0
  23. package/esm/src/cli/commands/run.js +45 -0
  24. package/esm/src/cli/commands/test.d.ts +25 -0
  25. package/esm/src/cli/commands/test.js +143 -0
  26. package/esm/src/cli/event-log.d.ts +15 -0
  27. package/esm/src/cli/event-log.js +136 -0
  28. package/esm/src/cli/index.d.ts +10 -0
  29. package/esm/src/cli/index.js +267 -0
  30. package/esm/src/cli/matrix/fixtures.d.ts +10 -0
  31. package/esm/src/cli/matrix/fixtures.js +72 -0
  32. package/esm/src/cli/matrix/synthesizer.d.ts +18 -0
  33. package/esm/src/cli/matrix/synthesizer.js +103 -0
  34. package/esm/src/evals/attachments.d.ts +4 -0
  35. package/esm/src/evals/attachments.js +53 -0
  36. package/esm/src/evals/breakdown.d.ts +28 -0
  37. package/esm/src/evals/breakdown.js +68 -0
  38. package/esm/src/evals/graders/answer.d.ts +13 -0
  39. package/esm/src/evals/graders/answer.js +133 -0
  40. package/esm/src/evals/graders/code.d.ts +64 -0
  41. package/esm/src/evals/graders/code.js +205 -0
  42. package/esm/src/evals/graders/judge.d.ts +20 -0
  43. package/esm/src/evals/graders/judge.js +365 -0
  44. package/esm/src/evals/graders/latency.d.ts +5 -0
  45. package/esm/src/evals/graders/latency.js +81 -0
  46. package/esm/src/evals/graders/live.d.ts +11 -0
  47. package/esm/src/evals/graders/live.js +40 -0
  48. package/esm/src/evals/graders/media.d.ts +18 -0
  49. package/esm/src/evals/graders/media.js +92 -0
  50. package/esm/src/evals/graders/shared.d.ts +11 -0
  51. package/esm/src/evals/graders/shared.js +62 -0
  52. package/esm/src/evals/graders/transcript.d.ts +17 -0
  53. package/esm/src/evals/graders/transcript.js +200 -0
  54. package/esm/src/evals/mod.d.ts +42 -0
  55. package/esm/src/evals/mod.js +30 -0
  56. package/esm/src/evals/record.d.ts +35 -0
  57. package/esm/src/evals/record.js +105 -0
  58. package/esm/src/evals/rubrics/catalog.d.ts +148 -0
  59. package/esm/src/evals/rubrics/catalog.js +846 -0
  60. package/esm/src/evals/rubrics/mod.d.ts +24 -0
  61. package/esm/src/evals/rubrics/mod.js +55 -0
  62. package/esm/src/evals/rubrics/mustache.d.ts +23 -0
  63. package/esm/src/evals/rubrics/mustache.js +154 -0
  64. package/esm/src/evals/rubrics/types.d.ts +54 -0
  65. package/esm/src/evals/rubrics/types.js +74 -0
  66. package/esm/src/evals/run.d.ts +118 -0
  67. package/esm/src/evals/run.js +452 -0
  68. package/esm/src/evals/suite.d.ts +19 -0
  69. package/esm/src/evals/suite.js +92 -0
  70. package/esm/src/evals/summary.d.ts +32 -0
  71. package/esm/src/evals/summary.js +30 -0
  72. package/esm/src/evals/trial.d.ts +27 -0
  73. package/esm/src/evals/trial.js +158 -0
  74. package/esm/src/evals/types.d.ts +260 -0
  75. package/esm/src/evals/types.js +126 -0
  76. package/esm/src/evals/verdict.d.ts +18 -0
  77. package/esm/src/evals/verdict.js +45 -0
  78. package/esm/src/guardrails/canary-gate.d.ts +21 -0
  79. package/esm/src/guardrails/canary-gate.js +40 -0
  80. package/esm/src/guardrails/canary.d.ts +112 -0
  81. package/esm/src/guardrails/canary.js +901 -0
  82. package/esm/src/guardrails/compile-egress.d.ts +11 -0
  83. package/esm/src/guardrails/compile-egress.js +11 -0
  84. package/esm/src/guardrails/corpus/canary-egress-attacks.d.ts +22 -0
  85. package/esm/src/guardrails/corpus/canary-egress-attacks.js +303 -0
  86. package/esm/src/guardrails/corpus/fuzz-inbound.d.ts +5 -0
  87. package/esm/src/guardrails/corpus/fuzz-inbound.js +202 -0
  88. package/esm/src/guardrails/corpus/inbound-payloads.d.ts +3 -0
  89. package/esm/src/guardrails/corpus/inbound-payloads.js +118 -0
  90. package/esm/src/guardrails/corpus/live-attacks.d.ts +13 -0
  91. package/esm/src/guardrails/corpus/live-attacks.js +224 -0
  92. package/esm/src/guardrails/corpus/mod.d.ts +7 -0
  93. package/esm/src/guardrails/corpus/mod.js +4 -0
  94. package/esm/src/guardrails/corpus/secrets.d.ts +12 -0
  95. package/esm/src/guardrails/corpus/secrets.js +16 -0
  96. package/esm/src/guardrails/corpus/strings.d.ts +23 -0
  97. package/esm/src/guardrails/corpus/strings.js +29 -0
  98. package/esm/src/guardrails/corpus/types.d.ts +32 -0
  99. package/esm/src/guardrails/corpus/types.js +1 -0
  100. package/esm/src/guardrails/egress-automata.d.ts +14 -0
  101. package/esm/src/guardrails/egress-automata.js +6059 -0
  102. package/esm/src/guardrails/egress-compiler.d.ts +33 -0
  103. package/esm/src/guardrails/egress-compiler.js +237 -0
  104. package/esm/src/guardrails/egress-patterns.d.ts +24 -0
  105. package/esm/src/guardrails/egress-patterns.js +32 -0
  106. package/esm/src/guardrails/egress-policy.d.ts +27 -0
  107. package/esm/src/guardrails/egress-policy.js +76 -0
  108. package/esm/src/guardrails/egress-rules.d.ts +54 -0
  109. package/esm/src/guardrails/egress-rules.js +49 -0
  110. package/esm/src/guardrails/egress-stream.d.ts +105 -0
  111. package/esm/src/guardrails/egress-stream.js +645 -0
  112. package/esm/src/guardrails/egress-urls.d.ts +83 -0
  113. package/esm/src/guardrails/egress-urls.js +917 -0
  114. package/esm/src/guardrails/egress.d.ts +106 -0
  115. package/esm/src/guardrails/egress.js +374 -0
  116. package/esm/src/guardrails/error.d.ts +26 -0
  117. package/esm/src/guardrails/error.js +91 -0
  118. package/esm/src/guardrails/event-schemas.d.ts +57 -0
  119. package/esm/src/guardrails/event-schemas.js +41 -0
  120. package/esm/src/guardrails/events.d.ts +9 -0
  121. package/esm/src/guardrails/events.js +42 -0
  122. package/esm/src/guardrails/hits.d.ts +8 -0
  123. package/esm/src/guardrails/hits.js +19 -0
  124. package/esm/src/guardrails/injection-patterns.d.ts +15 -0
  125. package/esm/src/guardrails/injection-patterns.js +94 -0
  126. package/esm/src/guardrails/injection.d.ts +14 -0
  127. package/esm/src/guardrails/injection.js +237 -0
  128. package/esm/src/guardrails/lexicon.d.ts +30 -0
  129. package/esm/src/guardrails/lexicon.js +478 -0
  130. package/esm/src/guardrails/live-outbound-gate.d.ts +54 -0
  131. package/esm/src/guardrails/live-outbound-gate.js +305 -0
  132. package/esm/src/guardrails/mod.d.ts +46 -0
  133. package/esm/src/guardrails/mod.js +29 -0
  134. package/esm/src/guardrails/network.d.ts +42 -0
  135. package/esm/src/guardrails/network.js +328 -0
  136. package/esm/src/guardrails/normalize.d.ts +6 -0
  137. package/esm/src/guardrails/normalize.js +132 -0
  138. package/esm/src/guardrails/policy.d.ts +19 -0
  139. package/esm/src/guardrails/policy.js +50 -0
  140. package/esm/src/guardrails/progressive-yield.d.ts +69 -0
  141. package/esm/src/guardrails/progressive-yield.js +237 -0
  142. package/esm/src/guardrails/prompt-echo.d.ts +38 -0
  143. package/esm/src/guardrails/prompt-echo.js +225 -0
  144. package/esm/src/guardrails/quota.d.ts +20 -0
  145. package/esm/src/guardrails/quota.js +80 -0
  146. package/esm/src/guardrails/rules.d.ts +56 -0
  147. package/esm/src/guardrails/rules.js +54 -0
  148. package/esm/src/guardrails/sanitize.d.ts +23 -0
  149. package/esm/src/guardrails/sanitize.js +184 -0
  150. package/esm/src/guardrails/sensitive.d.ts +29 -0
  151. package/esm/src/guardrails/sensitive.js +113 -0
  152. package/esm/src/guardrails/serialize.d.ts +14 -0
  153. package/esm/src/guardrails/serialize.js +37 -0
  154. package/esm/src/guardrails/testing.d.ts +9 -0
  155. package/esm/src/guardrails/testing.js +8 -0
  156. package/esm/src/guardrails/theorem-error.d.ts +18 -0
  157. package/esm/src/guardrails/theorem-error.js +53 -0
  158. package/esm/src/guardrails/thought-guard.d.ts +55 -0
  159. package/esm/src/guardrails/thought-guard.js +464 -0
  160. package/esm/src/guardrails/tool-directives.d.ts +19 -0
  161. package/esm/src/guardrails/tool-directives.js +109 -0
  162. package/esm/src/guardrails/tool-result.d.ts +61 -0
  163. package/esm/src/guardrails/tool-result.js +248 -0
  164. package/esm/src/guardrails/types.d.ts +242 -0
  165. package/esm/src/guardrails/types.js +54 -0
  166. package/esm/src/host/client-turn.d.ts +9 -0
  167. package/esm/src/host/client-turn.js +38 -0
  168. package/esm/src/host/mint-trace.d.ts +28 -0
  169. package/esm/src/host/mint-trace.js +59 -0
  170. package/esm/src/host/mod.d.ts +13 -0
  171. package/esm/src/host/mod.js +11 -0
  172. package/esm/src/host/readStreamingJsonStringField.d.ts +2 -0
  173. package/esm/src/host/readStreamingJsonStringField.js +68 -0
  174. package/esm/src/host/reply.d.ts +7 -0
  175. package/esm/src/host/reply.js +35 -0
  176. package/esm/src/interface/blocks.d.ts +8 -0
  177. package/esm/src/interface/blocks.js +213 -0
  178. package/esm/src/interface/composer-actions.d.ts +20 -0
  179. package/esm/src/interface/composer-actions.js +31 -0
  180. package/esm/src/interface/draft.d.ts +14 -0
  181. package/esm/src/interface/draft.js +28 -0
  182. package/esm/src/interface/from-profile.d.ts +12 -0
  183. package/esm/src/interface/from-profile.js +144 -0
  184. package/esm/src/interface/history.d.ts +40 -0
  185. package/esm/src/interface/history.js +269 -0
  186. package/esm/src/interface/inputs.d.ts +10 -0
  187. package/esm/src/interface/inputs.js +64 -0
  188. package/esm/src/interface/mod.d.ts +31 -0
  189. package/esm/src/interface/mod.js +21 -0
  190. package/esm/src/interface/models.d.ts +19 -0
  191. package/esm/src/interface/models.js +45 -0
  192. package/esm/src/interface/pending.d.ts +48 -0
  193. package/esm/src/interface/pending.js +146 -0
  194. package/esm/src/interface/profile-interface.d.ts +4 -0
  195. package/esm/src/interface/profile-interface.js +223 -0
  196. package/esm/src/interface/session.d.ts +64 -0
  197. package/esm/src/interface/session.js +121 -0
  198. package/esm/src/interface/tool-calls.d.ts +20 -0
  199. package/esm/src/interface/tool-calls.js +73 -0
  200. package/esm/src/interface/tool-invoke.d.ts +4 -0
  201. package/esm/src/interface/tool-invoke.js +20 -0
  202. package/esm/src/interface/tool-media.d.ts +9 -0
  203. package/esm/src/interface/tool-media.js +112 -0
  204. package/esm/src/interface/types.d.ts +213 -0
  205. package/esm/src/interface/types.js +4 -0
  206. package/esm/src/kernel/auth/credential-source.d.ts +23 -0
  207. package/esm/src/kernel/auth/credential-source.js +11 -0
  208. package/esm/src/kernel/auth/crypto.d.ts +51 -0
  209. package/esm/src/kernel/auth/crypto.js +161 -0
  210. package/esm/src/kernel/auth/mod.d.ts +5 -0
  211. package/esm/src/kernel/auth/mod.js +5 -0
  212. package/esm/src/kernel/auth/oauth.d.ts +17 -0
  213. package/esm/src/kernel/auth/oauth.js +438 -0
  214. package/esm/src/kernel/auth/scope-refusal.d.ts +9 -0
  215. package/esm/src/kernel/auth/scope-refusal.js +8 -0
  216. package/esm/src/kernel/auth/typed-secret.d.ts +13 -0
  217. package/esm/src/kernel/auth/typed-secret.js +23 -0
  218. package/esm/src/kernel/auth/types.d.ts +139 -0
  219. package/esm/src/kernel/auth/types.js +1 -0
  220. package/esm/src/kernel/default-scope.d.ts +34 -0
  221. package/esm/src/kernel/default-scope.js +72 -0
  222. package/esm/src/kernel/engine/compaction.d.ts +70 -0
  223. package/esm/src/kernel/engine/compaction.js +202 -0
  224. package/esm/src/kernel/engine/decision.d.ts +41 -0
  225. package/esm/src/kernel/engine/decision.js +412 -0
  226. package/esm/src/kernel/engine/hash.d.ts +6 -0
  227. package/esm/src/kernel/engine/hash.js +22 -0
  228. package/esm/src/kernel/engine/live-inbound.d.ts +9 -0
  229. package/esm/src/kernel/engine/live-inbound.js +19 -0
  230. package/esm/src/kernel/engine/live-ingress.d.ts +9 -0
  231. package/esm/src/kernel/engine/live-ingress.js +37 -0
  232. package/esm/src/kernel/engine/media-probe/audio.d.ts +7 -0
  233. package/esm/src/kernel/engine/media-probe/audio.js +342 -0
  234. package/esm/src/kernel/engine/media-probe/bytes.d.ts +6 -0
  235. package/esm/src/kernel/engine/media-probe/bytes.js +26 -0
  236. package/esm/src/kernel/engine/media-probe/image.d.ts +5 -0
  237. package/esm/src/kernel/engine/media-probe/image.js +171 -0
  238. package/esm/src/kernel/engine/media-probe/iso-bmff.d.ts +19 -0
  239. package/esm/src/kernel/engine/media-probe/iso-bmff.js +48 -0
  240. package/esm/src/kernel/engine/media-probe/matroska.d.ts +35 -0
  241. package/esm/src/kernel/engine/media-probe/matroska.js +226 -0
  242. package/esm/src/kernel/engine/media-probe/mp4.d.ts +22 -0
  243. package/esm/src/kernel/engine/media-probe/mp4.js +279 -0
  244. package/esm/src/kernel/engine/media-probe/opus.d.ts +4 -0
  245. package/esm/src/kernel/engine/media-probe/opus.js +23 -0
  246. package/esm/src/kernel/engine/media-probe/pdf.d.ts +5 -0
  247. package/esm/src/kernel/engine/media-probe/pdf.js +117 -0
  248. package/esm/src/kernel/engine/media-probe/video.d.ts +15 -0
  249. package/esm/src/kernel/engine/media-probe/video.js +49 -0
  250. package/esm/src/kernel/engine/record.d.ts +3 -0
  251. package/esm/src/kernel/engine/record.js +11 -0
  252. package/esm/src/kernel/engine/repair.d.ts +7 -0
  253. package/esm/src/kernel/engine/repair.js +36 -0
  254. package/esm/src/kernel/engine/runner/gates.d.ts +5 -0
  255. package/esm/src/kernel/engine/runner/gates.js +322 -0
  256. package/esm/src/kernel/engine/runner/mod.d.ts +15 -0
  257. package/esm/src/kernel/engine/runner/mod.js +574 -0
  258. package/esm/src/kernel/engine/runner/schema-validation.d.ts +14 -0
  259. package/esm/src/kernel/engine/runner/schema-validation.js +105 -0
  260. package/esm/src/kernel/engine/runner/stages.d.ts +28 -0
  261. package/esm/src/kernel/engine/runner/stages.js +48 -0
  262. package/esm/src/kernel/engine/runner/state.d.ts +76 -0
  263. package/esm/src/kernel/engine/runner/state.js +40 -0
  264. package/esm/src/kernel/engine/runner/steps.d.ts +14 -0
  265. package/esm/src/kernel/engine/runner/steps.js +360 -0
  266. package/esm/src/kernel/engine/runner/stream.d.ts +40 -0
  267. package/esm/src/kernel/engine/runner/stream.js +225 -0
  268. package/esm/src/kernel/engine/runner/usage.d.ts +45 -0
  269. package/esm/src/kernel/engine/runner/usage.js +150 -0
  270. package/esm/src/kernel/engine/session/mod.d.ts +31 -0
  271. package/esm/src/kernel/engine/session/mod.js +951 -0
  272. package/esm/src/kernel/engine/session/session-trace.d.ts +115 -0
  273. package/esm/src/kernel/engine/session/session-trace.js +489 -0
  274. package/esm/src/kernel/engine/token-estimate.d.ts +77 -0
  275. package/esm/src/kernel/engine/token-estimate.js +218 -0
  276. package/esm/src/kernel/engine/tool-trace.d.ts +58 -0
  277. package/esm/src/kernel/engine/tool-trace.js +131 -0
  278. package/esm/src/kernel/engine/tree.d.ts +2 -0
  279. package/esm/src/kernel/engine/tree.js +17 -0
  280. package/esm/src/kernel/engine/turn-trace.d.ts +118 -0
  281. package/esm/src/kernel/engine/turn-trace.js +863 -0
  282. package/esm/src/kernel/engine/usage.d.ts +30 -0
  283. package/esm/src/kernel/engine/usage.js +134 -0
  284. package/esm/src/kernel/interaction-parts.d.ts +10 -0
  285. package/esm/src/kernel/interaction-parts.js +22 -0
  286. package/esm/src/kernel/mod.d.ts +47 -0
  287. package/esm/src/kernel/mod.js +30 -0
  288. package/esm/src/kernel/profile-graph.d.ts +140 -0
  289. package/esm/src/kernel/profile-graph.js +151 -0
  290. package/esm/src/kernel/profile-presence.d.ts +9 -0
  291. package/esm/src/kernel/profile-presence.js +143 -0
  292. package/esm/src/kernel/profile-scope.d.ts +36 -0
  293. package/esm/src/kernel/profile-scope.js +262 -0
  294. package/esm/src/kernel/registry/attachments.d.ts +35 -0
  295. package/esm/src/kernel/registry/attachments.js +211 -0
  296. package/esm/src/kernel/registry/catalog.d.ts +19 -0
  297. package/esm/src/kernel/registry/catalog.js +78 -0
  298. package/esm/src/kernel/registry/ingress.d.ts +8 -0
  299. package/esm/src/kernel/registry/ingress.js +134 -0
  300. package/esm/src/kernel/registry/kernel-registry.d.ts +12 -0
  301. package/esm/src/kernel/registry/kernel-registry.js +8 -0
  302. package/esm/src/kernel/registry/profile-outputs.d.ts +3 -0
  303. package/esm/src/kernel/registry/profile-outputs.js +7 -0
  304. package/esm/src/kernel/registry/profiles.d.ts +92 -0
  305. package/esm/src/kernel/registry/profiles.js +698 -0
  306. package/esm/src/kernel/registry/provider-request.d.ts +6 -0
  307. package/esm/src/kernel/registry/provider-request.js +42 -0
  308. package/esm/src/kernel/registry/resolve.d.ts +14 -0
  309. package/esm/src/kernel/registry/resolve.js +237 -0
  310. package/esm/src/kernel/registry/schemas.d.ts +9 -0
  311. package/esm/src/kernel/registry/schemas.js +25 -0
  312. package/esm/src/kernel/registry/sole-model.d.ts +2 -0
  313. package/esm/src/kernel/registry/sole-model.js +4 -0
  314. package/esm/src/kernel/registry/system-prompt.d.ts +8 -0
  315. package/esm/src/kernel/registry/system-prompt.js +33 -0
  316. package/esm/src/kernel/registry/system-role.d.ts +3 -0
  317. package/esm/src/kernel/registry/system-role.js +9 -0
  318. package/esm/src/kernel/registry/vault.d.ts +13 -0
  319. package/esm/src/kernel/registry/vault.js +14 -0
  320. package/esm/src/kernel/schema.d.ts +172 -0
  321. package/esm/src/kernel/schema.js +653 -0
  322. package/esm/src/kernel/scope.d.ts +22 -0
  323. package/esm/src/kernel/scope.js +25 -0
  324. package/esm/src/kernel/stages.d.ts +141 -0
  325. package/esm/src/kernel/stages.js +388 -0
  326. package/esm/src/kernel/stop.d.ts +93 -0
  327. package/esm/src/kernel/stop.js +125 -0
  328. package/esm/src/kernel/system-parts.d.ts +26 -0
  329. package/esm/src/kernel/system-parts.js +98 -0
  330. package/esm/src/kernel/tools/activity-label.d.ts +16 -0
  331. package/esm/src/kernel/tools/activity-label.js +209 -0
  332. package/esm/src/kernel/tools/events.d.ts +51 -0
  333. package/esm/src/kernel/tools/events.js +149 -0
  334. package/esm/src/kernel/tools/execute.d.ts +64 -0
  335. package/esm/src/kernel/tools/execute.js +801 -0
  336. package/esm/src/kernel/tools/gate-answer.d.ts +50 -0
  337. package/esm/src/kernel/tools/gate-answer.js +54 -0
  338. package/esm/src/kernel/tools/harness.d.ts +16 -0
  339. package/esm/src/kernel/tools/harness.js +42 -0
  340. package/esm/src/kernel/tools/invoke.d.ts +10 -0
  341. package/esm/src/kernel/tools/invoke.js +129 -0
  342. package/esm/src/kernel/tools/mcp-sessions.d.ts +20 -0
  343. package/esm/src/kernel/tools/mcp-sessions.js +64 -0
  344. package/esm/src/kernel/tools/mod.d.ts +9 -0
  345. package/esm/src/kernel/tools/mod.js +6 -0
  346. package/esm/src/kernel/tools/model-text.d.ts +11 -0
  347. package/esm/src/kernel/tools/model-text.js +25 -0
  348. package/esm/src/kernel/tools/permission.d.ts +6 -0
  349. package/esm/src/kernel/tools/permission.js +38 -0
  350. package/esm/src/kernel/tools/project.d.ts +8 -0
  351. package/esm/src/kernel/tools/project.js +25 -0
  352. package/esm/src/kernel/tools/registry.d.ts +20 -0
  353. package/esm/src/kernel/tools/registry.js +84 -0
  354. package/esm/src/kernel/tools/remote.d.ts +110 -0
  355. package/esm/src/kernel/tools/remote.js +998 -0
  356. package/esm/src/kernel/tools/resolve.d.ts +28 -0
  357. package/esm/src/kernel/tools/resolve.js +259 -0
  358. package/esm/src/kernel/tools/schema.d.ts +10 -0
  359. package/esm/src/kernel/tools/schema.js +174 -0
  360. package/esm/src/kernel/tools/signed-in-fetch.d.ts +18 -0
  361. package/esm/src/kernel/tools/signed-in-fetch.js +45 -0
  362. package/esm/src/kernel/tools/stage-run.d.ts +93 -0
  363. package/esm/src/kernel/tools/stage-run.js +140 -0
  364. package/esm/src/kernel/tools/types.d.ts +287 -0
  365. package/esm/src/kernel/tools/types.js +1 -0
  366. package/esm/src/kernel/turn-events.d.ts +599 -0
  367. package/esm/src/kernel/turn-events.js +425 -0
  368. package/esm/src/kernel/types.d.ts +884 -0
  369. package/esm/src/kernel/types.js +1 -0
  370. package/esm/src/kernel/util/base64.d.ts +2 -0
  371. package/esm/src/kernel/util/base64.js +13 -0
  372. package/esm/src/kernel/util/exact-type.d.ts +31 -0
  373. package/esm/src/kernel/util/exact-type.js +1 -0
  374. package/esm/src/kernel/util/find-last.d.ts +3 -0
  375. package/esm/src/kernel/util/find-last.js +9 -0
  376. package/esm/src/kernel/util/mime.d.ts +2 -0
  377. package/esm/src/kernel/util/mime.js +4 -0
  378. package/esm/src/kernel/util/record.d.ts +1 -0
  379. package/esm/src/kernel/util/record.js +3 -0
  380. package/esm/src/observability/destinations.d.ts +9 -0
  381. package/esm/src/observability/destinations.js +38 -0
  382. package/esm/src/observability/jsonl.d.ts +18 -0
  383. package/esm/src/observability/jsonl.js +117 -0
  384. package/esm/src/observability/mod.d.ts +22 -0
  385. package/esm/src/observability/mod.js +16 -0
  386. package/esm/src/observability/openinference.d.ts +11 -0
  387. package/esm/src/observability/openinference.js +205 -0
  388. package/esm/src/observability/otlp.d.ts +68 -0
  389. package/esm/src/observability/otlp.js +98 -0
  390. package/esm/src/observability/phoenix.d.ts +29 -0
  391. package/esm/src/observability/phoenix.js +71 -0
  392. package/esm/src/observability/policy.d.ts +14 -0
  393. package/esm/src/observability/policy.js +69 -0
  394. package/esm/src/observability/resolve-policy.d.ts +8 -0
  395. package/esm/src/observability/resolve-policy.js +58 -0
  396. package/esm/src/observability/spans.d.ts +16 -0
  397. package/esm/src/observability/spans.js +56 -0
  398. package/esm/src/observability/trace-catalog.d.ts +111 -0
  399. package/esm/src/observability/trace-catalog.js +865 -0
  400. package/esm/src/observability/trace-record.d.ts +23 -0
  401. package/esm/src/observability/trace-record.js +223 -0
  402. package/esm/src/observability/trace-schema.d.ts +54 -0
  403. package/esm/src/observability/trace-schema.js +59 -0
  404. package/esm/src/observability/trace-sink.d.ts +13 -0
  405. package/esm/src/observability/trace-sink.js +3 -0
  406. package/esm/src/observability/trace-span.d.ts +92 -0
  407. package/esm/src/observability/trace-span.js +199 -0
  408. package/esm/src/observability/trace.d.ts +11 -0
  409. package/esm/src/observability/trace.js +35 -0
  410. package/esm/src/observability/types.d.ts +85 -0
  411. package/esm/src/observability/types.js +3 -0
  412. package/esm/src/presets/google/speech-voices.d.ts +8 -0
  413. package/esm/src/presets/google/speech-voices.js +38 -0
  414. package/esm/src/presets/google-limits.d.ts +12 -0
  415. package/esm/src/presets/google-limits.js +18 -0
  416. package/esm/src/presets/google.d.ts +104 -0
  417. package/esm/src/presets/google.js +188 -0
  418. package/esm/src/presets/mod.d.ts +10 -0
  419. package/esm/src/presets/mod.js +9 -0
  420. package/esm/src/presets/openrouter.d.ts +13 -0
  421. package/esm/src/presets/openrouter.js +13 -0
  422. package/esm/src/presets/typesafe.d.ts +2 -0
  423. package/esm/src/presets/typesafe.js +2 -0
  424. package/esm/src/providers/create-provider.d.ts +21 -0
  425. package/esm/src/providers/create-provider.js +90 -0
  426. package/esm/src/providers/decision/usage.d.ts +3 -0
  427. package/esm/src/providers/decision/usage.js +25 -0
  428. package/esm/src/providers/google/api-error.d.ts +8 -0
  429. package/esm/src/providers/google/api-error.js +123 -0
  430. package/esm/src/providers/google/grounding.d.ts +5 -0
  431. package/esm/src/providers/google/grounding.js +226 -0
  432. package/esm/src/providers/google/interactions/framing.d.ts +15 -0
  433. package/esm/src/providers/google/interactions/framing.js +263 -0
  434. package/esm/src/providers/google/interactions/mod.d.ts +2 -0
  435. package/esm/src/providers/google/interactions/mod.js +2 -0
  436. package/esm/src/providers/google/interactions/steps.d.ts +12 -0
  437. package/esm/src/providers/google/interactions/steps.js +200 -0
  438. package/esm/src/providers/google/interactions/stream.d.ts +24 -0
  439. package/esm/src/providers/google/interactions/stream.js +297 -0
  440. package/esm/src/providers/google/keys.d.ts +20 -0
  441. package/esm/src/providers/google/keys.js +87 -0
  442. package/esm/src/providers/google/live/framing.d.ts +51 -0
  443. package/esm/src/providers/google/live/framing.js +597 -0
  444. package/esm/src/providers/google/live/mod.d.ts +7 -0
  445. package/esm/src/providers/google/live/mod.js +7 -0
  446. package/esm/src/providers/google/live/openapi-schema.d.ts +1 -0
  447. package/esm/src/providers/google/live/openapi-schema.js +42 -0
  448. package/esm/src/providers/google/live/session.d.ts +14 -0
  449. package/esm/src/providers/google/live/session.js +150 -0
  450. package/esm/src/providers/google/live/stream.d.ts +51 -0
  451. package/esm/src/providers/google/live/stream.js +263 -0
  452. package/esm/src/providers/google/thinking.d.ts +3 -0
  453. package/esm/src/providers/google/thinking.js +8 -0
  454. package/esm/src/providers/google/urls.d.ts +6 -0
  455. package/esm/src/providers/google/urls.js +6 -0
  456. package/esm/src/providers/google/usage.d.ts +7 -0
  457. package/esm/src/providers/google/usage.js +49 -0
  458. package/esm/src/providers/local/local.d.ts +12 -0
  459. package/esm/src/providers/local/local.js +186 -0
  460. package/esm/src/providers/local/mod.d.ts +8 -0
  461. package/esm/src/providers/local/mod.js +8 -0
  462. package/esm/src/providers/mod.d.ts +11 -0
  463. package/esm/src/providers/mod.js +7 -0
  464. package/esm/src/providers/openrouter/cache-control.d.ts +5 -0
  465. package/esm/src/providers/openrouter/cache-control.js +4 -0
  466. package/esm/src/providers/openrouter/chat.d.ts +64 -0
  467. package/esm/src/providers/openrouter/chat.js +490 -0
  468. package/esm/src/providers/openrouter/image.d.ts +24 -0
  469. package/esm/src/providers/openrouter/image.js +187 -0
  470. package/esm/src/providers/openrouter/openai/compat.d.ts +19 -0
  471. package/esm/src/providers/openrouter/openai/compat.js +162 -0
  472. package/esm/src/providers/openrouter/openai/image-payload.d.ts +9 -0
  473. package/esm/src/providers/openrouter/openai/image-payload.js +115 -0
  474. package/esm/src/providers/openrouter/openai/sdk-messages.d.ts +10 -0
  475. package/esm/src/providers/openrouter/openai/sdk-messages.js +99 -0
  476. package/esm/src/providers/openrouter/openai/usage.d.ts +8 -0
  477. package/esm/src/providers/openrouter/openai/usage.js +56 -0
  478. package/esm/src/providers/openrouter/resolve-api-key.d.ts +3 -0
  479. package/esm/src/providers/openrouter/resolve-api-key.js +8 -0
  480. package/esm/src/providers/openrouter/speech.d.ts +18 -0
  481. package/esm/src/providers/openrouter/speech.js +109 -0
  482. package/esm/src/providers/probe.d.ts +5 -0
  483. package/esm/src/providers/probe.js +15 -0
  484. package/esm/src/providers/shared/builtin-wire.d.ts +4 -0
  485. package/esm/src/providers/shared/builtin-wire.js +9 -0
  486. package/esm/src/providers/shared/pcm.d.ts +14 -0
  487. package/esm/src/providers/shared/pcm.js +78 -0
  488. package/esm/src/providers/shared/response-identity.d.ts +11 -0
  489. package/esm/src/providers/shared/response-identity.js +12 -0
  490. package/esm/src/providers/shared/sse.d.ts +10 -0
  491. package/esm/src/providers/shared/sse.js +79 -0
  492. package/esm/src/providers/shared/structured-output.d.ts +4 -0
  493. package/esm/src/providers/shared/structured-output.js +11 -0
  494. package/esm/src/providers/shared/tool-args.d.ts +25 -0
  495. package/esm/src/providers/shared/tool-args.js +84 -0
  496. package/esm/src/providers/shared/upstream-tap.d.ts +8 -0
  497. package/esm/src/providers/shared/upstream-tap.js +85 -0
  498. package/esm/src/providers/shared/upstream-tape.d.ts +6 -0
  499. package/esm/src/providers/shared/upstream-tape.js +88 -0
  500. package/esm/src/providers/shared/vault.d.ts +13 -0
  501. package/esm/src/providers/shared/vault.js +41 -0
  502. package/esm/src/providers/types.d.ts +19 -0
  503. package/esm/src/providers/types.js +1 -0
  504. package/esm/src/surface/formats.d.ts +28 -0
  505. package/esm/src/surface/formats.js +139 -0
  506. package/esm/src/surface/mod.d.ts +14 -0
  507. package/esm/src/surface/mod.js +10 -0
  508. package/esm/src/surface/runtime.d.ts +40 -0
  509. package/esm/src/surface/runtime.js +439 -0
  510. package/esm/src/surface/tools.d.ts +15 -0
  511. package/esm/src/surface/tools.js +80 -0
  512. package/esm/src/surface/types.d.ts +104 -0
  513. package/esm/src/surface/types.js +4 -0
  514. package/package.json +108 -4
@@ -0,0 +1,599 @@
1
+ import { z } from 'zod';
2
+ import { type ErrorCopies, type GuardrailEvent } from '../guardrails/event-schemas.js';
3
+ 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
+ export type { ErrorCopies, ErrorKind, GuardrailEvent };
6
+ export interface InteractionTextPart {
7
+ type: 'text';
8
+ text: string;
9
+ }
10
+ export interface InteractionMediaPart {
11
+ type: MediaInputKind;
12
+ mimeType: string;
13
+ data: string;
14
+ }
15
+ /** The host owns the upload and cleanup; THEOREM only carries the reference. */
16
+ export interface InteractionMediaRefPart {
17
+ type: MediaInputKind;
18
+ mimeType: string;
19
+ uri: string;
20
+ }
21
+ export type InteractionPart = InteractionTextPart | InteractionMediaPart | InteractionMediaRefPart;
22
+ export interface TurnHistoryMessage {
23
+ role: 'system' | 'user' | 'assistant' | 'tool';
24
+ content?: string;
25
+ parts?: InteractionPart[];
26
+ tool_calls?: {
27
+ id: string;
28
+ type: 'function';
29
+ function: {
30
+ name: string;
31
+ arguments: string;
32
+ };
33
+ /** The call's `ToolCallRequest.thoughtSignature`, replayed with it. */
34
+ thoughtSignature?: string;
35
+ }[];
36
+ tool_call_id?: string;
37
+ name?: string;
38
+ metadata?: Record<string, unknown>;
39
+ }
40
+ export declare const turnHistoryMessageSchema: z.ZodType<TurnHistoryMessage>;
41
+ /** Why a turn or live utterance ended. */
42
+ export interface TurnStop {
43
+ kind: TurnStopKind;
44
+ native?: string;
45
+ }
46
+ declare const TURN_TOKEN_SIDES: readonly ["input", "output"];
47
+ export type TurnTokenSide = (typeof TURN_TOKEN_SIDES)[number];
48
+ export interface TurnCost {
49
+ /** What the provider charged, in US dollars. */
50
+ usd: number;
51
+ /** What the upstream model vendor charged the provider, when reported (OpenRouter). */
52
+ upstreamUsd?: number;
53
+ /**
54
+ * Set on a sum (`sumTokens`) when some summed calls reported a cost and
55
+ * others did not: `usd` covers only the calls that did.
56
+ */
57
+ partial?: true;
58
+ }
59
+ /** One grounding tool's use in a call (Interactions `grounding_tool_count`). */
60
+ export interface TurnGroundingCount {
61
+ type: string;
62
+ count: number;
63
+ /** Search queries the tool ran. Absent = not reported. */
64
+ searchQueryCount?: number;
65
+ }
66
+ /**
67
+ * Token accounting for one model call, one `tokens` event per call; on `done`,
68
+ * the turn's sum (`sumTokens`).
69
+ *
70
+ * Meanings follow the OpenTelemetry GenAI conventions on every provider:
71
+ * `input` counts everything the model read (cached prompt and provider
72
+ * tool-use tokens included), `output` everything it wrote (reasoning
73
+ * included), and `total` is `input + output`.
74
+ */
75
+ export interface TurnTokens {
76
+ input: number;
77
+ output: number;
78
+ /** Reasoning share of `output`. */
79
+ thinking?: number;
80
+ /** Provider tool-use share of `input` (Google code execution / URL context results). */
81
+ toolUse?: number;
82
+ /** Share of `input` read from provider cache (cache hit). */
83
+ cached?: number;
84
+ /** Share of `input` written into provider cache. */
85
+ cacheWrite?: number;
86
+ total: number;
87
+ cost?: TurnCost;
88
+ /**
89
+ * Sides the provider did not report. The runner replaces each with the one
90
+ * token estimator's count before the event reaches the host. Absent = both
91
+ * sides provider-reported.
92
+ */
93
+ estimated?: TurnTokenSide[];
94
+ /**
95
+ * Media parts left out of an estimated side because no verified rule counts
96
+ * them, per side. Absent when every part was counted.
97
+ */
98
+ unknownMedia?: {
99
+ input?: number;
100
+ output?: number;
101
+ };
102
+ /**
103
+ * Provider-reported shares of each side by modality (`text`, `image`,
104
+ * `audio`, …, lower-case). Providers list only some modalities, so the
105
+ * shares need not add up to the side. Absent = not reported.
106
+ */
107
+ byModality?: {
108
+ input?: Record<string, number>;
109
+ output?: Record<string, number>;
110
+ };
111
+ grounding?: TurnGroundingCount[];
112
+ }
113
+ /** A provider response's identity, as the wire sent it. Live sends neither field. */
114
+ export interface TurnResponse {
115
+ /** Provider response id (OpenAI-compatible `id`, Interactions `id`). */
116
+ id?: string;
117
+ model?: string;
118
+ }
119
+ declare const SOURCE_TYPES: readonly ["web", "maps"];
120
+ export type SourceType = (typeof SOURCE_TYPES)[number];
121
+ export interface Source {
122
+ title: string;
123
+ uri: string;
124
+ type: SourceType;
125
+ /** Google Place id when the source is a Maps place / place_citation. */
126
+ placeId?: string;
127
+ }
128
+ export declare const sourceSchema: z.ZodType<Source>;
129
+ /** Google grounding search metadata. Sources travel as `citation` events. */
130
+ export interface GroundingEvent {
131
+ metadata?: Record<string, unknown>;
132
+ chunks?: unknown[];
133
+ searchHtml?: string;
134
+ }
135
+ export interface EvidenceBase {
136
+ provider: Provider;
137
+ /** The provider's own payload, for the builder: `forClient` strips it unless `includeEvidenceRaw`. */
138
+ raw?: Record<string, unknown>;
139
+ /**
140
+ * The provider started this step and never finished it (the stream ended
141
+ * first). `raw` holds what arrived. A partial tool call is evidence only and
142
+ * never runs.
143
+ */
144
+ partial?: boolean;
145
+ }
146
+ export type ProviderEvidence = (EvidenceBase & {
147
+ kind: 'code_execution_call';
148
+ /** Generated source from `code_execution_call.arguments.code`. */
149
+ code: string;
150
+ /** Language of `code` when the API supplies it (typically `python`). */
151
+ language?: string;
152
+ id: string;
153
+ }) | (EvidenceBase & {
154
+ kind: 'code_execution_result';
155
+ result?: string;
156
+ isError?: boolean;
157
+ /** Links a result to its call (`code_execution_result.call_id`). */
158
+ callId?: string;
159
+ }) | (EvidenceBase & {
160
+ kind: 'input_transcription' | 'output_transcription';
161
+ /** Partial/interim chunk (vs final transcription delta). Text rides on the event. */
162
+ interim?: boolean;
163
+ }) | (EvidenceBase & {
164
+ kind: 'voice_activity' | 'url_context';
165
+ }) | (EvidenceBase & {
166
+ kind: 'session_resumption';
167
+ /** Whether the handle (on the event) may be used to resume. */
168
+ resumable: boolean;
169
+ }) | (EvidenceBase & {
170
+ kind: 'provider_step';
171
+ /** The provider's own step type, e.g. `google_search_call`. */
172
+ step: string;
173
+ });
174
+ /** A session the provider ended after warning it would. */
175
+ export interface SessionEnded {
176
+ /** The provider warned first (Gemini `goAway`). */
177
+ cause: 'go_away';
178
+ code: number;
179
+ /** Milliseconds from the last warning to the close; compare with `timeLeftMs`. */
180
+ closedAfterMs: number;
181
+ /** What the close code means as a failure, when it is not a normal close (1000). */
182
+ errorKind?: ErrorKind;
183
+ }
184
+ /**
185
+ * Live session control signal.
186
+ *
187
+ * - `closing_soon` — the provider will end the session; `timeLeftMs` is the
188
+ * drain window when it gave one.
189
+ * - `ended` — the provider ended the session after warning it would; the last
190
+ * event of the session, not a failure. `message` is what the user reads
191
+ * (the profile's `live.session_ended` wording).
192
+ * - `turn_complete` — one spoken response ended; the server may still be working.
193
+ * - `working` — server is reasoning or awaiting async tool results.
194
+ * - `idle` — server finished all processing; conversational cycle boundary.
195
+ */
196
+ export type SessionEvent = {
197
+ kind: 'closing_soon';
198
+ timeLeftMs?: number;
199
+ } | {
200
+ kind: 'ended';
201
+ timeLeftMs?: number;
202
+ ended: SessionEnded;
203
+ message: string;
204
+ } | {
205
+ kind: 'waiting_for_input' | 'turn_complete' | 'working' | 'idle';
206
+ };
207
+ export type SessionEventKind = SessionEvent['kind'];
208
+ export type SessionEventOf<K extends SessionEventKind> = Extract<SessionEvent, {
209
+ kind: K;
210
+ }>;
211
+ export interface ToolFailure {
212
+ /** What went wrong, for the builder. Stable per failure site. */
213
+ code: string;
214
+ /** What kind of failure it is; the user's wording (`error.<kind>`) follows from it. */
215
+ kind: ErrorKind;
216
+ /** What the model reads in the tool result. */
217
+ message: string;
218
+ /** User-safe wording, added where the event reaches the host. Never sent to the model. */
219
+ error?: string;
220
+ details?: unknown;
221
+ }
222
+ export interface ToolAuthChallenge {
223
+ slot: string;
224
+ authType: ToolAuthType;
225
+ /** The service the person signs in to, from the tool's auth config. */
226
+ service: string;
227
+ /** Why the tool needs it; never blank. */
228
+ message: string;
229
+ authorizationUrl?: string;
230
+ state?: string;
231
+ issuer?: string;
232
+ resource?: string;
233
+ requiredScopes?: string[];
234
+ }
235
+ /** Fields every gate carries. `tool` and `summary` are trimmed and never blank. */
236
+ export interface ToolGateBase {
237
+ tool: string;
238
+ permission?: ToolPermission;
239
+ summary?: string;
240
+ }
241
+ /**
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.
244
+ */
245
+ export type ToolGate = (ToolGateBase & {
246
+ kind: 'confirmation' | 'permission';
247
+ }) | (ToolGateBase & {
248
+ kind: 'auth';
249
+ authChallenge: ToolAuthChallenge;
250
+ });
251
+ export declare const toolGateSchema: z.ZodType<ToolGate>;
252
+ export interface ToolWarning {
253
+ code: string;
254
+ message: string;
255
+ severity?: 'info' | 'warning' | 'error';
256
+ }
257
+ export interface ToolTraceStep {
258
+ name: string;
259
+ kind: string;
260
+ status: string;
261
+ inputs?: Record<string, unknown>;
262
+ outputs?: Record<string, unknown>;
263
+ }
264
+ /**
265
+ * A tool completed by asking the user something (`docs/contracts/stages.md`).
266
+ * `prompt` and every option are trimmed and never blank; a `choice` offers at
267
+ * least one option.
268
+ */
269
+ export type AwaitingUserInput = {
270
+ status: typeof AWAITING_USER_INPUT_STATUS;
271
+ prompt: string;
272
+ } & ({
273
+ kind: 'confirm' | 'text';
274
+ options?: string[];
275
+ } | {
276
+ kind: 'choice';
277
+ options: string[];
278
+ });
279
+ export declare const awaitingUserInputSchema: z.ZodType<AwaitingUserInput>;
280
+ export interface WireFunctionTool {
281
+ type: 'function';
282
+ name: string;
283
+ description: string;
284
+ parameters: Record<string, unknown>;
285
+ }
286
+ export interface TurnToolSnapshot {
287
+ builtins: string[];
288
+ /** Tool ids eligible this turn (custom: allow + path; builtin: model builtInTools + path). */
289
+ gated: string[];
290
+ /** Schemas sent to the provider (respects loadTier + t2Loader promotion). */
291
+ visible: string[];
292
+ /** Kernel-executable tools: eligible, visible, and loaded (excludes builtins). */
293
+ executable: string[];
294
+ path?: string;
295
+ sessionPermissions?: string[];
296
+ wire: WireFunctionTool[];
297
+ }
298
+ export declare const turnToolSnapshotSchema: z.ZodType<TurnToolSnapshot>;
299
+ export interface ToolEventBase {
300
+ name: string;
301
+ /** Call id: the provider's own id when it sent one, else kernel-assigned. */
302
+ callId: string;
303
+ }
304
+ /**
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`.
308
+ */
309
+ export interface ToolCallRequest extends ToolEventBase {
310
+ phase?: undefined;
311
+ /**
312
+ * The arguments the model sent, parsed. `{}` when they did not parse: the
313
+ * `error` that follows (`malformed_arguments`) carries the raw text.
314
+ */
315
+ arguments: Record<string, unknown>;
316
+ /**
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).
321
+ */
322
+ thoughtSignature?: string;
323
+ /**
324
+ * The model step that made this call: calls sharing it were made together,
325
+ * in one model response, and replay as one assistant message. Unique within
326
+ * the turn. Absent on a host's own call (`invokeTool` without a `callId`).
327
+ */
328
+ stepId?: string;
329
+ }
330
+ export interface ToolPhaseBase extends ToolEventBase {
331
+ /** When the kernel emitted this phase (epoch ms). */
332
+ at: number;
333
+ }
334
+ /** The user edited the arguments before approving. */
335
+ export interface ToolCallEdit {
336
+ from: Record<string, unknown>;
337
+ to: Record<string, unknown>;
338
+ }
339
+ /**
340
+ * One phase of the kernel's execution of a call:
341
+ *
342
+ * - `running` — the body started; `edited` when the user changed the arguments;
343
+ * `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);
347
+ * `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.
350
+ * A sign-in gate's `readBack` is what the model reads while the person signs in.
351
+ * - `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.
353
+ * - `cancel` — cancelled in flight (e.g. live barge-in).
354
+ */
355
+ export type ToolPhaseEvent = ToolPhaseBase & ({
356
+ phase: 'running';
357
+ edited?: ToolCallEdit;
358
+ activity?: string;
359
+ } | {
360
+ phase: 'progress';
361
+ data: unknown;
362
+ } | {
363
+ phase: 'trace';
364
+ step: ToolTraceStep;
365
+ } | {
366
+ phase: 'artifact';
367
+ artifact: unknown;
368
+ } | {
369
+ phase: 'warning';
370
+ warning: ToolWarning;
371
+ } | {
372
+ phase: 'complete';
373
+ output: unknown;
374
+ awaiting?: boolean;
375
+ readBack?: string;
376
+ parts?: InteractionPart[];
377
+ activityPast?: string;
378
+ } | {
379
+ phase: 'gate';
380
+ gate: ToolGate;
381
+ readBack?: string;
382
+ } | {
383
+ phase: 'error';
384
+ failure: ToolFailure;
385
+ readBack?: string;
386
+ } | {
387
+ phase: 'cancel';
388
+ });
389
+ export type ToolCallPhase = ToolPhaseEvent['phase'];
390
+ export type ToolCallEvent = ToolCallRequest | ToolPhaseEvent;
391
+ export interface StageApplyWarning {
392
+ code: StageApplyWarningCode;
393
+ message: string;
394
+ field: string;
395
+ }
396
+ /** Compaction signal on `done` for `timing: 'after'` profiles. */
397
+ export interface CompactionSignal {
398
+ needed: boolean;
399
+ meter: CompactionMeter;
400
+ tokens: number;
401
+ /** Media parts not counted in `tokens` — no verified rule for this model. */
402
+ unknownMedia: number;
403
+ /** Full-prompt input tokens of this turn's last model call, when one completed. */
404
+ promptTokens?: number;
405
+ /** True when `promptTokens` is the token estimator's count — the provider reported none. */
406
+ promptTokensEstimated?: boolean;
407
+ history: TurnHistoryMessage[];
408
+ }
409
+ /** Why the compactor produced no summary. */
410
+ export interface CompactionFailure {
411
+ /** How the compactor's turn ended; absent when it threw before it could end. */
412
+ stop?: TurnStopKind;
413
+ /** The error it reported, when it reported one. */
414
+ error?: ErrorKind;
415
+ /** It completed without a summary. */
416
+ empty?: true;
417
+ /** Nothing in `toCompact` was left for it to read, so it did not run. */
418
+ unreadable?: true;
419
+ }
420
+ /** What one compaction did. The host keeps `history` from now on, whatever the outcome. */
421
+ export interface CompactionResult {
422
+ outcome: CompactionOutcome;
423
+ /** The messages the split handed to the compactor. */
424
+ toCompact: TurnHistoryMessage[];
425
+ history: TurnHistoryMessage[];
426
+ /** On `compacted`: the summary that replaced `toCompact`. */
427
+ summary?: string;
428
+ /** On `deferred` and `dropped`. */
429
+ failure?: CompactionFailure;
430
+ /** Media parts in `toCompact` the compactor's profile does not accept, left out of what it read. */
431
+ droppedMedia: number;
432
+ /** The compaction call's own usage. */
433
+ tokens?: TurnTokens;
434
+ }
435
+ /**
436
+ * Theorem ran the compactor before the turn. `after` is the host's to run with
437
+ * `compactHistory`, signalled on `done.compaction`.
438
+ */
439
+ export interface CompactionEvent extends Omit<CompactionResult, 'toCompact'> {
440
+ timing: 'before';
441
+ meter: CompactionMeter;
442
+ tokensBefore: number;
443
+ unknownMedia: number;
444
+ messagesBefore: number;
445
+ messagesAfter: number;
446
+ }
447
+ /** Stops that end a turn with tools pending; `done.tools` is present exactly on them. */
448
+ export type ToolSnapshotStopKind = Extract<TurnStopKind, 'tool' | 'gate'>;
449
+ export interface DoneBase {
450
+ /** The turn's summed usage (`sumTokens` over its `tokens` events). */
451
+ tokens?: TurnTokens;
452
+ /** The turn's root span as a W3C `traceparent`, for a later request's `links`. */
453
+ traceparent?: string;
454
+ compaction?: CompactionSignal;
455
+ /** A user utterance interrupted an in-flight live response (barge-in). */
456
+ interrupted?: boolean;
457
+ interactionId?: string;
458
+ }
459
+ /**
460
+ * The turn ended. On stop `tool` or `gate` it carries the turn's tool snapshot
461
+ * for `invokeTool({ snapshot })`; on every other stop it carries none.
462
+ */
463
+ export type DoneEvent = DoneBase & ({
464
+ stop: TurnStop & {
465
+ kind: ToolSnapshotStopKind;
466
+ };
467
+ tools: TurnToolSnapshot;
468
+ } | {
469
+ stop: TurnStop & {
470
+ kind: Exclude<TurnStopKind, ToolSnapshotStopKind>;
471
+ };
472
+ tools?: undefined;
473
+ });
474
+ /** Every event a host receives from `runTurn`, `invokeTool` or a live session. */
475
+ export type TurnEvent = {
476
+ type: 'text';
477
+ text: string;
478
+ } | {
479
+ type: 'thought';
480
+ text: string;
481
+ }
482
+ /** The profile's structured-output schema validates `structured`. */
483
+ | {
484
+ type: 'structured';
485
+ structured: unknown;
486
+ } | {
487
+ type: 'media';
488
+ media: {
489
+ mimeType: string;
490
+ data: string;
491
+ };
492
+ } | {
493
+ type: 'grounding';
494
+ grounding: GroundingEvent;
495
+ }
496
+ /** Sources a provider or a tool cited; `callId` names the tool call when a tool did. */
497
+ | {
498
+ type: 'citation';
499
+ sources: Source[];
500
+ callId?: string;
501
+ } | ({
502
+ type: 'compaction';
503
+ } & CompactionEvent) | {
504
+ type: 'evidence';
505
+ evidence: ProviderEvidence;
506
+ /** Transcription text. */
507
+ text?: string;
508
+ sessionResumptionHandle?: string;
509
+ } | {
510
+ type: 'tokens';
511
+ tokens: TurnTokens;
512
+ interactionId?: string;
513
+ } | {
514
+ type: 'session';
515
+ session: SessionEvent;
516
+ /** Raw close reason of an ended session, for the builder only. */
517
+ errorInternal?: string;
518
+ }
519
+ /** A guardrail decision — rule identity and offsets, never content. */
520
+ | {
521
+ type: 'guardrail';
522
+ guardrail: GuardrailEvent;
523
+ } | {
524
+ type: 'stage';
525
+ stage: TurnStage;
526
+ callId?: string;
527
+ toolName?: string;
528
+ /** `pre_tool` settled without running the body. */
529
+ callNotStarted?: boolean;
530
+ /** The tool completed with `awaiting_user_input`. */
531
+ awaiting?: boolean;
532
+ gate?: ToolGate;
533
+ stop?: TurnStop;
534
+ /** Stage result fields the kernel dropped. */
535
+ stageWarnings?: StageApplyWarning[];
536
+ /** The named injects (`StageResult.injectId`) that landed in the conversation at this stage. */
537
+ injected?: {
538
+ id: string;
539
+ }[];
540
+ } | {
541
+ type: 'tool';
542
+ tool: ToolCallEvent;
543
+ /** An untrusted server's own words about this call (a refused token refresh), for the builder only. */
544
+ errorInternal?: string;
545
+ } | ({
546
+ type: 'done';
547
+ } & DoneEvent) | {
548
+ type: 'error';
549
+ errorKind: ErrorKind;
550
+ /** Public-safe failure text for hosts to show users: the wording for `errorKind`. */
551
+ error?: string;
552
+ /** The lexicon key and parameters behind `error` when more specific than the kind's. */
553
+ errorCopy?: ErrorCopies;
554
+ /** Raw diagnostic detail for traces/logs; never surface to end users (`forClient` strips it). */
555
+ errorInternal?: string;
556
+ };
557
+ export type TurnEventType = TurnEvent['type'];
558
+ export type TurnEventOf<K extends TurnEventType> = Extract<TurnEvent, {
559
+ type: K;
560
+ }>;
561
+ /**
562
+ * How one model call ended, as a provider reports it. The runner reads it and
563
+ * reports the turn's own `done`; a live session forwards it (`turnDoneOf`).
564
+ */
565
+ export interface CallDone {
566
+ stop: TurnStop;
567
+ interactionId?: string;
568
+ /** A user utterance interrupted the live response (barge-in). */
569
+ interrupted?: boolean;
570
+ }
571
+ /**
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.
575
+ */
576
+ export type ProviderEvent = Exclude<TurnEvent, {
577
+ type: 'done';
578
+ }> | ({
579
+ type: 'done';
580
+ } & CallDone) | {
581
+ type: 'response';
582
+ response: TurnResponse;
583
+ };
584
+ /** A `done` before its stop decides whether it carries the turn's tools. */
585
+ export type DoneFields = DoneBase & {
586
+ stop: TurnStop;
587
+ };
588
+ /**
589
+ * The host's `done` for a stop: the one place that decides whether it carries
590
+ * the turn's tool snapshot (on `tool` and `gate`). Without a snapshot to give
591
+ * (a live session forwarding a call's `done`), such a stop has no host `done`.
592
+ */
593
+ export declare function turnDoneOf(done: DoneFields, tools: TurnToolSnapshot): TurnEventOf<'done'>;
594
+ export declare function turnDoneOf(done: DoneFields): TurnEventOf<'done'> | undefined;
595
+ export declare const turnEventSchema: z.ZodType<TurnEvent>;
596
+ /** Every `TurnEvent` kind and its schema: a wire parser tells a kind it doesn't know from a malformed one it does. */
597
+ export declare const TURN_EVENT_SCHEMAS: {
598
+ readonly [K in TurnEventType]: z.ZodType<TurnEventOf<K>>;
599
+ };