@theoremjs/agents 0.3.0 → 0.3.2
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/README.md +277 -995
- package/esm/mod.d.ts +34 -20
- package/esm/mod.js +19 -12
- package/esm/src/cli/commands/bench.js +36 -14
- package/esm/src/cli/commands/detect-compile.d.ts +17 -0
- package/esm/src/cli/commands/detect-compile.js +22 -0
- package/esm/src/cli/commands/eval.d.ts +3 -3
- package/esm/src/cli/commands/fuzz-canary.js +55 -16
- package/esm/src/cli/commands/profile.js +4 -4
- package/esm/src/cli/commands/run.d.ts +2 -2
- package/esm/src/cli/commands/run.js +1 -1
- package/esm/src/cli/commands/test.d.ts +4 -3
- package/esm/src/cli/commands/test.js +2 -2
- package/esm/src/cli/index.js +9 -9
- package/esm/src/cli/matrix/fixtures.js +25 -30
- package/esm/src/evals/attachments.d.ts +1 -0
- package/esm/src/evals/attachments.js +4 -2
- package/esm/src/evals/breakdown.d.ts +2 -0
- package/esm/src/evals/breakdown.js +1 -0
- package/esm/src/evals/graders/answer.d.ts +3 -0
- package/esm/src/evals/graders/answer.js +1 -0
- package/esm/src/evals/graders/code.d.ts +7 -31
- package/esm/src/evals/graders/code.js +4 -25
- package/esm/src/evals/graders/judge.d.ts +4 -0
- package/esm/src/evals/graders/judge.js +7 -5
- package/esm/src/evals/graders/latency.d.ts +1 -0
- package/esm/src/evals/graders/latency.js +3 -2
- package/esm/src/evals/graders/live.d.ts +3 -0
- package/esm/src/evals/graders/live.js +2 -0
- package/esm/src/evals/graders/media.js +1 -2
- package/esm/src/evals/graders/shared.js +1 -1
- package/esm/src/evals/graders/transcript.d.ts +2 -0
- package/esm/src/evals/graders/transcript.js +5 -3
- package/esm/src/evals/mod.d.ts +1 -9
- package/esm/src/evals/mod.js +1 -9
- package/esm/src/evals/record.d.ts +6 -0
- package/esm/src/evals/record.js +4 -2
- package/esm/src/evals/rubrics/mod.d.ts +1 -1
- package/esm/src/evals/rubrics/mod.js +1 -1
- package/esm/src/evals/rubrics/mustache.js +1 -1
- package/esm/src/evals/rubrics/types.js +1 -1
- package/esm/src/evals/run.d.ts +9 -52
- package/esm/src/evals/run.js +12 -46
- package/esm/src/evals/suite.d.ts +12 -3
- package/esm/src/evals/suite.js +9 -4
- package/esm/src/evals/summary.d.ts +3 -0
- package/esm/src/evals/summary.js +1 -0
- package/esm/src/evals/trial.d.ts +3 -16
- package/esm/src/evals/trial.js +7 -30
- package/esm/src/evals/types.d.ts +30 -121
- package/esm/src/evals/types.js +3 -16
- package/esm/src/evals/verdict.d.ts +5 -0
- package/esm/src/evals/verdict.js +4 -1
- package/esm/src/guardrails/boundaries.d.ts +41 -0
- package/esm/src/guardrails/boundaries.js +103 -0
- package/esm/src/guardrails/canary-gate.d.ts +1 -0
- package/esm/src/guardrails/canary.d.ts +49 -15
- package/esm/src/guardrails/canary.js +103 -30
- package/esm/src/guardrails/compile-egress.d.ts +6 -5
- package/esm/src/guardrails/compile-egress.js +6 -5
- package/esm/src/guardrails/corpus/canary-egress-attacks.d.ts +3 -1
- package/esm/src/guardrails/corpus/canary-egress-attacks.js +4 -2
- package/esm/src/guardrails/corpus/fuzz-inbound.js +14 -17
- package/esm/src/guardrails/corpus/inbound-payloads.d.ts +2 -0
- package/esm/src/guardrails/corpus/inbound-payloads.js +4 -2
- package/esm/src/guardrails/corpus/live-attacks.d.ts +2 -0
- package/esm/src/guardrails/corpus/live-attacks.js +6 -1
- package/esm/src/guardrails/corpus/mod.d.ts +1 -1
- package/esm/src/guardrails/corpus/secrets.d.ts +3 -3
- package/esm/src/guardrails/corpus/secrets.js +2 -2
- package/esm/src/guardrails/corpus/strings.d.ts +1 -1
- package/esm/src/guardrails/corpus/strings.js +1 -1
- package/esm/src/guardrails/corpus/types.d.ts +5 -1
- package/esm/src/guardrails/credential-rules.d.ts +36 -0
- package/esm/src/guardrails/credential-rules.js +3001 -0
- package/esm/src/guardrails/credential-scan.d.ts +45 -0
- package/esm/src/guardrails/credential-scan.js +172 -0
- package/esm/src/guardrails/destinations.d.ts +45 -0
- package/esm/src/guardrails/destinations.js +234 -0
- package/esm/src/guardrails/detect-at.d.ts +107 -0
- package/esm/src/guardrails/detect-at.js +434 -0
- package/esm/src/guardrails/detect-reply.d.ts +61 -0
- package/esm/src/guardrails/detect-reply.js +95 -0
- package/esm/src/guardrails/detect-stream.d.ts +33 -0
- package/esm/src/guardrails/detect-stream.js +77 -0
- package/esm/src/guardrails/detectors.d.ts +216 -0
- package/esm/src/guardrails/detectors.js +503 -0
- package/esm/src/guardrails/egress-automata.d.ts +4 -6
- package/esm/src/guardrails/egress-automata.js +24095 -4572
- package/esm/src/guardrails/egress-compiler.d.ts +38 -16
- package/esm/src/guardrails/egress-compiler.js +254 -60
- package/esm/src/guardrails/egress-patterns.d.ts +4 -2
- package/esm/src/guardrails/egress-patterns.js +6 -2
- package/esm/src/guardrails/egress-stream.d.ts +54 -36
- package/esm/src/guardrails/egress-stream.js +253 -124
- package/esm/src/guardrails/egress-urls.d.ts +6 -3
- package/esm/src/guardrails/egress-urls.js +14 -22
- package/esm/src/guardrails/egress.d.ts +26 -86
- package/esm/src/guardrails/egress.js +59 -309
- package/esm/src/guardrails/error.d.ts +13 -8
- package/esm/src/guardrails/error.js +25 -18
- package/esm/src/guardrails/event-schemas.d.ts +46 -3
- package/esm/src/guardrails/event-schemas.js +12 -5
- package/esm/src/guardrails/events.d.ts +5 -1
- package/esm/src/guardrails/events.js +4 -1
- package/esm/src/guardrails/hints.d.ts +14 -0
- package/esm/src/guardrails/hints.js +57 -0
- package/esm/src/guardrails/hits.d.ts +7 -1
- package/esm/src/guardrails/hits.js +12 -1
- package/esm/src/guardrails/host-patterns.d.ts +85 -0
- package/esm/src/guardrails/host-patterns.js +173 -0
- package/esm/src/guardrails/injection-patterns.d.ts +6 -1
- package/esm/src/guardrails/injection-patterns.js +33 -1
- package/esm/src/guardrails/injection-reversed.d.ts +9 -0
- package/esm/src/guardrails/injection-reversed.js +49 -0
- package/esm/src/guardrails/injection.d.ts +17 -1
- package/esm/src/guardrails/injection.js +259 -36
- package/esm/src/guardrails/labels.d.ts +40 -0
- package/esm/src/guardrails/labels.js +881 -0
- package/esm/src/guardrails/live-outbound-gate.d.ts +9 -8
- package/esm/src/guardrails/live-outbound-gate.js +100 -107
- package/esm/src/guardrails/mod.d.ts +30 -22
- package/esm/src/guardrails/mod.js +19 -14
- package/esm/src/guardrails/network.d.ts +4 -0
- package/esm/src/guardrails/network.js +21 -19
- package/esm/src/guardrails/normalize.d.ts +15 -1
- package/esm/src/guardrails/normalize.js +34 -1
- package/esm/src/guardrails/policy.d.ts +2 -17
- package/esm/src/guardrails/policy.js +12 -41
- package/esm/src/guardrails/progressive-yield.d.ts +65 -24
- package/esm/src/guardrails/progressive-yield.js +191 -147
- package/esm/src/guardrails/prompt-echo.d.ts +4 -2
- package/esm/src/guardrails/prompt-echo.js +87 -6
- package/esm/src/guardrails/quota.d.ts +4 -1
- package/esm/src/guardrails/quota.js +7 -2
- package/esm/src/guardrails/rules.d.ts +20 -29
- package/esm/src/guardrails/rules.js +23 -30
- package/esm/src/guardrails/sanitize.d.ts +32 -15
- package/esm/src/guardrails/sanitize.js +100 -124
- package/esm/src/guardrails/sensitive-groups.d.ts +21 -0
- package/esm/src/guardrails/sensitive-groups.js +12 -0
- package/esm/src/guardrails/sensitive.d.ts +16 -23
- package/esm/src/guardrails/sensitive.js +168 -47
- package/esm/src/guardrails/serialize.d.ts +1 -0
- package/esm/src/guardrails/testing.d.ts +4 -2
- package/esm/src/guardrails/testing.js +4 -2
- package/esm/src/guardrails/theorem-error.d.ts +5 -2
- package/esm/src/guardrails/theorem-error.js +6 -3
- package/esm/src/guardrails/thought-guard.d.ts +34 -13
- package/esm/src/guardrails/thought-guard.js +264 -64
- package/esm/src/guardrails/tool-directives.d.ts +29 -10
- package/esm/src/guardrails/tool-directives.js +133 -47
- package/esm/src/guardrails/tool-leak.d.ts +26 -0
- package/esm/src/guardrails/tool-leak.js +45 -0
- package/esm/src/guardrails/tool-result.d.ts +45 -14
- package/esm/src/guardrails/tool-result.js +94 -70
- package/esm/src/guardrails/types.d.ts +79 -71
- package/esm/src/guardrails/types.js +11 -7
- package/esm/src/host/client-turn.d.ts +29 -2
- package/esm/src/host/client-turn.js +46 -4
- package/esm/src/host/mint-trace.d.ts +1 -0
- package/esm/src/host/mint-trace.js +3 -2
- package/esm/src/host/mod.d.ts +2 -2
- package/esm/src/host/mod.js +1 -1
- package/esm/src/host/readStreamingJsonStringField.js +2 -43
- package/esm/src/host/reply.d.ts +6 -0
- package/esm/src/host/reply.js +8 -1
- package/esm/src/interface/blocks.d.ts +3 -0
- package/esm/src/interface/blocks.js +84 -14
- package/esm/src/interface/composer-actions.d.ts +4 -0
- package/esm/src/interface/composer-actions.js +5 -3
- package/esm/src/interface/draft.d.ts +6 -0
- package/esm/src/interface/draft.js +22 -11
- package/esm/src/interface/from-profile.d.ts +13 -1
- package/esm/src/interface/from-profile.js +66 -31
- package/esm/src/interface/history.d.ts +9 -3
- package/esm/src/interface/history.js +33 -24
- package/esm/src/interface/inputs.d.ts +1 -0
- package/esm/src/interface/inputs.js +3 -0
- package/esm/src/interface/mod.d.ts +4 -2
- package/esm/src/interface/mod.js +3 -2
- package/esm/src/interface/models.d.ts +7 -0
- package/esm/src/interface/models.js +5 -0
- package/esm/src/interface/pending.d.ts +9 -0
- package/esm/src/interface/pending.js +9 -3
- package/esm/src/interface/profile-interface.js +54 -40
- package/esm/src/interface/session.d.ts +12 -5
- package/esm/src/interface/session.js +17 -10
- package/esm/src/interface/stop.d.ts +13 -0
- package/esm/src/interface/stop.js +28 -0
- package/esm/src/interface/tool-calls.d.ts +14 -2
- package/esm/src/interface/tool-calls.js +64 -10
- package/esm/src/interface/tool-invoke.d.ts +2 -0
- package/esm/src/interface/tool-invoke.js +3 -1
- package/esm/src/interface/tool-media.d.ts +2 -0
- package/esm/src/interface/tool-media.js +2 -1
- package/esm/src/interface/types.d.ts +105 -40
- package/esm/src/interface/types.js +1 -0
- package/esm/src/kernel/api-catalog.d.ts +85 -0
- package/esm/src/kernel/api-catalog.js +229 -0
- package/esm/src/kernel/auth/crypto.d.ts +7 -2
- package/esm/src/kernel/auth/crypto.js +12 -10
- package/esm/src/kernel/auth/oauth.d.ts +2 -1
- package/esm/src/kernel/auth/oauth.js +23 -22
- package/esm/src/kernel/auth/typed-secret.js +2 -2
- package/esm/src/kernel/auth/types.d.ts +13 -0
- package/esm/src/kernel/checkpoint.d.ts +43 -0
- package/esm/src/kernel/checkpoint.js +58 -0
- package/esm/src/kernel/default-scope.d.ts +43 -5
- package/esm/src/kernel/default-scope.js +54 -5
- package/esm/src/kernel/engine/call-trace.d.ts +19 -0
- package/esm/src/kernel/engine/call-trace.js +29 -0
- package/esm/src/kernel/engine/compaction.d.ts +6 -5
- package/esm/src/kernel/engine/compaction.js +12 -11
- package/esm/src/kernel/engine/decision.d.ts +10 -8
- package/esm/src/kernel/engine/decision.js +174 -146
- package/esm/src/kernel/engine/embedding.d.ts +8 -0
- package/esm/src/kernel/engine/embedding.js +118 -0
- package/esm/src/kernel/engine/live-inbound.d.ts +14 -4
- package/esm/src/kernel/engine/live-inbound.js +36 -11
- package/esm/src/kernel/engine/live-ingress.d.ts +6 -0
- package/esm/src/kernel/engine/live-ingress.js +6 -1
- package/esm/src/kernel/engine/repair.js +12 -12
- package/esm/src/kernel/engine/runner/gates.d.ts +2 -2
- package/esm/src/kernel/engine/runner/gates.js +287 -101
- package/esm/src/kernel/engine/runner/mod.d.ts +19 -5
- package/esm/src/kernel/engine/runner/mod.js +107 -56
- package/esm/src/kernel/engine/runner/nested.d.ts +32 -0
- package/esm/src/kernel/engine/runner/nested.js +134 -0
- package/esm/src/kernel/engine/runner/schema-validation.d.ts +24 -3
- package/esm/src/kernel/engine/runner/schema-validation.js +78 -4
- package/esm/src/kernel/engine/runner/stages.d.ts +1 -1
- package/esm/src/kernel/engine/runner/stages.js +1 -8
- package/esm/src/kernel/engine/runner/state.d.ts +33 -12
- package/esm/src/kernel/engine/runner/state.js +11 -1
- package/esm/src/kernel/engine/runner/step-order.d.ts +27 -0
- package/esm/src/kernel/engine/runner/step-order.js +165 -0
- package/esm/src/kernel/engine/runner/steps.d.ts +2 -2
- package/esm/src/kernel/engine/runner/steps.js +329 -169
- package/esm/src/kernel/engine/runner/stream.d.ts +42 -11
- package/esm/src/kernel/engine/runner/stream.js +197 -46
- package/esm/src/kernel/engine/runner/usage.d.ts +5 -5
- package/esm/src/kernel/engine/runner/usage.js +12 -14
- package/esm/src/kernel/engine/session/mod.d.ts +8 -6
- package/esm/src/kernel/engine/session/mod.js +360 -129
- package/esm/src/kernel/engine/session/session-trace.d.ts +10 -10
- package/esm/src/kernel/engine/session/session-trace.js +41 -30
- package/esm/src/kernel/engine/token-estimate.d.ts +10 -64
- package/esm/src/kernel/engine/token-estimate.js +14 -194
- package/esm/src/kernel/engine/tool-trace.d.ts +3 -3
- package/esm/src/kernel/engine/tool-trace.js +2 -1
- package/esm/src/kernel/engine/turn-trace.d.ts +8 -7
- package/esm/src/kernel/engine/turn-trace.js +28 -36
- package/esm/src/kernel/engine/usage.d.ts +6 -0
- package/esm/src/kernel/engine/usage.js +17 -0
- package/esm/src/kernel/interaction-parts.d.ts +3 -0
- package/esm/src/kernel/interaction-parts.js +18 -0
- package/esm/src/kernel/json.d.ts +10 -0
- package/esm/src/kernel/json.js +3 -0
- package/esm/src/kernel/mod.d.ts +38 -11
- package/esm/src/kernel/mod.js +22 -7
- package/esm/src/kernel/profile-graph.d.ts +11 -6
- package/esm/src/kernel/profile-graph.js +14 -7
- package/esm/src/kernel/profile-presence.d.ts +10 -1
- package/esm/src/kernel/profile-presence.js +90 -75
- package/esm/src/kernel/profile-scope.d.ts +7 -3
- package/esm/src/kernel/profile-scope.js +67 -55
- package/esm/src/kernel/protocols/binding.d.ts +65 -0
- package/esm/src/kernel/protocols/binding.js +125 -0
- package/esm/src/kernel/protocols/limits.d.ts +15 -0
- package/esm/src/kernel/protocols/limits.js +28 -0
- package/esm/src/kernel/protocols/mod.d.ts +5 -0
- package/esm/src/kernel/protocols/mod.js +5 -0
- package/esm/src/kernel/protocols/prices.d.ts +36 -0
- package/esm/src/kernel/protocols/prices.js +37 -0
- package/esm/src/kernel/protocols/protocol.d.ts +253 -0
- package/esm/src/kernel/protocols/protocol.js +253 -0
- package/esm/src/kernel/protocols/provider.d.ts +108 -0
- package/esm/src/kernel/protocols/provider.js +143 -0
- package/esm/src/kernel/protocols/runtime.d.ts +55 -0
- package/esm/src/kernel/protocols/runtime.js +534 -0
- package/esm/src/kernel/provider-budget.d.ts +32 -0
- package/esm/src/kernel/provider-budget.js +262 -0
- package/esm/src/kernel/provider-dispatch.d.ts +13 -0
- package/esm/src/kernel/provider-dispatch.js +36 -0
- package/esm/src/kernel/provider-live.d.ts +7 -0
- package/esm/src/kernel/provider-live.js +189 -0
- package/esm/src/kernel/provider-runtime.d.ts +57 -0
- package/esm/src/kernel/provider-runtime.js +524 -0
- package/esm/src/kernel/registry/attachments.d.ts +15 -4
- package/esm/src/kernel/registry/attachments.js +31 -22
- package/esm/src/kernel/registry/catalog.d.ts +6 -0
- package/esm/src/kernel/registry/catalog.js +9 -2
- package/esm/src/kernel/registry/embedding-rules.d.ts +28 -0
- package/esm/src/kernel/registry/embedding-rules.js +66 -0
- package/esm/src/kernel/registry/ingress.d.ts +6 -2
- package/esm/src/kernel/registry/ingress.js +55 -10
- package/esm/src/kernel/registry/kernel-registry.d.ts +3 -0
- package/esm/src/kernel/registry/kernel-registry.js +9 -2
- package/esm/src/kernel/registry/profile-outputs.js +4 -1
- package/esm/src/kernel/registry/profiles.d.ts +38 -14
- package/esm/src/kernel/registry/profiles.js +280 -205
- package/esm/src/kernel/registry/provider-request.d.ts +3 -3
- package/esm/src/kernel/registry/provider-request.js +5 -13
- package/esm/src/kernel/registry/resolve.d.ts +4 -1
- package/esm/src/kernel/registry/resolve.js +59 -58
- package/esm/src/kernel/registry/schemas.d.ts +3 -0
- package/esm/src/kernel/registry/schemas.js +3 -1
- package/esm/src/kernel/registry/slot-fill.d.ts +7 -0
- package/esm/src/kernel/registry/slot-fill.js +22 -0
- package/esm/src/kernel/registry/system-prompt.js +7 -8
- package/esm/src/kernel/registry/vault.d.ts +14 -13
- package/esm/src/kernel/registry/vault.js +1 -14
- package/esm/src/kernel/schema.d.ts +100 -46
- package/esm/src/kernel/schema.js +499 -257
- package/esm/src/kernel/scope.d.ts +12 -5
- package/esm/src/kernel/scope.js +23 -3
- package/esm/src/kernel/stages.d.ts +38 -3
- package/esm/src/kernel/stages.js +82 -39
- package/esm/src/kernel/stop.d.ts +29 -6
- package/esm/src/kernel/stop.js +16 -4
- package/esm/src/kernel/system-parts.js +6 -6
- package/esm/src/kernel/tools/activity-label.d.ts +12 -6
- package/esm/src/kernel/tools/activity-label.js +258 -32
- package/esm/src/kernel/tools/agent.d.ts +66 -0
- package/esm/src/kernel/tools/agent.js +212 -0
- package/esm/src/kernel/tools/coordinate.d.ts +4 -0
- package/esm/src/kernel/tools/coordinate.js +165 -0
- package/esm/src/kernel/tools/events.d.ts +21 -6
- package/esm/src/kernel/tools/events.js +53 -18
- package/esm/src/kernel/tools/execute.d.ts +47 -11
- package/esm/src/kernel/tools/execute.js +508 -136
- package/esm/src/kernel/tools/gate-answer.d.ts +12 -2
- package/esm/src/kernel/tools/gate-answer.js +17 -6
- package/esm/src/kernel/tools/handler-events.d.ts +45 -0
- package/esm/src/kernel/tools/handler-events.js +106 -0
- package/esm/src/kernel/tools/harness.d.ts +1 -0
- package/esm/src/kernel/tools/harness.js +2 -1
- package/esm/src/kernel/tools/http-limit.d.ts +27 -0
- package/esm/src/kernel/tools/http-limit.js +85 -0
- package/esm/src/kernel/tools/invoke.d.ts +27 -5
- package/esm/src/kernel/tools/invoke.js +223 -70
- package/esm/src/kernel/tools/mcp-sessions.d.ts +4 -1
- package/esm/src/kernel/tools/mcp-sessions.js +13 -8
- package/esm/src/kernel/tools/mod.d.ts +4 -3
- package/esm/src/kernel/tools/mod.js +3 -2
- package/esm/src/kernel/tools/model-text.d.ts +10 -5
- package/esm/src/kernel/tools/model-text.js +18 -12
- package/esm/src/kernel/tools/operation.d.ts +76 -0
- package/esm/src/kernel/tools/operation.js +100 -0
- package/esm/src/kernel/tools/page-answer.d.ts +8 -0
- package/esm/src/kernel/tools/page-answer.js +19 -0
- package/esm/src/kernel/tools/permission.d.ts +11 -2
- package/esm/src/kernel/tools/permission.js +12 -12
- package/esm/src/kernel/tools/project.d.ts +4 -1
- package/esm/src/kernel/tools/project.js +32 -2
- package/esm/src/kernel/tools/registry.d.ts +9 -2
- package/esm/src/kernel/tools/registry.js +69 -10
- package/esm/src/kernel/tools/remote.d.ts +40 -6
- package/esm/src/kernel/tools/remote.js +219 -92
- package/esm/src/kernel/tools/resolve.d.ts +3 -0
- package/esm/src/kernel/tools/resolve.js +12 -4
- package/esm/src/kernel/tools/run.d.ts +28 -0
- package/esm/src/kernel/tools/run.js +86 -0
- package/esm/src/kernel/tools/schema.d.ts +3 -3
- package/esm/src/kernel/tools/schema.js +21 -100
- package/esm/src/kernel/tools/signed-in-fetch.d.ts +2 -1
- package/esm/src/kernel/tools/signed-in-fetch.js +3 -3
- package/esm/src/kernel/tools/stage-run.d.ts +27 -4
- package/esm/src/kernel/tools/stage-run.js +75 -17
- package/esm/src/kernel/tools/types.d.ts +235 -25
- package/esm/src/kernel/tools/unchecked-output.d.ts +14 -0
- package/esm/src/kernel/tools/unchecked-output.js +18 -0
- package/esm/src/kernel/turn-events.d.ts +208 -31
- package/esm/src/kernel/turn-events.js +127 -9
- package/esm/src/kernel/types.d.ts +302 -161
- package/esm/src/kernel/util/base64.d.ts +2 -0
- package/esm/src/kernel/util/base64.js +2 -0
- package/esm/src/kernel/util/partial-json.d.ts +23 -0
- package/esm/src/kernel/util/partial-json.js +128 -0
- package/esm/src/kernel/util/record.d.ts +1 -0
- package/esm/src/kernel/util/record.js +1 -0
- package/esm/src/observability/destinations.d.ts +5 -0
- package/esm/src/observability/destinations.js +7 -2
- package/esm/src/observability/jsonl.d.ts +2 -2
- package/esm/src/observability/jsonl.js +15 -22
- package/esm/src/observability/mod.d.ts +3 -3
- package/esm/src/observability/mod.js +2 -2
- package/esm/src/observability/openinference.d.ts +1 -1
- package/esm/src/observability/openinference.js +3 -3
- package/esm/src/observability/otlp.d.ts +3 -0
- package/esm/src/observability/otlp.js +3 -3
- package/esm/src/observability/phoenix.d.ts +1 -0
- package/esm/src/observability/policy.d.ts +3 -0
- package/esm/src/observability/policy.js +5 -1
- package/esm/src/observability/resolve-policy.js +11 -5
- package/esm/src/observability/spans.d.ts +8 -2
- package/esm/src/observability/spans.js +21 -5
- package/esm/src/observability/trace-catalog.d.ts +19 -2
- package/esm/src/observability/trace-catalog.js +130 -88
- package/esm/src/observability/trace-record.js +22 -17
- package/esm/src/observability/trace-schema.d.ts +3 -0
- package/esm/src/observability/trace-schema.js +1 -1
- package/esm/src/observability/trace-sink.d.ts +1 -0
- package/esm/src/observability/trace-sink.js +1 -1
- package/esm/src/observability/trace-span.d.ts +7 -1
- package/esm/src/observability/trace-span.js +3 -1
- package/esm/src/observability/trace.d.ts +2 -0
- package/esm/src/observability/trace.js +4 -2
- package/esm/src/observability/types.d.ts +35 -11
- package/esm/src/observability/types.js +1 -1
- package/esm/src/presets/google/speech-voices.d.ts +1 -0
- package/esm/src/presets/google-limits.d.ts +1 -0
- package/esm/src/presets/google.d.ts +27 -12
- package/esm/src/presets/google.js +34 -25
- package/esm/src/presets/local.d.ts +26 -0
- package/esm/src/presets/local.js +30 -0
- package/esm/src/presets/mod.d.ts +5 -4
- package/esm/src/presets/mod.js +4 -4
- package/esm/src/presets/openrouter.d.ts +14 -1
- package/esm/src/presets/openrouter.js +19 -1
- package/esm/src/providers/embedding-limits.d.ts +7 -0
- package/esm/src/providers/embedding-limits.js +12 -0
- package/esm/src/providers/gemini/embedding-protocol.d.ts +8 -0
- package/esm/src/providers/gemini/embedding-protocol.js +125 -0
- package/esm/src/providers/gemini/interactions-protocol.d.ts +8 -0
- package/esm/src/providers/gemini/interactions-protocol.js +102 -0
- package/esm/src/providers/gemini/live-protocol.d.ts +3 -0
- package/esm/src/providers/gemini/live-protocol.js +191 -0
- package/esm/src/providers/gemini/prices.d.ts +3 -0
- package/esm/src/providers/gemini/prices.js +63 -0
- package/esm/src/providers/gemini/provider.d.ts +7 -0
- package/esm/src/providers/gemini/provider.js +39 -0
- package/esm/src/providers/google/api-error.d.ts +2 -0
- package/esm/src/providers/google/api-error.js +26 -18
- package/esm/src/providers/google/builtins.d.ts +14 -0
- package/esm/src/providers/google/builtins.js +57 -0
- package/esm/src/providers/google/grounding.d.ts +4 -4
- package/esm/src/providers/google/interactions/framing.d.ts +20 -8
- package/esm/src/providers/google/interactions/framing.js +85 -44
- package/esm/src/providers/google/interactions/steps.d.ts +5 -5
- package/esm/src/providers/google/interactions/steps.js +4 -4
- package/esm/src/providers/google/interactions/stream.d.ts +10 -11
- package/esm/src/providers/google/interactions/stream.js +33 -100
- package/esm/src/providers/google/live/framing.d.ts +15 -5
- package/esm/src/providers/google/live/framing.js +25 -25
- package/esm/src/providers/google/live/stream.d.ts +6 -44
- package/esm/src/providers/google/live/stream.js +4 -210
- package/esm/src/providers/google/urls.d.ts +1 -3
- package/esm/src/providers/google/urls.js +1 -3
- package/esm/src/providers/google/usage.js +2 -2
- package/esm/src/providers/live.d.ts +6 -0
- package/esm/src/providers/live.js +6 -0
- package/esm/src/providers/local/embedding-protocol.d.ts +7 -0
- package/esm/src/providers/local/embedding-protocol.js +60 -0
- package/esm/src/providers/local/provider.d.ts +7 -0
- package/esm/src/providers/local/provider.js +28 -0
- package/esm/src/providers/mod.d.ts +28 -7
- package/esm/src/providers/mod.js +19 -3
- package/esm/src/providers/open-ai/protocol.d.ts +3 -0
- package/esm/src/providers/open-ai/protocol.js +189 -0
- package/esm/src/providers/openrouter/embedding-protocol.d.ts +6 -0
- package/esm/src/providers/openrouter/embedding-protocol.js +86 -0
- package/esm/src/providers/openrouter/image.d.ts +0 -9
- package/esm/src/providers/openrouter/image.js +0 -153
- package/esm/src/providers/openrouter/images-protocol.d.ts +3 -0
- package/esm/src/providers/openrouter/images-protocol.js +82 -0
- package/esm/src/providers/openrouter/openai/compat.d.ts +2 -2
- package/esm/src/providers/openrouter/openai/compat.js +6 -6
- package/esm/src/providers/openrouter/openai/image-payload.d.ts +2 -2
- package/esm/src/providers/openrouter/openai/reasoning-state.d.ts +2 -0
- package/esm/src/providers/openrouter/openai/reasoning-state.js +31 -0
- package/esm/src/providers/openrouter/protocol.d.ts +8 -0
- package/esm/src/providers/openrouter/protocol.js +171 -0
- package/esm/src/providers/openrouter/provider.d.ts +10 -0
- package/esm/src/providers/openrouter/provider.js +50 -0
- package/esm/src/providers/shared/carried-tool-files.d.ts +7 -0
- package/esm/src/providers/shared/carried-tool-files.js +43 -0
- package/esm/src/providers/shared/pcm.js +2 -2
- package/esm/src/providers/shared/protocol-events.d.ts +8 -0
- package/esm/src/providers/shared/protocol-events.js +20 -0
- package/esm/src/providers/shared/response-identity.d.ts +2 -2
- package/esm/src/providers/shared/retry.d.ts +18 -0
- package/esm/src/providers/shared/retry.js +89 -0
- package/esm/src/providers/shared/sse.d.ts +0 -4
- package/esm/src/providers/shared/sse.js +50 -36
- package/esm/src/providers/shared/tool-args.d.ts +6 -7
- package/esm/src/providers/shared/tool-args.js +10 -6
- package/esm/src/providers/shared/tool-draft.d.ts +16 -0
- package/esm/src/providers/shared/tool-draft.js +14 -0
- package/esm/src/providers/shared/upstream-tap.d.ts +2 -2
- package/esm/src/providers/shared/upstream-tape.js +1 -1
- package/esm/src/providers/system-one/protocol.d.ts +8 -0
- package/esm/src/providers/system-one/protocol.js +93 -0
- package/esm/src/providers/types.d.ts +48 -16
- package/esm/src/providers/types.js +2 -1
- package/esm/src/providers/typesafe/provider.d.ts +7 -0
- package/esm/src/providers/typesafe/provider.js +24 -0
- package/esm/src/surface/formats.d.ts +19 -1
- package/esm/src/surface/formats.js +68 -29
- package/esm/src/surface/mod.d.ts +4 -2
- package/esm/src/surface/mod.js +4 -2
- package/esm/src/surface/runtime.d.ts +4 -0
- package/esm/src/surface/runtime.js +2 -0
- package/esm/src/surface/tools.d.ts +2 -8
- package/esm/src/surface/tools.js +4 -22
- package/esm/src/surface/types.d.ts +6 -0
- package/package.json +5 -13
- package/esm/src/cli/commands/egress-compile.d.ts +0 -17
- package/esm/src/cli/commands/egress-compile.js +0 -25
- package/esm/src/guardrails/egress-policy.d.ts +0 -27
- package/esm/src/guardrails/egress-policy.js +0 -76
- package/esm/src/guardrails/egress-rules.d.ts +0 -54
- package/esm/src/guardrails/egress-rules.js +0 -49
- package/esm/src/guardrails/lexicon.d.ts +0 -30
- package/esm/src/guardrails/lexicon.js +0 -478
- package/esm/src/kernel/engine/media-probe/audio.d.ts +0 -7
- package/esm/src/kernel/engine/media-probe/audio.js +0 -342
- package/esm/src/kernel/engine/media-probe/bytes.d.ts +0 -6
- package/esm/src/kernel/engine/media-probe/bytes.js +0 -26
- package/esm/src/kernel/engine/media-probe/image.d.ts +0 -5
- package/esm/src/kernel/engine/media-probe/image.js +0 -171
- package/esm/src/kernel/engine/media-probe/iso-bmff.d.ts +0 -19
- package/esm/src/kernel/engine/media-probe/iso-bmff.js +0 -48
- package/esm/src/kernel/engine/media-probe/matroska.d.ts +0 -35
- package/esm/src/kernel/engine/media-probe/matroska.js +0 -226
- package/esm/src/kernel/engine/media-probe/mp4.d.ts +0 -22
- package/esm/src/kernel/engine/media-probe/mp4.js +0 -279
- package/esm/src/kernel/engine/media-probe/opus.d.ts +0 -4
- package/esm/src/kernel/engine/media-probe/opus.js +0 -23
- package/esm/src/kernel/engine/media-probe/pdf.d.ts +0 -5
- package/esm/src/kernel/engine/media-probe/pdf.js +0 -117
- package/esm/src/kernel/engine/media-probe/video.d.ts +0 -15
- package/esm/src/kernel/engine/media-probe/video.js +0 -49
- package/esm/src/presets/typesafe.d.ts +0 -2
- package/esm/src/presets/typesafe.js +0 -2
- package/esm/src/providers/create-provider.d.ts +0 -21
- package/esm/src/providers/create-provider.js +0 -90
- package/esm/src/providers/decision/usage.d.ts +0 -3
- package/esm/src/providers/decision/usage.js +0 -25
- package/esm/src/providers/google/interactions/mod.d.ts +0 -2
- package/esm/src/providers/google/interactions/mod.js +0 -2
- package/esm/src/providers/google/keys.d.ts +0 -20
- package/esm/src/providers/google/keys.js +0 -87
- package/esm/src/providers/google/live/mod.d.ts +0 -7
- package/esm/src/providers/google/live/mod.js +0 -7
- package/esm/src/providers/google/live/openapi-schema.d.ts +0 -1
- package/esm/src/providers/google/live/openapi-schema.js +0 -42
- package/esm/src/providers/google/live/session.d.ts +0 -14
- package/esm/src/providers/google/live/session.js +0 -150
- package/esm/src/providers/local/local.d.ts +0 -12
- package/esm/src/providers/local/local.js +0 -186
- package/esm/src/providers/local/mod.d.ts +0 -8
- package/esm/src/providers/local/mod.js +0 -8
- package/esm/src/providers/openrouter/cache-control.d.ts +0 -5
- package/esm/src/providers/openrouter/cache-control.js +0 -4
- package/esm/src/providers/openrouter/chat.d.ts +0 -64
- package/esm/src/providers/openrouter/chat.js +0 -490
- package/esm/src/providers/openrouter/openai/sdk-messages.d.ts +0 -10
- package/esm/src/providers/openrouter/openai/sdk-messages.js +0 -99
- package/esm/src/providers/openrouter/resolve-api-key.d.ts +0 -3
- package/esm/src/providers/openrouter/resolve-api-key.js +0 -8
- package/esm/src/providers/openrouter/speech.d.ts +0 -18
- package/esm/src/providers/openrouter/speech.js +0 -109
- package/esm/src/providers/probe.d.ts +0 -5
- package/esm/src/providers/probe.js +0 -15
- package/esm/src/providers/shared/builtin-wire.d.ts +0 -4
- package/esm/src/providers/shared/builtin-wire.js +0 -9
- package/esm/src/providers/shared/vault.d.ts +0 -13
- package/esm/src/providers/shared/vault.js +0 -41
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import type { z } from 'zod';
|
|
2
|
+
import type { TurnDestinations } from '../../guardrails/destinations.js';
|
|
2
3
|
import type { ResolveHost } from '../../guardrails/network.js';
|
|
3
4
|
import type { GuardrailHit, Provenance, TurnTaint } from '../../guardrails/types.js';
|
|
4
5
|
import type { ToolCredentialSource } from '../auth/credential-source.js';
|
|
5
6
|
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';
|
|
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';
|
|
9
13
|
export type { AuthUnauthenticatedPolicy, HttpMethod, ToolAccess, ToolAuthType, ToolCallEdit, ToolCallEvent, ToolCallRequest, ToolFailure, ToolGate, ToolPermission, ToolPhaseEvent, ToolTraceStep, ToolWarning, TurnToolSnapshot, WireFunctionTool, };
|
|
10
14
|
export interface ToolLabels {
|
|
11
|
-
activity?:
|
|
12
|
-
activityPast?:
|
|
15
|
+
activity?: LabelTemplate;
|
|
16
|
+
activityPast?: LabelTemplate;
|
|
17
|
+
activityFailed?: LabelTemplate;
|
|
18
|
+
request?: LabelTemplate;
|
|
13
19
|
hiddenFromSettings?: boolean;
|
|
14
20
|
}
|
|
15
21
|
export interface ToolBase {
|
|
@@ -22,19 +28,20 @@ export interface ToolBase {
|
|
|
22
28
|
permission: ToolPermission;
|
|
23
29
|
labels?: ToolLabels;
|
|
24
30
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
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
|
+
*/
|
|
30
35
|
export interface BuiltinToolDef extends ToolBase {
|
|
31
36
|
type: 'builtin';
|
|
32
|
-
wire: BuiltinWire;
|
|
33
37
|
conflictsWith?: string[];
|
|
34
38
|
}
|
|
39
|
+
/** How a held tool call resumes: approved, refused, or retried after sign-in. */
|
|
35
40
|
export interface InvokeToolResume {
|
|
41
|
+
gateKind?: ToolGateKind;
|
|
36
42
|
/**
|
|
37
|
-
* `true`
|
|
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.
|
|
38
45
|
* `false` settles as a refusal with no body; omitted is a first attempt or an auth retry.
|
|
39
46
|
*/
|
|
40
47
|
granted?: boolean;
|
|
@@ -44,8 +51,8 @@ export interface InvokeToolResume {
|
|
|
44
51
|
*/
|
|
45
52
|
cause?: ToolResumeCause;
|
|
46
53
|
/**
|
|
47
|
-
*
|
|
48
|
-
* note for its cause
|
|
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`.
|
|
49
56
|
*/
|
|
50
57
|
signIn?: boolean;
|
|
51
58
|
/** The user edited the arguments before approving; `from` is the model's proposed input. */
|
|
@@ -53,21 +60,46 @@ export interface InvokeToolResume {
|
|
|
53
60
|
from: Record<string, unknown>;
|
|
54
61
|
};
|
|
55
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
|
+
};
|
|
56
78
|
export interface ToolContext {
|
|
57
79
|
profile: Profile;
|
|
58
80
|
callId: string;
|
|
81
|
+
readonly operationId: string;
|
|
59
82
|
sessionPermissions?: string[];
|
|
60
83
|
path?: string;
|
|
61
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
|
+
*/
|
|
62
89
|
turn?: {
|
|
63
90
|
step: number;
|
|
64
91
|
taint?: TurnTaint;
|
|
92
|
+
destinations?: TurnDestinations;
|
|
93
|
+
visible?: readonly ToolId[];
|
|
65
94
|
};
|
|
66
95
|
resume?: InvokeToolResume;
|
|
67
96
|
credentials?: ToolCredentialSource;
|
|
68
97
|
resolveHost?: ResolveHost;
|
|
69
98
|
/** Opaque application context from `TurnRequest.host` / `InvokeToolRequest.host`; the kernel never reads it. */
|
|
70
99
|
host?: unknown;
|
|
100
|
+
/** The page's answer to this call, for a tool with `answeredBy: 'page'`. */
|
|
101
|
+
page?: PageAnswer;
|
|
102
|
+
pageExecution?: PageToolExecution;
|
|
71
103
|
/** W3C `traceparent` of this call's `execute_tool` span; parent a tool's own outbound spans on it. */
|
|
72
104
|
traceparent?: string;
|
|
73
105
|
/** Set for a function tool with `auth` once its credential resolved: requests carrying it. */
|
|
@@ -89,6 +121,14 @@ export type SignedInFetch = (url: string | URL, request?: SignedInRequest) => Pr
|
|
|
89
121
|
export type ToolStreamEvent<TOut = unknown> = {
|
|
90
122
|
kind: 'progress';
|
|
91
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;
|
|
92
132
|
} | {
|
|
93
133
|
kind: 'trace';
|
|
94
134
|
step: ToolTraceStep;
|
|
@@ -102,7 +142,7 @@ export type ToolStreamEvent<TOut = unknown> = {
|
|
|
102
142
|
kind: 'complete';
|
|
103
143
|
output: TOut;
|
|
104
144
|
};
|
|
105
|
-
export type SyncToolHandler<TIn, TOut> = (input: TIn, ctx: ToolContext) => TOut | Promise<TOut>;
|
|
145
|
+
export type SyncToolHandler<TIn, TOut> = (input: TIn, ctx: ToolContext) => TOut | UncheckedOutput | Promise<TOut | UncheckedOutput>;
|
|
106
146
|
export type StreamToolHandler<TIn, TOut> = (input: TIn, ctx: ToolContext) => AsyncGenerator<ToolStreamEvent<TOut>>;
|
|
107
147
|
export type ToolHandler<TIn, TOut> = SyncToolHandler<TIn, TOut> | StreamToolHandler<TIn, TOut>;
|
|
108
148
|
/**
|
|
@@ -124,7 +164,13 @@ export interface FunctionToolDef<TIn = unknown, TOut = unknown> extends ToolBase
|
|
|
124
164
|
type: 'function';
|
|
125
165
|
input: z.ZodType<TIn>;
|
|
126
166
|
output: z.ZodType<TOut>;
|
|
127
|
-
|
|
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';
|
|
128
174
|
/**
|
|
129
175
|
* The service the handler acts on for the person. The kernel resolves the slot
|
|
130
176
|
* before the handler runs (gating, refreshing, or telling the model as the policy
|
|
@@ -132,7 +178,7 @@ export interface FunctionToolDef<TIn = unknown, TOut = unknown> extends ToolBase
|
|
|
132
178
|
*/
|
|
133
179
|
auth?: ToolAuthConfig;
|
|
134
180
|
}
|
|
135
|
-
/** How a tool that acts for the person signs in to the service; http, mcp and function tools share it. */
|
|
181
|
+
/** How a tool that acts for the person signs in to the service; http, mcp, and function tools share it. */
|
|
136
182
|
export interface ToolAuthConfig {
|
|
137
183
|
slot: string;
|
|
138
184
|
type: ToolAuthType;
|
|
@@ -140,6 +186,12 @@ export interface ToolAuthConfig {
|
|
|
140
186
|
service: string;
|
|
141
187
|
headerName?: string;
|
|
142
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;
|
|
143
195
|
onUnauthenticated?: AuthUnauthenticatedPolicy;
|
|
144
196
|
/** Named on the auth gate for the host's OAuth flow. */
|
|
145
197
|
preResolved?: Partial<OAuthEndpoints & {
|
|
@@ -162,6 +214,19 @@ export interface HttpToolDef<TIn = unknown, TOut = unknown> extends ToolBase, To
|
|
|
162
214
|
queryParams?: string[];
|
|
163
215
|
bodyParam?: string;
|
|
164
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;
|
|
165
230
|
}
|
|
166
231
|
export interface McpToolDef<TIn = unknown, TOut = unknown> extends ToolBase, ToolHostHooks<TIn>, ToolOutputHooks<TOut> {
|
|
167
232
|
type: 'mcp';
|
|
@@ -172,21 +237,115 @@ export interface McpToolDef<TIn = unknown, TOut = unknown> extends ToolBase, Too
|
|
|
172
237
|
headers?: Record<string, string>;
|
|
173
238
|
auth?: ToolAuthConfig;
|
|
174
239
|
}
|
|
175
|
-
|
|
176
|
-
|
|
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'> & {
|
|
177
328
|
input: z.ZodType<TIn>;
|
|
178
329
|
output: z.ZodType<TOut>;
|
|
179
|
-
}
|
|
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'> & {
|
|
180
338
|
input: z.ZodType<TIn>;
|
|
181
339
|
output: z.ZodType<TOut>;
|
|
182
340
|
}) | (Omit<McpToolDef<TIn, TOut>, 'inputSchema' | 'outputSchema'> & {
|
|
183
341
|
input: z.ZodType<TIn>;
|
|
184
342
|
output: z.ZodType<TOut>;
|
|
185
|
-
});
|
|
343
|
+
}) | AgentToolDef;
|
|
186
344
|
export interface PromoteLoadedResult {
|
|
187
345
|
promoted: ToolId[];
|
|
188
346
|
failure?: ToolFailure;
|
|
189
347
|
}
|
|
348
|
+
/** What a tool's loader is told: the profile, the input, and the path. */
|
|
190
349
|
export interface ToolLoadContext {
|
|
191
350
|
profile: Profile;
|
|
192
351
|
input?: TurnInput;
|
|
@@ -197,9 +356,13 @@ export interface ToolLoadContext {
|
|
|
197
356
|
/** Opaque application context from `TurnRequest.host`; the kernel never reads it. */
|
|
198
357
|
host?: unknown;
|
|
199
358
|
}
|
|
200
|
-
/** Picks which
|
|
359
|
+
/** Picks which allowed T2 tools to load at turn start. */
|
|
201
360
|
export type ToolPolicy = (ctx: ToolLoadContext) => ToolId[] | Promise<ToolId[]>;
|
|
361
|
+
/** A request to run a held tool call outside a turn. */
|
|
202
362
|
export interface InvokeToolRequest {
|
|
363
|
+
execution?: ToolExecutionCoordinator;
|
|
364
|
+
/** invariant: Only the trusted host restores the kernel-issued identity from saved authority. */
|
|
365
|
+
operationId?: string;
|
|
203
366
|
profile: string;
|
|
204
367
|
name: string;
|
|
205
368
|
/**
|
|
@@ -224,6 +387,9 @@ export interface InvokeToolRequest {
|
|
|
224
387
|
signal?: AbortSignal;
|
|
225
388
|
/** Handed to the tool as `ctx.host`; the kernel never reads it. */
|
|
226
389
|
host?: unknown;
|
|
390
|
+
/** The page's answer, when this invoke answers a `page` gate. */
|
|
391
|
+
page?: PageAnswer;
|
|
392
|
+
pageExecution?: PageToolExecution;
|
|
227
393
|
/** W3C `traceparent` of the host span this invoke runs under. */
|
|
228
394
|
traceparent?: string;
|
|
229
395
|
/** Recorded as `gen_ai.conversation.id`. */
|
|
@@ -233,24 +399,68 @@ export interface InvokeToolRequest {
|
|
|
233
399
|
links?: TurnTraceLink[];
|
|
234
400
|
/** Receives `pre_tool` / `post_tool` only. */
|
|
235
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;
|
|
236
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. */
|
|
237
428
|
export interface ProfileToolsSpec {
|
|
238
429
|
/** Custom tools only; builtins live on `models.*.builtInTools`. */
|
|
239
430
|
allow: ToolId[];
|
|
240
|
-
/** Returns
|
|
431
|
+
/** Returns ids already allowed with `loadTier: 'T2'` to load at turn start. Not supported on `type: 'live'`. */
|
|
241
432
|
t1Policy?: ToolPolicy;
|
|
242
|
-
/**
|
|
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
|
+
*/
|
|
243
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;
|
|
244
443
|
}
|
|
245
444
|
/** Live declarations cannot be added mid-session, so every allowed tool is wired at setup as if T0. */
|
|
246
445
|
export interface LiveProfileToolsSpec {
|
|
247
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;
|
|
248
453
|
}
|
|
249
454
|
/** Every id in `allow` is invokable with no visibility tiers and no path gating. */
|
|
250
455
|
export interface HostProfileToolsSpec {
|
|
251
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;
|
|
252
462
|
}
|
|
253
|
-
/** Every transport returns this; one settlement projects, guards and runs `post_tool`. */
|
|
463
|
+
/** Every transport returns this; one settlement projects, guards, and runs `post_tool`. */
|
|
254
464
|
export type ToolBodyOutcome = {
|
|
255
465
|
kind: 'ok';
|
|
256
466
|
outputRaw: unknown;
|
|
@@ -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
|
+
}
|