@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":"checkpoint-store.d.ts","sourceRoot":"","sources":["../../src/core/checkpoint-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,514 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
import { inlineUntrusted, sanitizeUntrustedText } from "./untrusted-text.js";
|
|
3
|
+
import { ASK_USER_QUESTION_TOOL_NAME } from "./ask-question.js";
|
|
4
|
+
/** Mint a CSPRNG 128-bit checkpoint token (token-as-auth, §6/Q5): unguessable, never logged/in-URL. */
|
|
5
|
+
export function mintCheckpointToken() {
|
|
6
|
+
return randomBytes(16).toString("hex");
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* design/80 §D-E: the DETERMINISTIC severity tier (1..5) for an escalation checkpoint, a PURE function of the
|
|
10
|
+
* tripped {@link RiskDescriptor.axes} (NO LLM, NO clock/random) so the inbox's sort order is stable and
|
|
11
|
+
* unit-testable in isolation. The ORDERING is the contract; the absolute numbers map to ToolEmu's 5 tiers:
|
|
12
|
+
* - irreversible AND egress → **5** (the most severe — an external, irreversible write)
|
|
13
|
+
* - irreversible only → **4**
|
|
14
|
+
* - egress only → **3**
|
|
15
|
+
* - shell-gated tighten → **3** (a coarse shellGate ask with no explicit egress/irreversible mark — the
|
|
16
|
+
* command MAY be benign, so it is not auto-graded as high as a marked tool)
|
|
17
|
+
* - plain `human` ask → **2** (no safety axis tripped — a budgetable approval)
|
|
18
|
+
* - (1 reserved — least-severe / informational; not expected from these gates.)
|
|
19
|
+
* `egress` dominates the shell coarse-grade (an explicitly egress-marked shell tighten is still ≥3). A future
|
|
20
|
+
* arm may refine this — but only with a stated reason, and the ORDERING must stay monotone in risk.
|
|
21
|
+
*/
|
|
22
|
+
export function riskSeverity(axes) {
|
|
23
|
+
const egress = axes.egress === true;
|
|
24
|
+
const irreversible = axes.irreversible === true;
|
|
25
|
+
if (irreversible && egress)
|
|
26
|
+
return 5;
|
|
27
|
+
if (irreversible)
|
|
28
|
+
return 4;
|
|
29
|
+
if (egress)
|
|
30
|
+
return 3;
|
|
31
|
+
if (axes.shell === true)
|
|
32
|
+
return 3;
|
|
33
|
+
return 2;
|
|
34
|
+
}
|
|
35
|
+
/** design/80 §D-E: redaction caps. A shell command preview gets more room (200 cp) than an fs path digest
|
|
36
|
+
* (each value 120 cp); at most {@link MAX_TOUCHED_PATHS} paths are listed so a many-arg call can't bloat the
|
|
37
|
+
* persisted row / inbox render. All caps applied AFTER {@link inlineUntrusted} (which folds separators +
|
|
38
|
+
* defuses break-out tags) — the cap is the bloat ceiling, the neutralizer is the injection ceiling. */
|
|
39
|
+
const SUMMARY_CMD_MAX = 200;
|
|
40
|
+
const SUMMARY_VALUE_MAX = 120;
|
|
41
|
+
const SUMMARY_TOTAL_MAX = 200;
|
|
42
|
+
const PATH_MAX = 200;
|
|
43
|
+
const MAX_TOUCHED_PATHS = 8;
|
|
44
|
+
/** Cap the number of arg keys digested BEFORE reading their values, so a 10k-key object can't drive 10k
|
|
45
|
+
* neutralizer calls (codex review: bound the work, not just the joined output). */
|
|
46
|
+
const MAX_DIGEST_KEYS = 16;
|
|
47
|
+
/** Bound the digest's SORT input: only the first this-many keys (enumeration order) are sorted+sliced, so a
|
|
48
|
+
* pathological key count can't drive an unbounded sort (codex review Item 1.3) — WITHOUT dropping a normal
|
|
49
|
+
* tool's whole summary (codex review Item 4). A real tool call has far fewer args. */
|
|
50
|
+
const MAX_DIGEST_SCAN_KEYS = 256;
|
|
51
|
+
/** design S1e (service [204]): the char cap for the {@link CheckpointSummary.toolInput} BOUNDED raw preview of a
|
|
52
|
+
* `tool_approval` pendingAction's `args` (`JSON.stringify`-ed). Caps the `listByScope` payload size; over-cap
|
|
53
|
+
* is truncated with a trailing `…`. Bounded raw (NOT neutralized) — redaction is the consumer's job (echo-only). */
|
|
54
|
+
export const MAX_TOOL_INPUT_PREVIEW_CHARS = 512;
|
|
55
|
+
/** True ONLY for a PLAIN data record (not null / array / class-instance / proxy-with-odd-prototype) — the only
|
|
56
|
+
* shape we safely digest. Adversarial args (a proxy, a getter that throws) must never crash the mint, so this +
|
|
57
|
+
* {@link safeDataValue}/{@link safeKeys} make {@link buildRiskDescriptor} fully TOTAL (codex review Item 1/2). */
|
|
58
|
+
function isPlainRecord(x) {
|
|
59
|
+
try {
|
|
60
|
+
if (x === null || typeof x !== "object" || Array.isArray(x))
|
|
61
|
+
return false; // Array.isArray INSIDE try — a revoked proxy throws here
|
|
62
|
+
const p = Object.getPrototypeOf(x);
|
|
63
|
+
return p === Object.prototype || p === null;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return false; // any trap (Array.isArray / getPrototypeOf) throwing ⇒ not safely digestible
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Read `obj[key]` as a DATA property only — NEVER invokes a getter/accessor (so a throwing getter can't escape
|
|
70
|
+
* AND a non-deterministic getter can't vary the digest); a trapped descriptor read ⇒ undefined (codex Item 1/2). */
|
|
71
|
+
function safeDataValue(obj, key) {
|
|
72
|
+
try {
|
|
73
|
+
const d = Object.getOwnPropertyDescriptor(obj, key);
|
|
74
|
+
return d && "value" in d ? d.value : undefined; // an accessor (get/set) descriptor ⇒ skipped
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** `Object.keys(obj)` swallowing a throwing ownKeys trap (⇒ []). */
|
|
81
|
+
function safeKeys(obj) {
|
|
82
|
+
try {
|
|
83
|
+
return Object.keys(obj);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Read a string `file_path` (CC 2.1.187) or legacy `path` arg from an fs-tool's args object (Read/Edit/Write) as a
|
|
90
|
+
* DATA property, or `undefined`. Pure, TOTAL — never throws on a malformed/adversarial/revoked-proxy args shape.
|
|
91
|
+
* Deliberately uses `safeDataValue` (NOT the raw-access `fileArgPath`): this runs on model-controlled args while
|
|
92
|
+
* building the risk descriptor, so it must stay proxy-safe. batch-B: a `file_path` call must still populate
|
|
93
|
+
* `riskDescriptor.touchedPaths` (shown to the approver / audit / telemetry) — else it goes empty after the rename. */
|
|
94
|
+
function fsPathArg(args) {
|
|
95
|
+
if (!isPlainRecord(args))
|
|
96
|
+
return undefined;
|
|
97
|
+
const fp = safeDataValue(args, "file_path"); // CC `file_path` first
|
|
98
|
+
if (typeof fp === "string" && fp.length > 0)
|
|
99
|
+
return fp;
|
|
100
|
+
const p = safeDataValue(args, "path"); // legacy alias
|
|
101
|
+
return typeof p === "string" && p.length > 0 ? p : undefined;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* design/80 §D-E: build the DETERMINISTIC, REDACTED {@link RiskDescriptor} for an escalation checkpoint at
|
|
105
|
+
* MINT. Pure — a function ONLY of (`toolName`, `args`, the D-2 `safety` axis, the `shellGated` flag); it reads
|
|
106
|
+
* NO clock/random, so the SAME call ⇒ an IDENTICAL descriptor (pinned by a test).
|
|
107
|
+
*
|
|
108
|
+
* **Determinism contract = plain-DATA args** (the real flow: model-JSON / hook-rewritten plain objects). A
|
|
109
|
+
* Proxy whose `ownKeys` trap returns a DIFFERENT key set per call is OUT OF CONTRACT — JS cannot detect a Proxy
|
|
110
|
+
* (codex review Item 2), so its (display-only) digest may vary. This NEVER affects a security/budget/mint
|
|
111
|
+
* decision: `riskDescriptor` is INERT (no core path reads it to gate), so an out-of-contract input can at worst
|
|
112
|
+
* degrade an inbox preview, never a permission outcome.
|
|
113
|
+
*
|
|
114
|
+
* **Redaction is load-bearing** (the `summary`/`touchedPaths` are PERSISTED + surfaced to a human inbox):
|
|
115
|
+
* every model-controlled value goes through {@link inlineUntrusted} (folds CR/LF/Unicode separators to one
|
|
116
|
+
* space, defuses `</system-reminder>` variants + `<<<`/`>>>` fence sentinels) AND a length cap, so a
|
|
117
|
+
* malicious arg carrying a break-out tag / newline / huge string can neither inject into the inbox render nor
|
|
118
|
+
* bloat the durable row. NEVER dumps full args / env / secrets — only a bash command string or a short
|
|
119
|
+
* `name=value` digest of the SHOWN args.
|
|
120
|
+
*
|
|
121
|
+
* `summary` for a shell gate = the `command` string (capped 200 cp); otherwise a `name=value` digest of the
|
|
122
|
+
* call's top-level string/number/boolean args (each value capped), omitted when nothing safe to summarize.
|
|
123
|
+
* `touchedPaths` reads ONLY the obvious fs `path` arg (read_file/edit_file/write_file) — shell parsing is
|
|
124
|
+
* deliberately NOT attempted (over-reaching a shell parse risks a wrong/forgeable path, so OMIT for bash).
|
|
125
|
+
*/
|
|
126
|
+
export function buildRiskDescriptor(input) {
|
|
127
|
+
// `toolName`/`safety`/`shellGated` are CORE-constructed at the mint (trusted); only `args` is the model/hook-
|
|
128
|
+
// controlled adversarial surface. The whole derivation is wrapped in an OUTER net so NOTHING — not even a
|
|
129
|
+
// pathological args (a revoked proxy, a throwing/varying getter, a bulk array) — can throw out: a throw here
|
|
130
|
+
// runs AFTER suspendVM, so it would strand the paused env / fall back to a sync deny (codex review Item 1). On
|
|
131
|
+
// any throw we fail to a minimal safe descriptor rather than abort the in-flight suspend.
|
|
132
|
+
const { toolName } = input;
|
|
133
|
+
try {
|
|
134
|
+
const { args, safety, shellGated } = input;
|
|
135
|
+
const egress = safety?.egress === true;
|
|
136
|
+
// A shell-gated bash carries `safety.irreversible` set by the coarse shellGate tighten (NOT an explicit
|
|
137
|
+
// per-tool mark). Grade it as the dedicated `shell` coarse tier (severity 3), NOT `irreversible` (4): the
|
|
138
|
+
// command MAY be benign, so it must not outrank an explicitly-irreversible-marked tool. An EXPLICITLY
|
|
139
|
+
// egress-marked tighten still surfaces `egress` (it dominates the shell coarse-grade in `riskSeverity`).
|
|
140
|
+
const shell = shellGated === true;
|
|
141
|
+
const irreversible = !shell && safety?.irreversible === true;
|
|
142
|
+
const axes = {};
|
|
143
|
+
if (egress)
|
|
144
|
+
axes.egress = true;
|
|
145
|
+
if (irreversible)
|
|
146
|
+
axes.irreversible = true;
|
|
147
|
+
if (shell)
|
|
148
|
+
axes.shell = true;
|
|
149
|
+
// ── summary (redacted) — DATA-property reads only (`safeDataValue` never invokes a getter ⇒ a throwing or
|
|
150
|
+
// a varying getter can neither escape nor make the output non-deterministic); `isPlainRecord` rejects
|
|
151
|
+
// arrays / revoked-proxies; a pathological key count bounds the sort (does not drop the summary). ───────
|
|
152
|
+
let summary;
|
|
153
|
+
if (shell || toolName === "Bash") {
|
|
154
|
+
// A shell gate's risk IS the command — show it (neutralized + capped). Absent/non-string ⇒ no summary.
|
|
155
|
+
const cmd = isPlainRecord(args) ? safeDataValue(args, "command") : undefined;
|
|
156
|
+
if (typeof cmd === "string" && cmd.length > 0)
|
|
157
|
+
summary = inlineUntrusted(cmd, SUMMARY_CMD_MAX);
|
|
158
|
+
// design/103 #9 (批准语义透明): disclose a background launch — the approver authorizes a PERSISTENT process
|
|
159
|
+
// (no per-step recheck, up to the deployment's background timeout ceiling), NOT a one-shot ≤foreground-max cmd.
|
|
160
|
+
const bg = isPlainRecord(args) ? safeDataValue(args, "run_in_background") : undefined;
|
|
161
|
+
if (bg === true)
|
|
162
|
+
summary = `[background persistent process — no per-step recheck] ${summary ?? ""}`.trimEnd();
|
|
163
|
+
}
|
|
164
|
+
else if (isPlainRecord(args)) {
|
|
165
|
+
// A brief `name=value` digest of the SHOWN top-level SCALAR DATA args (never nested objects/arrays — bulk
|
|
166
|
+
// payloads/secrets; never accessors). Take the first `MAX_DIGEST_SCAN_KEYS` in enumeration order, THEN
|
|
167
|
+
// sort + slice — so a pathological key COUNT bounds the SORT work (codex review Item 1.3) WITHOUT dropping
|
|
168
|
+
// a normal tool's summary entirely (codex review Item 4: a >256-key tool keeps its first-block preview,
|
|
169
|
+
// not nothing). Prototype keys skipped; each value neutralized + capped; the whole digest capped again.
|
|
170
|
+
{
|
|
171
|
+
const parts = [];
|
|
172
|
+
for (const key of safeKeys(args).slice(0, MAX_DIGEST_SCAN_KEYS).sort().slice(0, MAX_DIGEST_KEYS)) {
|
|
173
|
+
if (key === "__proto__" || key === "constructor" || key === "prototype")
|
|
174
|
+
continue;
|
|
175
|
+
const v = safeDataValue(args, key);
|
|
176
|
+
if (typeof v === "string" || typeof v === "number" || typeof v === "boolean") {
|
|
177
|
+
// threat G (+ codex residual): a forged `key=value` pair needs BOTH the `=` separator AND the ` `
|
|
178
|
+
// pair-joiner (`parts.join(" ")` below) — and inlineUntrusted folds-but-KEEPS single spaces and does
|
|
179
|
+
// not escape `=`. So a value `Acme amount=5` forges `amount=5`, AND a key `zzz auto_approved` (a space,
|
|
180
|
+
// no `=`) forges `auto_approved=true`. Percent-encode `%`,`=`,` ` (% FIRST, to avoid double-encoding)
|
|
181
|
+
// in BOTH key and value so neither structural char can masquerade as a real separator/joiner. Minimal
|
|
182
|
+
// + INERT (display-only; severity/axes recompute from trusted axes, never from this digest string).
|
|
183
|
+
const encDigest = (s) => s.replace(/%/g, "%25").replace(/=/g, "%3D").replace(/ /g, "%20");
|
|
184
|
+
const k = encDigest(inlineUntrusted(key, 40));
|
|
185
|
+
const val = encDigest(inlineUntrusted(String(v), SUMMARY_VALUE_MAX));
|
|
186
|
+
parts.push(`${k}=${val}`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (parts.length > 0)
|
|
190
|
+
summary = inlineUntrusted(parts.join(" "), SUMMARY_TOTAL_MAX);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// ── touchedPaths (redacted; fs path DATA args only — NO shell parse) ─────────────────────────────────
|
|
194
|
+
const touched = [];
|
|
195
|
+
if (!shell && toolName !== "Bash") {
|
|
196
|
+
const p = fsPathArg(args);
|
|
197
|
+
if (p !== undefined)
|
|
198
|
+
touched.push(inlineUntrusted(p, PATH_MAX));
|
|
199
|
+
}
|
|
200
|
+
const touchedPaths = touched.length > 0 ? touched.slice(0, MAX_TOUCHED_PATHS) : undefined;
|
|
201
|
+
return {
|
|
202
|
+
severity: riskSeverity(axes),
|
|
203
|
+
axes,
|
|
204
|
+
toolName,
|
|
205
|
+
...(summary !== undefined ? { summary } : {}),
|
|
206
|
+
...(touchedPaths !== undefined ? { touchedPaths } : {}),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
// Unreachable in practice (args is fully guarded above); the outer net guarantees no throw aborts the mint.
|
|
211
|
+
return { severity: 2, axes: {}, toolName: typeof toolName === "string" ? toolName : "" };
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* The current {@link Checkpoint} schema version a v1.5 suspend stamps, and the highest a resume here
|
|
216
|
+
* accepts (design/49 §3, code-ready council round-2). Bump together with `MAX_SUPPORTED_CHECKPOINT_VERSION`
|
|
217
|
+
* only when this worker can also *read* the new shape. A future v2 worker raises MAX to 2 and still reads a
|
|
218
|
+
* v1 checkpoint — forward-compatible by `<=`, never `=== `.
|
|
219
|
+
*/
|
|
220
|
+
export const CURRENT_CHECKPOINT_VERSION = 1;
|
|
221
|
+
/** design/74 R3-B: the schema version a `resource_limit` suspend stamps (v2 — it adds `resourceLedger` and a
|
|
222
|
+
* `resource_limit` `pendingAction`/`gate` an old worker can't handle). An old worker (`MAX_SUPPORTED`=1)
|
|
223
|
+
* rejects it pre-CAS (stays `pending`, retryable on a new worker). */
|
|
224
|
+
export const RESOURCE_CHECKPOINT_VERSION = 2;
|
|
225
|
+
/**
|
|
226
|
+
* design/80 D-1 (version-skew downgrade fix): the schema version a **binding-bearing** human/irreversible_ask
|
|
227
|
+
* `tool_approval` suspend stamps. These checkpoints carry the decision-action binding (`boundCallId` +
|
|
228
|
+
* `boundInputHash`) whose enforcement lives ENTIRELY in the resuming worker's resume path. A pre-D-1 worker
|
|
229
|
+
* (released 1.100.0: `MAX_SUPPORTED`=2, and its resume code has ZERO binding logic) would otherwise resume a
|
|
230
|
+
* D-1-minted v1 checkpoint and execute the pending tool with NO decision-action verification — the exact
|
|
231
|
+
* "approve vendor-A $5 → execute vendor-B $5000" bypass the binding exists to prevent (council BLOCKER #1).
|
|
232
|
+
* Stamping these at **v3 (> the old worker's MAX of 2)** forces a pre-D-1 worker to reject them PRE-CAS
|
|
233
|
+
* (`unsupported_version`, stays `pending`, retried on a binding-enforcing worker) instead of silently voiding
|
|
234
|
+
* the binding. A resource_limit suspend keeps stamping v2; a pre-binding (legacy 1.100.0) checkpoint is v1.
|
|
235
|
+
*/
|
|
236
|
+
export const BINDING_CHECKPOINT_VERSION = 3;
|
|
237
|
+
/** The highest {@link Checkpoint.version} `runner.resume` will act on; a higher one is rejected pre-CAS with
|
|
238
|
+
* {@link CheckpointError} `unsupported_version` (the checkpoint stays `pending`, retryable on a newer worker).
|
|
239
|
+
* Raised to 3 for design/80 D-1 binding checkpoints — this worker reads v1 (legacy human), v2 (resource),
|
|
240
|
+
* and v3 (binding human/irreversible_ask). */
|
|
241
|
+
export const MAX_SUPPORTED_CHECKPOINT_VERSION = 3;
|
|
242
|
+
/**
|
|
243
|
+
* Read a checkpoint's schema version, defaulting an absent field to **legacy `0`** (a 1.67-era checkpoint
|
|
244
|
+
* written before the field existed — it carries no `workspaceHandle`, so resuming it the v1 way is safe).
|
|
245
|
+
* Compare with `<= MAX_SUPPORTED_CHECKPOINT_VERSION`, never `=== CURRENT_CHECKPOINT_VERSION` (design/49 §3).
|
|
246
|
+
*/
|
|
247
|
+
export function checkpointVersionOf(cp) {
|
|
248
|
+
return cp.version ?? 0;
|
|
249
|
+
}
|
|
250
|
+
/** design/74 Slice 4: accumulate ONE slice's spend into the ledger — called when a `resource_limit` suspend
|
|
251
|
+
* commits its checkpoint (debit-at-`put`, so the persisted ledger always reflects everything spent up to and
|
|
252
|
+
* including the slice being suspended). Pure. The FIRST slice (no prior ledger) seeds the human totals from
|
|
253
|
+
* `total`; every later slice keeps the ledger's own totals (authoritative — a resumed slice must not be able
|
|
254
|
+
* to silently raise its own ceiling). Negative slice figures are clamped to 0 (a misreported usage can never
|
|
255
|
+
* REFUND the cumulative spend and reopen budget). */
|
|
256
|
+
export function debitLedger(prior, slice, total, opts) {
|
|
257
|
+
return {
|
|
258
|
+
// Totals are set once (first slice) and then frozen on the ledger; `prior` wins so a resume can't widen them.
|
|
259
|
+
totalBudgetMicroUsd: prior?.totalBudgetMicroUsd ?? total?.totalBudgetMicroUsd,
|
|
260
|
+
totalWalltimeSec: prior?.totalWalltimeSec ?? total?.totalWalltimeSec,
|
|
261
|
+
spentMicroUsd: (prior?.spentMicroUsd ?? 0) + Math.max(0, slice.costMicroUsd),
|
|
262
|
+
spentTokens: (prior?.spentTokens ?? 0) + Math.max(0, slice.tokens),
|
|
263
|
+
spentTurns: (prior?.spentTurns ?? 0) + Math.max(0, slice.turns),
|
|
264
|
+
// design/80 D-E-core (codex review #1): `sliceCount` is the RESOURCE-slice / `maxSlices` counter — only a
|
|
265
|
+
// real `resource_limit` mint advances it. An APPROVAL suspend rides this ledger purely for the `req.budget`
|
|
266
|
+
// READ (`countSlice:false`), so it must NOT consume a resource slice (else a human pause before slice 1
|
|
267
|
+
// could trip the resource `suspend.loop` / `maxSlices` cap).
|
|
268
|
+
sliceCount: (prior?.sliceCount ?? 0) + (opts?.countSlice === false ? 0 : 1),
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
/** design/74 Slice 4: the $ budget (micro-USD) the NEXT slice may still spend = `totalBudgetMicroUsd -
|
|
272
|
+
* spentMicroUsd`, never negative. `undefined` when no total $ ceiling is set (the run is bounded only by the
|
|
273
|
+
* per-slice window / walltime). A resumed slice's effective `maxCostUsd` is `min(window, this)`. NB: `0` is a
|
|
274
|
+
* VALID, exhausted ceiling — NOT "unlimited" (only `undefined` is unlimited). Any spend then immediately trips
|
|
275
|
+
* `overBudget`, and the run loop fails an exhausted resume fast (runtask). Never falsy-test this value (a
|
|
276
|
+
* `if (remaining)` would skip a legitimate 0 ceiling and silently bypass the budget). */
|
|
277
|
+
export function remainingBudgetMicroUsd(ledger) {
|
|
278
|
+
if (ledger?.totalBudgetMicroUsd === undefined)
|
|
279
|
+
return undefined;
|
|
280
|
+
return Math.max(0, ledger.totalBudgetMicroUsd - ledger.spentMicroUsd);
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* design/80 assistant-scheduler seam #1: project a single PENDING {@link Checkpoint} to its lightweight
|
|
284
|
+
* {@link CheckpointSummary}. Shared by every {@link CheckpointStore} impl so the projection is IDENTICAL
|
|
285
|
+
* across the in-memory, file, and durable backends (the anti-drift guard) — `severity` always derives from the
|
|
286
|
+
* gate's {@link RiskDescriptor} via the single {@link riskSeverity} helper, `spentMicroUsd` always reads
|
|
287
|
+
* {@link ResourceLedger.spentMicroUsd}. Pure; reads no clock/random.
|
|
288
|
+
*/
|
|
289
|
+
export function summarizeCheckpoint(cp) {
|
|
290
|
+
// `severity` only exists for the approval escalations (`human`/`irreversible_ask`), which alone carry a
|
|
291
|
+
// riskDescriptor; recompute it from the descriptor's axes via the shared helper (single source of truth — it
|
|
292
|
+
// equals the descriptor's own `severity`, never re-derived independently). Absent gate/descriptor ⇒ omitted.
|
|
293
|
+
const riskDescriptor = cp.gate.kind === "human" || cp.gate.kind === "irreversible_ask" ? cp.gate.riskDescriptor : undefined;
|
|
294
|
+
const severity = riskDescriptor !== undefined ? riskSeverity(riskDescriptor.axes) : undefined;
|
|
295
|
+
// design S1d (source-tag): project the pending tool call's id/name from the `tool_approval` pendingAction so
|
|
296
|
+
// an inbox shows WHICH call awaits a decision without an N+1 getCheckpoint. Branch on `kind` FIRST — a
|
|
297
|
+
// resource_limit / plan_review / task_done pendingAction has no tool fields (PendingAction contract).
|
|
298
|
+
const tool = cp.pendingAction.kind === "tool_approval" ? cp.pendingAction : undefined;
|
|
299
|
+
// design S1e (service [204]): a BOUNDED, UNREDACTED raw preview of the pending tool call's args (so the inbox
|
|
300
|
+
// shows WHAT awaits a decision without an N+1 getCheckpoint). Only for a tool_approval pendingAction; capped to
|
|
301
|
+
// MAX_TOOL_INPUT_PREVIEW_CHARS with a trailing `…` when over. ECHO-ONLY (no gate/CAS/resume reads it — same as
|
|
302
|
+
// sourceTaskId); redaction is the CONSUMER's job. JSON.stringify can be undefined (e.g. args === undefined) or
|
|
303
|
+
// throw (a circular ref); guard both so a pathological args never aborts the projection — omit the preview then.
|
|
304
|
+
let toolInput;
|
|
305
|
+
if (tool !== undefined) {
|
|
306
|
+
try {
|
|
307
|
+
const raw = JSON.stringify(tool.args);
|
|
308
|
+
if (typeof raw === "string") {
|
|
309
|
+
toolInput = raw.length > MAX_TOOL_INPUT_PREVIEW_CHARS ? `${raw.slice(0, MAX_TOOL_INPUT_PREVIEW_CHARS)}…` : raw;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
catch {
|
|
313
|
+
toolInput = undefined; // un-serializable args → omit the preview (no new exposure, just no preview)
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
return {
|
|
317
|
+
token: cp.token,
|
|
318
|
+
sessionId: cp.sessionId,
|
|
319
|
+
scope: cp.scope,
|
|
320
|
+
gateKind: cp.gate.kind,
|
|
321
|
+
...(severity !== undefined ? { severity } : {}),
|
|
322
|
+
...(cp.resourceLedger !== undefined ? { spentMicroUsd: cp.resourceLedger.spentMicroUsd } : {}),
|
|
323
|
+
...(cp.deadline !== undefined ? { deadline: cp.deadline } : {}),
|
|
324
|
+
// design S1e (service [204]): createdAt is ALWAYS present (a Checkpoint always has one) — projected for
|
|
325
|
+
// oldest-first inbox triage in one listByScope call.
|
|
326
|
+
createdAt: cp.createdAt,
|
|
327
|
+
// design S1d (source-tag): echo-only attribution fields, projected from the persisted Checkpoint so
|
|
328
|
+
// listByScope returns full triage attribution in one call. Omitted when absent (non-ask gate / legacy).
|
|
329
|
+
...(cp.sourceTaskId !== undefined ? { sourceTaskId: cp.sourceTaskId } : {}),
|
|
330
|
+
...(cp.principal !== undefined ? { principal: cp.principal } : {}),
|
|
331
|
+
...(tool !== undefined ? { toolCallId: tool.toolCallId, toolName: tool.toolName } : {}),
|
|
332
|
+
// design/99 MF-14: typed content-gate discriminant — the reserved AskUserQuestion tool gating a question.
|
|
333
|
+
...(tool?.toolName === ASK_USER_QUESTION_TOOL_NAME ? { contentKind: "content_ask" } : {}),
|
|
334
|
+
// design S1e (service [204]): bounded raw args preview — only for a tool_approval pendingAction (omitted otherwise).
|
|
335
|
+
...(toolInput !== undefined ? { toolInput } : {}),
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
/** A typed checkpoint-store error so callers branch on `code` (mirrors `SessionError`). */
|
|
339
|
+
export class CheckpointError extends Error {
|
|
340
|
+
code;
|
|
341
|
+
constructor(code, message) {
|
|
342
|
+
super(message);
|
|
343
|
+
this.code = code;
|
|
344
|
+
this.name = "CheckpointError";
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* design/80 D-1 (persist-winner): derive the durable {@link ResolvedOutcome} winner from a resume
|
|
349
|
+
* `outcome`, or `undefined` when the outcome binds to no pending action. Only a `policy_ask` resume names
|
|
350
|
+
* a specific tool call (`boundCallId`) + decision worth recording; `resource_limit` / `dry_run_review` /
|
|
351
|
+
* `task_done` have nothing to bind, so they record no winner. Shared by every {@link CheckpointStore} impl
|
|
352
|
+
* so the persisted winner is identical across the in-memory and durable backends.
|
|
353
|
+
*/
|
|
354
|
+
export function winnerFromOutcome(outcome) {
|
|
355
|
+
if (outcome.gate !== "policy_ask")
|
|
356
|
+
return undefined;
|
|
357
|
+
// `updatedInput` is only set when the operator rewrote the call (design/37 allow-rewrite); omit it
|
|
358
|
+
// otherwise so a later equality check (env_failed replay) does not falsely diverge on `undefined`.
|
|
359
|
+
return outcome.updatedInput === undefined
|
|
360
|
+
? { boundCallId: outcome.boundCallId, decision: outcome.decision }
|
|
361
|
+
: { boundCallId: outcome.boundCallId, decision: outcome.decision, updatedInput: outcome.updatedInput };
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* design/80 D-A: the persist-time validation every {@link CheckpointStore.setPendingSteer} impl runs so the
|
|
365
|
+
* reject is IDENTICAL across the in-memory and durable backends. A `steer.text` carrying a `</system-reminder>`
|
|
366
|
+
* close tag would escape the model-facing `<system-reminder>` wrapper a trusted steer rides on resume — reject
|
|
367
|
+
* fail-closed (`steering.invalid_content`) so a dirty steer NEVER enters {@link CheckpointState} (§3 inv #2).
|
|
368
|
+
* Applied for BOTH `trusted` values: the durable record must be clean on either path (the untrusted resume
|
|
369
|
+
* path ALSO sanitizes as untrusted data, but the close tag must never reach the persisted state at all).
|
|
370
|
+
* Returns a frozen-trust copy (`{ text, trusted }` only) so no extra caller field leaks into the row.
|
|
371
|
+
*/
|
|
372
|
+
export function validatePendingSteer(steer) {
|
|
373
|
+
// §3 inv #2: a system-reminder break-out tag must NEVER enter CheckpointState. Detect via the codebase's
|
|
374
|
+
// canonical neutralizer (sanitizeUntrustedText changes the text IFF it contains a break-out sequence) — NOT a
|
|
375
|
+
// narrow literal `includes("</system-reminder>")`, which misses the case/whitespace/attribute variants the
|
|
376
|
+
// `SYSTEM_REMINDER` regex (untrusted-text.ts) treats as equivalent close tags (e.g. `</ system-reminder>`,
|
|
377
|
+
// `</SYSTEM-REMINDER>`, `</system-reminder >`). The TRUSTED resume path rides a `<system-reminder>` via
|
|
378
|
+
// `formatHookFeedback` with NO second sanitize, so this persist-time reject is the SOLE guard for that path; a
|
|
379
|
+
// variant tag would otherwise close the reminder framing early (review-council MAJOR).
|
|
380
|
+
if (sanitizeUntrustedText(steer.text) !== steer.text) {
|
|
381
|
+
throw new CheckpointError("steering.invalid_content", "steering text must not contain a system-reminder break-out tag");
|
|
382
|
+
}
|
|
383
|
+
// Cross-backend consistency (review-council): a C0 control char — NUL especially — is stored fine by the
|
|
384
|
+
// in-memory backend but REJECTED by Postgres text/jsonb, so a steer that persisted on one backend would fail
|
|
385
|
+
// on the other. Reject control chars here (allow only the ordinary `\t` / `\n` / `\r` whitespace).
|
|
386
|
+
if (/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/.test(steer.text)) {
|
|
387
|
+
throw new CheckpointError("steering.invalid_content", "steering text must not contain control characters");
|
|
388
|
+
}
|
|
389
|
+
// Freeze trust verbatim (§3 inv #1); copy only the two fields so a caller object's extras never persist.
|
|
390
|
+
return { text: steer.text, trusted: steer.trusted };
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Default in-process {@link CheckpointStore}. Single-instance / tests only — it does NOT survive a
|
|
394
|
+
* restart or span replicas, so it cannot deliver the cross-process guarantee a durable backend does.
|
|
395
|
+
* Single-threaded JS already serializes `resolve`, so the CAS is trivially atomic here;
|
|
396
|
+
* {@link testInjectFault} simulates the crash-recovery races a real backend must survive.
|
|
397
|
+
*/
|
|
398
|
+
export class InMemoryCheckpointStore {
|
|
399
|
+
cps = new Map();
|
|
400
|
+
fault = null;
|
|
401
|
+
async put(token, cp) {
|
|
402
|
+
if (this.cps.has(token)) {
|
|
403
|
+
throw new CheckpointError("checkpoint.already_exists", `checkpoint token already exists`);
|
|
404
|
+
}
|
|
405
|
+
// Store a defensive copy so a later mutation of the caller's object can't corrupt the persisted row.
|
|
406
|
+
this.cps.set(token, structuredClone(cp));
|
|
407
|
+
}
|
|
408
|
+
async get(token) {
|
|
409
|
+
const cp = this.cps.get(token);
|
|
410
|
+
return cp ? structuredClone(cp) : null;
|
|
411
|
+
}
|
|
412
|
+
async resolve(token, scope, outcome, expect) {
|
|
413
|
+
if (this.fault === "resolve-before-commit") {
|
|
414
|
+
this.fault = null;
|
|
415
|
+
throw new Error("injected fault: resolve before commit");
|
|
416
|
+
}
|
|
417
|
+
const cp = this.cps.get(token);
|
|
418
|
+
// Scope in the WHERE: a wrong-scope resolve never wins (multi-tenant isolation, §2.1).
|
|
419
|
+
if (!cp || cp.scope !== scope || cp.status !== "pending") {
|
|
420
|
+
return false;
|
|
421
|
+
}
|
|
422
|
+
// design/80 D-1 (atomicity fix): optimistic-concurrency guard, evaluated atomically with the CAS. The
|
|
423
|
+
// caller validated its reopen-by-reason guard against a get() snapshot; if a concurrent resolve/reopen
|
|
424
|
+
// cycle changed the monotonic `rev` in the get→resolve window, that validation is stale → lose the CAS
|
|
425
|
+
// (fail-closed), forcing a re-get + re-validate. (Single-threaded JS makes this check + the flip below
|
|
426
|
+
// trivially atomic here; a durable backend folds it into the CAS WHERE clause.) `rev` (not `reopenReason`)
|
|
427
|
+
// because a 2-valued enum can ABA back to a prior value while the winner changed (round-2 BLOCKER fix).
|
|
428
|
+
if (expect !== undefined && (cp.rev ?? 0) !== expect.rev) {
|
|
429
|
+
return false;
|
|
430
|
+
}
|
|
431
|
+
cp.status = "resolved"; // CAS commit (single-threaded → atomic)
|
|
432
|
+
cp.rev = (cp.rev ?? 0) + 1; // monotonic bump — the OCC key for any later resume
|
|
433
|
+
// design/80 D-1 (persist-winner): record the winning binding ON the row, atomically with the status
|
|
434
|
+
// flip, so a later reopen → re-resume can be validated against the approved decision. Only a
|
|
435
|
+
// `policy_ask` resolve binds to an action; others record no winner (winnerFromOutcome → undefined).
|
|
436
|
+
const winner = winnerFromOutcome(outcome);
|
|
437
|
+
if (winner)
|
|
438
|
+
cp.resolvedOutcome = structuredClone(winner);
|
|
439
|
+
// design/80 D-1 (MINOR-12): a freshly-resolved row carries no stale reopen reason — a subsequent reopen
|
|
440
|
+
// writes its own fresh reason.
|
|
441
|
+
cp.reopenReason = undefined;
|
|
442
|
+
if (this.fault === "resolve-after-commit") {
|
|
443
|
+
this.fault = null;
|
|
444
|
+
throw new Error("injected fault: resolve after commit");
|
|
445
|
+
}
|
|
446
|
+
return true;
|
|
447
|
+
}
|
|
448
|
+
async reopen(token, scope, reason) {
|
|
449
|
+
const cp = this.cps.get(token);
|
|
450
|
+
// CAS resolved→pending (inverse of resolve); scope in the WHERE, like resolve (multi-tenant isolation).
|
|
451
|
+
if (!cp || cp.scope !== scope || cp.status !== "resolved") {
|
|
452
|
+
return false;
|
|
453
|
+
}
|
|
454
|
+
cp.status = "pending"; // un-consume so a retry can win `resolve` again and re-resume the same work
|
|
455
|
+
cp.rev = (cp.rev ?? 0) + 1; // monotonic bump — makes a stale resume's OCC fail (ABA-proof, round-2 fix)
|
|
456
|
+
// design/80 D-1 (reopen-by-reason): record WHY it was reopened so re-resume validates per reason;
|
|
457
|
+
// PRESERVE the persisted winner (resolvedOutcome) — an env_failed re-resume must replay it.
|
|
458
|
+
cp.reopenReason = reason;
|
|
459
|
+
return true;
|
|
460
|
+
}
|
|
461
|
+
async setPendingSteer(token, scope, steer) {
|
|
462
|
+
// design/80 D-A: validate FIRST (before the row lookup) so a dirty steer is rejected (typed error) even
|
|
463
|
+
// when the checkpoint is missing/resolved — a forged close tag never reaches the persisted state (§3 inv #2).
|
|
464
|
+
const clean = validatePendingSteer(steer);
|
|
465
|
+
const cp = this.cps.get(token);
|
|
466
|
+
// Scope in the WHERE (multi-tenant isolation) + only a still-`pending` checkpoint can be steered (a
|
|
467
|
+
// resolved/expired one can't — §3 inv #6). No status flip: a steer is GUIDANCE, never an approval (§3 inv #4).
|
|
468
|
+
if (!cp || cp.scope !== scope || cp.status !== "pending") {
|
|
469
|
+
return false;
|
|
470
|
+
}
|
|
471
|
+
cp.state.pendingSteer = clean; // last-writer-wins on a still-pending row (idempotent-safe)
|
|
472
|
+
return true;
|
|
473
|
+
}
|
|
474
|
+
async expire(token, scope) {
|
|
475
|
+
const cp = this.cps.get(token);
|
|
476
|
+
// Scope in the WHERE (multi-tenant isolation) + only a `pending` row flips → mutually exclusive with
|
|
477
|
+
// `resolve` on the same row (single-threaded JS already serializes; a real backend's CAS does the same).
|
|
478
|
+
if (!cp || cp.scope !== scope || cp.status !== "pending") {
|
|
479
|
+
return false;
|
|
480
|
+
}
|
|
481
|
+
cp.status = "expired"; // CAS commit (single-threaded → atomic)
|
|
482
|
+
return true;
|
|
483
|
+
}
|
|
484
|
+
async reap(scope, cutoff) {
|
|
485
|
+
let n = 0;
|
|
486
|
+
for (const cp of this.cps.values()) {
|
|
487
|
+
if (cp.scope === scope && cp.status === "pending" && cp.deadline !== undefined && cp.deadline <= cutoff) {
|
|
488
|
+
cp.status = "expired";
|
|
489
|
+
n++;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
return n;
|
|
493
|
+
}
|
|
494
|
+
async listByScope(scope) {
|
|
495
|
+
// design/80 assistant-scheduler seam #1: PENDING-only projection. The predicate is byte-for-byte the
|
|
496
|
+
// resolve CAS's (`cp.scope === scope && cp.status === 'pending'`), so the list is exactly the still-resumable
|
|
497
|
+
// rows. Read-only — no mutation, no CAS, no fault hook; `summarizeCheckpoint` is the shared projection.
|
|
498
|
+
const out = [];
|
|
499
|
+
for (const cp of this.cps.values()) {
|
|
500
|
+
if (cp.scope === scope && cp.status === "pending")
|
|
501
|
+
out.push(summarizeCheckpoint(cp));
|
|
502
|
+
}
|
|
503
|
+
return out;
|
|
504
|
+
}
|
|
505
|
+
/** Arm a one-shot fault on the next `resolve` (council #5: makes crash-recovery unit-testable). */
|
|
506
|
+
testInjectFault(mode) {
|
|
507
|
+
this.fault = mode;
|
|
508
|
+
}
|
|
509
|
+
/** Test/inspection helper: number of stored checkpoints. */
|
|
510
|
+
get size() {
|
|
511
|
+
return this.cps.size;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
//# sourceMappingURL=checkpoint-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint-store.js","sourceRoot":"","sources":["../../src/core/checkpoint-store.ts"],"names":[],"mappings":"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"}
|