@theoremjs/agents 0.0.0-stage → 0.3.1

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