@ashx-j/lunr-dev 0.2.16-dev.9.1 → 0.2.21-dev.12.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 +67 -1
- package/README.md +7 -1
- package/dist/builtin-extensions/ashxj-thinking.d.ts +1 -0
- package/dist/builtin-extensions/ashxj-thinking.d.ts.map +1 -1
- package/dist/builtin-extensions/ashxj-thinking.js +44 -19
- package/dist/builtin-extensions/ashxj-thinking.js.map +1 -1
- package/dist/builtin-extensions/index.d.ts.map +1 -1
- package/dist/builtin-extensions/index.js +1 -2
- package/dist/builtin-extensions/index.js.map +1 -1
- package/dist/builtin-extensions/lunr-computer-use.d.ts +3 -0
- package/dist/builtin-extensions/lunr-computer-use.d.ts.map +1 -0
- package/dist/builtin-extensions/lunr-computer-use.js +158 -0
- package/dist/builtin-extensions/lunr-computer-use.js.map +1 -0
- package/dist/builtin-extensions/lunr-todos.d.ts +6 -5
- package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -1
- package/dist/builtin-extensions/lunr-todos.js +9 -7
- package/dist/builtin-extensions/lunr-todos.js.map +1 -1
- package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts +6 -4
- package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-intercom/broker/spawn.js +114 -61
- package/dist/builtin-extensions/pi-intercom/broker/spawn.js.map +1 -1
- package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-intercom/index.js +360 -351
- package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/index.js +10 -3
- package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/runtime.d.ts +5 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/runtime.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/runtime.js +26 -4
- package/dist/builtin-extensions/pi-lsp-extension/src/runtime.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/index.js +37 -27
- package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts +6 -1
- package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js +33 -8
- package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +2 -2
- package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +8 -6
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js +179 -79
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +18 -8
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +44 -15
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +4 -3
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +24 -14
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +8 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +247 -18
- package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts +29 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js +179 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts +89 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js +541 -0
- package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +11 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +38 -12
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js +3 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +2 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +35 -8
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +7 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +26 -4
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +55 -38
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +100 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +46 -31
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +3 -6
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +64 -5
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts +15 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js +14 -4
- package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +7 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +21 -8
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.d.ts +10 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.js +38 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +0 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +74 -41
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +2 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +75 -18
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js +2 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +13 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +67 -11
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +3 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +7 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +13 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +5 -10
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts +2 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js +3 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts +3 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +68 -11
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts +12 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js +21 -2
- package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +21 -4
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +7 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +11 -7
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +6 -0
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +46 -29
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +47 -4
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js +428 -431
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts +2 -13
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js +5 -91
- package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js.map +1 -1
- package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-web-access/index.js +103 -102
- package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/computer-use/adapter.d.ts +23 -0
- package/dist/core/computer-use/adapter.d.ts.map +1 -0
- package/dist/core/computer-use/adapter.js +116 -0
- package/dist/core/computer-use/adapter.js.map +1 -0
- package/dist/core/computer-use/image.d.ts +26 -0
- package/dist/core/computer-use/image.d.ts.map +1 -0
- package/dist/core/computer-use/image.js +64 -0
- package/dist/core/computer-use/image.js.map +1 -0
- package/dist/core/computer-use/lease.d.ts +18 -0
- package/dist/core/computer-use/lease.d.ts.map +1 -0
- package/dist/core/computer-use/lease.js +129 -0
- package/dist/core/computer-use/lease.js.map +1 -0
- package/dist/core/computer-use/macos-runtime.d.ts +14 -0
- package/dist/core/computer-use/macos-runtime.d.ts.map +1 -0
- package/dist/core/computer-use/macos-runtime.js +148 -0
- package/dist/core/computer-use/macos-runtime.js.map +1 -0
- package/dist/core/computer-use/policy.d.ts +19 -0
- package/dist/core/computer-use/policy.d.ts.map +1 -0
- package/dist/core/computer-use/policy.js +62 -0
- package/dist/core/computer-use/policy.js.map +1 -0
- package/dist/core/computer-use/release.generated.d.ts +31 -0
- package/dist/core/computer-use/release.generated.d.ts.map +1 -0
- package/dist/core/computer-use/release.generated.js +36 -0
- package/dist/core/computer-use/release.generated.js.map +1 -0
- package/dist/core/computer-use/runtime.d.ts +13 -0
- package/dist/core/computer-use/runtime.d.ts.map +1 -0
- package/dist/core/computer-use/runtime.js +158 -0
- package/dist/core/computer-use/runtime.js.map +1 -0
- package/dist/core/computer-use/schemas.d.ts +91 -0
- package/dist/core/computer-use/schemas.d.ts.map +1 -0
- package/dist/core/computer-use/schemas.js +71 -0
- package/dist/core/computer-use/schemas.js.map +1 -0
- package/dist/core/computer-use/windows-desktop.d.ts +3 -0
- package/dist/core/computer-use/windows-desktop.d.ts.map +1 -0
- package/dist/core/computer-use/windows-desktop.js +48 -0
- package/dist/core/computer-use/windows-desktop.js.map +1 -0
- package/dist/core/computer-use/workflow.d.ts +32 -0
- package/dist/core/computer-use/workflow.d.ts.map +1 -0
- package/dist/core/computer-use/workflow.js +341 -0
- package/dist/core/computer-use/workflow.js.map +1 -0
- package/dist/core/customize.d.ts +2 -0
- package/dist/core/customize.d.ts.map +1 -1
- package/dist/core/customize.js +3 -0
- package/dist/core/customize.js.map +1 -1
- package/dist/core/keybindings.d.ts +2 -2
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +2 -2
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-runtime.d.ts +0 -3
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +1 -10
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +1 -1
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/permissions.d.ts +2 -1
- package/dist/core/permissions.d.ts.map +1 -1
- package/dist/core/permissions.js +31 -11
- package/dist/core/permissions.js.map +1 -1
- package/dist/core/plan-mode.d.ts.map +1 -1
- package/dist/core/plan-mode.js +9 -5
- package/dist/core/plan-mode.js.map +1 -1
- package/dist/core/rollback.d.ts.map +1 -1
- package/dist/core/rollback.js +13 -90
- package/dist/core/rollback.js.map +1 -1
- package/dist/core/runtime-bridges.d.ts.map +1 -1
- package/dist/core/runtime-bridges.js +0 -2
- package/dist/core/runtime-bridges.js.map +1 -1
- package/dist/core/session-manager.d.ts +0 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +21 -79
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +10 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +30 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/subagent-cancellation.d.ts +21 -0
- package/dist/core/subagent-cancellation.d.ts.map +1 -0
- package/dist/core/subagent-cancellation.js +53 -0
- package/dist/core/subagent-cancellation.js.map +1 -0
- package/dist/core/subagent-spinner-setting.d.ts +6 -0
- package/dist/core/subagent-spinner-setting.d.ts.map +1 -0
- package/dist/core/subagent-spinner-setting.js +12 -0
- package/dist/core/subagent-spinner-setting.js.map +1 -0
- package/dist/core/subagent-spinner.d.ts +4 -0
- package/dist/core/subagent-spinner.d.ts.map +1 -0
- package/dist/core/subagent-spinner.js +6 -0
- package/dist/core/subagent-spinner.js.map +1 -0
- package/dist/dev-cli.js +0 -0
- package/dist/gateway/agent-bridge.d.ts +6 -1
- package/dist/gateway/agent-bridge.d.ts.map +1 -1
- package/dist/gateway/agent-bridge.js +23 -6
- package/dist/gateway/agent-bridge.js.map +1 -1
- package/dist/gateway/cron.d.ts +1 -1
- package/dist/gateway/cron.d.ts.map +1 -1
- package/dist/gateway/cron.js +23 -7
- package/dist/gateway/cron.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +12 -18
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +4 -2
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +23 -32
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/processes-selector.d.ts +2 -3
- package/dist/modes/interactive/components/processes-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/processes-selector.js +5 -10
- package/dist/modes/interactive/components/processes-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +8 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +93 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +12 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/extension-widget-order.d.ts +8 -0
- package/dist/modes/interactive/extension-widget-order.d.ts.map +1 -0
- package/dist/modes/interactive/extension-widget-order.js +37 -0
- package/dist/modes/interactive/extension-widget-order.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +58 -26
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/thinking-level-slash.d.ts +4 -0
- package/dist/modes/interactive/thinking-level-slash.d.ts.map +1 -0
- package/dist/modes/interactive/thinking-level-slash.js +23 -0
- package/dist/modes/interactive/thinking-level-slash.js.map +1 -0
- package/dist/node-runtime/adapter-AZMY335J.js +279 -0
- package/dist/node-runtime/{agent-session-services-IFJMSX7Z.js → agent-session-services-QANFGM2V.js} +15 -11
- package/dist/node-runtime/{builtin-extensions-LYZ3BFWQ.js → builtin-extensions-SRCYQPZ6.js} +5 -3
- package/dist/node-runtime/chunk-2IDTZAG5.js +1415 -0
- package/dist/node-runtime/chunk-3ONQTOMR.js +68 -0
- package/dist/node-runtime/{chunk-TQNSPERU.js → chunk-5SQDLSZJ.js} +1 -1
- package/dist/node-runtime/chunk-5ZH3ZFIZ.js +308 -0
- package/dist/node-runtime/{chunk-PBC2Y6GS.js → chunk-6UB6NKA3.js} +29 -72
- package/dist/node-runtime/{chunk-A2KQXUJD.js → chunk-7AFOFSDY.js} +1 -1
- package/dist/node-runtime/chunk-A3KMVBZV.js +60 -0
- package/dist/node-runtime/{chunk-N77MY65L.js → chunk-BJ6H7DPI.js} +25 -25
- package/dist/node-runtime/{chunk-PGAJ5MO5.js → chunk-BYQ2MOFI.js} +6 -6
- package/dist/node-runtime/{chunk-QH42CDX3.js → chunk-CZUBYPFP.js} +234 -124
- package/dist/node-runtime/{chunk-LZAW4ZX3.js → chunk-D466UAID.js} +34 -13
- package/dist/node-runtime/{chunk-ZKMFUD3Q.js → chunk-GT5F3OKM.js} +3 -3
- package/dist/node-runtime/chunk-H2BI7G7T.js +73 -0
- package/dist/node-runtime/{chunk-5P7PZMRU.js → chunk-HRS4HMDX.js} +1 -1
- package/dist/node-runtime/{chunk-IPA627GP.js → chunk-HXJS2PJM.js} +4 -4
- package/dist/node-runtime/chunk-JZHEUQRL.js +180 -0
- package/dist/node-runtime/chunk-LISUTZS3.js +19 -0
- package/dist/node-runtime/chunk-LOYUC2ID.js +2185 -0
- package/dist/node-runtime/{chunk-2QKLKMKC.js → chunk-LTXUQJI4.js} +1 -1
- package/dist/node-runtime/{chunk-YF63P5ZT.js → chunk-LTYWTR3V.js} +1 -426
- package/dist/node-runtime/{chunk-MKKH27PH.js → chunk-LWJXTA6Z.js} +274 -2416
- package/dist/node-runtime/chunk-MW2XJZIK.js +108 -0
- package/dist/node-runtime/{chunk-CDFZEWPU.js → chunk-N3PNL74S.js} +537 -262
- package/dist/node-runtime/{chunk-4TLO4PO2.js → chunk-U6C7VTR5.js} +7 -1401
- package/dist/node-runtime/chunk-URD2SLIT.js +1019 -0
- package/dist/node-runtime/{chunk-HQCKFM2O.js → chunk-VGYZ3APQ.js} +3 -0
- package/dist/node-runtime/{chunk-AJX357CL.js → chunk-VQ4UBWSA.js} +30 -1013
- package/dist/node-runtime/{chunk-F4VQFJI2.js → chunk-VTGEKB7R.js} +2 -2
- package/dist/node-runtime/{chunk-AD6VXAO7.js → chunk-VTPM5V35.js} +5 -100
- package/dist/node-runtime/chunk-W3SILANP.js +24 -0
- package/dist/node-runtime/{chunk-WOVTOV5P.js → chunk-XAUQOKYK.js} +421 -63
- package/dist/node-runtime/{chunk-ECD5L7YI.js → chunk-XSRCAQK2.js} +390 -16
- package/dist/node-runtime/{chunk-PCGNAY2O.js → chunk-ZOIIMEN6.js} +54 -433
- package/dist/node-runtime/{chunk-EDBJNRSM.js → chunk-ZVSORYRM.js} +1 -1
- package/dist/node-runtime/cli-runtime.js +1 -1
- package/dist/node-runtime/{command-L3LAHDIH.js → command-ZURZJDXF.js} +1 -1
- package/dist/node-runtime/{commands-RL5YBW5I.js → commands-BZGSLIP7.js} +4 -2
- package/dist/node-runtime/{customize-XEXL2DGQ.js → customize-LF5VST47.js} +1 -1
- package/dist/node-runtime/{direct-tool-executor-JVDXTO7A.js → direct-tool-executor-BSZDHIYR.js} +7 -4
- package/dist/node-runtime/{export-html-KR26FOUZ.js → export-html-E4DT6ZJQ.js} +1 -1
- package/dist/node-runtime/{gateway-X2TI5X7F.js → gateway-FWHRIBK5.js} +24 -369
- package/dist/node-runtime/index.js +49 -42
- package/dist/node-runtime/{init-NJV2T55N.js → init-DVJUAOUO.js} +4 -2
- package/dist/node-runtime/{interactive-mode-KOM35YF2.js → interactive-mode-BBASNWHN.js} +23 -17
- package/dist/node-runtime/{interactive-view-U6OILKF3.js → interactive-view-N6F4KUIT.js} +3 -5
- package/dist/node-runtime/lunr-computer-use-TJNDAMWM.js +135 -0
- package/dist/node-runtime/{lunr-cron-YJ5UHYRD.js → lunr-cron-J64I72C6.js} +7 -1
- package/dist/node-runtime/main.js +25 -20
- package/dist/node-runtime/{mcp-auth-flow-QIXHW6QN.js → mcp-auth-flow-YL6RWPYG.js} +2 -1
- package/dist/node-runtime/{package-manager-cli-TZZHJCVI.js → package-manager-cli-VMYX4Y2S.js} +10 -7
- package/dist/node-runtime/{pi-intercom-EEMBGQID.js → pi-intercom-NV2LW6X7.js} +108 -87
- package/dist/node-runtime/{pi-mcp-adapter-QFB37AVN.js → pi-mcp-adapter-JLB5YL2F.js} +31 -25
- package/dist/node-runtime/{pi-subagents-7XJ4H53P.js → pi-subagents-WEHV3W7H.js} +1321 -631
- package/dist/node-runtime/{pi-web-access-DPGAVKOA.js → pi-web-access-FN5YC5T6.js} +67 -64
- package/dist/node-runtime/{proxy-modes-HEEFK4KC.js → proxy-modes-OR7ISBXK.js} +7 -4
- package/dist/node-runtime/rpc-entry.js +25 -20
- package/dist/node-runtime/runtime-3SB5ATHQ.js +21 -0
- package/dist/node-runtime/{runtime-bridges-PPHNBFWL.js → runtime-bridges-2VQTLPOZ.js} +3 -5
- package/dist/node-runtime/{session-manager-MQNBYACL.js → session-manager-QEMZBMTM.js} +3 -5
- package/dist/node-runtime/{session-selector-5AZLJS6U.js → session-selector-URVJLOTK.js} +2 -2
- package/dist/node-runtime/{settings-manager-5LF2VQWC.js → settings-manager-3CCU326G.js} +4 -1
- package/dist/node-runtime/{src-Y7JSCK64.js → src-BPQFJR76.js} +27 -7
- package/dist/node-runtime/{subagent-executor-5RNDEPIJ.js → subagent-executor-CXKXQDHH.js} +189 -284
- package/dist/node-runtime/{update-cli-A253SZ7P.js → update-cli-NM7B4CKL.js} +4 -1
- package/dist/node-runtime/workflow-C26QCUTW.js +468 -0
- package/dist/rpc.d.ts +3 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/rpc.js +18 -0
- package/dist/rpc.js.map +1 -0
- package/dist/startup/interactive-view.d.ts.map +1 -1
- package/dist/startup/interactive-view.js +1 -2
- package/dist/startup/interactive-view.js.map +1 -1
- package/docs/computer-use.md +242 -0
- package/docs/development.md +0 -32
- package/docs/features.md +24 -6
- package/docs/interactive-startup.md +10 -3
- package/docs/keybindings.md +5 -3
- package/docs/settings.md +3 -2
- package/docs/terminal-setup.md +1 -1
- package/docs/usage.md +1 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/hidden-thinking-label.ts +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/install-lock/package-lock.json +3827 -0
- package/install-lock/package.json +18 -0
- package/native/computer-use/LICENSE.md +21 -0
- package/npm-shrinkwrap.json +3808 -0
- package/package.json +16 -10
- package/dist/builtin-extensions/lunr-settings-tools.d.ts +0 -4
- package/dist/builtin-extensions/lunr-settings-tools.d.ts.map +0 -1
- package/dist/builtin-extensions/lunr-settings-tools.js +0 -120
- package/dist/builtin-extensions/lunr-settings-tools.js.map +0 -1
- package/dist/core/settings-tools-bridge.d.ts +0 -35
- package/dist/core/settings-tools-bridge.d.ts.map +0 -1
- package/dist/core/settings-tools-bridge.js +0 -56
- package/dist/core/settings-tools-bridge.js.map +0 -1
- package/dist/node-runtime/chunk-AHSTJBIB.js +0 -64
- package/dist/startup/interactive-shell.d.ts +0 -55
- package/dist/startup/interactive-shell.d.ts.map +0 -1
- package/dist/startup/interactive-shell.js +0 -264
- package/dist/startup/interactive-shell.js.map +0 -1
- package/dist/node-runtime/{chunk-YSKSB3BJ.js → chunk-CH6OL6P2.js} +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acceptance.js","sourceRoot":"","sources":["../../../../../../src/builtin-extensions/pi-subagents/src/runs/shared/acceptance.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport { spawn } from \"node:child_process\";\nimport { spawnSync } from \"node:child_process\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type {\n\tAcceptanceConfig,\n\tAcceptanceEvidenceKind,\n\tAcceptanceInput,\n\tAcceptanceLedger,\n\tAcceptanceLevel,\n\tAcceptanceReport,\n\tAcceptanceRole,\n\tAcceptanceRuntimeCheck,\n\tAcceptanceRuntimeCheckStatus,\n\tAcceptanceReviewResult,\n\tAcceptanceVerifyCommand,\n\tAcceptanceVerifyResult,\n\tResolvedAcceptanceConfig,\n\tResolvedAcceptanceGate,\n\tSingleResult,\n\tSubagentRunMode,\n} from \"../../shared/types.ts\";\nimport { classifyTaskMutationIntent, taskMayMutate } from \"./task-intent.ts\";\n\nconst LEVEL_RANK: Record<Exclude<AcceptanceLevel, \"auto\">, number> = {\n\tnone: 0,\n\tattested: 1,\n\tchecked: 2,\n\tverified: 3,\n\treviewed: 4,\n};\n\nconst VALID_LEVELS = new Set<AcceptanceLevel>([\"auto\", \"none\", \"attested\", \"checked\", \"verified\", \"reviewed\"]);\nconst VALID_EVIDENCE = new Set<AcceptanceEvidenceKind>([\n\t\"changed-files\",\n\t\"tests-added\",\n\t\"commands-run\",\n\t\"validation-output\",\n\t\"residual-risks\",\n\t\"no-staged-files\",\n\t\"diff-summary\",\n\t\"review-findings\",\n\t\"manual-notes\",\n]);\nconst ACCEPTANCE_CONFIG_KEYS = new Set([\"level\", \"criteria\", \"evidence\", \"verify\", \"review\", \"stopRules\", \"reason\"]);\nconst ACCEPTANCE_GATE_KEYS = new Set([\"id\", \"must\", \"evidence\", \"severity\"]);\nconst ACCEPTANCE_VERIFY_KEYS = new Set([\"id\", \"command\", \"timeoutMs\", \"cwd\", \"env\", \"allowFailure\"]);\nconst ACCEPTANCE_REVIEW_KEYS = new Set([\"agent\", \"focus\", \"required\"]);\nconst EXPLICIT_REVIEWED_UNAVAILABLE = \"cannot be requested explicitly because this run cannot supply an independent reviewer result; use checked/verified and orchestrate the reviewer separately, or omit acceptance for read-only review tasks.\";\n\nfunction normalizeLevel(level: AcceptanceLevel | undefined): Exclude<AcceptanceLevel, \"auto\"> | \"auto\" {\n\treturn level ?? \"auto\";\n}\n\nfunction unique<T>(items: T[]): T[] {\n\treturn [...new Set(items)];\n}\n\nfunction requiredEvidenceForLevel(level: Exclude<AcceptanceLevel, \"auto\">): AcceptanceEvidenceKind[] {\n\tswitch (level) {\n\t\tcase \"none\":\n\t\t\treturn [];\n\t\tcase \"attested\":\n\t\t\treturn [\"manual-notes\", \"residual-risks\"];\n\t\tcase \"checked\":\n\t\t\treturn [\"changed-files\", \"tests-added\", \"commands-run\", \"residual-risks\", \"no-staged-files\"];\n\t\tcase \"verified\":\n\t\tcase \"reviewed\":\n\t\t\treturn [\"changed-files\", \"tests-added\", \"commands-run\", \"validation-output\", \"residual-risks\", \"no-staged-files\"];\n\t}\n}\n\nfunction inferLevel(input: {\n\tagentName?: string;\n\tpermissions?: \"full\" | \"read-only\";\n\tacceptanceRole?: AcceptanceRole;\n\ttask?: string;\n\tmode?: SubagentRunMode;\n\tasync?: boolean;\n\tdynamic?: boolean;\n\tdynamicGroup?: boolean;\n}): { level: Exclude<AcceptanceLevel, \"auto\">; reasons: string[]; criteria: string[]; evidence: AcceptanceEvidenceKind[]; review?: { agent?: string; required?: boolean } } {\n\tconst permissions = input.permissions\n\t\t?? (input.acceptanceRole === \"read-only\" ? \"read-only\" : \"full\");\n\tconst task = input.task?.toLowerCase() ?? \"\";\n\tconst reasons: string[] = [];\n\tconst intent = classifyTaskMutationIntent(permissions, input.task ?? \"\");\n\tconst readOnlyPermission = permissions === \"read-only\";\n\tconst readOnlyTask = readOnlyPermission\n\t\t|| intent.kind === \"read-only\"\n\t\t|| (intent.kind === \"unknown\" && /\\b(?:read[- ]only|review[- ]only|no edits|without edits|inspect|summari[sz]e)\\b/.test(task));\n\tconst taskMayWrite = !readOnlyPermission && (taskMayMutate(input.task ?? \"\") || intent.kind === \"implementation\");\n\tconst writeTask = taskMayWrite && !readOnlyTask;\n\tconst inferredReadOnly = readOnlyPermission || readOnlyTask;\n\tconst risky = !inferredReadOnly && (\n\t\tBoolean(input.async && writeTask)\n\t\t|| Boolean(input.dynamic)\n\t\t|| Boolean(input.dynamicGroup)\n\t\t|| /\\b(?:release|migration|migrate|security|data[- ]loss|destructive|post-review|fix pass)\\b/.test(task)\n\t);\n\n\tif (inferredReadOnly) {\n\t\treasons.push(readOnlyPermission ? \"read-only child permission\" : \"read-only task wording\");\n\t\treturn {\n\t\t\tlevel: \"attested\",\n\t\t\treasons,\n\t\t\tcriteria: [\"Return concrete findings with file paths and severity when applicable\"],\n\t\t\tevidence: [\"review-findings\", \"residual-risks\"],\n\t\t};\n\t}\n\tif (risky) {\n\t\treasons.push(input.async ? \"async write-capable or risky run\" : \"risky write-capable run\");\n\t\tif (input.dynamic || input.dynamicGroup) reasons.push(\"dynamic fanout context\");\n\t\treturn {\n\t\t\tlevel: \"reviewed\",\n\t\t\treasons,\n\t\t\tcriteria: [\"Implement the requested change without widening scope\", \"Return evidence sufficient for an independent acceptance review\"],\n\t\t\tevidence: requiredEvidenceForLevel(\"reviewed\"),\n\t\t};\n\t}\n\tif (writeTask) {\n\t\treasons.push(\"write-capable task with full child permission\");\n\t\treturn {\n\t\t\tlevel: \"checked\",\n\t\t\treasons,\n\t\t\tcriteria: [\"Implement the requested change without widening scope\"],\n\t\t\tevidence: requiredEvidenceForLevel(\"checked\"),\n\t\t};\n\t}\n\treasons.push(\"default lightweight attestation\");\n\treturn {\n\t\tlevel: \"attested\",\n\t\treasons,\n\t\tcriteria: [\"Return a concise result and residual risks when applicable\"],\n\t\tevidence: [\"manual-notes\", \"residual-risks\"],\n\t};\n}\n\nexport function normalizeAcceptanceInput(input: AcceptanceInput | undefined): AcceptanceConfig {\n\tif (input === undefined || input === \"auto\") return { level: \"auto\" };\n\tif (input === false) return { level: \"none\", reason: \"disabled by deprecated false shorthand\" };\n\tif (typeof input === \"string\") return { level: input };\n\treturn { ...input };\n}\n\nfunction explicitAcceptanceCanDisable(explicit: AcceptanceConfig): boolean {\n\treturn explicit.level === \"none\" && typeof explicit.reason === \"string\" && explicit.reason.trim().length > 0;\n}\n\nexport function validateAcceptanceInput(input: unknown, pathLabel = \"acceptance\"): string[] {\n\tconst errors: string[] = [];\n\tif (input === undefined) return errors;\n\tif (input === false) return errors;\n\tif (typeof input === \"string\") {\n\t\tif (!VALID_LEVELS.has(input as AcceptanceLevel)) errors.push(`${pathLabel} has invalid level '${input}'.`);\n\t\telse if (input === \"none\") errors.push(`${pathLabel} level \"none\" requires a reason; use { level: \"none\", reason: \"...\" }.`);\n\t\telse if (input === \"reviewed\") errors.push(`${pathLabel} ${EXPLICIT_REVIEWED_UNAVAILABLE}`);\n\t\treturn errors;\n\t}\n\tif (!input || typeof input !== \"object\" || Array.isArray(input)) {\n\t\terrors.push(`${pathLabel} must be a string level, false, or an object.`);\n\t\treturn errors;\n\t}\n\tconst value = input as Record<string, unknown>;\n\tfor (const key of Object.keys(value)) {\n\t\tif (!ACCEPTANCE_CONFIG_KEYS.has(key)) errors.push(`${pathLabel}.${key} is not supported.`);\n\t}\n\tif (value.level !== undefined && (typeof value.level !== \"string\" || !VALID_LEVELS.has(value.level as AcceptanceLevel))) {\n\t\terrors.push(`${pathLabel}.level must be one of auto, none, attested, checked, verified, reviewed.`);\n\t}\n\tif (value.level === \"none\" && (typeof value.reason !== \"string\" || !value.reason.trim())) {\n\t\terrors.push(`${pathLabel}.reason is required when level is none.`);\n\t}\n\tif (value.level === \"reviewed\") errors.push(`${pathLabel}.level ${EXPLICIT_REVIEWED_UNAVAILABLE}`);\n\tif (value.reason !== undefined && typeof value.reason !== \"string\") errors.push(`${pathLabel}.reason must be a string.`);\n\tif (value.criteria !== undefined && !Array.isArray(value.criteria)) errors.push(`${pathLabel}.criteria must be an array.`);\n\tif (Array.isArray(value.criteria)) {\n\t\tconst criterionIds = new Set<string>();\n\t\tfor (const [index, criterion] of value.criteria.entries()) {\n\t\t\tif (typeof criterion === \"string\") continue;\n\t\t\tconst criterionPath = `${pathLabel}.criteria[${index}]`;\n\t\t\tif (!criterion || typeof criterion !== \"object\" || Array.isArray(criterion)) {\n\t\t\t\terrors.push(`${criterionPath} must be a string or an object.`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst gate = criterion as Record<string, unknown>;\n\t\t\tfor (const key of Object.keys(gate)) {\n\t\t\t\tif (!ACCEPTANCE_GATE_KEYS.has(key)) errors.push(`${criterionPath}.${key} is not supported.`);\n\t\t\t}\n\t\t\tif (typeof gate.id !== \"string\" || !gate.id.trim()) {\n\t\t\t\terrors.push(`${criterionPath}.id is required.`);\n\t\t\t} else {\n\t\t\t\tconst normalizedId = normalizedToken(gate.id);\n\t\t\t\tif (criterionIds.has(normalizedId)) errors.push(`${criterionPath}.id duplicates normalized criterion id '${normalizedId}'.`);\n\t\t\t\tcriterionIds.add(normalizedId);\n\t\t\t}\n\t\t\tif (typeof gate.must !== \"string\" || !gate.must.trim()) errors.push(`${criterionPath}.must is required.`);\n\t\t\tif (gate.evidence !== undefined && !Array.isArray(gate.evidence)) errors.push(`${criterionPath}.evidence must be an array.`);\n\t\t\tif (Array.isArray(gate.evidence)) {\n\t\t\t\tfor (const [evidenceIndex, item] of gate.evidence.entries()) {\n\t\t\t\t\tif (typeof item !== \"string\" || !VALID_EVIDENCE.has(item as AcceptanceEvidenceKind)) {\n\t\t\t\t\t\terrors.push(`${criterionPath}.evidence[${evidenceIndex}] is not a supported evidence kind.`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (gate.severity !== undefined && gate.severity !== \"required\" && gate.severity !== \"recommended\") {\n\t\t\t\terrors.push(`${criterionPath}.severity must be required or recommended.`);\n\t\t\t}\n\t\t}\n\t}\n\tif (Array.isArray(value.evidence)) {\n\t\tfor (const [index, item] of value.evidence.entries()) {\n\t\t\tif (typeof item !== \"string\" || !VALID_EVIDENCE.has(item as AcceptanceEvidenceKind)) {\n\t\t\t\terrors.push(`${pathLabel}.evidence[${index}] is not a supported evidence kind.`);\n\t\t\t}\n\t\t}\n\t} else if (value.evidence !== undefined) {\n\t\terrors.push(`${pathLabel}.evidence must be an array.`);\n\t}\n\tif (value.verify !== undefined && !Array.isArray(value.verify)) errors.push(`${pathLabel}.verify must be an array.`);\n\tif (Array.isArray(value.verify)) {\n\t\tfor (const [index, command] of value.verify.entries()) {\n\t\t\tif (!command || typeof command !== \"object\" || Array.isArray(command)) {\n\t\t\t\terrors.push(`${pathLabel}.verify[${index}] must be an object.`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst cmd = command as Record<string, unknown>;\n\t\t\tfor (const key of Object.keys(cmd)) {\n\t\t\t\tif (!ACCEPTANCE_VERIFY_KEYS.has(key)) errors.push(`${pathLabel}.verify[${index}].${key} is not supported.`);\n\t\t\t}\n\t\t\tif (typeof cmd.id !== \"string\" || !cmd.id.trim()) errors.push(`${pathLabel}.verify[${index}].id is required.`);\n\t\t\tif (typeof cmd.command !== \"string\" || !cmd.command.trim()) errors.push(`${pathLabel}.verify[${index}].command is required.`);\n\t\t\tif (cmd.timeoutMs !== undefined && (typeof cmd.timeoutMs !== \"number\" || !Number.isInteger(cmd.timeoutMs) || cmd.timeoutMs < 1)) {\n\t\t\t\terrors.push(`${pathLabel}.verify[${index}].timeoutMs must be an integer >= 1.`);\n\t\t\t}\n\t\t\tif (cmd.cwd !== undefined && typeof cmd.cwd !== \"string\") errors.push(`${pathLabel}.verify[${index}].cwd must be a string.`);\n\t\t\tif (cmd.env !== undefined) {\n\t\t\t\tif (!cmd.env || typeof cmd.env !== \"object\" || Array.isArray(cmd.env)) {\n\t\t\t\t\terrors.push(`${pathLabel}.verify[${index}].env must be an object.`);\n\t\t\t\t} else {\n\t\t\t\t\tfor (const [envKey, envValue] of Object.entries(cmd.env as Record<string, unknown>)) {\n\t\t\t\t\t\tif (typeof envValue !== \"string\") errors.push(`${pathLabel}.verify[${index}].env.${envKey} must be a string.`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cmd.allowFailure !== undefined && typeof cmd.allowFailure !== \"boolean\") {\n\t\t\t\terrors.push(`${pathLabel}.verify[${index}].allowFailure must be a boolean.`);\n\t\t\t}\n\t\t}\n\t}\n\tif (value.review !== undefined && value.review !== false) {\n\t\tif (!value.review || typeof value.review !== \"object\" || Array.isArray(value.review)) {\n\t\t\terrors.push(`${pathLabel}.review must be false or an object.`);\n\t\t} else {\n\t\t\tconst review = value.review as Record<string, unknown>;\n\t\t\tfor (const key of Object.keys(review)) {\n\t\t\t\tif (!ACCEPTANCE_REVIEW_KEYS.has(key)) errors.push(`${pathLabel}.review.${key} is not supported.`);\n\t\t\t}\n\t\t\tif (review.agent !== undefined && typeof review.agent !== \"string\") errors.push(`${pathLabel}.review.agent must be a string.`);\n\t\t\tif (review.focus !== undefined && typeof review.focus !== \"string\") errors.push(`${pathLabel}.review.focus must be a string.`);\n\t\t\tif (review.required !== undefined && typeof review.required !== \"boolean\") errors.push(`${pathLabel}.review.required must be a boolean.`);\n\t\t}\n\t}\n\tif (value.stopRules !== undefined && !Array.isArray(value.stopRules)) errors.push(`${pathLabel}.stopRules must be an array.`);\n\tif (Array.isArray(value.stopRules)) {\n\t\tfor (const [index, item] of value.stopRules.entries()) {\n\t\t\tif (typeof item !== \"string\") errors.push(`${pathLabel}.stopRules[${index}] must be a string.`);\n\t\t}\n\t}\n\treturn errors;\n}\n\nexport function validateExecutionAcceptance(input: {\n\tacceptance?: unknown;\n\ttasks?: Array<{ acceptance?: unknown }>;\n\tchain?: Array<{\n\t\tacceptance?: unknown;\n\t\tparallel?: Array<{ acceptance?: unknown }> | { acceptance?: unknown };\n\t}>;\n}): string[] {\n\tconst errors = validateAcceptanceInput(input.acceptance, \"acceptance\");\n\tfor (const [index, task] of (input.tasks ?? []).entries()) {\n\t\terrors.push(...validateAcceptanceInput(task.acceptance, `tasks[${index}].acceptance`));\n\t}\n\tfor (const [stepIndex, step] of (input.chain ?? []).entries()) {\n\t\terrors.push(...validateAcceptanceInput(step.acceptance, `chain[${stepIndex}].acceptance`));\n\t\tif (Array.isArray(step.parallel)) {\n\t\t\tfor (const [taskIndex, task] of step.parallel.entries()) {\n\t\t\t\terrors.push(...validateAcceptanceInput(task.acceptance, `chain[${stepIndex}].parallel[${taskIndex}].acceptance`));\n\t\t\t}\n\t\t} else if (step.parallel) {\n\t\t\terrors.push(...validateAcceptanceInput(step.parallel.acceptance, `chain[${stepIndex}].parallel.acceptance`));\n\t\t}\n\t}\n\treturn errors;\n}\n\nfunction normalizeCriteria(criteria: Array<string | { id?: string; must?: string; evidence?: AcceptanceEvidenceKind[]; severity?: \"required\" | \"recommended\" }> | undefined, evidence: AcceptanceEvidenceKind[]): ResolvedAcceptanceGate[] {\n\treturn (criteria ?? []).map((criterion, index) => {\n\t\tif (typeof criterion === \"string\") {\n\t\t\treturn { id: `criterion-${index + 1}`, must: criterion, evidence, severity: \"required\" };\n\t\t}\n\t\treturn {\n\t\t\tid: criterion.id?.trim() || `criterion-${index + 1}`,\n\t\t\tmust: criterion.must ?? \"\",\n\t\t\tevidence: criterion.evidence?.filter((item) => VALID_EVIDENCE.has(item)) ?? evidence,\n\t\t\tseverity: criterion.severity ?? \"required\",\n\t\t};\n\t}).filter((criterion) => criterion.must.trim());\n}\n\nexport function resolveEffectiveAcceptance(input: {\n\texplicit?: AcceptanceInput;\n\tagentName?: string;\n\tpermissions?: \"full\" | \"read-only\";\n\tacceptanceRole?: AcceptanceRole;\n\ttask?: string;\n\tmode?: SubagentRunMode;\n\tasync?: boolean;\n\tdynamic?: boolean;\n\tdynamicGroup?: boolean;\n}): ResolvedAcceptanceConfig {\n\tconst explicit = normalizeAcceptanceInput(input.explicit);\n\tconst inferred = inferLevel(input);\n\tconst explicitLevel = normalizeLevel(explicit.level);\n\tconst level = explicitAcceptanceCanDisable(explicit)\n\t\t? \"none\"\n\t\t: explicitLevel === \"auto\"\n\t\t\t? inferred.level\n\t\t\t: (LEVEL_RANK[explicitLevel] >= LEVEL_RANK[inferred.level] ? explicitLevel : inferred.level);\n\tconst evidence = unique([...(level === inferred.level ? inferred.evidence : requiredEvidenceForLevel(level)), ...(explicit.evidence ?? [])]);\n\tconst criteria = normalizeCriteria(\n\t\t(explicit.criteria?.length ? explicit.criteria : inferred.criteria) as Array<string | { id?: string; must?: string; evidence?: AcceptanceEvidenceKind[]; severity?: \"required\" | \"recommended\" }>,\n\t\tevidence,\n\t);\n\tlet review = explicit.review !== undefined ? explicit.review : inferred.review;\n\tif (level === \"reviewed\" && input.explicit !== undefined && explicitLevel !== \"reviewed\" && explicit.review === undefined && review && review !== false) {\n\t\treview = { ...review, required: false };\n\t}\n\treturn {\n\t\tlevel,\n\t\texplicit: input.explicit !== undefined,\n\t\tinferredReason: inferred.reasons,\n\t\tcriteria,\n\t\tevidence,\n\t\tverify: explicit.verify ?? [],\n\t\treview,\n\t\tstopRules: explicit.stopRules ?? [],\n\t\treason: explicit.reason,\n\t};\n}\n\nexport function formatAcceptancePrompt(acceptance: ResolvedAcceptanceConfig): string {\n\tif (acceptance.level === \"none\") return \"\";\n\tconst lines = [\n\t\t\"\",\n\t\t\"## Acceptance Contract\",\n\t\t`Acceptance level: ${acceptance.level}`,\n\t\t\"Completion is not accepted from prose alone. End with a structured acceptance report.\",\n\t\t\"\",\n\t\t\"Criteria:\",\n\t\t...(acceptance.criteria.length ? acceptance.criteria.map((criterion) => `- ${criterion.id}: ${criterion.must}`) : [\"- Return the requested result.\"]),\n\t\t\"\",\n\t\t`Required evidence: ${acceptance.evidence.join(\", \") || \"none\"}`,\n\t];\n\tif (acceptance.verify.length > 0) {\n\t\tlines.push(\"\", \"Runtime verification commands configured by parent:\");\n\t\tfor (const command of acceptance.verify) lines.push(`- ${command.id}: ${command.command}`);\n\t}\n\tif (acceptance.review && acceptance.review !== false) {\n\t\tlines.push(\"\", `Review gate: ${acceptance.review.required === false ? \"optional\" : \"required\"}${acceptance.review.agent ? ` by ${acceptance.review.agent}` : \"\"}.`);\n\t\tif (acceptance.review.focus) lines.push(`Review focus: ${acceptance.review.focus}`);\n\t}\n\tif (acceptance.stopRules.length > 0) {\n\t\tlines.push(\"\", \"Stop rules:\", ...acceptance.stopRules.map((rule) => `- ${rule}`));\n\t}\n\tlines.push(\n\t\t\"\",\n\t\t\"Finish with a fenced JSON block tagged `acceptance-report` in this shape:\",\n\t\t\"Use empty arrays when no items apply; array fields contain strings unless object entries are shown.\",\n\t\t\"`criteriaSatisfied[].status` must be exactly one of: satisfied, not-satisfied, not-applicable.\",\n\t\t\"`commandsRun[].result` must be exactly one of: passed, failed, not-run.\",\n\t\t\"`manualNotes` and `notes` are optional strings; an empty string means no note and does not satisfy `manual-notes` evidence.\",\n\t\t\"```acceptance-report\",\n\t\tJSON.stringify({\n\t\t\tcriteriaSatisfied: acceptance.criteria\n\t\t\t\t.filter((criterion) => criterion.severity !== \"recommended\")\n\t\t\t\t.map((criterion) => ({ id: criterion.id, status: \"satisfied\", evidence: \"specific proof\" })),\n\t\t\tchangedFiles: [\"src/file.ts\"],\n\t\t\ttestsAddedOrUpdated: [\"test/file.test.ts\"],\n\t\t\tcommandsRun: [{ command: \"command\", result: \"passed\", summary: \"short result\" }],\n\t\t\tvalidationOutput: [\"validation output or concise summary\"],\n\t\t\tresidualRisks: [\"none\"],\n\t\t\tnoStagedFiles: true,\n\t\t\tdiffSummary: \"short description of the diff\",\n\t\t\treviewFindings: [\"blocker: file.ts:12 - issue found, or no blockers\"],\n\t\t\tmanualNotes: \"anything else the parent should know\",\n\t\t}, null, 2),\n\t\t\"```\",\n\t);\n\treturn lines.join(\"\\n\");\n}\n\nfunction extractBalancedJson(text: string, start: number): string | undefined {\n\tlet depth = 0;\n\tlet inString = false;\n\tlet escaped = false;\n\tfor (let i = start; i < text.length; i++) {\n\t\tconst char = text[i]!;\n\t\tif (inString) {\n\t\t\tif (escaped) escaped = false;\n\t\t\telse if (char === \"\\\\\") escaped = true;\n\t\t\telse if (char === \"\\\"\") inString = false;\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === \"\\\"\") {\n\t\t\tinString = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === \"{\") depth++;\n\t\tif (char === \"}\") {\n\t\t\tdepth--;\n\t\t\tif (depth === 0) return text.slice(start, i + 1);\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst ACCEPTANCE_REPORT_WRAPPERS = new Set([\"acceptance\", \"acceptance-report\", \"acceptance_report\", \"acceptanceReport\"]);\n\nconst ACCEPTANCE_REPORT_FIELDS: Record<string, keyof AcceptanceReport> = {\n\tcriteriaSatisfied: \"criteriaSatisfied\",\n\tcriteria_satisfied: \"criteriaSatisfied\",\n\tchangedFiles: \"changedFiles\",\n\tchanged_files: \"changedFiles\",\n\ttestsAddedOrUpdated: \"testsAddedOrUpdated\",\n\ttests_added_or_updated: \"testsAddedOrUpdated\",\n\tcommandsRun: \"commandsRun\",\n\tcommands_run: \"commandsRun\",\n\tvalidationOutput: \"validationOutput\",\n\tvalidation_output: \"validationOutput\",\n\tresidualRisks: \"residualRisks\",\n\tresidual_risks: \"residualRisks\",\n\tnoStagedFiles: \"noStagedFiles\",\n\tno_staged_files: \"noStagedFiles\",\n\tdiffSummary: \"diffSummary\",\n\tdiff_summary: \"diffSummary\",\n\treviewFindings: \"reviewFindings\",\n\treview_findings: \"reviewFindings\",\n\tmanualNotes: \"manualNotes\",\n\tmanual_notes: \"manualNotes\",\n\tnotes: \"notes\",\n};\n\nconst CRITERION_REPORT_FIELDS = new Set([\"id\", \"status\", \"evidence\"]);\nconst COMMAND_REPORT_FIELDS = new Set([\"command\", \"result\", \"summary\"]);\n\nfunction normalizedToken(value: string): string {\n\treturn value.trim().toLowerCase().replace(/[\\s_]+/g, \"-\").replace(/-+/g, \"-\");\n}\n\nfunction normalizeCriterionStatus(value: unknown): unknown {\n\tif (typeof value !== \"string\") return value;\n\tconst token = normalizedToken(value);\n\tif ([\"satisfied\", \"met\", \"complete\", \"completed\", \"done\", \"pass\", \"passed\", \"success\", \"succeeded\"].includes(token)) return \"satisfied\";\n\tif ([\"not-satisfied\", \"not-met\", \"unmet\", \"incomplete\", \"fail\", \"failed\"].includes(token)) return \"not-satisfied\";\n\tif ([\"not-applicable\", \"n-a\", \"na\", \"skip\", \"skipped\"].includes(token)) return \"not-applicable\";\n\treturn value;\n}\n\nfunction normalizeCommandResult(value: unknown): unknown {\n\tif (typeof value !== \"string\") return value;\n\tconst token = normalizedToken(value);\n\tif ([\"passed\", \"pass\", \"success\", \"successful\", \"succeeded\", \"ok\"].includes(token)) return \"passed\";\n\tif ([\"failed\", \"fail\", \"failure\", \"error\"].includes(token)) return \"failed\";\n\tif ([\"not-run\", \"not-executed\", \"skip\", \"skipped\"].includes(token)) return \"not-run\";\n\treturn value;\n}\n\nfunction normalizeCriterionReport(value: unknown, pathLabel: string, errors: string[]): unknown {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return value;\n\tconst normalized: Record<string, unknown> = {};\n\tfor (const [key, fieldValue] of Object.entries(value as Record<string, unknown>)) {\n\t\tif (!CRITERION_REPORT_FIELDS.has(key)) {\n\t\t\terrors.push(`${pathLabel}.${key}: unsupported acceptance criterion field`);\n\t\t\tcontinue;\n\t\t}\n\t\tnormalized[key] = key === \"id\" && typeof fieldValue === \"string\"\n\t\t\t? normalizedToken(fieldValue)\n\t\t\t: key === \"status\"\n\t\t\t\t? normalizeCriterionStatus(fieldValue)\n\t\t\t\t: fieldValue;\n\t}\n\treturn normalized;\n}\n\nfunction normalizeCommandReport(value: unknown, pathLabel: string, errors: string[]): unknown {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return value;\n\tconst normalized: Record<string, unknown> = {};\n\tfor (const [key, fieldValue] of Object.entries(value as Record<string, unknown>)) {\n\t\tif (!COMMAND_REPORT_FIELDS.has(key)) {\n\t\t\terrors.push(`${pathLabel}.${key}: unsupported acceptance command field`);\n\t\t\tcontinue;\n\t\t}\n\t\tnormalized[key] = key === \"result\" ? normalizeCommandResult(fieldValue) : fieldValue;\n\t}\n\treturn normalized;\n}\n\nfunction normalizeAcceptanceReportValue(value: unknown, pathLabel = \"\"): { value: unknown; pathLabel: string; errors: string[] } {\n\tconst errors: string[] = [];\n\tlet reportValue = value;\n\tlet reportPath = pathLabel;\n\tif (reportValue && typeof reportValue === \"object\" && !Array.isArray(reportValue)) {\n\t\tconst record = reportValue as Record<string, unknown>;\n\t\tconst wrapperKeys = Object.keys(record).filter((key) => ACCEPTANCE_REPORT_WRAPPERS.has(key));\n\t\tif (wrapperKeys.length > 0) {\n\t\t\tconst wrapperKey = wrapperKeys[0]!;\n\t\t\tif (wrapperKeys.length > 1) errors.push(`${pathLabel || \"acceptance-report\"}: multiple acceptance report wrappers are ambiguous`);\n\t\t\tfor (const key of Object.keys(record)) {\n\t\t\t\tif (key !== wrapperKey) errors.push(`${pathFor(pathLabel, key)}: unsupported alongside acceptance report wrapper '${wrapperKey}'`);\n\t\t\t}\n\t\t\treportValue = record[wrapperKey];\n\t\t\treportPath = pathFor(pathLabel, wrapperKey);\n\t\t}\n\t}\n\tif (!reportValue || typeof reportValue !== \"object\" || Array.isArray(reportValue)) return { value: reportValue, pathLabel: reportPath, errors };\n\n\tconst normalized: Record<string, unknown> = {};\n\tfor (const [key, fieldValue] of Object.entries(reportValue as Record<string, unknown>)) {\n\t\tconst canonical = ACCEPTANCE_REPORT_FIELDS[key];\n\t\tif (!canonical) {\n\t\t\terrors.push(`${pathFor(reportPath, key)}: unsupported acceptance report field`);\n\t\t\tcontinue;\n\t\t}\n\t\tif (Object.hasOwn(normalized, canonical)) {\n\t\t\terrors.push(`${pathFor(reportPath, key)}: duplicates normalized field '${canonical}'`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst fieldPath = pathFor(reportPath, canonical);\n\t\tswitch (canonical) {\n\t\t\tcase \"criteriaSatisfied\": {\n\t\t\t\tconst items = Array.isArray(fieldValue) ? fieldValue : fieldValue && typeof fieldValue === \"object\" ? [fieldValue] : fieldValue;\n\t\t\t\tnormalized[canonical] = Array.isArray(items)\n\t\t\t\t\t? items.map((item, index) => normalizeCriterionReport(item, `${fieldPath}[${index}]`, errors))\n\t\t\t\t\t: items;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"commandsRun\": {\n\t\t\t\tconst items = Array.isArray(fieldValue) ? fieldValue : fieldValue && typeof fieldValue === \"object\" ? [fieldValue] : fieldValue;\n\t\t\t\tnormalized[canonical] = Array.isArray(items)\n\t\t\t\t\t? items.map((item, index) => normalizeCommandReport(item, `${fieldPath}[${index}]`, errors))\n\t\t\t\t\t: items;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"changedFiles\":\n\t\t\tcase \"testsAddedOrUpdated\":\n\t\t\tcase \"validationOutput\":\n\t\t\tcase \"residualRisks\":\n\t\t\tcase \"reviewFindings\":\n\t\t\t\tnormalized[canonical] = typeof fieldValue === \"string\" ? [fieldValue] : fieldValue;\n\t\t\t\tbreak;\n\t\t\tcase \"noStagedFiles\": {\n\t\t\t\tconst token = typeof fieldValue === \"string\" ? fieldValue.trim().toLowerCase() : undefined;\n\t\t\t\tnormalized[canonical] = token === \"true\" ? true : token === \"false\" ? false : fieldValue;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tnormalized[canonical] = fieldValue;\n\t\t}\n\t}\n\treturn { value: normalized, pathLabel: reportPath, errors };\n}\n\nfunction hasGenericAcceptanceReportSignal(value: unknown): boolean {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n\tconst record = value as Record<string, unknown>;\n\treturn \"criteriaSatisfied\" in record && [\n\t\t\"changedFiles\",\n\t\t\"testsAddedOrUpdated\",\n\t\t\"commandsRun\",\n\t\t\"validationOutput\",\n\t\t\"residualRisks\",\n\t\t\"noStagedFiles\",\n\t\t\"diffSummary\",\n\t\t\"reviewFindings\",\n\t\t\"manualNotes\",\n\t].some((key) => key in record);\n}\n\nfunction parseReportJson(body: string): unknown {\n\tconst trimmed = body.trim();\n\ttry {\n\t\treturn JSON.parse(trimmed) as unknown;\n\t} catch (error) {\n\t\tconst jsonStart = trimmed.indexOf(\"{\");\n\t\tif (jsonStart > 0) {\n\t\t\tconst json = extractBalancedJson(trimmed, jsonStart);\n\t\t\tif (json) return JSON.parse(json) as unknown;\n\t\t}\n\t\tthrow error;\n\t}\n}\n\nfunction fencedBlocks(output: string, tag: string): string[] {\n\treturn [...output.matchAll(new RegExp(`\\`\\`\\`${tag}\\\\s*\\\\n([\\\\s\\\\S]*?)\\`\\`\\``, \"gi\"))]\n\t\t.map((match) => match[1]?.trim())\n\t\t.filter((value): value is string => Boolean(value));\n}\n\nfunction parseAcceptanceReportBody(body: string): { report?: AcceptanceReport; errors: string[] } {\n\treturn validateAcceptanceReport(parseReportJson(body));\n}\n\nfunction parseGenericJsonAcceptanceReportBody(body: string): { report?: AcceptanceReport; error?: string } {\n\tconst parsed = parseReportJson(body);\n\tconst normalized = normalizeAcceptanceReportValue(parsed);\n\tconst hasCriteriaMarker = normalized.value !== null\n\t\t&& typeof normalized.value === \"object\"\n\t\t&& !Array.isArray(normalized.value)\n\t\t&& \"criteriaSatisfied\" in normalized.value;\n\tif (!hasGenericAcceptanceReportSignal(normalized.value) && !(hasCriteriaMarker && normalized.errors.length > 0)) return {};\n\tconst validation = validateAcceptanceReport(parsed);\n\treturn validation.report\n\t\t? { report: validation.report }\n\t\t: { error: `Invalid acceptance-report: ${validation.errors.join(\"; \")}` };\n}\n\nexport const ACCEPTANCE_REPORT_NOT_FOUND = \"Structured acceptance report not found.\";\n\nexport function parseAcceptanceReport(output: string): { report?: AcceptanceReport; error?: string } {\n\tconst explicitFencePresent = /```acceptance[-_]report\\b/i.test(output);\n\tconst fenced = fencedBlocks(output, \"acceptance[-_]report\");\n\tconst parseErrors: string[] = [];\n\tfor (const body of fenced) {\n\t\ttry {\n\t\t\tconst validation = parseAcceptanceReportBody(body);\n\t\t\tif (validation.report) return { report: validation.report };\n\t\t\tparseErrors.push(`Invalid acceptance-report: ${validation.errors.join(\"; \")}`);\n\t\t} catch (error) {\n\t\t\tparseErrors.push(error instanceof Error ? error.message : String(error));\n\t\t}\n\t}\n\tif (parseErrors.length > 0) return { error: `Failed to parse acceptance-report: ${parseErrors.join(\"; \")}` };\n\tif (explicitFencePresent) {\n\t\treturn { error: \"Failed to parse acceptance-report: Empty or unterminated acceptance-report fence.\" };\n\t}\n\tfor (const body of fencedBlocks(output, \"(?:json|jsonc|json5)\")) {\n\t\ttry {\n\t\t\tconst parsed = parseGenericJsonAcceptanceReportBody(body);\n\t\t\tif (parsed.report) return { report: parsed.report };\n\t\t\tif (parsed.error) return { error: `Failed to parse acceptance-report: ${parsed.error}` };\n\t\t} catch {\n\t\t\t// Ignore unrelated malformed generic JSON. A recognizable report shape\n\t\t\t// returns exact validation errors above instead of being mistaken for prose.\n\t\t}\n\t}\n\tconst markerIndex = output.search(/ACCEPTANCE_REPORT\\s*:/i);\n\tif (markerIndex !== -1) {\n\t\tconst jsonStart = output.indexOf(\"{\", markerIndex);\n\t\tif (jsonStart === -1) {\n\t\t\treturn { error: \"Failed to parse acceptance-report: Expected a JSON object after ACCEPTANCE_REPORT:.\" };\n\t\t}\n\t\tconst json = extractBalancedJson(output, jsonStart);\n\t\tif (!json) {\n\t\t\treturn { error: \"Failed to parse acceptance-report: Unterminated JSON object after ACCEPTANCE_REPORT:.\" };\n\t\t}\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(json) as unknown;\n\t\t\tconst validation = validateAcceptanceReport(parsed);\n\t\t\tif (validation.report) return { report: validation.report };\n\t\t\treturn { error: `Failed to parse acceptance-report: Invalid acceptance-report: ${validation.errors.join(\"; \")}` };\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\treturn { error: `Failed to parse acceptance-report: ${message}` };\n\t\t}\n\t}\n\treturn { error: ACCEPTANCE_REPORT_NOT_FOUND };\n}\n\nfunction parseAcceptanceReportSources(\n\toutput: string,\n\tfileOutput: { content: string; path: string; authoritative?: boolean } | undefined,\n): { report?: AcceptanceReport; error?: string } {\n\tconst fromText = () => parseAcceptanceReport(output);\n\tconst fromFile = () => {\n\t\tif (!fileOutput) return { error: ACCEPTANCE_REPORT_NOT_FOUND };\n\t\tconst parsed = parseAcceptanceReport(fileOutput.content);\n\t\treturn parsed.report || parsed.error === ACCEPTANCE_REPORT_NOT_FOUND\n\t\t\t? parsed\n\t\t\t: { error: `${parsed.error} (in configured output ${fileOutput.path})` };\n\t};\n\tconst [primary, secondary] = fileOutput?.authoritative ? [fromFile, fromText] : [fromText, fromFile];\n\tconst first = primary();\n\t// A malformed report in the primary source is a defect to surface, not a\n\t// miss to paper over with the secondary source; only a genuinely absent\n\t// report falls through.\n\tif (first.report || first.error !== ACCEPTANCE_REPORT_NOT_FOUND) return first;\n\treturn secondary();\n}\n\nexport function stripAcceptanceReport(output: string): string {\n\tconst trailingFencePattern = /\\n?```(acceptance[-_]report|json|jsonc|json5)\\s*\\n([\\s\\S]*?)```\\s*/gi;\n\tlet trailingFence: { index: number; tag: string; body: string } | undefined;\n\tfor (const match of output.matchAll(trailingFencePattern)) {\n\t\tconst end = (match.index ?? 0) + match[0].length;\n\t\tif (output.slice(end).trim().length === 0 && match[1] && match[2]) {\n\t\t\ttrailingFence = { index: match.index ?? 0, tag: match[1].toLowerCase(), body: match[2] };\n\t\t}\n\t}\n\tif (trailingFence) {\n\t\tif (trailingFence.tag === \"acceptance-report\" || trailingFence.tag === \"acceptance_report\") return output.slice(0, trailingFence.index).trimEnd();\n\t\ttry {\n\t\t\tif (parseGenericJsonAcceptanceReportBody(trailingFence.body).report) return output.slice(0, trailingFence.index).trimEnd();\n\t\t} catch {\n\t\t\t// Leave unrelated or malformed generic JSON fences visible.\n\t\t}\n\t}\n\treturn output\n\t\t.replace(/\\n?```acceptance[-_]report\\s*\\n[\\s\\S]*?```\\s*$/i, \"\")\n\t\t.replace(/\\n?ACCEPTANCE_REPORT\\s*:\\s*\\{[\\s\\S]*\\}\\s*$/i, \"\")\n\t\t.trimEnd();\n}\n\nfunction isStringArray(value: unknown): value is string[] {\n\treturn Array.isArray(value) && value.every((item) => typeof item === \"string\");\n}\n\nfunction pathFor(base: string, segment: string): string {\n\treturn base ? `${base}.${segment}` : segment;\n}\n\nfunction describeValidationValue(value: unknown): string {\n\tif (value === undefined) return \"missing\";\n\tif (value === null) return \"null\";\n\tif (Array.isArray(value)) return \"array\";\n\tif (typeof value === \"object\") return \"object\";\n\tif (typeof value === \"string\") {\n\t\tconst short = value.length > 80 ? `${value.slice(0, 77)}...` : value;\n\t\treturn JSON.stringify(short);\n\t}\n\treturn `${typeof value} ${String(value)}`;\n}\n\nfunction pushTypeError(errors: string[], pathLabel: string, expected: string, value: unknown): void {\n\terrors.push(`${pathLabel}: expected ${expected}; got ${describeValidationValue(value)}`);\n}\n\nfunction validateStringArrayField(errors: string[], value: unknown, pathLabel: string): void {\n\tif (!Array.isArray(value)) {\n\t\tpushTypeError(errors, pathLabel, \"string[]\", value);\n\t\treturn;\n\t}\n\tfor (const [index, item] of value.entries()) {\n\t\tif (typeof item !== \"string\" || !item.trim()) pushTypeError(errors, `${pathLabel}[${index}]`, \"non-empty string\", item);\n\t}\n}\n\nfunction validateAcceptanceReport(value: unknown, pathLabel = \"\"): { report?: AcceptanceReport; errors: string[] } {\n\tconst normalized = normalizeAcceptanceReportValue(value, pathLabel);\n\tvalue = normalized.value;\n\tpathLabel = normalized.pathLabel;\n\tconst errors = normalized.errors;\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\tpushTypeError(errors, pathLabel || \"acceptance-report\", \"object\", value);\n\t\treturn { errors };\n\t}\n\tconst report = value as AcceptanceReport;\n\tif (report.criteriaSatisfied !== undefined) {\n\t\tif (!Array.isArray(report.criteriaSatisfied)) {\n\t\t\tpushTypeError(errors, pathFor(pathLabel, \"criteriaSatisfied\"), \"array\", report.criteriaSatisfied);\n\t\t} else {\n\t\t\tconst criterionIds = new Set<string>();\n\t\t\tfor (const [index, item] of report.criteriaSatisfied.entries()) {\n\t\t\t\tconst itemPath = `${pathFor(pathLabel, \"criteriaSatisfied\")}[${index}]`;\n\t\t\t\tif (!item || typeof item !== \"object\" || Array.isArray(item)) {\n\t\t\t\t\tpushTypeError(errors, itemPath, \"object\", item);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst criterion = item as { id?: unknown; status?: unknown; evidence?: unknown };\n\t\t\t\tif (criterion.id !== undefined && typeof criterion.id !== \"string\") {\n\t\t\t\t\tpushTypeError(errors, `${itemPath}.id`, \"string\", criterion.id);\n\t\t\t\t} else if (typeof criterion.id === \"string\" && criterion.id) {\n\t\t\t\t\tif (criterionIds.has(criterion.id)) errors.push(`${itemPath}.id: duplicate normalized criterion id '${criterion.id}'`);\n\t\t\t\t\tcriterionIds.add(criterion.id);\n\t\t\t\t}\n\t\t\t\tif (criterion.status !== \"satisfied\" && criterion.status !== \"not-satisfied\" && criterion.status !== \"not-applicable\") {\n\t\t\t\t\tpushTypeError(errors, `${itemPath}.status`, \"one of \\\"satisfied\\\", \\\"not-satisfied\\\", \\\"not-applicable\\\"\", criterion.status);\n\t\t\t\t}\n\t\t\t\tif (typeof criterion.evidence !== \"string\" || !criterion.evidence.trim()) pushTypeError(errors, `${itemPath}.evidence`, \"non-empty string\", criterion.evidence);\n\t\t\t}\n\t\t}\n\t}\n\tif (report.changedFiles !== undefined) validateStringArrayField(errors, report.changedFiles, pathFor(pathLabel, \"changedFiles\"));\n\tif (report.testsAddedOrUpdated !== undefined) validateStringArrayField(errors, report.testsAddedOrUpdated, pathFor(pathLabel, \"testsAddedOrUpdated\"));\n\tif (report.commandsRun !== undefined) {\n\t\tif (!Array.isArray(report.commandsRun)) {\n\t\t\tpushTypeError(errors, pathFor(pathLabel, \"commandsRun\"), \"array\", report.commandsRun);\n\t\t} else {\n\t\t\tfor (const [index, item] of report.commandsRun.entries()) {\n\t\t\t\tconst itemPath = `${pathFor(pathLabel, \"commandsRun\")}[${index}]`;\n\t\t\t\tif (!item || typeof item !== \"object\" || Array.isArray(item)) {\n\t\t\t\t\tpushTypeError(errors, itemPath, \"object\", item);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst command = item as { command?: unknown; result?: unknown; summary?: unknown };\n\t\t\t\tif (typeof command.command !== \"string\" || !command.command.trim()) pushTypeError(errors, `${itemPath}.command`, \"non-empty string\", command.command);\n\t\t\t\tif (command.result !== \"passed\" && command.result !== \"failed\" && command.result !== \"not-run\") {\n\t\t\t\t\tpushTypeError(errors, `${itemPath}.result`, \"one of \\\"passed\\\", \\\"failed\\\", \\\"not-run\\\"\", command.result);\n\t\t\t\t}\n\t\t\t\tif (typeof command.summary !== \"string\" || !command.summary.trim()) pushTypeError(errors, `${itemPath}.summary`, \"non-empty string\", command.summary);\n\t\t\t}\n\t\t}\n\t}\n\tif (report.validationOutput !== undefined) validateStringArrayField(errors, report.validationOutput, pathFor(pathLabel, \"validationOutput\"));\n\tif (report.residualRisks !== undefined) validateStringArrayField(errors, report.residualRisks, pathFor(pathLabel, \"residualRisks\"));\n\tif (report.noStagedFiles !== undefined && typeof report.noStagedFiles !== \"boolean\") pushTypeError(errors, pathFor(pathLabel, \"noStagedFiles\"), \"boolean\", report.noStagedFiles);\n\tif (report.diffSummary !== undefined && (typeof report.diffSummary !== \"string\" || !report.diffSummary.trim())) pushTypeError(errors, pathFor(pathLabel, \"diffSummary\"), \"non-empty string\", report.diffSummary);\n\tif (report.reviewFindings !== undefined) validateStringArrayField(errors, report.reviewFindings, pathFor(pathLabel, \"reviewFindings\"));\n\tif (report.manualNotes !== undefined && typeof report.manualNotes !== \"string\") pushTypeError(errors, pathFor(pathLabel, \"manualNotes\"), \"string\", report.manualNotes);\n\tif (report.notes !== undefined && typeof report.notes !== \"string\") pushTypeError(errors, pathFor(pathLabel, \"notes\"), \"string\", report.notes);\n\tif (errors.length > 0) return { errors };\n\tconst hasReportField = report.criteriaSatisfied !== undefined\n\t\t|| report.changedFiles !== undefined\n\t\t|| report.testsAddedOrUpdated !== undefined\n\t\t|| report.commandsRun !== undefined\n\t\t|| report.validationOutput !== undefined\n\t\t|| report.residualRisks !== undefined\n\t\t|| report.noStagedFiles !== undefined\n\t\t|| report.diffSummary !== undefined\n\t\t|| report.manualNotes !== undefined\n\t\t|| report.notes !== undefined\n\t\t|| report.reviewFindings !== undefined;\n\treturn hasReportField\n\t\t? { report, errors }\n\t\t: { errors: [`${pathLabel || \"acceptance-report\"}: expected at least one acceptance report field`] };\n}\n\nfunction checkCriteriaSatisfied(criteria: ResolvedAcceptanceGate[], report: AcceptanceReport): AcceptanceRuntimeCheck[] {\n\tconst reports = new Map((report.criteriaSatisfied ?? []).filter((item) => item.id).map((item) => [normalizedToken(item.id!), item]));\n\treturn criteria.filter((criterion) => criterion.severity !== \"recommended\").map((criterion) => {\n\t\tconst item = reports.get(normalizedToken(criterion.id));\n\t\tif (!item) return { id: `criterion:${criterion.id}`, status: \"failed\", message: `Required criterion '${criterion.id}' was not reported.` };\n\t\tif (item.status !== \"satisfied\") return { id: `criterion:${criterion.id}`, status: \"failed\", message: `Required criterion '${criterion.id}' was reported as ${item.status}.` };\n\t\treturn { id: `criterion:${criterion.id}`, status: \"passed\", message: `Required criterion '${criterion.id}' satisfied.` };\n\t});\n}\n\nfunction reportEvidenceStatus(report: AcceptanceReport, kind: AcceptanceEvidenceKind): AcceptanceRuntimeCheckStatus {\n\tswitch (kind) {\n\t\tcase \"changed-files\":\n\t\t\tif (!isStringArray(report.changedFiles)) return \"failed\";\n\t\t\treturn report.changedFiles.length === 0 ? \"not-applicable\" : \"passed\";\n\t\tcase \"tests-added\":\n\t\t\tif (!isStringArray(report.testsAddedOrUpdated)) return \"failed\";\n\t\t\treturn report.testsAddedOrUpdated.length === 0 ? \"not-applicable\" : \"passed\";\n\t\tcase \"commands-run\": return Array.isArray(report.commandsRun) && report.commandsRun.length > 0 ? \"passed\" : \"failed\";\n\t\tcase \"validation-output\": return isStringArray(report.validationOutput) && report.validationOutput.length > 0 ? \"passed\" : \"failed\";\n\t\tcase \"residual-risks\": return isStringArray(report.residualRisks) ? \"passed\" : \"failed\";\n\t\tcase \"no-staged-files\": return report.noStagedFiles === true ? \"passed\" : \"failed\";\n\t\tcase \"diff-summary\": return typeof report.diffSummary === \"string\" && report.diffSummary.trim().length > 0 ? \"passed\" : \"failed\";\n\t\tcase \"review-findings\": return isStringArray(report.reviewFindings) ? \"passed\" : \"failed\";\n\t\tcase \"manual-notes\": return Boolean((report.manualNotes ?? report.notes)?.trim()) ? \"passed\" : \"failed\";\n\t}\n}\n\nfunction checkNoStagedFiles(cwd: string): AcceptanceRuntimeCheck {\n\tconst result = spawnSync(\"git\", [\"status\", \"--short\"], { cwd, encoding: \"utf-8\" });\n\tif (result.status !== 0) {\n\t\treturn { id: \"no-staged-files\", status: \"not-applicable\", message: \"git status unavailable; no staged-files check skipped\" };\n\t}\n\tconst staged = result.stdout.split(/\\r?\\n/).filter((line) => line.length >= 2 && line[0] !== \" \" && line[0] !== \"?\");\n\treturn staged.length === 0\n\t\t? { id: \"no-staged-files\", status: \"passed\", message: \"No staged files detected.\" }\n\t\t: { id: \"no-staged-files\", status: \"failed\", message: `Staged files present: ${staged.join(\", \")}` };\n}\n\nfunction runStructuralChecks(acceptance: ResolvedAcceptanceConfig, report: AcceptanceReport, cwd: string): AcceptanceRuntimeCheck[] {\n\tconst checks: AcceptanceRuntimeCheck[] = [];\n\tfor (const kind of acceptance.evidence) {\n\t\tconst status = reportEvidenceStatus(report, kind);\n\t\tchecks.push({\n\t\t\tid: `evidence:${kind}`,\n\t\t\tstatus,\n\t\t\tmessage: status === \"passed\"\n\t\t\t\t? `${kind} evidence present.`\n\t\t\t\t: status === \"not-applicable\"\n\t\t\t\t\t? `${kind} evidence explicitly reported as not applicable.`\n\t\t\t\t\t: `${kind} evidence missing from child report.`,\n\t\t});\n\t}\n\tif (acceptance.evidence.includes(\"no-staged-files\")) checks.push(checkNoStagedFiles(cwd));\n\treturn checks;\n}\n\nfunction trimOutput(value: string): string | undefined {\n\tconst trimmed = value.trim();\n\tif (!trimmed) return undefined;\n\treturn trimmed.length > 12_000 ? `${trimmed.slice(0, 12_000)}\\n...[truncated]` : trimmed;\n}\n\nfunction uniqueStrings(items: Array<string | undefined>): string[] {\n\treturn unique(items.map((item) => item?.trim()).filter((item): item is string => Boolean(item)));\n}\n\nexport function aggregateAcceptanceReport(input: {\n\tresults: Array<Pick<SingleResult, \"agent\" | \"acceptance\" | \"error\" | \"exitCode\">>;\n\tnotes?: string;\n}): AcceptanceReport {\n\tconst childReports = input.results.map((result) => result.acceptance?.childReport).filter((report): report is AcceptanceReport => Boolean(report));\n\tconst blockers = input.results.filter((result) => result.exitCode !== 0 || result.acceptance?.status === \"rejected\");\n\tconst successfulChildren = input.results.length > 0 && blockers.length === 0;\n\treturn {\n\t\tcriteriaSatisfied: [\n\t\t\t{ id: \"criterion-1\", status: successfulChildren ? \"satisfied\" : \"not-satisfied\", evidence: successfulChildren ? `All ${input.results.length} dynamic child run(s) completed without child or acceptance blockers.` : \"Dynamic fanout produced no accepted child evidence.\" },\n\t\t\t{ id: \"criterion-2\", status: successfulChildren ? \"satisfied\" : \"not-satisfied\", evidence: successfulChildren ? \"Collected child acceptance evidence for aggregate review.\" : \"Dynamic fanout produced no aggregate review evidence.\" },\n\t\t\t...input.results.map((result, index) => ({\n\t\t\t\tid: `child-${index + 1}`,\n\t\t\t\tstatus: result.exitCode === 0 && result.acceptance?.status !== \"rejected\" ? \"satisfied\" : \"not-satisfied\",\n\t\t\t\tevidence: `${result.agent}: acceptance ${result.acceptance?.status ?? \"unreported\"}${result.error ? ` (${result.error})` : \"\"}`,\n\t\t\t})),\n\t\t],\n\t\tchangedFiles: uniqueStrings(childReports.flatMap((report) => report.changedFiles ?? [])),\n\t\ttestsAddedOrUpdated: uniqueStrings(childReports.flatMap((report) => report.testsAddedOrUpdated ?? [])),\n\t\tcommandsRun: childReports.flatMap((report) => report.commandsRun ?? []),\n\t\tvalidationOutput: uniqueStrings(childReports.flatMap((report) => report.validationOutput ?? [])),\n\t\tresidualRisks: uniqueStrings([\n\t\t\t...childReports.flatMap((report) => report.residualRisks ?? []),\n\t\t\t...blockers.map((result) => `${result.agent}: ${result.error ?? \"child or acceptance gate failed\"}`),\n\t\t]),\n\t\tnoStagedFiles: childReports.length > 0 && childReports.every((report) => report.noStagedFiles === true),\n\t\treviewFindings: uniqueStrings(childReports.flatMap((report) => report.reviewFindings ?? [])),\n\t\tmanualNotes: input.notes ?? `Aggregated acceptance evidence from ${input.results.length} dynamic fanout child run(s).`,\n\t\tnotes: input.notes,\n\t};\n}\n\nfunction runVerifyCommand(command: AcceptanceVerifyCommand, defaultCwd: string, options: { signal?: AbortSignal; abortMessage?: string } = {}): Promise<AcceptanceVerifyResult> {\n\treturn new Promise((resolve) => {\n\t\tconst startedAt = Date.now();\n\t\tconst cwd = command.cwd ? path.resolve(defaultCwd, command.cwd) : defaultCwd;\n\t\tlet stdout = \"\";\n\t\tlet stderr = \"\";\n\t\tlet timedOut = false;\n\t\tlet settled = false;\n\t\tlet hardKill: NodeJS.Timeout | undefined;\n\t\tconst child = spawn(command.command, {\n\t\t\tcwd,\n\t\t\tenv: { ...process.env, ...(command.env ?? {}) },\n\t\t\tshell: true,\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t\twindowsHide: true,\n\t\t});\n\t\tconst finish = (result: Omit<AcceptanceVerifyResult, \"id\" | \"command\" | \"cwd\" | \"durationMs\">) => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tclearTimeout(timeout);\n\t\t\tif (hardKill) clearTimeout(hardKill);\n\t\t\toptions.signal?.removeEventListener(\"abort\", abortVerification);\n\t\t\tresolve({\n\t\t\t\tid: command.id,\n\t\t\t\tcommand: command.command,\n\t\t\t\tcwd,\n\t\t\t\tdurationMs: Date.now() - startedAt,\n\t\t\t\t...result,\n\t\t\t});\n\t\t};\n\t\tconst abortVerification = () => {\n\t\t\tif (settled || timedOut) return;\n\t\t\ttimedOut = true;\n\t\t\tchild.kill(\"SIGTERM\");\n\t\t\thardKill = setTimeout(() => {\n\t\t\t\tchild.kill(\"SIGKILL\");\n\t\t\t\tfinish({\n\t\t\t\t\texitCode: null,\n\t\t\t\t\tstatus: \"timed-out\",\n\t\t\t\t\tstdout: trimOutput(stdout),\n\t\t\t\t\tstderr: trimOutput(stderr || options.abortMessage || \"Acceptance verification timed out.\"),\n\t\t\t\t});\n\t\t\t}, 1000);\n\t\t\thardKill.unref?.();\n\t\t};\n\t\tconst timeout = setTimeout(abortVerification, command.timeoutMs ?? 120_000);\n\t\ttimeout.unref?.();\n\t\tif (options.signal?.aborted) abortVerification();\n\t\telse options.signal?.addEventListener(\"abort\", abortVerification, { once: true });\n\t\tchild.stdout.on(\"data\", (chunk: Buffer) => {\n\t\t\tstdout += chunk.toString();\n\t\t});\n\t\tchild.stderr.on(\"data\", (chunk: Buffer) => {\n\t\t\tstderr += chunk.toString();\n\t\t});\n\t\tchild.on(\"close\", (exitCode) => {\n\t\t\tconst passed = exitCode === 0 && !timedOut;\n\t\t\tfinish({\n\t\t\t\texitCode,\n\t\t\t\tstatus: timedOut ? \"timed-out\" : passed ? \"passed\" : command.allowFailure ? \"allowed-failure\" : \"failed\",\n\t\t\t\tstdout: trimOutput(stdout),\n\t\t\t\tstderr: trimOutput(stderr || (timedOut ? options.abortMessage ?? \"\" : \"\")),\n\t\t\t});\n\t\t});\n\t\tchild.on(\"error\", (error) => {\n\t\t\tfinish({\n\t\t\t\texitCode: timedOut ? null : 1,\n\t\t\t\tstatus: timedOut ? \"timed-out\" : command.allowFailure ? \"allowed-failure\" : \"failed\",\n\t\t\t\tstderr: timedOut ? trimOutput(stderr || options.abortMessage || \"Acceptance verification timed out.\") : error instanceof Error ? error.message : String(error),\n\t\t\t});\n\t\t});\n\t});\n}\n\nexport async function evaluateAcceptance(input: {\n\tacceptance: ResolvedAcceptanceConfig;\n\toutput: string;\n\tcwd: string;\n\t/**\n\t * Content the child sent to its configured output file (from its own write\n\t * tool calls, not from disk, so a concurrent writer to the same path cannot\n\t * be misattributed). Searched for the acceptance report; searched before\n\t * the assistant output when `authoritative` (outputMode \"file-only\").\n\t */\n\tfileOutput?: { content: string; path: string; authoritative?: boolean };\n\treport?: AcceptanceReport;\n\treviewResult?: AcceptanceReviewResult;\n\tsignal?: AbortSignal;\n\tabortMessage?: string;\n}): Promise<AcceptanceLedger> {\n\tconst acceptance = input.acceptance;\n\tconst ledger: AcceptanceLedger = {\n\t\tstatus: acceptance.level === \"none\" ? \"not-required\" : \"claimed\",\n\t\texplicit: acceptance.explicit,\n\t\teffectiveAcceptance: acceptance,\n\t\tinferredReason: acceptance.inferredReason,\n\t\tcriteria: acceptance.criteria,\n\t\truntimeChecks: [],\n\t\tverifyRuns: [],\n\t};\n\tif (acceptance.level === \"none\") return ledger;\n\n\tconst parsed = input.report\n\t\t? (() => {\n\t\t\tconst validation = validateAcceptanceReport(input.report);\n\t\t\treturn validation.report\n\t\t\t\t? { report: validation.report }\n\t\t\t\t: { error: `Failed to parse acceptance-report: Invalid acceptance-report: ${validation.errors.join(\"; \")}` };\n\t\t})()\n\t\t: parseAcceptanceReportSources(input.output, input.fileOutput);\n\tif (parsed.report) {\n\t\tledger.childReport = parsed.report;\n\t\tledger.status = \"attested\";\n\t} else {\n\t\tledger.childReportParseError = parsed.error;\n\t\tledger.runtimeChecks.push({ id: \"attestation\", status: \"failed\", message: parsed.error ?? \"Structured acceptance report missing.\" });\n\t\tledger.status = \"rejected\";\n\t\treturn ledger;\n\t}\n\n\tif (LEVEL_RANK[acceptance.level] >= LEVEL_RANK.checked) {\n\t\tledger.runtimeChecks = [\n\t\t\t...checkCriteriaSatisfied(acceptance.criteria, parsed.report),\n\t\t\t...runStructuralChecks(acceptance, parsed.report, input.cwd),\n\t\t];\n\t\tif (ledger.runtimeChecks.some((check) => check.status === \"failed\")) {\n\t\t\tledger.status = \"rejected\";\n\t\t\treturn ledger;\n\t\t}\n\t\tledger.status = \"checked\";\n\t}\n\n\tif (LEVEL_RANK[acceptance.level] >= LEVEL_RANK.verified && (acceptance.level === \"verified\" || acceptance.verify.length > 0)) {\n\t\tif (acceptance.level === \"verified\" && acceptance.verify.length === 0) {\n\t\t\tledger.runtimeChecks.push({ id: \"verification-config\", status: \"failed\", message: \"verified acceptance requires runtime verify commands.\" });\n\t\t\tledger.status = \"rejected\";\n\t\t\treturn ledger;\n\t\t}\n\t\tledger.verifyRuns = [];\n\t\tfor (const command of acceptance.verify) {\n\t\t\tledger.verifyRuns.push(await runVerifyCommand(command, input.cwd, { signal: input.signal, abortMessage: input.abortMessage }));\n\t\t\tif (input.signal?.aborted) break;\n\t\t}\n\t\tif (ledger.verifyRuns.some((run) => run.status === \"failed\" || run.status === \"timed-out\")) {\n\t\t\tledger.status = \"rejected\";\n\t\t\treturn ledger;\n\t\t}\n\t\tledger.status = \"verified\";\n\t}\n\n\tif (acceptance.level === \"reviewed\") {\n\t\tif (input.reviewResult) {\n\t\t\tledger.reviewResult = input.reviewResult;\n\t\t\tledger.status = input.reviewResult.status === \"no-blockers\" ? \"reviewed\" : \"rejected\";\n\t\t} else {\n\t\t\tconst optionalReview = acceptance.review && acceptance.review !== false && acceptance.review.required === false;\n\t\t\tledger.reviewResult = {\n\t\t\t\tstatus: \"needs-parent-decision\",\n\t\t\t\tfindings: [{\n\t\t\t\t\tseverity: acceptance.explicit && !optionalReview ? \"blocker\" : \"non-blocking\",\n\t\t\t\t\tissue: \"Reviewed acceptance requires an independent reviewer result.\",\n\t\t\t\t\trationale: \"The run cannot be marked reviewed from child evidence alone.\",\n\t\t\t\t}],\n\t\t\t};\n\t\t\tif (acceptance.review === false || (acceptance.explicit && !optionalReview)) ledger.status = \"rejected\";\n\t\t}\n\t}\n\n\treturn ledger;\n}\n\nexport function buildSkippedAcceptanceLedger(acceptance: ResolvedAcceptanceConfig, input: { id: string; message: string }): AcceptanceLedger {\n\treturn {\n\t\tstatus: acceptance.level === \"none\" ? \"not-required\" : \"rejected\",\n\t\texplicit: acceptance.explicit,\n\t\teffectiveAcceptance: acceptance,\n\t\tinferredReason: acceptance.inferredReason,\n\t\tcriteria: acceptance.criteria,\n\t\truntimeChecks: acceptance.level === \"none\"\n\t\t\t? []\n\t\t\t: [{ id: input.id, status: \"failed\", message: input.message }],\n\t\tverifyRuns: [],\n\t};\n}\n\nexport function acceptanceFailureMessage(ledger: AcceptanceLedger): string | undefined {\n\tif (ledger.status !== \"rejected\") return undefined;\n\tconst failedCheck = ledger.runtimeChecks.find((check) => check.status === \"failed\");\n\tif (failedCheck) return `Acceptance rejected: ${failedCheck.message}`;\n\tconst failedVerify = ledger.verifyRuns.find((run) => run.status === \"failed\" || run.status === \"timed-out\");\n\tif (failedVerify) return `Acceptance verification '${failedVerify.id}' ${failedVerify.status}.`;\n\tif (ledger.reviewResult?.status === \"needs-parent-decision\") return \"Acceptance review required but no automatic reviewer result is available.\";\n\tif (ledger.reviewResult?.status === \"blockers\") return \"Acceptance review found blockers.\";\n\treturn \"Acceptance rejected.\";\n}\n"]}
|
|
1
|
+
{"version":3,"file":"acceptance.js","sourceRoot":"","sources":["../../../../../../src/builtin-extensions/pi-subagents/src/runs/shared/acceptance.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport { spawn } from \"node:child_process\";\nimport { spawnSync } from \"node:child_process\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type {\n\tAcceptanceConfig,\n\tAcceptanceEvidenceKind,\n\tAcceptanceInput,\n\tAcceptanceLedger,\n\tAcceptanceLevel,\n\tAcceptanceReport,\n\tAcceptanceRole,\n\tAcceptanceRuntimeCheck,\n\tAcceptanceRuntimeCheckStatus,\n\tAcceptanceReviewResult,\n\tAcceptanceVerifyCommand,\n\tAcceptanceVerifyResult,\n\tResolvedAcceptanceConfig,\n\tResolvedAcceptanceGate,\n\tSingleResult,\n\tSubagentRunMode,\n} from \"../../shared/types.ts\";\nimport { classifyTaskMutationIntent, taskMayMutate } from \"./task-intent.ts\";\n\nconst LEVEL_RANK: Record<Exclude<AcceptanceLevel, \"auto\">, number> = {\n\tnone: 0,\n\tattested: 1,\n\tchecked: 2,\n\tverified: 3,\n\treviewed: 4,\n};\n\nconst VALID_LEVELS = new Set<AcceptanceLevel>([\"auto\", \"none\", \"attested\", \"checked\", \"verified\", \"reviewed\"]);\nconst VALID_EVIDENCE = new Set<AcceptanceEvidenceKind>([\n\t\"changed-files\",\n\t\"tests-added\",\n\t\"commands-run\",\n\t\"validation-output\",\n\t\"residual-risks\",\n\t\"no-staged-files\",\n\t\"diff-summary\",\n\t\"review-findings\",\n\t\"manual-notes\",\n]);\nconst ACCEPTANCE_CONFIG_KEYS = new Set([\"level\", \"criteria\", \"evidence\", \"verify\", \"review\", \"stopRules\", \"reason\"]);\nconst PERSISTED_ACCEPTANCE_KEYS = new Set([...ACCEPTANCE_CONFIG_KEYS, \"explicit\", \"inferredReason\"]);\nconst ACCEPTANCE_GATE_KEYS = new Set([\"id\", \"must\", \"evidence\", \"severity\"]);\nconst ACCEPTANCE_VERIFY_KEYS = new Set([\"id\", \"command\", \"timeoutMs\", \"cwd\", \"env\", \"allowFailure\"]);\nconst ACCEPTANCE_REVIEW_KEYS = new Set([\"agent\", \"focus\", \"required\"]);\nconst EXPLICIT_REVIEWED_UNAVAILABLE = \"cannot be requested explicitly because this run cannot supply an independent reviewer result; use checked/verified and orchestrate the reviewer separately, or omit acceptance for read-only review tasks.\";\nconst RESOLVED_LEVELS = new Set<Exclude<AcceptanceLevel, \"auto\">>([\"none\", \"attested\", \"checked\", \"verified\", \"reviewed\"]);\n\nfunction normalizeLevel(level: AcceptanceLevel | undefined): Exclude<AcceptanceLevel, \"auto\"> | \"auto\" {\n\treturn level ?? \"auto\";\n}\n\nfunction unique<T>(items: T[]): T[] {\n\treturn [...new Set(items)];\n}\n\nfunction requiredEvidenceForLevel(level: Exclude<AcceptanceLevel, \"auto\">): AcceptanceEvidenceKind[] {\n\tswitch (level) {\n\t\tcase \"none\":\n\t\t\treturn [];\n\t\tcase \"attested\":\n\t\t\treturn [\"manual-notes\", \"residual-risks\"];\n\t\tcase \"checked\":\n\t\t\treturn [\"changed-files\", \"tests-added\", \"commands-run\", \"residual-risks\", \"no-staged-files\"];\n\t\tcase \"verified\":\n\t\tcase \"reviewed\":\n\t\t\treturn [\"changed-files\", \"tests-added\", \"commands-run\", \"validation-output\", \"residual-risks\", \"no-staged-files\"];\n\t}\n}\n\nfunction inferLevel(input: {\n\tagentName?: string;\n\tpermissions?: \"full\" | \"read-only\";\n\tacceptanceRole?: AcceptanceRole;\n\ttask?: string;\n\tmode?: SubagentRunMode;\n\tasync?: boolean;\n\tdynamic?: boolean;\n\tdynamicGroup?: boolean;\n}): { level: Exclude<AcceptanceLevel, \"auto\">; reasons: string[]; criteria: string[]; evidence: AcceptanceEvidenceKind[]; review?: { agent?: string; required?: boolean } } {\n\tconst permissions = input.permissions\n\t\t?? (input.acceptanceRole === \"read-only\" ? \"read-only\" : \"full\");\n\tconst task = input.task?.toLowerCase() ?? \"\";\n\tconst reasons: string[] = [];\n\tconst intent = classifyTaskMutationIntent(permissions, input.task ?? \"\");\n\tconst readOnlyPermission = permissions === \"read-only\";\n\tconst readOnlyTask = readOnlyPermission\n\t\t|| intent.kind === \"read-only\"\n\t\t|| (intent.kind === \"unknown\" && /\\b(?:read[- ]only|review[- ]only|no edits|without edits|inspect|summari[sz]e)\\b/.test(task));\n\tconst taskMayWrite = !readOnlyPermission && (taskMayMutate(input.task ?? \"\") || intent.kind === \"implementation\");\n\tconst writeTask = taskMayWrite && !readOnlyTask;\n\tconst inferredReadOnly = readOnlyPermission || readOnlyTask;\n\tconst risky = !inferredReadOnly && (\n\t\tBoolean(input.async && writeTask)\n\t\t|| Boolean(input.dynamic)\n\t\t|| Boolean(input.dynamicGroup)\n\t\t|| /\\b(?:release|migration|migrate|security|data[- ]loss|destructive|post-review|fix pass)\\b/.test(task)\n\t);\n\n\tif (inferredReadOnly) {\n\t\treasons.push(readOnlyPermission ? \"read-only child permission\" : \"read-only task wording\");\n\t\treturn {\n\t\t\tlevel: \"attested\",\n\t\t\treasons,\n\t\t\tcriteria: [\"Return concrete findings with file paths and severity when applicable\"],\n\t\t\tevidence: [\"review-findings\", \"residual-risks\"],\n\t\t};\n\t}\n\tif (risky) {\n\t\treasons.push(input.async ? \"async write-capable or risky run\" : \"risky write-capable run\");\n\t\tif (input.dynamic || input.dynamicGroup) reasons.push(\"dynamic fanout context\");\n\t\treturn {\n\t\t\tlevel: \"reviewed\",\n\t\t\treasons,\n\t\t\tcriteria: [\"Implement the requested change without widening scope\", \"Return evidence sufficient for an independent acceptance review\"],\n\t\t\tevidence: requiredEvidenceForLevel(\"reviewed\"),\n\t\t};\n\t}\n\tif (writeTask) {\n\t\treasons.push(\"write-capable task with full child permission\");\n\t\treturn {\n\t\t\tlevel: \"checked\",\n\t\t\treasons,\n\t\t\tcriteria: [\"Implement the requested change without widening scope\"],\n\t\t\tevidence: requiredEvidenceForLevel(\"checked\"),\n\t\t};\n\t}\n\treasons.push(\"default lightweight attestation\");\n\treturn {\n\t\tlevel: \"attested\",\n\t\treasons,\n\t\tcriteria: [\"Return a concise result and residual risks when applicable\"],\n\t\tevidence: [\"manual-notes\", \"residual-risks\"],\n\t};\n}\n\nexport function normalizeAcceptanceInput(input: AcceptanceInput | undefined): AcceptanceConfig {\n\tif (input === undefined || input === \"auto\") return { level: \"auto\" };\n\tif (input === false) return { level: \"none\", reason: \"disabled by deprecated false shorthand\" };\n\tif (typeof input === \"string\") return { level: input };\n\treturn { ...input };\n}\n\nfunction explicitAcceptanceCanDisable(explicit: AcceptanceConfig): boolean {\n\treturn explicit.level === \"none\" && typeof explicit.reason === \"string\" && explicit.reason.trim().length > 0;\n}\n\ntype AcceptanceValidationMode = \"launch\" | \"persisted\";\n\nfunction validateAcceptanceValue(input: unknown, pathLabel: string, mode: AcceptanceValidationMode): string[] {\n\tconst errors: string[] = [];\n\tif (input === undefined) return errors;\n\tif (mode === \"persisted\") {\n\t\tif (!input || typeof input !== \"object\" || Array.isArray(input)) {\n\t\t\terrors.push(`${pathLabel} must be a resolved acceptance object.`);\n\t\t\treturn errors;\n\t\t}\n\t} else {\n\t\tif (input === false) return errors;\n\t\tif (typeof input === \"string\") {\n\t\t\tif (!VALID_LEVELS.has(input as AcceptanceLevel)) errors.push(`${pathLabel} has invalid level '${input}'.`);\n\t\t\telse if (input === \"none\") errors.push(`${pathLabel} level \"none\" requires a reason; use { level: \"none\", reason: \"...\" }.`);\n\t\t\telse if (input === \"reviewed\") errors.push(`${pathLabel} ${EXPLICIT_REVIEWED_UNAVAILABLE}`);\n\t\t\treturn errors;\n\t\t}\n\t\tif (!input || typeof input !== \"object\" || Array.isArray(input)) {\n\t\t\terrors.push(`${pathLabel} must be a string level, false, or an object.`);\n\t\t\treturn errors;\n\t\t}\n\t}\n\tconst value = input as Record<string, unknown>;\n\tconst allowedKeys = mode === \"persisted\" ? PERSISTED_ACCEPTANCE_KEYS : ACCEPTANCE_CONFIG_KEYS;\n\tfor (const key of Object.keys(value)) {\n\t\tif (!allowedKeys.has(key)) errors.push(`${pathLabel}.${key} is not supported.`);\n\t}\n\tif (mode === \"persisted\") {\n\t\tif (typeof value.level !== \"string\" || !RESOLVED_LEVELS.has(value.level as Exclude<AcceptanceLevel, \"auto\">)) {\n\t\t\terrors.push(`${pathLabel}.level must be one of none, attested, checked, verified, reviewed.`);\n\t\t}\n\t} else if (value.level !== undefined && (typeof value.level !== \"string\" || !VALID_LEVELS.has(value.level as AcceptanceLevel))) {\n\t\terrors.push(`${pathLabel}.level must be one of auto, none, attested, checked, verified, reviewed.`);\n\t}\n\tif (value.level === \"none\" && (typeof value.reason !== \"string\" || !value.reason.trim())) {\n\t\terrors.push(`${pathLabel}.reason is required when level is none.`);\n\t}\n\tif (mode === \"launch\" && value.level === \"reviewed\") errors.push(`${pathLabel}.level ${EXPLICIT_REVIEWED_UNAVAILABLE}`);\n\tif (mode === \"persisted\") {\n\t\tif (value.explicit !== undefined && typeof value.explicit !== \"boolean\") {\n\t\t\terrors.push(`${pathLabel}.explicit must be a boolean.`);\n\t\t}\n\t\tif (value.inferredReason !== undefined) {\n\t\t\tif (!Array.isArray(value.inferredReason) || value.inferredReason.some((item) => typeof item !== \"string\")) {\n\t\t\t\terrors.push(`${pathLabel}.inferredReason must be an array of strings.`);\n\t\t\t}\n\t\t}\n\t}\n\tif (value.reason !== undefined && typeof value.reason !== \"string\") errors.push(`${pathLabel}.reason must be a string.`);\n\tif (value.criteria !== undefined && !Array.isArray(value.criteria)) errors.push(`${pathLabel}.criteria must be an array.`);\n\tif (Array.isArray(value.criteria)) {\n\t\tconst criterionIds = new Set<string>();\n\t\tfor (const [index, criterion] of value.criteria.entries()) {\n\t\t\tif (typeof criterion === \"string\") continue;\n\t\t\tconst criterionPath = `${pathLabel}.criteria[${index}]`;\n\t\t\tif (!criterion || typeof criterion !== \"object\" || Array.isArray(criterion)) {\n\t\t\t\terrors.push(`${criterionPath} must be a string or an object.`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst gate = criterion as Record<string, unknown>;\n\t\t\tfor (const key of Object.keys(gate)) {\n\t\t\t\tif (!ACCEPTANCE_GATE_KEYS.has(key)) errors.push(`${criterionPath}.${key} is not supported.`);\n\t\t\t}\n\t\t\tif (typeof gate.id !== \"string\" || !gate.id.trim()) {\n\t\t\t\terrors.push(`${criterionPath}.id is required.`);\n\t\t\t} else {\n\t\t\t\tconst normalizedId = normalizedToken(gate.id);\n\t\t\t\tif (criterionIds.has(normalizedId)) errors.push(`${criterionPath}.id duplicates normalized criterion id '${normalizedId}'.`);\n\t\t\t\tcriterionIds.add(normalizedId);\n\t\t\t}\n\t\t\tif (typeof gate.must !== \"string\" || !gate.must.trim()) errors.push(`${criterionPath}.must is required.`);\n\t\t\tif (gate.evidence !== undefined && !Array.isArray(gate.evidence)) errors.push(`${criterionPath}.evidence must be an array.`);\n\t\t\tif (Array.isArray(gate.evidence)) {\n\t\t\t\tfor (const [evidenceIndex, item] of gate.evidence.entries()) {\n\t\t\t\t\tif (typeof item !== \"string\" || !VALID_EVIDENCE.has(item as AcceptanceEvidenceKind)) {\n\t\t\t\t\t\terrors.push(`${criterionPath}.evidence[${evidenceIndex}] is not a supported evidence kind.`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (gate.severity !== undefined && gate.severity !== \"required\" && gate.severity !== \"recommended\") {\n\t\t\t\terrors.push(`${criterionPath}.severity must be required or recommended.`);\n\t\t\t}\n\t\t}\n\t}\n\tif (Array.isArray(value.evidence)) {\n\t\tfor (const [index, item] of value.evidence.entries()) {\n\t\t\tif (typeof item !== \"string\" || !VALID_EVIDENCE.has(item as AcceptanceEvidenceKind)) {\n\t\t\t\terrors.push(`${pathLabel}.evidence[${index}] is not a supported evidence kind.`);\n\t\t\t}\n\t\t}\n\t} else if (value.evidence !== undefined) {\n\t\terrors.push(`${pathLabel}.evidence must be an array.`);\n\t}\n\tif (value.verify !== undefined && !Array.isArray(value.verify)) errors.push(`${pathLabel}.verify must be an array.`);\n\tif (Array.isArray(value.verify)) {\n\t\tfor (const [index, command] of value.verify.entries()) {\n\t\t\tif (!command || typeof command !== \"object\" || Array.isArray(command)) {\n\t\t\t\terrors.push(`${pathLabel}.verify[${index}] must be an object.`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst cmd = command as Record<string, unknown>;\n\t\t\tfor (const key of Object.keys(cmd)) {\n\t\t\t\tif (!ACCEPTANCE_VERIFY_KEYS.has(key)) errors.push(`${pathLabel}.verify[${index}].${key} is not supported.`);\n\t\t\t}\n\t\t\tif (typeof cmd.id !== \"string\" || !cmd.id.trim()) errors.push(`${pathLabel}.verify[${index}].id is required.`);\n\t\t\tif (typeof cmd.command !== \"string\" || !cmd.command.trim()) errors.push(`${pathLabel}.verify[${index}].command is required.`);\n\t\t\tif (cmd.timeoutMs !== undefined && (typeof cmd.timeoutMs !== \"number\" || !Number.isInteger(cmd.timeoutMs) || cmd.timeoutMs < 1)) {\n\t\t\t\terrors.push(`${pathLabel}.verify[${index}].timeoutMs must be an integer >= 1.`);\n\t\t\t}\n\t\t\tif (cmd.cwd !== undefined && typeof cmd.cwd !== \"string\") errors.push(`${pathLabel}.verify[${index}].cwd must be a string.`);\n\t\t\tif (cmd.env !== undefined) {\n\t\t\t\tif (!cmd.env || typeof cmd.env !== \"object\" || Array.isArray(cmd.env)) {\n\t\t\t\t\terrors.push(`${pathLabel}.verify[${index}].env must be an object.`);\n\t\t\t\t} else {\n\t\t\t\t\tfor (const [envKey, envValue] of Object.entries(cmd.env as Record<string, unknown>)) {\n\t\t\t\t\t\tif (typeof envValue !== \"string\") errors.push(`${pathLabel}.verify[${index}].env.${envKey} must be a string.`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cmd.allowFailure !== undefined && typeof cmd.allowFailure !== \"boolean\") {\n\t\t\t\terrors.push(`${pathLabel}.verify[${index}].allowFailure must be a boolean.`);\n\t\t\t}\n\t\t}\n\t}\n\tif (value.review !== undefined && value.review !== false) {\n\t\tif (!value.review || typeof value.review !== \"object\" || Array.isArray(value.review)) {\n\t\t\terrors.push(`${pathLabel}.review must be false or an object.`);\n\t\t} else {\n\t\t\tconst review = value.review as Record<string, unknown>;\n\t\t\tfor (const key of Object.keys(review)) {\n\t\t\t\tif (!ACCEPTANCE_REVIEW_KEYS.has(key)) errors.push(`${pathLabel}.review.${key} is not supported.`);\n\t\t\t}\n\t\t\tif (review.agent !== undefined && typeof review.agent !== \"string\") errors.push(`${pathLabel}.review.agent must be a string.`);\n\t\t\tif (review.focus !== undefined && typeof review.focus !== \"string\") errors.push(`${pathLabel}.review.focus must be a string.`);\n\t\t\tif (review.required !== undefined && typeof review.required !== \"boolean\") errors.push(`${pathLabel}.review.required must be a boolean.`);\n\t\t}\n\t}\n\tif (value.stopRules !== undefined && !Array.isArray(value.stopRules)) errors.push(`${pathLabel}.stopRules must be an array.`);\n\tif (Array.isArray(value.stopRules)) {\n\t\tfor (const [index, item] of value.stopRules.entries()) {\n\t\t\tif (typeof item !== \"string\") errors.push(`${pathLabel}.stopRules[${index}] must be a string.`);\n\t\t}\n\t}\n\treturn errors;\n}\n\nexport function validateAcceptanceInput(input: unknown, pathLabel = \"acceptance\"): string[] {\n\treturn validateAcceptanceValue(input, pathLabel, \"launch\");\n}\n\nexport function validatePersistedAcceptance(input: unknown, pathLabel = \"acceptance\"): string[] {\n\treturn validateAcceptanceValue(input, pathLabel, \"persisted\");\n}\n\nexport function restorePersistedAcceptance(input: unknown, pathLabel = \"acceptance\"): ResolvedAcceptanceConfig {\n\tconst errors = validatePersistedAcceptance(input, pathLabel);\n\tif (errors.length > 0) throw new Error(errors.join(\" \"));\n\tconst value = input as Record<string, unknown>;\n\tconst evidence = Array.isArray(value.evidence)\n\t\t? unique((value.evidence as string[]).filter((item): item is AcceptanceEvidenceKind => VALID_EVIDENCE.has(item as AcceptanceEvidenceKind)))\n\t\t: [];\n\treturn {\n\t\tlevel: value.level as Exclude<AcceptanceLevel, \"auto\">,\n\t\texplicit: value.explicit === true,\n\t\tinferredReason: Array.isArray(value.inferredReason)\n\t\t\t? (value.inferredReason as unknown[]).filter((item): item is string => typeof item === \"string\")\n\t\t\t: [],\n\t\tcriteria: normalizeCriteria(\n\t\t\tvalue.criteria as Array<string | { id?: string; must?: string; evidence?: AcceptanceEvidenceKind[]; severity?: \"required\" | \"recommended\" }> | undefined,\n\t\t\tevidence,\n\t\t),\n\t\tevidence,\n\t\tverify: Array.isArray(value.verify) ? value.verify as AcceptanceVerifyCommand[] : [],\n\t\treview: value.review as ResolvedAcceptanceConfig[\"review\"],\n\t\tstopRules: Array.isArray(value.stopRules)\n\t\t\t? (value.stopRules as unknown[]).filter((item): item is string => typeof item === \"string\")\n\t\t\t: [],\n\t\t...(typeof value.reason === \"string\" ? { reason: value.reason } : {}),\n\t};\n}\n\nexport function validateExecutionAcceptance(input: {\n\tacceptance?: unknown;\n\ttasks?: Array<{ acceptance?: unknown }>;\n\tchain?: Array<{\n\t\tacceptance?: unknown;\n\t\tparallel?: Array<{ acceptance?: unknown }> | { acceptance?: unknown };\n\t}>;\n}): string[] {\n\tconst errors = validateAcceptanceInput(input.acceptance, \"acceptance\");\n\tfor (const [index, task] of (input.tasks ?? []).entries()) {\n\t\terrors.push(...validateAcceptanceInput(task.acceptance, `tasks[${index}].acceptance`));\n\t}\n\tfor (const [stepIndex, step] of (input.chain ?? []).entries()) {\n\t\terrors.push(...validateAcceptanceInput(step.acceptance, `chain[${stepIndex}].acceptance`));\n\t\tif (Array.isArray(step.parallel)) {\n\t\t\tfor (const [taskIndex, task] of step.parallel.entries()) {\n\t\t\t\terrors.push(...validateAcceptanceInput(task.acceptance, `chain[${stepIndex}].parallel[${taskIndex}].acceptance`));\n\t\t\t}\n\t\t} else if (step.parallel) {\n\t\t\terrors.push(...validateAcceptanceInput(step.parallel.acceptance, `chain[${stepIndex}].parallel.acceptance`));\n\t\t}\n\t}\n\treturn errors;\n}\n\nfunction normalizeCriteria(criteria: Array<string | { id?: string; must?: string; evidence?: AcceptanceEvidenceKind[]; severity?: \"required\" | \"recommended\" }> | undefined, evidence: AcceptanceEvidenceKind[]): ResolvedAcceptanceGate[] {\n\treturn (criteria ?? []).map((criterion, index) => {\n\t\tif (typeof criterion === \"string\") {\n\t\t\treturn { id: `criterion-${index + 1}`, must: criterion, evidence, severity: \"required\" };\n\t\t}\n\t\treturn {\n\t\t\tid: criterion.id?.trim() || `criterion-${index + 1}`,\n\t\t\tmust: criterion.must ?? \"\",\n\t\t\tevidence: criterion.evidence?.filter((item) => VALID_EVIDENCE.has(item)) ?? evidence,\n\t\t\tseverity: criterion.severity ?? \"required\",\n\t\t};\n\t}).filter((criterion) => criterion.must.trim());\n}\n\nexport function resolveEffectiveAcceptance(input: {\n\texplicit?: AcceptanceInput;\n\tagentName?: string;\n\tpermissions?: \"full\" | \"read-only\";\n\tacceptanceRole?: AcceptanceRole;\n\ttask?: string;\n\tmode?: SubagentRunMode;\n\tasync?: boolean;\n\tdynamic?: boolean;\n\tdynamicGroup?: boolean;\n}): ResolvedAcceptanceConfig {\n\tconst explicit = normalizeAcceptanceInput(input.explicit);\n\tconst inferred = inferLevel(input);\n\tconst explicitLevel = normalizeLevel(explicit.level);\n\tconst level = explicitAcceptanceCanDisable(explicit)\n\t\t? \"none\"\n\t\t: explicitLevel === \"auto\"\n\t\t\t? inferred.level\n\t\t\t: (LEVEL_RANK[explicitLevel] >= LEVEL_RANK[inferred.level] ? explicitLevel : inferred.level);\n\tconst evidence = unique([...(level === inferred.level ? inferred.evidence : requiredEvidenceForLevel(level)), ...(explicit.evidence ?? [])]);\n\tconst criteria = normalizeCriteria(\n\t\t(explicit.criteria?.length ? explicit.criteria : inferred.criteria) as Array<string | { id?: string; must?: string; evidence?: AcceptanceEvidenceKind[]; severity?: \"required\" | \"recommended\" }>,\n\t\tevidence,\n\t);\n\tlet review = explicit.review !== undefined ? explicit.review : inferred.review;\n\tif (level === \"reviewed\" && input.explicit !== undefined && explicitLevel !== \"reviewed\" && explicit.review === undefined && review && review !== false) {\n\t\treview = { ...review, required: false };\n\t}\n\tconst parentRequestedLevel = input.explicit === undefined || explicitLevel === \"auto\" ? undefined : explicitLevel;\n\treturn {\n\t\tlevel,\n\t\texplicit: parentRequestedLevel === level,\n\t\tinferredReason: inferred.reasons,\n\t\tcriteria,\n\t\tevidence,\n\t\tverify: explicit.verify ?? [],\n\t\treview,\n\t\tstopRules: explicit.stopRules ?? [],\n\t\treason: explicit.reason,\n\t};\n}\n\nexport function formatAcceptancePrompt(acceptance: ResolvedAcceptanceConfig): string {\n\tif (acceptance.level === \"none\") return \"\";\n\tconst lines = [\n\t\t\"\",\n\t\t\"## Acceptance Contract\",\n\t\t`Acceptance level: ${acceptance.level}`,\n\t\t\"Completion is not accepted from prose alone. End with a structured acceptance report.\",\n\t\t\"\",\n\t\t\"Criteria:\",\n\t\t...(acceptance.criteria.length ? acceptance.criteria.map((criterion) => `- ${criterion.id}: ${criterion.must}`) : [\"- Return the requested result.\"]),\n\t\t\"\",\n\t\t`Required evidence: ${acceptance.evidence.join(\", \") || \"none\"}`,\n\t];\n\tif (acceptance.verify.length > 0) {\n\t\tlines.push(\"\", \"Runtime verification commands configured by parent:\");\n\t\tfor (const command of acceptance.verify) lines.push(`- ${command.id}: ${command.command}`);\n\t}\n\tif (acceptance.review && acceptance.review !== false) {\n\t\tlines.push(\"\", `Review gate: ${acceptance.review.required === false ? \"optional\" : \"required\"}${acceptance.review.agent ? ` by ${acceptance.review.agent}` : \"\"}.`);\n\t\tif (acceptance.review.focus) lines.push(`Review focus: ${acceptance.review.focus}`);\n\t}\n\tif (acceptance.stopRules.length > 0) {\n\t\tlines.push(\"\", \"Stop rules:\", ...acceptance.stopRules.map((rule) => `- ${rule}`));\n\t}\n\tlines.push(\n\t\t\"\",\n\t\t\"Finish with a fenced JSON block tagged `acceptance-report` in this shape:\",\n\t\t\"Use empty arrays when no items apply; array fields contain strings unless object entries are shown.\",\n\t\t\"`criteriaSatisfied[].status` must be exactly one of: satisfied, not-satisfied, not-applicable.\",\n\t\t\"`commandsRun[].result` must be exactly one of: passed, failed, not-run.\",\n\t\t\"`manualNotes` and `notes` are optional strings; an empty string means no note and does not satisfy `manual-notes` evidence.\",\n\t\t\"```acceptance-report\",\n\t\tJSON.stringify({\n\t\t\tcriteriaSatisfied: acceptance.criteria\n\t\t\t\t.filter((criterion) => criterion.severity !== \"recommended\")\n\t\t\t\t.map((criterion) => ({ id: criterion.id, status: \"satisfied\", evidence: \"specific proof\" })),\n\t\t\tchangedFiles: [\"src/file.ts\"],\n\t\t\ttestsAddedOrUpdated: [\"test/file.test.ts\"],\n\t\t\tcommandsRun: [{ command: \"command\", result: \"passed\", summary: \"short result\" }],\n\t\t\tvalidationOutput: [\"validation output or concise summary\"],\n\t\t\tresidualRisks: [\"none\"],\n\t\t\tnoStagedFiles: true,\n\t\t\tdiffSummary: \"short description of the diff\",\n\t\t\treviewFindings: [\"blocker: file.ts:12 - issue found, or no blockers\"],\n\t\t\tmanualNotes: \"anything else the parent should know\",\n\t\t}, null, 2),\n\t\t\"```\",\n\t);\n\treturn lines.join(\"\\n\");\n}\n\nfunction extractBalancedJson(text: string, start: number): string | undefined {\n\tlet depth = 0;\n\tlet inString = false;\n\tlet escaped = false;\n\tfor (let i = start; i < text.length; i++) {\n\t\tconst char = text[i]!;\n\t\tif (inString) {\n\t\t\tif (escaped) escaped = false;\n\t\t\telse if (char === \"\\\\\") escaped = true;\n\t\t\telse if (char === \"\\\"\") inString = false;\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === \"\\\"\") {\n\t\t\tinString = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (char === \"{\") depth++;\n\t\tif (char === \"}\") {\n\t\t\tdepth--;\n\t\t\tif (depth === 0) return text.slice(start, i + 1);\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst ACCEPTANCE_REPORT_WRAPPERS = new Set([\"acceptance\", \"acceptance-report\", \"acceptance_report\", \"acceptanceReport\"]);\n\nconst ACCEPTANCE_REPORT_FIELDS: Record<string, keyof AcceptanceReport> = {\n\tcriteriaSatisfied: \"criteriaSatisfied\",\n\tcriteria_satisfied: \"criteriaSatisfied\",\n\tchangedFiles: \"changedFiles\",\n\tchanged_files: \"changedFiles\",\n\ttestsAddedOrUpdated: \"testsAddedOrUpdated\",\n\ttests_added_or_updated: \"testsAddedOrUpdated\",\n\tcommandsRun: \"commandsRun\",\n\tcommands_run: \"commandsRun\",\n\tvalidationOutput: \"validationOutput\",\n\tvalidation_output: \"validationOutput\",\n\tresidualRisks: \"residualRisks\",\n\tresidual_risks: \"residualRisks\",\n\tnoStagedFiles: \"noStagedFiles\",\n\tno_staged_files: \"noStagedFiles\",\n\tdiffSummary: \"diffSummary\",\n\tdiff_summary: \"diffSummary\",\n\treviewFindings: \"reviewFindings\",\n\treview_findings: \"reviewFindings\",\n\tmanualNotes: \"manualNotes\",\n\tmanual_notes: \"manualNotes\",\n\tnotes: \"notes\",\n};\n\nconst CRITERION_REPORT_FIELDS = new Set([\"id\", \"status\", \"evidence\"]);\nconst COMMAND_REPORT_FIELDS = new Set([\"command\", \"result\", \"summary\"]);\n\nfunction normalizedToken(value: string): string {\n\treturn value.trim().toLowerCase().replace(/[\\s_]+/g, \"-\").replace(/-+/g, \"-\");\n}\n\nfunction normalizeCriterionStatus(value: unknown): unknown {\n\tif (typeof value !== \"string\") return value;\n\tconst token = normalizedToken(value);\n\tif ([\"satisfied\", \"met\", \"complete\", \"completed\", \"done\", \"pass\", \"passed\", \"success\", \"succeeded\"].includes(token)) return \"satisfied\";\n\tif ([\"not-satisfied\", \"not-met\", \"unmet\", \"incomplete\", \"fail\", \"failed\"].includes(token)) return \"not-satisfied\";\n\tif ([\"not-applicable\", \"n-a\", \"na\", \"skip\", \"skipped\"].includes(token)) return \"not-applicable\";\n\treturn value;\n}\n\nfunction normalizeCommandResult(value: unknown): unknown {\n\tif (typeof value !== \"string\") return value;\n\tconst token = normalizedToken(value);\n\tif ([\"passed\", \"pass\", \"success\", \"successful\", \"succeeded\", \"ok\"].includes(token)) return \"passed\";\n\tif ([\"failed\", \"fail\", \"failure\", \"error\"].includes(token)) return \"failed\";\n\tif ([\"not-run\", \"not-executed\", \"skip\", \"skipped\"].includes(token)) return \"not-run\";\n\treturn value;\n}\n\nfunction normalizeCriterionReport(value: unknown, pathLabel: string, errors: string[]): unknown {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return value;\n\tconst normalized: Record<string, unknown> = {};\n\tfor (const [key, fieldValue] of Object.entries(value as Record<string, unknown>)) {\n\t\tif (!CRITERION_REPORT_FIELDS.has(key)) {\n\t\t\terrors.push(`${pathLabel}.${key}: unsupported acceptance criterion field`);\n\t\t\tcontinue;\n\t\t}\n\t\tnormalized[key] = key === \"id\" && typeof fieldValue === \"string\"\n\t\t\t? normalizedToken(fieldValue)\n\t\t\t: key === \"status\"\n\t\t\t\t? normalizeCriterionStatus(fieldValue)\n\t\t\t\t: fieldValue;\n\t}\n\treturn normalized;\n}\n\nfunction normalizeCommandReport(value: unknown, pathLabel: string, errors: string[]): unknown {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return value;\n\tconst normalized: Record<string, unknown> = {};\n\tfor (const [key, fieldValue] of Object.entries(value as Record<string, unknown>)) {\n\t\tif (!COMMAND_REPORT_FIELDS.has(key)) {\n\t\t\terrors.push(`${pathLabel}.${key}: unsupported acceptance command field`);\n\t\t\tcontinue;\n\t\t}\n\t\tnormalized[key] = key === \"result\" ? normalizeCommandResult(fieldValue) : fieldValue;\n\t}\n\treturn normalized;\n}\n\nfunction normalizeAcceptanceReportValue(value: unknown, pathLabel = \"\"): { value: unknown; pathLabel: string; errors: string[] } {\n\tconst errors: string[] = [];\n\tlet reportValue = value;\n\tlet reportPath = pathLabel;\n\tif (reportValue && typeof reportValue === \"object\" && !Array.isArray(reportValue)) {\n\t\tconst record = reportValue as Record<string, unknown>;\n\t\tconst wrapperKeys = Object.keys(record).filter((key) => ACCEPTANCE_REPORT_WRAPPERS.has(key));\n\t\tif (wrapperKeys.length > 0) {\n\t\t\tconst wrapperKey = wrapperKeys[0]!;\n\t\t\tif (wrapperKeys.length > 1) errors.push(`${pathLabel || \"acceptance-report\"}: multiple acceptance report wrappers are ambiguous`);\n\t\t\tfor (const key of Object.keys(record)) {\n\t\t\t\tif (key !== wrapperKey) errors.push(`${pathFor(pathLabel, key)}: unsupported alongside acceptance report wrapper '${wrapperKey}'`);\n\t\t\t}\n\t\t\treportValue = record[wrapperKey];\n\t\t\treportPath = pathFor(pathLabel, wrapperKey);\n\t\t}\n\t}\n\tif (!reportValue || typeof reportValue !== \"object\" || Array.isArray(reportValue)) return { value: reportValue, pathLabel: reportPath, errors };\n\n\tconst normalized: Record<string, unknown> = {};\n\tfor (const [key, fieldValue] of Object.entries(reportValue as Record<string, unknown>)) {\n\t\tconst canonical = ACCEPTANCE_REPORT_FIELDS[key];\n\t\tif (!canonical) {\n\t\t\terrors.push(`${pathFor(reportPath, key)}: unsupported acceptance report field`);\n\t\t\tcontinue;\n\t\t}\n\t\tif (Object.hasOwn(normalized, canonical)) {\n\t\t\terrors.push(`${pathFor(reportPath, key)}: duplicates normalized field '${canonical}'`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst fieldPath = pathFor(reportPath, canonical);\n\t\tswitch (canonical) {\n\t\t\tcase \"criteriaSatisfied\": {\n\t\t\t\tconst items = Array.isArray(fieldValue) ? fieldValue : fieldValue && typeof fieldValue === \"object\" ? [fieldValue] : fieldValue;\n\t\t\t\tnormalized[canonical] = Array.isArray(items)\n\t\t\t\t\t? items.map((item, index) => normalizeCriterionReport(item, `${fieldPath}[${index}]`, errors))\n\t\t\t\t\t: items;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"commandsRun\": {\n\t\t\t\tconst items = Array.isArray(fieldValue) ? fieldValue : fieldValue && typeof fieldValue === \"object\" ? [fieldValue] : fieldValue;\n\t\t\t\tnormalized[canonical] = Array.isArray(items)\n\t\t\t\t\t? items.map((item, index) => normalizeCommandReport(item, `${fieldPath}[${index}]`, errors))\n\t\t\t\t\t: items;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"changedFiles\":\n\t\t\tcase \"testsAddedOrUpdated\":\n\t\t\tcase \"validationOutput\":\n\t\t\tcase \"residualRisks\":\n\t\t\tcase \"reviewFindings\":\n\t\t\t\tnormalized[canonical] = typeof fieldValue === \"string\" ? [fieldValue] : fieldValue;\n\t\t\t\tbreak;\n\t\t\tcase \"noStagedFiles\": {\n\t\t\t\tconst token = typeof fieldValue === \"string\" ? fieldValue.trim().toLowerCase() : undefined;\n\t\t\t\tnormalized[canonical] = token === \"true\" ? true : token === \"false\" ? false : fieldValue;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tnormalized[canonical] = fieldValue;\n\t\t}\n\t}\n\treturn { value: normalized, pathLabel: reportPath, errors };\n}\n\nfunction hasGenericAcceptanceReportSignal(value: unknown): boolean {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n\tconst record = value as Record<string, unknown>;\n\treturn \"criteriaSatisfied\" in record && [\n\t\t\"changedFiles\",\n\t\t\"testsAddedOrUpdated\",\n\t\t\"commandsRun\",\n\t\t\"validationOutput\",\n\t\t\"residualRisks\",\n\t\t\"noStagedFiles\",\n\t\t\"diffSummary\",\n\t\t\"reviewFindings\",\n\t\t\"manualNotes\",\n\t].some((key) => key in record);\n}\n\nfunction parseReportJson(body: string): unknown {\n\tconst trimmed = body.trim();\n\ttry {\n\t\treturn JSON.parse(trimmed) as unknown;\n\t} catch (error) {\n\t\tconst jsonStart = trimmed.indexOf(\"{\");\n\t\tif (jsonStart > 0) {\n\t\t\tconst json = extractBalancedJson(trimmed, jsonStart);\n\t\t\tif (json) return JSON.parse(json) as unknown;\n\t\t}\n\t\tthrow error;\n\t}\n}\n\nfunction fencedBlocks(output: string, tag: string): string[] {\n\treturn [...output.matchAll(new RegExp(`\\`\\`\\`${tag}\\\\s*\\\\n([\\\\s\\\\S]*?)\\`\\`\\``, \"gi\"))]\n\t\t.map((match) => match[1]?.trim())\n\t\t.filter((value): value is string => Boolean(value));\n}\n\nfunction parseAcceptanceReportBody(body: string): { report?: AcceptanceReport; errors: string[] } {\n\treturn validateAcceptanceReport(parseReportJson(body));\n}\n\nfunction parseGenericJsonAcceptanceReportBody(body: string): { report?: AcceptanceReport; error?: string } {\n\tconst parsed = parseReportJson(body);\n\tconst normalized = normalizeAcceptanceReportValue(parsed);\n\tconst hasCriteriaMarker = normalized.value !== null\n\t\t&& typeof normalized.value === \"object\"\n\t\t&& !Array.isArray(normalized.value)\n\t\t&& \"criteriaSatisfied\" in normalized.value;\n\tif (!hasGenericAcceptanceReportSignal(normalized.value) && !(hasCriteriaMarker && normalized.errors.length > 0)) return {};\n\tconst validation = validateAcceptanceReport(parsed);\n\treturn validation.report\n\t\t? { report: validation.report }\n\t\t: { error: `Invalid acceptance-report: ${validation.errors.join(\"; \")}` };\n}\n\nexport const ACCEPTANCE_REPORT_NOT_FOUND = \"Structured acceptance report not found.\";\n\nexport function parseAcceptanceReport(output: string): { report?: AcceptanceReport; error?: string } {\n\tconst explicitFencePresent = /```acceptance[-_]report\\b/i.test(output);\n\tconst fenced = fencedBlocks(output, \"acceptance[-_]report\");\n\tconst parseErrors: string[] = [];\n\tfor (const body of fenced) {\n\t\ttry {\n\t\t\tconst validation = parseAcceptanceReportBody(body);\n\t\t\tif (validation.report) return { report: validation.report };\n\t\t\tparseErrors.push(`Invalid acceptance-report: ${validation.errors.join(\"; \")}`);\n\t\t} catch (error) {\n\t\t\tparseErrors.push(error instanceof Error ? error.message : String(error));\n\t\t}\n\t}\n\tif (parseErrors.length > 0) return { error: `Failed to parse acceptance-report: ${parseErrors.join(\"; \")}` };\n\tif (explicitFencePresent) {\n\t\treturn { error: \"Failed to parse acceptance-report: Empty or unterminated acceptance-report fence.\" };\n\t}\n\tfor (const body of fencedBlocks(output, \"(?:json|jsonc|json5)\")) {\n\t\ttry {\n\t\t\tconst parsed = parseGenericJsonAcceptanceReportBody(body);\n\t\t\tif (parsed.report) return { report: parsed.report };\n\t\t\tif (parsed.error) return { error: `Failed to parse acceptance-report: ${parsed.error}` };\n\t\t} catch {\n\t\t\t// Ignore unrelated malformed generic JSON. A recognizable report shape\n\t\t\t// returns exact validation errors above instead of being mistaken for prose.\n\t\t}\n\t}\n\tconst markerIndex = output.search(/ACCEPTANCE_REPORT\\s*:/i);\n\tif (markerIndex !== -1) {\n\t\tconst jsonStart = output.indexOf(\"{\", markerIndex);\n\t\tif (jsonStart === -1) {\n\t\t\treturn { error: \"Failed to parse acceptance-report: Expected a JSON object after ACCEPTANCE_REPORT:.\" };\n\t\t}\n\t\tconst json = extractBalancedJson(output, jsonStart);\n\t\tif (!json) {\n\t\t\treturn { error: \"Failed to parse acceptance-report: Unterminated JSON object after ACCEPTANCE_REPORT:.\" };\n\t\t}\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(json) as unknown;\n\t\t\tconst validation = validateAcceptanceReport(parsed);\n\t\t\tif (validation.report) return { report: validation.report };\n\t\t\treturn { error: `Failed to parse acceptance-report: Invalid acceptance-report: ${validation.errors.join(\"; \")}` };\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\treturn { error: `Failed to parse acceptance-report: ${message}` };\n\t\t}\n\t}\n\treturn { error: ACCEPTANCE_REPORT_NOT_FOUND };\n}\n\nfunction parseAcceptanceReportSources(\n\toutput: string,\n\tfileOutput: { content: string; path: string; authoritative?: boolean } | undefined,\n): { report?: AcceptanceReport; error?: string } {\n\tconst fromText = () => parseAcceptanceReport(output);\n\tconst fromFile = () => {\n\t\tif (!fileOutput) return { error: ACCEPTANCE_REPORT_NOT_FOUND };\n\t\tconst parsed = parseAcceptanceReport(fileOutput.content);\n\t\treturn parsed.report || parsed.error === ACCEPTANCE_REPORT_NOT_FOUND\n\t\t\t? parsed\n\t\t\t: { error: `${parsed.error} (in configured output ${fileOutput.path})` };\n\t};\n\tconst [primary, secondary] = fileOutput?.authoritative ? [fromFile, fromText] : [fromText, fromFile];\n\tconst first = primary();\n\t// A malformed report in the primary source is a defect to surface, not a\n\t// miss to paper over with the secondary source; only a genuinely absent\n\t// report falls through.\n\tif (first.report || first.error !== ACCEPTANCE_REPORT_NOT_FOUND) return first;\n\treturn secondary();\n}\n\nexport function stripAcceptanceReport(output: string): string {\n\tconst trailingFencePattern = /\\n?```(acceptance[-_]report|json|jsonc|json5)\\s*\\n([\\s\\S]*?)```\\s*/gi;\n\tlet trailingFence: { index: number; tag: string; body: string } | undefined;\n\tfor (const match of output.matchAll(trailingFencePattern)) {\n\t\tconst end = (match.index ?? 0) + match[0].length;\n\t\tif (output.slice(end).trim().length === 0 && match[1] && match[2]) {\n\t\t\ttrailingFence = { index: match.index ?? 0, tag: match[1].toLowerCase(), body: match[2] };\n\t\t}\n\t}\n\tif (trailingFence) {\n\t\tif (trailingFence.tag === \"acceptance-report\" || trailingFence.tag === \"acceptance_report\") return output.slice(0, trailingFence.index).trimEnd();\n\t\ttry {\n\t\t\tif (parseGenericJsonAcceptanceReportBody(trailingFence.body).report) return output.slice(0, trailingFence.index).trimEnd();\n\t\t} catch {\n\t\t\t// Leave unrelated or malformed generic JSON fences visible.\n\t\t}\n\t}\n\treturn output\n\t\t.replace(/\\n?```acceptance[-_]report\\s*\\n[\\s\\S]*?```\\s*$/i, \"\")\n\t\t.replace(/\\n?ACCEPTANCE_REPORT\\s*:\\s*\\{[\\s\\S]*\\}\\s*$/i, \"\")\n\t\t.trimEnd();\n}\n\nfunction isStringArray(value: unknown): value is string[] {\n\treturn Array.isArray(value) && value.every((item) => typeof item === \"string\");\n}\n\nfunction pathFor(base: string, segment: string): string {\n\treturn base ? `${base}.${segment}` : segment;\n}\n\nfunction describeValidationValue(value: unknown): string {\n\tif (value === undefined) return \"missing\";\n\tif (value === null) return \"null\";\n\tif (Array.isArray(value)) return \"array\";\n\tif (typeof value === \"object\") return \"object\";\n\tif (typeof value === \"string\") {\n\t\tconst short = value.length > 80 ? `${value.slice(0, 77)}...` : value;\n\t\treturn JSON.stringify(short);\n\t}\n\treturn `${typeof value} ${String(value)}`;\n}\n\nfunction pushTypeError(errors: string[], pathLabel: string, expected: string, value: unknown): void {\n\terrors.push(`${pathLabel}: expected ${expected}; got ${describeValidationValue(value)}`);\n}\n\nfunction validateStringArrayField(errors: string[], value: unknown, pathLabel: string): void {\n\tif (!Array.isArray(value)) {\n\t\tpushTypeError(errors, pathLabel, \"string[]\", value);\n\t\treturn;\n\t}\n\tfor (const [index, item] of value.entries()) {\n\t\tif (typeof item !== \"string\" || !item.trim()) pushTypeError(errors, `${pathLabel}[${index}]`, \"non-empty string\", item);\n\t}\n}\n\nfunction validateAcceptanceReport(value: unknown, pathLabel = \"\"): { report?: AcceptanceReport; errors: string[] } {\n\tconst normalized = normalizeAcceptanceReportValue(value, pathLabel);\n\tvalue = normalized.value;\n\tpathLabel = normalized.pathLabel;\n\tconst errors = normalized.errors;\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\tpushTypeError(errors, pathLabel || \"acceptance-report\", \"object\", value);\n\t\treturn { errors };\n\t}\n\tconst report = value as AcceptanceReport;\n\tif (report.criteriaSatisfied !== undefined) {\n\t\tif (!Array.isArray(report.criteriaSatisfied)) {\n\t\t\tpushTypeError(errors, pathFor(pathLabel, \"criteriaSatisfied\"), \"array\", report.criteriaSatisfied);\n\t\t} else {\n\t\t\tconst criterionIds = new Set<string>();\n\t\t\tfor (const [index, item] of report.criteriaSatisfied.entries()) {\n\t\t\t\tconst itemPath = `${pathFor(pathLabel, \"criteriaSatisfied\")}[${index}]`;\n\t\t\t\tif (!item || typeof item !== \"object\" || Array.isArray(item)) {\n\t\t\t\t\tpushTypeError(errors, itemPath, \"object\", item);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst criterion = item as { id?: unknown; status?: unknown; evidence?: unknown };\n\t\t\t\tif (criterion.id !== undefined && typeof criterion.id !== \"string\") {\n\t\t\t\t\tpushTypeError(errors, `${itemPath}.id`, \"string\", criterion.id);\n\t\t\t\t} else if (typeof criterion.id === \"string\" && criterion.id) {\n\t\t\t\t\tif (criterionIds.has(criterion.id)) errors.push(`${itemPath}.id: duplicate normalized criterion id '${criterion.id}'`);\n\t\t\t\t\tcriterionIds.add(criterion.id);\n\t\t\t\t}\n\t\t\t\tif (criterion.status !== \"satisfied\" && criterion.status !== \"not-satisfied\" && criterion.status !== \"not-applicable\") {\n\t\t\t\t\tpushTypeError(errors, `${itemPath}.status`, \"one of \\\"satisfied\\\", \\\"not-satisfied\\\", \\\"not-applicable\\\"\", criterion.status);\n\t\t\t\t}\n\t\t\t\tif (typeof criterion.evidence !== \"string\" || !criterion.evidence.trim()) pushTypeError(errors, `${itemPath}.evidence`, \"non-empty string\", criterion.evidence);\n\t\t\t}\n\t\t}\n\t}\n\tif (report.changedFiles !== undefined) validateStringArrayField(errors, report.changedFiles, pathFor(pathLabel, \"changedFiles\"));\n\tif (report.testsAddedOrUpdated !== undefined) validateStringArrayField(errors, report.testsAddedOrUpdated, pathFor(pathLabel, \"testsAddedOrUpdated\"));\n\tif (report.commandsRun !== undefined) {\n\t\tif (!Array.isArray(report.commandsRun)) {\n\t\t\tpushTypeError(errors, pathFor(pathLabel, \"commandsRun\"), \"array\", report.commandsRun);\n\t\t} else {\n\t\t\tfor (const [index, item] of report.commandsRun.entries()) {\n\t\t\t\tconst itemPath = `${pathFor(pathLabel, \"commandsRun\")}[${index}]`;\n\t\t\t\tif (!item || typeof item !== \"object\" || Array.isArray(item)) {\n\t\t\t\t\tpushTypeError(errors, itemPath, \"object\", item);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst command = item as { command?: unknown; result?: unknown; summary?: unknown };\n\t\t\t\tif (typeof command.command !== \"string\" || !command.command.trim()) pushTypeError(errors, `${itemPath}.command`, \"non-empty string\", command.command);\n\t\t\t\tif (command.result !== \"passed\" && command.result !== \"failed\" && command.result !== \"not-run\") {\n\t\t\t\t\tpushTypeError(errors, `${itemPath}.result`, \"one of \\\"passed\\\", \\\"failed\\\", \\\"not-run\\\"\", command.result);\n\t\t\t\t}\n\t\t\t\tif (typeof command.summary !== \"string\" || !command.summary.trim()) pushTypeError(errors, `${itemPath}.summary`, \"non-empty string\", command.summary);\n\t\t\t}\n\t\t}\n\t}\n\tif (report.validationOutput !== undefined) validateStringArrayField(errors, report.validationOutput, pathFor(pathLabel, \"validationOutput\"));\n\tif (report.residualRisks !== undefined) validateStringArrayField(errors, report.residualRisks, pathFor(pathLabel, \"residualRisks\"));\n\tif (report.noStagedFiles !== undefined && typeof report.noStagedFiles !== \"boolean\") pushTypeError(errors, pathFor(pathLabel, \"noStagedFiles\"), \"boolean\", report.noStagedFiles);\n\tif (report.diffSummary !== undefined && (typeof report.diffSummary !== \"string\" || !report.diffSummary.trim())) pushTypeError(errors, pathFor(pathLabel, \"diffSummary\"), \"non-empty string\", report.diffSummary);\n\tif (report.reviewFindings !== undefined) validateStringArrayField(errors, report.reviewFindings, pathFor(pathLabel, \"reviewFindings\"));\n\tif (report.manualNotes !== undefined && typeof report.manualNotes !== \"string\") pushTypeError(errors, pathFor(pathLabel, \"manualNotes\"), \"string\", report.manualNotes);\n\tif (report.notes !== undefined && typeof report.notes !== \"string\") pushTypeError(errors, pathFor(pathLabel, \"notes\"), \"string\", report.notes);\n\tif (errors.length > 0) return { errors };\n\tconst hasReportField = report.criteriaSatisfied !== undefined\n\t\t|| report.changedFiles !== undefined\n\t\t|| report.testsAddedOrUpdated !== undefined\n\t\t|| report.commandsRun !== undefined\n\t\t|| report.validationOutput !== undefined\n\t\t|| report.residualRisks !== undefined\n\t\t|| report.noStagedFiles !== undefined\n\t\t|| report.diffSummary !== undefined\n\t\t|| report.manualNotes !== undefined\n\t\t|| report.notes !== undefined\n\t\t|| report.reviewFindings !== undefined;\n\treturn hasReportField\n\t\t? { report, errors }\n\t\t: { errors: [`${pathLabel || \"acceptance-report\"}: expected at least one acceptance report field`] };\n}\n\nfunction checkCriteriaSatisfied(criteria: ResolvedAcceptanceGate[], report: AcceptanceReport): AcceptanceRuntimeCheck[] {\n\tconst reports = new Map((report.criteriaSatisfied ?? []).filter((item) => item.id).map((item) => [normalizedToken(item.id!), item]));\n\treturn criteria.filter((criterion) => criterion.severity !== \"recommended\").map((criterion) => {\n\t\tconst item = reports.get(normalizedToken(criterion.id));\n\t\tif (!item) return { id: `criterion:${criterion.id}`, status: \"failed\", message: `Required criterion '${criterion.id}' was not reported.` };\n\t\tif (item.status !== \"satisfied\") return { id: `criterion:${criterion.id}`, status: \"failed\", message: `Required criterion '${criterion.id}' was reported as ${item.status}.` };\n\t\treturn { id: `criterion:${criterion.id}`, status: \"passed\", message: `Required criterion '${criterion.id}' satisfied.` };\n\t});\n}\n\nfunction reportEvidenceStatus(report: AcceptanceReport, kind: AcceptanceEvidenceKind): AcceptanceRuntimeCheckStatus {\n\tswitch (kind) {\n\t\tcase \"changed-files\":\n\t\t\tif (!isStringArray(report.changedFiles)) return \"failed\";\n\t\t\treturn report.changedFiles.length === 0 ? \"not-applicable\" : \"passed\";\n\t\tcase \"tests-added\":\n\t\t\tif (!isStringArray(report.testsAddedOrUpdated)) return \"failed\";\n\t\t\treturn report.testsAddedOrUpdated.length === 0 ? \"not-applicable\" : \"passed\";\n\t\tcase \"commands-run\": return Array.isArray(report.commandsRun) && report.commandsRun.length > 0 ? \"passed\" : \"failed\";\n\t\tcase \"validation-output\": return isStringArray(report.validationOutput) && report.validationOutput.length > 0 ? \"passed\" : \"failed\";\n\t\tcase \"residual-risks\": return isStringArray(report.residualRisks) ? \"passed\" : \"failed\";\n\t\tcase \"no-staged-files\": return report.noStagedFiles === true ? \"passed\" : \"failed\";\n\t\tcase \"diff-summary\": return typeof report.diffSummary === \"string\" && report.diffSummary.trim().length > 0 ? \"passed\" : \"failed\";\n\t\tcase \"review-findings\": return isStringArray(report.reviewFindings) ? \"passed\" : \"failed\";\n\t\tcase \"manual-notes\": return Boolean((report.manualNotes ?? report.notes)?.trim()) ? \"passed\" : \"failed\";\n\t}\n}\n\nfunction checkNoStagedFiles(cwd: string): AcceptanceRuntimeCheck {\n\tconst result = spawnSync(\"git\", [\"status\", \"--short\"], { cwd, encoding: \"utf-8\" });\n\tif (result.status !== 0) {\n\t\treturn { id: \"no-staged-files\", status: \"not-applicable\", message: \"git status unavailable; no staged-files check skipped\" };\n\t}\n\tconst staged = result.stdout.split(/\\r?\\n/).filter((line) => line.length >= 2 && line[0] !== \" \" && line[0] !== \"?\");\n\treturn staged.length === 0\n\t\t? { id: \"no-staged-files\", status: \"passed\", message: \"No staged files detected.\" }\n\t\t: { id: \"no-staged-files\", status: \"failed\", message: `Staged files present: ${staged.join(\", \")}` };\n}\n\nfunction runStructuralChecks(acceptance: ResolvedAcceptanceConfig, report: AcceptanceReport, cwd: string): AcceptanceRuntimeCheck[] {\n\tconst checks: AcceptanceRuntimeCheck[] = [];\n\tfor (const kind of acceptance.evidence) {\n\t\tconst status = reportEvidenceStatus(report, kind);\n\t\tchecks.push({\n\t\t\tid: `evidence:${kind}`,\n\t\t\tstatus,\n\t\t\tmessage: status === \"passed\"\n\t\t\t\t? `${kind} evidence present.`\n\t\t\t\t: status === \"not-applicable\"\n\t\t\t\t\t? `${kind} evidence explicitly reported as not applicable.`\n\t\t\t\t\t: `${kind} evidence missing from child report.`,\n\t\t});\n\t}\n\tif (acceptance.evidence.includes(\"no-staged-files\")) checks.push(checkNoStagedFiles(cwd));\n\treturn checks;\n}\n\nfunction trimOutput(value: string): string | undefined {\n\tconst trimmed = value.trim();\n\tif (!trimmed) return undefined;\n\treturn trimmed.length > 12_000 ? `${trimmed.slice(0, 12_000)}\\n...[truncated]` : trimmed;\n}\n\nfunction uniqueStrings(items: Array<string | undefined>): string[] {\n\treturn unique(items.map((item) => item?.trim()).filter((item): item is string => Boolean(item)));\n}\n\nexport function aggregateAcceptanceReport(input: {\n\tresults: Array<Pick<SingleResult, \"agent\" | \"acceptance\" | \"error\" | \"exitCode\">>;\n\tnotes?: string;\n}): AcceptanceReport {\n\tconst childReports = input.results.map((result) => result.acceptance?.childReport).filter((report): report is AcceptanceReport => Boolean(report));\n\tconst blockers = input.results.filter((result) => result.exitCode !== 0 || result.acceptance?.status === \"rejected\");\n\tconst successfulChildren = input.results.length > 0 && blockers.length === 0;\n\treturn {\n\t\tcriteriaSatisfied: [\n\t\t\t{ id: \"criterion-1\", status: successfulChildren ? \"satisfied\" : \"not-satisfied\", evidence: successfulChildren ? `All ${input.results.length} dynamic child run(s) completed without child or acceptance blockers.` : \"Dynamic fanout produced no accepted child evidence.\" },\n\t\t\t{ id: \"criterion-2\", status: successfulChildren ? \"satisfied\" : \"not-satisfied\", evidence: successfulChildren ? \"Collected child acceptance evidence for aggregate review.\" : \"Dynamic fanout produced no aggregate review evidence.\" },\n\t\t\t...input.results.map((result, index) => ({\n\t\t\t\tid: `child-${index + 1}`,\n\t\t\t\tstatus: result.exitCode === 0 && result.acceptance?.status !== \"rejected\" ? \"satisfied\" : \"not-satisfied\",\n\t\t\t\tevidence: `${result.agent}: acceptance ${result.acceptance?.status ?? \"unreported\"}${result.error ? ` (${result.error})` : \"\"}`,\n\t\t\t})),\n\t\t],\n\t\tchangedFiles: uniqueStrings(childReports.flatMap((report) => report.changedFiles ?? [])),\n\t\ttestsAddedOrUpdated: uniqueStrings(childReports.flatMap((report) => report.testsAddedOrUpdated ?? [])),\n\t\tcommandsRun: childReports.flatMap((report) => report.commandsRun ?? []),\n\t\tvalidationOutput: uniqueStrings(childReports.flatMap((report) => report.validationOutput ?? [])),\n\t\tresidualRisks: uniqueStrings([\n\t\t\t...childReports.flatMap((report) => report.residualRisks ?? []),\n\t\t\t...blockers.map((result) => `${result.agent}: ${result.error ?? \"child or acceptance gate failed\"}`),\n\t\t]),\n\t\tnoStagedFiles: childReports.length > 0 && childReports.every((report) => report.noStagedFiles === true),\n\t\treviewFindings: uniqueStrings(childReports.flatMap((report) => report.reviewFindings ?? [])),\n\t\tmanualNotes: input.notes ?? `Aggregated acceptance evidence from ${input.results.length} dynamic fanout child run(s).`,\n\t\tnotes: input.notes,\n\t};\n}\n\nfunction runVerifyCommand(command: AcceptanceVerifyCommand, defaultCwd: string, options: { signal?: AbortSignal; abortMessage?: string } = {}): Promise<AcceptanceVerifyResult> {\n\treturn new Promise((resolve) => {\n\t\tconst startedAt = Date.now();\n\t\tconst cwd = command.cwd ? path.resolve(defaultCwd, command.cwd) : defaultCwd;\n\t\tlet stdout = \"\";\n\t\tlet stderr = \"\";\n\t\tlet timedOut = false;\n\t\tlet settled = false;\n\t\tlet hardKill: NodeJS.Timeout | undefined;\n\t\tconst child = spawn(command.command, {\n\t\t\tcwd,\n\t\t\tenv: { ...process.env, ...(command.env ?? {}) },\n\t\t\tshell: true,\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t\twindowsHide: true,\n\t\t});\n\t\tconst finish = (result: Omit<AcceptanceVerifyResult, \"id\" | \"command\" | \"cwd\" | \"durationMs\">) => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tclearTimeout(timeout);\n\t\t\tif (hardKill) clearTimeout(hardKill);\n\t\t\toptions.signal?.removeEventListener(\"abort\", abortVerification);\n\t\t\tresolve({\n\t\t\t\tid: command.id,\n\t\t\t\tcommand: command.command,\n\t\t\t\tcwd,\n\t\t\t\tdurationMs: Date.now() - startedAt,\n\t\t\t\t...result,\n\t\t\t});\n\t\t};\n\t\tconst abortVerification = () => {\n\t\t\tif (settled || timedOut) return;\n\t\t\ttimedOut = true;\n\t\t\tchild.kill(\"SIGTERM\");\n\t\t\thardKill = setTimeout(() => {\n\t\t\t\tchild.kill(\"SIGKILL\");\n\t\t\t\tfinish({\n\t\t\t\t\texitCode: null,\n\t\t\t\t\tstatus: \"timed-out\",\n\t\t\t\t\tstdout: trimOutput(stdout),\n\t\t\t\t\tstderr: trimOutput(stderr || options.abortMessage || \"Acceptance verification timed out.\"),\n\t\t\t\t});\n\t\t\t}, 1000);\n\t\t\thardKill.unref?.();\n\t\t};\n\t\tconst timeout = setTimeout(abortVerification, command.timeoutMs ?? 120_000);\n\t\ttimeout.unref?.();\n\t\tif (options.signal?.aborted) abortVerification();\n\t\telse options.signal?.addEventListener(\"abort\", abortVerification, { once: true });\n\t\tchild.stdout.on(\"data\", (chunk: Buffer) => {\n\t\t\tstdout += chunk.toString();\n\t\t});\n\t\tchild.stderr.on(\"data\", (chunk: Buffer) => {\n\t\t\tstderr += chunk.toString();\n\t\t});\n\t\tchild.on(\"close\", (exitCode) => {\n\t\t\tconst passed = exitCode === 0 && !timedOut;\n\t\t\tfinish({\n\t\t\t\texitCode,\n\t\t\t\tstatus: timedOut ? \"timed-out\" : passed ? \"passed\" : command.allowFailure ? \"allowed-failure\" : \"failed\",\n\t\t\t\tstdout: trimOutput(stdout),\n\t\t\t\tstderr: trimOutput(stderr || (timedOut ? options.abortMessage ?? \"\" : \"\")),\n\t\t\t});\n\t\t});\n\t\tchild.on(\"error\", (error) => {\n\t\t\tfinish({\n\t\t\t\texitCode: timedOut ? null : 1,\n\t\t\t\tstatus: timedOut ? \"timed-out\" : command.allowFailure ? \"allowed-failure\" : \"failed\",\n\t\t\t\tstderr: timedOut ? trimOutput(stderr || options.abortMessage || \"Acceptance verification timed out.\") : error instanceof Error ? error.message : String(error),\n\t\t\t});\n\t\t});\n\t});\n}\n\nexport async function evaluateAcceptance(input: {\n\tacceptance: ResolvedAcceptanceConfig;\n\toutput: string;\n\tcwd: string;\n\t/**\n\t * Content the child sent to its configured output file (from its own write\n\t * tool calls, not from disk, so a concurrent writer to the same path cannot\n\t * be misattributed). Searched for the acceptance report; searched before\n\t * the assistant output when `authoritative` (outputMode \"file-only\").\n\t */\n\tfileOutput?: { content: string; path: string; authoritative?: boolean };\n\treport?: AcceptanceReport;\n\treviewResult?: AcceptanceReviewResult;\n\tsignal?: AbortSignal;\n\tabortMessage?: string;\n}): Promise<AcceptanceLedger> {\n\tconst acceptance = input.acceptance;\n\tconst ledger: AcceptanceLedger = {\n\t\tstatus: acceptance.level === \"none\" ? \"not-required\" : \"claimed\",\n\t\texplicit: acceptance.explicit,\n\t\teffectiveAcceptance: acceptance,\n\t\tinferredReason: acceptance.inferredReason,\n\t\tcriteria: acceptance.criteria,\n\t\truntimeChecks: [],\n\t\tverifyRuns: [],\n\t};\n\tif (acceptance.level === \"none\") return ledger;\n\n\tconst parsed = input.report\n\t\t? (() => {\n\t\t\tconst validation = validateAcceptanceReport(input.report);\n\t\t\treturn validation.report\n\t\t\t\t? { report: validation.report }\n\t\t\t\t: { error: `Failed to parse acceptance-report: Invalid acceptance-report: ${validation.errors.join(\"; \")}` };\n\t\t})()\n\t\t: parseAcceptanceReportSources(input.output, input.fileOutput);\n\tif (parsed.report) {\n\t\tledger.childReport = parsed.report;\n\t\tledger.status = \"attested\";\n\t} else {\n\t\tledger.childReportParseError = parsed.error;\n\t\tledger.runtimeChecks.push({ id: \"attestation\", status: \"failed\", message: parsed.error ?? \"Structured acceptance report missing.\" });\n\t\tledger.status = \"rejected\";\n\t\treturn ledger;\n\t}\n\n\tif (LEVEL_RANK[acceptance.level] >= LEVEL_RANK.checked) {\n\t\tledger.runtimeChecks = [\n\t\t\t...checkCriteriaSatisfied(acceptance.criteria, parsed.report),\n\t\t\t...runStructuralChecks(acceptance, parsed.report, input.cwd),\n\t\t];\n\t\tif (ledger.runtimeChecks.some((check) => check.status === \"failed\")) {\n\t\t\tledger.status = \"rejected\";\n\t\t\treturn ledger;\n\t\t}\n\t\tledger.status = \"checked\";\n\t}\n\n\tif (LEVEL_RANK[acceptance.level] >= LEVEL_RANK.verified && (acceptance.level === \"verified\" || acceptance.verify.length > 0)) {\n\t\tif (acceptance.level === \"verified\" && acceptance.verify.length === 0) {\n\t\t\tledger.runtimeChecks.push({ id: \"verification-config\", status: \"failed\", message: \"verified acceptance requires runtime verify commands.\" });\n\t\t\tledger.status = \"rejected\";\n\t\t\treturn ledger;\n\t\t}\n\t\tledger.verifyRuns = [];\n\t\tfor (const command of acceptance.verify) {\n\t\t\tledger.verifyRuns.push(await runVerifyCommand(command, input.cwd, { signal: input.signal, abortMessage: input.abortMessage }));\n\t\t\tif (input.signal?.aborted) break;\n\t\t}\n\t\tif (ledger.verifyRuns.some((run) => run.status === \"failed\" || run.status === \"timed-out\")) {\n\t\t\tledger.status = \"rejected\";\n\t\t\treturn ledger;\n\t\t}\n\t\tledger.status = \"verified\";\n\t}\n\n\tif (acceptance.level === \"reviewed\") {\n\t\tif (input.reviewResult) {\n\t\t\tledger.reviewResult = input.reviewResult;\n\t\t\tledger.status = input.reviewResult.status === \"no-blockers\" ? \"reviewed\" : \"rejected\";\n\t\t} else {\n\t\t\tconst optionalReview = acceptance.review && acceptance.review !== false && acceptance.review.required === false;\n\t\t\tledger.reviewResult = {\n\t\t\t\tstatus: \"needs-parent-decision\",\n\t\t\t\tfindings: [{\n\t\t\t\t\tseverity: acceptance.explicit && !optionalReview ? \"blocker\" : \"non-blocking\",\n\t\t\t\t\tissue: \"Reviewed acceptance requires an independent reviewer result.\",\n\t\t\t\t\trationale: \"The run cannot be marked reviewed from child evidence alone.\",\n\t\t\t\t}],\n\t\t\t};\n\t\t\tif (acceptance.review === false || (acceptance.explicit && !optionalReview)) ledger.status = \"rejected\";\n\t\t}\n\t}\n\n\treturn ledger;\n}\n\nexport function buildSkippedAcceptanceLedger(acceptance: ResolvedAcceptanceConfig, input: { id: string; message: string }): AcceptanceLedger {\n\treturn {\n\t\tstatus: acceptance.level === \"none\" ? \"not-required\" : \"rejected\",\n\t\texplicit: acceptance.explicit,\n\t\teffectiveAcceptance: acceptance,\n\t\tinferredReason: acceptance.inferredReason,\n\t\tcriteria: acceptance.criteria,\n\t\truntimeChecks: acceptance.level === \"none\"\n\t\t\t? []\n\t\t\t: [{ id: input.id, status: \"failed\", message: input.message }],\n\t\tverifyRuns: [],\n\t};\n}\n\nexport function acceptanceFailureMessage(ledger: AcceptanceLedger): string | undefined {\n\tif (ledger.status !== \"rejected\") return undefined;\n\tconst failedCheck = ledger.runtimeChecks.find((check) => check.status === \"failed\");\n\tif (failedCheck) return `Acceptance rejected: ${failedCheck.message}`;\n\tconst failedVerify = ledger.verifyRuns.find((run) => run.status === \"failed\" || run.status === \"timed-out\");\n\tif (failedVerify) return `Acceptance verification '${failedVerify.id}' ${failedVerify.status}.`;\n\tif (ledger.reviewResult?.status === \"needs-parent-decision\") return \"Acceptance review required but no automatic reviewer result is available.\";\n\tif (ledger.reviewResult?.status === \"blockers\") return \"Acceptance review found blockers.\";\n\treturn \"Acceptance rejected.\";\n}\n"]}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import type { ChildPermission } from "../../../../../core/subagent-permission-inherit.ts";
|
|
13
13
|
/** Parent-owned / persistent tools excluded even from full children. */
|
|
14
|
-
export declare const PARENT_OWNED_CHILD_TOOLS: readonly ["cron", "memory_add", "memory_remove", "memory_load", "present_plan", "goal_complete", "goal_blocked", "subagent", "subagent_wait"];
|
|
14
|
+
export declare const PARENT_OWNED_CHILD_TOOLS: readonly ["computer_load", "computer_apps", "computer_observe", "computer_click", "computer_drag", "computer_key", "computer_text", "computer_window", "computer_launch", "computer_scroll", "computer_end", "cron", "memory_add", "memory_remove", "memory_load", "present_plan", "goal_complete", "goal_blocked", "subagent", "subagent_wait"];
|
|
15
15
|
/** Mutating coding tools omitted from the read-only child registry. */
|
|
16
16
|
export declare const READ_ONLY_EXCLUDED_CHILD_TOOLS: readonly ["edit", "write", "code_rewrite", "lsp_rename"];
|
|
17
17
|
export interface ResolveChildExcludeToolsInput {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-tools.d.ts","sourceRoot":"","sources":["../../../../../../src/builtin-extensions/pi-subagents/src/runs/shared/child-tools.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"child-tools.d.ts","sourceRoot":"","sources":["../../../../../../src/builtin-extensions/pi-subagents/src/runs/shared/child-tools.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAE1F,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,kVAW3B,CAAC;AAEX,uEAAuE;AACvE,eAAO,MAAM,8BAA8B,0DAKjC,CAAC;AAKX,MAAM,WAAW,6BAA6B;IAC7C,WAAW,EAAE,eAAe,CAAC;IAC7B,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,GAAG,MAAM,EAAE,CASvF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE","sourcesContent":["// @ts-nocheck\n/**\n * Central permission-to-tool resolver for prompt-driven children.\n *\n * Full access is the coding-tool set (read/search/shell/edit/write/web/LSP/MCP\n * plus output and supervisor coordination). It is not parent-equivalent: cron,\n * memory, goals, plan approval, nested subagent management, and other\n * persistent/user-config tools stay excluded.\n *\n * Read-only drops mutating coding tools from the registry and still runs under\n * Plan mode as defense in depth.\n */\n\nimport { COMPUTER_TOOLS } from \"../../../../../core/computer-use/policy.ts\";\nimport type { ChildPermission } from \"../../../../../core/subagent-permission-inherit.ts\";\n\n/** Parent-owned / persistent tools excluded even from full children. */\nexport const PARENT_OWNED_CHILD_TOOLS = [\n\t...COMPUTER_TOOLS,\n\t\"cron\",\n\t\"memory_add\",\n\t\"memory_remove\",\n\t\"memory_load\",\n\t\"present_plan\",\n\t\"goal_complete\",\n\t\"goal_blocked\",\n\t\"subagent\",\n\t\"subagent_wait\",\n] as const;\n\n/** Mutating coding tools omitted from the read-only child registry. */\nexport const READ_ONLY_EXCLUDED_CHILD_TOOLS = [\n\t\"edit\",\n\t\"write\",\n\t\"code_rewrite\",\n\t\"lsp_rename\",\n] as const;\n\nconst PARENT_OWNED_SET = new Set<string>(PARENT_OWNED_CHILD_TOOLS);\nconst READ_ONLY_SET = new Set<string>(READ_ONLY_EXCLUDED_CHILD_TOOLS);\n\nexport interface ResolveChildExcludeToolsInput {\n\tpermissions: ChildPermission;\n\t/** Dynamic fanout children may keep the child-safe subagent tool. */\n\tfanoutAuthorized?: boolean;\n}\n\nexport function resolveChildExcludeTools(input: ResolveChildExcludeToolsInput): string[] {\n\tconst excluded = new Set<string>(PARENT_OWNED_SET);\n\tif (input.fanoutAuthorized) {\n\t\texcluded.delete(\"subagent\");\n\t}\n\tif (input.permissions === \"read-only\") {\n\t\tfor (const tool of READ_ONLY_SET) excluded.add(tool);\n\t}\n\treturn [...excluded];\n}\n\nexport function isParentOwnedChildTool(name: string): boolean {\n\treturn PARENT_OWNED_SET.has(name);\n}\n\nexport function isReadOnlyExcludedChildTool(name: string): boolean {\n\treturn READ_ONLY_SET.has(name);\n}\n"]}
|
|
@@ -10,8 +10,10 @@
|
|
|
10
10
|
* Read-only drops mutating coding tools from the registry and still runs under
|
|
11
11
|
* Plan mode as defense in depth.
|
|
12
12
|
*/
|
|
13
|
+
import { COMPUTER_TOOLS } from "../../../../../core/computer-use/policy.js";
|
|
13
14
|
/** Parent-owned / persistent tools excluded even from full children. */
|
|
14
15
|
export const PARENT_OWNED_CHILD_TOOLS = [
|
|
16
|
+
...COMPUTER_TOOLS,
|
|
15
17
|
"cron",
|
|
16
18
|
"memory_add",
|
|
17
19
|
"memory_remove",
|