pulseed 0.6.3 → 0.6.4
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/dist/adapters/datasources/artifact-metric-datasource.d.ts +11 -1
- package/dist/adapters/datasources/artifact-metric-datasource.d.ts.map +1 -1
- package/dist/adapters/datasources/artifact-metric-datasource.js +238 -8
- package/dist/adapters/datasources/artifact-metric-datasource.js.map +1 -1
- package/dist/base/config/global-config.d.ts +4 -4
- package/dist/base/protocol/exact-protocol.d.ts +47 -0
- package/dist/base/protocol/exact-protocol.d.ts.map +1 -0
- package/dist/base/protocol/exact-protocol.js +175 -0
- package/dist/base/protocol/exact-protocol.js.map +1 -0
- package/dist/base/types/core.d.ts +1 -1
- package/dist/base/types/core.d.ts.map +1 -1
- package/dist/base/types/core.js +1 -0
- package/dist/base/types/core.js.map +1 -1
- package/dist/base/utils/workspace-path.d.ts +6 -0
- package/dist/base/utils/workspace-path.d.ts.map +1 -0
- package/dist/base/utils/workspace-path.js +24 -0
- package/dist/base/utils/workspace-path.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/interface/chat/chat-event-state.d.ts +2 -0
- package/dist/interface/chat/chat-event-state.d.ts.map +1 -1
- package/dist/interface/chat/chat-event-state.js +22 -41
- package/dist/interface/chat/chat-event-state.js.map +1 -1
- package/dist/interface/chat/chat-events.d.ts +15 -1
- package/dist/interface/chat/chat-events.d.ts.map +1 -1
- package/dist/interface/chat/chat-history.d.ts +3816 -192
- package/dist/interface/chat/chat-history.d.ts.map +1 -1
- package/dist/interface/chat/chat-history.js +529 -5
- package/dist/interface/chat/chat-history.js.map +1 -1
- package/dist/interface/chat/chat-runner-commands.d.ts.map +1 -1
- package/dist/interface/chat/chat-runner-commands.js +22 -18
- package/dist/interface/chat/chat-runner-commands.js.map +1 -1
- package/dist/interface/chat/chat-runner-contracts.d.ts +5 -1
- package/dist/interface/chat/chat-runner-contracts.d.ts.map +1 -1
- package/dist/interface/chat/chat-runner-event-bridge.d.ts +13 -1
- package/dist/interface/chat/chat-runner-event-bridge.d.ts.map +1 -1
- package/dist/interface/chat/chat-runner-event-bridge.js +51 -3
- package/dist/interface/chat/chat-runner-event-bridge.js.map +1 -1
- package/dist/interface/chat/chat-runner-routes.d.ts +5 -17
- package/dist/interface/chat/chat-runner-routes.d.ts.map +1 -1
- package/dist/interface/chat/chat-runner-routes.js +80 -51
- package/dist/interface/chat/chat-runner-routes.js.map +1 -1
- package/dist/interface/chat/chat-runner-runtime.d.ts.map +1 -1
- package/dist/interface/chat/chat-runner-runtime.js +4 -0
- package/dist/interface/chat/chat-runner-runtime.js.map +1 -1
- package/dist/interface/chat/chat-runner.d.ts +7 -1
- package/dist/interface/chat/chat-runner.d.ts.map +1 -1
- package/dist/interface/chat/chat-runner.js +135 -49
- package/dist/interface/chat/chat-runner.js.map +1 -1
- package/dist/interface/chat/chat-session-store.d.ts +3 -0
- package/dist/interface/chat/chat-session-store.d.ts.map +1 -1
- package/dist/interface/chat/chat-session-store.js +12 -0
- package/dist/interface/chat/chat-session-store.js.map +1 -1
- package/dist/interface/chat/cross-platform-session.d.ts +15 -0
- package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
- package/dist/interface/chat/cross-platform-session.js +260 -42
- package/dist/interface/chat/cross-platform-session.js.map +1 -1
- package/dist/interface/chat/failure-recovery.d.ts.map +1 -1
- package/dist/interface/chat/failure-recovery.js +15 -1
- package/dist/interface/chat/failure-recovery.js.map +1 -1
- package/dist/interface/chat/freeform-route-classifier.d.ts +2 -2
- package/dist/interface/chat/ingress-router.d.ts +3 -0
- package/dist/interface/chat/ingress-router.d.ts.map +1 -1
- package/dist/interface/chat/ingress-router.js +3 -0
- package/dist/interface/chat/ingress-router.js.map +1 -1
- package/dist/interface/chat/model-request-builder.d.ts +37 -0
- package/dist/interface/chat/model-request-builder.d.ts.map +1 -0
- package/dist/interface/chat/model-request-builder.js +76 -0
- package/dist/interface/chat/model-request-builder.js.map +1 -0
- package/dist/interface/chat/turn-context.d.ts +200 -0
- package/dist/interface/chat/turn-context.d.ts.map +1 -0
- package/dist/interface/chat/turn-context.js +249 -0
- package/dist/interface/chat/turn-context.js.map +1 -0
- package/dist/interface/chat/turn-protocol.d.ts +35 -0
- package/dist/interface/chat/turn-protocol.d.ts.map +1 -0
- package/dist/interface/chat/turn-protocol.js +27 -0
- package/dist/interface/chat/turn-protocol.js.map +1 -0
- package/dist/interface/chat/user-input.d.ts +55 -0
- package/dist/interface/chat/user-input.d.ts.map +1 -0
- package/dist/interface/chat/user-input.js +52 -0
- package/dist/interface/chat/user-input.js.map +1 -0
- package/dist/interface/cli/cli-command-registry.d.ts +1 -1
- package/dist/interface/cli/cli-command-registry.d.ts.map +1 -1
- package/dist/interface/cli/cli-command-registry.js +12 -16
- package/dist/interface/cli/cli-command-registry.js.map +1 -1
- package/dist/interface/cli/commands/daemon-shared.d.ts +8 -0
- package/dist/interface/cli/commands/daemon-shared.d.ts.map +1 -1
- package/dist/interface/cli/commands/daemon-shared.js +18 -2
- package/dist/interface/cli/commands/daemon-shared.js.map +1 -1
- package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
- package/dist/interface/cli/commands/daemon.js +5 -1
- package/dist/interface/cli/commands/daemon.js.map +1 -1
- package/dist/interface/cli/commands/doctor.d.ts.map +1 -1
- package/dist/interface/cli/commands/doctor.js +14 -1
- package/dist/interface/cli/commands/doctor.js.map +1 -1
- package/dist/interface/cli/commands/goal-dispatch.d.ts.map +1 -1
- package/dist/interface/cli/commands/goal-dispatch.js +10 -6
- package/dist/interface/cli/commands/goal-dispatch.js.map +1 -1
- package/dist/interface/cli/commands/goal-utils.d.ts.map +1 -1
- package/dist/interface/cli/commands/goal-utils.js +3 -5
- package/dist/interface/cli/commands/goal-utils.js.map +1 -1
- package/dist/interface/cli/commands/run.d.ts.map +1 -1
- package/dist/interface/cli/commands/run.js +50 -0
- package/dist/interface/cli/commands/run.js.map +1 -1
- package/dist/interface/cli/setup.d.ts +1 -1
- package/dist/interface/cli/setup.d.ts.map +1 -1
- package/dist/interface/cli/setup.js +4 -3
- package/dist/interface/cli/setup.js.map +1 -1
- package/dist/interface/cli/utils/loop-runner.d.ts +1 -0
- package/dist/interface/cli/utils/loop-runner.d.ts.map +1 -1
- package/dist/interface/cli/utils/loop-runner.js +12 -3
- package/dist/interface/cli/utils/loop-runner.js.map +1 -1
- package/dist/interface/tui/app.d.ts +6 -1
- package/dist/interface/tui/app.d.ts.map +1 -1
- package/dist/interface/tui/app.js +29 -12
- package/dist/interface/tui/app.js.map +1 -1
- package/dist/interface/tui/bash-mode.d.ts.map +1 -1
- package/dist/interface/tui/bash-mode.js +2 -9
- package/dist/interface/tui/bash-mode.js.map +1 -1
- package/dist/interface/tui/chat/viewport.d.ts.map +1 -1
- package/dist/interface/tui/chat/viewport.js +57 -11
- package/dist/interface/tui/chat/viewport.js.map +1 -1
- package/dist/interface/tui/entry-deps.d.ts +6 -1
- package/dist/interface/tui/entry-deps.d.ts.map +1 -1
- package/dist/interface/tui/entry-deps.js +3 -0
- package/dist/interface/tui/entry-deps.js.map +1 -1
- package/dist/interface/tui/entry.d.ts.map +1 -1
- package/dist/interface/tui/entry.js +6 -2
- package/dist/interface/tui/entry.js.map +1 -1
- package/dist/interface/tui/input-action.d.ts.map +1 -1
- package/dist/interface/tui/input-action.js +3 -2
- package/dist/interface/tui/input-action.js.map +1 -1
- package/dist/interface/tui/intent-recognizer.d.ts.map +1 -1
- package/dist/interface/tui/intent-recognizer.js +21 -33
- package/dist/interface/tui/intent-recognizer.js.map +1 -1
- package/dist/orchestrator/execution/adapter-layer.d.ts +6 -1
- package/dist/orchestrator/execution/adapter-layer.d.ts.map +1 -1
- package/dist/orchestrator/execution/adapter-layer.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.d.ts +12 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.js +16 -31
- package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-compaction-record.d.ts +75 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-compaction-record.d.ts.map +1 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-compaction-record.js +10 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-compaction-record.js.map +1 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.d.ts +3 -2
- package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.js +185 -22
- package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js +7 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts +8 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-events.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-history.d.ts +3 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-history.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-history.js +12 -3
- package/dist/orchestrator/execution/agent-loop/agent-loop-history.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-model-client.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-model-client.js +7 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-model-client.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-model.d.ts +37 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-model.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-model.js +21 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-model.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-result.d.ts +17 -11
- package/dist/orchestrator/execution/agent-loop/agent-loop-result.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts +4 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js +135 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts +3 -2
- package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js +68 -61
- package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts +3 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-timeline.d.ts +12 -1
- package/dist/orchestrator/execution/agent-loop/agent-timeline.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-timeline.js +19 -56
- package/dist/orchestrator/execution/agent-loop/agent-timeline.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/anthropic-messages-agent-loop-model-client.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/anthropic-messages-agent-loop-model-client.js +8 -2
- package/dist/orchestrator/execution/agent-loop/anthropic-messages-agent-loop-model-client.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts +12 -0
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js +400 -80
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts +1 -1
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +80 -12
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/chat-display-output.d.ts +1 -0
- package/dist/orchestrator/execution/agent-loop/chat-display-output.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/chat-display-output.js +3 -1
- package/dist/orchestrator/execution/agent-loop/chat-display-output.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/index.d.ts +3 -0
- package/dist/orchestrator/execution/agent-loop/index.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/index.js +3 -0
- package/dist/orchestrator/execution/agent-loop/index.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.d.ts +1 -0
- package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.js +51 -9
- package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/response-item-tool-router.d.ts +20 -0
- package/dist/orchestrator/execution/agent-loop/response-item-tool-router.d.ts.map +1 -0
- package/dist/orchestrator/execution/agent-loop/response-item-tool-router.js +180 -0
- package/dist/orchestrator/execution/agent-loop/response-item-tool-router.js.map +1 -0
- package/dist/orchestrator/execution/agent-loop/response-item.d.ts +805 -0
- package/dist/orchestrator/execution/agent-loop/response-item.d.ts.map +1 -0
- package/dist/orchestrator/execution/agent-loop/response-item.js +104 -0
- package/dist/orchestrator/execution/agent-loop/response-item.js.map +1 -0
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts +7 -2
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js +20 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.d.ts +5 -3
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.js +109 -10
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts +2 -0
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js +9 -4
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.d.ts +0 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.js +7 -87
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-worktree.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-worktree.js +25 -0
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-worktree.js.map +1 -1
- package/dist/orchestrator/execution/context/issue-context-fetcher.d.ts +5 -1
- package/dist/orchestrator/execution/context/issue-context-fetcher.d.ts.map +1 -1
- package/dist/orchestrator/execution/context/issue-context-fetcher.js +7 -4
- package/dist/orchestrator/execution/context/issue-context-fetcher.js.map +1 -1
- package/dist/orchestrator/execution/task/task-artifact-contract.d.ts +18 -0
- package/dist/orchestrator/execution/task/task-artifact-contract.d.ts.map +1 -0
- package/dist/orchestrator/execution/task/task-artifact-contract.js +176 -0
- package/dist/orchestrator/execution/task/task-artifact-contract.js.map +1 -0
- package/dist/orchestrator/execution/task/task-diff-capture.d.ts +14 -1
- package/dist/orchestrator/execution/task/task-diff-capture.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-diff-capture.js +269 -17
- package/dist/orchestrator/execution/task/task-diff-capture.js.map +1 -1
- package/dist/orchestrator/execution/task/task-execution-helpers.d.ts +1 -0
- package/dist/orchestrator/execution/task/task-execution-helpers.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-execution-helpers.js +76 -17
- package/dist/orchestrator/execution/task/task-execution-helpers.js.map +1 -1
- package/dist/orchestrator/execution/task/task-executor.d.ts +16 -1
- package/dist/orchestrator/execution/task/task-executor.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-executor.js +55 -50
- package/dist/orchestrator/execution/task/task-executor.js.map +1 -1
- package/dist/orchestrator/execution/task/task-generation.d.ts +54 -1
- package/dist/orchestrator/execution/task/task-generation.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-generation.js +19 -3
- package/dist/orchestrator/execution/task/task-generation.js.map +1 -1
- package/dist/orchestrator/execution/task/task-lifecycle-runner.d.ts +2 -2
- package/dist/orchestrator/execution/task/task-lifecycle-runner.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-lifecycle-runner.js +31 -4
- package/dist/orchestrator/execution/task/task-lifecycle-runner.js.map +1 -1
- package/dist/orchestrator/execution/task/task-lifecycle.d.ts +3 -3
- package/dist/orchestrator/execution/task/task-lifecycle.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-lifecycle.js +51 -10
- package/dist/orchestrator/execution/task/task-lifecycle.js.map +1 -1
- package/dist/orchestrator/execution/task/task-outcome-ledger.d.ts +8 -0
- package/dist/orchestrator/execution/task/task-outcome-ledger.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-outcome-ledger.js +59 -3
- package/dist/orchestrator/execution/task/task-outcome-ledger.js.map +1 -1
- package/dist/orchestrator/execution/task/task-prompt-builder.d.ts +3 -1
- package/dist/orchestrator/execution/task/task-prompt-builder.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-prompt-builder.js +23 -12
- package/dist/orchestrator/execution/task/task-prompt-builder.js.map +1 -1
- package/dist/orchestrator/execution/task/task-verifier-rules.d.ts +3 -2
- package/dist/orchestrator/execution/task/task-verifier-rules.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-verifier-rules.js +328 -90
- package/dist/orchestrator/execution/task/task-verifier-rules.js.map +1 -1
- package/dist/orchestrator/execution/task/task-verifier-types.d.ts +13 -0
- package/dist/orchestrator/execution/task/task-verifier-types.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-verifier-types.js.map +1 -1
- package/dist/orchestrator/execution/task/task-verifier.d.ts +5 -4
- package/dist/orchestrator/execution/task/task-verifier.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-verifier.js +229 -22
- package/dist/orchestrator/execution/task/task-verifier.js.map +1 -1
- package/dist/orchestrator/execution/task/task-workspace.d.ts +5 -0
- package/dist/orchestrator/execution/task/task-workspace.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-workspace.js +20 -10
- package/dist/orchestrator/execution/task/task-workspace.js.map +1 -1
- package/dist/orchestrator/execution/types/task-group.d.ts +76 -5
- package/dist/orchestrator/execution/types/task-group.d.ts.map +1 -1
- package/dist/orchestrator/execution/types/task.d.ts +117 -3
- package/dist/orchestrator/execution/types/task.d.ts.map +1 -1
- package/dist/orchestrator/execution/types/task.js +12 -0
- package/dist/orchestrator/execution/types/task.js.map +1 -1
- package/dist/orchestrator/loop/durable-loop/preparation.d.ts.map +1 -1
- package/dist/orchestrator/loop/durable-loop/preparation.js +7 -1
- package/dist/orchestrator/loop/durable-loop/preparation.js.map +1 -1
- package/dist/platform/corrections/memory-correction-ledger.d.ts +30 -30
- package/dist/platform/corrections/memory-governance.d.ts +2 -2
- package/dist/platform/knowledge/types/agent-memory.d.ts +30 -30
- package/dist/platform/observation/context-provider/collector.d.ts.map +1 -1
- package/dist/platform/observation/context-provider/collector.js +89 -24
- package/dist/platform/observation/context-provider/collector.js.map +1 -1
- package/dist/platform/observation/data-source-adapter.d.ts +2 -0
- package/dist/platform/observation/data-source-adapter.d.ts.map +1 -1
- package/dist/platform/observation/data-source-adapter.js.map +1 -1
- package/dist/platform/observation/observation-apply.d.ts.map +1 -1
- package/dist/platform/observation/observation-apply.js +8 -2
- package/dist/platform/observation/observation-apply.js.map +1 -1
- package/dist/platform/observation/observation-engine.d.ts.map +1 -1
- package/dist/platform/observation/observation-engine.js +118 -70
- package/dist/platform/observation/observation-engine.js.map +1 -1
- package/dist/platform/observation/observation-helpers.d.ts +2 -0
- package/dist/platform/observation/observation-helpers.d.ts.map +1 -1
- package/dist/platform/observation/observation-helpers.js.map +1 -1
- package/dist/platform/observation/types/data-source.d.ts +48 -0
- package/dist/platform/observation/types/data-source.d.ts.map +1 -1
- package/dist/platform/observation/types/data-source.js +4 -0
- package/dist/platform/observation/types/data-source.js.map +1 -1
- package/dist/platform/observation/workspace-context.d.ts.map +1 -1
- package/dist/platform/observation/workspace-context.js +13 -18
- package/dist/platform/observation/workspace-context.js.map +1 -1
- package/dist/platform/soil/contracts.d.ts +56 -56
- package/dist/reporting/types/report.d.ts +7 -0
- package/dist/reporting/types/report.d.ts.map +1 -1
- package/dist/runtime/approval-broker.d.ts +12 -0
- package/dist/runtime/approval-broker.d.ts.map +1 -1
- package/dist/runtime/approval-broker.js +27 -7
- package/dist/runtime/approval-broker.js.map +1 -1
- package/dist/runtime/control/daemon-runtime-control-executor.d.ts.map +1 -1
- package/dist/runtime/control/daemon-runtime-control-executor.js +9 -4
- package/dist/runtime/control/daemon-runtime-control-executor.js.map +1 -1
- package/dist/runtime/control/runtime-control-intent.d.ts.map +1 -1
- package/dist/runtime/control/runtime-control-intent.js +3 -2
- package/dist/runtime/control/runtime-control-intent.js.map +1 -1
- package/dist/runtime/control/runtime-control-service.d.ts +2 -1
- package/dist/runtime/control/runtime-control-service.d.ts.map +1 -1
- package/dist/runtime/control/runtime-control-service.js +9 -2
- package/dist/runtime/control/runtime-control-service.js.map +1 -1
- package/dist/runtime/control/runtime-target-resolver.js +2 -0
- package/dist/runtime/control/runtime-target-resolver.js.map +1 -1
- package/dist/runtime/daemon/runner-goal-cycle.d.ts.map +1 -1
- package/dist/runtime/daemon/runner-goal-cycle.js +1 -2
- package/dist/runtime/daemon/runner-goal-cycle.js.map +1 -1
- package/dist/runtime/daemon/runner-recovery.d.ts +17 -3
- package/dist/runtime/daemon/runner-recovery.d.ts.map +1 -1
- package/dist/runtime/daemon/runner-recovery.js +50 -12
- package/dist/runtime/daemon/runner-recovery.js.map +1 -1
- package/dist/runtime/daemon/runner-startup.d.ts.map +1 -1
- package/dist/runtime/daemon/runner-startup.js +18 -1
- package/dist/runtime/daemon/runner-startup.js.map +1 -1
- package/dist/runtime/daemon/runner.d.ts.map +1 -1
- package/dist/runtime/daemon/runner.js +3 -2
- package/dist/runtime/daemon/runner.js.map +1 -1
- package/dist/runtime/daemon/runtime-ownership.d.ts +0 -1
- package/dist/runtime/daemon/runtime-ownership.d.ts.map +1 -1
- package/dist/runtime/daemon/runtime-ownership.js +18 -18
- package/dist/runtime/daemon/runtime-ownership.js.map +1 -1
- package/dist/runtime/daemon/wait-deadline-resolver.d.ts.map +1 -1
- package/dist/runtime/daemon/wait-deadline-resolver.js +2 -0
- package/dist/runtime/daemon/wait-deadline-resolver.js.map +1 -1
- package/dist/runtime/evidence-answer.d.ts.map +1 -1
- package/dist/runtime/evidence-answer.js +34 -7
- package/dist/runtime/evidence-answer.js.map +1 -1
- package/dist/runtime/gateway/channel-adapter.d.ts +3 -0
- package/dist/runtime/gateway/channel-adapter.d.ts.map +1 -1
- package/dist/runtime/gateway/channel-display-policy.d.ts +42 -0
- package/dist/runtime/gateway/channel-display-policy.d.ts.map +1 -0
- package/dist/runtime/gateway/channel-display-policy.js +85 -0
- package/dist/runtime/gateway/channel-display-policy.js.map +1 -0
- package/dist/runtime/gateway/chat-event-rendering.d.ts +2 -1
- package/dist/runtime/gateway/chat-event-rendering.d.ts.map +1 -1
- package/dist/runtime/gateway/chat-event-rendering.js +2 -0
- package/dist/runtime/gateway/chat-event-rendering.js.map +1 -1
- package/dist/runtime/gateway/chat-session-dispatch.d.ts.map +1 -1
- package/dist/runtime/gateway/chat-session-dispatch.js +4 -9
- package/dist/runtime/gateway/chat-session-dispatch.js.map +1 -1
- package/dist/runtime/gateway/chat-session-port.d.ts +2 -0
- package/dist/runtime/gateway/chat-session-port.d.ts.map +1 -1
- package/dist/runtime/gateway/chat-session-port.js.map +1 -1
- package/dist/runtime/gateway/discord-gateway-adapter.d.ts +4 -0
- package/dist/runtime/gateway/discord-gateway-adapter.d.ts.map +1 -1
- package/dist/runtime/gateway/discord-gateway-adapter.js +100 -31
- package/dist/runtime/gateway/discord-gateway-adapter.js.map +1 -1
- package/dist/runtime/gateway/index.d.ts +4 -0
- package/dist/runtime/gateway/index.d.ts.map +1 -1
- package/dist/runtime/gateway/index.js +2 -0
- package/dist/runtime/gateway/index.js.map +1 -1
- package/dist/runtime/gateway/non-tui-display-projector.d.ts +40 -0
- package/dist/runtime/gateway/non-tui-display-projector.d.ts.map +1 -0
- package/dist/runtime/gateway/non-tui-display-projector.js +166 -0
- package/dist/runtime/gateway/non-tui-display-projector.js.map +1 -0
- package/dist/runtime/gateway/signal-gateway-adapter.d.ts +1 -0
- package/dist/runtime/gateway/signal-gateway-adapter.d.ts.map +1 -1
- package/dist/runtime/gateway/signal-gateway-adapter.js +47 -4
- package/dist/runtime/gateway/signal-gateway-adapter.js.map +1 -1
- package/dist/runtime/gateway/slack-channel-adapter.d.ts +1 -0
- package/dist/runtime/gateway/slack-channel-adapter.d.ts.map +1 -1
- package/dist/runtime/gateway/slack-channel-adapter.js +93 -18
- package/dist/runtime/gateway/slack-channel-adapter.js.map +1 -1
- package/dist/runtime/gateway/telegram-gateway-adapter.d.ts +2 -0
- package/dist/runtime/gateway/telegram-gateway-adapter.d.ts.map +1 -1
- package/dist/runtime/gateway/telegram-gateway-adapter.js +61 -113
- package/dist/runtime/gateway/telegram-gateway-adapter.js.map +1 -1
- package/dist/runtime/gateway/whatsapp-gateway-adapter.d.ts +1 -0
- package/dist/runtime/gateway/whatsapp-gateway-adapter.d.ts.map +1 -1
- package/dist/runtime/gateway/whatsapp-gateway-adapter.js +49 -4
- package/dist/runtime/gateway/whatsapp-gateway-adapter.js.map +1 -1
- package/dist/runtime/permission-dialogue.d.ts +113 -0
- package/dist/runtime/permission-dialogue.d.ts.map +1 -0
- package/dist/runtime/permission-dialogue.js +82 -0
- package/dist/runtime/permission-dialogue.js.map +1 -0
- package/dist/runtime/run-spec/derive.d.ts +14 -14
- package/dist/runtime/run-spec/handoff.js +2 -0
- package/dist/runtime/run-spec/handoff.js.map +1 -1
- package/dist/runtime/run-spec/types.d.ts +16 -16
- package/dist/runtime/session-registry/types.d.ts +12 -12
- package/dist/runtime/store/artifact-retention.d.ts +2 -0
- package/dist/runtime/store/artifact-retention.d.ts.map +1 -1
- package/dist/runtime/store/artifact-retention.js +24 -21
- package/dist/runtime/store/artifact-retention.js.map +1 -1
- package/dist/runtime/store/budget-store.d.ts +8 -8
- package/dist/runtime/store/evidence-ledger.d.ts.map +1 -1
- package/dist/runtime/store/evidence-ledger.js +39 -1
- package/dist/runtime/store/evidence-ledger.js.map +1 -1
- package/dist/runtime/store/evidence-types.d.ts +118 -118
- package/dist/runtime/store/experiment-queue-store.d.ts +20 -20
- package/dist/runtime/store/reproducibility-manifest.d.ts +20 -20
- package/dist/runtime/store/runtime-operation-schemas.d.ts +18 -18
- package/dist/runtime/store/runtime-operation-schemas.d.ts.map +1 -1
- package/dist/runtime/store/runtime-operation-schemas.js +1 -0
- package/dist/runtime/store/runtime-operation-schemas.js.map +1 -1
- package/dist/runtime/store/runtime-schemas.d.ts +58 -28
- package/dist/runtime/store/runtime-schemas.d.ts.map +1 -1
- package/dist/runtime/store/runtime-schemas.js +1 -0
- package/dist/runtime/store/runtime-schemas.js.map +1 -1
- package/dist/tools/execution/MemorySaveTool/MemorySaveTool.d.ts +8 -8
- package/dist/tools/execution/RunAdapterTool/RunAdapterTool.d.ts +6 -0
- package/dist/tools/execution/RunAdapterTool/RunAdapterTool.d.ts.map +1 -1
- package/dist/tools/execution/RunAdapterTool/RunAdapterTool.js +2 -0
- package/dist/tools/execution/RunAdapterTool/RunAdapterTool.js.map +1 -1
- package/dist/tools/execution-orchestrator.d.ts +29 -0
- package/dist/tools/execution-orchestrator.d.ts.map +1 -0
- package/dist/tools/execution-orchestrator.js +153 -0
- package/dist/tools/execution-orchestrator.js.map +1 -0
- package/dist/tools/executor.d.ts +6 -0
- package/dist/tools/executor.d.ts.map +1 -1
- package/dist/tools/executor.js +48 -11
- package/dist/tools/executor.js.map +1 -1
- package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.d.ts.map +1 -1
- package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js +130 -17
- package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js.map +1 -1
- package/dist/tools/mutation/TaskStopTool/TaskStopTool.d.ts.map +1 -1
- package/dist/tools/mutation/TaskStopTool/TaskStopTool.js +8 -0
- package/dist/tools/mutation/TaskStopTool/TaskStopTool.js.map +1 -1
- package/dist/tools/mutation/TaskUpdateTool/TaskUpdateTool.d.ts +6 -6
- package/dist/tools/network/GitHubCliTool/GitHubCliTool.d.ts +4 -4
- package/dist/tools/network/McpStdioTool/McpStdioTool.d.ts +4 -4
- package/dist/tools/permission.d.ts +0 -1
- package/dist/tools/permission.d.ts.map +1 -1
- package/dist/tools/permission.js +9 -33
- package/dist/tools/permission.js.map +1 -1
- package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.d.ts +4 -4
- package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.d.ts +8 -8
- package/dist/tools/query/CodeSearchTool/CodeSearchTool.d.ts +4 -4
- package/dist/tools/query/MemoryRecallTool/MemoryRecallTool.d.ts +4 -4
- package/dist/tools/query/runtime-session-tools.d.ts +73 -5
- package/dist/tools/query/runtime-session-tools.d.ts.map +1 -1
- package/dist/tools/query/runtime-session-tools.js +114 -0
- package/dist/tools/query/runtime-session-tools.js.map +1 -1
- package/dist/tools/runtime/LongRunningRuntimeTools.d.ts +60 -42
- package/dist/tools/runtime/LongRunningRuntimeTools.d.ts.map +1 -1
- package/dist/tools/runtime/LongRunningRuntimeTools.js +4 -1
- package/dist/tools/runtime/LongRunningRuntimeTools.js.map +1 -1
- package/dist/tools/runtime/RunSpecHandoffTools.d.ts.map +1 -1
- package/dist/tools/runtime/RunSpecHandoffTools.js +162 -2
- package/dist/tools/runtime/RunSpecHandoffTools.js.map +1 -1
- package/dist/tools/runtime/SetupRuntimeControlTools.d.ts.map +1 -1
- package/dist/tools/runtime/SetupRuntimeControlTools.js +169 -17
- package/dist/tools/runtime/SetupRuntimeControlTools.js.map +1 -1
- package/dist/tools/system/GitDiffTool/GitDiffTool.d.ts +4 -4
- package/dist/tools/system/ShellCommandTool/ShellCommandTool.d.ts.map +1 -1
- package/dist/tools/system/ShellCommandTool/ShellCommandTool.js +7 -1
- package/dist/tools/system/ShellCommandTool/ShellCommandTool.js.map +1 -1
- package/dist/tools/system/ShellTool/ShellTool.d.ts.map +1 -1
- package/dist/tools/system/ShellTool/ShellTool.js +24 -10
- package/dist/tools/system/ShellTool/ShellTool.js.map +1 -1
- package/dist/tools/system/ShellTool/command-policy.d.ts +11 -8
- package/dist/tools/system/ShellTool/command-policy.d.ts.map +1 -1
- package/dist/tools/system/ShellTool/command-policy.js +402 -98
- package/dist/tools/system/ShellTool/command-policy.js.map +1 -1
- package/dist/tools/system/TestRunnerTool/TestRunnerTool.d.ts +1 -1
- package/dist/tools/system/TestRunnerTool/TestRunnerTool.d.ts.map +1 -1
- package/dist/tools/system/TestRunnerTool/TestRunnerTool.js +152 -8
- package/dist/tools/system/TestRunnerTool/TestRunnerTool.js.map +1 -1
- package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.js +1 -1
- package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.js.map +1 -1
- package/dist/tools/types.d.ts +34 -12
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +26 -3
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/workspace-scope.d.ts +11 -0
- package/dist/tools/workspace-scope.d.ts.map +1 -0
- package/dist/tools/workspace-scope.js +77 -0
- package/dist/tools/workspace-scope.js.map +1 -0
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ import { SessionManager } from "../session-manager.js";
|
|
|
5
5
|
import { TrustManager } from "../../../platform/traits/trust-manager.js";
|
|
6
6
|
import { StallDetector } from "../../../platform/drive/stall-detector.js";
|
|
7
7
|
import { AdapterRegistry } from "../adapter-layer.js";
|
|
8
|
+
import type { AgentResult } from "../adapter-layer.js";
|
|
8
9
|
import type { Logger } from "../../../runtime/logger.js";
|
|
9
10
|
import type { IPromptGateway } from "../../../prompt/gateway.js";
|
|
10
11
|
import type { ToolExecutor } from "../../../tools/executor.js";
|
|
@@ -28,6 +29,18 @@ export interface FailureResult {
|
|
|
28
29
|
action: "keep" | "discard" | "escalate";
|
|
29
30
|
task: import("../../../base/types/task.js").Task;
|
|
30
31
|
}
|
|
32
|
+
export interface RevertAttemptResult {
|
|
33
|
+
success: boolean;
|
|
34
|
+
concretePaths: string[];
|
|
35
|
+
unsafePaths?: string[];
|
|
36
|
+
reason: string;
|
|
37
|
+
method?: "git_restore_tool" | "git_restore_child_process";
|
|
38
|
+
}
|
|
39
|
+
export interface VerdictHandlingContext {
|
|
40
|
+
stoppedReason?: AgentResult["stopped_reason"] | null;
|
|
41
|
+
verificationGuardsApplied?: boolean;
|
|
42
|
+
agentLoopWorkspace?: Pick<NonNullable<AgentResult["agentLoop"]>, "requestedCwd" | "executionCwd" | "isolatedWorkspace" | "workspaceCleanupStatus" | "workspaceCleanupReason" | "workspaceDirty" | "workspaceDisposition">;
|
|
43
|
+
}
|
|
31
44
|
export declare const CompletionJudgerResponseSchema: z.ZodObject<{
|
|
32
45
|
verdict: z.ZodDefault<z.ZodEnum<["pass", "partial", "fail"]>>;
|
|
33
46
|
reasoning: z.ZodDefault<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-verifier-types.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/execution/task/task-verifier-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI/D,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IACtD,IAAI,EAAE,OAAO,6BAA6B,EAAE,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IACxC,IAAI,EAAE,OAAO,6BAA6B,EAAE,IAAI,CAAC;CAClD;AAID,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;EAKzC,CAAC;AAIH,MAAM,WAAW,sBAAsB;IACrC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC;IACtB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,YAAY,EAAE,CAAC,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IACpE,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,kEAAkE;IAClE,gBAAgB,CAAC,EAAE;QACjB,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAC;KACjH,CAAC;IACF,qFAAqF;IACrF,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;mFAC+E;IAC/E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;4DACwD;IACxD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C"}
|
|
1
|
+
{"version":3,"file":"task-verifier-types.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/execution/task/task-verifier-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-verifier-types.js","sourceRoot":"","sources":["../../../../src/orchestrator/execution/task/task-verifier-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"task-verifier-types.js","sourceRoot":"","sources":["../../../../src/orchestrator/execution/task/task-verifier-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4DxB,0FAA0F;AAE1F,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC"}
|
|
@@ -17,10 +17,11 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import type { Task, VerificationResult } from "../../../base/types/task.js";
|
|
19
19
|
import type { AgentResult } from "../adapter-layer.js";
|
|
20
|
-
export type { ExecutorReport, VerdictResult, FailureResult, CompletionJudgerConfig, VerifierDeps, } from "./task-verifier-types.js";
|
|
20
|
+
export type { ExecutorReport, VerdictResult, FailureResult, VerdictHandlingContext, CompletionJudgerConfig, VerifierDeps, } from "./task-verifier-types.js";
|
|
21
21
|
export { CompletionJudgerResponseSchema } from "./task-verifier-types.js";
|
|
22
22
|
export { clampDimensionUpdate, checkDimensionDirection, } from "./task-verifier-rules.js";
|
|
23
|
-
import type { VerifierDeps, VerdictResult, FailureResult } from "./task-verifier-types.js";
|
|
23
|
+
import type { VerifierDeps, VerdictResult, FailureResult, VerdictHandlingContext } from "./task-verifier-types.js";
|
|
24
|
+
export declare function applyVerdictHandlingContextGuards(verificationResult: VerificationResult, context: VerdictHandlingContext): VerificationResult;
|
|
24
25
|
/**
|
|
25
26
|
* Verify task execution results using 3-layer verification.
|
|
26
27
|
*
|
|
@@ -39,10 +40,10 @@ export declare function verifyTask(deps: VerifierDeps, task: Task, executionResu
|
|
|
39
40
|
/**
|
|
40
41
|
* Handle a verification verdict (pass/partial/fail).
|
|
41
42
|
*/
|
|
42
|
-
export declare function handleVerdict(deps: VerifierDeps, task: Task, verificationResult: VerificationResult): Promise<VerdictResult>;
|
|
43
|
+
export declare function handleVerdict(deps: VerifierDeps, task: Task, verificationResult: VerificationResult, context?: VerdictHandlingContext): Promise<VerdictResult>;
|
|
43
44
|
/**
|
|
44
45
|
* Handle a task failure: increment failure count, record failure,
|
|
45
46
|
* decide keep/discard/escalate.
|
|
46
47
|
*/
|
|
47
|
-
export declare function handleFailure(deps: VerifierDeps, task: Task, verificationResult: VerificationResult): Promise<FailureResult>;
|
|
48
|
+
export declare function handleFailure(deps: VerifierDeps, task: Task, verificationResult: VerificationResult, context?: VerdictHandlingContext): Promise<FailureResult>;
|
|
48
49
|
//# sourceMappingURL=task-verifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-verifier.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/execution/task/task-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAwB,MAAM,6BAA6B,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,YAAY,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAG1E,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"task-verifier.d.ts","sourceRoot":"","sources":["../../../../src/orchestrator/execution/task/task-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAwB,MAAM,6BAA6B,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,YAAY,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAG1E,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAyInH,wBAAgB,iCAAiC,CAC/C,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,sBAAsB,GAC9B,kBAAkB,CAmBpB;AA2ID;;;;;;;;;;;;;GAaG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,WAAW,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CA8R7B;AAID;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,aAAa,CAAC,CAiNxB;AAID;;;GAGG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,aAAa,CAAC,CAkKxB"}
|
|
@@ -25,6 +25,7 @@ import { runMechanicalVerification, clampDimensionUpdate, checkDimensionDirectio
|
|
|
25
25
|
import { runLLMReview } from "./task-verifier-llm.js";
|
|
26
26
|
import { appendTaskOutcomeEvent } from "./task-outcome-ledger.js";
|
|
27
27
|
import { resolveTaskWorkspacePath } from "./task-workspace.js";
|
|
28
|
+
import { verifyTaskArtifactContract } from "./task-artifact-contract.js";
|
|
28
29
|
function formatSelfReportEvidence(executorReport) {
|
|
29
30
|
const segments = [
|
|
30
31
|
executorReport.summary.trim(),
|
|
@@ -41,6 +42,112 @@ function formatSelfReportEvidence(executorReport) {
|
|
|
41
42
|
].filter((segment) => segment.length > 0);
|
|
42
43
|
return segments.join("\n");
|
|
43
44
|
}
|
|
45
|
+
function statusAfterIncompleteVerification(task) {
|
|
46
|
+
if (task.status === "timed_out" || task.status === "cancelled" || task.status === "blocked")
|
|
47
|
+
return task.status;
|
|
48
|
+
return "error";
|
|
49
|
+
}
|
|
50
|
+
function getDimensionThresholdType(dim) {
|
|
51
|
+
return dim && typeof dim.threshold === "object" && dim.threshold !== null
|
|
52
|
+
? dim.threshold.type
|
|
53
|
+
: undefined;
|
|
54
|
+
}
|
|
55
|
+
function applyThresholdProgressDelta(prevVal, scaledDelta, thresholdType) {
|
|
56
|
+
const directionalDelta = thresholdType === "max" ? -scaledDelta : scaledDelta;
|
|
57
|
+
return prevVal !== null ? prevVal + directionalDelta : directionalDelta;
|
|
58
|
+
}
|
|
59
|
+
function isDimensionUpdateDirectionAllowed(input) {
|
|
60
|
+
const thresholdType = getDimensionThresholdType(input.dim);
|
|
61
|
+
if (thresholdType === "min" && input.newValue < input.previousValue) {
|
|
62
|
+
input.logger?.warn?.(`[handleVerdict] Skipping dimension update for ${String(input.dim.name)}: update moves away from min threshold`);
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
if (thresholdType === "max" && input.newValue > input.previousValue) {
|
|
66
|
+
input.logger?.warn?.(`[handleVerdict] Skipping dimension update for ${String(input.dim.name)}: update moves away from max threshold`);
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return checkDimensionDirection(input.intendedDirection, input.previousValue, input.newValue, input.logger, String(input.dim.name));
|
|
70
|
+
}
|
|
71
|
+
function isolatedWorkspaceHandoff(context) {
|
|
72
|
+
const workspace = context.agentLoopWorkspace;
|
|
73
|
+
if (workspace?.isolatedWorkspace === true &&
|
|
74
|
+
workspace.workspaceDisposition === "handoff_required") {
|
|
75
|
+
return workspace;
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
function discardedDirtyIsolatedWorkspace(context) {
|
|
80
|
+
const workspace = context.agentLoopWorkspace;
|
|
81
|
+
if (workspace?.isolatedWorkspace === true &&
|
|
82
|
+
workspace.workspaceDirty === true &&
|
|
83
|
+
workspace.workspaceDisposition === "discarded") {
|
|
84
|
+
return workspace;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
function shouldCollectDiffsFromRequestedWorkspace(executionResult) {
|
|
89
|
+
if (executionResult.agentLoop?.isolatedWorkspace !== true)
|
|
90
|
+
return true;
|
|
91
|
+
if (executionResult.agentLoop.workspaceDirty !== true)
|
|
92
|
+
return true;
|
|
93
|
+
return executionResult.agentLoop.workspaceDisposition !== "handoff_required" &&
|
|
94
|
+
executionResult.agentLoop.workspaceDisposition !== "discarded";
|
|
95
|
+
}
|
|
96
|
+
function formatIsolatedWorkspaceHandoffReason(workspace) {
|
|
97
|
+
const executionCwd = workspace.executionCwd ?? "unknown isolated worktree";
|
|
98
|
+
const requestedCwd = workspace.requestedCwd ?? "unknown requested workspace";
|
|
99
|
+
return [
|
|
100
|
+
`dirty isolated worktree retained at ${executionCwd}`,
|
|
101
|
+
`requested workspace ${requestedCwd} was not reverted or discarded`,
|
|
102
|
+
"operator review is required before completion",
|
|
103
|
+
].join("; ");
|
|
104
|
+
}
|
|
105
|
+
function formatDiscardedDirtyIsolatedWorkspaceReason(workspace) {
|
|
106
|
+
const executionCwd = workspace.executionCwd ?? "unknown isolated worktree";
|
|
107
|
+
const requestedCwd = workspace.requestedCwd ?? "unknown requested workspace";
|
|
108
|
+
return [
|
|
109
|
+
`dirty isolated worktree changes were discarded from ${executionCwd}`,
|
|
110
|
+
`requested workspace ${requestedCwd} was not reverted or discarded`,
|
|
111
|
+
"task must be retried from the requested workspace",
|
|
112
|
+
].join("; ");
|
|
113
|
+
}
|
|
114
|
+
export function applyVerdictHandlingContextGuards(verificationResult, context) {
|
|
115
|
+
const workspace = isolatedWorkspaceHandoff(context) ?? discardedDirtyIsolatedWorkspace(context);
|
|
116
|
+
if (!workspace)
|
|
117
|
+
return verificationResult;
|
|
118
|
+
const reason = workspace.workspaceDisposition === "discarded"
|
|
119
|
+
? formatDiscardedDirtyIsolatedWorkspaceReason(workspace)
|
|
120
|
+
: formatIsolatedWorkspaceHandoffReason(workspace);
|
|
121
|
+
return {
|
|
122
|
+
...verificationResult,
|
|
123
|
+
verdict: "fail",
|
|
124
|
+
confidence: Math.max(verificationResult.confidence ?? 0, 0.95),
|
|
125
|
+
evidence: [
|
|
126
|
+
{
|
|
127
|
+
layer: "mechanical",
|
|
128
|
+
description: reason,
|
|
129
|
+
confidence: 0.95,
|
|
130
|
+
},
|
|
131
|
+
...(verificationResult.evidence ?? []),
|
|
132
|
+
],
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function mergeMechanicalAndArtifactVerification(mechanical, artifact) {
|
|
136
|
+
if (!artifact.applicable)
|
|
137
|
+
return mechanical;
|
|
138
|
+
if (!mechanical.applicable) {
|
|
139
|
+
return {
|
|
140
|
+
applicable: true,
|
|
141
|
+
passed: artifact.passed,
|
|
142
|
+
description: artifact.description,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
applicable: true,
|
|
147
|
+
passed: mechanical.passed && artifact.passed,
|
|
148
|
+
description: `${mechanical.description}; ${artifact.description}`,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
44
151
|
function quoteShellArg(value) {
|
|
45
152
|
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
46
153
|
}
|
|
@@ -48,16 +155,20 @@ async function collectVerificationDiffs(deps, task, executionResult) {
|
|
|
48
155
|
if (executionResult.fileDiffs && executionResult.fileDiffs.length > 0) {
|
|
49
156
|
return executionResult.fileDiffs;
|
|
50
157
|
}
|
|
158
|
+
if (!shouldCollectDiffsFromRequestedWorkspace(executionResult))
|
|
159
|
+
return [];
|
|
51
160
|
if (!deps.toolExecutor)
|
|
52
161
|
return [];
|
|
53
162
|
const cwd = executionResult.agentLoop?.requestedCwd ??
|
|
54
163
|
executionResult.agentLoop?.executionCwd ??
|
|
55
|
-
await resolveTaskWorkspacePath({ stateManager: deps.stateManager, task }) ??
|
|
164
|
+
await resolveTaskWorkspacePath({ stateManager: deps.stateManager, task, fallbackCwd: deps.revertCwd }) ??
|
|
56
165
|
process.cwd();
|
|
57
166
|
const changedPaths = [
|
|
58
167
|
...(executionResult.filesChangedPaths ?? []),
|
|
59
168
|
...(executionResult.agentLoop?.filesChangedPaths ?? []),
|
|
60
169
|
].filter((path, index, all) => path.length > 0 && all.indexOf(path) === index);
|
|
170
|
+
const hasExplicitExecutionDiffPaths = executionResult.filesChangedPaths !== undefined ||
|
|
171
|
+
executionResult.agentLoop?.filesChangedPaths !== undefined;
|
|
61
172
|
const toolContext = {
|
|
62
173
|
cwd,
|
|
63
174
|
goalId: task.goal_id,
|
|
@@ -102,6 +213,9 @@ async function collectVerificationDiffs(deps, task, executionResult) {
|
|
|
102
213
|
const diffs = await Promise.all(changedPaths.slice(0, 5).map((path) => collectForPath(path)));
|
|
103
214
|
return diffs.filter((diff) => diff !== null);
|
|
104
215
|
}
|
|
216
|
+
if (hasExplicitExecutionDiffPaths) {
|
|
217
|
+
return [];
|
|
218
|
+
}
|
|
105
219
|
try {
|
|
106
220
|
const result = await deps.toolExecutor.execute("git_diff", { target: "unstaged", maxLines: 240 }, toolContext);
|
|
107
221
|
if (!result.success || typeof result.data !== "string" || !result.data.trim())
|
|
@@ -139,6 +253,16 @@ async function collectVerificationDiffs(deps, task, executionResult) {
|
|
|
139
253
|
* - L1 SKIP → use L2 only (lower confidence)
|
|
140
254
|
*/
|
|
141
255
|
export async function verifyTask(deps, task, executionResult) {
|
|
256
|
+
let goalForArtifactContract = null;
|
|
257
|
+
try {
|
|
258
|
+
goalForArtifactContract = await deps.stateManager.loadGoal(task.goal_id);
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
goalForArtifactContract = null;
|
|
262
|
+
}
|
|
263
|
+
const artifactResult = await verifyTaskArtifactContract(task, executionResult.agentLoop?.executionCwd
|
|
264
|
+
?? executionResult.agentLoop?.requestedCwd
|
|
265
|
+
?? await resolveTaskWorkspacePath({ stateManager: deps.stateManager, task, fallbackCwd: deps.revertCwd }), { goal: goalForArtifactContract });
|
|
142
266
|
// ─── Short-circuit: GitHub issue URL evidence ───
|
|
143
267
|
// When execution succeeded and output contains a GitHub issue URL,
|
|
144
268
|
// treat as mechanical pass without running full L1/L2 verification.
|
|
@@ -146,7 +270,8 @@ export async function verifyTask(deps, task, executionResult) {
|
|
|
146
270
|
const githubIssueUrlPattern = /github\.com\/.+\/issues\/\d+/;
|
|
147
271
|
if (executionResult.success === true &&
|
|
148
272
|
executionResult.output &&
|
|
149
|
-
githubIssueUrlPattern.test(executionResult.output)
|
|
273
|
+
githubIssueUrlPattern.test(executionResult.output) &&
|
|
274
|
+
(!artifactResult.applicable || artifactResult.passed)) {
|
|
150
275
|
const scResult = VerificationResultSchema.parse({
|
|
151
276
|
task_id: task.id,
|
|
152
277
|
verdict: "pass",
|
|
@@ -157,6 +282,13 @@ export async function verifyTask(deps, task, executionResult) {
|
|
|
157
282
|
description: "GitHub issue URL found in execution output — mechanical evidence of successful issue creation",
|
|
158
283
|
confidence: 0.95,
|
|
159
284
|
},
|
|
285
|
+
...(artifactResult.applicable
|
|
286
|
+
? [{
|
|
287
|
+
layer: "mechanical",
|
|
288
|
+
description: artifactResult.description,
|
|
289
|
+
confidence: 0.9,
|
|
290
|
+
}]
|
|
291
|
+
: []),
|
|
160
292
|
],
|
|
161
293
|
dimension_updates: [],
|
|
162
294
|
timestamp: new Date().toISOString(),
|
|
@@ -165,6 +297,7 @@ export async function verifyTask(deps, task, executionResult) {
|
|
|
165
297
|
}
|
|
166
298
|
// ─── Layer 1: Mechanical verification ───
|
|
167
299
|
const l1Result = await runMechanicalVerification(deps, task);
|
|
300
|
+
const effectiveL1Result = mergeMechanicalAndArtifactVerification(l1Result, artifactResult);
|
|
168
301
|
// ─── Build optional enrichment blocks for LLM review ───
|
|
169
302
|
let knowledgeBlock = "";
|
|
170
303
|
if (deps.knowledgeManager?.getRelevantKnowledge) {
|
|
@@ -200,17 +333,17 @@ export async function verifyTask(deps, task, executionResult) {
|
|
|
200
333
|
let verdict;
|
|
201
334
|
let confidence;
|
|
202
335
|
let l2Retry;
|
|
203
|
-
if (
|
|
204
|
-
if (
|
|
336
|
+
if (effectiveL1Result.applicable) {
|
|
337
|
+
if (effectiveL1Result.passed && l2Result.passed) {
|
|
205
338
|
verdict = "pass";
|
|
206
339
|
confidence = 0.9;
|
|
207
340
|
}
|
|
208
|
-
else if (
|
|
341
|
+
else if (effectiveL1Result.passed && l2Result.partial) {
|
|
209
342
|
// L1 pass + L2 partial → partial
|
|
210
343
|
verdict = "partial";
|
|
211
344
|
confidence = 0.7;
|
|
212
345
|
}
|
|
213
|
-
else if (
|
|
346
|
+
else if (effectiveL1Result.passed && !l2Result.passed && !l2Result.partial) {
|
|
214
347
|
// L1 pass + L2 fail → re-review
|
|
215
348
|
l2Retry = await runLLMReview(deps, task, executionResult, knowledgeBlock, stateBlock, 'main');
|
|
216
349
|
if (l2Retry.passed) {
|
|
@@ -226,7 +359,7 @@ export async function verifyTask(deps, task, executionResult) {
|
|
|
226
359
|
confidence = 0.8;
|
|
227
360
|
}
|
|
228
361
|
}
|
|
229
|
-
else if (!
|
|
362
|
+
else if (!effectiveL1Result.passed && l2Result.passed) {
|
|
230
363
|
// Mechanical verification takes priority
|
|
231
364
|
verdict = "fail";
|
|
232
365
|
confidence = 0.85;
|
|
@@ -253,18 +386,18 @@ export async function verifyTask(deps, task, executionResult) {
|
|
|
253
386
|
}
|
|
254
387
|
}
|
|
255
388
|
// Handle partial from L2 when L1 is applicable but didn't fail
|
|
256
|
-
if (
|
|
389
|
+
if (effectiveL1Result.applicable && l2Result.partial && verdict !== "fail") {
|
|
257
390
|
verdict = "partial";
|
|
258
391
|
}
|
|
259
392
|
// Use retry result for evidence when a retry occurred, to keep audit trail accurate
|
|
260
393
|
const effectiveL2 = l2Retry ?? l2Result;
|
|
261
394
|
const now = new Date().toISOString();
|
|
262
395
|
const evidence = [
|
|
263
|
-
...(
|
|
396
|
+
...(effectiveL1Result.applicable
|
|
264
397
|
? [
|
|
265
398
|
{
|
|
266
399
|
layer: "mechanical",
|
|
267
|
-
description:
|
|
400
|
+
description: effectiveL1Result.description,
|
|
268
401
|
confidence: 0.9,
|
|
269
402
|
},
|
|
270
403
|
]
|
|
@@ -320,7 +453,8 @@ export async function verifyTask(deps, task, executionResult) {
|
|
|
320
453
|
scaledDelta = progressDelta * (threshold.high - threshold.low);
|
|
321
454
|
}
|
|
322
455
|
}
|
|
323
|
-
const
|
|
456
|
+
const thresholdType = threshold?.type;
|
|
457
|
+
const newVal = applyThresholdProgressDelta(prevVal, scaledDelta, thresholdType);
|
|
324
458
|
return {
|
|
325
459
|
dimension_name: dimName,
|
|
326
460
|
previous_value: prevVal,
|
|
@@ -374,7 +508,7 @@ export async function verifyTask(deps, task, executionResult) {
|
|
|
374
508
|
/**
|
|
375
509
|
* Handle a verification verdict (pass/partial/fail).
|
|
376
510
|
*/
|
|
377
|
-
export async function handleVerdict(deps, task, verificationResult) {
|
|
511
|
+
export async function handleVerdict(deps, task, verificationResult, context = {}) {
|
|
378
512
|
// P0: Progress-verdict contradiction check (§4.1)
|
|
379
513
|
if (verificationResult.verdict === "pass" && verificationResult.dimension_updates?.length > 0) {
|
|
380
514
|
const goalRawForGuard = await deps.stateManager.readRaw(`goals/${task.goal_id}/goal.json`);
|
|
@@ -405,6 +539,9 @@ export async function handleVerdict(deps, task, verificationResult) {
|
|
|
405
539
|
verificationResult = { ...verificationResult, verdict: "partial" };
|
|
406
540
|
}
|
|
407
541
|
}
|
|
542
|
+
if (context.verificationGuardsApplied !== true) {
|
|
543
|
+
verificationResult = applyVerdictHandlingContextGuards(verificationResult, context);
|
|
544
|
+
}
|
|
408
545
|
// Save failure context for fail/partial verdicts (§4.7)
|
|
409
546
|
if (verificationResult.verdict === "fail" || verificationResult.verdict === "partial") {
|
|
410
547
|
const firstEvidence = verificationResult.evidence?.[0];
|
|
@@ -466,7 +603,13 @@ export async function handleVerdict(deps, task, verificationResult) {
|
|
|
466
603
|
const update = verificationResult.dimension_updates.find((u) => u.dimension_name === dim.name);
|
|
467
604
|
if (update !== undefined && typeof update.new_value === "number") {
|
|
468
605
|
const prev = typeof dim.current_value === "number" ? dim.current_value : 0;
|
|
469
|
-
if (!
|
|
606
|
+
if (!isDimensionUpdateDirectionAllowed({
|
|
607
|
+
intendedDirection: task.intended_direction,
|
|
608
|
+
dim,
|
|
609
|
+
previousValue: prev,
|
|
610
|
+
newValue: update.new_value,
|
|
611
|
+
logger: deps.logger,
|
|
612
|
+
})) {
|
|
470
613
|
continue;
|
|
471
614
|
}
|
|
472
615
|
dim.current_value = clampDimensionUpdate(prev, update.new_value, deps.logger, String(dim.name));
|
|
@@ -505,7 +648,13 @@ export async function handleVerdict(deps, task, verificationResult) {
|
|
|
505
648
|
const update = verificationResult.dimension_updates.find((u) => u.dimension_name === dim.name);
|
|
506
649
|
if (update !== undefined && typeof update.new_value === "number") {
|
|
507
650
|
const prev = typeof dim.current_value === "number" ? dim.current_value : 0;
|
|
508
|
-
if (!
|
|
651
|
+
if (!isDimensionUpdateDirectionAllowed({
|
|
652
|
+
intendedDirection: task.intended_direction,
|
|
653
|
+
dim,
|
|
654
|
+
previousValue: prev,
|
|
655
|
+
newValue: update.new_value,
|
|
656
|
+
logger: deps.logger,
|
|
657
|
+
})) {
|
|
509
658
|
continue;
|
|
510
659
|
}
|
|
511
660
|
dim.current_value = clampDimensionUpdate(prev, update.new_value, deps.logger, String(dim.name));
|
|
@@ -518,6 +667,7 @@ export async function handleVerdict(deps, task, verificationResult) {
|
|
|
518
667
|
}
|
|
519
668
|
const partialTask = {
|
|
520
669
|
...task,
|
|
670
|
+
status: statusAfterIncompleteVerification(task),
|
|
521
671
|
verification_verdict: verificationResult.verdict,
|
|
522
672
|
verification_evidence: verificationResult.evidence?.map((e) => e.description ?? String(e)) ?? [],
|
|
523
673
|
};
|
|
@@ -530,13 +680,14 @@ export async function handleVerdict(deps, task, verificationResult) {
|
|
|
530
680
|
action: "keep",
|
|
531
681
|
verificationResult,
|
|
532
682
|
reason: "partial progress kept for follow-up work",
|
|
683
|
+
stoppedReason: context.stoppedReason ?? undefined,
|
|
533
684
|
});
|
|
534
685
|
return { action: "keep", task: partialTask };
|
|
535
686
|
}
|
|
536
|
-
return handleFailure(deps, task, verificationResult);
|
|
687
|
+
return handleFailure(deps, task, verificationResult, context);
|
|
537
688
|
}
|
|
538
689
|
case "fail": {
|
|
539
|
-
return handleFailure(deps, task, verificationResult);
|
|
690
|
+
return handleFailure(deps, task, verificationResult, context);
|
|
540
691
|
}
|
|
541
692
|
}
|
|
542
693
|
}
|
|
@@ -545,9 +696,10 @@ export async function handleVerdict(deps, task, verificationResult) {
|
|
|
545
696
|
* Handle a task failure: increment failure count, record failure,
|
|
546
697
|
* decide keep/discard/escalate.
|
|
547
698
|
*/
|
|
548
|
-
export async function handleFailure(deps, task, verificationResult) {
|
|
699
|
+
export async function handleFailure(deps, task, verificationResult, context = {}) {
|
|
549
700
|
const updatedTask = {
|
|
550
701
|
...task,
|
|
702
|
+
status: statusAfterIncompleteVerification(task),
|
|
551
703
|
consecutive_failure_count: task.consecutive_failure_count + 1,
|
|
552
704
|
verification_verdict: verificationResult.verdict,
|
|
553
705
|
verification_evidence: verificationResult.evidence?.map((e) => e.description ?? String(e)) ?? [],
|
|
@@ -559,6 +711,7 @@ export async function handleFailure(deps, task, verificationResult) {
|
|
|
559
711
|
type: "failed",
|
|
560
712
|
attempt: updatedTask.consecutive_failure_count,
|
|
561
713
|
verificationResult,
|
|
714
|
+
stoppedReason: context.stoppedReason ?? undefined,
|
|
562
715
|
});
|
|
563
716
|
if (updatedTask.consecutive_failure_count >= 3) {
|
|
564
717
|
deps.stallDetector.checkConsecutiveFailures(task.goal_id, task.primary_dimension, updatedTask.consecutive_failure_count);
|
|
@@ -570,9 +723,40 @@ export async function handleFailure(deps, task, verificationResult) {
|
|
|
570
723
|
action: "escalate",
|
|
571
724
|
verificationResult,
|
|
572
725
|
reason: "consecutive failure threshold reached",
|
|
726
|
+
stoppedReason: context.stoppedReason ?? undefined,
|
|
727
|
+
});
|
|
728
|
+
return { action: "escalate", task: updatedTask };
|
|
729
|
+
}
|
|
730
|
+
const handoffWorkspace = isolatedWorkspaceHandoff(context);
|
|
731
|
+
if (handoffWorkspace) {
|
|
732
|
+
const reason = formatIsolatedWorkspaceHandoffReason(handoffWorkspace);
|
|
733
|
+
await appendTaskHistory(deps, task.goal_id, updatedTask);
|
|
734
|
+
await appendTaskOutcomeEvent(deps.stateManager, {
|
|
735
|
+
task: updatedTask,
|
|
736
|
+
type: "abandoned",
|
|
737
|
+
attempt: updatedTask.consecutive_failure_count,
|
|
738
|
+
action: "escalate",
|
|
739
|
+
verificationResult,
|
|
740
|
+
reason,
|
|
741
|
+
stoppedReason: context.stoppedReason ?? undefined,
|
|
573
742
|
});
|
|
574
743
|
return { action: "escalate", task: updatedTask };
|
|
575
744
|
}
|
|
745
|
+
const discardedWorkspace = discardedDirtyIsolatedWorkspace(context);
|
|
746
|
+
if (discardedWorkspace) {
|
|
747
|
+
const reason = formatDiscardedDirtyIsolatedWorkspaceReason(discardedWorkspace);
|
|
748
|
+
await appendTaskHistory(deps, task.goal_id, updatedTask);
|
|
749
|
+
await appendTaskOutcomeEvent(deps.stateManager, {
|
|
750
|
+
task: updatedTask,
|
|
751
|
+
type: "abandoned",
|
|
752
|
+
attempt: updatedTask.consecutive_failure_count,
|
|
753
|
+
action: "discard",
|
|
754
|
+
verificationResult,
|
|
755
|
+
reason,
|
|
756
|
+
stoppedReason: context.stoppedReason ?? undefined,
|
|
757
|
+
});
|
|
758
|
+
return { action: "discard", task: updatedTask };
|
|
759
|
+
}
|
|
576
760
|
const directionCorrect = isDirectionCorrect(verificationResult);
|
|
577
761
|
if (directionCorrect) {
|
|
578
762
|
await appendTaskHistory(deps, task.goal_id, updatedTask);
|
|
@@ -583,20 +767,36 @@ export async function handleFailure(deps, task, verificationResult) {
|
|
|
583
767
|
action: "keep",
|
|
584
768
|
verificationResult,
|
|
585
769
|
reason: "failure kept for retry because direction remained correct",
|
|
770
|
+
stoppedReason: context.stoppedReason ?? undefined,
|
|
586
771
|
});
|
|
587
772
|
return { action: "keep", task: updatedTask };
|
|
588
773
|
}
|
|
589
774
|
if (updatedTask.reversibility === "reversible") {
|
|
775
|
+
const fileDiffs = verificationResult.file_diffs ?? [];
|
|
590
776
|
const concreteRevertPaths = [
|
|
591
|
-
...new Set(
|
|
777
|
+
...new Set(fileDiffs
|
|
778
|
+
.filter((diff) => diff.safe_to_revert !== false)
|
|
779
|
+
.map((diff) => diff.path)
|
|
780
|
+
.filter((filePath) => filePath.trim().length > 0)),
|
|
781
|
+
];
|
|
782
|
+
const unsafeRevertPaths = [
|
|
783
|
+
...new Set(fileDiffs
|
|
784
|
+
.filter((diff) => diff.safe_to_revert === false)
|
|
592
785
|
.map((diff) => diff.path)
|
|
593
786
|
.filter((filePath) => filePath.trim().length > 0)),
|
|
594
787
|
];
|
|
595
788
|
const revertSuccess = await attemptRevert(deps, updatedTask, {
|
|
596
789
|
concretePaths: concreteRevertPaths,
|
|
790
|
+
unsafePaths: unsafeRevertPaths,
|
|
791
|
+
});
|
|
792
|
+
deps.logger?.warn(`[task] revert attempted`, {
|
|
793
|
+
taskId: task.id,
|
|
794
|
+
success: revertSuccess.success,
|
|
795
|
+
reason: revertSuccess.reason,
|
|
796
|
+
concretePaths: revertSuccess.concretePaths,
|
|
797
|
+
unsafePaths: revertSuccess.unsafePaths,
|
|
597
798
|
});
|
|
598
|
-
|
|
599
|
-
if (revertSuccess) {
|
|
799
|
+
if (revertSuccess.success) {
|
|
600
800
|
await appendTaskHistory(deps, task.goal_id, updatedTask);
|
|
601
801
|
await appendTaskOutcomeEvent(deps.stateManager, {
|
|
602
802
|
task: updatedTask,
|
|
@@ -604,7 +804,8 @@ export async function handleFailure(deps, task, verificationResult) {
|
|
|
604
804
|
attempt: updatedTask.consecutive_failure_count,
|
|
605
805
|
action: "discard",
|
|
606
806
|
verificationResult,
|
|
607
|
-
reason:
|
|
807
|
+
reason: `task discarded after successful ${revertSuccess.method ?? "revert"} for ${revertSuccess.concretePaths.length} concrete paths`,
|
|
808
|
+
stoppedReason: context.stoppedReason ?? undefined,
|
|
608
809
|
});
|
|
609
810
|
return { action: "discard", task: updatedTask };
|
|
610
811
|
}
|
|
@@ -617,7 +818,12 @@ export async function handleFailure(deps, task, verificationResult) {
|
|
|
617
818
|
attempt: updatedTask.consecutive_failure_count,
|
|
618
819
|
action: "escalate",
|
|
619
820
|
verificationResult,
|
|
620
|
-
reason:
|
|
821
|
+
reason: (revertSuccess.unsafePaths?.length ?? 0) > 0
|
|
822
|
+
? `revert could not safely discard all task changes because some share pre-existing dirty paths: ${revertSuccess.unsafePaths?.join(", ")}`
|
|
823
|
+
: revertSuccess.concretePaths.length === 0
|
|
824
|
+
? "revert skipped because no concrete changed paths were captured; task output requires operator review"
|
|
825
|
+
: `revert failed after wrong-direction result: ${revertSuccess.reason}`,
|
|
826
|
+
stoppedReason: context.stoppedReason ?? undefined,
|
|
621
827
|
});
|
|
622
828
|
return { action: "escalate", task: updatedTask };
|
|
623
829
|
}
|
|
@@ -629,6 +835,7 @@ export async function handleFailure(deps, task, verificationResult) {
|
|
|
629
835
|
action: "escalate",
|
|
630
836
|
verificationResult,
|
|
631
837
|
reason: "task cannot be safely retried or reverted",
|
|
838
|
+
stoppedReason: context.stoppedReason ?? undefined,
|
|
632
839
|
});
|
|
633
840
|
return { action: "escalate", task: updatedTask };
|
|
634
841
|
}
|