@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,236 @@
|
|
|
1
|
+
import type { Runner } from "../core/runner/runtask.js";
|
|
2
|
+
import type { TaskSpec } from "../core/types.js";
|
|
3
|
+
import type { ExecutionEnv } from "../internal/harness.js";
|
|
4
|
+
import type { VerificationResult } from "./verify.js";
|
|
5
|
+
import type { Checkpoint } from "../core/checkpoint-store.js";
|
|
6
|
+
import { type OracleIsolationVerdict } from "../core/oracle-isolation.js";
|
|
7
|
+
/**
|
|
8
|
+
* SAFE-tier oracle self-repair loop (design/76 D1 命门, design/78 Slice-1). Given an implementation spec
|
|
9
|
+
* and an **injected, trusted oracle**, this runs the worker, grades it with the oracle, and — on failure —
|
|
10
|
+
* loops a fix turn (and a bounded clean-restart) until the oracle passes or the loop gives up. The terminal
|
|
11
|
+
* is then projected through the {@link terminalForTier} table, which **caps every PASS at `candidate_only`**:
|
|
12
|
+
* this layer NEVER auto-accepts. Auto-accept (`fixed`) requires the OFF Gate-1 out-of-process
|
|
13
|
+
* `oracleIsolation` boundary that this slice deliberately does not build — SAFE-tier escalates to a human
|
|
14
|
+
* (`needs_human_oracle`) or surfaces a candidate, but never clears its own work.
|
|
15
|
+
*
|
|
16
|
+
* Like {@link verifyCompleted}, this is a **thin composition** over `runner.runTask` (verify.ts:18-21 posture)
|
|
17
|
+
* — it adds no Runner-core surface, touches no vendored code, and is called by a leader/profile (the sibling
|
|
18
|
+
* of {@link runWithVerification}). The oracle internals (which gate/judge/property-harness to compose) live
|
|
19
|
+
* in the PROFILE-injected {@link RepairOracle} closure; core only fixes the {@link OracleResult} shape and the
|
|
20
|
+
* read-only / identity contract (§1 裁决①). N-parallel candidate fan-out + a robustness-first selection ranker
|
|
21
|
+
* are PROFILE concerns (§3 裁决②) — core stays single-candidate.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* The provenance/strength tier of the oracle that produced a verdict. The control plane assigns this — it is
|
|
25
|
+
* NEVER derived from agent-visible state (not a {@link TaskSpec} field), mirroring design/44 §7 Q4. Drives the
|
|
26
|
+
* {@link terminalForTier} projection.
|
|
27
|
+
* - `trusted_hidden` — a hidden, spec-derived held-out oracle (strongest; still candidate_only here).
|
|
28
|
+
* - `trusted_visible` — a visible trusted oracle (must be paired with an anchor + no property-harness regression + L3).
|
|
29
|
+
* - `property_harness_weak` — derived property invariants only (a weak signal).
|
|
30
|
+
* - `l3_judge_advisory` — an L3 read-only judge that advises but does not clear.
|
|
31
|
+
* - `none` — no oracle available → only a human can adjudicate.
|
|
32
|
+
*/
|
|
33
|
+
export type OracleTier = "trusted_hidden" | "trusted_visible" | "property_harness_weak" | "l3_judge_advisory" | "none";
|
|
34
|
+
/**
|
|
35
|
+
* The terminal state the repair loop resolves to. SAFE-tier (this slice) can reach every value EXCEPT `fixed`:
|
|
36
|
+
* `fixed` is reserved for auto-accept, which needs the OFF Gate-1 out-of-process oracleIsolation boundary and
|
|
37
|
+
* is therefore unreachable here (terminal-by-tier §2 caps PASS at `candidate_only`).
|
|
38
|
+
* - `fixed` — auto-accepted (NOT reachable SAFE-tier; reserved for a future Gate-1 slice).
|
|
39
|
+
* - `candidate_only` — the oracle passed; surface the candidate for human acceptance, do not auto-accept.
|
|
40
|
+
* - `needs_human_oracle` — no usable oracle (`tier: "none"`) → only a human can adjudicate.
|
|
41
|
+
* - `gave_up` — attempts exhausted without a passing oracle (a first-class abstain, never "satisfy the test").
|
|
42
|
+
* - `conflict` — the spec and the oracle disagree (escalate; never rewrite the work to satisfy the test).
|
|
43
|
+
* Slice-1 core does NOT synthesize this (the test-tampering diff-monitor is §6-deferred to the profile —
|
|
44
|
+
* core honestly `gave_up`s rather than under-detect a conflict); it is in the vocabulary for the profile.
|
|
45
|
+
* - `oracle.unprotected` — fail-closed: the grader env was not isolated from the worker env (identity check).
|
|
46
|
+
*
|
|
47
|
+
* `needs_human_oracle` is disjoint from `needs_review` (a future dry-run gate) and `irreversible_ask` (shipped).
|
|
48
|
+
*/
|
|
49
|
+
export type RepairTerminal = "fixed" | "candidate_only" | "needs_human_oracle" | "gave_up" | "conflict" | "oracle.unprotected";
|
|
50
|
+
/**
|
|
51
|
+
* One oracle verdict. Produced by the injected {@link RepairOracle} closure. `flaky` records that the oracle
|
|
52
|
+
* was non-deterministic across `retries` (a flaky verdict is NEVER projected to `fixed` — §5 / §6 flakyK).
|
|
53
|
+
* `trace` is the raw failure output fed back into the next fix turn; it is treated as untrusted worker-adjacent
|
|
54
|
+
* data (delimited into context, sanitized into the objective) but its INNER text is NEVER rewritten (§5.5 #8a)
|
|
55
|
+
* — rewriting it would destroy the real-trace feedback lever.
|
|
56
|
+
*/
|
|
57
|
+
export interface OracleResult {
|
|
58
|
+
tier: OracleTier;
|
|
59
|
+
passed: boolean;
|
|
60
|
+
/** Raw failure trace (on a failed verdict). Untrusted; fed back verbatim into the fix turn (never inner-rewritten). */
|
|
61
|
+
trace?: string;
|
|
62
|
+
/** The oracle's verdict was non-deterministic across `retries` re-isolations. A flaky verdict never → `fixed`. */
|
|
63
|
+
flaky: boolean;
|
|
64
|
+
/** How many re-isolation retries the oracle ran to settle the verdict. */
|
|
65
|
+
retries: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The PROFILE-injected oracle (§1 裁决①). The profile composes the actual grading inside this closure —
|
|
69
|
+
* `runExecGate(graderEnv, steps)` (exec-gate.ts:185, env is the FIRST param = L2 provenance bound to the
|
|
70
|
+
* grader) → `verifyCompleted` (verify.ts:212, the read-only L3 judge) → `checkInvariants`
|
|
71
|
+
* (property-harness.ts:217, explore-only) — and maps the composite to an {@link OracleResult}. Core never
|
|
72
|
+
* composes these internals (so the oracle type can't grow a long discriminated union); it only fixes the
|
|
73
|
+
* `OracleResult` shape and the read-only/identity contract. `graderEnv` is the isolated grader env; `evidence`
|
|
74
|
+
* is the diff/results to judge (recompute it from the post-resume working tree on a resume — verify.ts:328 BUG5).
|
|
75
|
+
*/
|
|
76
|
+
export type RepairOracle = (graderEnv: ExecutionEnv, evidence: string | undefined) => Promise<OracleResult>;
|
|
77
|
+
/**
|
|
78
|
+
* The durable, JSON-safe repair state carried across an orthogonal durable suspend (§4). Serialized ONLY when
|
|
79
|
+
* an unrelated resource/HITL suspend interleaves the loop (happy-path is in-memory) and re-seeded on resume so
|
|
80
|
+
* `attemptCount` advances MONOTONICALLY (never reset). Contains NO functions/Dates (epoch ms if a timestamp is
|
|
81
|
+
* ever needed) so `structuredClone`/`JSON.stringify` round-trip it on the checkpoint. `baselinePassTests` is
|
|
82
|
+
* DELIBERATELY ABSENT (§4 MAJOR-C): the anchor is grader-computed out-of-process so a worker can't shrink it.
|
|
83
|
+
*/
|
|
84
|
+
export interface RepairBundle {
|
|
85
|
+
/** The latest failure trace (untrusted; fed back into the fix turn). */
|
|
86
|
+
failureTrace: string;
|
|
87
|
+
/** Reflexion-style diagnoses accumulated across attempts (≤3, Reflexion cap — §1). */
|
|
88
|
+
diagnostics: string[];
|
|
89
|
+
/** Hypotheses tried and rejected (so a re-seed doesn't re-explore them). */
|
|
90
|
+
rejectedHypotheses: string[];
|
|
91
|
+
/** The in-loop attempt counter — re-seeded MONOTONICALLY on resume, never reset/max/downscaled (§4 / §5). */
|
|
92
|
+
attemptCount: number;
|
|
93
|
+
/** The tier of the last oracle verdict (for the resumed loop's projection). */
|
|
94
|
+
oracleTier: OracleTier;
|
|
95
|
+
}
|
|
96
|
+
export interface RepairLoopConfig {
|
|
97
|
+
/** The PROFILE-injected, trusted oracle (§1 裁决①). Core calls it; it never composes the oracle internals. */
|
|
98
|
+
oracle: RepairOracle;
|
|
99
|
+
/**
|
|
100
|
+
* The ISOLATED grader env the oracle grades in. MUST be a distinct object from {@link workerEnv}: if they
|
|
101
|
+
* are the SAME reference the loop fails closed to `oracle.unprotected` BEFORE running anything (§5.1 —
|
|
102
|
+
* necessary-not-sufficient; the real out-of-process boundary is the OFF Gate-1).
|
|
103
|
+
*/
|
|
104
|
+
graderEnv: ExecutionEnv;
|
|
105
|
+
/**
|
|
106
|
+
* The worker's execution env (the env `runner.runTask` runs the impl in), passed by the trusted caller so
|
|
107
|
+
* the §5.1 identity check can run: `graderEnv === workerEnv` → fail-closed `oracle.unprotected`. `TaskSpec`
|
|
108
|
+
* deliberately has NO `executionEnv` (the worker env is wired on the Runner deps / `executionEnvFactory`, not
|
|
109
|
+
* reachable from `implSpec`), so the caller must supply the reference here for the check to be meaningful.
|
|
110
|
+
* Omit it only when the worker env genuinely can't collide with the grader (e.g. distinct factories) — the
|
|
111
|
+
* check is then skipped (no reference to compare) and isolation is the caller's deployment contract.
|
|
112
|
+
*/
|
|
113
|
+
workerEnv?: ExecutionEnv;
|
|
114
|
+
/**
|
|
115
|
+
* design/77 §1 Gate-1 (oracleIsolation): the paths the oracle/spec lives behind that the worker must NOT be
|
|
116
|
+
* able to corrupt (e.g. a hidden held-out test dir). When supplied **together with** {@link workerEnv}, the
|
|
117
|
+
* loop runs the FULL structural {@link assertOracleIsolation} (identity + structural-class + bash write-probe)
|
|
118
|
+
* instead of the bare reference-identity check, and surfaces {@link RepairResult.isolationClass}. Omit it (the
|
|
119
|
+
* default) to keep the existing necessary-not-sufficient reference-identity check (the merged Slice-1 posture).
|
|
120
|
+
*
|
|
121
|
+
* The real isolated grader env is SERVICE-provided ({@link import("../core/types.js").RunnerDeps.graderEnvFactory});
|
|
122
|
+
* `graderEnv` here is its `.env`, and the control-plane `provenance` brand is reattached internally for the
|
|
123
|
+
* assertion. The assertion only matters for the (mandate-OFF) auto-accept path: `isolationClass` caps a
|
|
124
|
+
* non-`out_of_process` grader at `candidate_only`. SAFE-tier never auto-accepts regardless.
|
|
125
|
+
*/
|
|
126
|
+
immutableOraclePaths?: string[];
|
|
127
|
+
/**
|
|
128
|
+
* In-loop attempt ceiling (the loop runs at most this many GENERATE/oracle attempts). Profile validates this
|
|
129
|
+
* to 2-3; core only enforces it as a ceiling, it does not fence the value. This counter is DISTINCT from
|
|
130
|
+
* `suspendCount`(maxSuspends) and `sliceCount`(maxSlices) — it never borrows those budgets (§5 / §7).
|
|
131
|
+
*/
|
|
132
|
+
maxAttempts: number;
|
|
133
|
+
/**
|
|
134
|
+
* On a resume after an orthogonal durable suspend, the restored {@link RepairBundle} (from
|
|
135
|
+
* `PrepareResume.seed.repairBundle`). `attemptCount` is re-seeded from it MONOTONICALLY (§4) — never reset.
|
|
136
|
+
*/
|
|
137
|
+
resumeBundle?: RepairBundle;
|
|
138
|
+
/** Stop the loop once cumulative cost (generate + fix + oracle nested) reaches this (verify.ts:278 backstop). */
|
|
139
|
+
costCeilingMicroUsd?: number;
|
|
140
|
+
/** Overall wall-clock ceiling for the whole loop (verify.ts:277 backstop). */
|
|
141
|
+
totalTimeoutMs?: number;
|
|
142
|
+
/** Per-attempt callback (observability). */
|
|
143
|
+
onAttempt?: (info: {
|
|
144
|
+
attempt: number;
|
|
145
|
+
terminal?: RepairTerminal;
|
|
146
|
+
oracle: OracleResult;
|
|
147
|
+
}) => void;
|
|
148
|
+
/**
|
|
149
|
+
* Operational-warning sink (observability). MINOR-2: the §5.1 isolation identity check is SKIPPED when
|
|
150
|
+
* `workerEnv` is undefined (no reference to compare). An ACCIDENTAL omission — `graderEnv` supplied but
|
|
151
|
+
* `workerEnv` forgotten — would then disable the check silently. When wired, that case is surfaced here
|
|
152
|
+
* once at loop start so the gap is observable; the posture stays necessary-not-sufficient (no hard-fail).
|
|
153
|
+
*/
|
|
154
|
+
onWarn?: (warning: Error) => void;
|
|
155
|
+
}
|
|
156
|
+
export interface RepairResult extends VerificationResult {
|
|
157
|
+
/** The projected terminal (§2). SAFE-tier never returns `fixed`. */
|
|
158
|
+
terminal: RepairTerminal;
|
|
159
|
+
/** The final repair state (in-memory unless an orthogonal suspend serialized it — §4). */
|
|
160
|
+
bundle: RepairBundle;
|
|
161
|
+
/**
|
|
162
|
+
* design/77 §1 Gate-1: the structural isolation class of the grader env, when the full
|
|
163
|
+
* {@link assertOracleIsolation} ran (i.e. {@link RepairLoopConfig.immutableOraclePaths} + `workerEnv` were
|
|
164
|
+
* supplied). `"out_of_process"` is the ONLY class the (mandate-OFF) auto-accept path may consider;
|
|
165
|
+
* `"in_process_probe_only"` CAPS the run at `candidate_only`. Undefined when only the bare reference-identity
|
|
166
|
+
* check ran. SAFE-tier never auto-accepts regardless of this value.
|
|
167
|
+
*/
|
|
168
|
+
isolationClass?: OracleIsolationVerdict["isolationClass"];
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* design/77 §1 Gate-1 invariant — auto-accept (`fixed`) is UNREACHABLE here. The terminal-by-tier projection
|
|
172
|
+
* (§2) already caps every PASS at `candidate_only`, so `isolationClass` only ever matters for the (OFF)
|
|
173
|
+
* auto-accept path. This guard makes the invariant load-bearing rather than caller discipline: a non-isolated
|
|
174
|
+
* (`in_process_probe_only`) or unprotected verdict can NEVER carry a `fixed` terminal — at most
|
|
175
|
+
* `candidate_only` / `oracle.unprotected`. It is a pure assertion over the projected terminal; it never
|
|
176
|
+
* upgrades anything (auto-accept stays OFF — only a future Gate-1 slice running on an `out_of_process` grader
|
|
177
|
+
* may even consider it).
|
|
178
|
+
*/
|
|
179
|
+
export declare function isolationPermitsAutoAccept(verdict: OracleIsolationVerdict): boolean;
|
|
180
|
+
/**
|
|
181
|
+
* CONSUMER seam (design/78 Slice-1, MAJOR-3 wiring — the re-entry side of the round-trip). Read the durable
|
|
182
|
+
* {@link RepairBundle} a resumed checkpoint carries, so a leader/profile resuming a repair-interleaved
|
|
183
|
+
* suspend can re-seed a FRESH {@link runRepairLoop} call with it.
|
|
184
|
+
*
|
|
185
|
+
* ## The contract (core vs profile)
|
|
186
|
+
* - **CORE owns the persistence + restore.** When an orthogonal durable suspend (resource/HITL) interleaves a
|
|
187
|
+
* `runRepairLoop` attempt, the Runner serializes the live bundle onto the minted checkpoint
|
|
188
|
+
* (`prepareTask.serializeCheckpointState` sources `internals.repairBundle`), and on resume re-seeds it back
|
|
189
|
+
* into `prepareTask` from `cp.state.repairBundle`. So `cp.state.repairBundle` is round-trip-true after a
|
|
190
|
+
* `runner.resume(token, …)`: it survives the suspend with `attemptCount` intact (never reset — §4 / MAJOR-A).
|
|
191
|
+
* - **PROFILE owns the re-entry loop.** The leader that resumes the worker (`runner.resume`) is a PROFILE
|
|
192
|
+
* concern — core does NOT build the "resume → grade → re-seed `runRepairLoop`" loop. The profile reads the
|
|
193
|
+
* restored bundle (via this accessor) off the SAME checkpoint it resumed, and on its NEXT repair attempt
|
|
194
|
+
* passes it as {@link RepairLoopConfig.resumeBundle}. `runRepairLoop` then re-seeds `attemptCount`
|
|
195
|
+
* MONOTONICALLY from it (`config.resumeBundle` → the loop's `bundle`), so the repair ratchet is preserved
|
|
196
|
+
* across the durable suspend rather than starting the attempt budget over.
|
|
197
|
+
*
|
|
198
|
+
* Returns `undefined` when the checkpoint carries no repair state (a non-repair task, or a repair attempt that
|
|
199
|
+
* suspended on its very first GENERATE before any oracle verdict — the re-seed treats `undefined` as a clean
|
|
200
|
+
* start). The returned object is the checkpoint's own (already an independent `structuredClone` from the
|
|
201
|
+
* store); pass it straight into `resumeBundle` — `runRepairLoop` copies its arrays defensively on re-seed.
|
|
202
|
+
*/
|
|
203
|
+
export declare function repairBundleFromCheckpoint(cp: Checkpoint): RepairBundle | undefined;
|
|
204
|
+
/**
|
|
205
|
+
* The terminal-by-tier projection (§2) — a PURE function, the core invariant. **SAFE-tier caps every PASS at
|
|
206
|
+
* `candidate_only`**; `fixed` (auto-accept) is unreachable here because it needs the OFF Gate-1 out-of-process
|
|
207
|
+
* boundary. Enforced HERE (in the projection table), not as caller discipline, so no consumer can promote a
|
|
208
|
+
* PASS to `fixed`.
|
|
209
|
+
*
|
|
210
|
+
* - any tier, `passed: true` → `candidate_only` (trusted_hidden/trusted_visible/property_harness_weak alike).
|
|
211
|
+
* - `l3_judge_advisory` → advisory only; even a "pass" can't clear → `candidate_only` (it never self-clears).
|
|
212
|
+
* - `none` → `needs_human_oracle` (no usable oracle → only a human adjudicates).
|
|
213
|
+
* - not-passed with a usable tier → not a terminal yet (the loop continues / gives up); represented as
|
|
214
|
+
* `undefined` so the caller's state machine drives the `gave_up`/`conflict` path explicitly.
|
|
215
|
+
*/
|
|
216
|
+
export declare function terminalForTier(oracle: OracleResult): RepairTerminal | undefined;
|
|
217
|
+
/**
|
|
218
|
+
* Run the SAFE-tier oracle self-repair loop over `implSpec` (design/78 §1 state machine — a DETERMINISTIC
|
|
219
|
+
* switch, no LLM in the control flow):
|
|
220
|
+
*
|
|
221
|
+
* `ASSERT_ISOLATION` (identity check → fail-closed `oracle.unprotected`) → `GENERATE` (`runner.runTask`) →
|
|
222
|
+
* `ORACLE` (the injected closure) → { passed → terminal-by-tier projection } | { failed & attempt<max → REPAIR
|
|
223
|
+
* (a fix turn) → loop } | { failed & attempt==max → CLEAN_RESTART once, else `gave_up` } | { conflict → terminal }.
|
|
224
|
+
*
|
|
225
|
+
* `ASSERT_ISOLATION` is the design/77 §1 Gate-1 seam: when {@link RepairLoopConfig.immutableOraclePaths} +
|
|
226
|
+
* `workerEnv` are supplied it runs the FULL {@link assertOracleIsolation} (identity + structural-class + bash
|
|
227
|
+
* write-probe) and surfaces {@link RepairResult.isolationClass}; otherwise it runs the bare reference-identity
|
|
228
|
+
* check (the merged Slice-1 posture). Either way a failed assertion fails closed to `oracle.unprotected` before
|
|
229
|
+
* any work runs, and the result NEVER reaches `fixed` — `isolationClass` only gates the (mandate-OFF) auto-accept
|
|
230
|
+
* path that this SAFE-tier loop does not take.
|
|
231
|
+
*
|
|
232
|
+
* SAFE-tier: the projection caps every PASS at `candidate_only` — this NEVER auto-accepts. `runRepairLoop` is a
|
|
233
|
+
* SIBLING of {@link verifyCompleted}: it composes over `runner.runTask` and never touches the Runner core.
|
|
234
|
+
*/
|
|
235
|
+
export declare function runRepairLoop(runner: Runner, implSpec: TaskSpec, config: RepairLoopConfig): Promise<RepairResult>;
|
|
236
|
+
//# sourceMappingURL=repair-loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repair-loop.d.ts","sourceRoot":"","sources":["../../src/agents/repair-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { isDurablePause } from "./suspend-guard.js";
|
|
2
|
+
import { delimitUntrusted, sanitizeUntrustedText } from "../core/untrusted-text.js";
|
|
3
|
+
import { assertOracleIsolation } from "../core/oracle-isolation.js";
|
|
4
|
+
/**
|
|
5
|
+
* design/77 §1 Gate-1 invariant — auto-accept (`fixed`) is UNREACHABLE here. The terminal-by-tier projection
|
|
6
|
+
* (§2) already caps every PASS at `candidate_only`, so `isolationClass` only ever matters for the (OFF)
|
|
7
|
+
* auto-accept path. This guard makes the invariant load-bearing rather than caller discipline: a non-isolated
|
|
8
|
+
* (`in_process_probe_only`) or unprotected verdict can NEVER carry a `fixed` terminal — at most
|
|
9
|
+
* `candidate_only` / `oracle.unprotected`. It is a pure assertion over the projected terminal; it never
|
|
10
|
+
* upgrades anything (auto-accept stays OFF — only a future Gate-1 slice running on an `out_of_process` grader
|
|
11
|
+
* may even consider it).
|
|
12
|
+
*/
|
|
13
|
+
export function isolationPermitsAutoAccept(verdict) {
|
|
14
|
+
return verdict.protected && verdict.isolationClass === "out_of_process";
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* CONSUMER seam (design/78 Slice-1, MAJOR-3 wiring — the re-entry side of the round-trip). Read the durable
|
|
18
|
+
* {@link RepairBundle} a resumed checkpoint carries, so a leader/profile resuming a repair-interleaved
|
|
19
|
+
* suspend can re-seed a FRESH {@link runRepairLoop} call with it.
|
|
20
|
+
*
|
|
21
|
+
* ## The contract (core vs profile)
|
|
22
|
+
* - **CORE owns the persistence + restore.** When an orthogonal durable suspend (resource/HITL) interleaves a
|
|
23
|
+
* `runRepairLoop` attempt, the Runner serializes the live bundle onto the minted checkpoint
|
|
24
|
+
* (`prepareTask.serializeCheckpointState` sources `internals.repairBundle`), and on resume re-seeds it back
|
|
25
|
+
* into `prepareTask` from `cp.state.repairBundle`. So `cp.state.repairBundle` is round-trip-true after a
|
|
26
|
+
* `runner.resume(token, …)`: it survives the suspend with `attemptCount` intact (never reset — §4 / MAJOR-A).
|
|
27
|
+
* - **PROFILE owns the re-entry loop.** The leader that resumes the worker (`runner.resume`) is a PROFILE
|
|
28
|
+
* concern — core does NOT build the "resume → grade → re-seed `runRepairLoop`" loop. The profile reads the
|
|
29
|
+
* restored bundle (via this accessor) off the SAME checkpoint it resumed, and on its NEXT repair attempt
|
|
30
|
+
* passes it as {@link RepairLoopConfig.resumeBundle}. `runRepairLoop` then re-seeds `attemptCount`
|
|
31
|
+
* MONOTONICALLY from it (`config.resumeBundle` → the loop's `bundle`), so the repair ratchet is preserved
|
|
32
|
+
* across the durable suspend rather than starting the attempt budget over.
|
|
33
|
+
*
|
|
34
|
+
* Returns `undefined` when the checkpoint carries no repair state (a non-repair task, or a repair attempt that
|
|
35
|
+
* suspended on its very first GENERATE before any oracle verdict — the re-seed treats `undefined` as a clean
|
|
36
|
+
* start). The returned object is the checkpoint's own (already an independent `structuredClone` from the
|
|
37
|
+
* store); pass it straight into `resumeBundle` — `runRepairLoop` copies its arrays defensively on re-seed.
|
|
38
|
+
*/
|
|
39
|
+
export function repairBundleFromCheckpoint(cp) {
|
|
40
|
+
return cp.state.repairBundle;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The terminal-by-tier projection (§2) — a PURE function, the core invariant. **SAFE-tier caps every PASS at
|
|
44
|
+
* `candidate_only`**; `fixed` (auto-accept) is unreachable here because it needs the OFF Gate-1 out-of-process
|
|
45
|
+
* boundary. Enforced HERE (in the projection table), not as caller discipline, so no consumer can promote a
|
|
46
|
+
* PASS to `fixed`.
|
|
47
|
+
*
|
|
48
|
+
* - any tier, `passed: true` → `candidate_only` (trusted_hidden/trusted_visible/property_harness_weak alike).
|
|
49
|
+
* - `l3_judge_advisory` → advisory only; even a "pass" can't clear → `candidate_only` (it never self-clears).
|
|
50
|
+
* - `none` → `needs_human_oracle` (no usable oracle → only a human adjudicates).
|
|
51
|
+
* - not-passed with a usable tier → not a terminal yet (the loop continues / gives up); represented as
|
|
52
|
+
* `undefined` so the caller's state machine drives the `gave_up`/`conflict` path explicitly.
|
|
53
|
+
*/
|
|
54
|
+
export function terminalForTier(oracle) {
|
|
55
|
+
if (oracle.tier === "none")
|
|
56
|
+
return "needs_human_oracle";
|
|
57
|
+
// A flaky verdict is never a clean pass — never project it to a passing terminal (§5 / §6 flakyK). It falls
|
|
58
|
+
// through to the not-passed path so the loop re-isolates / escalates rather than surfacing a candidate.
|
|
59
|
+
if (oracle.passed && !oracle.flaky) {
|
|
60
|
+
// SAFE-tier cap: every passing tier → candidate_only. `fixed` is unreachable (needs OFF Gate-1).
|
|
61
|
+
return "candidate_only";
|
|
62
|
+
}
|
|
63
|
+
// Not (cleanly) passed on a usable-oracle tier → the state machine decides (loop / gave_up / conflict).
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The fix-turn objective: feed the oracle's failure trace + accumulated diagnoses back into the next attempt's
|
|
68
|
+
* objective. The trace is UNTRUSTED worker-adjacent output, so it is sanitized as it enters the objective
|
|
69
|
+
* (verify.ts:163 fixObjective pattern) — but it is fed back VERBATIM in substance (no inner rewrite, §5.5 #8a):
|
|
70
|
+
* the implementer must see the real failure to fix it. The instruction never says "make the test pass" — it
|
|
71
|
+
* says "fix the cause"; a spec-vs-oracle conflict escalates instead (§5 #2).
|
|
72
|
+
*/
|
|
73
|
+
function repairObjective(bundle) {
|
|
74
|
+
const diag = bundle.diagnostics.length
|
|
75
|
+
? bundle.diagnostics.map((d) => `- ${sanitizeUntrustedText(d)}`).join("\n")
|
|
76
|
+
: "(no prior diagnoses)";
|
|
77
|
+
return (`The oracle REJECTED the previous attempt. Diagnose and fix the underlying cause, then stop — do not ` +
|
|
78
|
+
`add anything else, and do NOT edit or weaken the oracle/tests to make them pass. If the spec and the ` +
|
|
79
|
+
`oracle genuinely conflict, say so explicitly rather than satisfying the test.\n\n` +
|
|
80
|
+
`## Prior diagnoses\n${diag}\n\n` +
|
|
81
|
+
`## Oracle failure trace (untrusted)\n${delimitUntrusted("ORACLE TRACE", bundle.failureTrace || "(no trace)")}`);
|
|
82
|
+
}
|
|
83
|
+
/** A fresh, empty bundle for a loop that starts without a resume seed. */
|
|
84
|
+
function freshBundle() {
|
|
85
|
+
return { failureTrace: "", diagnostics: [], rejectedHypotheses: [], attemptCount: 0, oracleTier: "none" };
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Build the {@link VerificationOutcome} shape {@link RepairResult} extends from. The repair loop's own verdict
|
|
89
|
+
* is the `terminal`; this carries the verify-stack shape (verdict/rounds/findings) so a {@link RepairResult} is
|
|
90
|
+
* a drop-in {@link VerificationResult} for callers that already consume that shape.
|
|
91
|
+
*/
|
|
92
|
+
function outcomeFor(terminal, oracle, rounds) {
|
|
93
|
+
const passed = terminal === "candidate_only" || terminal === "fixed";
|
|
94
|
+
return {
|
|
95
|
+
verdict: passed ? "PASS" : terminal === "needs_human_oracle" ? "unverified" : "FAIL",
|
|
96
|
+
...(passed ? {} : terminal === "needs_human_oracle" ? { unverifiedReason: "no_verdict" } : {}),
|
|
97
|
+
rounds,
|
|
98
|
+
// MINOR-1: `oracle.trace` is RAW untrusted text (the grader's failure output — may carry a forged
|
|
99
|
+
// `<system-reminder>` / break-out sequence). It flows outward in `verification.findings` (a caller may
|
|
100
|
+
// re-inject it into a prompt), so neutralize the break-out at the producer like every other untrusted inlet.
|
|
101
|
+
findings: oracle?.trace ? [sanitizeUntrustedText(oracle.trace)] : [],
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Run the SAFE-tier oracle self-repair loop over `implSpec` (design/78 §1 state machine — a DETERMINISTIC
|
|
106
|
+
* switch, no LLM in the control flow):
|
|
107
|
+
*
|
|
108
|
+
* `ASSERT_ISOLATION` (identity check → fail-closed `oracle.unprotected`) → `GENERATE` (`runner.runTask`) →
|
|
109
|
+
* `ORACLE` (the injected closure) → { passed → terminal-by-tier projection } | { failed & attempt<max → REPAIR
|
|
110
|
+
* (a fix turn) → loop } | { failed & attempt==max → CLEAN_RESTART once, else `gave_up` } | { conflict → terminal }.
|
|
111
|
+
*
|
|
112
|
+
* `ASSERT_ISOLATION` is the design/77 §1 Gate-1 seam: when {@link RepairLoopConfig.immutableOraclePaths} +
|
|
113
|
+
* `workerEnv` are supplied it runs the FULL {@link assertOracleIsolation} (identity + structural-class + bash
|
|
114
|
+
* write-probe) and surfaces {@link RepairResult.isolationClass}; otherwise it runs the bare reference-identity
|
|
115
|
+
* check (the merged Slice-1 posture). Either way a failed assertion fails closed to `oracle.unprotected` before
|
|
116
|
+
* any work runs, and the result NEVER reaches `fixed` — `isolationClass` only gates the (mandate-OFF) auto-accept
|
|
117
|
+
* path that this SAFE-tier loop does not take.
|
|
118
|
+
*
|
|
119
|
+
* SAFE-tier: the projection caps every PASS at `candidate_only` — this NEVER auto-accepts. `runRepairLoop` is a
|
|
120
|
+
* SIBLING of {@link verifyCompleted}: it composes over `runner.runTask` and never touches the Runner core.
|
|
121
|
+
*/
|
|
122
|
+
export async function runRepairLoop(runner, implSpec, config) {
|
|
123
|
+
// ── ASSERT_ISOLATION (§5.1): the grader env MUST be a distinct object from the worker env, else the oracle
|
|
124
|
+
// is grading in the same env the worker can corrupt → fail closed BEFORE running anything. The worker env is
|
|
125
|
+
// supplied via `config.workerEnv` (TaskSpec has no `executionEnv` — types.ts:911 — so it isn't reachable from
|
|
126
|
+
// `implSpec`; see the design/78 deviation note). necessary-not-sufficient: the real boundary is the OFF Gate-1.
|
|
127
|
+
if (config.workerEnv === undefined && config.immutableOraclePaths === undefined) {
|
|
128
|
+
// MINOR-2: `workerEnv` omitted AND no full structural assertion requested → the bare identity check below
|
|
129
|
+
// can't run (no reference to compare), so it is skipped. That is LEGITIMATE only when the worker env
|
|
130
|
+
// genuinely can't collide with the grader (distinct factories). An ACCIDENTAL omission would silently
|
|
131
|
+
// disable the §5.1 check, so surface it once — observable, not fatal (necessary-not-sufficient: the real
|
|
132
|
+
// boundary is the OFF Gate-1 out-of-process isolation). The `immutableOraclePaths`-set case is NOT a warn:
|
|
133
|
+
// it fails closed below (adversarial round MINOR — a requested-but-unrunnable assertion must not be skipped).
|
|
134
|
+
config.onWarn?.(new Error("repair-loop §5.1: graderEnv was supplied but workerEnv is undefined — the grader/worker env identity " +
|
|
135
|
+
"check is SKIPPED. Pass config.workerEnv (the env runner.runTask runs the impl in) so an accidental " +
|
|
136
|
+
"shared-env misconfiguration is caught; omit it only when the envs provably cannot collide."));
|
|
137
|
+
}
|
|
138
|
+
// Build the fail-closed synthetic result for a failed isolation assertion (no work ran — before GENERATE).
|
|
139
|
+
const unprotectedResult = (reason, isolationClass) => {
|
|
140
|
+
const oracle = { tier: "none", passed: false, flaky: false, retries: 0 };
|
|
141
|
+
return {
|
|
142
|
+
taskId: implSpec.taskId ?? "",
|
|
143
|
+
status: "failed",
|
|
144
|
+
result: `oracle isolation check failed: ${reason}`,
|
|
145
|
+
errorCode: "oracle.unprotected",
|
|
146
|
+
sessionId: "",
|
|
147
|
+
stats: { tokens: 0, turns: 0, costUsd: 0, costMicroUsd: 0 },
|
|
148
|
+
terminal: "oracle.unprotected",
|
|
149
|
+
...(isolationClass ? { isolationClass } : {}),
|
|
150
|
+
bundle: { ...freshBundle(), attemptCount: config.resumeBundle?.attemptCount ?? 0 },
|
|
151
|
+
verification: outcomeFor("oracle.unprotected", oracle, 0),
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
// design/77 §1 Gate-1: when the FULL structural assertion is requested (immutableOraclePaths supplied) AND a
|
|
155
|
+
// worker env is present, run `assertOracleIsolation` (identity + structural-class + bash write-probe) and
|
|
156
|
+
// capture the isolationClass to surface on the result. A non-`protected` verdict fails closed to
|
|
157
|
+
// `oracle.unprotected` BEFORE any work runs — identical terminal to the bare reference check, plus the class.
|
|
158
|
+
// The class only gates the (mandate-OFF) auto-accept path; it never lets this SAFE-tier loop reach `fixed`.
|
|
159
|
+
let isolationClass;
|
|
160
|
+
if (config.immutableOraclePaths !== undefined && config.workerEnv === undefined) {
|
|
161
|
+
// 🔴 Adversarial round MINOR: the caller opted into the FULL structural assertion (`immutableOraclePaths`)
|
|
162
|
+
// but supplied no `workerEnv`. The assertion fundamentally REQUIRES it — the identity check compares against
|
|
163
|
+
// workerEnv, and the bash write-probe runs via `workerEnv.exec()`. We cannot honor the requested guarantee,
|
|
164
|
+
// so fail CLOSED (oracle.unprotected) rather than silently skipping the assertion the caller asked for.
|
|
165
|
+
return unprotectedResult("immutableOraclePaths requested the structural isolation assertion but workerEnv is undefined — cannot run it (fail-closed)");
|
|
166
|
+
}
|
|
167
|
+
if (config.immutableOraclePaths !== undefined && config.workerEnv !== undefined) {
|
|
168
|
+
const grader = {
|
|
169
|
+
env: config.graderEnv,
|
|
170
|
+
immutableOraclePaths: config.immutableOraclePaths,
|
|
171
|
+
// provenance is reattached here (the trusted caller side) — never derived from worker state.
|
|
172
|
+
provenance: "control_plane",
|
|
173
|
+
};
|
|
174
|
+
const verdict = await assertOracleIsolation(config.workerEnv, grader);
|
|
175
|
+
isolationClass = verdict.isolationClass;
|
|
176
|
+
if (!verdict.protected) {
|
|
177
|
+
return unprotectedResult(verdict.reason ?? "grader env failed the structural isolation assertion", isolationClass);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else if (config.workerEnv !== undefined && config.workerEnv === config.graderEnv) {
|
|
181
|
+
// Bare reference-identity check (the merged Slice-1 posture) when the full assertion isn't requested.
|
|
182
|
+
return unprotectedResult("graderEnv must not be the worker env");
|
|
183
|
+
}
|
|
184
|
+
const maxAttempts = Math.max(1, Math.floor(config.maxAttempts));
|
|
185
|
+
// ── attemptCount is an IN-LOOP counter, DISTINCT from suspendCount(maxSuspends)/sliceCount(maxSlices). On a
|
|
186
|
+
// resume it is re-seeded from the restored bundle MONOTONICALLY — never reset/max/downscaled (§4 / §5 #b).
|
|
187
|
+
const bundle = config.resumeBundle
|
|
188
|
+
? { ...config.resumeBundle, diagnostics: [...config.resumeBundle.diagnostics], rejectedHypotheses: [...config.resumeBundle.rejectedHypotheses] }
|
|
189
|
+
: freshBundle();
|
|
190
|
+
const startedAt = Date.now();
|
|
191
|
+
let spend = 0;
|
|
192
|
+
let lastResult;
|
|
193
|
+
let lastOracle;
|
|
194
|
+
let restartedOnce = false; // a pending one-shot clean-restart (consumed by the next loop iteration)
|
|
195
|
+
let restartUsed = false; // the clean restart is allowed AT MOST once per loop call
|
|
196
|
+
// The spec for a clean restart: a FRESH `runTask({...implSpec})` with a NEW session (no sessionId), in-memory
|
|
197
|
+
// bundle, no checkpoint hop — the failed transcript is discarded so the restart carries no Contextual Drag
|
|
198
|
+
// (§5 #d / §3). The objective is the ORIGINAL task PLUS the accumulated diagnoses (Reflexion carry) so a
|
|
199
|
+
// fresh implementer still knows what to build, just not the stuck transcript.
|
|
200
|
+
const cleanRestartSpec = () => {
|
|
201
|
+
const { sessionId: _drop, ...rest } = implSpec;
|
|
202
|
+
return { ...rest, objective: `${implSpec.objective}\n\n${repairObjective(bundle)}` };
|
|
203
|
+
};
|
|
204
|
+
while (true) {
|
|
205
|
+
// ── GENERATE / REPAIR: `runner.runTask` reuses the whole engine (budget gate / turn loop / assembleResult).
|
|
206
|
+
// First attempt runs implSpec verbatim; a repair attempt continues the SAME session with the fix objective
|
|
207
|
+
// (prefix-cache preserved, verify.ts:280-285), so diagnostics feed the running implementer; a clean restart
|
|
208
|
+
// is a FRESH session (failed transcript discarded).
|
|
209
|
+
const isRepair = bundle.attemptCount > 0 && lastResult !== undefined && !restartedOnce;
|
|
210
|
+
const spec = restartedOnce
|
|
211
|
+
? cleanRestartSpec()
|
|
212
|
+
: isRepair
|
|
213
|
+
? { ...implSpec, sessionId: lastResult.sessionId, objective: repairObjective(bundle) }
|
|
214
|
+
: implSpec;
|
|
215
|
+
restartedOnce = false; // consume the one-shot restart flag
|
|
216
|
+
// design/78 Slice-1 (MAJOR-3 wiring): thread the CURRENT live bundle through the Runner's TRUSTED
|
|
217
|
+
// internal channel (NOT a TaskSpec field). If this attempt hits an ORTHOGONAL durable suspend
|
|
218
|
+
// (resource/HITL) mid-run, the checkpoint the Runner mints serializes THIS live bundle — the accumulated
|
|
219
|
+
// failureTrace/diagnostics/rejectedHypotheses + the in-loop attemptCount — instead of `undefined`. A
|
|
220
|
+
// resume then re-seeds `RepairLoopConfig.resumeBundle` from it so `attemptCount` advances MONOTONICALLY
|
|
221
|
+
// (§4). The bundle is only meaningful once a repair attempt is in flight (attemptCount>0 = a prior oracle
|
|
222
|
+
// failure recorded diagnostics); on the very first GENERATE it is the fresh/empty bundle (a suspend there
|
|
223
|
+
// legitimately carries attemptCount 0 — no verdict yet — which the re-seed treats as a clean start).
|
|
224
|
+
const result = await runner.runTask(spec, { repairBundle: bundle });
|
|
225
|
+
spend += (result.stats.costMicroUsd ?? 0) + (result.stats.nested?.costMicroUsd ?? 0);
|
|
226
|
+
lastResult = result;
|
|
227
|
+
bundle.attemptCount += 1;
|
|
228
|
+
// An orthogonal durable suspend (resource/HITL) inside the worker run — surface it via the EXISTING
|
|
229
|
+
// suspend mechanism (verify.ts:288 / §4): `status: "suspended"` + `checkpointToken` carries the resume
|
|
230
|
+
// capability and `verification.unverifiedReason: "suspended"` disambiguates it. A consumer MUST branch on
|
|
231
|
+
// `status === "suspended"` FIRST (the verify-stack contract), exactly like {@link runWithVerification}.
|
|
232
|
+
// `terminal` is NOT a verdict here (the loop reached no oracle verdict — the worker paused mid-attempt);
|
|
233
|
+
// it is set to `gave_up` only as the typed placeholder (RepairTerminal has no "suspended" member by spec).
|
|
234
|
+
// The repairBundle is carried on that checkpoint by the suspend path (§4) so a resume re-seeds attemptCount
|
|
235
|
+
// monotonically; we do NOT re-grade a half-done result here (no false candidate on an unfinished run).
|
|
236
|
+
if (isDurablePause(result.status)) {
|
|
237
|
+
return {
|
|
238
|
+
...result,
|
|
239
|
+
terminal: "gave_up",
|
|
240
|
+
bundle,
|
|
241
|
+
...(isolationClass ? { isolationClass } : {}),
|
|
242
|
+
verification: { verdict: "unverified", unverifiedReason: result.status === "needs_review" ? "needs_review" : "suspended", rounds: bundle.attemptCount, findings: [] },
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
// ── ORACLE: the injected, trusted closure grades the candidate in the ISOLATED grader env. The repair loop
|
|
246
|
+
// never composes its internals; it only reads the OracleResult. Recompute evidence from the worker result
|
|
247
|
+
// (the oracle owns the post-resume freshness — verify.ts:328 BUG5; here `evidence` is the worker report).
|
|
248
|
+
const oracle = await config.oracle(config.graderEnv, result.result);
|
|
249
|
+
lastOracle = oracle;
|
|
250
|
+
bundle.oracleTier = oracle.tier;
|
|
251
|
+
const projected = terminalForTier(oracle);
|
|
252
|
+
config.onAttempt?.({ attempt: bundle.attemptCount, terminal: projected, oracle });
|
|
253
|
+
if (projected !== undefined) {
|
|
254
|
+
// PASS → candidate_only (or needs_human_oracle for tier "none"). SAFE-tier never returns `fixed`.
|
|
255
|
+
// design/77 §1 Gate-1: the projection caps at `candidate_only`, so even an `out_of_process` grader can't
|
|
256
|
+
// make this loop auto-accept — `isolationClass` is surfaced for the (OFF) auto-accept path to consult,
|
|
257
|
+
// but `terminal` is NEVER `fixed` here (terminalForTier provably can't return it). Auto-accept stays OFF.
|
|
258
|
+
return {
|
|
259
|
+
...result,
|
|
260
|
+
terminal: projected,
|
|
261
|
+
bundle,
|
|
262
|
+
...(isolationClass ? { isolationClass } : {}),
|
|
263
|
+
verification: outcomeFor(projected, oracle, bundle.attemptCount),
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
// ── Failed verdict on a usable-oracle tier. Record the trace/diagnosis (monotonic scheduling only — a
|
|
267
|
+
// failing trace NEVER becomes an accept gate, §5 #3). The raw trace is fed back verbatim (no inner rewrite).
|
|
268
|
+
if (oracle.trace && oracle.trace.trim() !== "") {
|
|
269
|
+
bundle.failureTrace = oracle.trace;
|
|
270
|
+
if (bundle.diagnostics.length < 3)
|
|
271
|
+
bundle.diagnostics.push(oracle.trace); // Reflexion cap ≤3 (§1)
|
|
272
|
+
}
|
|
273
|
+
// Budget backstops (verify.ts:277-278): stop before issuing another attempt; gave_up with the findings.
|
|
274
|
+
const overTime = config.totalTimeoutMs != null && Date.now() - startedAt >= config.totalTimeoutMs;
|
|
275
|
+
const overCost = config.costCeilingMicroUsd != null && spend >= config.costCeilingMicroUsd;
|
|
276
|
+
// Attempts exhausted (or budget hit): try ONE clean restart (fresh session, discard the failed transcript),
|
|
277
|
+
// else give up. give_up/conflict are first-class abstains — NEVER "satisfy the test" (§5 #2).
|
|
278
|
+
if (bundle.attemptCount >= maxAttempts || overTime || overCost) {
|
|
279
|
+
if (bundle.attemptCount >= maxAttempts && !overTime && !overCost && lastResult !== undefined && !restartUsed) {
|
|
280
|
+
// CLEAN_RESTART one-shot: a fresh runTask with a NEW session, in-memory bundle, no checkpoint hop.
|
|
281
|
+
// Flag it; the next loop iteration consumes the flag and runs cleanRestartSpec(). Allow exactly one.
|
|
282
|
+
restartUsed = true;
|
|
283
|
+
restartedOnce = true;
|
|
284
|
+
continue;
|
|
285
|
+
}
|
|
286
|
+
// give_up: attempts exhausted (and the clean restart, if any, also failed). A first-class abstain.
|
|
287
|
+
const terminal = "gave_up";
|
|
288
|
+
return { ...lastResult, terminal, bundle, ...(isolationClass ? { isolationClass } : {}), verification: outcomeFor(terminal, lastOracle, bundle.attemptCount) };
|
|
289
|
+
}
|
|
290
|
+
// else: REPAIR — loop again with the fix objective on the same session.
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=repair-loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repair-loop.js","sourceRoot":"","sources":["../../src/agents/repair-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Runner } from "../core/runner/runtask.js";
|
|
2
|
+
/**
|
|
3
|
+
* Release a throwaway session, swallowing errors — best-effort cleanup for the verifier/cascade-rung
|
|
4
|
+
* sessions that agents spin up and discard. Always call this in a `finally` so a throwing `runTask`
|
|
5
|
+
* result handler or caller hook (`onRung`/`onRound`) can't leak the session.
|
|
6
|
+
*/
|
|
7
|
+
export declare function releaseSession(runner: Runner, sessionId: string): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=session-util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-util.d.ts","sourceRoot":"","sources":["../../src/agents/session-util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Release a throwaway session, swallowing errors — best-effort cleanup for the verifier/cascade-rung
|
|
3
|
+
* sessions that agents spin up and discard. Always call this in a `finally` so a throwing `runTask`
|
|
4
|
+
* result handler or caller hook (`onRung`/`onRound`) can't leak the session.
|
|
5
|
+
*/
|
|
6
|
+
export async function releaseSession(runner, sessionId) {
|
|
7
|
+
await runner.sessions.release(sessionId).catch(() => undefined);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=session-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-util.js","sourceRoot":"","sources":["../../src/agents/session-util.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,SAAiB;IACpE,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAClE,CAAC"}
|