@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,140 @@
1
+ import { lexiconText } from '../../guardrails/lexicon.js';
2
+ import { runStage, stageEventFields, } from '../stages.js';
3
+ import { toolEvent } from './events.js';
4
+ import { isGateResumeGranted } from './permission.js';
5
+ import { plainToolInput } from './schema.js';
6
+ function defaultToolStageSupport(ctx) {
7
+ return {
8
+ handlers: [],
9
+ profile: ctx.profile,
10
+ step: ctx.turn?.step ?? 1,
11
+ history: () => [],
12
+ injectAllowed: false,
13
+ host: ctx.host,
14
+ signal: ctx.signal,
15
+ };
16
+ }
17
+ /** Tool `preTool` → host `pre_tool` → mutate re-parse. */
18
+ export async function* runPreToolPipeline(args) {
19
+ const { tool, ctx, base, stages } = args;
20
+ let toolPreTool;
21
+ // An approval skips the tool's own check it already passed — unless the user edited the arguments.
22
+ const approvedAsIs = isGateResumeGranted(ctx.resume) && ctx.resume?.edited === undefined;
23
+ if (tool.preTool && !approvedAsIs) {
24
+ toolPreTool = (await tool.preTool(args.input, ctx)) ?? undefined;
25
+ }
26
+ if (!stages && toolPreTool === undefined) {
27
+ return { ok: true, input: args.input };
28
+ }
29
+ const pre = yield* runPreToolStages({
30
+ stages: stages ?? defaultToolStageSupport(ctx),
31
+ toolName: tool.name,
32
+ callId: base.callId,
33
+ input: args.input,
34
+ toolPreTool,
35
+ });
36
+ if (!pre.ok) {
37
+ if (pre.kind === 'gated')
38
+ yield toolEvent(base, { phase: 'gate', gate: pre.gate });
39
+ return pre;
40
+ }
41
+ if (!pre.mutated)
42
+ return { ok: true, input: pre.input };
43
+ const reparsed = tool.input.safeParse(plainToolInput(pre.input));
44
+ if (!reparsed.success) {
45
+ return {
46
+ ok: false,
47
+ kind: 'failed',
48
+ failure: {
49
+ code: 'invalid_input',
50
+ kind: 'bad_response',
51
+ message: lexiconText('tool.input_invalid_after_mutate', {}, args.ctx.profile.lexicon),
52
+ details: reparsed.error.flatten(),
53
+ },
54
+ };
55
+ }
56
+ return { ok: true, input: reparsed.data };
57
+ }
58
+ async function* runPreToolStages(args) {
59
+ const { stages, toolName, callId, input, toolPreTool } = args;
60
+ const applied = yield* runStage({
61
+ stage: 'pre_tool',
62
+ step: stages.step,
63
+ history: stages.history(),
64
+ handlers: [...(toolPreTool !== undefined ? [() => toolPreTool] : []), ...stages.handlers],
65
+ guardrails: stages.profile.guardrails,
66
+ injectAllowed: false,
67
+ host: stages.host,
68
+ signal: stages.signal,
69
+ span: stages.span,
70
+ callId,
71
+ tool: toolName,
72
+ input,
73
+ });
74
+ if (applied.abort) {
75
+ return { ok: false, kind: 'aborted', aborted: applied.abort };
76
+ }
77
+ if (applied.deny) {
78
+ return {
79
+ ok: false,
80
+ kind: 'failed',
81
+ failure: { ...applied.deny, kind: 'blocked' },
82
+ denied: true,
83
+ };
84
+ }
85
+ if (applied.confirm) {
86
+ const gate = {
87
+ kind: 'confirmation',
88
+ tool: toolName,
89
+ ...(applied.confirm.summary ? { summary: applied.confirm.summary } : {}),
90
+ };
91
+ yield stageEventFields('pre_tool', { callId, toolName, callNotStarted: true, gate });
92
+ return { ok: false, kind: 'gated', gate };
93
+ }
94
+ if (applied.mutate && 'input' in applied.mutate) {
95
+ return { ok: true, input: applied.mutate.input, mutated: true };
96
+ }
97
+ return { ok: true, input, mutated: false };
98
+ }
99
+ export async function* runPostToolStages(args) {
100
+ const { stages, toolName, callId, mutable, ...call } = args;
101
+ const applied = yield* runStage({
102
+ ...call,
103
+ stage: 'post_tool',
104
+ step: stages.step,
105
+ history: stages.history(),
106
+ handlers: stages.handlers,
107
+ guardrails: stages.profile.guardrails,
108
+ injectAllowed: stages.injectAllowed,
109
+ injectWouldExceedMaxSteps: stages.injectWouldExceedMaxSteps,
110
+ mutable,
111
+ host: stages.host,
112
+ signal: stages.signal,
113
+ span: stages.span,
114
+ callId,
115
+ tool: toolName,
116
+ });
117
+ return {
118
+ ...(applied.abort !== undefined ? { abort: applied.abort } : {}),
119
+ ...(applied.deny ? { deny: applied.deny } : {}),
120
+ ...(applied.mutate && 'output' in applied.mutate ? { mutate: applied.mutate } : {}),
121
+ inject: applied.inject,
122
+ };
123
+ }
124
+ /**
125
+ * Returns the sign-in gate's `readBack`: what a transport that answers the call now (Live) tells
126
+ * the model while the person signs in. Other gates hold the call, and the model reads nothing yet.
127
+ */
128
+ export async function* emitGateSettlement(args) {
129
+ yield stageEventFields('pre_tool', {
130
+ callId: args.callId,
131
+ toolName: args.toolName,
132
+ callNotStarted: true,
133
+ gate: args.gate,
134
+ });
135
+ const readBack = args.gate.kind === 'auth'
136
+ ? lexiconText('sign_in.pending', { service: args.gate.authChallenge.service }, args.lexicon)
137
+ : undefined;
138
+ yield toolEvent(args.base, { phase: 'gate', gate: args.gate, ...(readBack ? { readBack } : {}) });
139
+ return readBack;
140
+ }
@@ -0,0 +1,287 @@
1
+ import type { z } from 'zod';
2
+ import type { ResolveHost } from '../../guardrails/network.js';
3
+ import type { GuardrailHit, Provenance, TurnTaint } from '../../guardrails/types.js';
4
+ import type { ToolCredentialSource } from '../auth/credential-source.js';
5
+ import type { OAuthEndpoints } from '../auth/types.js';
6
+ import type { AuthUnauthenticatedPolicy, HttpMethod, ToolAccess, ToolAuthType, ToolLoadTier, ToolPermission, ToolResumeCause } from '../schema.js';
7
+ import type { Source, ToolCallEdit, ToolCallEvent, ToolCallRequest, ToolFailure, ToolGate, ToolPhaseEvent, ToolTraceStep, ToolWarning, TurnToolSnapshot, WireFunctionTool } from '../turn-events.js';
8
+ import type { InteractionPart, Profile, ToolId, TurnInput, TurnTraceLink } from '../types.js';
9
+ export type { AuthUnauthenticatedPolicy, HttpMethod, ToolAccess, ToolAuthType, ToolCallEdit, ToolCallEvent, ToolCallRequest, ToolFailure, ToolGate, ToolPermission, ToolPhaseEvent, ToolTraceStep, ToolWarning, TurnToolSnapshot, WireFunctionTool, };
10
+ export interface ToolLabels {
11
+ activity?: string;
12
+ activityPast?: string;
13
+ hiddenFromSettings?: boolean;
14
+ }
15
+ export interface ToolBase {
16
+ name: string;
17
+ description: string;
18
+ category: string;
19
+ access: ToolAccess;
20
+ paths: string[];
21
+ loadTier: ToolLoadTier;
22
+ permission: ToolPermission;
23
+ labels?: ToolLabels;
24
+ }
25
+ export interface BuiltinWire {
26
+ interactions?: string;
27
+ openRouter?: string;
28
+ live?: string;
29
+ }
30
+ export interface BuiltinToolDef extends ToolBase {
31
+ type: 'builtin';
32
+ wire: BuiltinWire;
33
+ conflictsWith?: string[];
34
+ }
35
+ export interface InvokeToolResume {
36
+ /**
37
+ * `true` skips the confirm / permission / `preTool` re-ask (an `edited` call runs `preTool` in full);
38
+ * `false` settles as a refusal with no body; omitted is a first attempt or an auth retry.
39
+ */
40
+ granted?: boolean;
41
+ /**
42
+ * For `granted: false`: `declined` (default) fails as `declined`; `abandoned` and `expired`
43
+ * as `cancelled`.
44
+ */
45
+ cause?: ToolResumeCause;
46
+ /**
47
+ * For `granted: false`: the refused gate was a sign-in, so the model reads the `sign_in.*`
48
+ * note for its cause, naming the tool's `auth.service`.
49
+ */
50
+ signIn?: boolean;
51
+ /** The user edited the arguments before approving; `from` is the model's proposed input. */
52
+ edited?: {
53
+ from: Record<string, unknown>;
54
+ };
55
+ }
56
+ export interface ToolContext {
57
+ profile: Profile;
58
+ callId: string;
59
+ sessionPermissions?: string[];
60
+ path?: string;
61
+ signal?: AbortSignal;
62
+ turn?: {
63
+ step: number;
64
+ taint?: TurnTaint;
65
+ };
66
+ resume?: InvokeToolResume;
67
+ credentials?: ToolCredentialSource;
68
+ resolveHost?: ResolveHost;
69
+ /** Opaque application context from `TurnRequest.host` / `InvokeToolRequest.host`; the kernel never reads it. */
70
+ host?: unknown;
71
+ /** W3C `traceparent` of this call's `execute_tool` span; parent a tool's own outbound spans on it. */
72
+ traceparent?: string;
73
+ /** Set for a function tool with `auth` once its credential resolved: requests carrying it. */
74
+ signedInFetch?: SignedInFetch;
75
+ }
76
+ /** A request body is text; the method defaults to GET. */
77
+ export type SignedInRequest = {
78
+ method?: string;
79
+ headers?: Record<string, string>;
80
+ body?: string;
81
+ };
82
+ /**
83
+ * A guarded fetch that carries the call's credential to the URL's own origin and
84
+ * nowhere else (not across a redirect, not to a host the OAuth token was not issued
85
+ * for). A response that refuses the credential (401, or 403 `insufficient_scope`)
86
+ * throws; the kernel turns it into a new sign-in or `sign_in.out_of_scope`.
87
+ */
88
+ export type SignedInFetch = (url: string | URL, request?: SignedInRequest) => Promise<Response>;
89
+ export type ToolStreamEvent<TOut = unknown> = {
90
+ kind: 'progress';
91
+ data: unknown;
92
+ } | {
93
+ kind: 'trace';
94
+ step: ToolTraceStep;
95
+ } | {
96
+ kind: 'artifact';
97
+ artifact: unknown;
98
+ } | {
99
+ kind: 'warning';
100
+ warning: ToolWarning;
101
+ } | {
102
+ kind: 'complete';
103
+ output: TOut;
104
+ };
105
+ export type SyncToolHandler<TIn, TOut> = (input: TIn, ctx: ToolContext) => TOut | Promise<TOut>;
106
+ export type StreamToolHandler<TIn, TOut> = (input: TIn, ctx: ToolContext) => AsyncGenerator<ToolStreamEvent<TOut>>;
107
+ export type ToolHandler<TIn, TOut> = SyncToolHandler<TIn, TOut> | StreamToolHandler<TIn, TOut>;
108
+ /**
109
+ * `input` and `output` stay on each concrete tool so `TOut` is inferred from `output`, not
110
+ * the handler's return type; moving them here silently breaks inference for stream handlers.
111
+ */
112
+ export interface ToolHostHooks<TIn = unknown> {
113
+ inputSchema: Record<string, unknown>;
114
+ outputSchema: Record<string, unknown>;
115
+ /** Runs before the host's `pre_tool` `onStage`. */
116
+ preTool?: (input: TIn, ctx: ToolContext) => import('../stages.js').StageResult | undefined | Promise<import('../stages.js').StageResult | undefined>;
117
+ exposeToModel?: boolean;
118
+ }
119
+ export interface ToolOutputHooks<TOut = unknown> {
120
+ /** A source that fails `sourceSchema`, or a throw, is a `sources_invalid` warning and is not cited. */
121
+ sources?: (output: TOut) => Source[];
122
+ }
123
+ export interface FunctionToolDef<TIn = unknown, TOut = unknown> extends ToolBase, ToolHostHooks<TIn>, ToolOutputHooks<TOut> {
124
+ type: 'function';
125
+ input: z.ZodType<TIn>;
126
+ output: z.ZodType<TOut>;
127
+ handler: ToolHandler<TIn, TOut>;
128
+ /**
129
+ * The service the handler acts on for the person. The kernel resolves the slot
130
+ * before the handler runs (gating, refreshing, or telling the model as the policy
131
+ * says) and hands the handler `ctx.signedInFetch`; the handler never sees the credential.
132
+ */
133
+ auth?: ToolAuthConfig;
134
+ }
135
+ /** How a tool that acts for the person signs in to the service; http, mcp and function tools share it. */
136
+ export interface ToolAuthConfig {
137
+ slot: string;
138
+ type: ToolAuthType;
139
+ /** The service the person signs in to, as they know it (e.g. "GitHub"); never blank. */
140
+ service: string;
141
+ headerName?: string;
142
+ headerPrefix?: string;
143
+ onUnauthenticated?: AuthUnauthenticatedPolicy;
144
+ /** Named on the auth gate for the host's OAuth flow. */
145
+ preResolved?: Partial<OAuthEndpoints & {
146
+ resource: string;
147
+ }>;
148
+ scopes?: string[];
149
+ clientId?: string;
150
+ redirectUri?: string;
151
+ }
152
+ export interface HttpToolDef<TIn = unknown, TOut = unknown> extends ToolBase, ToolHostHooks<TIn>, ToolOutputHooks<TOut> {
153
+ type: 'http';
154
+ input: z.ZodType<TIn>;
155
+ output: z.ZodType<TOut>;
156
+ endpoint: string;
157
+ method: HttpMethod;
158
+ headers?: Record<string, string>;
159
+ auth?: ToolAuthConfig;
160
+ mapping?: {
161
+ pathParams?: string[];
162
+ queryParams?: string[];
163
+ bodyParam?: string;
164
+ };
165
+ }
166
+ export interface McpToolDef<TIn = unknown, TOut = unknown> extends ToolBase, ToolHostHooks<TIn>, ToolOutputHooks<TOut> {
167
+ type: 'mcp';
168
+ input: z.ZodType<TIn>;
169
+ output: z.ZodType<TOut>;
170
+ serverUrl: string;
171
+ mcpToolName: string;
172
+ headers?: Record<string, string>;
173
+ auth?: ToolAuthConfig;
174
+ }
175
+ export type RegisteredTool<TIn = unknown, TOut = unknown> = BuiltinToolDef | FunctionToolDef<TIn, TOut> | HttpToolDef<TIn, TOut> | McpToolDef<TIn, TOut>;
176
+ export type ToolDefinitionInput<TIn = unknown, TOut = unknown> = BuiltinToolDef | (Omit<FunctionToolDef<TIn, TOut>, 'inputSchema' | 'outputSchema'> & {
177
+ input: z.ZodType<TIn>;
178
+ output: z.ZodType<TOut>;
179
+ }) | (Omit<HttpToolDef<TIn, TOut>, 'inputSchema' | 'outputSchema'> & {
180
+ input: z.ZodType<TIn>;
181
+ output: z.ZodType<TOut>;
182
+ }) | (Omit<McpToolDef<TIn, TOut>, 'inputSchema' | 'outputSchema'> & {
183
+ input: z.ZodType<TIn>;
184
+ output: z.ZodType<TOut>;
185
+ });
186
+ export interface PromoteLoadedResult {
187
+ promoted: ToolId[];
188
+ failure?: ToolFailure;
189
+ }
190
+ export interface ToolLoadContext {
191
+ profile: Profile;
192
+ input?: TurnInput;
193
+ path?: string;
194
+ sessionPermissions?: string[];
195
+ /** Tool ids eligible this turn. */
196
+ gated: ToolId[];
197
+ /** Opaque application context from `TurnRequest.host`; the kernel never reads it. */
198
+ host?: unknown;
199
+ }
200
+ /** Picks which eligible T1 tools to wire at turn start. */
201
+ export type ToolPolicy = (ctx: ToolLoadContext) => ToolId[] | Promise<ToolId[]>;
202
+ export interface InvokeToolRequest {
203
+ profile: string;
204
+ name: string;
205
+ /**
206
+ * The model call this invoke resumes; its events join the call its turn already announced.
207
+ * Absent for the host's own call, which gets a fresh id and is announced first.
208
+ */
209
+ callId?: string;
210
+ input: unknown;
211
+ /** Input for `profile.tools.t1Policy` selection. */
212
+ turnInput?: TurnInput;
213
+ /** T2 tools already promoted, e.g. restored from pause metadata; the host must have run the loader. */
214
+ promoted?: ToolId[];
215
+ /** Builtins resolve from this model. */
216
+ model?: string;
217
+ /** Cloned before use so concurrent invokes do not share mutable visibility state. */
218
+ snapshot?: TurnToolSnapshot;
219
+ resume?: InvokeToolResume;
220
+ sessionPermissions?: string[];
221
+ credentials?: ToolCredentialSource;
222
+ resolveHost?: ResolveHost;
223
+ path?: string;
224
+ signal?: AbortSignal;
225
+ /** Handed to the tool as `ctx.host`; the kernel never reads it. */
226
+ host?: unknown;
227
+ /** W3C `traceparent` of the host span this invoke runs under. */
228
+ traceparent?: string;
229
+ /** Recorded as `gen_ai.conversation.id`. */
230
+ conversationId?: string;
231
+ /** Preserved on the trace record; the kernel does not interpret it. */
232
+ metadata?: Record<string, unknown>;
233
+ links?: TurnTraceLink[];
234
+ /** Receives `pre_tool` / `post_tool` only. */
235
+ onStage?: import('../stages.js').StageHandler;
236
+ }
237
+ export interface ProfileToolsSpec {
238
+ /** Custom tools only; builtins live on `models.*.builtInTools`. */
239
+ allow: ToolId[];
240
+ /** Returns only ids already allowed with `loadTier: 'T1'`. Not supported on `type: 'live'`. */
241
+ t1Policy?: ToolPolicy;
242
+ /** Must be in `allow`; completing with `{ loaded: string[] }` promotes those T2 ids. Not on `type: 'live'`. */
243
+ t2Loader?: ToolId;
244
+ }
245
+ /** Live declarations cannot be added mid-session, so every allowed tool is wired at setup as if T0. */
246
+ export interface LiveProfileToolsSpec {
247
+ allow: ToolId[];
248
+ }
249
+ /** Every id in `allow` is invokable with no visibility tiers and no path gating. */
250
+ export interface HostProfileToolsSpec {
251
+ allow: ToolId[];
252
+ }
253
+ /** Every transport returns this; one settlement projects, guards and runs `post_tool`. */
254
+ export type ToolBodyOutcome = {
255
+ kind: 'ok';
256
+ outputRaw: unknown;
257
+ modelResult: ModelToolResult;
258
+ } | {
259
+ kind: 'gated';
260
+ gate: ToolGate;
261
+ } | {
262
+ kind: 'aborted';
263
+ aborted: true | {
264
+ reason?: string;
265
+ };
266
+ } | {
267
+ kind: 'failed';
268
+ failure: ToolFailure;
269
+ callNotStarted: boolean;
270
+ /** The host refused the call (`deny`), rather than it failing. */
271
+ denied?: true;
272
+ };
273
+ export interface ModelToolResult {
274
+ finding: string;
275
+ /** Lean JSON for model reasoning — must not carry media bytes. */
276
+ data?: unknown;
277
+ /** Adapters wire these with the same fidelity as user input parts. */
278
+ parts?: InteractionPart[];
279
+ /**
280
+ * Already fenced and redacted by `executeRegisteredTool`. When absent (a recorded result
281
+ * formatted outside execution), `formatToolResult` guards the text itself under full detection.
282
+ */
283
+ modelText?: string;
284
+ provenance?: Provenance;
285
+ /** Directive signals found in the content; raises the turn's taint. */
286
+ suspicious?: GuardrailHit[];
287
+ }
@@ -0,0 +1 @@
1
+ export {};