@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.
- package/LICENSE +21 -0
- package/README.md +1264 -2
- package/esm/_dnt.polyfills.d.ts +66 -0
- package/esm/_dnt.polyfills.js +51 -0
- package/esm/mod.d.ts +65 -0
- package/esm/mod.js +42 -0
- package/esm/package.json +3 -0
- package/esm/src/cli/bin.d.ts +7 -0
- package/esm/src/cli/bin.js +9 -0
- package/esm/src/cli/commands/bench.d.ts +6 -0
- package/esm/src/cli/commands/bench.js +458 -0
- package/esm/src/cli/commands/egress-compile.d.ts +17 -0
- package/esm/src/cli/commands/egress-compile.js +25 -0
- package/esm/src/cli/commands/eval.d.ts +37 -0
- package/esm/src/cli/commands/eval.js +190 -0
- package/esm/src/cli/commands/fuzz-canary.d.ts +15 -0
- package/esm/src/cli/commands/fuzz-canary.js +202 -0
- package/esm/src/cli/commands/fuzz-guardrails.d.ts +2 -0
- package/esm/src/cli/commands/fuzz-guardrails.js +5 -0
- package/esm/src/cli/commands/profile.d.ts +2 -0
- package/esm/src/cli/commands/profile.js +80 -0
- package/esm/src/cli/commands/run.d.ts +13 -0
- package/esm/src/cli/commands/run.js +45 -0
- package/esm/src/cli/commands/test.d.ts +25 -0
- package/esm/src/cli/commands/test.js +143 -0
- package/esm/src/cli/event-log.d.ts +15 -0
- package/esm/src/cli/event-log.js +136 -0
- package/esm/src/cli/index.d.ts +10 -0
- package/esm/src/cli/index.js +267 -0
- package/esm/src/cli/matrix/fixtures.d.ts +10 -0
- package/esm/src/cli/matrix/fixtures.js +72 -0
- package/esm/src/cli/matrix/synthesizer.d.ts +18 -0
- package/esm/src/cli/matrix/synthesizer.js +103 -0
- package/esm/src/evals/attachments.d.ts +4 -0
- package/esm/src/evals/attachments.js +53 -0
- package/esm/src/evals/breakdown.d.ts +28 -0
- package/esm/src/evals/breakdown.js +68 -0
- package/esm/src/evals/graders/answer.d.ts +13 -0
- package/esm/src/evals/graders/answer.js +133 -0
- package/esm/src/evals/graders/code.d.ts +64 -0
- package/esm/src/evals/graders/code.js +205 -0
- package/esm/src/evals/graders/judge.d.ts +20 -0
- package/esm/src/evals/graders/judge.js +365 -0
- package/esm/src/evals/graders/latency.d.ts +5 -0
- package/esm/src/evals/graders/latency.js +81 -0
- package/esm/src/evals/graders/live.d.ts +11 -0
- package/esm/src/evals/graders/live.js +40 -0
- package/esm/src/evals/graders/media.d.ts +18 -0
- package/esm/src/evals/graders/media.js +92 -0
- package/esm/src/evals/graders/shared.d.ts +11 -0
- package/esm/src/evals/graders/shared.js +62 -0
- package/esm/src/evals/graders/transcript.d.ts +17 -0
- package/esm/src/evals/graders/transcript.js +200 -0
- package/esm/src/evals/mod.d.ts +42 -0
- package/esm/src/evals/mod.js +30 -0
- package/esm/src/evals/record.d.ts +35 -0
- package/esm/src/evals/record.js +105 -0
- package/esm/src/evals/rubrics/catalog.d.ts +148 -0
- package/esm/src/evals/rubrics/catalog.js +846 -0
- package/esm/src/evals/rubrics/mod.d.ts +24 -0
- package/esm/src/evals/rubrics/mod.js +55 -0
- package/esm/src/evals/rubrics/mustache.d.ts +23 -0
- package/esm/src/evals/rubrics/mustache.js +154 -0
- package/esm/src/evals/rubrics/types.d.ts +54 -0
- package/esm/src/evals/rubrics/types.js +74 -0
- package/esm/src/evals/run.d.ts +118 -0
- package/esm/src/evals/run.js +452 -0
- package/esm/src/evals/suite.d.ts +19 -0
- package/esm/src/evals/suite.js +92 -0
- package/esm/src/evals/summary.d.ts +32 -0
- package/esm/src/evals/summary.js +30 -0
- package/esm/src/evals/trial.d.ts +27 -0
- package/esm/src/evals/trial.js +158 -0
- package/esm/src/evals/types.d.ts +260 -0
- package/esm/src/evals/types.js +126 -0
- package/esm/src/evals/verdict.d.ts +18 -0
- package/esm/src/evals/verdict.js +45 -0
- package/esm/src/guardrails/canary-gate.d.ts +21 -0
- package/esm/src/guardrails/canary-gate.js +40 -0
- package/esm/src/guardrails/canary.d.ts +112 -0
- package/esm/src/guardrails/canary.js +901 -0
- package/esm/src/guardrails/compile-egress.d.ts +11 -0
- package/esm/src/guardrails/compile-egress.js +11 -0
- package/esm/src/guardrails/corpus/canary-egress-attacks.d.ts +22 -0
- package/esm/src/guardrails/corpus/canary-egress-attacks.js +303 -0
- package/esm/src/guardrails/corpus/fuzz-inbound.d.ts +5 -0
- package/esm/src/guardrails/corpus/fuzz-inbound.js +202 -0
- package/esm/src/guardrails/corpus/inbound-payloads.d.ts +3 -0
- package/esm/src/guardrails/corpus/inbound-payloads.js +118 -0
- package/esm/src/guardrails/corpus/live-attacks.d.ts +13 -0
- package/esm/src/guardrails/corpus/live-attacks.js +224 -0
- package/esm/src/guardrails/corpus/mod.d.ts +7 -0
- package/esm/src/guardrails/corpus/mod.js +4 -0
- package/esm/src/guardrails/corpus/secrets.d.ts +12 -0
- package/esm/src/guardrails/corpus/secrets.js +16 -0
- package/esm/src/guardrails/corpus/strings.d.ts +23 -0
- package/esm/src/guardrails/corpus/strings.js +29 -0
- package/esm/src/guardrails/corpus/types.d.ts +32 -0
- package/esm/src/guardrails/corpus/types.js +1 -0
- package/esm/src/guardrails/egress-automata.d.ts +14 -0
- package/esm/src/guardrails/egress-automata.js +6059 -0
- package/esm/src/guardrails/egress-compiler.d.ts +33 -0
- package/esm/src/guardrails/egress-compiler.js +237 -0
- package/esm/src/guardrails/egress-patterns.d.ts +24 -0
- package/esm/src/guardrails/egress-patterns.js +32 -0
- package/esm/src/guardrails/egress-policy.d.ts +27 -0
- package/esm/src/guardrails/egress-policy.js +76 -0
- package/esm/src/guardrails/egress-rules.d.ts +54 -0
- package/esm/src/guardrails/egress-rules.js +49 -0
- package/esm/src/guardrails/egress-stream.d.ts +105 -0
- package/esm/src/guardrails/egress-stream.js +645 -0
- package/esm/src/guardrails/egress-urls.d.ts +83 -0
- package/esm/src/guardrails/egress-urls.js +917 -0
- package/esm/src/guardrails/egress.d.ts +106 -0
- package/esm/src/guardrails/egress.js +374 -0
- package/esm/src/guardrails/error.d.ts +26 -0
- package/esm/src/guardrails/error.js +91 -0
- package/esm/src/guardrails/event-schemas.d.ts +57 -0
- package/esm/src/guardrails/event-schemas.js +41 -0
- package/esm/src/guardrails/events.d.ts +9 -0
- package/esm/src/guardrails/events.js +42 -0
- package/esm/src/guardrails/hits.d.ts +8 -0
- package/esm/src/guardrails/hits.js +19 -0
- package/esm/src/guardrails/injection-patterns.d.ts +15 -0
- package/esm/src/guardrails/injection-patterns.js +94 -0
- package/esm/src/guardrails/injection.d.ts +14 -0
- package/esm/src/guardrails/injection.js +237 -0
- package/esm/src/guardrails/lexicon.d.ts +30 -0
- package/esm/src/guardrails/lexicon.js +478 -0
- package/esm/src/guardrails/live-outbound-gate.d.ts +54 -0
- package/esm/src/guardrails/live-outbound-gate.js +305 -0
- package/esm/src/guardrails/mod.d.ts +46 -0
- package/esm/src/guardrails/mod.js +29 -0
- package/esm/src/guardrails/network.d.ts +42 -0
- package/esm/src/guardrails/network.js +328 -0
- package/esm/src/guardrails/normalize.d.ts +6 -0
- package/esm/src/guardrails/normalize.js +132 -0
- package/esm/src/guardrails/policy.d.ts +19 -0
- package/esm/src/guardrails/policy.js +50 -0
- package/esm/src/guardrails/progressive-yield.d.ts +69 -0
- package/esm/src/guardrails/progressive-yield.js +237 -0
- package/esm/src/guardrails/prompt-echo.d.ts +38 -0
- package/esm/src/guardrails/prompt-echo.js +225 -0
- package/esm/src/guardrails/quota.d.ts +20 -0
- package/esm/src/guardrails/quota.js +80 -0
- package/esm/src/guardrails/rules.d.ts +56 -0
- package/esm/src/guardrails/rules.js +54 -0
- package/esm/src/guardrails/sanitize.d.ts +23 -0
- package/esm/src/guardrails/sanitize.js +184 -0
- package/esm/src/guardrails/sensitive.d.ts +29 -0
- package/esm/src/guardrails/sensitive.js +113 -0
- package/esm/src/guardrails/serialize.d.ts +14 -0
- package/esm/src/guardrails/serialize.js +37 -0
- package/esm/src/guardrails/testing.d.ts +9 -0
- package/esm/src/guardrails/testing.js +8 -0
- package/esm/src/guardrails/theorem-error.d.ts +18 -0
- package/esm/src/guardrails/theorem-error.js +53 -0
- package/esm/src/guardrails/thought-guard.d.ts +55 -0
- package/esm/src/guardrails/thought-guard.js +464 -0
- package/esm/src/guardrails/tool-directives.d.ts +19 -0
- package/esm/src/guardrails/tool-directives.js +109 -0
- package/esm/src/guardrails/tool-result.d.ts +61 -0
- package/esm/src/guardrails/tool-result.js +248 -0
- package/esm/src/guardrails/types.d.ts +242 -0
- package/esm/src/guardrails/types.js +54 -0
- package/esm/src/host/client-turn.d.ts +9 -0
- package/esm/src/host/client-turn.js +38 -0
- package/esm/src/host/mint-trace.d.ts +28 -0
- package/esm/src/host/mint-trace.js +59 -0
- package/esm/src/host/mod.d.ts +13 -0
- package/esm/src/host/mod.js +11 -0
- package/esm/src/host/readStreamingJsonStringField.d.ts +2 -0
- package/esm/src/host/readStreamingJsonStringField.js +68 -0
- package/esm/src/host/reply.d.ts +7 -0
- package/esm/src/host/reply.js +35 -0
- package/esm/src/interface/blocks.d.ts +8 -0
- package/esm/src/interface/blocks.js +213 -0
- package/esm/src/interface/composer-actions.d.ts +20 -0
- package/esm/src/interface/composer-actions.js +31 -0
- package/esm/src/interface/draft.d.ts +14 -0
- package/esm/src/interface/draft.js +28 -0
- package/esm/src/interface/from-profile.d.ts +12 -0
- package/esm/src/interface/from-profile.js +144 -0
- package/esm/src/interface/history.d.ts +40 -0
- package/esm/src/interface/history.js +269 -0
- package/esm/src/interface/inputs.d.ts +10 -0
- package/esm/src/interface/inputs.js +64 -0
- package/esm/src/interface/mod.d.ts +31 -0
- package/esm/src/interface/mod.js +21 -0
- package/esm/src/interface/models.d.ts +19 -0
- package/esm/src/interface/models.js +45 -0
- package/esm/src/interface/pending.d.ts +48 -0
- package/esm/src/interface/pending.js +146 -0
- package/esm/src/interface/profile-interface.d.ts +4 -0
- package/esm/src/interface/profile-interface.js +223 -0
- package/esm/src/interface/session.d.ts +64 -0
- package/esm/src/interface/session.js +121 -0
- package/esm/src/interface/tool-calls.d.ts +20 -0
- package/esm/src/interface/tool-calls.js +73 -0
- package/esm/src/interface/tool-invoke.d.ts +4 -0
- package/esm/src/interface/tool-invoke.js +20 -0
- package/esm/src/interface/tool-media.d.ts +9 -0
- package/esm/src/interface/tool-media.js +112 -0
- package/esm/src/interface/types.d.ts +213 -0
- package/esm/src/interface/types.js +4 -0
- package/esm/src/kernel/auth/credential-source.d.ts +23 -0
- package/esm/src/kernel/auth/credential-source.js +11 -0
- package/esm/src/kernel/auth/crypto.d.ts +51 -0
- package/esm/src/kernel/auth/crypto.js +161 -0
- package/esm/src/kernel/auth/mod.d.ts +5 -0
- package/esm/src/kernel/auth/mod.js +5 -0
- package/esm/src/kernel/auth/oauth.d.ts +17 -0
- package/esm/src/kernel/auth/oauth.js +438 -0
- package/esm/src/kernel/auth/scope-refusal.d.ts +9 -0
- package/esm/src/kernel/auth/scope-refusal.js +8 -0
- package/esm/src/kernel/auth/typed-secret.d.ts +13 -0
- package/esm/src/kernel/auth/typed-secret.js +23 -0
- package/esm/src/kernel/auth/types.d.ts +139 -0
- package/esm/src/kernel/auth/types.js +1 -0
- package/esm/src/kernel/default-scope.d.ts +34 -0
- package/esm/src/kernel/default-scope.js +72 -0
- package/esm/src/kernel/engine/compaction.d.ts +70 -0
- package/esm/src/kernel/engine/compaction.js +202 -0
- package/esm/src/kernel/engine/decision.d.ts +41 -0
- package/esm/src/kernel/engine/decision.js +412 -0
- package/esm/src/kernel/engine/hash.d.ts +6 -0
- package/esm/src/kernel/engine/hash.js +22 -0
- package/esm/src/kernel/engine/live-inbound.d.ts +9 -0
- package/esm/src/kernel/engine/live-inbound.js +19 -0
- package/esm/src/kernel/engine/live-ingress.d.ts +9 -0
- package/esm/src/kernel/engine/live-ingress.js +37 -0
- package/esm/src/kernel/engine/media-probe/audio.d.ts +7 -0
- package/esm/src/kernel/engine/media-probe/audio.js +342 -0
- package/esm/src/kernel/engine/media-probe/bytes.d.ts +6 -0
- package/esm/src/kernel/engine/media-probe/bytes.js +26 -0
- package/esm/src/kernel/engine/media-probe/image.d.ts +5 -0
- package/esm/src/kernel/engine/media-probe/image.js +171 -0
- package/esm/src/kernel/engine/media-probe/iso-bmff.d.ts +19 -0
- package/esm/src/kernel/engine/media-probe/iso-bmff.js +48 -0
- package/esm/src/kernel/engine/media-probe/matroska.d.ts +35 -0
- package/esm/src/kernel/engine/media-probe/matroska.js +226 -0
- package/esm/src/kernel/engine/media-probe/mp4.d.ts +22 -0
- package/esm/src/kernel/engine/media-probe/mp4.js +279 -0
- package/esm/src/kernel/engine/media-probe/opus.d.ts +4 -0
- package/esm/src/kernel/engine/media-probe/opus.js +23 -0
- package/esm/src/kernel/engine/media-probe/pdf.d.ts +5 -0
- package/esm/src/kernel/engine/media-probe/pdf.js +117 -0
- package/esm/src/kernel/engine/media-probe/video.d.ts +15 -0
- package/esm/src/kernel/engine/media-probe/video.js +49 -0
- package/esm/src/kernel/engine/record.d.ts +3 -0
- package/esm/src/kernel/engine/record.js +11 -0
- package/esm/src/kernel/engine/repair.d.ts +7 -0
- package/esm/src/kernel/engine/repair.js +36 -0
- package/esm/src/kernel/engine/runner/gates.d.ts +5 -0
- package/esm/src/kernel/engine/runner/gates.js +322 -0
- package/esm/src/kernel/engine/runner/mod.d.ts +15 -0
- package/esm/src/kernel/engine/runner/mod.js +574 -0
- package/esm/src/kernel/engine/runner/schema-validation.d.ts +14 -0
- package/esm/src/kernel/engine/runner/schema-validation.js +105 -0
- package/esm/src/kernel/engine/runner/stages.d.ts +28 -0
- package/esm/src/kernel/engine/runner/stages.js +48 -0
- package/esm/src/kernel/engine/runner/state.d.ts +76 -0
- package/esm/src/kernel/engine/runner/state.js +40 -0
- package/esm/src/kernel/engine/runner/steps.d.ts +14 -0
- package/esm/src/kernel/engine/runner/steps.js +360 -0
- package/esm/src/kernel/engine/runner/stream.d.ts +40 -0
- package/esm/src/kernel/engine/runner/stream.js +225 -0
- package/esm/src/kernel/engine/runner/usage.d.ts +45 -0
- package/esm/src/kernel/engine/runner/usage.js +150 -0
- package/esm/src/kernel/engine/session/mod.d.ts +31 -0
- package/esm/src/kernel/engine/session/mod.js +951 -0
- package/esm/src/kernel/engine/session/session-trace.d.ts +115 -0
- package/esm/src/kernel/engine/session/session-trace.js +489 -0
- package/esm/src/kernel/engine/token-estimate.d.ts +77 -0
- package/esm/src/kernel/engine/token-estimate.js +218 -0
- package/esm/src/kernel/engine/tool-trace.d.ts +58 -0
- package/esm/src/kernel/engine/tool-trace.js +131 -0
- package/esm/src/kernel/engine/tree.d.ts +2 -0
- package/esm/src/kernel/engine/tree.js +17 -0
- package/esm/src/kernel/engine/turn-trace.d.ts +118 -0
- package/esm/src/kernel/engine/turn-trace.js +863 -0
- package/esm/src/kernel/engine/usage.d.ts +30 -0
- package/esm/src/kernel/engine/usage.js +134 -0
- package/esm/src/kernel/interaction-parts.d.ts +10 -0
- package/esm/src/kernel/interaction-parts.js +22 -0
- package/esm/src/kernel/mod.d.ts +47 -0
- package/esm/src/kernel/mod.js +30 -0
- package/esm/src/kernel/profile-graph.d.ts +140 -0
- package/esm/src/kernel/profile-graph.js +151 -0
- package/esm/src/kernel/profile-presence.d.ts +9 -0
- package/esm/src/kernel/profile-presence.js +143 -0
- package/esm/src/kernel/profile-scope.d.ts +36 -0
- package/esm/src/kernel/profile-scope.js +262 -0
- package/esm/src/kernel/registry/attachments.d.ts +35 -0
- package/esm/src/kernel/registry/attachments.js +211 -0
- package/esm/src/kernel/registry/catalog.d.ts +19 -0
- package/esm/src/kernel/registry/catalog.js +78 -0
- package/esm/src/kernel/registry/ingress.d.ts +8 -0
- package/esm/src/kernel/registry/ingress.js +134 -0
- package/esm/src/kernel/registry/kernel-registry.d.ts +12 -0
- package/esm/src/kernel/registry/kernel-registry.js +8 -0
- package/esm/src/kernel/registry/profile-outputs.d.ts +3 -0
- package/esm/src/kernel/registry/profile-outputs.js +7 -0
- package/esm/src/kernel/registry/profiles.d.ts +92 -0
- package/esm/src/kernel/registry/profiles.js +698 -0
- package/esm/src/kernel/registry/provider-request.d.ts +6 -0
- package/esm/src/kernel/registry/provider-request.js +42 -0
- package/esm/src/kernel/registry/resolve.d.ts +14 -0
- package/esm/src/kernel/registry/resolve.js +237 -0
- package/esm/src/kernel/registry/schemas.d.ts +9 -0
- package/esm/src/kernel/registry/schemas.js +25 -0
- package/esm/src/kernel/registry/sole-model.d.ts +2 -0
- package/esm/src/kernel/registry/sole-model.js +4 -0
- package/esm/src/kernel/registry/system-prompt.d.ts +8 -0
- package/esm/src/kernel/registry/system-prompt.js +33 -0
- package/esm/src/kernel/registry/system-role.d.ts +3 -0
- package/esm/src/kernel/registry/system-role.js +9 -0
- package/esm/src/kernel/registry/vault.d.ts +13 -0
- package/esm/src/kernel/registry/vault.js +14 -0
- package/esm/src/kernel/schema.d.ts +172 -0
- package/esm/src/kernel/schema.js +653 -0
- package/esm/src/kernel/scope.d.ts +22 -0
- package/esm/src/kernel/scope.js +25 -0
- package/esm/src/kernel/stages.d.ts +141 -0
- package/esm/src/kernel/stages.js +388 -0
- package/esm/src/kernel/stop.d.ts +93 -0
- package/esm/src/kernel/stop.js +125 -0
- package/esm/src/kernel/system-parts.d.ts +26 -0
- package/esm/src/kernel/system-parts.js +98 -0
- package/esm/src/kernel/tools/activity-label.d.ts +16 -0
- package/esm/src/kernel/tools/activity-label.js +209 -0
- package/esm/src/kernel/tools/events.d.ts +51 -0
- package/esm/src/kernel/tools/events.js +149 -0
- package/esm/src/kernel/tools/execute.d.ts +64 -0
- package/esm/src/kernel/tools/execute.js +801 -0
- package/esm/src/kernel/tools/gate-answer.d.ts +50 -0
- package/esm/src/kernel/tools/gate-answer.js +54 -0
- package/esm/src/kernel/tools/harness.d.ts +16 -0
- package/esm/src/kernel/tools/harness.js +42 -0
- package/esm/src/kernel/tools/invoke.d.ts +10 -0
- package/esm/src/kernel/tools/invoke.js +129 -0
- package/esm/src/kernel/tools/mcp-sessions.d.ts +20 -0
- package/esm/src/kernel/tools/mcp-sessions.js +64 -0
- package/esm/src/kernel/tools/mod.d.ts +9 -0
- package/esm/src/kernel/tools/mod.js +6 -0
- package/esm/src/kernel/tools/model-text.d.ts +11 -0
- package/esm/src/kernel/tools/model-text.js +25 -0
- package/esm/src/kernel/tools/permission.d.ts +6 -0
- package/esm/src/kernel/tools/permission.js +38 -0
- package/esm/src/kernel/tools/project.d.ts +8 -0
- package/esm/src/kernel/tools/project.js +25 -0
- package/esm/src/kernel/tools/registry.d.ts +20 -0
- package/esm/src/kernel/tools/registry.js +84 -0
- package/esm/src/kernel/tools/remote.d.ts +110 -0
- package/esm/src/kernel/tools/remote.js +998 -0
- package/esm/src/kernel/tools/resolve.d.ts +28 -0
- package/esm/src/kernel/tools/resolve.js +259 -0
- package/esm/src/kernel/tools/schema.d.ts +10 -0
- package/esm/src/kernel/tools/schema.js +174 -0
- package/esm/src/kernel/tools/signed-in-fetch.d.ts +18 -0
- package/esm/src/kernel/tools/signed-in-fetch.js +45 -0
- package/esm/src/kernel/tools/stage-run.d.ts +93 -0
- package/esm/src/kernel/tools/stage-run.js +140 -0
- package/esm/src/kernel/tools/types.d.ts +287 -0
- package/esm/src/kernel/tools/types.js +1 -0
- package/esm/src/kernel/turn-events.d.ts +599 -0
- package/esm/src/kernel/turn-events.js +425 -0
- package/esm/src/kernel/types.d.ts +884 -0
- package/esm/src/kernel/types.js +1 -0
- package/esm/src/kernel/util/base64.d.ts +2 -0
- package/esm/src/kernel/util/base64.js +13 -0
- package/esm/src/kernel/util/exact-type.d.ts +31 -0
- package/esm/src/kernel/util/exact-type.js +1 -0
- package/esm/src/kernel/util/find-last.d.ts +3 -0
- package/esm/src/kernel/util/find-last.js +9 -0
- package/esm/src/kernel/util/mime.d.ts +2 -0
- package/esm/src/kernel/util/mime.js +4 -0
- package/esm/src/kernel/util/record.d.ts +1 -0
- package/esm/src/kernel/util/record.js +3 -0
- package/esm/src/observability/destinations.d.ts +9 -0
- package/esm/src/observability/destinations.js +38 -0
- package/esm/src/observability/jsonl.d.ts +18 -0
- package/esm/src/observability/jsonl.js +117 -0
- package/esm/src/observability/mod.d.ts +22 -0
- package/esm/src/observability/mod.js +16 -0
- package/esm/src/observability/openinference.d.ts +11 -0
- package/esm/src/observability/openinference.js +205 -0
- package/esm/src/observability/otlp.d.ts +68 -0
- package/esm/src/observability/otlp.js +98 -0
- package/esm/src/observability/phoenix.d.ts +29 -0
- package/esm/src/observability/phoenix.js +71 -0
- package/esm/src/observability/policy.d.ts +14 -0
- package/esm/src/observability/policy.js +69 -0
- package/esm/src/observability/resolve-policy.d.ts +8 -0
- package/esm/src/observability/resolve-policy.js +58 -0
- package/esm/src/observability/spans.d.ts +16 -0
- package/esm/src/observability/spans.js +56 -0
- package/esm/src/observability/trace-catalog.d.ts +111 -0
- package/esm/src/observability/trace-catalog.js +865 -0
- package/esm/src/observability/trace-record.d.ts +23 -0
- package/esm/src/observability/trace-record.js +223 -0
- package/esm/src/observability/trace-schema.d.ts +54 -0
- package/esm/src/observability/trace-schema.js +59 -0
- package/esm/src/observability/trace-sink.d.ts +13 -0
- package/esm/src/observability/trace-sink.js +3 -0
- package/esm/src/observability/trace-span.d.ts +92 -0
- package/esm/src/observability/trace-span.js +199 -0
- package/esm/src/observability/trace.d.ts +11 -0
- package/esm/src/observability/trace.js +35 -0
- package/esm/src/observability/types.d.ts +85 -0
- package/esm/src/observability/types.js +3 -0
- package/esm/src/presets/google/speech-voices.d.ts +8 -0
- package/esm/src/presets/google/speech-voices.js +38 -0
- package/esm/src/presets/google-limits.d.ts +12 -0
- package/esm/src/presets/google-limits.js +18 -0
- package/esm/src/presets/google.d.ts +104 -0
- package/esm/src/presets/google.js +188 -0
- package/esm/src/presets/mod.d.ts +10 -0
- package/esm/src/presets/mod.js +9 -0
- package/esm/src/presets/openrouter.d.ts +13 -0
- package/esm/src/presets/openrouter.js +13 -0
- package/esm/src/presets/typesafe.d.ts +2 -0
- package/esm/src/presets/typesafe.js +2 -0
- package/esm/src/providers/create-provider.d.ts +21 -0
- package/esm/src/providers/create-provider.js +90 -0
- package/esm/src/providers/decision/usage.d.ts +3 -0
- package/esm/src/providers/decision/usage.js +25 -0
- package/esm/src/providers/google/api-error.d.ts +8 -0
- package/esm/src/providers/google/api-error.js +123 -0
- package/esm/src/providers/google/grounding.d.ts +5 -0
- package/esm/src/providers/google/grounding.js +226 -0
- package/esm/src/providers/google/interactions/framing.d.ts +15 -0
- package/esm/src/providers/google/interactions/framing.js +263 -0
- package/esm/src/providers/google/interactions/mod.d.ts +2 -0
- package/esm/src/providers/google/interactions/mod.js +2 -0
- package/esm/src/providers/google/interactions/steps.d.ts +12 -0
- package/esm/src/providers/google/interactions/steps.js +200 -0
- package/esm/src/providers/google/interactions/stream.d.ts +24 -0
- package/esm/src/providers/google/interactions/stream.js +297 -0
- package/esm/src/providers/google/keys.d.ts +20 -0
- package/esm/src/providers/google/keys.js +87 -0
- package/esm/src/providers/google/live/framing.d.ts +51 -0
- package/esm/src/providers/google/live/framing.js +597 -0
- package/esm/src/providers/google/live/mod.d.ts +7 -0
- package/esm/src/providers/google/live/mod.js +7 -0
- package/esm/src/providers/google/live/openapi-schema.d.ts +1 -0
- package/esm/src/providers/google/live/openapi-schema.js +42 -0
- package/esm/src/providers/google/live/session.d.ts +14 -0
- package/esm/src/providers/google/live/session.js +150 -0
- package/esm/src/providers/google/live/stream.d.ts +51 -0
- package/esm/src/providers/google/live/stream.js +263 -0
- package/esm/src/providers/google/thinking.d.ts +3 -0
- package/esm/src/providers/google/thinking.js +8 -0
- package/esm/src/providers/google/urls.d.ts +6 -0
- package/esm/src/providers/google/urls.js +6 -0
- package/esm/src/providers/google/usage.d.ts +7 -0
- package/esm/src/providers/google/usage.js +49 -0
- package/esm/src/providers/local/local.d.ts +12 -0
- package/esm/src/providers/local/local.js +186 -0
- package/esm/src/providers/local/mod.d.ts +8 -0
- package/esm/src/providers/local/mod.js +8 -0
- package/esm/src/providers/mod.d.ts +11 -0
- package/esm/src/providers/mod.js +7 -0
- package/esm/src/providers/openrouter/cache-control.d.ts +5 -0
- package/esm/src/providers/openrouter/cache-control.js +4 -0
- package/esm/src/providers/openrouter/chat.d.ts +64 -0
- package/esm/src/providers/openrouter/chat.js +490 -0
- package/esm/src/providers/openrouter/image.d.ts +24 -0
- package/esm/src/providers/openrouter/image.js +187 -0
- package/esm/src/providers/openrouter/openai/compat.d.ts +19 -0
- package/esm/src/providers/openrouter/openai/compat.js +162 -0
- package/esm/src/providers/openrouter/openai/image-payload.d.ts +9 -0
- package/esm/src/providers/openrouter/openai/image-payload.js +115 -0
- package/esm/src/providers/openrouter/openai/sdk-messages.d.ts +10 -0
- package/esm/src/providers/openrouter/openai/sdk-messages.js +99 -0
- package/esm/src/providers/openrouter/openai/usage.d.ts +8 -0
- package/esm/src/providers/openrouter/openai/usage.js +56 -0
- package/esm/src/providers/openrouter/resolve-api-key.d.ts +3 -0
- package/esm/src/providers/openrouter/resolve-api-key.js +8 -0
- package/esm/src/providers/openrouter/speech.d.ts +18 -0
- package/esm/src/providers/openrouter/speech.js +109 -0
- package/esm/src/providers/probe.d.ts +5 -0
- package/esm/src/providers/probe.js +15 -0
- package/esm/src/providers/shared/builtin-wire.d.ts +4 -0
- package/esm/src/providers/shared/builtin-wire.js +9 -0
- package/esm/src/providers/shared/pcm.d.ts +14 -0
- package/esm/src/providers/shared/pcm.js +78 -0
- package/esm/src/providers/shared/response-identity.d.ts +11 -0
- package/esm/src/providers/shared/response-identity.js +12 -0
- package/esm/src/providers/shared/sse.d.ts +10 -0
- package/esm/src/providers/shared/sse.js +79 -0
- package/esm/src/providers/shared/structured-output.d.ts +4 -0
- package/esm/src/providers/shared/structured-output.js +11 -0
- package/esm/src/providers/shared/tool-args.d.ts +25 -0
- package/esm/src/providers/shared/tool-args.js +84 -0
- package/esm/src/providers/shared/upstream-tap.d.ts +8 -0
- package/esm/src/providers/shared/upstream-tap.js +85 -0
- package/esm/src/providers/shared/upstream-tape.d.ts +6 -0
- package/esm/src/providers/shared/upstream-tape.js +88 -0
- package/esm/src/providers/shared/vault.d.ts +13 -0
- package/esm/src/providers/shared/vault.js +41 -0
- package/esm/src/providers/types.d.ts +19 -0
- package/esm/src/providers/types.js +1 -0
- package/esm/src/surface/formats.d.ts +28 -0
- package/esm/src/surface/formats.js +139 -0
- package/esm/src/surface/mod.d.ts +14 -0
- package/esm/src/surface/mod.js +10 -0
- package/esm/src/surface/runtime.d.ts +40 -0
- package/esm/src/surface/runtime.js +439 -0
- package/esm/src/surface/tools.d.ts +15 -0
- package/esm/src/surface/tools.js +80 -0
- package/esm/src/surface/types.d.ts +104 -0
- package/esm/src/surface/types.js +4 -0
- 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 {};
|