@sema-ai/core 1.275.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5433 -0
- package/LICENSE +27 -0
- package/NOTICE.md +30 -0
- package/README.md +1040 -0
- package/dist/agents/agent-definition.d.ts +10 -0
- package/dist/agents/agent-definition.d.ts.map +1 -0
- package/dist/agents/agent-definition.js +18 -0
- package/dist/agents/agent-definition.js.map +1 -0
- package/dist/agents/builtin-agents.d.ts +69 -0
- package/dist/agents/builtin-agents.d.ts.map +1 -0
- package/dist/agents/builtin-agents.js +177 -0
- package/dist/agents/builtin-agents.js.map +1 -0
- package/dist/agents/cascade.d.ts +101 -0
- package/dist/agents/cascade.d.ts.map +1 -0
- package/dist/agents/cascade.js +189 -0
- package/dist/agents/cascade.js.map +1 -0
- package/dist/agents/observer.d.ts +209 -0
- package/dist/agents/observer.d.ts.map +1 -0
- package/dist/agents/observer.js +495 -0
- package/dist/agents/observer.js.map +1 -0
- package/dist/agents/repair-loop.d.ts +236 -0
- package/dist/agents/repair-loop.d.ts.map +1 -0
- package/dist/agents/repair-loop.js +293 -0
- package/dist/agents/repair-loop.js.map +1 -0
- package/dist/agents/session-util.d.ts +8 -0
- package/dist/agents/session-util.d.ts.map +1 -0
- package/dist/agents/session-util.js +9 -0
- package/dist/agents/session-util.js.map +1 -0
- package/dist/agents/subagent-steps.d.ts +93 -0
- package/dist/agents/subagent-steps.d.ts.map +1 -0
- package/dist/agents/subagent-steps.js +206 -0
- package/dist/agents/subagent-steps.js.map +1 -0
- package/dist/agents/subagent.d.ts +441 -0
- package/dist/agents/subagent.d.ts.map +1 -0
- package/dist/agents/subagent.js +2492 -0
- package/dist/agents/subagent.js.map +1 -0
- package/dist/agents/suspend-guard.d.ts +35 -0
- package/dist/agents/suspend-guard.d.ts.map +1 -0
- package/dist/agents/suspend-guard.js +48 -0
- package/dist/agents/suspend-guard.js.map +1 -0
- package/dist/agents/teacher.d.ts +137 -0
- package/dist/agents/teacher.d.ts.map +1 -0
- package/dist/agents/teacher.js +575 -0
- package/dist/agents/teacher.js.map +1 -0
- package/dist/agents/team.d.ts +211 -0
- package/dist/agents/team.d.ts.map +1 -0
- package/dist/agents/team.js +293 -0
- package/dist/agents/team.js.map +1 -0
- package/dist/agents/tool-filter.d.ts +29 -0
- package/dist/agents/tool-filter.d.ts.map +1 -0
- package/dist/agents/tool-filter.js +50 -0
- package/dist/agents/tool-filter.js.map +1 -0
- package/dist/agents/verify.d.ts +177 -0
- package/dist/agents/verify.d.ts.map +1 -0
- package/dist/agents/verify.js +305 -0
- package/dist/agents/verify.js.map +1 -0
- package/dist/bench/metrics.d.ts +714 -0
- package/dist/bench/metrics.d.ts.map +1 -0
- package/dist/bench/metrics.js +618 -0
- package/dist/bench/metrics.js.map +1 -0
- package/dist/bin/sema-tb.d.ts +3 -0
- package/dist/bin/sema-tb.d.ts.map +1 -0
- package/dist/bin/sema-tb.js +516 -0
- package/dist/bin/sema-tb.js.map +1 -0
- package/dist/bin/tb-env.d.ts +13 -0
- package/dist/bin/tb-env.d.ts.map +1 -0
- package/dist/bin/tb-env.js +26 -0
- package/dist/bin/tb-env.js.map +1 -0
- package/dist/brain/anthropic.d.ts +46 -0
- package/dist/brain/anthropic.d.ts.map +1 -0
- package/dist/brain/anthropic.js +830 -0
- package/dist/brain/anthropic.js.map +1 -0
- package/dist/brain/circuit-breaker.d.ts +46 -0
- package/dist/brain/circuit-breaker.d.ts.map +1 -0
- package/dist/brain/circuit-breaker.js +173 -0
- package/dist/brain/circuit-breaker.js.map +1 -0
- package/dist/brain/degrading.d.ts +98 -0
- package/dist/brain/degrading.d.ts.map +1 -0
- package/dist/brain/degrading.js +249 -0
- package/dist/brain/degrading.js.map +1 -0
- package/dist/brain/errors.d.ts +31 -0
- package/dist/brain/errors.d.ts.map +1 -0
- package/dist/brain/errors.js +58 -0
- package/dist/brain/errors.js.map +1 -0
- package/dist/brain/failover.d.ts +18 -0
- package/dist/brain/failover.d.ts.map +1 -0
- package/dist/brain/failover.js +118 -0
- package/dist/brain/failover.js.map +1 -0
- package/dist/brain/model-presets.d.ts +36 -0
- package/dist/brain/model-presets.d.ts.map +1 -0
- package/dist/brain/model-presets.js +54 -0
- package/dist/brain/model-presets.js.map +1 -0
- package/dist/brain/openai.d.ts +43 -0
- package/dist/brain/openai.d.ts.map +1 -0
- package/dist/brain/openai.js +784 -0
- package/dist/brain/openai.js.map +1 -0
- package/dist/brain/reasoning.d.ts +138 -0
- package/dist/brain/reasoning.d.ts.map +1 -0
- package/dist/brain/reasoning.js +146 -0
- package/dist/brain/reasoning.js.map +1 -0
- package/dist/brain/repetition.d.ts +60 -0
- package/dist/brain/repetition.d.ts.map +1 -0
- package/dist/brain/repetition.js +121 -0
- package/dist/brain/repetition.js.map +1 -0
- package/dist/brain/request-params.d.ts +29 -0
- package/dist/brain/request-params.d.ts.map +1 -0
- package/dist/brain/request-params.js +78 -0
- package/dist/brain/request-params.js.map +1 -0
- package/dist/brain/retry.d.ts +18 -0
- package/dist/brain/retry.d.ts.map +1 -0
- package/dist/brain/retry.js +42 -0
- package/dist/brain/retry.js.map +1 -0
- package/dist/brain/routing.d.ts +19 -0
- package/dist/brain/routing.d.ts.map +1 -0
- package/dist/brain/routing.js +44 -0
- package/dist/brain/routing.js.map +1 -0
- package/dist/brain/status-sink.d.ts +46 -0
- package/dist/brain/status-sink.d.ts.map +1 -0
- package/dist/brain/status-sink.js +36 -0
- package/dist/brain/status-sink.js.map +1 -0
- package/dist/brain/stream-engine.d.ts +85 -0
- package/dist/brain/stream-engine.d.ts.map +1 -0
- package/dist/brain/stream-engine.js +391 -0
- package/dist/brain/stream-engine.js.map +1 -0
- package/dist/brain/timeout.d.ts +44 -0
- package/dist/brain/timeout.d.ts.map +1 -0
- package/dist/brain/timeout.js +41 -0
- package/dist/brain/timeout.js.map +1 -0
- package/dist/brain/tool-call-repair.d.ts +15 -0
- package/dist/brain/tool-call-repair.d.ts.map +1 -0
- package/dist/brain/tool-call-repair.js +67 -0
- package/dist/brain/tool-call-repair.js.map +1 -0
- package/dist/brain/walltime.d.ts +14 -0
- package/dist/brain/walltime.d.ts.map +1 -0
- package/dist/brain/walltime.js +14 -0
- package/dist/brain/walltime.js.map +1 -0
- package/dist/core/arg-summary.d.ts +19 -0
- package/dist/core/arg-summary.d.ts.map +1 -0
- package/dist/core/arg-summary.js +96 -0
- package/dist/core/arg-summary.js.map +1 -0
- package/dist/core/ask-question.d.ts +113 -0
- package/dist/core/ask-question.d.ts.map +1 -0
- package/dist/core/ask-question.js +246 -0
- package/dist/core/ask-question.js.map +1 -0
- package/dist/core/auto-compaction.d.ts +341 -0
- package/dist/core/auto-compaction.d.ts.map +1 -0
- package/dist/core/auto-compaction.js +495 -0
- package/dist/core/auto-compaction.js.map +1 -0
- package/dist/core/auto-promote.d.ts +126 -0
- package/dist/core/auto-promote.d.ts.map +1 -0
- package/dist/core/auto-promote.js +171 -0
- package/dist/core/auto-promote.js.map +1 -0
- package/dist/core/background-shell.d.ts +128 -0
- package/dist/core/background-shell.d.ts.map +1 -0
- package/dist/core/background-shell.js +42 -0
- package/dist/core/background-shell.js.map +1 -0
- package/dist/core/cache-break-detector.d.ts +63 -0
- package/dist/core/cache-break-detector.d.ts.map +1 -0
- package/dist/core/cache-break-detector.js +0 -0
- package/dist/core/cache-break-detector.js.map +1 -0
- package/dist/core/canonical-json.d.ts +45 -0
- package/dist/core/canonical-json.d.ts.map +1 -0
- package/dist/core/canonical-json.js +132 -0
- package/dist/core/canonical-json.js.map +1 -0
- package/dist/core/checkpoint-store.d.ts +1101 -0
- package/dist/core/checkpoint-store.d.ts.map +1 -0
- package/dist/core/checkpoint-store.js +514 -0
- package/dist/core/checkpoint-store.js.map +1 -0
- package/dist/core/consolidate-scope.d.ts +94 -0
- package/dist/core/consolidate-scope.d.ts.map +1 -0
- package/dist/core/consolidate-scope.js +158 -0
- package/dist/core/consolidate-scope.js.map +1 -0
- package/dist/core/context-edit.d.ts +82 -0
- package/dist/core/context-edit.d.ts.map +1 -0
- package/dist/core/context-edit.js +149 -0
- package/dist/core/context-edit.js.map +1 -0
- package/dist/core/context-guard.d.ts +43 -0
- package/dist/core/context-guard.d.ts.map +1 -0
- package/dist/core/context-guard.js +171 -0
- package/dist/core/context-guard.js.map +1 -0
- package/dist/core/dynamic-recall.d.ts +100 -0
- package/dist/core/dynamic-recall.d.ts.map +1 -0
- package/dist/core/dynamic-recall.js +108 -0
- package/dist/core/dynamic-recall.js.map +1 -0
- package/dist/core/exec-gate.d.ts +74 -0
- package/dist/core/exec-gate.d.ts.map +1 -0
- package/dist/core/exec-gate.js +143 -0
- package/dist/core/exec-gate.js.map +1 -0
- package/dist/core/exec-output-tail.d.ts +37 -0
- package/dist/core/exec-output-tail.d.ts.map +1 -0
- package/dist/core/exec-output-tail.js +63 -0
- package/dist/core/exec-output-tail.js.map +1 -0
- package/dist/core/file-snapshot-store.d.ts +137 -0
- package/dist/core/file-snapshot-store.d.ts.map +1 -0
- package/dist/core/file-snapshot-store.js +319 -0
- package/dist/core/file-snapshot-store.js.map +1 -0
- package/dist/core/git-worktree-env.d.ts +41 -0
- package/dist/core/git-worktree-env.d.ts.map +1 -0
- package/dist/core/git-worktree-env.js +64 -0
- package/dist/core/git-worktree-env.js.map +1 -0
- package/dist/core/hooks.d.ts +372 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +269 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/lsp-diagnostics.d.ts +74 -0
- package/dist/core/lsp-diagnostics.d.ts.map +1 -0
- package/dist/core/lsp-diagnostics.js +125 -0
- package/dist/core/lsp-diagnostics.js.map +1 -0
- package/dist/core/lsp-protocol.d.ts +28 -0
- package/dist/core/lsp-protocol.d.ts.map +1 -0
- package/dist/core/lsp-protocol.js +179 -0
- package/dist/core/lsp-protocol.js.map +1 -0
- package/dist/core/lsp-session.d.ts +56 -0
- package/dist/core/lsp-session.d.ts.map +1 -0
- package/dist/core/lsp-session.js +185 -0
- package/dist/core/lsp-session.js.map +1 -0
- package/dist/core/lsp.d.ts +132 -0
- package/dist/core/lsp.d.ts.map +1 -0
- package/dist/core/lsp.js +147 -0
- package/dist/core/lsp.js.map +1 -0
- package/dist/core/mcp.d.ts +294 -0
- package/dist/core/mcp.d.ts.map +1 -0
- package/dist/core/mcp.js +992 -0
- package/dist/core/mcp.js.map +1 -0
- package/dist/core/media-byte-cap.d.ts +34 -0
- package/dist/core/media-byte-cap.d.ts.map +1 -0
- package/dist/core/media-byte-cap.js +76 -0
- package/dist/core/media-byte-cap.js.map +1 -0
- package/dist/core/memory-engine/data-plane.d.ts +103 -0
- package/dist/core/memory-engine/data-plane.d.ts.map +1 -0
- package/dist/core/memory-engine/data-plane.js +272 -0
- package/dist/core/memory-engine/data-plane.js.map +1 -0
- package/dist/core/memory-engine/dual-root.d.ts +40 -0
- package/dist/core/memory-engine/dual-root.d.ts.map +1 -0
- package/dist/core/memory-engine/dual-root.js +95 -0
- package/dist/core/memory-engine/dual-root.js.map +1 -0
- package/dist/core/memory-engine/engine.d.ts +161 -0
- package/dist/core/memory-engine/engine.d.ts.map +1 -0
- package/dist/core/memory-engine/engine.js +1110 -0
- package/dist/core/memory-engine/engine.js.map +1 -0
- package/dist/core/memory-engine/file-backend.d.ts +162 -0
- package/dist/core/memory-engine/file-backend.d.ts.map +1 -0
- package/dist/core/memory-engine/file-backend.js +948 -0
- package/dist/core/memory-engine/file-backend.js.map +1 -0
- package/dist/core/memory-engine/frontmatter.d.ts +24 -0
- package/dist/core/memory-engine/frontmatter.d.ts.map +1 -0
- package/dist/core/memory-engine/frontmatter.js +135 -0
- package/dist/core/memory-engine/frontmatter.js.map +1 -0
- package/dist/core/memory-engine/index.d.ts +13 -0
- package/dist/core/memory-engine/index.d.ts.map +1 -0
- package/dist/core/memory-engine/index.js +28 -0
- package/dist/core/memory-engine/index.js.map +1 -0
- package/dist/core/memory-engine/layout.d.ts +123 -0
- package/dist/core/memory-engine/layout.d.ts.map +1 -0
- package/dist/core/memory-engine/layout.js +643 -0
- package/dist/core/memory-engine/layout.js.map +1 -0
- package/dist/core/memory-engine/memory-backend-contract.d.ts +22 -0
- package/dist/core/memory-engine/memory-backend-contract.d.ts.map +1 -0
- package/dist/core/memory-engine/memory-backend-contract.js +271 -0
- package/dist/core/memory-engine/memory-backend-contract.js.map +1 -0
- package/dist/core/memory-engine/migrate.d.ts +17 -0
- package/dist/core/memory-engine/migrate.d.ts.map +1 -0
- package/dist/core/memory-engine/migrate.js +35 -0
- package/dist/core/memory-engine/migrate.js.map +1 -0
- package/dist/core/memory-engine/scan.d.ts +20 -0
- package/dist/core/memory-engine/scan.d.ts.map +1 -0
- package/dist/core/memory-engine/scan.js +84 -0
- package/dist/core/memory-engine/scan.js.map +1 -0
- package/dist/core/memory-engine/scope-contract.d.ts +104 -0
- package/dist/core/memory-engine/scope-contract.d.ts.map +1 -0
- package/dist/core/memory-engine/scope-contract.js +288 -0
- package/dist/core/memory-engine/scope-contract.js.map +1 -0
- package/dist/core/memory-engine/sync-client.d.ts +100 -0
- package/dist/core/memory-engine/sync-client.d.ts.map +1 -0
- package/dist/core/memory-engine/sync-client.js +328 -0
- package/dist/core/memory-engine/sync-client.js.map +1 -0
- package/dist/core/memory-engine/sync.d.ts +97 -0
- package/dist/core/memory-engine/sync.d.ts.map +1 -0
- package/dist/core/memory-engine/sync.js +91 -0
- package/dist/core/memory-engine/sync.js.map +1 -0
- package/dist/core/memory-engine/types.d.ts +279 -0
- package/dist/core/memory-engine/types.d.ts.map +1 -0
- package/dist/core/memory-engine/types.js +9 -0
- package/dist/core/memory-engine/types.js.map +1 -0
- package/dist/core/memory-recall.d.ts +261 -0
- package/dist/core/memory-recall.d.ts.map +1 -0
- package/dist/core/memory-recall.js +600 -0
- package/dist/core/memory-recall.js.map +1 -0
- package/dist/core/memory-vector.d.ts +24 -0
- package/dist/core/memory-vector.d.ts.map +1 -0
- package/dist/core/memory-vector.js +51 -0
- package/dist/core/memory-vector.js.map +1 -0
- package/dist/core/memory.d.ts +502 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +881 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/message-utils.d.ts +7 -0
- package/dist/core/message-utils.d.ts.map +1 -0
- package/dist/core/message-utils.js +10 -0
- package/dist/core/message-utils.js.map +1 -0
- package/dist/core/oracle-isolation.d.ts +85 -0
- package/dist/core/oracle-isolation.d.ts.map +1 -0
- package/dist/core/oracle-isolation.js +121 -0
- package/dist/core/oracle-isolation.js.map +1 -0
- package/dist/core/permission-rules.d.ts +102 -0
- package/dist/core/permission-rules.d.ts.map +1 -0
- package/dist/core/permission-rules.js +357 -0
- package/dist/core/permission-rules.js.map +1 -0
- package/dist/core/present-plan-tool.d.ts +28 -0
- package/dist/core/present-plan-tool.d.ts.map +1 -0
- package/dist/core/present-plan-tool.js +119 -0
- package/dist/core/present-plan-tool.js.map +1 -0
- package/dist/core/pricing.d.ts +48 -0
- package/dist/core/pricing.d.ts.map +1 -0
- package/dist/core/pricing.js +46 -0
- package/dist/core/pricing.js.map +1 -0
- package/dist/core/property-harness.d.ts +126 -0
- package/dist/core/property-harness.d.ts.map +1 -0
- package/dist/core/property-harness.js +192 -0
- package/dist/core/property-harness.js.map +1 -0
- package/dist/core/push-queue.d.ts +10 -0
- package/dist/core/push-queue.d.ts.map +1 -0
- package/dist/core/push-queue.js +42 -0
- package/dist/core/push-queue.js.map +1 -0
- package/dist/core/remote-env.d.ts +432 -0
- package/dist/core/remote-env.d.ts.map +1 -0
- package/dist/core/remote-env.js +77 -0
- package/dist/core/remote-env.js.map +1 -0
- package/dist/core/roles.d.ts +74 -0
- package/dist/core/roles.d.ts.map +1 -0
- package/dist/core/roles.js +272 -0
- package/dist/core/roles.js.map +1 -0
- package/dist/core/runner/active-skill-scope.d.ts +64 -0
- package/dist/core/runner/active-skill-scope.d.ts.map +1 -0
- package/dist/core/runner/active-skill-scope.js +197 -0
- package/dist/core/runner/active-skill-scope.js.map +1 -0
- package/dist/core/runner/assemble-result.d.ts +191 -0
- package/dist/core/runner/assemble-result.d.ts.map +1 -0
- package/dist/core/runner/assemble-result.js +250 -0
- package/dist/core/runner/assemble-result.js.map +1 -0
- package/dist/core/runner/call-cap.d.ts +130 -0
- package/dist/core/runner/call-cap.d.ts.map +1 -0
- package/dist/core/runner/call-cap.js +151 -0
- package/dist/core/runner/call-cap.js.map +1 -0
- package/dist/core/runner/grounding-signal.d.ts +12 -0
- package/dist/core/runner/grounding-signal.d.ts.map +1 -0
- package/dist/core/runner/grounding-signal.js +94 -0
- package/dist/core/runner/grounding-signal.js.map +1 -0
- package/dist/core/runner/image.d.ts +23 -0
- package/dist/core/runner/image.d.ts.map +1 -0
- package/dist/core/runner/image.js +151 -0
- package/dist/core/runner/image.js.map +1 -0
- package/dist/core/runner/memory-consolidation.d.ts +112 -0
- package/dist/core/runner/memory-consolidation.d.ts.map +1 -0
- package/dist/core/runner/memory-consolidation.js +372 -0
- package/dist/core/runner/memory-consolidation.js.map +1 -0
- package/dist/core/runner/prepare-task.d.ts +583 -0
- package/dist/core/runner/prepare-task.d.ts.map +1 -0
- package/dist/core/runner/prepare-task.js +3612 -0
- package/dist/core/runner/prepare-task.js.map +1 -0
- package/dist/core/runner/prompt-suggestions.d.ts +33 -0
- package/dist/core/runner/prompt-suggestions.d.ts.map +1 -0
- package/dist/core/runner/prompt-suggestions.js +116 -0
- package/dist/core/runner/prompt-suggestions.js.map +1 -0
- package/dist/core/runner/runtask.d.ts +274 -0
- package/dist/core/runner/runtask.d.ts.map +1 -0
- package/dist/core/runner/runtask.js +4606 -0
- package/dist/core/runner/runtask.js.map +1 -0
- package/dist/core/runner/session-rule-policy.d.ts +28 -0
- package/dist/core/runner/session-rule-policy.d.ts.map +1 -0
- package/dist/core/runner/session-rule-policy.js +110 -0
- package/dist/core/runner/session-rule-policy.js.map +1 -0
- package/dist/core/runner/strict-output-schema.d.ts +36 -0
- package/dist/core/runner/strict-output-schema.d.ts.map +1 -0
- package/dist/core/runner/strict-output-schema.js +365 -0
- package/dist/core/runner/strict-output-schema.js.map +1 -0
- package/dist/core/runner/synthetic-tools.d.ts +72 -0
- package/dist/core/runner/synthetic-tools.d.ts.map +1 -0
- package/dist/core/runner/synthetic-tools.js +203 -0
- package/dist/core/runner/synthetic-tools.js.map +1 -0
- package/dist/core/runner/tool-disclosure.d.ts +117 -0
- package/dist/core/runner/tool-disclosure.d.ts.map +1 -0
- package/dist/core/runner/tool-disclosure.js +0 -0
- package/dist/core/runner/tool-disclosure.js.map +1 -0
- package/dist/core/runner/turn-attachments.d.ts +381 -0
- package/dist/core/runner/turn-attachments.d.ts.map +1 -0
- package/dist/core/runner/turn-attachments.js +596 -0
- package/dist/core/runner/turn-attachments.js.map +1 -0
- package/dist/core/runner/usage-accounting.d.ts +35 -0
- package/dist/core/runner/usage-accounting.d.ts.map +1 -0
- package/dist/core/runner/usage-accounting.js +45 -0
- package/dist/core/runner/usage-accounting.js.map +1 -0
- package/dist/core/runtime.d.ts +9 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +17 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/safety-axis-vocab.d.ts +33 -0
- package/dist/core/safety-axis-vocab.d.ts.map +1 -0
- package/dist/core/safety-axis-vocab.js +35 -0
- package/dist/core/safety-axis-vocab.js.map +1 -0
- package/dist/core/safety-merge-corpus.d.ts +48 -0
- package/dist/core/safety-merge-corpus.d.ts.map +1 -0
- package/dist/core/safety-merge-corpus.js +203 -0
- package/dist/core/safety-merge-corpus.js.map +1 -0
- package/dist/core/scheduler.d.ts +126 -0
- package/dist/core/scheduler.d.ts.map +1 -0
- package/dist/core/scheduler.js +54 -0
- package/dist/core/scheduler.js.map +1 -0
- package/dist/core/secret-env.d.ts +23 -0
- package/dist/core/secret-env.d.ts.map +1 -0
- package/dist/core/secret-env.js +35 -0
- package/dist/core/secret-env.js.map +1 -0
- package/dist/core/select-model.d.ts +26 -0
- package/dist/core/select-model.d.ts.map +1 -0
- package/dist/core/select-model.js +58 -0
- package/dist/core/select-model.js.map +1 -0
- package/dist/core/sensitive-path-policy.d.ts +24 -0
- package/dist/core/sensitive-path-policy.d.ts.map +1 -0
- package/dist/core/sensitive-path-policy.js +96 -0
- package/dist/core/sensitive-path-policy.js.map +1 -0
- package/dist/core/session-policy-store.d.ts +102 -0
- package/dist/core/session-policy-store.d.ts.map +1 -0
- package/dist/core/session-policy-store.js +177 -0
- package/dist/core/session-policy-store.js.map +1 -0
- package/dist/core/session-reconcile.d.ts +63 -0
- package/dist/core/session-reconcile.d.ts.map +1 -0
- package/dist/core/session-reconcile.js +71 -0
- package/dist/core/session-reconcile.js.map +1 -0
- package/dist/core/session-store.d.ts +99 -0
- package/dist/core/session-store.d.ts.map +1 -0
- package/dist/core/session-store.js +298 -0
- package/dist/core/session-store.js.map +1 -0
- package/dist/core/session.d.ts +144 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +56 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/spec-contract.d.ts +147 -0
- package/dist/core/spec-contract.d.ts.map +1 -0
- package/dist/core/spec-contract.js +340 -0
- package/dist/core/spec-contract.js.map +1 -0
- package/dist/core/strategy-store.d.ts +50 -0
- package/dist/core/strategy-store.d.ts.map +1 -0
- package/dist/core/strategy-store.js +100 -0
- package/dist/core/strategy-store.js.map +1 -0
- package/dist/core/stub-env.d.ts +35 -0
- package/dist/core/stub-env.d.ts.map +1 -0
- package/dist/core/stub-env.js +69 -0
- package/dist/core/stub-env.js.map +1 -0
- package/dist/core/task-notification.d.ts +115 -0
- package/dist/core/task-notification.d.ts.map +1 -0
- package/dist/core/task-notification.js +247 -0
- package/dist/core/task-notification.js.map +1 -0
- package/dist/core/task-outcome.d.ts +80 -0
- package/dist/core/task-outcome.d.ts.map +1 -0
- package/dist/core/task-outcome.js +40 -0
- package/dist/core/task-outcome.js.map +1 -0
- package/dist/core/task-registry.d.ts +349 -0
- package/dist/core/task-registry.d.ts.map +1 -0
- package/dist/core/task-registry.js +1751 -0
- package/dist/core/task-registry.js.map +1 -0
- package/dist/core/tighten-task-spec.d.ts +27 -0
- package/dist/core/tighten-task-spec.d.ts.map +1 -0
- package/dist/core/tighten-task-spec.js +95 -0
- package/dist/core/tighten-task-spec.js.map +1 -0
- package/dist/core/tool-detach.d.ts +31 -0
- package/dist/core/tool-detach.d.ts.map +1 -0
- package/dist/core/tool-detach.js +62 -0
- package/dist/core/tool-detach.js.map +1 -0
- package/dist/core/tool-errors.d.ts +72 -0
- package/dist/core/tool-errors.d.ts.map +1 -0
- package/dist/core/tool-errors.js +194 -0
- package/dist/core/tool-errors.js.map +1 -0
- package/dist/core/tool-name-aliases.d.ts +5 -0
- package/dist/core/tool-name-aliases.d.ts.map +1 -0
- package/dist/core/tool-name-aliases.js +130 -0
- package/dist/core/tool-name-aliases.js.map +1 -0
- package/dist/core/tool-policy.d.ts +295 -0
- package/dist/core/tool-policy.d.ts.map +1 -0
- package/dist/core/tool-policy.js +567 -0
- package/dist/core/tool-policy.js.map +1 -0
- package/dist/core/tool-result-budget.d.ts +44 -0
- package/dist/core/tool-result-budget.d.ts.map +1 -0
- package/dist/core/tool-result-budget.js +140 -0
- package/dist/core/tool-result-budget.js.map +1 -0
- package/dist/core/tool-result-store.d.ts +136 -0
- package/dist/core/tool-result-store.d.ts.map +1 -0
- package/dist/core/tool-result-store.js +219 -0
- package/dist/core/tool-result-store.js.map +1 -0
- package/dist/core/tools.d.ts +14 -0
- package/dist/core/tools.d.ts.map +1 -0
- package/dist/core/tools.js +98 -0
- package/dist/core/tools.js.map +1 -0
- package/dist/core/trace.d.ts +340 -0
- package/dist/core/trace.d.ts.map +1 -0
- package/dist/core/trace.js +12 -0
- package/dist/core/trace.js.map +1 -0
- package/dist/core/types.d.ts +2828 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/untrusted-egress.d.ts +32 -0
- package/dist/core/untrusted-egress.d.ts.map +1 -0
- package/dist/core/untrusted-egress.js +49 -0
- package/dist/core/untrusted-egress.js.map +1 -0
- package/dist/core/untrusted-text.d.ts +64 -0
- package/dist/core/untrusted-text.d.ts.map +1 -0
- package/dist/core/untrusted-text.js +119 -0
- package/dist/core/untrusted-text.js.map +1 -0
- package/dist/core/warm-resume.d.ts +23 -0
- package/dist/core/warm-resume.d.ts.map +1 -0
- package/dist/core/warm-resume.js +28 -0
- package/dist/core/warm-resume.js.map +1 -0
- package/dist/core/with-retry.d.ts +43 -0
- package/dist/core/with-retry.d.ts.map +1 -0
- package/dist/core/with-retry.js +59 -0
- package/dist/core/with-retry.js.map +1 -0
- package/dist/core/workflow-journal-store.d.ts +44 -0
- package/dist/core/workflow-journal-store.d.ts.map +1 -0
- package/dist/core/workflow-journal-store.js +47 -0
- package/dist/core/workflow-journal-store.js.map +1 -0
- package/dist/core/workflow-run-store-contract.d.ts +31 -0
- package/dist/core/workflow-run-store-contract.d.ts.map +1 -0
- package/dist/core/workflow-run-store-contract.js +191 -0
- package/dist/core/workflow-run-store-contract.js.map +1 -0
- package/dist/core/workflow-run-store.d.ts +149 -0
- package/dist/core/workflow-run-store.d.ts.map +1 -0
- package/dist/core/workflow-run-store.js +110 -0
- package/dist/core/workflow-run-store.js.map +1 -0
- package/dist/engine/compaction/compaction.d.ts +139 -0
- package/dist/engine/compaction/compaction.d.ts.map +1 -0
- package/dist/engine/compaction/compaction.js +1030 -0
- package/dist/engine/compaction/compaction.js.map +1 -0
- package/dist/engine/compaction/utils.d.ts +45 -0
- package/dist/engine/compaction/utils.d.ts.map +1 -0
- package/dist/engine/compaction/utils.js +203 -0
- package/dist/engine/compaction/utils.js.map +1 -0
- package/dist/engine/execution-env/kill-tree.d.ts +20 -0
- package/dist/engine/execution-env/kill-tree.d.ts.map +1 -0
- package/dist/engine/execution-env/kill-tree.js +183 -0
- package/dist/engine/execution-env/kill-tree.js.map +1 -0
- package/dist/engine/execution-env/node-execution-env.d.ts +133 -0
- package/dist/engine/execution-env/node-execution-env.d.ts.map +1 -0
- package/dist/engine/execution-env/node-execution-env.js +1031 -0
- package/dist/engine/execution-env/node-execution-env.js.map +1 -0
- package/dist/engine/harness/agent-harness.d.ts +174 -0
- package/dist/engine/harness/agent-harness.d.ts.map +1 -0
- package/dist/engine/harness/agent-harness.js +1053 -0
- package/dist/engine/harness/agent-harness.js.map +1 -0
- package/dist/engine/harness/messages.d.ts +17 -0
- package/dist/engine/harness/messages.d.ts.map +1 -0
- package/dist/engine/harness/messages.js +122 -0
- package/dist/engine/harness/messages.js.map +1 -0
- package/dist/engine/harness/types.d.ts +713 -0
- package/dist/engine/harness/types.d.ts.map +1 -0
- package/dist/engine/harness/types.js +100 -0
- package/dist/engine/harness/types.js.map +1 -0
- package/dist/engine/llm/diagnostics.d.ts +23 -0
- package/dist/engine/llm/diagnostics.d.ts.map +1 -0
- package/dist/engine/llm/diagnostics.js +32 -0
- package/dist/engine/llm/diagnostics.js.map +1 -0
- package/dist/engine/llm/event-stream.d.ts +25 -0
- package/dist/engine/llm/event-stream.d.ts.map +1 -0
- package/dist/engine/llm/event-stream.js +103 -0
- package/dist/engine/llm/event-stream.js.map +1 -0
- package/dist/engine/llm/index.d.ts +12 -0
- package/dist/engine/llm/index.d.ts.map +1 -0
- package/dist/engine/llm/index.js +12 -0
- package/dist/engine/llm/index.js.map +1 -0
- package/dist/engine/llm/types.d.ts +753 -0
- package/dist/engine/llm/types.d.ts.map +1 -0
- package/dist/engine/llm/types.js +2 -0
- package/dist/engine/llm/types.js.map +1 -0
- package/dist/engine/llm/validation.d.ts +8 -0
- package/dist/engine/llm/validation.d.ts.map +1 -0
- package/dist/engine/llm/validation.js +318 -0
- package/dist/engine/llm/validation.js.map +1 -0
- package/dist/engine/loop/agent-loop.d.ts +74 -0
- package/dist/engine/loop/agent-loop.d.ts.map +1 -0
- package/dist/engine/loop/agent-loop.js +1490 -0
- package/dist/engine/loop/agent-loop.js.map +1 -0
- package/dist/engine/loop/runtime-deps.d.ts +17 -0
- package/dist/engine/loop/runtime-deps.d.ts.map +1 -0
- package/dist/engine/loop/runtime-deps.js +21 -0
- package/dist/engine/loop/runtime-deps.js.map +1 -0
- package/dist/engine/loop/types.d.ts +609 -0
- package/dist/engine/loop/types.d.ts.map +1 -0
- package/dist/engine/loop/types.js +2 -0
- package/dist/engine/loop/types.js.map +1 -0
- package/dist/engine/lsp/frame-decoder.d.ts +16 -0
- package/dist/engine/lsp/frame-decoder.d.ts.map +1 -0
- package/dist/engine/lsp/frame-decoder.js +53 -0
- package/dist/engine/lsp/frame-decoder.js.map +1 -0
- package/dist/engine/lsp/node-lsp-manager.d.ts +105 -0
- package/dist/engine/lsp/node-lsp-manager.d.ts.map +1 -0
- package/dist/engine/lsp/node-lsp-manager.js +343 -0
- package/dist/engine/lsp/node-lsp-manager.js.map +1 -0
- package/dist/engine/lsp/stdio-lsp-transport.d.ts +37 -0
- package/dist/engine/lsp/stdio-lsp-transport.d.ts.map +1 -0
- package/dist/engine/lsp/stdio-lsp-transport.js +185 -0
- package/dist/engine/lsp/stdio-lsp-transport.js.map +1 -0
- package/dist/engine/session/import-validate.d.ts +44 -0
- package/dist/engine/session/import-validate.d.ts.map +1 -0
- package/dist/engine/session/import-validate.js +92 -0
- package/dist/engine/session/import-validate.js.map +1 -0
- package/dist/engine/session/memory-repo.d.ts +25 -0
- package/dist/engine/session/memory-repo.d.ts.map +1 -0
- package/dist/engine/session/memory-repo.js +59 -0
- package/dist/engine/session/memory-repo.js.map +1 -0
- package/dist/engine/session/memory-storage.d.ts +14 -0
- package/dist/engine/session/memory-storage.d.ts.map +1 -0
- package/dist/engine/session/memory-storage.js +17 -0
- package/dist/engine/session/memory-storage.js.map +1 -0
- package/dist/engine/session/repo-utils.d.ts +11 -0
- package/dist/engine/session/repo-utils.d.ts.map +1 -0
- package/dist/engine/session/repo-utils.js +40 -0
- package/dist/engine/session/repo-utils.js.map +1 -0
- package/dist/engine/session/session.d.ts +34 -0
- package/dist/engine/session/session.d.ts.map +1 -0
- package/dist/engine/session/session.js +227 -0
- package/dist/engine/session/session.js.map +1 -0
- package/dist/engine/session/storage-base.d.ts +38 -0
- package/dist/engine/session/storage-base.d.ts.map +1 -0
- package/dist/engine/session/storage-base.js +157 -0
- package/dist/engine/session/storage-base.js.map +1 -0
- package/dist/engine/session/timestamps.d.ts +3 -0
- package/dist/engine/session/timestamps.d.ts.map +1 -0
- package/dist/engine/session/timestamps.js +15 -0
- package/dist/engine/session/timestamps.js.map +1 -0
- package/dist/engine/session/uuid.d.ts +2 -0
- package/dist/engine/session/uuid.d.ts.map +1 -0
- package/dist/engine/session/uuid.js +50 -0
- package/dist/engine/session/uuid.js.map +1 -0
- package/dist/index.d.ts +160 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +374 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/harness.d.ts +26 -0
- package/dist/internal/harness.d.ts.map +1 -0
- package/dist/internal/harness.js +24 -0
- package/dist/internal/harness.js.map +1 -0
- package/dist/internal/llm.d.ts +9 -0
- package/dist/internal/llm.d.ts.map +1 -0
- package/dist/internal/llm.js +8 -0
- package/dist/internal/llm.js.map +1 -0
- package/dist/orchestration/builtin-workflows.d.ts +44 -0
- package/dist/orchestration/builtin-workflows.d.ts.map +1 -0
- package/dist/orchestration/builtin-workflows.js +165 -0
- package/dist/orchestration/builtin-workflows.js.map +1 -0
- package/dist/orchestration/dev-vm-script-runner.d.ts +24 -0
- package/dist/orchestration/dev-vm-script-runner.d.ts.map +1 -0
- package/dist/orchestration/dev-vm-script-runner.js +106 -0
- package/dist/orchestration/dev-vm-script-runner.js.map +1 -0
- package/dist/orchestration/goal.d.ts +97 -0
- package/dist/orchestration/goal.d.ts.map +1 -0
- package/dist/orchestration/goal.js +248 -0
- package/dist/orchestration/goal.js.map +1 -0
- package/dist/orchestration/run-spec.d.ts +63 -0
- package/dist/orchestration/run-spec.d.ts.map +1 -0
- package/dist/orchestration/run-spec.js +274 -0
- package/dist/orchestration/run-spec.js.map +1 -0
- package/dist/orchestration/run-workflow-tool.d.ts +187 -0
- package/dist/orchestration/run-workflow-tool.d.ts.map +1 -0
- package/dist/orchestration/run-workflow-tool.js +612 -0
- package/dist/orchestration/run-workflow-tool.js.map +1 -0
- package/dist/orchestration/workflow-governance.d.ts +70 -0
- package/dist/orchestration/workflow-governance.d.ts.map +1 -0
- package/dist/orchestration/workflow-governance.js +176 -0
- package/dist/orchestration/workflow-governance.js.map +1 -0
- package/dist/orchestration/workflow-meta.d.ts +41 -0
- package/dist/orchestration/workflow-meta.d.ts.map +1 -0
- package/dist/orchestration/workflow-meta.js +426 -0
- package/dist/orchestration/workflow-meta.js.map +1 -0
- package/dist/orchestration/workflow-observe.d.ts +77 -0
- package/dist/orchestration/workflow-observe.d.ts.map +1 -0
- package/dist/orchestration/workflow-observe.js +177 -0
- package/dist/orchestration/workflow-observe.js.map +1 -0
- package/dist/orchestration/workflow-primitives.d.ts +31 -0
- package/dist/orchestration/workflow-primitives.d.ts.map +1 -0
- package/dist/orchestration/workflow-primitives.js +104 -0
- package/dist/orchestration/workflow-primitives.js.map +1 -0
- package/dist/orchestration/workflow-sandbox-conformance.d.ts +34 -0
- package/dist/orchestration/workflow-sandbox-conformance.d.ts.map +1 -0
- package/dist/orchestration/workflow-sandbox-conformance.js +301 -0
- package/dist/orchestration/workflow-sandbox-conformance.js.map +1 -0
- package/dist/orchestration/workflow-script-runner.d.ts +127 -0
- package/dist/orchestration/workflow-script-runner.d.ts.map +1 -0
- package/dist/orchestration/workflow-script-runner.js +48 -0
- package/dist/orchestration/workflow-script-runner.js.map +1 -0
- package/dist/orchestration/workflow-script-store.d.ts +99 -0
- package/dist/orchestration/workflow-script-store.d.ts.map +1 -0
- package/dist/orchestration/workflow-script-store.js +133 -0
- package/dist/orchestration/workflow-script-store.js.map +1 -0
- package/dist/orchestration/workflow-size-guideline.d.ts +50 -0
- package/dist/orchestration/workflow-size-guideline.d.ts.map +1 -0
- package/dist/orchestration/workflow-size-guideline.js +78 -0
- package/dist/orchestration/workflow-size-guideline.js.map +1 -0
- package/dist/orchestration/workflow.d.ts +624 -0
- package/dist/orchestration/workflow.d.ts.map +1 -0
- package/dist/orchestration/workflow.js +1596 -0
- package/dist/orchestration/workflow.js.map +1 -0
- package/dist/prompts/default.d.ts +474 -0
- package/dist/prompts/default.d.ts.map +1 -0
- package/dist/prompts/default.js +676 -0
- package/dist/prompts/default.js.map +1 -0
- package/dist/prompts/supervisor.d.ts +60 -0
- package/dist/prompts/supervisor.d.ts.map +1 -0
- package/dist/prompts/supervisor.js +162 -0
- package/dist/prompts/supervisor.js.map +1 -0
- package/dist/scenarios/env.d.ts +41 -0
- package/dist/scenarios/env.d.ts.map +1 -0
- package/dist/scenarios/env.js +65 -0
- package/dist/scenarios/env.js.map +1 -0
- package/dist/scenarios/full-body.d.ts +47 -0
- package/dist/scenarios/full-body.d.ts.map +1 -0
- package/dist/scenarios/full-body.js +36 -0
- package/dist/scenarios/full-body.js.map +1 -0
- package/dist/scenarios/scenario-registry.d.ts +107 -0
- package/dist/scenarios/scenario-registry.d.ts.map +1 -0
- package/dist/scenarios/scenario-registry.js +192 -0
- package/dist/scenarios/scenario-registry.js.map +1 -0
- package/dist/scenarios/teacher-quickstart.d.ts +41 -0
- package/dist/scenarios/teacher-quickstart.d.ts.map +1 -0
- package/dist/scenarios/teacher-quickstart.js +32 -0
- package/dist/scenarios/teacher-quickstart.js.map +1 -0
- package/dist/server/http.d.ts +36 -0
- package/dist/server/http.d.ts.map +1 -0
- package/dist/server/http.js +144 -0
- package/dist/server/http.js.map +1 -0
- package/dist/stores/file/checkpoint-store.d.ts +62 -0
- package/dist/stores/file/checkpoint-store.d.ts.map +1 -0
- package/dist/stores/file/checkpoint-store.js +250 -0
- package/dist/stores/file/checkpoint-store.js.map +1 -0
- package/dist/stores/file/file-snapshot-store.d.ts +43 -0
- package/dist/stores/file/file-snapshot-store.d.ts.map +1 -0
- package/dist/stores/file/file-snapshot-store.js +374 -0
- package/dist/stores/file/file-snapshot-store.js.map +1 -0
- package/dist/stores/file/fs-atomic.d.ts +95 -0
- package/dist/stores/file/fs-atomic.d.ts.map +1 -0
- package/dist/stores/file/fs-atomic.js +415 -0
- package/dist/stores/file/fs-atomic.js.map +1 -0
- package/dist/stores/file/index.d.ts +98 -0
- package/dist/stores/file/index.d.ts.map +1 -0
- package/dist/stores/file/index.js +109 -0
- package/dist/stores/file/index.js.map +1 -0
- package/dist/stores/file/memory-store.d.ts +95 -0
- package/dist/stores/file/memory-store.d.ts.map +1 -0
- package/dist/stores/file/memory-store.js +393 -0
- package/dist/stores/file/memory-store.js.map +1 -0
- package/dist/stores/file/session-policy-store.d.ts +24 -0
- package/dist/stores/file/session-policy-store.d.ts.map +1 -0
- package/dist/stores/file/session-policy-store.js +123 -0
- package/dist/stores/file/session-policy-store.js.map +1 -0
- package/dist/stores/file/session-store.d.ts +34 -0
- package/dist/stores/file/session-store.d.ts.map +1 -0
- package/dist/stores/file/session-store.js +175 -0
- package/dist/stores/file/session-store.js.map +1 -0
- package/dist/stores/file/tool-result-store.d.ts +23 -0
- package/dist/stores/file/tool-result-store.d.ts.map +1 -0
- package/dist/stores/file/tool-result-store.js +61 -0
- package/dist/stores/file/tool-result-store.js.map +1 -0
- package/dist/stores/file/workflow-journal-store.d.ts +36 -0
- package/dist/stores/file/workflow-journal-store.d.ts.map +1 -0
- package/dist/stores/file/workflow-journal-store.js +157 -0
- package/dist/stores/file/workflow-journal-store.js.map +1 -0
- package/dist/stores/file/workflow-run-store.d.ts +58 -0
- package/dist/stores/file/workflow-run-store.d.ts.map +1 -0
- package/dist/stores/file/workflow-run-store.js +178 -0
- package/dist/stores/file/workflow-run-store.js.map +1 -0
- package/dist/stores/pg.d.ts +210 -0
- package/dist/stores/pg.d.ts.map +1 -0
- package/dist/stores/pg.js +652 -0
- package/dist/stores/pg.js.map +1 -0
- package/dist/tools/fs/encoding.d.ts +51 -0
- package/dist/tools/fs/encoding.d.ts.map +1 -0
- package/dist/tools/fs/encoding.js +74 -0
- package/dist/tools/fs/encoding.js.map +1 -0
- package/dist/tools/fs/gh-rate-limit.d.ts +19 -0
- package/dist/tools/fs/gh-rate-limit.d.ts.map +1 -0
- package/dist/tools/fs/gh-rate-limit.js +35 -0
- package/dist/tools/fs/gh-rate-limit.js.map +1 -0
- package/dist/tools/fs/index.d.ts +246 -0
- package/dist/tools/fs/index.d.ts.map +1 -0
- package/dist/tools/fs/index.js +2130 -0
- package/dist/tools/fs/index.js.map +1 -0
- package/dist/tools/fs/pdf.d.ts +106 -0
- package/dist/tools/fs/pdf.d.ts.map +1 -0
- package/dist/tools/fs/pdf.js +178 -0
- package/dist/tools/fs/pdf.js.map +1 -0
- package/dist/tools/fs/repo-map.d.ts +15 -0
- package/dist/tools/fs/repo-map.d.ts.map +1 -0
- package/dist/tools/fs/repo-map.js +251 -0
- package/dist/tools/fs/repo-map.js.map +1 -0
- package/dist/tools/fs/safety.d.ts +168 -0
- package/dist/tools/fs/safety.d.ts.map +1 -0
- package/dist/tools/fs/safety.js +479 -0
- package/dist/tools/fs/safety.js.map +1 -0
- package/dist/tools/fs/search.d.ts +118 -0
- package/dist/tools/fs/search.d.ts.map +1 -0
- package/dist/tools/fs/search.js +650 -0
- package/dist/tools/fs/search.js.map +1 -0
- package/dist/tools/gitea-issue.d.ts +39 -0
- package/dist/tools/gitea-issue.d.ts.map +1 -0
- package/dist/tools/gitea-issue.js +91 -0
- package/dist/tools/gitea-issue.js.map +1 -0
- package/dist/tools/monitor.d.ts +64 -0
- package/dist/tools/monitor.d.ts.map +1 -0
- package/dist/tools/monitor.js +135 -0
- package/dist/tools/monitor.js.map +1 -0
- package/dist/tools/scheduler-tools.d.ts +48 -0
- package/dist/tools/scheduler-tools.d.ts.map +1 -0
- package/dist/tools/scheduler-tools.js +449 -0
- package/dist/tools/scheduler-tools.js.map +1 -0
- package/dist/tools/sql-adapters.d.ts +32 -0
- package/dist/tools/sql-adapters.d.ts.map +1 -0
- package/dist/tools/sql-adapters.js +31 -0
- package/dist/tools/sql-adapters.js.map +1 -0
- package/dist/tools/sql.d.ts +36 -0
- package/dist/tools/sql.d.ts.map +1 -0
- package/dist/tools/sql.js +131 -0
- package/dist/tools/sql.js.map +1 -0
- package/dist/tools/task-list.d.ts +26 -0
- package/dist/tools/task-list.d.ts.map +1 -0
- package/dist/tools/task-list.js +352 -0
- package/dist/tools/task-list.js.map +1 -0
- package/dist/tools/todo.d.ts +11 -0
- package/dist/tools/todo.d.ts.map +1 -0
- package/dist/tools/todo.js +126 -0
- package/dist/tools/todo.js.map +1 -0
- package/dist/tools/web.d.ts +59 -0
- package/dist/tools/web.d.ts.map +1 -0
- package/dist/tools/web.js +607 -0
- package/dist/tools/web.js.map +1 -0
- package/dist/tools/worktree.d.ts +88 -0
- package/dist/tools/worktree.d.ts.map +1 -0
- package/dist/tools/worktree.js +434 -0
- package/dist/tools/worktree.js.map +1 -0
- package/docs/A1-ATTRIBUTION-ROUND1-2026-07-09.md +181 -0
- package/docs/AB-ORACLE-GATE-VERDICT-2026-07-10.md +100 -0
- package/docs/ANCHOR-GAP-INVENTORY-2026-07-09.md +143 -0
- package/docs/ARCHITECTURE.md +125 -0
- package/docs/BUGHUNT-2026-07-05-NIGHT.md +98 -0
- package/docs/BUILD.md +63 -0
- package/docs/CANCEL-ASYNC-ATTRIBUTION-2026-07-09.md +98 -0
- package/docs/CC-198-VS-201-DRIFT-2026-07-09.md +70 -0
- package/docs/CC-BASELINE-FAKE-ZERO-AUDIT-2026-07-09.md +51 -0
- package/docs/CC-DRIFT-198-206-AGENT-TYPES-2026-07-10.md +82 -0
- package/docs/CC-DRIFT-198-206-CHANGELOG-2026-07-10.md +82 -0
- package/docs/CC-DRIFT-198-206-REMINDERS-2026-07-10.md +96 -0
- package/docs/CC-DRIFT-198-206-ROADMAP-2026-07-10.md +110 -0
- package/docs/CC-DRIFT-198-206-TOOL-INVENTORY-2026-07-10.md +53 -0
- package/docs/CC-DRIFT-198-206-USAGE-CONSTANTS-2026-07-10.md +64 -0
- package/docs/CC-DRIFT-198-206-WORKFLOW-2026-07-10.md +83 -0
- package/docs/CC-PARITY-CHECKLIST.md +220 -0
- package/docs/CC-PARITY-DEEP-SWEEP-2026-07-07.md +149 -0
- package/docs/CC-SUBAGENT-PROMPT-STUDY-2026-07-09.md +219 -0
- package/docs/CC-TASK-REMINDER-CADENCE-STUDY-2026-07-09.md +396 -0
- package/docs/CC-TOOL-PARITY-SWEEP-2026-07.md +56 -0
- package/docs/CC-TOOL-PROMPT-DEEP-DIFF-2026-07-08.md +274 -0
- package/docs/CC-TOOLSURFACE-DEEP-DIVE-2026-07-07.md +197 -0
- package/docs/CC206-OBSERVER-ANCHORS-2026-07-11.md +463 -0
- package/docs/CC207-CORE-SWEEP-BACKLOG-2026-07-12.md +155 -0
- package/docs/CENTER-CONTROL-PLANE-SEAM.md +86 -0
- package/docs/CLEANUP-CONTRACT-ANCHOR-2026-07-09.md +83 -0
- package/docs/COLD-START-RSI-2026-07-09.md +72 -0
- package/docs/COMPACTION-LIVE-AUDIT-2026-07-09.md +114 -0
- package/docs/CONTEXT-lifecycle-extension-points-and-stop-attribution.md +71 -0
- package/docs/COREWARS-POLYGLOT-TRIAGE-2026-07-09.md +85 -0
- package/docs/DEADTARGET-OVERFULL-HBOX-2026-07-10.md +92 -0
- package/docs/DEADTARGET-PATH-TRACING-REVERSE-2026-07-10.md +87 -0
- package/docs/DEADTARGET-WINNING-AVG-COREWARS-2026-07-10.md +96 -0
- package/docs/DEEPSEEK-API-LIMITS-PROBE-2026-07-09.md +118 -0
- package/docs/DESIGN-140-MOCK-VERIFY-2026-07-11.md +79 -0
- package/docs/DESIGN-140-VERIFICATION-2026-07-11.md +43 -0
- package/docs/DESIGN-DRAFT-workflow-collab-2026-07-11.md +56 -0
- package/docs/DESIGN-ORACLE-GROUNDING-GATE-2026-07-10.md +167 -0
- package/docs/DESIGN-TFRAG-RECONCILE-SCAFFOLD-2026-07-09.md +102 -0
- package/docs/EXP-PA2-PE-DESIGN-2026-07-11.md +220 -0
- package/docs/EXT-DOGFOOD-2026-07-12.md +50 -0
- package/docs/FINAL-VERIFY-SURFACE-AUDIT-2026-07-09.md +44 -0
- package/docs/FRAG-RECON-INVESTIGATION-2026-07-09.md +183 -0
- package/docs/HANDOFF.md +121 -0
- package/docs/KNOWN-ISSUES.md +96 -0
- package/docs/LEGW-WINDOW-TAX-2026-07-10.md +82 -0
- package/docs/LIVE-PROBE-BATCH-2026-07-11.md +207 -0
- package/docs/M2-CERT-ATTRIBUTION-2026-07-10.md +61 -0
- package/docs/M25-LEG-VARIANCE-ATTRIBUTION-2026-07-10.md +81 -0
- package/docs/MAILMAN-TIMEOUT-ATTRIBUTION-2026-07-10.md +88 -0
- package/docs/MEMORY-BACKEND-DIALECT-NOTES.md +69 -0
- package/docs/MTEB-ESCAPE-HATCH-ATTRIBUTION-2026-07-09.md +57 -0
- package/docs/MTEB-LEADERBOARD-ATTRIBUTION-2026-07-10.md +134 -0
- package/docs/ORACLE-GATE-NEGATIVE-SAMPLE-2026-07-11.md +28 -0
- package/docs/PARITY-CONTEXT-TRANSACTIONS-2026-07-10.md +67 -0
- package/docs/PARITY-PROGRESS-MATRIX-2026-07-10.md +37 -0
- package/docs/PARITY-SPOT-AGENT-TYPES-2026-07-10.md +70 -0
- package/docs/PARITY-SPOT-REMINDERS-2026-07-10.md +144 -0
- package/docs/PARITY-SPOT-TOOL-INVENTORY-2026-07-10.md +61 -0
- package/docs/PARITY-SPOT-USAGE-CONSTANTS-2026-07-10.md +95 -0
- package/docs/PARITY-SPOT-WORKFLOW-2026-07-10.md +93 -0
- package/docs/PASSWORD-RECOVERY-PANEL-VERDICT-2026-07-10.md +62 -0
- package/docs/R8-R9-FINALIZE-COORDINATION-2026-07-09.md +124 -0
- package/docs/REPL-CODE-MODE-EVALUATION-2026-07-10.md +187 -0
- package/docs/REPORT-1249-TARGETED.md +48 -0
- package/docs/RESEARCH-3P-MEMORY-SWAP-2026-07-12.md +273 -0
- package/docs/ROADMAP.md +111 -0
- package/docs/RSI-CLOUD-DEPLOY-2026-07-06.md +289 -0
- package/docs/RSI-PROCESS-AI-COLDSTART-2026-07-11.md +68 -0
- package/docs/S18-THOROUGHNESS-AUDIT-2026-07-09.md +113 -0
- package/docs/SERVICE-INTEGRATION-GUIDE.md +298 -0
- package/docs/SUBAGENT-STREAM-RESILIENCE-PARITY-2026-07-10.md +118 -0
- package/docs/SWEBENCH-PRO-RECON-2026-07-11.md +31 -0
- package/docs/TB-EFFICIENCY-TELEMETRY-2026-07-08.md +114 -0
- package/docs/TB-FAILURE-AUTOPSY-2026-07-05-RERUN.md +67 -0
- package/docs/TB-FAIRNESS-AUDIT-2026-07-08.md +141 -0
- package/docs/TB-FULL-1257-2026-07-08.md +77 -0
- package/docs/TB-LEG-GAP-ATTRIBUTION-1261-1263-2026-07-11.md +154 -0
- package/docs/TB-REGRESSION-DAEMON-KILL-2026-07-08.md +58 -0
- package/docs/TB-RSI-CROSSCHECK-2026-07-06.md +68 -0
- package/docs/TB-RSI-LEDGER.md +30 -0
- package/docs/TB-STABLE-SET-2026-07-08.md +127 -0
- package/docs/TB21-RECON-2026-07-11.md +28 -0
- package/docs/TEST-DESIGN-BATCH-1-2-3.md +97 -0
- package/docs/THIRD-PARTY-INTEGRATION.md +45 -0
- package/docs/TOKEN-ESTIMATE-CALIBRATION-LIVE-2026-07-09.md +102 -0
- package/docs/audit-2026-06-10-/347/254/254/344/272/214/350/275/256-/347/251/272/347/231/275/345/214/272/344/270/216/345/277/230/346/216/245/347/272/277.md +147 -0
- package/docs/audit-2026-06-10-/350/256/241/347/256/227bug/346/211/253/346/217/217.md +163 -0
- package/docs/audit-2026-06-11-/344/277/256/345/244/215/345/244/215/345/256/241/344/270/216/345/233/236/345/275/222/344/270/223/346/211/253.md +95 -0
- package/docs/audit-2026-06-12-design71-P1/346/275/234/344/274/217/351/235/242/350/243/201/345/206/263/344/270/216/345/220/236/351/224/231/345/256/241/350/256/241.md +45 -0
- package/docs/audit-2026-06-12-/345/205/254/345/274/200/346/227/213/351/222/256/346/264/273/346/200/247/344/270/216vendored/346/255/273/350/267/257.md +63 -0
- package/docs/audit-2026-06-15/ADDENDUM-second-pass.md +88 -0
- package/docs/audit-2026-06-15/ARCHITECTURE-AND-ROADMAP.md +187 -0
- package/docs/audit-2026-06-15/DOC-CORRECTIONS.md +105 -0
- package/docs/audit-2026-06-15/INDEX.md +49 -0
- package/docs/audit-2026-06-15/ORCHESTRATION-STATUS.md +98 -0
- package/docs/audit-2026-06-15/PRODUCTION-ISSUES.md +189 -0
- package/docs/audit-2026-06-15/REFERENCES-literature.md +139 -0
- package/docs/audit-2026-06-15/VENDOR-REFACTOR-PLAN.md +96 -0
- package/docs/cc-probe-198/README.md +72 -0
- package/docs/cc-probe-198/STABILITY-AUDIT.md +118 -0
- package/docs/cc-probe-198/live-schema-monitor-worktree-2026-07-09.json +56 -0
- package/docs/cc-probe-198/mount-variants.json +536 -0
- package/docs/cc-probe-198/plan-mode-run.json +1 -0
- package/docs/cc-probe-198/probe-bash-bg.json +224 -0
- package/docs/cc-probe-198/probe-edit-mismatch.json +120 -0
- package/docs/cc-probe-198/probe-read-missing.json +62 -0
- package/docs/cc-probe-198/probe-search-empty.json +127 -0
- package/docs/cc-probe-198/probe-task-family.json +227 -0
- package/docs/cc-probe-198/probes.status +6 -0
- package/docs/cc-probe-198/raw-capture-interactive.json +948 -0
- package/docs/cc-probe-198/raw-capture-print.json +787 -0
- package/docs/cc-probe-198/raw-capture2-interactive.json +948 -0
- package/docs/cc-probe-198/raw-capture2-print.json +787 -0
- package/docs/cc-probe-198/system-prompt.txt +135 -0
- package/docs/cc-probe-198/tools-array.json +962 -0
- package/docs/durability-boundary.md +63 -0
- package/docs/fix-2026-06-10-/350/256/241/347/256/227bug/344/277/256/345/244/215-search/346/211/271.md +75 -0
- package/docs/fix-2026-06-11-/347/254/254/344/272/214/350/275/256-/344/277/256/345/244/215-search/346/211/271.md +62 -0
- package/docs/parity-sweep/REPORT-DYNAMIC.md +97 -0
- package/docs/parity-sweep/REPORT-STATIC-GGB.md +127 -0
- package/docs/parity-sweep/REPORT-STATIC-RWE.md +133 -0
- package/docs/vendor-history.md +385 -0
- package/docs/vendored-upstream-diff-2026-07.md +83 -0
- package/package.json +70 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-result-budget.d.ts","sourceRoot":"","sources":["../../src/core/tool-result-budget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAAE,KAAK,eAAe,EAA4D,MAAM,wBAAwB,CAAC;AAExH;;;;;;;;;;;;;;;GAeG;AAEH,qGAAqG;AACrG,eAAO,MAAM,kCAAkC,SAAU,CAAC;AA0C1D,MAAM,WAAW,sBAAsB;IACrC,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wGAAwG;IACxG,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,yFAAyF;IACzF,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB;;yGAEqG;IACrG,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACzF;AAED;yGACyG;AACzG,eAAO,MAAM,2BAA2B,EAAE,WAAW,CAAC,MAAM,CAAwC,CAAC;AAErG,8GAA8G;AAC9G,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,YAAY,EAAE,EACxB,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,YAAY,EAAE,CAAC,CAsEzB"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { isToolResult } from "./message-utils.js";
|
|
2
|
+
import { buildPreview, OFFLOAD_TOOL_NAME, PERSISTED_OUTPUT_PREFIX } from "./tool-result-store.js";
|
|
3
|
+
/**
|
|
4
|
+
* Per-message aggregate tool-result budget (design/64 §17.2 / §24 — CC `MAX_TOOL_RESULTS_PER_MESSAGE_CHARS`,
|
|
5
|
+
* `constants/toolLimits.ts:49`). A single turn's batch of N parallel tool results can each be under the
|
|
6
|
+
* per-tool offload threshold yet SUM past the model/API limit (10×40K = 400K). This caps the aggregate of
|
|
7
|
+
* one turn's tool_result batch: while over budget, the LARGEST fresh non-exempt result is offloaded to a
|
|
8
|
+
* preview (largest-first), repeating until the batch fits.
|
|
9
|
+
*
|
|
10
|
+
* **Simpler than CC by construction (§24.2):** a request-only, non-destructive transform (returns a new
|
|
11
|
+
* array; the durable session keeps full results) applied in the existing `harness.on("context")` hook —
|
|
12
|
+
* the same per-query point as `clearStaleToolResults` (the mirror of CC's query.ts:379). It is DETERMINISTIC
|
|
13
|
+
* (stable `ref = tr_<sessionId>_<toolCallId>` + deterministic {@link buildPreview}), so re-running it every
|
|
14
|
+
* query yields byte-identical previews → prompt-cache safe **without** CC's ContentReplacementState freeze
|
|
15
|
+
* machine (the determinism IS the freeze), and resume-free (the transcript holds originals; this re-applies
|
|
16
|
+
* on replay). Reuses design/30's offload store + preview format; with no store it falls back to a
|
|
17
|
+
* self-contained head+tail truncation preview that still bounds the request.
|
|
18
|
+
*/
|
|
19
|
+
/** CC's per-message cap (chars, not tokens — the "100K token" figure in old notes was unsourced). */
|
|
20
|
+
export const AGGREGATE_TOOL_RESULT_BUDGET_CHARS = 200_000;
|
|
21
|
+
const HEAD = 1_000;
|
|
22
|
+
const TAIL = 1_000;
|
|
23
|
+
/** Upper bound on a preview's fixed wrapper (tags + ref + size digits) — a candidate must be larger than
|
|
24
|
+
* HEAD+TAIL+OVERHEAD for the preview to be smaller than the original (council #2 — else replacing GROWS it). */
|
|
25
|
+
const PREVIEW_OVERHEAD = 256;
|
|
26
|
+
function textChars(content) {
|
|
27
|
+
let n = 0;
|
|
28
|
+
for (const b of content)
|
|
29
|
+
if (b.type === "text" && typeof b.text === "string")
|
|
30
|
+
n += b.text.length;
|
|
31
|
+
return n;
|
|
32
|
+
}
|
|
33
|
+
function textOf(content) {
|
|
34
|
+
return content.filter((b) => b.type === "text").map((b) => b.text).join("\n");
|
|
35
|
+
}
|
|
36
|
+
/** True if this result is ALREADY an offload preview — so it is never re-offloaded. Relies on the preview's
|
|
37
|
+
* text being the FIRST content block (design/30 `buildPreview`/`withToolResultOffload` always put it first,
|
|
38
|
+
* with any image blocks after), which this module also preserves via {@link replaceTextBlock}. */
|
|
39
|
+
function isOffloadedPreview(content) {
|
|
40
|
+
const first = content[0];
|
|
41
|
+
return first?.type === "text" && typeof first.text === "string" && first.text.startsWith(PERSISTED_OUTPUT_PREFIX);
|
|
42
|
+
}
|
|
43
|
+
/** Return a copy of `m` with its text replaced by `text`, preserving any image blocks (council #10). */
|
|
44
|
+
function replaceTextBlock(m, text) {
|
|
45
|
+
const images = m.content.filter((b) => b.type !== "text");
|
|
46
|
+
return { ...m, content: [{ type: "text", text }, ...images] };
|
|
47
|
+
}
|
|
48
|
+
/** Self-contained head+tail preview (no store / no read-back) — still bounds the request deterministically. */
|
|
49
|
+
function truncationPreview(full) {
|
|
50
|
+
const total = full.length;
|
|
51
|
+
const tailStart = Math.max(HEAD, total - TAIL);
|
|
52
|
+
return (`${full.slice(0, HEAD)}\n` +
|
|
53
|
+
`…[${total} chars total; ${tailStart - HEAD} omitted to fit the per-turn result budget — re-run with a narrower query to see the rest.]\n` +
|
|
54
|
+
`${full.slice(tailStart)}`);
|
|
55
|
+
}
|
|
56
|
+
/** Default exemptions: tools whose result is self-bounded (read_file errors at its own token cap; the
|
|
57
|
+
* offload reader pages small slices). grep/bash/glob/web_fetch/MCP are the risk sources, NOT exempt. */
|
|
58
|
+
export const DEFAULT_BUDGET_EXEMPT_TOOLS = new Set(["Read", OFFLOAD_TOOL_NAME]);
|
|
59
|
+
/** Cap each over-budget turn-batch (run of consecutive tool_result messages). Request-only; see file docs. */
|
|
60
|
+
export async function capAggregateToolResults(messages, opts) {
|
|
61
|
+
const budget = opts.budgetChars ?? AGGREGATE_TOOL_RESULT_BUDGET_CHARS;
|
|
62
|
+
const exempt = opts.exemptTools ?? DEFAULT_BUDGET_EXEMPT_TOOLS;
|
|
63
|
+
let out;
|
|
64
|
+
let i = 0;
|
|
65
|
+
while (i < messages.length) {
|
|
66
|
+
if (!isToolResult(messages[i])) {
|
|
67
|
+
i++;
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
let j = i;
|
|
71
|
+
while (j < messages.length && isToolResult(messages[j]))
|
|
72
|
+
j++;
|
|
73
|
+
// Batch = [i, j): one turn's consecutive tool_result messages. Exempt tools don't count toward the
|
|
74
|
+
// fresh budget (§24.1: their own token cap bounds them).
|
|
75
|
+
const arr = out ?? messages;
|
|
76
|
+
let total = 0;
|
|
77
|
+
for (let k = i; k < j; k++) {
|
|
78
|
+
const m = arr[k];
|
|
79
|
+
if (m.toolName && exempt.has(m.toolName))
|
|
80
|
+
continue;
|
|
81
|
+
total += textChars(m.content);
|
|
82
|
+
}
|
|
83
|
+
if (total > budget) {
|
|
84
|
+
out = out ?? messages.slice();
|
|
85
|
+
// Candidates: fresh (not already a preview), non-exempt, big enough to be worth offloading. Sort
|
|
86
|
+
// largest-first (ties by index) for a deterministic, CC-matching selection order.
|
|
87
|
+
const cand = [];
|
|
88
|
+
for (let k = i; k < j; k++) {
|
|
89
|
+
const m = out[k];
|
|
90
|
+
if (m.toolName && exempt.has(m.toolName))
|
|
91
|
+
continue;
|
|
92
|
+
if (isOffloadedPreview(m.content))
|
|
93
|
+
continue;
|
|
94
|
+
const size = textChars(m.content);
|
|
95
|
+
// Only worth offloading if the preview can actually be SMALLER (council #2): a result barely over
|
|
96
|
+
// HEAD+TAIL would produce a preview LARGER than itself (head+tail+wrapper). Conservative gate here;
|
|
97
|
+
// exact "is it smaller?" check below as belt-and-suspenders.
|
|
98
|
+
if (size > HEAD + TAIL + PREVIEW_OVERHEAD)
|
|
99
|
+
cand.push({ k, size });
|
|
100
|
+
}
|
|
101
|
+
cand.sort((a, b) => b.size - a.size || a.k - b.k);
|
|
102
|
+
for (const { k, size } of cand) {
|
|
103
|
+
if (total <= budget)
|
|
104
|
+
break;
|
|
105
|
+
const m = out[k];
|
|
106
|
+
const before = size; // reuse the size computed for the candidate (its content is unchanged here)
|
|
107
|
+
const full = textOf(m.content);
|
|
108
|
+
const ref = `tr_${opts.sessionId}_${m.toolCallId ?? `idx${k}`}`;
|
|
109
|
+
let previewText;
|
|
110
|
+
let storeFallback;
|
|
111
|
+
if (opts.store) {
|
|
112
|
+
try {
|
|
113
|
+
await opts.store.put(ref, full); // write-once + stable ref ⇒ idempotent on replay
|
|
114
|
+
previewText = buildPreview(full, ref);
|
|
115
|
+
storeFallback = false;
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// A store failure must NEVER crash the per-query context hook (council #3): fall back to the
|
|
119
|
+
// self-contained truncation preview (the model loses read-back for this one result, not the run).
|
|
120
|
+
previewText = truncationPreview(full);
|
|
121
|
+
storeFallback = true; // [398] C8: the silent `catch{}` face — surfaced via onCapped below
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
previewText = truncationPreview(full);
|
|
126
|
+
storeFallback = true;
|
|
127
|
+
}
|
|
128
|
+
// Never make a result LARGER than the original (council #2): if the preview isn't smaller, skip it.
|
|
129
|
+
if (previewText.length >= before)
|
|
130
|
+
continue;
|
|
131
|
+
out[k] = replaceTextBlock(out[k], previewText);
|
|
132
|
+
total -= before - previewText.length;
|
|
133
|
+
opts.onCapped?.({ ...(m.toolName !== undefined ? { tool: m.toolName } : {}), sizeChars: before, storeFallback }); // [398] C8
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
i = j;
|
|
137
|
+
}
|
|
138
|
+
return out ?? messages;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=tool-result-budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-result-budget.js","sourceRoot":"","sources":["../../src/core/tool-result-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import type { AgentTool } from "../internal/harness.js";
|
|
2
|
+
/**
|
|
3
|
+
* Pluggable backing store for **offloaded large tool results** (design/30). When a tool returns more
|
|
4
|
+
* text than the threshold, the full content is moved here and the conversation keeps only a preview +
|
|
5
|
+
* a `ref`; the model fetches the rest via the injected `read_tool_result` tool. This is the local,
|
|
6
|
+
* provider-agnostic equivalent of CC's `toolResultStorage` (no Anthropic `cache_edits` dependency).
|
|
7
|
+
*
|
|
8
|
+
* Default is {@link InMemoryToolResultStore} (task-scoped, lives only for the run). Inject a durable
|
|
9
|
+
* implementation (TiDB/blob, keyed by the opaque `ref`) so an offloaded result survives wake/resume;
|
|
10
|
+
* with the in-memory default, a fetch after a cross-process wake returns undefined and the model is told
|
|
11
|
+
* the output is no longer available — the preview still stands in context, so it degrades, never crashes.
|
|
12
|
+
*/
|
|
13
|
+
export interface ToolResultStore {
|
|
14
|
+
/**
|
|
15
|
+
* Persist full content under a stable `ref`. **Write-once and idempotent**: if `ref` already exists,
|
|
16
|
+
* keep the existing content and do nothing (the aggregate budget re-runs every query with the same
|
|
17
|
+
* deterministic ref, so `put` for an already-stored ref MUST be a no-op — re-writing would risk a
|
|
18
|
+
* non-identical preview and break the prompt cache). A durable backend treats `ref` as the primary key
|
|
19
|
+
* and should validate/sanitize it (it is composed from sessionId+toolCallId, not raw model input, but a
|
|
20
|
+
* durable store still owns key hygiene for its storage layer).
|
|
21
|
+
*/
|
|
22
|
+
put(ref: string, content: string): Promise<void> | void;
|
|
23
|
+
/** Read a slice of the stored content. Unknown `ref` → undefined. */
|
|
24
|
+
get(ref: string, opts?: {
|
|
25
|
+
offset?: number;
|
|
26
|
+
limit?: number;
|
|
27
|
+
}): Promise<ToolResultSlice | undefined> | ToolResultSlice | undefined;
|
|
28
|
+
}
|
|
29
|
+
export interface ToolResultSlice {
|
|
30
|
+
content: string;
|
|
31
|
+
/** Byte/char offset this slice starts at. */
|
|
32
|
+
offset: number;
|
|
33
|
+
/** Total chars of the full stored content. */
|
|
34
|
+
totalChars: number;
|
|
35
|
+
}
|
|
36
|
+
/** Default in-memory store (no cross-process durability); write-once per ref.
|
|
37
|
+
*
|
|
38
|
+
* Blackboard 2026-07-03 (clay dogfood: `ReadToolResult(ref)` came back empty for a workflow child's
|
|
39
|
+
* offloaded output): the Runner now shares ONE instance across its tasks (instead of a per-task
|
|
40
|
+
* island), so a parent can deref a child's ref within the process. A shared long-lived instance
|
|
41
|
+
* needs a bound — `maxTotalChars` FIFO-evicts the oldest refs past the cap (an evicted deref lands
|
|
42
|
+
* on the existing honest "may have expired" text). Durability across restarts still requires a real
|
|
43
|
+
* store (e.g. FileToolResultStore) via `RunnerDeps.toolResultStore`. */
|
|
44
|
+
export declare class InMemoryToolResultStore implements ToolResultStore {
|
|
45
|
+
private readonly opts?;
|
|
46
|
+
private readonly map;
|
|
47
|
+
private totalChars;
|
|
48
|
+
constructor(opts?: {
|
|
49
|
+
maxTotalChars?: number;
|
|
50
|
+
} | undefined);
|
|
51
|
+
put(ref: string, content: string): void;
|
|
52
|
+
/** design/80 D-2: true when NOTHING has been offloaded — a durable suspend can then proceed safely even on
|
|
53
|
+
* this in-memory store, because a cross-replica resume has no offloaded result to deref to null. */
|
|
54
|
+
isEmpty(): boolean;
|
|
55
|
+
get(ref: string, opts?: {
|
|
56
|
+
offset?: number;
|
|
57
|
+
limit?: number;
|
|
58
|
+
}): ToolResultSlice | undefined;
|
|
59
|
+
}
|
|
60
|
+
/** Marker subclass for the Runner's own shared fallback instance (no injected store). prepare-task
|
|
61
|
+
* detects it and wraps a per-task {@link ScopedToolResultStore} around it — an INJECTED store is
|
|
62
|
+
* never wrapped (a multi-tenant deployment that injects a durable store owns its own scoping). */
|
|
63
|
+
export declare class RunnerSharedToolResultStore extends InMemoryToolResultStore {
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Per-task view over the Runner-shared fallback (impl-review 2026-07-03, codex 2 BLOCKER):
|
|
67
|
+
* 1. **Tenant isolation**: refs are namespaced by the task's trust scope (principal), so tenant B's
|
|
68
|
+
* `ReadToolResult` can never deref tenant A's ref — the per-task-instance era made this isolation
|
|
69
|
+
* implicit; sharing one instance re-opened it. Same-scope cross-task deref (the A2 fix's whole
|
|
70
|
+
* point) still works: same scope ⇒ same namespace.
|
|
71
|
+
* 2. **D-2 durable-suspend gate fidelity**: `isEmpty()` reflects only THIS task's offloads (local put
|
|
72
|
+
* count) — matching the per-task-instance semantics the gate was written against — so an unrelated
|
|
73
|
+
* prior task's offloaded entry can no longer disable durable suspend for a task that offloaded
|
|
74
|
+
* nothing (prepare-task's fail-fast reads `isEmpty()`).
|
|
75
|
+
*/
|
|
76
|
+
export declare class ScopedToolResultStore implements ToolResultStore {
|
|
77
|
+
private readonly inner;
|
|
78
|
+
private readonly scope;
|
|
79
|
+
private localPuts;
|
|
80
|
+
/** True when the underlying shared store is process-memory (volatile across replicas) — the D-2
|
|
81
|
+
* suspend gate treats a NON-empty volatile store as unsafe to durably suspend. */
|
|
82
|
+
readonly volatileBacking: boolean;
|
|
83
|
+
constructor(inner: ToolResultStore, scope: string);
|
|
84
|
+
/** Length-prefixed namespace — unambiguous for any scope string (no delimiter-injection ambiguity). */
|
|
85
|
+
private key;
|
|
86
|
+
put(ref: string, content: string): Promise<void> | void;
|
|
87
|
+
get(ref: string, opts?: {
|
|
88
|
+
offset?: number;
|
|
89
|
+
limit?: number;
|
|
90
|
+
}): Promise<ToolResultSlice | undefined> | ToolResultSlice | undefined;
|
|
91
|
+
/** THIS task's offload count only — the D-2 gate's per-task semantics (see class doc). */
|
|
92
|
+
isEmpty(): boolean;
|
|
93
|
+
}
|
|
94
|
+
/** True when a durable suspend would lose offloaded results held only in process memory (D-2 gate). */
|
|
95
|
+
export declare function isVolatileOffloadStore(store: ToolResultStore): boolean;
|
|
96
|
+
/** Reserved name of the injected large-result reader (design/108 PascalCase: `read_tool_result`→`ReadToolResult`). */
|
|
97
|
+
export declare const OFFLOAD_TOOL_NAME = "ReadToolResult";
|
|
98
|
+
/** Leading marker of an offload preview (see {@link buildPreview}) — single source so the aggregate
|
|
99
|
+
* budget (design/64 §17.2) can recognize an already-offloaded result without re-deriving the string. */
|
|
100
|
+
export declare const PERSISTED_OUTPUT_PREFIX = "<persisted-output ref=";
|
|
101
|
+
/** Default per-result offload threshold (chars). ~5K tokens; configurable globally or per tool. */
|
|
102
|
+
export declare const DEFAULT_TOOL_RESULT_THRESHOLD_CHARS = 20000;
|
|
103
|
+
/**
|
|
104
|
+
* CC 198 per-tool persistence thresholds, mirrored for the first-party mounts (PARITY-SPOT-USAGE-CONSTANTS
|
|
105
|
+
* 2026-07-10 F1/F2). CC's GIa framework (pretty.js:286716-286721) resolves each tool's persist threshold as
|
|
106
|
+
* `min(maxResultSizeChars, w6t=50000)`:
|
|
107
|
+
* - Read declares `maxResultSizeChars: 1/0` (:478260) → **never persisted**. Read already owns its bound
|
|
108
|
+
* (25K-token first-page auto-pagination) and the aggregate budget exempts it — wrapping it in offload
|
|
109
|
+
* re-truncated a page the tool had already sized (the F1 two-layer inconsistency). Structural exemption:
|
|
110
|
+
* applies even when a deployment sets an explicit global threshold.
|
|
111
|
+
* - Bash 30000 (:335231) / Grep 20000 (:333220) / Monitor 1e4 (:450030); everything else first-party
|
|
112
|
+
* declares 1e5 (Agent :453402, Glob :333570, TaskOutput :458260, …) → min(1e5, 50000) = 50000.
|
|
113
|
+
* Unknown tools keep the deployment default ({@link DEFAULT_TOOL_RESULT_THRESHOLD_CHARS}) — we deliberately
|
|
114
|
+
* do NOT mirror KIa's bare `$xa=400000` undeclared-tool fallback: our aggregate budget is 200K chars, so a
|
|
115
|
+
* 400K inline result is unrepresentable anyway.
|
|
116
|
+
*/
|
|
117
|
+
export declare function firstPartyOffloadPolicy(toolName: string): {
|
|
118
|
+
offload?: boolean;
|
|
119
|
+
offloadThresholdChars?: number;
|
|
120
|
+
};
|
|
121
|
+
/** Head+tail preview of an offloaded result, pointing at {@link OFFLOAD_TOOL_NAME} via `ref`. Exported so
|
|
122
|
+
* the per-message aggregate budget (design/64 §17.2) produces the SAME preview format (deterministic →
|
|
123
|
+
* byte-identical across queries → prompt-cache safe). */
|
|
124
|
+
export declare function buildPreview(full: string, ref: string): string;
|
|
125
|
+
/**
|
|
126
|
+
* Wrap an {@link AgentTool} so that an oversized text result is offloaded to `store` and replaced with a
|
|
127
|
+
* preview + `ref` before it ever reaches the session/model. `ref = tr_<toolCallId>` is stable and the
|
|
128
|
+
* store is write-once: a **same-process** replay keeps an identical (cacheable) preview; a **cross-process**
|
|
129
|
+
* wake needs a durable store (the default in-memory store loses the full text — the preview still stands).
|
|
130
|
+
* Image blocks are left untouched; only text is offloaded. Forwards the `onUpdate` progress callback so a
|
|
131
|
+
* wrapped (e.g. MCP) streaming tool isn't broken.
|
|
132
|
+
*/
|
|
133
|
+
export declare function withToolResultOffload(tool: AgentTool, store: ToolResultStore, thresholdChars: number, sessionId: string): AgentTool;
|
|
134
|
+
/** The injected `read_tool_result` tool: pages through an offloaded result. `effect:"read"` (verifier/reconcile-safe). */
|
|
135
|
+
export declare function makeReadToolResultTool(store: ToolResultStore): AgentTool;
|
|
136
|
+
//# sourceMappingURL=tool-result-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-result-store.d.ts","sourceRoot":"","sources":["../../src/core/tool-result-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { Type } from "typebox";
|
|
2
|
+
import { defineTool } from "./tools.js";
|
|
3
|
+
/** Default in-memory store (no cross-process durability); write-once per ref.
|
|
4
|
+
*
|
|
5
|
+
* Blackboard 2026-07-03 (clay dogfood: `ReadToolResult(ref)` came back empty for a workflow child's
|
|
6
|
+
* offloaded output): the Runner now shares ONE instance across its tasks (instead of a per-task
|
|
7
|
+
* island), so a parent can deref a child's ref within the process. A shared long-lived instance
|
|
8
|
+
* needs a bound — `maxTotalChars` FIFO-evicts the oldest refs past the cap (an evicted deref lands
|
|
9
|
+
* on the existing honest "may have expired" text). Durability across restarts still requires a real
|
|
10
|
+
* store (e.g. FileToolResultStore) via `RunnerDeps.toolResultStore`. */
|
|
11
|
+
export class InMemoryToolResultStore {
|
|
12
|
+
opts;
|
|
13
|
+
map = new Map();
|
|
14
|
+
totalChars = 0;
|
|
15
|
+
constructor(opts) {
|
|
16
|
+
this.opts = opts;
|
|
17
|
+
}
|
|
18
|
+
put(ref, content) {
|
|
19
|
+
if (this.map.has(ref))
|
|
20
|
+
return;
|
|
21
|
+
this.map.set(ref, content);
|
|
22
|
+
this.totalChars += content.length;
|
|
23
|
+
const cap = this.opts?.maxTotalChars;
|
|
24
|
+
if (cap !== undefined && cap > 0) {
|
|
25
|
+
for (const [oldRef, oldContent] of this.map) {
|
|
26
|
+
if (this.totalChars <= cap || oldRef === ref)
|
|
27
|
+
break; // never evict the just-written ref
|
|
28
|
+
this.map.delete(oldRef);
|
|
29
|
+
this.totalChars -= oldContent.length;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** design/80 D-2: true when NOTHING has been offloaded — a durable suspend can then proceed safely even on
|
|
34
|
+
* this in-memory store, because a cross-replica resume has no offloaded result to deref to null. */
|
|
35
|
+
isEmpty() {
|
|
36
|
+
return this.map.size === 0;
|
|
37
|
+
}
|
|
38
|
+
get(ref, opts) {
|
|
39
|
+
const full = this.map.get(ref);
|
|
40
|
+
if (full === undefined)
|
|
41
|
+
return undefined;
|
|
42
|
+
const offset = Math.min(full.length, Math.max(0, intOr(opts?.offset, 0)));
|
|
43
|
+
const limit = opts?.limit != null ? Math.max(0, intOr(opts.limit, 0)) : undefined;
|
|
44
|
+
const content = limit != null ? full.slice(offset, offset + limit) : full.slice(offset);
|
|
45
|
+
return { content, offset, totalChars: full.length };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Marker subclass for the Runner's own shared fallback instance (no injected store). prepare-task
|
|
49
|
+
* detects it and wraps a per-task {@link ScopedToolResultStore} around it — an INJECTED store is
|
|
50
|
+
* never wrapped (a multi-tenant deployment that injects a durable store owns its own scoping). */
|
|
51
|
+
export class RunnerSharedToolResultStore extends InMemoryToolResultStore {
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Per-task view over the Runner-shared fallback (impl-review 2026-07-03, codex 2 BLOCKER):
|
|
55
|
+
* 1. **Tenant isolation**: refs are namespaced by the task's trust scope (principal), so tenant B's
|
|
56
|
+
* `ReadToolResult` can never deref tenant A's ref — the per-task-instance era made this isolation
|
|
57
|
+
* implicit; sharing one instance re-opened it. Same-scope cross-task deref (the A2 fix's whole
|
|
58
|
+
* point) still works: same scope ⇒ same namespace.
|
|
59
|
+
* 2. **D-2 durable-suspend gate fidelity**: `isEmpty()` reflects only THIS task's offloads (local put
|
|
60
|
+
* count) — matching the per-task-instance semantics the gate was written against — so an unrelated
|
|
61
|
+
* prior task's offloaded entry can no longer disable durable suspend for a task that offloaded
|
|
62
|
+
* nothing (prepare-task's fail-fast reads `isEmpty()`).
|
|
63
|
+
*/
|
|
64
|
+
export class ScopedToolResultStore {
|
|
65
|
+
inner;
|
|
66
|
+
scope;
|
|
67
|
+
localPuts = 0;
|
|
68
|
+
/** True when the underlying shared store is process-memory (volatile across replicas) — the D-2
|
|
69
|
+
* suspend gate treats a NON-empty volatile store as unsafe to durably suspend. */
|
|
70
|
+
volatileBacking;
|
|
71
|
+
constructor(inner, scope) {
|
|
72
|
+
this.inner = inner;
|
|
73
|
+
this.scope = scope;
|
|
74
|
+
this.volatileBacking = inner instanceof InMemoryToolResultStore;
|
|
75
|
+
}
|
|
76
|
+
/** Length-prefixed namespace — unambiguous for any scope string (no delimiter-injection ambiguity). */
|
|
77
|
+
key(ref) {
|
|
78
|
+
return `${this.scope.length}:${this.scope}:${ref}`;
|
|
79
|
+
}
|
|
80
|
+
put(ref, content) {
|
|
81
|
+
this.localPuts++;
|
|
82
|
+
return this.inner.put(this.key(ref), content);
|
|
83
|
+
}
|
|
84
|
+
get(ref, opts) {
|
|
85
|
+
return this.inner.get(this.key(ref), opts);
|
|
86
|
+
}
|
|
87
|
+
/** THIS task's offload count only — the D-2 gate's per-task semantics (see class doc). */
|
|
88
|
+
isEmpty() {
|
|
89
|
+
return this.localPuts === 0;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** True when a durable suspend would lose offloaded results held only in process memory (D-2 gate). */
|
|
93
|
+
export function isVolatileOffloadStore(store) {
|
|
94
|
+
if (store instanceof ScopedToolResultStore)
|
|
95
|
+
return store.volatileBacking;
|
|
96
|
+
return store instanceof InMemoryToolResultStore;
|
|
97
|
+
}
|
|
98
|
+
/** Reserved name of the injected large-result reader (design/108 PascalCase: `read_tool_result`→`ReadToolResult`). */
|
|
99
|
+
export const OFFLOAD_TOOL_NAME = "ReadToolResult";
|
|
100
|
+
/** Leading marker of an offload preview (see {@link buildPreview}) — single source so the aggregate
|
|
101
|
+
* budget (design/64 §17.2) can recognize an already-offloaded result without re-deriving the string. */
|
|
102
|
+
export const PERSISTED_OUTPUT_PREFIX = "<persisted-output ref=";
|
|
103
|
+
/** Default per-result offload threshold (chars). ~5K tokens; configurable globally or per tool. */
|
|
104
|
+
export const DEFAULT_TOOL_RESULT_THRESHOLD_CHARS = 20_000;
|
|
105
|
+
/**
|
|
106
|
+
* CC 198 per-tool persistence thresholds, mirrored for the first-party mounts (PARITY-SPOT-USAGE-CONSTANTS
|
|
107
|
+
* 2026-07-10 F1/F2). CC's GIa framework (pretty.js:286716-286721) resolves each tool's persist threshold as
|
|
108
|
+
* `min(maxResultSizeChars, w6t=50000)`:
|
|
109
|
+
* - Read declares `maxResultSizeChars: 1/0` (:478260) → **never persisted**. Read already owns its bound
|
|
110
|
+
* (25K-token first-page auto-pagination) and the aggregate budget exempts it — wrapping it in offload
|
|
111
|
+
* re-truncated a page the tool had already sized (the F1 two-layer inconsistency). Structural exemption:
|
|
112
|
+
* applies even when a deployment sets an explicit global threshold.
|
|
113
|
+
* - Bash 30000 (:335231) / Grep 20000 (:333220) / Monitor 1e4 (:450030); everything else first-party
|
|
114
|
+
* declares 1e5 (Agent :453402, Glob :333570, TaskOutput :458260, …) → min(1e5, 50000) = 50000.
|
|
115
|
+
* Unknown tools keep the deployment default ({@link DEFAULT_TOOL_RESULT_THRESHOLD_CHARS}) — we deliberately
|
|
116
|
+
* do NOT mirror KIa's bare `$xa=400000` undeclared-tool fallback: our aggregate budget is 200K chars, so a
|
|
117
|
+
* 400K inline result is unrepresentable anyway.
|
|
118
|
+
*/
|
|
119
|
+
export function firstPartyOffloadPolicy(toolName) {
|
|
120
|
+
switch (toolName) {
|
|
121
|
+
case "Read":
|
|
122
|
+
return { offload: false };
|
|
123
|
+
case "Bash":
|
|
124
|
+
return { offloadThresholdChars: 30_000 };
|
|
125
|
+
case "Grep":
|
|
126
|
+
return { offloadThresholdChars: 20_000 };
|
|
127
|
+
case "Monitor":
|
|
128
|
+
return { offloadThresholdChars: 10_000 };
|
|
129
|
+
default:
|
|
130
|
+
return { offloadThresholdChars: 50_000 };
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const PREVIEW_HEAD_CHARS = 1_000;
|
|
134
|
+
const PREVIEW_TAIL_CHARS = 1_000;
|
|
135
|
+
const READ_DEFAULT_LIMIT = 4_000;
|
|
136
|
+
const READ_MAX_LIMIT = 20_000;
|
|
137
|
+
/** Floor a finite number, else fall back — rejects NaN/Infinity (council #4; mirrors resolveOutputRetries). */
|
|
138
|
+
function intOr(x, fallback) {
|
|
139
|
+
return Number.isFinite(x) ? Math.floor(x) : fallback;
|
|
140
|
+
}
|
|
141
|
+
function totalTextChars(content) {
|
|
142
|
+
let n = 0;
|
|
143
|
+
for (const b of content)
|
|
144
|
+
if (b.type === "text" && typeof b.text === "string")
|
|
145
|
+
n += b.text.length;
|
|
146
|
+
return n;
|
|
147
|
+
}
|
|
148
|
+
/** Head+tail preview of an offloaded result, pointing at {@link OFFLOAD_TOOL_NAME} via `ref`. Exported so
|
|
149
|
+
* the per-message aggregate budget (design/64 §17.2) produces the SAME preview format (deterministic →
|
|
150
|
+
* byte-identical across queries → prompt-cache safe). */
|
|
151
|
+
export function buildPreview(full, ref) {
|
|
152
|
+
const total = full.length;
|
|
153
|
+
// head + tail (big outputs often carry the conclusion/error at the tail); guard against overlap.
|
|
154
|
+
const head = full.slice(0, PREVIEW_HEAD_CHARS);
|
|
155
|
+
const tailStart = Math.max(PREVIEW_HEAD_CHARS, total - PREVIEW_TAIL_CHARS);
|
|
156
|
+
const tail = full.slice(tailStart);
|
|
157
|
+
return (`${PERSISTED_OUTPUT_PREFIX}"${ref}" chars="${total}">\n` +
|
|
158
|
+
`${head}\n` +
|
|
159
|
+
`…[truncated — ${total} chars total. Call ${OFFLOAD_TOOL_NAME} with ref="${ref}" (offset, limit) to read more.]\n` +
|
|
160
|
+
`${tail}\n` +
|
|
161
|
+
`</persisted-output>`);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Wrap an {@link AgentTool} so that an oversized text result is offloaded to `store` and replaced with a
|
|
165
|
+
* preview + `ref` before it ever reaches the session/model. `ref = tr_<toolCallId>` is stable and the
|
|
166
|
+
* store is write-once: a **same-process** replay keeps an identical (cacheable) preview; a **cross-process**
|
|
167
|
+
* wake needs a durable store (the default in-memory store loses the full text — the preview still stands).
|
|
168
|
+
* Image blocks are left untouched; only text is offloaded. Forwards the `onUpdate` progress callback so a
|
|
169
|
+
* wrapped (e.g. MCP) streaming tool isn't broken.
|
|
170
|
+
*/
|
|
171
|
+
export function withToolResultOffload(tool, store, thresholdChars, sessionId) {
|
|
172
|
+
const wrappedExecute = async (toolCallId, params, signal, onUpdate) => {
|
|
173
|
+
const res = await tool.execute(toolCallId, params, signal, onUpdate); // forward onUpdate (MCP progress)
|
|
174
|
+
if (totalTextChars(res.content) <= thresholdChars)
|
|
175
|
+
return res;
|
|
176
|
+
const full = res.content
|
|
177
|
+
.filter((b) => b.type === "text")
|
|
178
|
+
.map((b) => b.text)
|
|
179
|
+
.join("\n");
|
|
180
|
+
// If the whole thing already fits in the head+tail preview, offloading wouldn't shrink context —
|
|
181
|
+
// leave it inline (and don't emit a misleading "truncated" directive that wastes a round-trip). #5
|
|
182
|
+
if (full.length <= PREVIEW_HEAD_CHARS + PREVIEW_TAIL_CHARS)
|
|
183
|
+
return res;
|
|
184
|
+
// Namespace the ref by sessionId so it is GLOBALLY unique (toolCallId is provider-assigned and not
|
|
185
|
+
// guaranteed unique across sessions) — a durable store can then use `ref` as a plain primary key.
|
|
186
|
+
const ref = `tr_${sessionId}_${toolCallId}`;
|
|
187
|
+
await store.put(ref, full);
|
|
188
|
+
const images = res.content.filter((b) => b.type !== "text");
|
|
189
|
+
return { ...res, content: [{ type: "text", text: buildPreview(full, ref) }, ...images] };
|
|
190
|
+
};
|
|
191
|
+
return { ...tool, execute: wrappedExecute };
|
|
192
|
+
}
|
|
193
|
+
/** The injected `read_tool_result` tool: pages through an offloaded result. `effect:"read"` (verifier/reconcile-safe). */
|
|
194
|
+
export function makeReadToolResultTool(store) {
|
|
195
|
+
return defineTool({
|
|
196
|
+
name: OFFLOAD_TOOL_NAME,
|
|
197
|
+
description: `Read the full content of a tool result that was too large and persisted (you saw it as ` +
|
|
198
|
+
`<persisted-output ref="..."> with a preview). Pass the ref; use offset/limit to page through it.`,
|
|
199
|
+
parameters: Type.Object({
|
|
200
|
+
ref: Type.String({ description: "The ref from the <persisted-output> tag." }),
|
|
201
|
+
offset: Type.Optional(Type.Number({ description: "Char offset to start at (default 0)." })),
|
|
202
|
+
limit: Type.Optional(Type.Number({ description: `Max chars to return (default ${READ_DEFAULT_LIMIT}, capped ${READ_MAX_LIMIT}).` })),
|
|
203
|
+
}),
|
|
204
|
+
effect: "read",
|
|
205
|
+
execute: async (args) => {
|
|
206
|
+
const { ref, offset, limit } = args;
|
|
207
|
+
const off = Math.max(0, intOr(offset, 0));
|
|
208
|
+
const lim = Math.min(READ_MAX_LIMIT, Math.max(1, intOr(limit, READ_DEFAULT_LIMIT)));
|
|
209
|
+
const slice = await store.get(ref, { offset: off, limit: lim });
|
|
210
|
+
if (!slice) {
|
|
211
|
+
return `No persisted output for ref "${ref}" — it may have expired, or this process has no durable tool-result store (the preview above is all that remains).`;
|
|
212
|
+
}
|
|
213
|
+
const end = slice.offset + slice.content.length;
|
|
214
|
+
const more = end < slice.totalChars ? `\n…[${slice.totalChars - end} more chars — call again with offset=${end}.]` : "";
|
|
215
|
+
return `[ref=${ref} · chars ${slice.offset}–${end} of ${slice.totalChars}]\n${slice.content}${more}`;
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=tool-result-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-result-store.js","sourceRoot":"","sources":["../../src/core/tool-result-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { TSchema } from "typebox";
|
|
2
|
+
import type { AgentTool, Skill } from "../internal/harness.js";
|
|
3
|
+
import type { SkillSpec, ToolSpec } from "./types.js";
|
|
4
|
+
/** Adapt a friendly ToolSpec into the vendored AgentTool the agent loop expects. */
|
|
5
|
+
export declare function defineTool<TParams extends TSchema = TSchema>(spec: ToolSpec<TParams>): AgentTool<TParams>;
|
|
6
|
+
/**
|
|
7
|
+
* Adapt an object-form skill into the vendored Skill shape (synthetic in-memory path).
|
|
8
|
+
*
|
|
9
|
+
* @deprecated No longer used by the runner: `TaskSpec.skills` is served by the first-party
|
|
10
|
+
* disclosure block + `skill` tool (design/71 黑盒#5 fix), and the vendored consumers of this shape
|
|
11
|
+
* were deleted. Kept only for API stability.
|
|
12
|
+
*/
|
|
13
|
+
export declare function toSkill(spec: SkillSpec): Skill;
|
|
14
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,OAAO,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EACV,SAAS,EAET,KAAK,EACN,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAc,QAAQ,EAAE,MAAM,YAAY,CAAC;AAyBlE,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,OAAO,SAAS,OAAO,GAAG,OAAO,EAC1D,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GACtB,SAAS,CAAC,OAAO,CAAC,CAkEpB;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CAO9C"}
|