@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
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { textForScan } from './serialize.js';
|
|
18
18
|
function givenUrlSets() {
|
|
19
|
-
return { request: new Set(), tools: new Set() };
|
|
19
|
+
return { request: new Set(), tools: new Set(), own: new WeakSet() };
|
|
20
20
|
}
|
|
21
21
|
const RELATIVE_BASE = 'https://relative.invalid/';
|
|
22
22
|
const RELATIVE_HOST = 'relative.invalid';
|
|
@@ -154,16 +154,16 @@ function addSeenUrls(seen, text) {
|
|
|
154
154
|
}
|
|
155
155
|
function addHistoryUrls(given, messages) {
|
|
156
156
|
for (const message of messages) {
|
|
157
|
-
if (message.role === 'assistant')
|
|
157
|
+
if (message.role === 'assistant' || given.own.has(message))
|
|
158
158
|
continue;
|
|
159
159
|
addSeenUrls(message.role === 'tool' ? given.tools : given.request, textForScan(message).text);
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
function addRequestUrls(given, request) {
|
|
163
163
|
addSeenUrls(given.request, request.system);
|
|
164
|
-
|
|
164
|
+
if (!given.own.has(request.input))
|
|
165
|
+
addSeenUrls(given.request, textForScan(request.input).text);
|
|
165
166
|
addHistoryUrls(given, request.history ?? []);
|
|
166
|
-
addHistoryUrls(given, request.continuation ?? []);
|
|
167
167
|
}
|
|
168
168
|
function isGiven(canonical, scope) {
|
|
169
169
|
const { given } = scope;
|
|
@@ -211,7 +211,6 @@ function bareUrlLeaks(found, scope) {
|
|
|
211
211
|
return false;
|
|
212
212
|
return !(hosts.size === 1 && readings.some((url) => isGiven(url, scope)));
|
|
213
213
|
}
|
|
214
|
-
// ── Budget ───────────────────────────────────────────────────────────
|
|
215
214
|
/**
|
|
216
215
|
* Constructs overlap: a destination can hold further links, a tag further
|
|
217
216
|
* tags, a `<style>` block further blocks, and each is decoded on its own. One
|
|
@@ -243,7 +242,6 @@ function indicesIn(from, to, at) {
|
|
|
243
242
|
out.push(i);
|
|
244
243
|
return out;
|
|
245
244
|
}
|
|
246
|
-
// ── Markdown ─────────────────────────────────────────────────────────
|
|
247
245
|
/** A newline opening a blank line, or trailing space to the end: no bracket or code span reaches past one. */
|
|
248
246
|
const PARAGRAPH_BREAK = /\n[ \t]*(?=\n|$)/g;
|
|
249
247
|
const PARAGRAPH_BREAK_AT = /\n[ \t]*(?=\n|$)/y;
|
|
@@ -497,7 +495,6 @@ function bareLinkLeaks(text, scope, meter) {
|
|
|
497
495
|
})
|
|
498
496
|
.map((match) => ({ start: match.index, end: match.index + match[0].length }));
|
|
499
497
|
}
|
|
500
|
-
// ── HTML ─────────────────────────────────────────────────────────────
|
|
501
498
|
const LT = 0x3c;
|
|
502
499
|
const GT = 0x3e;
|
|
503
500
|
const SLASH = 0x2f;
|
|
@@ -703,12 +700,9 @@ function tagLeaks(text, reader, scope, meter, from = 0, to = text.length) {
|
|
|
703
700
|
}
|
|
704
701
|
return spans;
|
|
705
702
|
}
|
|
706
|
-
// ── CSS ──────────────────────────────────────────────────────────────
|
|
707
703
|
const CSS_NAME = /(?:[A-Za-z0-9_\-\u0080-]|\\(?:[0-9a-fA-F]{1,6}(?:\r\n|[ \t\n\r\f])?|[^\n\r\f0-9a-fA-F]))+/y;
|
|
708
|
-
const
|
|
709
|
-
|
|
710
|
-
"'": /(?:[^\x27\\\n\r\f]|\\(?:\r\n|[\s\S]))*/y,
|
|
711
|
-
};
|
|
704
|
+
const CSS_DOUBLE_QUOTED = /(?:[^\x22\\\n\r\f]|\\(?:\r\n|[\s\S]))*/y;
|
|
705
|
+
const CSS_SINGLE_QUOTED = /(?:[^\x27\\\n\r\f]|\\(?:\r\n|[\s\S]))*/y;
|
|
712
706
|
const CSS_URL_BODY = /(?:[^)\\]|\\[\s\S])*/y;
|
|
713
707
|
/**
|
|
714
708
|
* Every URL CSS could load, read as the CSS tokenizer reads it: each
|
|
@@ -726,7 +720,7 @@ function cssUrls(css) {
|
|
|
726
720
|
i = close < 0 ? css.length : close + 2;
|
|
727
721
|
}
|
|
728
722
|
else if (char === '"' || char === "'") {
|
|
729
|
-
const string =
|
|
723
|
+
const string = char === '"' ? CSS_DOUBLE_QUOTED : CSS_SINGLE_QUOTED;
|
|
730
724
|
string.lastIndex = i + 1;
|
|
731
725
|
urls.push(unescapeCss(string.exec(css)[0]));
|
|
732
726
|
i = string.lastIndex + 1;
|
|
@@ -781,7 +775,6 @@ function styleLeaks(text, scope, meter, from = 0, to = text.length) {
|
|
|
781
775
|
}
|
|
782
776
|
return spans;
|
|
783
777
|
}
|
|
784
|
-
// ── Checks ───────────────────────────────────────────────────────────
|
|
785
778
|
/** `read`'s spans, sorted; all of `text` when reading it would decode past its cap. */
|
|
786
779
|
function readFailingClosed(text, read) {
|
|
787
780
|
try {
|
|
@@ -811,10 +804,9 @@ function linkLeakSpans(text, scope, skipImages) {
|
|
|
811
804
|
...tagLeaks(text, FOLLOWED, scope, meter),
|
|
812
805
|
]);
|
|
813
806
|
}
|
|
814
|
-
// ── Streaming ────────────────────────────────────────────────────────
|
|
815
807
|
/**
|
|
816
808
|
* A start tag as the tokenizer reads it, up to the `>` that ends it. Each
|
|
817
|
-
* name, value and run of space is read one way only (the lookaheads end each
|
|
809
|
+
* name, value, and run of space is read one way only (the lookaheads end each
|
|
818
810
|
* where the tokenizer does), so a tag that never ends fails in linear time.
|
|
819
811
|
*/
|
|
820
812
|
const HTML_START_TAG = /<[A-Za-z][^\t\n\f\r />]*(?=[\t\n\f\r />])(?:[\t\n\f\r /]|[^\t\n\f\r />][^\t\n\f\r />=]*(?=[\t\n\f\r />=])[\t\n\f\r ]*(?![\t\n\f\r ])(?:=[\t\n\f\r ]*(?![\t\n\f\r ])(?:\x22[^\x22]*\x22|\x27[^\x27]*\x27|[^\t\n\f\r >\x22\x27][^\t\n\f\r >]*(?=[\t\n\f\r >])|(?=>))|(?!=)))*>/g;
|
|
@@ -866,7 +858,7 @@ function metered(reads) {
|
|
|
866
858
|
test(match, reply, at) {
|
|
867
859
|
meter.cap = capFor(reply.length);
|
|
868
860
|
try {
|
|
869
|
-
return read.
|
|
861
|
+
return read.leaks(match, reply, at, meter);
|
|
870
862
|
}
|
|
871
863
|
catch (error) {
|
|
872
864
|
if (error instanceof Overspent)
|
|
@@ -894,13 +886,13 @@ function imageReadings(scope) {
|
|
|
894
886
|
return metered([
|
|
895
887
|
(reply, from, to, meter) => inlineLeaks(reply, imageOpeners(reply, from, to), scope, meter),
|
|
896
888
|
{
|
|
897
|
-
|
|
889
|
+
leaks(match, reply, _at, meter) {
|
|
898
890
|
const leaks = definitionLeaks(match, scope, meter).length > 0;
|
|
899
891
|
leakingDefinition ||= leaks;
|
|
900
892
|
return leaks && openerIn(reply);
|
|
901
893
|
},
|
|
902
894
|
},
|
|
903
|
-
{
|
|
895
|
+
{ leaks: () => leakingDefinition },
|
|
904
896
|
(reply, from, to, meter) => tagLeaks(reply, LOADED, scope, meter, from, to),
|
|
905
897
|
(reply, from, to, meter) => styleLeaks(reply, scope, meter, from, to),
|
|
906
898
|
]);
|
|
@@ -908,9 +900,9 @@ function imageReadings(scope) {
|
|
|
908
900
|
function linkReadings(scope, skipImages) {
|
|
909
901
|
return metered([
|
|
910
902
|
(reply, from, to, meter) => inlineLeaks(reply, linkOpeners(reply, from, to, skipImages), scope, meter),
|
|
911
|
-
{
|
|
912
|
-
{
|
|
913
|
-
{
|
|
903
|
+
{ leaks: (match, _reply, _at, meter) => definitionLeaks(match, scope, meter).length > 0 },
|
|
904
|
+
{ leaks: (match, _reply, _at, meter) => autolinkLeaks(match, scope, meter).length > 0 },
|
|
905
|
+
{ leaks: (match, _reply, _at, meter) => bareLinkLeaks(match, scope, meter).length > 0 },
|
|
914
906
|
(reply, from, to, meter) => tagLeaks(reply, FOLLOWED, scope, meter, from, to),
|
|
915
907
|
]);
|
|
916
908
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import type { EgressEnforcer, GuardrailContext, GuardrailHit, OutboundPayload, Verdict } from './types.js';
|
|
1
|
+
import type { ModelEvent } from '../kernel/types.js';
|
|
2
|
+
import type { ResolvedDetect } from './detectors.js';
|
|
3
|
+
import type { GuardrailContext, GuardrailHit } from './types.js';
|
|
5
4
|
/** Why a reply was withheld, for the builder (`errorInternal`); the user reads `error.safety`. */
|
|
6
5
|
declare const WITHHELD_REASON: {
|
|
7
6
|
readonly canary: "canary leaked";
|
|
@@ -9,98 +8,39 @@ declare const WITHHELD_REASON: {
|
|
|
9
8
|
readonly providerToolLeak: "a provider-side tool already sent the canary or system prompt";
|
|
10
9
|
readonly egress: "Turn withheld: egress disclosure violation";
|
|
11
10
|
};
|
|
12
|
-
/** Never carries the live token, only a placeholder. */
|
|
13
|
-
declare const CANARY_HIT: GuardrailHit;
|
|
14
|
-
declare const PROMPT_ECHO_HIT: GuardrailHit;
|
|
15
11
|
/** The prompt-echo hit, when `text` repeats the guarded system prompt's own words. */
|
|
16
12
|
declare function promptEchoHits(text: string, privateSystem?: readonly string[], canary?: string): GuardrailHit[];
|
|
13
|
+
/** What a prompt-leak check reads of the turn. */
|
|
14
|
+
type LeakScope = Pick<GuardrailContext, 'canary' | 'canaryGiven' | 'privateSystem'>;
|
|
17
15
|
/**
|
|
18
16
|
* The system-prompt leak hits in any content-bearing field of an event
|
|
19
17
|
* (`guardedEventTexts`). In the report of a provider-side tool they are one
|
|
20
18
|
* `egress.provider-tool-leak`: the call already ran.
|
|
21
19
|
*/
|
|
22
|
-
declare function eventPromptLeakHits(event:
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/** Where a URL check lets a URL through beyond the ones the model was given. */
|
|
28
|
-
interface UrlCheck {
|
|
29
|
-
/** Hostnames the check lets through whatever their URL, such as the host's own CDN. */
|
|
30
|
-
hosts?: readonly string[];
|
|
31
|
-
/**
|
|
32
|
-
* Whether a URL a tool returned counts as given. Default true. A tool result
|
|
33
|
-
* can offer the model URLs to pick from, and the pick tells their server
|
|
34
|
-
* something; false closes that channel, and keeps only what the system
|
|
35
|
-
* prompt, the user and host history gave.
|
|
36
|
-
*/
|
|
37
|
-
fromTools?: boolean;
|
|
20
|
+
declare function eventPromptLeakHits(event: ModelEvent, scope: LeakScope): GuardrailHit[];
|
|
21
|
+
/** A leak of ours in an event that is not the reply's text: its hits, and whether it stops the turn. */
|
|
22
|
+
interface EventLeak {
|
|
23
|
+
stop: boolean;
|
|
24
|
+
hits: GuardrailHit[];
|
|
38
25
|
}
|
|
39
26
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
27
|
+
* What the detectors of what is ours find in an event's host content
|
|
28
|
+
* (`guardedEventTexts`) under their actions at `boundary`, as the event goes
|
|
29
|
+
* to the host with the reply. `flag` reports it; `redact` and `block` stop the
|
|
30
|
+
* turn, as an event has no text to replace. The report of a provider-side tool
|
|
31
|
+
* is read whatever the actions are and always stops: the call already ran.
|
|
43
32
|
*/
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
sensitive?: SensitiveSelection;
|
|
51
|
-
/** The fence the kernel puts around user data, and the canary's note. Default on. */
|
|
52
|
-
boundary?: boolean;
|
|
53
|
-
/** Injection phrasing in the reply, as written or disguised. Default on. */
|
|
54
|
-
injection?: boolean;
|
|
55
|
-
/** Images that load a URL the model was not given. Default on. */
|
|
56
|
-
images?: boolean | UrlCheck;
|
|
57
|
-
/**
|
|
58
|
-
* Links to a URL the model was not given. Default off: a link loads on a
|
|
59
|
-
* click, or where the host unfurls links into previews, and replies cite
|
|
60
|
-
* pages from what the model knows. A host that unfurls turns it on.
|
|
61
|
-
*/
|
|
62
|
-
links?: boolean | UrlCheck;
|
|
63
|
-
}
|
|
64
|
-
/** `EgressChecks` with defaults applied; a URL check is undefined when off. */
|
|
65
|
-
interface ResolvedEgressChecks {
|
|
66
|
-
sensitive: SensitiveGroups;
|
|
67
|
-
boundary: boolean;
|
|
68
|
-
injection: boolean;
|
|
69
|
-
images?: UrlCheck;
|
|
70
|
-
links?: UrlCheck;
|
|
71
|
-
}
|
|
72
|
-
declare function resolveEgressChecks(checks?: EgressChecks): ResolvedEgressChecks;
|
|
73
|
-
/** Every check off: the system-prompt leak checks alone. */
|
|
74
|
-
declare const NO_CHECKS: ResolvedEgressChecks;
|
|
75
|
-
declare const DEFAULT_CHECKS: ResolvedEgressChecks;
|
|
76
|
-
/** What the bundled policy reads besides the reply. */
|
|
77
|
-
interface EgressScope {
|
|
78
|
-
canary?: string;
|
|
79
|
-
privateSystem?: readonly string[];
|
|
80
|
-
/** The URLs the model was given this turn. */
|
|
81
|
-
given?: GivenUrls;
|
|
82
|
-
}
|
|
83
|
-
/** The bundled policy's hits in `text`, from the checks `checks` runs. */
|
|
84
|
-
declare function collectEgressHits(text: string, scope?: EgressScope, checks?: ResolvedEgressChecks): GuardrailHit[];
|
|
33
|
+
declare function eventLeak(event: ModelEvent, scope: LeakScope, detect: ResolvedDetect, boundary: 'reply' | 'live_reply'): EventLeak | undefined;
|
|
34
|
+
/** Whether a hit is a system-prompt leak. */
|
|
35
|
+
declare function isPromptLeakHit(hit: GuardrailHit): boolean;
|
|
36
|
+
/** Why a system-prompt leak withheld the reply, for the builder. */
|
|
37
|
+
declare function promptLeakReason(hits: GuardrailHit[]): string;
|
|
38
|
+
/** The distinct rule names among the hits. */
|
|
85
39
|
declare function hitRules(hits: GuardrailHit[]): string[];
|
|
86
|
-
/** An enforce that blocks on `collect`'s hits in the reply and in any structured output. */
|
|
87
|
-
declare function hitsEnforcer(collect: (text: string, context: GuardrailContext) => GuardrailHit[]): (payload: OutboundPayload, context: GuardrailContext) => Verdict;
|
|
88
|
-
/** What the bundled policy reads from a gate's context. */
|
|
89
|
-
declare function egressScope(context: GuardrailContext): EgressScope;
|
|
90
|
-
/** Default egress enforce: every bundled check at its default (`EgressChecks`). */
|
|
91
|
-
declare const standardEgressEnforce: (payload: OutboundPayload, context: GuardrailContext) => Verdict;
|
|
92
|
-
declare function registerEgressChecks(enforce: EgressEnforcer, checks: ResolvedEgressChecks): void;
|
|
93
|
-
/** The bundled checks `enforce` runs; undefined for a host enforce, whose checks are its own. */
|
|
94
|
-
declare function egressChecksOf(enforce: EgressEnforcer | undefined): ResolvedEgressChecks | undefined;
|
|
95
|
-
/** A misspelt check or group would leave the check it meant at its default, silently. */
|
|
96
|
-
declare function egressChecksProblem(path: string, checks: unknown): string | undefined;
|
|
97
40
|
/**
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* ordinary `onBlock` handling instead of surfacing a raw host stack trace. The
|
|
101
|
-
* thrown message may carry host internals, so it goes to the builder only
|
|
102
|
-
* (`errorInternal`); the model reads the lexicon's `egress.policy_failed`.
|
|
41
|
+
* The words of the canary note a turn binds, when the profile's labels
|
|
42
|
+
* rewords it so that `SYSTEM_BOUNDARY` no longer reads them.
|
|
103
43
|
*/
|
|
104
|
-
declare function
|
|
105
|
-
export type {
|
|
106
|
-
export {
|
|
44
|
+
declare function boundaryNote({ canary, labels, }: Pick<GuardrailContext, 'canary' | 'labels'>): string | undefined;
|
|
45
|
+
export type { EventLeak, LeakScope };
|
|
46
|
+
export { boundaryNote, eventLeak, eventPromptLeakHits, hitRules, isPromptLeakHit, promptEchoHits, promptLeakReason, WITHHELD_REASON, };
|