@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,497 @@
1
+ import type { z } from 'zod';
2
+ import type { TurnDestinations } from '../../guardrails/destinations.js';
3
+ import type { ResolveHost } from '../../guardrails/network.js';
4
+ import type { GuardrailHit, Provenance, TurnTaint } from '../../guardrails/types.js';
5
+ import type { ToolCredentialSource } from '../auth/credential-source.js';
6
+ import type { OAuthEndpoints } from '../auth/types.js';
7
+ import type { AuthUnauthenticatedPolicy, HttpMethod, ToolAccess, ToolAuthType, ToolGateKind, ToolLoadTier, ToolPermission, ToolResumeCause } from '../schema.js';
8
+ import type { RemovedItem, Source, ToolCallEdit, ToolCallEvent, ToolCallRequest, ToolFailure, ToolGate, ToolPhaseEvent, ToolTraceStep, ToolWarning, TurnToolSnapshot, WireFunctionTool } from '../turn-events.js';
9
+ import type { InteractionPart, ModelId, Profile, ProfileId, ToolId, TurnInput, TurnRequest, TurnSpeech, TurnTraceLink } from '../types.js';
10
+ import type { LabelTemplate } from './activity-label.js';
11
+ import type { PageToolExecution, ToolExecutionCoordinator } from './operation.js';
12
+ import type { UncheckedOutput } from './unchecked-output.js';
13
+ export type { AuthUnauthenticatedPolicy, HttpMethod, ToolAccess, ToolAuthType, ToolCallEdit, ToolCallEvent, ToolCallRequest, ToolFailure, ToolGate, ToolPermission, ToolPhaseEvent, ToolTraceStep, ToolWarning, TurnToolSnapshot, WireFunctionTool, };
14
+ export interface ToolLabels {
15
+ activity?: LabelTemplate;
16
+ activityPast?: LabelTemplate;
17
+ activityFailed?: LabelTemplate;
18
+ request?: LabelTemplate;
19
+ hiddenFromSettings?: boolean;
20
+ }
21
+ export interface ToolBase {
22
+ name: string;
23
+ description: string;
24
+ category: string;
25
+ access: ToolAccess;
26
+ paths: string[];
27
+ loadTier: ToolLoadTier;
28
+ permission: ToolPermission;
29
+ labels?: ToolLabels;
30
+ }
31
+ /**
32
+ * A tool the provider runs. This is its entry in the tool list; the provider's
33
+ * adapter declares it (`ProviderAdapter.builtins`) and owns how it is sent.
34
+ */
35
+ export interface BuiltinToolDef extends ToolBase {
36
+ type: 'builtin';
37
+ conflictsWith?: string[];
38
+ }
39
+ /** How a held tool call resumes: approved, refused, or retried after sign-in. */
40
+ export interface InvokeToolResume {
41
+ gateKind?: ToolGateKind;
42
+ /**
43
+ * `true` approves this call. An unchanged confirmation skips the tool's completed `preTool` check.
44
+ * Permission and auth gates run `preTool` on resumption; edited arguments run it again.
45
+ * `false` settles as a refusal with no body; omitted is a first attempt or an auth retry.
46
+ */
47
+ granted?: boolean;
48
+ /**
49
+ * For `granted: false`: `declined` (default) fails as `declined`; `abandoned` and `expired`
50
+ * as `cancelled`.
51
+ */
52
+ cause?: ToolResumeCause;
53
+ /**
54
+ * The gate answered was a sign-in. Granted, the model reads `sign_in.done` before the call's
55
+ * result; refused, the `sign_in.*` note for its cause. Both name the tool's `auth.service`.
56
+ */
57
+ signIn?: boolean;
58
+ /** The user edited the arguments before approving; `from` is the model's proposed input. */
59
+ edited?: {
60
+ from: Record<string, unknown>;
61
+ };
62
+ }
63
+ /**
64
+ * What the page did for a call to a tool it answers: its `output`, `timedOut` when the relay
65
+ * stopped waiting for it, or `unanswered` when the page has nothing that answers the tool.
66
+ */
67
+ export type PageAnswer = {
68
+ output: unknown;
69
+ timedOut?: undefined;
70
+ unanswered?: undefined;
71
+ } | {
72
+ timedOut: true;
73
+ unanswered?: undefined;
74
+ } | {
75
+ unanswered: true;
76
+ timedOut?: undefined;
77
+ };
78
+ export interface ToolContext {
79
+ profile: Profile;
80
+ callId: string;
81
+ readonly operationId: string;
82
+ sessionPermissions?: string[];
83
+ path?: string;
84
+ signal?: AbortSignal;
85
+ /**
86
+ * The turn as it stood when the step began. `visible`: the tools a call in this step may use;
87
+ * a tool loaded during the step is callable from the next one.
88
+ */
89
+ turn?: {
90
+ step: number;
91
+ taint?: TurnTaint;
92
+ destinations?: TurnDestinations;
93
+ visible?: readonly ToolId[];
94
+ };
95
+ resume?: InvokeToolResume;
96
+ credentials?: ToolCredentialSource;
97
+ resolveHost?: ResolveHost;
98
+ /** Opaque application context from `TurnRequest.host` / `InvokeToolRequest.host`; the kernel never reads it. */
99
+ host?: unknown;
100
+ /** The page's answer to this call, for a tool with `answeredBy: 'page'`. */
101
+ page?: PageAnswer;
102
+ pageExecution?: PageToolExecution;
103
+ /** W3C `traceparent` of this call's `execute_tool` span; parent a tool's own outbound spans on it. */
104
+ traceparent?: string;
105
+ /** Set for a function tool with `auth` once its credential resolved: requests carrying it. */
106
+ signedInFetch?: SignedInFetch;
107
+ }
108
+ /** A request body is text; the method defaults to GET. */
109
+ export type SignedInRequest = {
110
+ method?: string;
111
+ headers?: Record<string, string>;
112
+ body?: string;
113
+ };
114
+ /**
115
+ * A guarded fetch that carries the call's credential to the URL's own origin and
116
+ * nowhere else (not across a redirect, not to a host the OAuth token was not issued
117
+ * for). A response that refuses the credential (401, or 403 `insufficient_scope`)
118
+ * throws; the kernel turns it into a new sign-in or `sign_in.out_of_scope`.
119
+ */
120
+ export type SignedInFetch = (url: string | URL, request?: SignedInRequest) => Promise<Response>;
121
+ export type ToolStreamEvent<TOut = unknown> = {
122
+ kind: 'progress';
123
+ data: unknown;
124
+ }
125
+ /**
126
+ * The next piece of what the tool is writing, for the host to preview. Each is read at the
127
+ * tool's `tool_output` boundary first; the model never reads it, only `complete`'s output.
128
+ */
129
+ | {
130
+ kind: 'draft';
131
+ text: string;
132
+ } | {
133
+ kind: 'trace';
134
+ step: ToolTraceStep;
135
+ } | {
136
+ kind: 'artifact';
137
+ artifact: unknown;
138
+ } | {
139
+ kind: 'warning';
140
+ warning: ToolWarning;
141
+ } | {
142
+ kind: 'complete';
143
+ output: TOut;
144
+ };
145
+ export type SyncToolHandler<TIn, TOut> = (input: TIn, ctx: ToolContext) => TOut | UncheckedOutput | Promise<TOut | UncheckedOutput>;
146
+ export type StreamToolHandler<TIn, TOut> = (input: TIn, ctx: ToolContext) => AsyncGenerator<ToolStreamEvent<TOut>>;
147
+ export type ToolHandler<TIn, TOut> = SyncToolHandler<TIn, TOut> | StreamToolHandler<TIn, TOut>;
148
+ /**
149
+ * `input` and `output` stay on each concrete tool so `TOut` is inferred from `output`, not
150
+ * the handler's return type; moving them here silently breaks inference for stream handlers.
151
+ */
152
+ export interface ToolHostHooks<TIn = unknown> {
153
+ inputSchema: Record<string, unknown>;
154
+ outputSchema: Record<string, unknown>;
155
+ /** Runs before the host's `pre_tool` `onStage`. */
156
+ preTool?: (input: TIn, ctx: ToolContext) => import('../stages.js').StageResult | undefined | Promise<import('../stages.js').StageResult | undefined>;
157
+ exposeToModel?: boolean;
158
+ }
159
+ export interface ToolOutputHooks<TOut = unknown> {
160
+ /** A source that fails `sourceSchema`, or a throw, is a `sources_invalid` warning and is not cited. */
161
+ sources?: (output: TOut) => Source[];
162
+ }
163
+ export interface FunctionToolDef<TIn = unknown, TOut = unknown> extends ToolBase, ToolHostHooks<TIn>, ToolOutputHooks<TOut> {
164
+ type: 'function';
165
+ input: z.ZodType<TIn>;
166
+ output: z.ZodType<TOut>;
167
+ /** Returns `output`'s type, or `uncheckedOutput(value)` for a value it cannot type. */
168
+ handler: ToolHandler<TIn, NoInfer<TOut>>;
169
+ /**
170
+ * `'page'`: the page the person is on answers the call, and the kernel supplies the handler.
171
+ * `output` checks what the page sent.
172
+ */
173
+ answeredBy?: 'page';
174
+ /**
175
+ * The service the handler acts on for the person. The kernel resolves the slot
176
+ * before the handler runs (gating, refreshing, or telling the model as the policy
177
+ * says) and hands the handler `ctx.signedInFetch`; the handler never sees the credential.
178
+ */
179
+ auth?: ToolAuthConfig;
180
+ }
181
+ /** How a tool that acts for the person signs in to the service; http, mcp, and function tools share it. */
182
+ export interface ToolAuthConfig {
183
+ slot: string;
184
+ type: ToolAuthType;
185
+ /** The service the person signs in to, as they know it (e.g. "GitHub"); never blank. */
186
+ service: string;
187
+ headerName?: string;
188
+ headerPrefix?: string;
189
+ /**
190
+ * For a service that takes its API key in the URL (`?key=…`): the query parameter the key
191
+ * goes in, in place of a header. Only an `api_key` tool sets it, with no `headerName` or
192
+ * `headerPrefix`.
193
+ */
194
+ queryParam?: string;
195
+ onUnauthenticated?: AuthUnauthenticatedPolicy;
196
+ /** Named on the auth gate for the host's OAuth flow. */
197
+ preResolved?: Partial<OAuthEndpoints & {
198
+ resource: string;
199
+ }>;
200
+ scopes?: string[];
201
+ clientId?: string;
202
+ redirectUri?: string;
203
+ }
204
+ export interface HttpToolDef<TIn = unknown, TOut = unknown> extends ToolBase, ToolHostHooks<TIn>, ToolOutputHooks<TOut> {
205
+ type: 'http';
206
+ input: z.ZodType<TIn>;
207
+ output: z.ZodType<TOut>;
208
+ endpoint: string;
209
+ method: HttpMethod;
210
+ headers?: Record<string, string>;
211
+ auth?: ToolAuthConfig;
212
+ mapping?: {
213
+ pathParams?: string[];
214
+ queryParams?: string[];
215
+ bodyParam?: string;
216
+ };
217
+ /** The service's own limit for one key; the kernel keeps this tool's requests within it. */
218
+ limit?: HttpToolLimit;
219
+ /**
220
+ * How long the service may take to answer, its body read included. Past it the call
221
+ * fails `timeout` and frees its place in the limit. Left out, a call waits as long as
222
+ * the caller's signal lets it.
223
+ */
224
+ timeoutMs?: number;
225
+ }
226
+ /** The most requests a service takes from one key in a window. */
227
+ export interface HttpToolLimit {
228
+ requests: number;
229
+ windowMs: number;
230
+ }
231
+ export interface McpToolDef<TIn = unknown, TOut = unknown> extends ToolBase, ToolHostHooks<TIn>, ToolOutputHooks<TOut> {
232
+ type: 'mcp';
233
+ input: z.ZodType<TIn>;
234
+ output: z.ZodType<TOut>;
235
+ serverUrl: string;
236
+ mcpToolName: string;
237
+ headers?: Record<string, string>;
238
+ auth?: ToolAuthConfig;
239
+ }
240
+ /**
241
+ * What an agent tool call carries: the text, and whatever else the called
242
+ * profile's `inputs` declares. `speech` is for a speech profile.
243
+ */
244
+ export interface AgentToolInput extends Pick<TurnInput, 'slots' | 'attachments' | 'voice'> {
245
+ text: string;
246
+ speech?: TurnSpeech;
247
+ }
248
+ /** What an agent tool returns: the called agent's reply. Media rides as `parts`, citations as `sources`. */
249
+ export interface AgentToolOutput {
250
+ /** The reply's text; absent when the reply is `structured`, whose text is the same JSON. */
251
+ text?: string;
252
+ structured?: unknown;
253
+ /** Items the called profile's item rules removed from `structured`, each with why. */
254
+ removed?: RemovedItem[];
255
+ parts?: InteractionPart[];
256
+ /** What the called agent cited; the caller's turn cites them too. */
257
+ sources?: Source[];
258
+ }
259
+ /** A channel of an agent tool's input that the called profile's `inputs` declares. */
260
+ export type AgentToolChannel = 'attachments' | 'voice' | 'slots';
261
+ /**
262
+ * A tool whose call runs one turn of another registered agent. That agent is a
263
+ * standalone profile; the tool is how another agent's model calls it. Its input
264
+ * is what that profile's `inputs` declares; the host can reshape a call (`onAgentCall`).
265
+ */
266
+ export interface AgentToolDef extends ToolBase {
267
+ type: 'agent';
268
+ /** A text, image, or speech profile, registered before this tool. Nothing it can call may gate. */
269
+ profile: ProfileId;
270
+ /** Calls to this tool in one turn of its caller. Omit: only `maxSteps` bounds them. */
271
+ maxCallsPerTurn?: number;
272
+ /** What the calling model reads on a field of the tool's input, by field. A field the profile does not take is refused. */
273
+ fieldText?: Partial<Record<keyof AgentToolInput, string>>;
274
+ /**
275
+ * Fields the calling model fills that only the host reads. `onAgentCall` gets them as
276
+ * `hostInput` and turns them into the agent's input; they are never sent to the agent.
277
+ * A name the input already has is refused, and a call without the hook is a config error.
278
+ */
279
+ hostFields?: Record<string, z.ZodType>;
280
+ /** Channels the profile takes that the calling model can't fill; only `onAgentCall` sends them. */
281
+ hostOnly?: AgentToolChannel[];
282
+ preTool?: ToolHostHooks<AgentToolInput>['preTool'];
283
+ exposeToModel?: boolean;
284
+ }
285
+ export interface RegisteredAgentTool extends AgentToolDef, ToolHostHooks<AgentToolInput>, ToolOutputHooks<AgentToolOutput> {
286
+ input: z.ZodType<AgentToolInput>;
287
+ output: z.ZodType<AgentToolOutput>;
288
+ }
289
+ /** An agent tool call, as the host's `onAgentCall` sees it before the agent runs. */
290
+ export interface AgentCall {
291
+ /** The agent tool's name. */
292
+ tool: string;
293
+ callId: string;
294
+ /** The agent the tool runs. */
295
+ profile: ProfileId;
296
+ input: AgentToolInput;
297
+ /** What the model sent in the tool's `hostFields`; absent when the tool declares none. */
298
+ hostInput?: Record<string, unknown>;
299
+ /** The agent whose model made the call. */
300
+ caller: ProfileId;
301
+ /** 1 for a call from the host's own turn; one more for each agent tool it came through. */
302
+ depth: number;
303
+ /** The outermost request's `metadata`. */
304
+ metadata?: Record<string, unknown>;
305
+ signal?: AbortSignal;
306
+ }
307
+ /**
308
+ * What the host sets on the called agent's turn. The kernel fixes its profile,
309
+ * signal, trace parent, and hook. `provider` runs the turn; omit it to use the
310
+ * caller's, which works only when both are on the same provider and protocol.
311
+ * `host` is what the called agent's tools read as `ctx.host`; omit it and they
312
+ * read none, because the caller's is not passed down.
313
+ */
314
+ export interface AgentCallRequest extends Partial<Pick<TurnRequest, 'input' | 'speech' | 'effort' | 'builtInArgs' | 'metadata' | 'onStage' | 'conversationId' | 'host'>> {
315
+ model?: ModelId;
316
+ provider?: import('../protocols/runtime.js').ProviderHostOptions;
317
+ }
318
+ /** Return nothing to run the agent on what the model sent; `refuse` is read back to the model. */
319
+ export type AgentCallHook = (call: AgentCall) => AgentCallRequest | {
320
+ refuse: string;
321
+ } | undefined | Promise<AgentCallRequest | {
322
+ refuse: string;
323
+ } | undefined>;
324
+ /** A tool in a registry: builtin, function, HTTP, MCP, or agent. */
325
+ export type RegisteredTool<TIn = unknown, TOut = unknown> = BuiltinToolDef | FunctionToolDef<TIn, TOut> | HttpToolDef<TIn, TOut> | McpToolDef<TIn, TOut> | RegisteredAgentTool;
326
+ /** A function tool as registered: it has a `handler`, or the page answers it. */
327
+ export type FunctionToolInput<TIn = unknown, TOut = unknown> = Omit<FunctionToolDef<TIn, TOut>, 'inputSchema' | 'outputSchema' | 'handler' | 'answeredBy'> & {
328
+ input: z.ZodType<TIn>;
329
+ output: z.ZodType<TOut>;
330
+ } & ({
331
+ handler: ToolHandler<TIn, NoInfer<TOut>>;
332
+ answeredBy?: 'page';
333
+ } | {
334
+ answeredBy: 'page';
335
+ handler?: undefined;
336
+ });
337
+ export type ToolDefinitionInput<TIn = unknown, TOut = unknown> = BuiltinToolDef | FunctionToolInput<TIn, TOut> | (Omit<HttpToolDef<TIn, TOut>, 'inputSchema' | 'outputSchema'> & {
338
+ input: z.ZodType<TIn>;
339
+ output: z.ZodType<TOut>;
340
+ }) | (Omit<McpToolDef<TIn, TOut>, 'inputSchema' | 'outputSchema'> & {
341
+ input: z.ZodType<TIn>;
342
+ output: z.ZodType<TOut>;
343
+ }) | AgentToolDef;
344
+ export interface PromoteLoadedResult {
345
+ promoted: ToolId[];
346
+ failure?: ToolFailure;
347
+ }
348
+ /** What a tool's loader is told: the profile, the input, and the path. */
349
+ export interface ToolLoadContext {
350
+ profile: Profile;
351
+ input?: TurnInput;
352
+ path?: string;
353
+ sessionPermissions?: string[];
354
+ /** Tool ids eligible this turn. */
355
+ gated: ToolId[];
356
+ /** Opaque application context from `TurnRequest.host`; the kernel never reads it. */
357
+ host?: unknown;
358
+ }
359
+ /** Picks which allowed T2 tools to load at turn start. */
360
+ export type ToolPolicy = (ctx: ToolLoadContext) => ToolId[] | Promise<ToolId[]>;
361
+ /** A request to run a held tool call outside a turn. */
362
+ export interface InvokeToolRequest {
363
+ execution?: ToolExecutionCoordinator;
364
+ /** invariant: Only the trusted host restores the kernel-issued identity from saved authority. */
365
+ operationId?: string;
366
+ profile: string;
367
+ name: string;
368
+ /**
369
+ * The model call this invoke resumes; its events join the call its turn already announced.
370
+ * Absent for the host's own call, which gets a fresh id and is announced first.
371
+ */
372
+ callId?: string;
373
+ input: unknown;
374
+ /** Input for `profile.tools.t1Policy` selection. */
375
+ turnInput?: TurnInput;
376
+ /** T2 tools already promoted, e.g. restored from pause metadata; the host must have run the loader. */
377
+ promoted?: ToolId[];
378
+ /** Builtins resolve from this model. */
379
+ model?: string;
380
+ /** Cloned before use so concurrent invokes do not share mutable visibility state. */
381
+ snapshot?: TurnToolSnapshot;
382
+ resume?: InvokeToolResume;
383
+ sessionPermissions?: string[];
384
+ credentials?: ToolCredentialSource;
385
+ resolveHost?: ResolveHost;
386
+ path?: string;
387
+ signal?: AbortSignal;
388
+ /** Handed to the tool as `ctx.host`; the kernel never reads it. */
389
+ host?: unknown;
390
+ /** The page's answer, when this invoke answers a `page` gate. */
391
+ page?: PageAnswer;
392
+ pageExecution?: PageToolExecution;
393
+ /** W3C `traceparent` of the host span this invoke runs under. */
394
+ traceparent?: string;
395
+ /** Recorded as `gen_ai.conversation.id`. */
396
+ conversationId?: string;
397
+ /** Preserved on the trace record; the kernel does not interpret it. */
398
+ metadata?: Record<string, unknown>;
399
+ links?: TurnTraceLink[];
400
+ /** Receives `pre_tool` / `post_tool` only. */
401
+ onStage?: import('../stages.js').StageHandler;
402
+ /** Runs an agent tool's turn; an agent tool needs it, or `onAgentCall` returning one. */
403
+ provider?: import('../protocols/runtime.js').ProviderHostOptions;
404
+ /** As `TurnRequest.onAgentCall`, for an agent tool this invoke runs. */
405
+ onAgentCall?: AgentCallHook;
406
+ }
407
+ /** One of the host's calls in a step. */
408
+ export interface InvokeToolStepCall {
409
+ name: string;
410
+ /**
411
+ * The model's call this runs, already announced by its turn; absent for the host's own
412
+ * call, which gets a fresh id and is announced by the step.
413
+ */
414
+ callId?: string;
415
+ /** invariant: Only the trusted host restores the kernel-issued identity from saved authority. */
416
+ operationId?: string;
417
+ input: unknown;
418
+ }
419
+ /**
420
+ * A request to run several calls outside a turn, as one step. Everything but the calls is
421
+ * shared by all of them. A call that answers an approval or a page resumes on its own,
422
+ * through `InvokeToolRequest`.
423
+ */
424
+ export interface InvokeToolStepRequest extends Omit<InvokeToolRequest, 'name' | 'callId' | 'operationId' | 'input' | 'resume' | 'page'> {
425
+ calls: InvokeToolStepCall[];
426
+ }
427
+ /** The tools a profile may use and how they load. */
428
+ export interface ProfileToolsSpec {
429
+ /** Custom tools only; builtins live on `models.*.builtInTools`. */
430
+ allow: ToolId[];
431
+ /** Returns ids already allowed with `loadTier: 'T2'` to load at turn start. Not supported on `type: 'live'`. */
432
+ t1Policy?: ToolPolicy;
433
+ /**
434
+ * Must be in `allow`; completing with `{ loaded: string[] }` promotes those T2 ids. Not on `type: 'live'`.
435
+ * The tools it loads can be called from the next step.
436
+ */
437
+ t2Loader?: ToolId;
438
+ /**
439
+ * `true`: a step's calls run side by side, each body starting once the calls its `pre_tool`
440
+ * `waitFor` names have settled. Left out or `false`: one at a time, in the order the model made them.
441
+ */
442
+ parallel?: boolean;
443
+ }
444
+ /** Live declarations cannot be added mid-session, so every allowed tool is wired at setup as if T0. */
445
+ export interface LiveProfileToolsSpec {
446
+ allow: ToolId[];
447
+ /**
448
+ * `true`: the calls of one model message, run as a step through `invokeToolStep`, run side by
449
+ * side, each body starting once the calls its `pre_tool` `waitFor` names have settled. Left out
450
+ * or `false`: one at a time, in the order the model made them.
451
+ */
452
+ parallel?: boolean;
453
+ }
454
+ /** Every id in `allow` is invokable with no visibility tiers and no path gating. */
455
+ export interface HostProfileToolsSpec {
456
+ allow: ToolId[];
457
+ /**
458
+ * `true`: the calls of one `invokeToolStep` run side by side, each body starting once the calls
459
+ * its `pre_tool` `waitFor` names have settled. Left out or `false`: one at a time, in the order given.
460
+ */
461
+ parallel?: boolean;
462
+ }
463
+ /** Every transport returns this; one settlement projects, guards, and runs `post_tool`. */
464
+ export type ToolBodyOutcome = {
465
+ kind: 'ok';
466
+ outputRaw: unknown;
467
+ modelResult: ModelToolResult;
468
+ } | {
469
+ kind: 'gated';
470
+ gate: ToolGate;
471
+ } | {
472
+ kind: 'aborted';
473
+ aborted: true | {
474
+ reason?: string;
475
+ };
476
+ } | {
477
+ kind: 'failed';
478
+ failure: ToolFailure;
479
+ callNotStarted: boolean;
480
+ /** The host refused the call (`deny`), rather than it failing. */
481
+ denied?: true;
482
+ };
483
+ export interface ModelToolResult {
484
+ finding: string;
485
+ /** Lean JSON for model reasoning — must not carry media bytes. */
486
+ data?: unknown;
487
+ /** Adapters wire these with the same fidelity as user input parts. */
488
+ parts?: InteractionPart[];
489
+ /**
490
+ * Already fenced and redacted by `executeRegisteredTool`. When absent (a recorded result
491
+ * formatted outside execution), `formatToolResult` guards the text itself under full detection.
492
+ */
493
+ modelText?: string;
494
+ provenance?: Provenance;
495
+ /** Directive signals found in the content; raises the turn's taint. */
496
+ suspicious?: GuardrailHit[];
497
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A handler result with no type until the call runs, such as what a client
3
+ * sent back. The tool's `output` schema checks the value when the call
4
+ * settles, and a mismatch fails the call as `invalid_output`.
5
+ */
6
+ export declare class UncheckedOutput {
7
+ readonly value: unknown;
8
+ constructor(value: unknown);
9
+ }
10
+ /**
11
+ * Return a value the handler cannot type as the tool's `output`. A handler
12
+ * that returns anything else must return `output`'s type, or it does not compile.
13
+ */
14
+ export declare function uncheckedOutput(value: unknown): UncheckedOutput;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * A handler result with no type until the call runs, such as what a client
3
+ * sent back. The tool's `output` schema checks the value when the call
4
+ * settles, and a mismatch fails the call as `invalid_output`.
5
+ */
6
+ export class UncheckedOutput {
7
+ value;
8
+ constructor(value) {
9
+ this.value = value;
10
+ }
11
+ }
12
+ /**
13
+ * Return a value the handler cannot type as the tool's `output`. A handler
14
+ * that returns anything else must return `output`'s type, or it does not compile.
15
+ */
16
+ export function uncheckedOutput(value) {
17
+ return new UncheckedOutput(value);
18
+ }