@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
package/esm/mod.d.ts
CHANGED
|
@@ -12,16 +12,19 @@ export { describeError, ERROR_KINDS, errorKind, isAbortError, publicError, Theor
|
|
|
12
12
|
export { errorCopiesSchema, errorKindSchema, guardrailEventSchema, } from './src/guardrails/event-schemas.js';
|
|
13
13
|
export { guardrailFromHits, guardrailFromVerdict, guardrailTurnEvent, projectGuardrailTurnEvent, } from './src/guardrails/events.js';
|
|
14
14
|
export { hitFromSpan, projectGuardrailEvent, } from './src/guardrails/hits.js';
|
|
15
|
-
export type {
|
|
16
|
-
export {
|
|
17
|
-
export type { AdvisoryLevel,
|
|
18
|
-
export { ADVISORY_LEVELS, abortLiveOutboundTurn, bindCanary,
|
|
15
|
+
export type { ClientLabelKey, LabelKey, LabelOverrides, LabelParams, } from './src/guardrails/labels.js';
|
|
16
|
+
export { CLIENT_LABEL_KEYS, LABEL_KEYS, labelDefault, labelText, overrideLabels, resetLabels, } from './src/guardrails/labels.js';
|
|
17
|
+
export type { AdvisoryLevel, BlockedReplyOnBlock, BlockedReplySpec, CanaryGateResult, CanaryGateSession, CanaryStreamGate, DestinationGate, DestinationVerdict, Directive, DirectiveSignal, GivenUrls, GuardedToolText, GuardrailAction, GuardrailContext, GuardrailEvent, GuardrailHit, GuardrailStage, HostGuardrailsSpec, InspectedToolArguments, LiveHeldOutput, LiveOutboundBatchResult, LiveOutboundGateSession, NameAllow, NetworkGuardrailSpec, OutboundPayload, ProfileGuardrailsSpec, ProgressiveYieldGate, ProgressiveYieldGateOptions, ProgressiveYieldResult, Provenance, QuotaGuardrailSpec, ResolvedGuardrailPolicy, ScanText, SensitiveGroup, SensitiveSelection, SensitiveSwitches, Severity, TaintGate, TaintGuardrailSpec, ToolOrigin, TrustLevel, TurnDestinations, TurnTaint, UrlAllow, Verdict, } from './src/guardrails/mod.js';
|
|
18
|
+
export { ADVISORY_LEVELS, abortLiveOutboundTurn, addGivenDestinations, addHistoryDestinations, addRequestDestinations, addResultDestinations, BLOCKED_REPLY_ON_BLOCK, bindCanary, checkDestinationGate, checkTaintGate, composeToolText, createCanaryGateSession, createCanaryStreamGate, createLiveOutboundGateSession, createOutboundProgressiveGate, createProgressiveYieldGate, DESTINATION_GATES, DIRECTIVE_SIGNALS, directives, EGRESS_RULES, eventHasCanary, filterCanaryGatedEvents, finalizeLiveOutboundTurn, GUARDRAIL_STAGES, guardToolFailureText, guardToolResult, hitRules, inspectToolArguments, isRemoteOrigin, isSuspicious, isTainted, mintCanary, OMIT_CANARY, processLiveOutboundBatch, recordTaint, redactCanary, resolveGuardrailPolicy, SEVERITIES, scanTextForCanaryLeak, scanTextOf, TAINT_GATES, TOOL_CLOSE, TOOL_ORIGINS, TRUST_LEVELS, textForScan, toolCallEvent, turnDestinations, wrapToolData, wrapUserData, } from './src/guardrails/mod.js';
|
|
19
19
|
export type { DnsOverHttpsOptions, GuardedFetchOptions, ResolveHost, } from './src/guardrails/network.js';
|
|
20
20
|
export { assertSafeUrl, dnsOverHttpsResolver, fetchGuarded, isLocalhostName, isPrivateOrLocalAddress, } from './src/guardrails/network.js';
|
|
21
21
|
export type { QuotaSlotStatus } from './src/guardrails/quota.js';
|
|
22
|
-
export { clientIp, quotaExhausted, releaseSlot, resetSlots, skipQuota, takeSlot, } from './src/guardrails/quota.js';
|
|
23
|
-
export {
|
|
24
|
-
export {
|
|
22
|
+
export { clientIp, quotaBusy, quotaExhausted, releaseSlot, resetSlots, skipQuota, takeSlot, } from './src/guardrails/quota.js';
|
|
23
|
+
export type { SanitizedTurnRequest } from './src/guardrails/sanitize.js';
|
|
24
|
+
export { sanitizeProjectId, sanitizeTurnRequest, sanitizeTurnRequestWithEvents, } from './src/guardrails/sanitize.js';
|
|
25
|
+
export type { ProviderStateRebuilt } from './src/kernel/checkpoint.js';
|
|
26
|
+
export { historyHash, providerCheckpointSchema, providerContinuationSchema, providerWarningSchema, } from './src/kernel/checkpoint.js';
|
|
27
|
+
export { clearProfiles, compactHistory, getProfile, getProvider, getStructured, getTool, hasProfile, hasTool, invokeTool, invokeToolStep, listProfiles, listProtocols, listProviders, listTools, projectProfile, registerProfile, registerProfiles, registerProvider, registerStructured, registerTool, registerTools, requireTool, resetTools, resolveTurn, runDecision, runEmbedding, runSession, runTool, runToolStep, runTurn, } from './src/kernel/default-scope.js';
|
|
25
28
|
export type { CompactionSplit, CompactionTokens } from './src/kernel/engine/compaction.js';
|
|
26
29
|
export { compactionMeter, compactionNeeded, resolveCompactionTokens, resolveHistoryTokens, shouldCompact, splitForCompaction, } from './src/kernel/engine/compaction.js';
|
|
27
30
|
export { validateDecisionRequest } from './src/kernel/engine/decision.js';
|
|
@@ -29,37 +32,48 @@ export { prepareLiveInboundText } from './src/kernel/engine/live-inbound.js';
|
|
|
29
32
|
export type { LiveIngressChannel } from './src/kernel/engine/live-ingress.js';
|
|
30
33
|
export { assertLiveIngress, assertLiveIngressConfigured, hasAnyLiveIngress, liveIngressChannelDefault, liveIngressEnabled, liveIngressEnabledFromSpec, } from './src/kernel/engine/live-ingress.js';
|
|
31
34
|
export type { RunSessionOptions, SignInGatePolicy } from './src/kernel/engine/session/mod.js';
|
|
32
|
-
export type {
|
|
33
|
-
export { loadTokenEstimator,
|
|
35
|
+
export type { TokenCount, TokenEstimator, } from './src/kernel/engine/token-estimate.js';
|
|
36
|
+
export { loadTokenEstimator, TOKEN_TEXT_ENCODING, } from './src/kernel/engine/token-estimate.js';
|
|
34
37
|
export { sumTokens } from './src/kernel/engine/usage.js';
|
|
35
38
|
export type { ProfileGraphEditor, ProfileGraphFacet, ProfileGraphFacetId, ProfileGraphRole, } from './src/kernel/profile-graph.js';
|
|
36
39
|
export { PROFILE_GRAPH, profileGraphFacet, spineFacetsForProfileType, } from './src/kernel/profile-graph.js';
|
|
40
|
+
export type { RuntimeAbilities } from './src/kernel/protocols/binding.js';
|
|
41
|
+
export { checkBinding, commonModelSettingsSchema, decisionModelBindingSchema, keySlotSchema, keySlotsOf, modelBindingSchema, } from './src/kernel/protocols/binding.js';
|
|
42
|
+
export { providerLimitsSchema, resolveProviderLimits } from './src/kernel/protocols/limits.js';
|
|
43
|
+
export type { CallSetup, ProtocolCall } from './src/kernel/protocols/runtime.js';
|
|
44
|
+
export { callProtocol, plainWebSocket } from './src/kernel/protocols/runtime.js';
|
|
37
45
|
export type { AttachmentFacts, AttachmentRules } from './src/kernel/registry/attachments.js';
|
|
38
|
-
export { assertTurnAttachments, attachmentIssueCopy, attachmentIssues, attachmentIssueText, attachmentsRefused, maxBytesForMime, requireMediaLimits, resolveMediaLimits, sanitizeCsvText, sanitizeTurnBlobs, } from './src/kernel/registry/attachments.js';
|
|
46
|
+
export { assertTurnAttachments, attachmentIssueCopy, attachmentIssues, attachmentIssueText, attachmentsRefused, base64Bytes, maxBytesForMime, requireMediaLimits, resolveMediaLimits, sanitizeCsvText, sanitizeTurnBlobs, } from './src/kernel/registry/attachments.js';
|
|
39
47
|
export type { MediaInputChannel } from './src/kernel/registry/catalog.js';
|
|
40
48
|
export { clampThinkingLevel, clampThinkingLevelForApiId, mediaChannelForMime, mediaKindForMime, mimeAllowed, mimeEssence, modelEntryByApiId, requireModelBinding, } from './src/kernel/registry/catalog.js';
|
|
49
|
+
export type { EmbeddingRules } from './src/kernel/registry/embedding-rules.js';
|
|
50
|
+
export { embeddingMediaIssues, embeddingRules } from './src/kernel/registry/embedding-rules.js';
|
|
41
51
|
export type { KernelRegistry } from './src/kernel/registry/kernel-registry.js';
|
|
42
52
|
export { createKernelRegistry } from './src/kernel/registry/kernel-registry.js';
|
|
43
|
-
export type { ImageProfileDefinition, LiveProfileDefinition, ProfileDefinition, ProfileDefinitionBase, ProfileRegistry, SpeechProfileDefinition, TextProfileDefinition, } from './src/kernel/registry/profiles.js';
|
|
53
|
+
export type { EmbeddingProfileDefinition, ImageProfileDefinition, LiveProfileDefinition, ProfileDefinition, ProfileDefinitionBase, ProfileRegistry, SpeechProfileDefinition, TextProfileDefinition, } from './src/kernel/registry/profiles.js';
|
|
44
54
|
export { createProfileRegistry, defineProfile } from './src/kernel/registry/profiles.js';
|
|
45
55
|
export { pickModel } from './src/kernel/registry/resolve.js';
|
|
46
56
|
export type { SchemaRegistry } from './src/kernel/registry/schemas.js';
|
|
47
57
|
export { createSchemaRegistry } from './src/kernel/registry/schemas.js';
|
|
48
|
-
export type { AuthUnauthenticatedPolicy, ContinueStopKind, CustomToolType, HttpMethod,
|
|
49
|
-
export { ATTACHMENT_ACCEPT_MIMES, AUTH_UNAUTHENTICATED_POLICIES, AWAITING_USER_INPUT_KINDS, AWAITING_USER_INPUT_STATUS, COMPACTION_METERS, COMPACTION_OUTCOMES, COMPACTION_TIMINGS, CONTINUE_STOP_KINDS, catalogPathFor,
|
|
58
|
+
export type { AuthUnauthenticatedPolicy, ContinueStopKind, CustomToolType, HttpMethod, StepLimitMode, StudioAuthType, ToolAccess, ToolAuthType, ToolPermission, ToolType, TurnStopKind, } from './src/kernel/schema.js';
|
|
59
|
+
export { API_EXPORTS, ATTACHMENT_ACCEPT_MIMES, AUTH_UNAUTHENTICATED_POLICIES, AWAITING_USER_INPUT_KINDS, AWAITING_USER_INPUT_STATUS, COMPACTION_METERS, COMPACTION_OUTCOMES, COMPACTION_TIMINGS, CONTINUE_STOP_KINDS, catalogPathFor, DYNAMIC_FIELD_PARENTS, EXTRA_FIELDS, fieldMeta, HTTP_METHODS, IMAGE_ATTACHMENT_ACCEPT_MIMES, isKeySlotName, isToolGateKind, isTurnInjectStage, isTurnStage, KEY_SLOT_NAME, LIVE_ACTIVITY_HANDLINGS, LIVE_END_SENSITIVITIES, LIVE_START_SENSITIVITIES, MEDIA_INPUT_KIND_VALUES, MEDIA_INPUT_KINDS, MEDIA_WILDCARDS, PROFILE_FIELDS, PROFILE_HANDLE_MAX_CHARS, PROFILE_ID_MAX_CHARS, PROFILE_TYPES, REQUEST_FIELDS, SPEECH_AUDIO_FORMATS, STREAM_MODES, STUDIO_AUTH_TYPES, SUMMARY_MODES, THINKING_LEVELS, TOOL_ACCESS, TOOL_AUTH_TYPES, TOOL_GATE_KINDS, TOOL_LOAD_TIERS, TOOL_PERMISSION, TOOL_TYPES, TURN_INJECT_STAGES, TURN_STAGES, TURN_STOP_KINDS, VOICE_ACCEPT_MIMES, } from './src/kernel/schema.js';
|
|
50
60
|
export type { KernelScope } from './src/kernel/scope.js';
|
|
51
61
|
export { createKernelScope, defaultKernelScope } from './src/kernel/scope.js';
|
|
52
62
|
export type { AwaitingUserInput, StageAffordance, StageApplyInput, StageApplyOutput, StageApplyWarning, StageApplyWarningCode, StageContext, StageEventExtra, StageHandler, StageMutate, StageResult, } from './src/kernel/stages.js';
|
|
53
|
-
export { applyStageResult,
|
|
63
|
+
export { applyStageResult, STAGE_AFFORDANCE_MATRIX, STAGE_AFFORDANCES, stageAllowsAffordance, stageEventFields, } from './src/kernel/stages.js';
|
|
54
64
|
export type { MediaTurnBehaviourSpec, ProfileTurnBehaviourSpec, ProfileTurnResumptionSpec, TurnContinueFrom, TurnStop, } from './src/kernel/stop.js';
|
|
55
65
|
export { AUTO_CONTINUE_DELAY_MS, DEFAULT_ALLOW_CONTINUE, DEFAULT_AUTO_CONTINUE, GenerationStopError, isContinueStopKind, isGenerationStopError, isResumeableStop, isUserCancelledStop, profileAllowsInject, profileAllowsSteering, profileTurnResumption, shouldAutoContinue, turnStopFromClientStreamEnd, turnStopFromInteractionStatus, turnStopFromOpenAiFinishReason, } from './src/kernel/stop.js';
|
|
66
|
+
export { authorizeToolReplay } from './src/kernel/tools/execute.js';
|
|
56
67
|
export { GATE_DECISIONS, type GateDecision } from './src/kernel/tools/gate-answer.js';
|
|
57
|
-
export type { McpProtocolVersion, McpRpcResponse, ToolRegistry } from './src/kernel/tools/mod.js';
|
|
58
|
-
export { askUserTool, buildHttpToolTarget, createToolRegistry, executeHttpTool, executeMcpTool, formatToolResult, isUnsupportedMcpProtocolError, MCP_PROTOCOL_VERSIONS, parseMcpRpcResponse, prepareTurnToolSnapshot, registerHarnessTools, resolveToolAuth, } from './src/kernel/tools/mod.js';
|
|
59
|
-
export {
|
|
68
|
+
export type { CredentialQuery, McpProtocolVersion, McpRpcResponse, ToolRegistry, } from './src/kernel/tools/mod.js';
|
|
69
|
+
export { askUserTool, buildHttpToolTarget, createToolRegistry, credentialPlacement, executeHttpTool, executeMcpTool, formatToolResult, isUnsupportedMcpProtocolError, MCP_PROTOCOL_VERSIONS, parseMcpRpcResponse, prepareTurnToolSnapshot, registerHarnessTools, resolveToolAuth, UncheckedOutput, uncheckedOutput, withCredentialQuery, } from './src/kernel/tools/mod.js';
|
|
70
|
+
export type { BeginToolOperationResult, PageToolDispatch, PageToolExecution, SavedToolInvocation, TerminalToolEvent, ToolExecutionCoordinator, ToolOperationClaim, ToolOperationIdentity, ToolOperationOutcome, ToolOperationUncertainty, } from './src/kernel/tools/operation.js';
|
|
71
|
+
export { savedToolInvocationSchema, toolInvocationHash, toolOperationOutcomeSchema, } from './src/kernel/tools/operation.js';
|
|
72
|
+
export type { SettledToolCall, ToolCallResult, ToolStepCallResult, } from './src/kernel/tools/run.js';
|
|
73
|
+
export type { ModelToolResult, PageAnswer, ToolContext } from './src/kernel/tools/types.js';
|
|
74
|
+
export { awaitingUserInputSchema, type GateReference, gateReferenceSchema, isAwaitingUserInput, keptReply, reasoningPartSchema, TURN_EVENT_SCHEMAS, toolGateSchema, turnDoneOf, turnEventSchema, turnHistoryMessageSchema, turnToolSnapshotSchema, } from './src/kernel/turn-events.js';
|
|
60
75
|
export type * from './src/kernel/types.js';
|
|
61
|
-
export type { OtlpAnyValue, OtlpKeyValue, OtlpSpan, OtlpTraceRequest, ProfileObservabilitySpec, ResolvedObservabilityPolicy, ResolvedTraceInclude, ResolvedTraceScrub, SpanHandle, SpanLinkInput, SpanOptions, TraceAttributeGroup, TraceAttributeMeta, TraceAttributes, TraceAttributeValue, TraceBytes, TraceClock, TraceContent, TraceEventMeta, TraceIncludeSpec, TraceJson, TraceOptionMeta, TraceRecord, TraceScrubSpec, TraceSink, TraceSpan, TraceSpanEvent, TraceSpanKind, TraceSpanLink, TraceSpanMeta, TraceSpanStatus, TraceSpanType, TraceTree, TraceValueFormat, TraceWriteContext, } from './src/observability/mod.js';
|
|
76
|
+
export type { OtlpAnyValue, OtlpKeyValue, OtlpSpan, OtlpTraceRequest, ProfileObservabilitySpec, ResolvedObservabilityPolicy, ResolvedScrubSwitch, ResolvedTraceInclude, ResolvedTraceScrub, ScrubSwitch, SpanHandle, SpanLinkInput, SpanOptions, TraceAttributeGroup, TraceAttributeMeta, TraceAttributes, TraceAttributeValue, TraceBytes, TraceClock, TraceContent, TraceEventMeta, TraceIncludeSpec, TraceJson, TraceOptionMeta, TraceRecord, TraceScrubSpec, TraceSink, TraceSpan, TraceSpanEvent, TraceSpanKind, TraceSpanLink, TraceSpanMeta, TraceSpanStatus, TraceSpanType, TraceTree, TraceValueFormat, TraceWriteContext, } from './src/observability/mod.js';
|
|
62
77
|
export { buildRecord, clearTraceDestinations, contentOf, getTraceDestination, inlineContent, isTraceSink, listTraceDestinationIds, memorySink, noopSink, readTraceparent, registerTraceDestination, requireTraceDestination, resolveObservabilityPolicy, resolveTraceWriter, startTrace, TRACE_ATTRIBUTE_GROUPS, TRACE_FIELDS, TRACE_SPAN_TYPES, TRACE_STATUS, toOtlpJson, traceAttributeMeta, traceBytes, traceContent, traceEventAttributeMeta, traceEventMeta, traceJson, traceRecordSchema, traceSpanMeta, writeTrace, } from './src/observability/mod.js';
|
|
63
78
|
export * from './src/presets/mod.js';
|
|
64
|
-
export
|
|
65
|
-
export { createProvider } from './src/providers/mod.js';
|
|
79
|
+
export * from './src/providers/mod.js';
|
package/esm/mod.js
CHANGED
|
@@ -11,32 +11,39 @@ export { describeError, ERROR_KINDS, errorKind, isAbortError, publicError, Theor
|
|
|
11
11
|
export { errorCopiesSchema, errorKindSchema, guardrailEventSchema, } from './src/guardrails/event-schemas.js';
|
|
12
12
|
export { guardrailFromHits, guardrailFromVerdict, guardrailTurnEvent, projectGuardrailTurnEvent, } from './src/guardrails/events.js';
|
|
13
13
|
export { hitFromSpan, projectGuardrailEvent, } from './src/guardrails/hits.js';
|
|
14
|
-
export {
|
|
15
|
-
export { ADVISORY_LEVELS, abortLiveOutboundTurn, bindCanary,
|
|
14
|
+
export { CLIENT_LABEL_KEYS, LABEL_KEYS, labelDefault, labelText, overrideLabels, resetLabels, } from './src/guardrails/labels.js';
|
|
15
|
+
export { ADVISORY_LEVELS, abortLiveOutboundTurn, addGivenDestinations, addHistoryDestinations, addRequestDestinations, addResultDestinations, BLOCKED_REPLY_ON_BLOCK, bindCanary, checkDestinationGate, checkTaintGate, composeToolText, createCanaryGateSession, createCanaryStreamGate, createLiveOutboundGateSession, createOutboundProgressiveGate, createProgressiveYieldGate, DESTINATION_GATES, DIRECTIVE_SIGNALS, directives, EGRESS_RULES, eventHasCanary, filterCanaryGatedEvents, finalizeLiveOutboundTurn, GUARDRAIL_STAGES, guardToolFailureText, guardToolResult, hitRules, inspectToolArguments, isRemoteOrigin, isSuspicious, isTainted, mintCanary, OMIT_CANARY, processLiveOutboundBatch, recordTaint, redactCanary, resolveGuardrailPolicy, SEVERITIES, scanTextForCanaryLeak, scanTextOf, TAINT_GATES, TOOL_CLOSE, TOOL_ORIGINS, TRUST_LEVELS, textForScan, toolCallEvent, turnDestinations, wrapToolData, wrapUserData, } from './src/guardrails/mod.js';
|
|
16
16
|
export { assertSafeUrl, dnsOverHttpsResolver, fetchGuarded, isLocalhostName, isPrivateOrLocalAddress, } from './src/guardrails/network.js';
|
|
17
|
-
export { clientIp, quotaExhausted, releaseSlot, resetSlots, skipQuota, takeSlot, } from './src/guardrails/quota.js';
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
17
|
+
export { clientIp, quotaBusy, quotaExhausted, releaseSlot, resetSlots, skipQuota, takeSlot, } from './src/guardrails/quota.js';
|
|
18
|
+
export { sanitizeProjectId, sanitizeTurnRequest, sanitizeTurnRequestWithEvents, } from './src/guardrails/sanitize.js';
|
|
19
|
+
export { historyHash, providerCheckpointSchema, providerContinuationSchema, providerWarningSchema, } from './src/kernel/checkpoint.js';
|
|
20
|
+
export { clearProfiles, compactHistory, getProfile, getProvider, getStructured, getTool, hasProfile, hasTool, invokeTool, invokeToolStep, listProfiles, listProtocols, listProviders, listTools, projectProfile, registerProfile, registerProfiles, registerProvider, registerStructured, registerTool, registerTools, requireTool, resetTools, resolveTurn, runDecision, runEmbedding, runSession, runTool, runToolStep, runTurn, } from './src/kernel/default-scope.js';
|
|
20
21
|
export { compactionMeter, compactionNeeded, resolveCompactionTokens, resolveHistoryTokens, shouldCompact, splitForCompaction, } from './src/kernel/engine/compaction.js';
|
|
21
22
|
export { validateDecisionRequest } from './src/kernel/engine/decision.js';
|
|
22
23
|
export { prepareLiveInboundText } from './src/kernel/engine/live-inbound.js';
|
|
23
24
|
export { assertLiveIngress, assertLiveIngressConfigured, hasAnyLiveIngress, liveIngressChannelDefault, liveIngressEnabled, liveIngressEnabledFromSpec, } from './src/kernel/engine/live-ingress.js';
|
|
24
|
-
export { loadTokenEstimator,
|
|
25
|
+
export { loadTokenEstimator, TOKEN_TEXT_ENCODING, } from './src/kernel/engine/token-estimate.js';
|
|
25
26
|
export { sumTokens } from './src/kernel/engine/usage.js';
|
|
26
27
|
export { PROFILE_GRAPH, profileGraphFacet, spineFacetsForProfileType, } from './src/kernel/profile-graph.js';
|
|
27
|
-
export {
|
|
28
|
+
export { checkBinding, commonModelSettingsSchema, decisionModelBindingSchema, keySlotSchema, keySlotsOf, modelBindingSchema, } from './src/kernel/protocols/binding.js';
|
|
29
|
+
export { providerLimitsSchema, resolveProviderLimits } from './src/kernel/protocols/limits.js';
|
|
30
|
+
export { callProtocol, plainWebSocket } from './src/kernel/protocols/runtime.js';
|
|
31
|
+
export { assertTurnAttachments, attachmentIssueCopy, attachmentIssues, attachmentIssueText, attachmentsRefused, base64Bytes, maxBytesForMime, requireMediaLimits, resolveMediaLimits, sanitizeCsvText, sanitizeTurnBlobs, } from './src/kernel/registry/attachments.js';
|
|
28
32
|
export { clampThinkingLevel, clampThinkingLevelForApiId, mediaChannelForMime, mediaKindForMime, mimeAllowed, mimeEssence, modelEntryByApiId, requireModelBinding, } from './src/kernel/registry/catalog.js';
|
|
33
|
+
export { embeddingMediaIssues, embeddingRules } from './src/kernel/registry/embedding-rules.js';
|
|
29
34
|
export { createKernelRegistry } from './src/kernel/registry/kernel-registry.js';
|
|
30
35
|
export { createProfileRegistry, defineProfile } from './src/kernel/registry/profiles.js';
|
|
31
36
|
export { pickModel } from './src/kernel/registry/resolve.js';
|
|
32
37
|
export { createSchemaRegistry } from './src/kernel/registry/schemas.js';
|
|
33
|
-
export { ATTACHMENT_ACCEPT_MIMES, AUTH_UNAUTHENTICATED_POLICIES, AWAITING_USER_INPUT_KINDS, AWAITING_USER_INPUT_STATUS, COMPACTION_METERS, COMPACTION_OUTCOMES, COMPACTION_TIMINGS, CONTINUE_STOP_KINDS, catalogPathFor,
|
|
38
|
+
export { API_EXPORTS, ATTACHMENT_ACCEPT_MIMES, AUTH_UNAUTHENTICATED_POLICIES, AWAITING_USER_INPUT_KINDS, AWAITING_USER_INPUT_STATUS, COMPACTION_METERS, COMPACTION_OUTCOMES, COMPACTION_TIMINGS, CONTINUE_STOP_KINDS, catalogPathFor, DYNAMIC_FIELD_PARENTS, EXTRA_FIELDS, fieldMeta, HTTP_METHODS, IMAGE_ATTACHMENT_ACCEPT_MIMES, isKeySlotName, isToolGateKind, isTurnInjectStage, isTurnStage, KEY_SLOT_NAME, LIVE_ACTIVITY_HANDLINGS, LIVE_END_SENSITIVITIES, LIVE_START_SENSITIVITIES, MEDIA_INPUT_KIND_VALUES, MEDIA_INPUT_KINDS, MEDIA_WILDCARDS, PROFILE_FIELDS, PROFILE_HANDLE_MAX_CHARS, PROFILE_ID_MAX_CHARS, PROFILE_TYPES, REQUEST_FIELDS, SPEECH_AUDIO_FORMATS, STREAM_MODES, STUDIO_AUTH_TYPES, SUMMARY_MODES, THINKING_LEVELS, TOOL_ACCESS, TOOL_AUTH_TYPES, TOOL_GATE_KINDS, TOOL_LOAD_TIERS, TOOL_PERMISSION, TOOL_TYPES, TURN_INJECT_STAGES, TURN_STAGES, TURN_STOP_KINDS, VOICE_ACCEPT_MIMES, } from './src/kernel/schema.js';
|
|
34
39
|
export { createKernelScope, defaultKernelScope } from './src/kernel/scope.js';
|
|
35
|
-
export { applyStageResult,
|
|
40
|
+
export { applyStageResult, STAGE_AFFORDANCE_MATRIX, STAGE_AFFORDANCES, stageAllowsAffordance, stageEventFields, } from './src/kernel/stages.js';
|
|
36
41
|
export { AUTO_CONTINUE_DELAY_MS, DEFAULT_ALLOW_CONTINUE, DEFAULT_AUTO_CONTINUE, GenerationStopError, isContinueStopKind, isGenerationStopError, isResumeableStop, isUserCancelledStop, profileAllowsInject, profileAllowsSteering, profileTurnResumption, shouldAutoContinue, turnStopFromClientStreamEnd, turnStopFromInteractionStatus, turnStopFromOpenAiFinishReason, } from './src/kernel/stop.js';
|
|
42
|
+
export { authorizeToolReplay } from './src/kernel/tools/execute.js';
|
|
37
43
|
export { GATE_DECISIONS } from './src/kernel/tools/gate-answer.js';
|
|
38
|
-
export { askUserTool, buildHttpToolTarget, createToolRegistry, executeHttpTool, executeMcpTool, formatToolResult, isUnsupportedMcpProtocolError, MCP_PROTOCOL_VERSIONS, parseMcpRpcResponse, prepareTurnToolSnapshot, registerHarnessTools, resolveToolAuth, } from './src/kernel/tools/mod.js';
|
|
39
|
-
export {
|
|
44
|
+
export { askUserTool, buildHttpToolTarget, createToolRegistry, credentialPlacement, executeHttpTool, executeMcpTool, formatToolResult, isUnsupportedMcpProtocolError, MCP_PROTOCOL_VERSIONS, parseMcpRpcResponse, prepareTurnToolSnapshot, registerHarnessTools, resolveToolAuth, UncheckedOutput, uncheckedOutput, withCredentialQuery, } from './src/kernel/tools/mod.js';
|
|
45
|
+
export { savedToolInvocationSchema, toolInvocationHash, toolOperationOutcomeSchema, } from './src/kernel/tools/operation.js';
|
|
46
|
+
export { awaitingUserInputSchema, gateReferenceSchema, isAwaitingUserInput, keptReply, reasoningPartSchema, TURN_EVENT_SCHEMAS, toolGateSchema, turnDoneOf, turnEventSchema, turnHistoryMessageSchema, turnToolSnapshotSchema, } from './src/kernel/turn-events.js';
|
|
40
47
|
export { buildRecord, clearTraceDestinations, contentOf, getTraceDestination, inlineContent, isTraceSink, listTraceDestinationIds, memorySink, noopSink, readTraceparent, registerTraceDestination, requireTraceDestination, resolveObservabilityPolicy, resolveTraceWriter, startTrace, TRACE_ATTRIBUTE_GROUPS, TRACE_FIELDS, TRACE_SPAN_TYPES, TRACE_STATUS, toOtlpJson, traceAttributeMeta, traceBytes, traceContent, traceEventAttributeMeta, traceEventMeta, traceJson, traceRecordSchema, traceSpanMeta, writeTrace, } from './src/observability/mod.js';
|
|
41
48
|
export * from './src/presets/mod.js';
|
|
42
|
-
export
|
|
49
|
+
export * from './src/providers/mod.js';
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { defineProtocol } from '../../kernel/protocols/protocol.js';
|
|
3
|
+
import { defineProvider } from '../../kernel/protocols/provider.js';
|
|
4
|
+
// why: TTFE: time to first event (profile resolve + provider setup). TTFT: time to first text delta.
|
|
2
5
|
// Overhead: total wall-clock delta vs. raw provider consumption.
|
|
3
6
|
import { canaryNote, eventHasCanary, mintCanary } from '../../guardrails/canary.js';
|
|
4
7
|
import { sanitizeTurnRequest } from '../../guardrails/sanitize.js';
|
|
5
|
-
import { clearProfiles, getProfile, registerProfile, resolveTurn, runTurn, } from '../../kernel/default-scope.js';
|
|
8
|
+
import { clearProfiles, getProfile, getProvider, registerProfile, registerProvider, resolveTurn, runTurn, } from '../../kernel/default-scope.js';
|
|
6
9
|
import { startCallUsage } from '../../kernel/engine/runner/usage.js';
|
|
7
10
|
import { startCallTrace } from '../../kernel/engine/turn-trace.js';
|
|
8
11
|
import { pickSystemRole } from '../../kernel/registry/system-role.js';
|
|
@@ -25,8 +28,8 @@ function registerBenchProfile() {
|
|
|
25
28
|
},
|
|
26
29
|
models: {
|
|
27
30
|
'bench-model': {
|
|
28
|
-
protocol: '
|
|
29
|
-
provider: '
|
|
31
|
+
protocol: 'bench',
|
|
32
|
+
provider: 'bench',
|
|
30
33
|
apiId: 'bench-model',
|
|
31
34
|
efforts: { normal: 'none' },
|
|
32
35
|
summaries: false,
|
|
@@ -38,11 +41,6 @@ function registerBenchProfile() {
|
|
|
38
41
|
defaultModel: 'bench-model',
|
|
39
42
|
tools: { allow: [] },
|
|
40
43
|
inputs: { text: true },
|
|
41
|
-
guardrails: {
|
|
42
|
-
canary: true,
|
|
43
|
-
sanitizeInput: true,
|
|
44
|
-
redactSensitive: true,
|
|
45
|
-
},
|
|
46
44
|
});
|
|
47
45
|
}
|
|
48
46
|
function generateChunks(count) {
|
|
@@ -66,6 +64,29 @@ function createMockProvider(chunks) {
|
|
|
66
64
|
},
|
|
67
65
|
};
|
|
68
66
|
}
|
|
67
|
+
/** A protocol and provider that answer every turn with `chunks`, so the bench times the kernel alone. */
|
|
68
|
+
function registerBenchProvider(chunks) {
|
|
69
|
+
if (getProvider('bench'))
|
|
70
|
+
return;
|
|
71
|
+
const protocol = defineProtocol({
|
|
72
|
+
id: 'bench',
|
|
73
|
+
name: 'Bench',
|
|
74
|
+
description: 'Streams the bench chunks without a network.',
|
|
75
|
+
endpoints: { text: '/bench' },
|
|
76
|
+
options: z.strictObject({}),
|
|
77
|
+
create: () => ({
|
|
78
|
+
async *complete() {
|
|
79
|
+
yield* chunks;
|
|
80
|
+
},
|
|
81
|
+
}),
|
|
82
|
+
});
|
|
83
|
+
registerProvider(defineProvider({
|
|
84
|
+
id: 'bench',
|
|
85
|
+
name: 'Bench',
|
|
86
|
+
description: 'Answers the bench in process.',
|
|
87
|
+
serves: () => [{ protocol, baseUrl: 'https://bench.invalid' }],
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
69
90
|
function buildBenchRequest() {
|
|
70
91
|
return {
|
|
71
92
|
profile: BENCH_PROFILE_ID,
|
|
@@ -117,7 +138,7 @@ async function measureRawProvider(provider) {
|
|
|
117
138
|
textEvents,
|
|
118
139
|
};
|
|
119
140
|
}
|
|
120
|
-
async function measureKernelPipeline(
|
|
141
|
+
async function measureKernelPipeline(_provider) {
|
|
121
142
|
const req = buildBenchRequest();
|
|
122
143
|
const start = performance.now();
|
|
123
144
|
let firstEvent = 0;
|
|
@@ -125,7 +146,7 @@ async function measureKernelPipeline(provider) {
|
|
|
125
146
|
let textEvents = 0;
|
|
126
147
|
let gotFirst = false;
|
|
127
148
|
let gotFirstText = false;
|
|
128
|
-
for await (const event of runTurn(req
|
|
149
|
+
for await (const event of runTurn(req)) {
|
|
129
150
|
if (!gotFirst) {
|
|
130
151
|
firstEvent = performance.now() - start;
|
|
131
152
|
gotFirst = true;
|
|
@@ -168,7 +189,7 @@ function aggregate(results) {
|
|
|
168
189
|
},
|
|
169
190
|
tokensPerSec: {
|
|
170
191
|
median: percentile(tps, 50),
|
|
171
|
-
p95: percentile(tps, 5), // lower is worse for throughput
|
|
192
|
+
p95: percentile(tps, 5), // why: lower is worse for throughput
|
|
172
193
|
mean: mean(tps),
|
|
173
194
|
},
|
|
174
195
|
totalMs: {
|
|
@@ -321,7 +342,7 @@ async function microAsyncGenOverhead(chunks, iterations) {
|
|
|
321
342
|
const start = performance.now();
|
|
322
343
|
for (let i = 0; i < iterations; i++) {
|
|
323
344
|
for await (const _e of layer4(chunks)) {
|
|
324
|
-
//
|
|
345
|
+
// why: only the time to read the stream matters, so each event is dropped.
|
|
325
346
|
}
|
|
326
347
|
}
|
|
327
348
|
const elapsed = performance.now() - start;
|
|
@@ -363,7 +384,7 @@ async function microTraceRecord(chunks, iterations) {
|
|
|
363
384
|
req,
|
|
364
385
|
usage: startCallUsage('', { history: [], input: req.input }),
|
|
365
386
|
binding: undefined,
|
|
366
|
-
transport: '
|
|
387
|
+
transport: 'turn',
|
|
367
388
|
step: 0,
|
|
368
389
|
attempt: 0,
|
|
369
390
|
});
|
|
@@ -433,6 +454,7 @@ export async function benchCommand(options = {}) {
|
|
|
433
454
|
console.log(` ${chunkCount} chunks × ${iterations} iterations (${warmup} warmup)\n`);
|
|
434
455
|
const chunks = generateChunks(chunkCount);
|
|
435
456
|
const provider = createMockProvider(chunks);
|
|
457
|
+
registerBenchProvider(chunks);
|
|
436
458
|
registerBenchProfile();
|
|
437
459
|
for (let i = 0; i < warmup; i++) {
|
|
438
460
|
await measureRawProvider(provider);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agents detect-compile`: reads a module's exported `guardrails.detect` setting and writes the
|
|
3
|
+
* table each detector's own patterns compile to.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
interface DetectCompileOptions {
|
|
8
|
+
/** Path or URL of the module exporting the detect setting. */
|
|
9
|
+
module: string;
|
|
10
|
+
/** The export holding it. Default `detect`. */
|
|
11
|
+
exportName?: string;
|
|
12
|
+
/** Where the compiled module is written. */
|
|
13
|
+
out: string;
|
|
14
|
+
}
|
|
15
|
+
/** Compiles each detector's patterns and writes the module; returns the detectors it compiled. */
|
|
16
|
+
declare function detectCompileCommand({ module, exportName, out, }: DetectCompileOptions): Promise<string[]>;
|
|
17
|
+
export { detectCompileCommand };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agents detect-compile`: reads a module's exported `guardrails.detect` setting and writes the
|
|
3
|
+
* table each detector's own patterns compile to.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import { writeFile } from 'node:fs/promises';
|
|
8
|
+
import { cwd } from 'node:process';
|
|
9
|
+
/** Compiles each detector's patterns and writes the module; returns the detectors it compiled. */
|
|
10
|
+
async function detectCompileCommand({ module, exportName = 'detect', out, }) {
|
|
11
|
+
const loaded = await import(new URL(module, `file://${cwd()}/`).href);
|
|
12
|
+
const detect = loaded[exportName];
|
|
13
|
+
if (typeof detect !== 'object' || detect === null) {
|
|
14
|
+
throw new Error(`${module} has no detect setting exported as ${exportName}`);
|
|
15
|
+
}
|
|
16
|
+
// why: Loaded here so no other command loads the regex engine.
|
|
17
|
+
const { compiledDetectModule, compileDetectTables } = await import('../../guardrails/egress-compiler.js');
|
|
18
|
+
const tables = compileDetectTables(detect);
|
|
19
|
+
await writeFile(out, compiledDetectModule(tables));
|
|
20
|
+
return Object.keys(tables);
|
|
21
|
+
}
|
|
22
|
+
export { detectCompileCommand };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EvalMediaResolver } from '../../evals/types.js';
|
|
2
2
|
import type { RunDecisionOptions } from '../../kernel/engine/decision.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { ProviderHostOptions } from '../../kernel/protocols/runtime.js';
|
|
4
4
|
export interface EvalOptions {
|
|
5
5
|
/** Path of the suite module (`export default` an `EvalSuite`). */
|
|
6
6
|
suite: string;
|
|
@@ -22,9 +22,9 @@ export interface EvalOptions {
|
|
|
22
22
|
/** What the host hands the eval command: providers and keys it never creates or reads itself. */
|
|
23
23
|
export interface EvalHost {
|
|
24
24
|
/** The provider for the profile under test. */
|
|
25
|
-
provider?:
|
|
25
|
+
provider?: ProviderHostOptions;
|
|
26
26
|
/** The provider for text judge profiles. */
|
|
27
|
-
judgeProvider?:
|
|
27
|
+
judgeProvider?: ProviderHostOptions;
|
|
28
28
|
/** The key for decision judge profiles (Jev). */
|
|
29
29
|
judgeDecision?: Omit<RunDecisionOptions, 'sink'>;
|
|
30
30
|
/** Where a judge finds media a trace names only by hash. */
|
|
@@ -1,25 +1,32 @@
|
|
|
1
|
-
// A bypass is judged from the attack's own encoded canary, not from the detector under test.
|
|
1
|
+
// why: A bypass is judged from the attack's own encoded canary, not from the detector under test.
|
|
2
2
|
import { bindCanary, isStreamedCanaryEvent, mintCanary, scanTextForCanaryLeak, } from '../../guardrails/canary.js';
|
|
3
3
|
import { buildCanaryEgressAttacks, FIXED_CANARY, FUZZ_SYSTEM, } from '../../guardrails/corpus/canary-egress-attacks.js';
|
|
4
|
+
import { scopeOf } from '../../guardrails/detect-at.js';
|
|
5
|
+
import { readReply } from '../../guardrails/detect-reply.js';
|
|
4
6
|
import { givenUrlSets } from '../../guardrails/egress-urls.js';
|
|
5
7
|
import { createLiveOutboundGateSession, finalizeLiveOutboundTurn, processLiveOutboundBatch, } from '../../guardrails/live-outbound-gate.js';
|
|
8
|
+
import { resolveGuardrailPolicy } from '../../guardrails/policy.js';
|
|
6
9
|
import { scanTextOf } from '../../guardrails/serialize.js';
|
|
7
|
-
import { clearProfiles, getProfile, registerProfile, resolveTurn, } from '../../kernel/default-scope.js';
|
|
8
|
-
import { yieldProviderEvents, } from '../../kernel/engine/runner/stream.js';
|
|
10
|
+
import { clearProfiles, getProfile, getProvider, registerProfile, registerProvider, resolveTurn, } from '../../kernel/default-scope.js';
|
|
11
|
+
import { isWithheldOnBlock, yieldProviderEvents, } from '../../kernel/engine/runner/stream.js';
|
|
9
12
|
import { providerCompleteRequest } from '../../kernel/registry/provider-request.js';
|
|
10
13
|
import { defaultKernelScope } from '../../kernel/scope.js';
|
|
14
|
+
import { shownToolArguments } from '../../kernel/tools/execute.js';
|
|
15
|
+
import { openRouterProvider } from '../../providers/openrouter/provider.js';
|
|
11
16
|
const FUZZ_PROFILE_ID = '__fuzz_canary__';
|
|
12
17
|
function registerFuzzCanaryProfile() {
|
|
18
|
+
if (!getProvider('openrouter'))
|
|
19
|
+
registerProvider(openRouterProvider);
|
|
13
20
|
registerProfile({
|
|
14
21
|
type: 'text',
|
|
15
22
|
id: FUZZ_PROFILE_ID,
|
|
16
23
|
identity: { handle: 'fuzz-canary', system: 'Canary fuzz profile.' },
|
|
17
24
|
models: {
|
|
18
25
|
'fuzz-model': {
|
|
19
|
-
protocol: '
|
|
26
|
+
protocol: 'openRouter',
|
|
20
27
|
provider: 'openrouter',
|
|
21
28
|
apiId: 'fuzz-model',
|
|
22
|
-
|
|
29
|
+
keySlot: 'fuzz',
|
|
23
30
|
efforts: { normal: 'none' },
|
|
24
31
|
summaries: false,
|
|
25
32
|
maxOutputTokens: 4096,
|
|
@@ -30,7 +37,6 @@ function registerFuzzCanaryProfile() {
|
|
|
30
37
|
defaultModel: 'fuzz-model',
|
|
31
38
|
tools: { allow: [] },
|
|
32
39
|
inputs: { text: true },
|
|
33
|
-
guardrails: { canary: true },
|
|
34
40
|
});
|
|
35
41
|
}
|
|
36
42
|
function resolveFuzzGeneration(canary) {
|
|
@@ -40,10 +46,42 @@ function resolveFuzzGeneration(canary) {
|
|
|
40
46
|
});
|
|
41
47
|
return { ...generation, canary };
|
|
42
48
|
}
|
|
43
|
-
|
|
49
|
+
/** The model's tool call as a host is shown it: its arguments as the tool gets them. */
|
|
50
|
+
function callShown(event, canary) {
|
|
51
|
+
if (event.type !== 'tool' || event.tool.phase !== undefined)
|
|
52
|
+
return event;
|
|
53
|
+
const shown = shownToolArguments({
|
|
54
|
+
tools: defaultKernelScope.tools,
|
|
55
|
+
profile: getProfile(FUZZ_PROFILE_ID),
|
|
56
|
+
name: event.tool.name,
|
|
57
|
+
input: event.tool.arguments,
|
|
58
|
+
scope: { canary, privateSystem: [bindCanary(FUZZ_SYSTEM, canary)] },
|
|
59
|
+
});
|
|
60
|
+
return { ...event, tool: { ...event.tool, arguments: shown } };
|
|
61
|
+
}
|
|
62
|
+
/** The structured output as the read of the whole reply leaves it; none when that read stops it. */
|
|
63
|
+
function structuredShown(event, canary) {
|
|
64
|
+
if (event.type !== 'structured')
|
|
65
|
+
return [event];
|
|
66
|
+
const policy = resolveGuardrailPolicy(getProfile(FUZZ_PROFILE_ID).guardrails);
|
|
67
|
+
const read = readReply({ text: '', structured: event.structured }, policy.detect, {
|
|
68
|
+
boundary: 'reply',
|
|
69
|
+
scope: scopeOf(policy, { canary, privateSystem: [bindCanary(FUZZ_SYSTEM, canary)] }),
|
|
70
|
+
});
|
|
71
|
+
return read.blocked ? [] : [{ ...event, structured: read.payload.structured }];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* A call's events as the step runner passes them on. Once the stream's gate
|
|
75
|
+
* withholds the reply, its text and media are kept for the verdict on the
|
|
76
|
+
* whole reply and never reach the client. A tool call and a structured output
|
|
77
|
+
* are read at their own boundaries.
|
|
78
|
+
*/
|
|
79
|
+
async function reachingClient(control, canary, gen) {
|
|
44
80
|
const out = [];
|
|
45
81
|
for await (const event of gen) {
|
|
46
|
-
|
|
82
|
+
if (control.withholdVisible && isWithheldOnBlock(event))
|
|
83
|
+
continue;
|
|
84
|
+
out.push(...structuredShown(callShown(event, canary), canary));
|
|
47
85
|
}
|
|
48
86
|
return out;
|
|
49
87
|
}
|
|
@@ -86,24 +124,25 @@ async function* replay(turn) {
|
|
|
86
124
|
}
|
|
87
125
|
async function runStreamChannel(attack, generation, canary) {
|
|
88
126
|
const events = [];
|
|
89
|
-
// Every provider call of one turn shares its canary: each attack turn is a step.
|
|
127
|
+
// why: Every provider call of one turn shares its canary: each attack turn is a step.
|
|
90
128
|
const control = { withholdVisible: false };
|
|
91
129
|
for (const turn of attack.turns) {
|
|
92
|
-
const streamed = await
|
|
130
|
+
const streamed = await reachingClient(control, canary, yieldProviderEvents({
|
|
93
131
|
profile: getProfile(FUZZ_PROFILE_ID),
|
|
94
132
|
generation,
|
|
95
133
|
request: providerCompleteRequest(defaultKernelScope.tools, generation, bindCanary(FUZZ_SYSTEM, canary)),
|
|
96
134
|
privateSystem: [bindCanary(FUZZ_SYSTEM, canary)],
|
|
97
135
|
provider: { complete: () => replay(turn) },
|
|
98
|
-
|
|
136
|
+
tools: defaultKernelScope.tools,
|
|
137
|
+
// why: The fuzz reads what reaches the client, not the trace.
|
|
99
138
|
call: { tap: () => { }, observe: () => { } },
|
|
100
139
|
control,
|
|
101
140
|
givenUrls: givenUrlSets(),
|
|
102
141
|
}));
|
|
103
|
-
// The runner reads the call's `done`; the client never receives it.
|
|
104
|
-
const turnEvents = streamed.flatMap((event) =>
|
|
142
|
+
// why: The runner reads the call's `done`; the client never receives it.
|
|
143
|
+
const turnEvents = streamed.flatMap((event) => event.type === 'done' || event.type === 'reasoning' ? [] : [event]);
|
|
105
144
|
events.push(...turnEvents);
|
|
106
|
-
if (turnEvents.some((event) => event.type === 'error')) {
|
|
145
|
+
if (control.withholdVisible || turnEvents.some((event) => event.type === 'error')) {
|
|
107
146
|
return channelResult(attack, 'runTurn.stream', true, events);
|
|
108
147
|
}
|
|
109
148
|
}
|
|
@@ -111,13 +150,13 @@ async function runStreamChannel(attack, generation, canary) {
|
|
|
111
150
|
}
|
|
112
151
|
/** One Live session; each turn is a cycle the provider finishes before the next. */
|
|
113
152
|
async function runLiveBatchChannel(attack, canary) {
|
|
114
|
-
const session = createLiveOutboundGateSession(getProfile(FUZZ_PROFILE_ID), canary, [
|
|
153
|
+
const session = await createLiveOutboundGateSession(getProfile(FUZZ_PROFILE_ID), canary, [
|
|
115
154
|
bindCanary(FUZZ_SYSTEM, canary),
|
|
116
155
|
]);
|
|
117
156
|
const events = [];
|
|
118
157
|
for (const turn of attack.turns) {
|
|
119
158
|
for (const result of [
|
|
120
|
-
await processLiveOutboundBatch(session, turn),
|
|
159
|
+
await processLiveOutboundBatch(session, turn.map((event) => callShown(event, canary))),
|
|
121
160
|
await finalizeLiveOutboundTurn(session),
|
|
122
161
|
]) {
|
|
123
162
|
if (result.action === 'withhold') {
|
|
@@ -14,7 +14,7 @@ function formatProfileInputs(p) {
|
|
|
14
14
|
}
|
|
15
15
|
if (spec.text !== false)
|
|
16
16
|
inputs.push('text');
|
|
17
|
-
if (p.type !== 'image' && p.inputs?.voice)
|
|
17
|
+
if (p.type !== 'image' && p.type !== 'embedding' && p.inputs?.voice)
|
|
18
18
|
inputs.push('voice');
|
|
19
19
|
if (spec.attachments) {
|
|
20
20
|
inputs.push(`attachments [${spec.attachments.accept?.join(', ')}]`);
|
|
@@ -37,19 +37,19 @@ function printProfileCard(p) {
|
|
|
37
37
|
console.log(` - Model: ${Object.keys(p.models).join(', ')}`);
|
|
38
38
|
console.log(` - Inputs: JSON state`);
|
|
39
39
|
console.log(` - Contract: ${p.decision.contract}`);
|
|
40
|
-
console.log(` - Key Slot: ${p.key ?? '(unset)'}`);
|
|
41
40
|
console.log('-'.repeat(70));
|
|
42
41
|
return;
|
|
43
42
|
}
|
|
44
43
|
const models = Object.keys(p.models).join(', ') || 'default';
|
|
45
|
-
const structured = p.type === 'live' || p.type === 'speech'
|
|
44
|
+
const structured = p.type === 'live' || p.type === 'speech' || p.type === 'embedding'
|
|
45
|
+
? undefined
|
|
46
|
+
: p.outputs?.structured;
|
|
46
47
|
const structuredLabel = typeof structured === 'string' ? structured : structured ? 'custom' : 'none';
|
|
47
48
|
console.log(` • Profile: ${p.id.padEnd(16)} (handle: ${p.identity.handle}) [${p.type}]`);
|
|
48
49
|
console.log(` - Models: ${models}`);
|
|
49
50
|
console.log(` - Inputs: ${formatProfileInputs(p)}`);
|
|
50
51
|
console.log(` - Tools: ${tools}`);
|
|
51
52
|
console.log(` - Structured: ${structuredLabel}`);
|
|
52
|
-
console.log(` - Key Slot: ${p.key ?? '(unset)'}`);
|
|
53
53
|
console.log('-'.repeat(70));
|
|
54
54
|
}
|
|
55
55
|
export function listProfilesCommand() {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ProviderHostOptions } from '../../kernel/protocols/runtime.js';
|
|
2
2
|
export interface RunOptions {
|
|
3
3
|
profile: string;
|
|
4
4
|
prompt?: string;
|
|
5
5
|
mode?: string;
|
|
6
6
|
search?: boolean;
|
|
7
7
|
map?: boolean;
|
|
8
|
-
provider?:
|
|
8
|
+
provider?: ProviderHostOptions;
|
|
9
9
|
verbose?: boolean;
|
|
10
10
|
trace?: boolean;
|
|
11
11
|
traceDir?: string;
|
|
@@ -5,7 +5,7 @@ export async function runCommand(options) {
|
|
|
5
5
|
requireModelProfile(getProfile(options.profile), 'agents run');
|
|
6
6
|
const provider = options.provider;
|
|
7
7
|
if (!provider) {
|
|
8
|
-
console.error('\n\x1b[31mExecution Failed\x1b[0m: Theorem CLI does not create providers or read keys. Run turns from a host app with an explicit
|
|
8
|
+
console.error('\n\x1b[31mExecution Failed\x1b[0m: Theorem CLI does not create providers or read keys. Run turns from a host app with an explicit ProviderHostOptions.\n');
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
11
|
const prompt = options.prompt || 'Hello! Please introduce your capabilities.';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ProviderHostOptions } from '../../kernel/protocols/runtime.js';
|
|
2
|
+
import type { TurnRequest, TurnTokens } from '../../kernel/types.js';
|
|
2
3
|
import { type MatrixOptions } from '../matrix/synthesizer.js';
|
|
3
4
|
export interface TestRunResult {
|
|
4
5
|
passed: boolean;
|
|
@@ -13,11 +14,11 @@ interface CliTestOptions {
|
|
|
13
14
|
trace?: boolean;
|
|
14
15
|
traceDir?: string;
|
|
15
16
|
}
|
|
16
|
-
export declare function executeSingleTest(req: TurnRequest, testName: string, provider?:
|
|
17
|
+
export declare function executeSingleTest(req: TurnRequest, testName: string, provider?: ProviderHostOptions, cliOptions?: CliTestOptions): Promise<TestRunResult>;
|
|
17
18
|
export declare function testProfileCommand(profileId?: string, options?: MatrixOptions & {
|
|
18
19
|
all?: boolean;
|
|
19
20
|
matrix?: boolean;
|
|
20
|
-
provider?:
|
|
21
|
+
provider?: ProviderHostOptions;
|
|
21
22
|
verbose?: boolean;
|
|
22
23
|
trace?: boolean;
|
|
23
24
|
traceDir?: string;
|
|
@@ -46,7 +46,7 @@ export async function executeSingleTest(req, testName, provider, cliOptions = {}
|
|
|
46
46
|
};
|
|
47
47
|
try {
|
|
48
48
|
if (!provider) {
|
|
49
|
-
throw new Error('Theorem CLI does not create providers or read keys. Pass an explicit
|
|
49
|
+
throw new Error('Theorem CLI does not create providers or read keys. Pass an explicit ProviderHostOptions from the host app.');
|
|
50
50
|
}
|
|
51
51
|
const traceCapture = cliOptions.trace ? createCliTraceCapture(cliOptions.traceDir) : undefined;
|
|
52
52
|
for await (const event of runTurn(req, provider, traceCapture?.sink)) {
|
|
@@ -74,7 +74,7 @@ export async function executeSingleTest(req, testName, provider, cliOptions = {}
|
|
|
74
74
|
}
|
|
75
75
|
function resolveTargetProfiles(profileId, all) {
|
|
76
76
|
if (all) {
|
|
77
|
-
// Host and decision profiles run no model turn, so they have no turn matrix.
|
|
77
|
+
// why: Host and decision profiles run no model turn, so they have no turn matrix.
|
|
78
78
|
return listProfiles().filter(isModelProfile);
|
|
79
79
|
}
|
|
80
80
|
if (profileId) {
|