@ashx-j/lunr 0.2.11 → 0.2.13
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 +13 -0
- package/README.md +211 -236
- package/dist/builtin-extensions/ashxj-tui.d.ts +3 -0
- package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -1
- package/dist/builtin-extensions/ashxj-tui.js +28 -11
- package/dist/builtin-extensions/ashxj-tui.js.map +1 -1
- package/dist/builtin-extensions/index.d.ts.map +1 -1
- package/dist/builtin-extensions/index.js +0 -2
- package/dist/builtin-extensions/index.js.map +1 -1
- package/dist/builtin-extensions/lunr-cron.d.ts +1 -1
- package/dist/builtin-extensions/lunr-cron.d.ts.map +1 -1
- package/dist/builtin-extensions/lunr-cron.js +1 -1
- package/dist/builtin-extensions/lunr-cron.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js +3 -3
- package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts +0 -2
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js +1 -23
- package/dist/builtin-extensions/pi-subagents/src/extension/doctor.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 +6 -7
- 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 +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js +7 -14
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +12 -9
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +38 -34
- 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 +3 -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 +32 -47
- package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +7 -10
- 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 +90 -109
- 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-resume.d.ts +3 -2
- 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 +37 -50
- package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts +4 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js +5 -5
- package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js.map +1 -1
- 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 +31 -13
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts +2 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts +4 -3
- 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 +48 -20
- 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 +2 -2
- 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 +90 -64
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +6 -8
- 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 +262 -161
- 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 -1
- 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 +24 -33
- 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 +25 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js +51 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js +20 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +4 -1
- 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 +5 -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 +9 -3
- 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 +2 -2
- 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 +20 -17
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts +70 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +153 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts +13 -8
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.js +20 -51
- package/dist/builtin-extensions/pi-subagents/src/shared/settings.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +80 -20
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js +10 -2
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +2 -2
- 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 +20 -32
- 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 +2 -1
- 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 +23 -449
- 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 +2 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js +13 -11
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts +2 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js +18 -17
- package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js.map +1 -1
- package/dist/builtin-extensions/simple-pi-memory.d.ts +2 -2
- package/dist/builtin-extensions/simple-pi-memory.d.ts.map +1 -1
- package/dist/builtin-extensions/simple-pi-memory.js +41 -17
- package/dist/builtin-extensions/simple-pi-memory.js.map +1 -1
- package/dist/catalog/models.json +1 -1
- package/dist/catalog/providers/amazon-bedrock.json +1 -1
- package/dist/catalog/providers/azure-openai-responses.json +1 -1
- package/dist/catalog/providers/cloudflare-ai-gateway.json +1 -1
- package/dist/catalog/providers/cloudflare-workers-ai.json +1 -1
- package/dist/catalog/providers/fireworks.json +1 -1
- package/dist/catalog/providers/github-copilot.json +1 -1
- package/dist/catalog/providers/huggingface.json +1 -1
- package/dist/catalog/providers/minimax-cn.json +1 -1
- package/dist/catalog/providers/minimax.json +1 -1
- package/dist/catalog/providers/mistral.json +1 -1
- package/dist/catalog/providers/nvidia.json +1 -1
- package/dist/catalog/providers/openai.json +1 -1
- package/dist/catalog/providers/opencode-go.json +1 -1
- package/dist/catalog/providers/opencode.json +1 -1
- package/dist/catalog/providers/openrouter.json +1 -1
- package/dist/catalog/providers/qwen-cloud-cn.json +1 -1
- package/dist/catalog/providers/qwen-cloud.json +1 -1
- package/dist/catalog/providers/qwen-token-plan-cn.json +1 -1
- package/dist/catalog/providers/qwen-token-plan.json +1 -1
- package/dist/catalog/providers/together.json +1 -1
- package/dist/catalog/providers/vercel-ai-gateway.json +1 -1
- package/dist/catalog/providers/zai-coding-cn.json +1 -1
- package/dist/catalog/providers/zai.json +1 -1
- package/dist/catalog/publication.json +3 -3
- package/dist/core/agent-session.d.ts +7 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +34 -4
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/context-breakdown.d.ts +3 -1
- package/dist/core/context-breakdown.d.ts.map +1 -1
- package/dist/core/context-breakdown.js +5 -2
- package/dist/core/context-breakdown.js.map +1 -1
- package/dist/core/customize.d.ts +2 -0
- package/dist/core/customize.d.ts.map +1 -1
- package/dist/core/customize.js +6 -0
- package/dist/core/customize.js.map +1 -1
- package/dist/core/memory-cap.d.ts +4 -8
- package/dist/core/memory-cap.d.ts.map +1 -1
- package/dist/core/memory-cap.js +8 -8
- package/dist/core/memory-cap.js.map +1 -1
- package/dist/core/permissions.d.ts +2 -0
- package/dist/core/permissions.d.ts.map +1 -1
- package/dist/core/permissions.js +30 -14
- package/dist/core/permissions.js.map +1 -1
- package/dist/core/plan-mode.d.ts.map +1 -1
- package/dist/core/plan-mode.js +1 -9
- package/dist/core/plan-mode.js.map +1 -1
- package/dist/core/rollback.d.ts.map +1 -1
- package/dist/core/rollback.js +1 -1
- package/dist/core/rollback.js.map +1 -1
- package/dist/core/settings-manager.d.ts +16 -5
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +37 -10
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +1 -5
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/subagent-permission-inherit.d.ts +34 -22
- package/dist/core/subagent-permission-inherit.d.ts.map +1 -1
- package/dist/core/subagent-permission-inherit.js +37 -80
- package/dist/core/subagent-permission-inherit.js.map +1 -1
- package/dist/core/swarm.d.ts.map +1 -1
- package/dist/core/swarm.js +13 -7
- package/dist/core/swarm.js.map +1 -1
- package/dist/core/system-prompt.d.ts +6 -4
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +38 -48
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/usage-adapters/openai-codex.d.ts +1 -1
- package/dist/core/usage-adapters/openai-codex.d.ts.map +1 -1
- package/dist/core/usage-adapters/openai-codex.js +22 -17
- package/dist/core/usage-adapters/openai-codex.js.map +1 -1
- package/dist/core/usage-service.d.ts +10 -1
- package/dist/core/usage-service.d.ts.map +1 -1
- package/dist/core/usage-service.js +17 -6
- package/dist/core/usage-service.js.map +1 -1
- package/dist/gateway/agent-bridge.d.ts.map +1 -1
- package/dist/gateway/agent-bridge.js +1 -4
- package/dist/gateway/agent-bridge.js.map +1 -1
- package/dist/gateway/cron.d.ts.map +1 -1
- package/dist/gateway/cron.js +1 -4
- package/dist/gateway/cron.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +0 -5
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts +2 -0
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +21 -0
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +7 -4
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +122 -162
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/usage-view.d.ts +1 -1
- package/dist/modes/interactive/components/usage-view.d.ts.map +1 -1
- package/dist/modes/interactive/components/usage-view.js +7 -4
- package/dist/modes/interactive/components/usage-view.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -2
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +55 -96
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/skill-tag-autocomplete.d.ts +13 -0
- package/dist/modes/interactive/skill-tag-autocomplete.d.ts.map +1 -0
- package/dist/modes/interactive/skill-tag-autocomplete.js +72 -0
- package/dist/modes/interactive/skill-tag-autocomplete.js.map +1 -0
- package/docs/compaction.md +23 -23
- package/docs/containerization.md +24 -24
- package/docs/custom-provider.md +18 -18
- package/docs/development.md +16 -15
- package/docs/docs.json +6 -2
- package/docs/extensions.md +82 -80
- package/docs/features.md +102 -0
- package/docs/index.md +25 -19
- package/docs/json.md +7 -7
- package/docs/keybindings.md +4 -4
- package/docs/models.md +2 -2
- package/docs/packages.md +38 -42
- package/docs/prompt-templates.md +4 -4
- package/docs/providers.md +22 -10
- package/docs/quickstart.md +81 -46
- package/docs/rpc.md +7 -13
- package/docs/sdk.md +43 -41
- package/docs/security.md +18 -18
- package/docs/session-format.md +9 -9
- package/docs/sessions.md +13 -12
- package/docs/settings.md +63 -24
- package/docs/shell-aliases.md +2 -2
- package/docs/skills.md +21 -11
- package/docs/terminal-setup.md +5 -5
- package/docs/termux.md +7 -7
- package/docs/themes.md +12 -14
- package/docs/tmux.md +4 -4
- package/docs/tui.md +23 -23
- package/docs/usage.md +112 -87
- package/docs/windows.md +10 -2
- package/examples/README.md +3 -1
- package/examples/extensions/README.md +6 -6
- 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/doom-overlay/README.md +2 -2
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/plan-mode/README.md +3 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/subagent/README.md +13 -11
- package/examples/extensions/todo.ts +2 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/sdk/README.md +9 -5
- package/package.json +6 -7
- package/dist/builtin-extensions/lunr-behavior.d.ts +0 -44
- package/dist/builtin-extensions/lunr-behavior.d.ts.map +0 -1
- package/dist/builtin-extensions/lunr-behavior.js +0 -213
- package/dist/builtin-extensions/lunr-behavior.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/agents/context-builder.md +0 -46
- package/dist/builtin-extensions/pi-subagents/agents/deep-researcher.md +0 -36
- package/dist/builtin-extensions/pi-subagents/agents/delegate.md +0 -12
- package/dist/builtin-extensions/pi-subagents/agents/oracle.md +0 -73
- package/dist/builtin-extensions/pi-subagents/agents/planner.md +0 -55
- package/dist/builtin-extensions/pi-subagents/agents/research-writer.md +0 -37
- package/dist/builtin-extensions/pi-subagents/agents/researcher.md +0 -52
- package/dist/builtin-extensions/pi-subagents/agents/reviewer.md +0 -79
- package/dist/builtin-extensions/pi-subagents/agents/scout.md +0 -50
- package/dist/builtin-extensions/pi-subagents/agents/worker.md +0 -55
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts +0 -20
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js +0 -1273
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts +0 -49
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js +0 -252
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts +0 -3
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js +0 -6
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts +0 -3
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js +0 -23
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts +0 -8
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js +0 -143
- package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts +0 -176
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.js +0 -1326
- package/dist/builtin-extensions/pi-subagents/src/agents/agents.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts +0 -7
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js +0 -307
- package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts +0 -8
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.js +0 -30
- package/dist/builtin-extensions/pi-subagents/src/agents/identity.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts +0 -35
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js +0 -151
- package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts +0 -131
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts.map +0 -1
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js +0 -491
- package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js.map +0 -1
- package/dist/core/behavior-preset.d.ts +0 -60
- package/dist/core/behavior-preset.d.ts.map +0 -1
- package/dist/core/behavior-preset.js +0 -257
- package/dist/core/behavior-preset.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-execution.js","sourceRoot":"","sources":["../../../../../../src/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * Chain execution logic for subagent tool\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { AgentToolResult } from \"@ashx-j/lunr-agent\";\nimport type { ExtensionContext } from \"@ashx-j/lunr\";\nimport type { AgentConfig } from \"../../agents/agents.ts\";\nimport { ChainClarifyComponent, type ChainClarifyResult, type BehaviorOverride } from \"./chain-clarify.ts\";\nimport { toModelInfo, type ModelInfo } from \"../../shared/model-info.ts\";\nimport {\n\tresolveChainTemplates,\n\tcreateChainDir,\n\tremoveChainDir,\n\tresolveStepBehavior,\n\tresolveParallelBehaviors,\n\tbuildChainInstructions,\n\twriteInitialProgressFile,\n\tcreateParallelDirs,\n\tsuppressProgressForReadOnlyTask,\n\taggregateParallelOutputs,\n\tisDynamicParallelStep,\n\tisParallelStep,\n\ttype StepOverrides,\n\ttype ChainStep,\n\ttype ParallelStep,\n\ttype SequentialStep,\n\ttype ParallelTaskResult,\n\ttype ResolvedStepBehavior,\n\ttype ResolvedTemplates,\n} from \"../../shared/settings.ts\";\nimport { discoverAvailableSkills, normalizeSkillInput } from \"../../agents/skills.ts\";\nimport { INTERCOM_BRIDGE_MARKER } from \"../../intercom/intercom-bridge.ts\";\nimport { runSync } from \"./execution.ts\";\nimport { buildChainSummary } from \"../../shared/formatters.ts\";\nimport { compactForegroundDetails, getSingleResultOutput, mapConcurrent, resolveChildCwd, sumResultsCost, sumResultsUsage } from \"../../shared/utils.ts\";\nimport { DEFAULT_GLOBAL_CONCURRENCY_LIMIT, Semaphore } from \"../shared/parallel-utils.ts\";\nimport { recordRun } from \"../shared/run-history.ts\";\nimport {\n\tcleanupWorktrees,\n\tcreateWorktrees,\n\tdiffWorktrees,\n\tfindWorktreeTaskCwdConflict,\n\tformatWorktreeDiffSummary,\n\tformatWorktreeTaskCwdConflict,\n\ttype WorktreeSetup,\n} from \"../shared/worktree.ts\";\nimport {\n\ttype ActivityState,\n\ttype AgentProgress,\n\ttype ArtifactConfig,\n\ttype ArtifactPaths,\n\ttype ControlEvent,\n\ttype Details,\n\ttype IntercomEventBus,\n\ttype NestedRouteInfo,\n\ttype ResolvedControlConfig,\n\ttype ResolvedTurnBudget,\n\ttype ResolvedToolBudget,\n\ttype SingleResult,\n\ttype ToolBudgetConfig,\n\tMAX_CONCURRENCY,\n\tresolveChildMaxSubagentDepth,\n} from \"../../shared/types.ts\";\nimport { resolveEffectiveSubagentModel, resolveTierModelOverride } from \"../shared/model-fallback.ts\";\nimport type { ModelScopeConfig } from \"../shared/model-scope.ts\";\nimport { injectSingleOutputInstruction, validateFileOnlyOutputMode } from \"../shared/single-output.ts\";\nimport { buildWorkflowGraphSnapshot } from \"../shared/workflow-graph.ts\";\nimport { ChainOutputValidationError, outputEntryFromResult, resolveOutputReferences, validateChainOutputBindings } from \"../shared/chain-outputs.ts\";\nimport { createStructuredOutputRuntime } from \"../shared/structured-output.ts\";\nimport { collectDynamicResults, DynamicFanoutError, materializeDynamicParallelStep, validateDynamicCollection, type DynamicCollectedResult } from \"../shared/dynamic-fanout.ts\";\nimport { acceptanceFailureMessage, aggregateAcceptanceReport, evaluateAcceptance, resolveEffectiveAcceptance } from \"../shared/acceptance.ts\";\nimport type { ChainOutputMap } from \"../../shared/types.ts\";\nimport { validateToolBudgetConfig } from \"../shared/tool-budget.ts\";\n\ninterface ChainExecutionDetailsInput {\n\tresults: SingleResult[];\n\tincludeProgress?: boolean;\n\tallProgress: AgentProgress[];\n\tallArtifactPaths: ArtifactPaths[];\n\tartifactsDir: string;\n\tchainAgents: string[];\n\tchainSteps: ChainStep[];\n\ttotalSteps: number;\n\tcurrentStepIndex?: number;\n\trunId: string;\n\toutputs?: ChainOutputMap;\n\tcurrentFlatIndex?: number;\n\tdynamicChildren?: Record<number, Array<{ agent: string; label?: string; flatIndex: number; itemKey: string; outputName?: string; structured?: boolean; error?: string }>>;\n\tdynamicGroupStatuses?: Record<number, { status: \"pending\" | \"running\" | \"completed\" | \"failed\" | \"paused\" | \"stopped\" | \"detached\"; error?: string; acceptance?: SingleResult[\"acceptance\"] }>;\n}\n\ninterface ParallelChainRunInput {\n\tstep: ParallelStep;\n\tparallelTemplates: string[];\n\tparallelBehaviors: ResolvedStepBehavior[];\n\tagents: AgentConfig[];\n\tstepIndex: number;\n\tavailableModels: ModelInfo[];\n\tmodelScope?: ModelScopeConfig;\n\tchainDir: string;\n\tprev: string;\n\toriginalTask: string;\n\tctx: ExtensionContext;\n\tintercomEvents?: IntercomEventBus;\n\tcwd?: string;\n\trunId: string;\n\tglobalTaskIndex: number;\n\tsessionDirForIndex: (idx?: number) => string | undefined;\n\tsessionFileForIndex?: (idx?: number) => string | undefined;\n\tsessionFileForTask?: (agentName: string, idx?: number, modelOverride?: string) => string | undefined;\n\tthinkingOverrideForTask?: (agentName: string, idx?: number, modelOverride?: string) => AgentConfig[\"thinking\"] | undefined;\n\tshareEnabled: boolean;\n\tartifactConfig: ArtifactConfig;\n\tartifactsDir: string;\n\tsignal?: AbortSignal;\n\tonUpdate?: (r: AgentToolResult<Details>) => void;\n\tonControlEvent?: (event: ControlEvent) => void;\n\tcontrolConfig: ResolvedControlConfig;\n\tchildIntercomTarget?: (agent: string, index: number) => string | undefined;\n\torchestratorIntercomTarget?: string;\n\tforegroundControl?: {\n\t\tupdatedAt: number;\n\t\tcurrentAgent?: string;\n\t\tcurrentIndex?: number;\n\t\tcurrentActivityState?: ActivityState;\n\t\tlastActivityAt?: number;\n\t\tcurrentTool?: string;\n\t\tcurrentToolStartedAt?: number;\n\t\tcurrentPath?: string;\n\t\tturnCount?: number;\n\t\ttokens?: number;\n\t\ttoolCount?: number;\n\t\tinterrupt?: () => boolean;\n\t};\n\tresults: SingleResult[];\n\tallProgress: AgentProgress[];\n\toutputs: ChainOutputMap;\n\tchainAgents: string[];\n\tchainSteps: ChainStep[];\n\ttotalSteps: number;\n\tdynamicChildren?: ChainExecutionDetailsInput[\"dynamicChildren\"];\n\tdynamicGroupStatuses?: ChainExecutionDetailsInput[\"dynamicGroupStatuses\"];\n\tworktreeSetup?: WorktreeSetup;\n\tmaxSubagentDepth: number;\n\tnestedRoute?: NestedRouteInfo;\n\ttimeoutMs?: number;\n\tdeadlineAt?: number;\n\tturnBudget?: ResolvedTurnBudget;\n\tonDetachedExit?: (index: number, result: SingleResult) => void;\n\ttoolBudget?: ResolvedToolBudget;\n\tconfigToolBudget?: ToolBudgetConfig;\n\tglobalSemaphore?: Semaphore;\n\tdynamic?: boolean;\n}\n\nfunction buildChainExecutionDetails(input: ChainExecutionDetailsInput): Details {\n\treturn compactForegroundDetails({\n\t\tmode: \"chain\",\n\t\tresults: input.results,\n\t\tprogress: input.includeProgress ? input.allProgress : undefined,\n\t\tartifacts: input.allArtifactPaths.length ? { dir: input.artifactsDir, files: input.allArtifactPaths } : undefined,\n\t\tchainAgents: input.chainAgents,\n\t\ttotalSteps: input.totalSteps,\n\t\tcurrentStepIndex: input.currentStepIndex,\n\t\toutputs: input.outputs,\n\t\ttotalChildUsage: sumResultsUsage(input.results),\n\t\ttotalCost: sumResultsCost(input.results),\n\t\tworkflowGraph: buildWorkflowGraphSnapshot({\n\t\t\trunId: input.runId,\n\t\t\tmode: \"chain\",\n\t\t\tsteps: input.chainSteps,\n\t\t\tresults: input.results,\n\t\t\tcurrentStepIndex: input.currentStepIndex,\n\t\t\tcurrentFlatIndex: input.currentFlatIndex,\n\t\t\tdynamicChildren: input.dynamicChildren,\n\t\t\tdynamicGroupStatuses: input.dynamicGroupStatuses,\n\t\t}),\n\t});\n}\n\nfunction buildChainExecutionErrorResult(message: string, input: ChainExecutionDetailsInput): ChainExecutionResult {\n\treturn {\n\t\tcontent: [{ type: \"text\", text: message }],\n\t\tisError: true,\n\t\tdetails: buildChainExecutionDetails(input),\n\t};\n}\n\nfunction ensureParallelProgressFile(\n\tchainDir: string,\n\tprogressCreated: boolean,\n\tparallelBehaviors: ResolvedStepBehavior[],\n): boolean {\n\tif (progressCreated || !parallelBehaviors.some((behavior) => behavior.progress)) {\n\t\treturn progressCreated;\n\t}\n\twriteInitialProgressFile(chainDir);\n\treturn true;\n}\n\nfunction appendParallelWorktreeSummary(\n\toutput: string,\n\tworktreeSetup: WorktreeSetup | undefined,\n\tdiffsDir: string,\n\tagents: string[],\n): string {\n\tif (!worktreeSetup) return output;\n\tconst diffs = diffWorktrees(worktreeSetup, agents, diffsDir);\n\tconst diffSummary = formatWorktreeDiffSummary(diffs);\n\tif (!diffSummary) return output;\n\treturn `${output}\\n\\n${diffSummary}`;\n}\n\nfunction resolveChainToolBudget(input: { stepBudget?: ToolBudgetConfig; runBudget?: ResolvedToolBudget; agentBudget?: ToolBudgetConfig; configBudget?: ToolBudgetConfig }): { toolBudget?: ResolvedToolBudget; error?: string } {\n\tif (input.stepBudget !== undefined) {\n\t\tconst resolved = validateToolBudgetConfig(input.stepBudget, \"toolBudget\");\n\t\treturn { toolBudget: resolved.budget, error: resolved.error };\n\t}\n\tif (input.runBudget !== undefined) return { toolBudget: input.runBudget };\n\tif (input.agentBudget !== undefined) {\n\t\tconst resolved = validateToolBudgetConfig(input.agentBudget, \"agent.toolBudget\");\n\t\treturn { toolBudget: resolved.budget, error: resolved.error };\n\t}\n\tconst resolved = validateToolBudgetConfig(input.configBudget, \"config.toolBudget\");\n\treturn { toolBudget: resolved.budget, error: resolved.error };\n}\n\nasync function runParallelChainTasks(input: ParallelChainRunInput): Promise<SingleResult[]> {\n\tconst concurrency = input.step.concurrency ?? MAX_CONCURRENCY;\n\tconst failFast = input.step.failFast ?? false;\n\tlet aborted = false;\n\tconst effectiveModels = input.step.parallel.map((task) => {\n\t\tconst taskAgentConfig = input.agents.find((agent) => agent.name === task.agent);\n\t\treturn resolveEffectiveSubagentModel(\n\t\t\t// lunr: model tiers — explicit per-task model wins; otherwise resolve task.tier via the tier bridge.\n\t\t\ttask.model ?? resolveTierModelOverride(task.tier),\n\t\t\ttaskAgentConfig?.model,\n\t\t\tinput.ctx.model,\n\t\t\tinput.availableModels,\n\t\t\tinput.ctx.model?.provider,\n\t\t\t{ scope: input.modelScope },\n\t\t);\n\t});\n\tfor (let taskIndex = 0; taskIndex < input.step.parallel.length; taskIndex++) {\n\t\tconst task = input.step.parallel[taskIndex]!;\n\t\tinput.sessionFileForTask?.(task.agent, input.globalTaskIndex + taskIndex, effectiveModels[taskIndex]);\n\t}\n\n\tconst parallelResults = await mapConcurrent(\n\t\tinput.step.parallel,\n\t\tconcurrency,\n\t\tasync (task, taskIndex) => {\n\t\t\tif (aborted && failFast) {\n\t\t\t\treturn {\n\t\t\t\t\tagent: task.agent,\n\t\t\t\t\ttask: \"(skipped)\",\n\t\t\t\t\texitCode: -1,\n\t\t\t\t\tmessages: [],\n\t\t\t\t\tusage: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, cost: 0, turns: 0 },\n\t\t\t\t\terror: \"Skipped due to fail-fast\",\n\t\t\t\t} as SingleResult;\n\t\t\t}\n\n\t\t\tconst taskTemplate = input.parallelTemplates[taskIndex] ?? \"{previous}\";\n\t\t\tconst behavior = suppressProgressForReadOnlyTask(input.parallelBehaviors[taskIndex]!, taskTemplate, input.originalTask);\n\t\t\tconst taskAgentConfig = input.agents.find((agent) => agent.name === task.agent);\n\t\t\tconst templateHasPrevious = taskTemplate.includes(\"{previous}\");\n\t\t\tconst { prefix, suffix } = buildChainInstructions(\n\t\t\t\t{ ...behavior, output: false },\n\t\t\t\tinput.chainDir,\n\t\t\t\tfalse,\n\t\t\t\ttemplateHasPrevious ? undefined : input.prev,\n\t\t\t);\n\n\t\t\tlet taskStr = resolveOutputReferences(taskTemplate, input.outputs);\n\t\t\ttaskStr = taskStr.replace(/\\{task\\}/g, input.originalTask);\n\t\t\ttaskStr = taskStr.replace(/\\{previous\\}/g, input.prev);\n\t\t\ttaskStr = taskStr.replace(/\\{chain_dir\\}/g, input.chainDir);\n\t\t\tconst cleanTask = taskStr;\n\t\t\ttaskStr = prefix + taskStr + suffix;\n\n\t\t\tconst effectiveModel = effectiveModels[taskIndex];\n\t\t\tconst maxSubagentDepth = resolveChildMaxSubagentDepth(input.maxSubagentDepth, taskAgentConfig?.maxSubagentDepth);\n\t\t\tconst toolBudget = resolveChainToolBudget({ stepBudget: task.toolBudget, runBudget: input.toolBudget, agentBudget: taskAgentConfig?.toolBudget, configBudget: input.configToolBudget });\n\t\t\tif (toolBudget.error) throw new Error(toolBudget.error);\n\n\t\t\tconst taskCwd = input.worktreeSetup\n\t\t\t\t? input.worktreeSetup.worktrees[taskIndex]!.agentCwd\n\t\t\t\t: resolveChildCwd(input.cwd ?? input.ctx.cwd, task.cwd);\n\n\t\t\tconst outputPath = typeof behavior.output === \"string\"\n\t\t\t\t? (path.isAbsolute(behavior.output) ? behavior.output : path.join(input.chainDir, behavior.output))\n\t\t\t\t: undefined;\n\t\t\ttaskStr = injectSingleOutputInstruction(taskStr, outputPath, taskAgentConfig);\n\t\t\tconst interruptController = new AbortController();\n\t\t\tif (input.foregroundControl) {\n\t\t\t\tinput.foregroundControl.currentAgent = task.agent;\n\t\t\t\tinput.foregroundControl.currentIndex = input.globalTaskIndex + taskIndex;\n\t\t\t\tinput.foregroundControl.currentActivityState = undefined;\n\t\t\t\tinput.foregroundControl.updatedAt = Date.now();\n\t\t\t\tinput.foregroundControl.interrupt = () => {\n\t\t\t\t\tif (interruptController.signal.aborted) return false;\n\t\t\t\t\tinterruptController.abort();\n\t\t\t\t\tinput.foregroundControl!.currentActivityState = undefined;\n\t\t\t\t\tinput.foregroundControl!.updatedAt = Date.now();\n\t\t\t\t\treturn true;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst structuredRuntime = task.outputSchema\n\t\t\t\t? createStructuredOutputRuntime(task.outputSchema, path.join(input.chainDir, \"structured-output\"))\n\t\t\t\t: undefined;\n\t\t\tconst result = await runSync(input.ctx.cwd, input.agents, task.agent, taskStr, {\n\t\t\t\tparentSessionId: input.ctx.sessionManager.getSessionId() ?? undefined,\n\t\t\t\tcwd: taskCwd,\n\t\t\t\tsignal: input.signal,\n\t\t\t\tinterruptSignal: interruptController.signal,\n\t\t\t\tallowIntercomDetach: taskAgentConfig?.systemPrompt?.includes(INTERCOM_BRIDGE_MARKER) === true,\n\t\t\t\tintercomEvents: input.intercomEvents,\n\t\t\t\trunId: input.runId,\n\t\t\t\tindex: input.globalTaskIndex + taskIndex,\n\t\t\t\tsessionDir: input.sessionDirForIndex(input.globalTaskIndex + taskIndex),\n\t\t\t\tsessionFile: input.sessionFileForTask?.(task.agent, input.globalTaskIndex + taskIndex, effectiveModel)\n\t\t\t\t\t?? input.sessionFileForIndex?.(input.globalTaskIndex + taskIndex),\n\t\t\t\tthinkingOverride: input.thinkingOverrideForTask?.(task.agent, input.globalTaskIndex + taskIndex, effectiveModel),\n\t\t\t\tshare: input.shareEnabled,\n\t\t\t\tartifactsDir: input.artifactConfig.enabled ? input.artifactsDir : undefined,\n\t\t\t\tartifactConfig: input.artifactConfig,\n\t\t\t\toutputPath,\n\t\t\t\toutputMode: behavior.outputMode,\n\t\t\t\tmaxSubagentDepth,\n\t\t\t\tcontrolConfig: input.controlConfig,\n\t\t\t\tonControlEvent: input.onControlEvent,\n\t\t\t\tintercomSessionName: input.childIntercomTarget?.(task.agent, input.globalTaskIndex + taskIndex),\n\t\t\t\torchestratorIntercomTarget: input.orchestratorIntercomTarget,\n\t\t\t\tnestedRoute: input.nestedRoute,\n\t\t\t\tmodelOverride: effectiveModel,\n\t\t\t\tavailableModels: input.availableModels,\n\t\t\t\tpreferredModelProvider: input.ctx.model?.provider,\n\t\t\t\tmodelScope: input.modelScope,\n\t\t\t\tskills: behavior.skills === false ? [] : behavior.skills,\n\t\t\t\tstructuredOutput: structuredRuntime,\n\t\t\t\tacceptance: task.acceptance,\n\t\t\t\tacceptanceContext: { mode: \"chain\", dynamic: input.dynamic && task.acceptance === undefined },\n\t\t\t\ttimeoutMs: input.timeoutMs,\n\t\t\t\tdeadlineAt: input.deadlineAt,\n\t\t\t\tturnBudget: input.turnBudget,\n\t\t\t\tonDetachedExit: input.onDetachedExit\n\t\t\t\t\t? (result) => input.onDetachedExit?.(input.globalTaskIndex + taskIndex, result)\n\t\t\t\t\t: undefined,\n\t\t\t\ttoolBudget: toolBudget.toolBudget,\n\t\t\t\tonUpdate: input.onUpdate\n\t\t\t\t\t? (progressUpdate) => {\n\t\t\t\t\t\tconst stepResults = progressUpdate.details?.results || [];\n\t\t\t\t\t\tconst stepProgress = progressUpdate.details?.progress || [];\n\t\t\t\t\t\tif (input.foregroundControl && stepProgress.length > 0) {\n\t\t\t\t\t\t\tconst current = stepProgress[0];\n\t\t\t\t\t\t\tinput.foregroundControl.currentAgent = task.agent;\n\t\t\t\t\t\t\tinput.foregroundControl.currentIndex = input.globalTaskIndex + taskIndex;\n\t\t\t\t\t\t\tinput.foregroundControl.currentActivityState = current?.activityState;\n\t\t\t\t\t\t\tinput.foregroundControl.lastActivityAt = current?.lastActivityAt;\n\t\t\t\t\t\t\tinput.foregroundControl.currentTool = current?.currentTool;\n\t\t\t\t\t\t\tinput.foregroundControl.currentToolStartedAt = current?.currentToolStartedAt;\n\t\t\t\t\t\t\tinput.foregroundControl.currentPath = current?.currentPath;\n\t\t\t\t\t\t\tinput.foregroundControl.turnCount = current?.turnCount;\n\t\t\t\t\t\t\tinput.foregroundControl.tokens = current?.tokens;\n\t\t\t\t\t\t\tinput.foregroundControl.toolCount = current?.toolCount;\n\t\t\t\t\t\t\tinput.foregroundControl.updatedAt = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinput.onUpdate?.({\n\t\t\t\t\t\t\t...progressUpdate,\n\t\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\t\tmode: \"chain\",\n\t\t\t\t\t\t\t\tresults: input.results.concat(stepResults),\n\t\t\t\t\t\t\t\tprogress: input.allProgress.concat(stepProgress),\n\t\t\t\t\t\t\t\tcontrolEvents: progressUpdate.details?.controlEvents,\n\t\t\t\t\t\t\t\tchainAgents: input.chainAgents,\n\t\t\t\t\t\t\t\ttotalSteps: input.totalSteps,\n\t\t\t\t\t\t\t\tcurrentStepIndex: input.stepIndex,\n\t\t\t\t\t\t\t\toutputs: input.outputs,\n\t\t\t\t\t\t\t\tworkflowGraph: buildWorkflowGraphSnapshot({\n\t\t\t\t\t\t\t\t\trunId: input.runId,\n\t\t\t\t\t\t\t\t\tmode: \"chain\",\n\t\t\t\t\t\t\t\t\tsteps: input.chainSteps,\n\t\t\t\t\t\t\t\t\tresults: input.results.concat(stepResults),\n\t\t\t\t\t\t\t\t\tcurrentStepIndex: input.stepIndex,\n\t\t\t\t\t\t\t\t\tcurrentFlatIndex: input.globalTaskIndex + taskIndex,\n\t\t\t\t\t\t\t\t\tdynamicChildren: input.dynamicChildren,\n\t\t\t\t\t\t\t\t\tdynamicGroupStatuses: input.dynamicGroupStatuses,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t});\n\t\t\tif (input.foregroundControl?.currentIndex === input.globalTaskIndex + taskIndex) {\n\t\t\t\tinput.foregroundControl.interrupt = undefined;\n\t\t\t\tinput.foregroundControl.updatedAt = Date.now();\n\t\t\t}\n\n\t\t\tif (result.exitCode !== 0 && failFast) {\n\t\t\t\taborted = true;\n\t\t\t}\n\t\t\trecordRun(task.agent, cleanTask, result.exitCode, result.progressSummary?.durationMs ?? 0);\n\t\t\treturn result;\n\t\t},\n\t\tinput.globalSemaphore,\n\t);\n\n\treturn parallelResults;\n}\n\ninterface ChainExecutionParams {\n\tchain: ChainStep[];\n\ttask?: string;\n\tagents: AgentConfig[];\n\tctx: ExtensionContext;\n\tintercomEvents?: IntercomEventBus;\n\tsignal?: AbortSignal;\n\trunId: string;\n\tcwd?: string;\n\tshareEnabled: boolean;\n\tsessionDirForIndex: (idx?: number) => string | undefined;\n\tsessionFileForIndex?: (idx?: number) => string | undefined;\n\tsessionFileForTask?: (agentName: string, idx?: number, modelOverride?: string) => string | undefined;\n\tthinkingOverrideForTask?: (agentName: string, idx?: number, modelOverride?: string) => AgentConfig[\"thinking\"] | undefined;\n\tartifactsDir: string;\n\tartifactConfig: ArtifactConfig;\n\tincludeProgress?: boolean;\n\tclarify?: boolean;\n\tonUpdate?: (r: AgentToolResult<Details>) => void;\n\tonControlEvent?: (event: ControlEvent) => void;\n\tcontrolConfig: ResolvedControlConfig;\n\tchildIntercomTarget?: (agent: string, index: number) => string | undefined;\n\torchestratorIntercomTarget?: string;\n\tforegroundControl?: {\n\t\tupdatedAt: number;\n\t\tcurrentAgent?: string;\n\t\tcurrentIndex?: number;\n\t\tcurrentActivityState?: ActivityState;\n\t\tlastActivityAt?: number;\n\t\tcurrentTool?: string;\n\t\tcurrentToolStartedAt?: number;\n\t\tcurrentPath?: string;\n\t\tturnCount?: number;\n\t\ttokens?: number;\n\t\ttoolCount?: number;\n\t\tinterrupt?: () => boolean;\n\t};\n\tchainSkills?: string[];\n\tchainDir?: string;\n\tdynamicFanoutMaxItems?: number;\n\tmaxSubagentDepth: number;\n\tnestedRoute?: NestedRouteInfo;\n\tworktreeSetupHook?: string;\n\tworktreeSetupHookTimeoutMs?: number;\n\tworktreeBaseDir?: string;\n\ttimeoutMs?: number;\n\tdeadlineAt?: number;\n\tturnBudget?: ResolvedTurnBudget;\n\tonDetachedExit?: (index: number, result: SingleResult) => void;\n\ttoolBudget?: ResolvedToolBudget;\n\tconfigToolBudget?: ToolBudgetConfig;\n\t/** Global cap on simultaneously-running tasks within this chain. Defaults to DEFAULT_GLOBAL_CONCURRENCY_LIMIT. */\n\tglobalConcurrencyLimit?: number;\n}\n\ninterface ChainExecutionResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tdetails: Details;\n\tisError?: boolean;\n\t/** User requested async execution via TUI - caller should dispatch to executeAsyncChain */\n\trequestedAsync?: {\n\t\tchain: ChainStep[];\n\t\tchainSkills: string[];\n\t};\n}\n\n/**\n * Execute a chain of subagent steps\n */\nexport async function executeChain(params: ChainExecutionParams): Promise<ChainExecutionResult> {\n\tconst {\n\t\tchain: chainSteps,\n\t\tagents,\n\t\tctx,\n\t\tsignal,\n\t\trunId,\n\t\tcwd,\n\t\tshareEnabled,\n\t\tsessionDirForIndex,\n\t\tsessionFileForIndex,\n\t\tsessionFileForTask,\n\t\tthinkingOverrideForTask,\n\t\tartifactsDir,\n\t\tartifactConfig,\n\t\tincludeProgress,\n\t\tclarify,\n\t\tonUpdate,\n\t\tonControlEvent,\n\t\tcontrolConfig,\n\t\tonDetachedExit,\n\t\tchildIntercomTarget,\n\t\torchestratorIntercomTarget,\n\t\tforegroundControl,\n\t\tintercomEvents,\n\t\tchainSkills: chainSkillsParam,\n\t\tchainDir: chainDirBase,\n\t\tmodelScope,\n\t} = params;\n\tconst chainSkills = chainSkillsParam ?? [];\n\n\tconst results: SingleResult[] = [];\n\tconst outputs: ChainOutputMap = {};\n\tconst dynamicChildren: ChainExecutionDetailsInput[\"dynamicChildren\"] = {};\n\tconst dynamicGroupStatuses: ChainExecutionDetailsInput[\"dynamicGroupStatuses\"] = {};\n\tconst allProgress: AgentProgress[] = [];\n\tconst allArtifactPaths: ArtifactPaths[] = [];\n\n\tconst chainAgents: string[] = chainSteps.map((step) =>\n\t\tisParallelStep(step)\n\t\t\t? `[${step.parallel.map((t) => t.agent).join(\"+\")}]`\n\t\t\t: isDynamicParallelStep(step)\n\t\t\t\t? `expand:${step.parallel.agent}`\n\t\t\t: (step as SequentialStep).agent,\n\t);\n\tconst totalSteps = chainSteps.length;\n\n\tconst makeDetailsInput = (overrides: Pick<Partial<ChainExecutionDetailsInput>, \"currentStepIndex\" | \"currentFlatIndex\"> = {}): ChainExecutionDetailsInput => ({\n\t\tresults,\n\t\t...(includeProgress !== undefined ? { includeProgress } : {}),\n\t\tallProgress,\n\t\tallArtifactPaths,\n\t\tartifactsDir,\n\t\tchainAgents,\n\t\tchainSteps,\n\t\ttotalSteps,\n\t\trunId,\n\t\toutputs,\n\t\tdynamicChildren,\n\t\tdynamicGroupStatuses,\n\t\t...overrides,\n\t});\n\n\tconst firstStep = chainSteps[0]!;\n\tconst originalTask = params.task\n\t\t?? (isParallelStep(firstStep)\n\t\t\t? firstStep.parallel[0]!.task!\n\t\t\t: isDynamicParallelStep(firstStep)\n\t\t\t\t? firstStep.parallel.task!\n\t\t\t\t: (firstStep as SequentialStep).task!);\n\ttry {\n\t\tvalidateChainOutputBindings(chainSteps, { maxItems: params.dynamicFanoutMaxItems });\n\t} catch (error) {\n\t\tif (error instanceof ChainOutputValidationError) {\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: error.message }],\n\t\t\t\tisError: true,\n\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput()),\n\t\t\t};\n\t\t}\n\t\tthrow error;\n\t}\n\n\tconst chainDir = createChainDir(runId, chainDirBase);\n\tconst hasParallelSteps = chainSteps.some((step) => isParallelStep(step) || isDynamicParallelStep(step));\n\tlet templates: ResolvedTemplates = resolveChainTemplates(chainSteps);\n\tconst shouldClarify = clarify === true && ctx.hasUI && !hasParallelSteps;\n\tlet tuiBehaviorOverrides: (BehaviorOverride | undefined)[] | undefined;\n\tconst availableModels: ModelInfo[] = ctx.modelRegistry.getAvailable().map(toModelInfo);\n\tconst availableSkills = discoverAvailableSkills(cwd ?? ctx.cwd);\n\n\tif (shouldClarify) {\n\t\tconst seqSteps = chainSteps as SequentialStep[];\n\t\tconst agentConfigs: AgentConfig[] = [];\n\t\tfor (const step of seqSteps) {\n\t\t\tconst config = agents.find((a) => a.name === step.agent);\n\t\t\tif (!config) {\n\t\t\t\tremoveChainDir(chainDir);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Unknown agent: ${step.agent}` }],\n\t\t\t\t\tisError: true,\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({ currentStepIndex: seqSteps.indexOf(step) })),\n\t\t\t\t};\n\t\t\t}\n\t\t\tagentConfigs.push(config);\n\t\t}\n\n\t\tconst stepOverrides: StepOverrides[] = seqSteps.map((step) => ({\n\t\t\toutput: step.output,\n\t\t\toutputMode: step.outputMode,\n\t\t\treads: step.reads,\n\t\t\tprogress: step.progress,\n\t\t\tskills: normalizeSkillInput(step.skill),\n\t\t\tmodel: step.model,\n\t\t}));\n\n\t\tconst resolvedBehaviors = agentConfigs.map((config, i) =>\n\t\t\tresolveStepBehavior(config, stepOverrides[i]!, chainSkills),\n\t\t);\n\t\tconst flatTemplates = templates as string[];\n\n\t\tconst result = await ctx.ui.custom<ChainClarifyResult>(\n\t\t\t(tui, theme, _kb, done) =>\n\t\t\t\tnew ChainClarifyComponent(\n\t\t\t\t\ttui,\n\t\t\t\t\ttheme,\n\t\t\t\t\tagentConfigs,\n\t\t\t\t\tflatTemplates,\n\t\t\t\t\toriginalTask,\n\t\t\t\t\tchainDir,\n\t\t\t\t\tresolvedBehaviors,\n\t\t\t\t\tavailableModels,\n\t\t\t\t\tctx.model?.provider,\n\t\t\t\t\tavailableSkills,\n\t\t\t\t\tdone,\n\t\t\t\t),\n\t\t\t{\n\t\t\t\toverlay: true,\n\t\t\t\toverlayOptions: { anchor: \"center\", width: 84, maxHeight: \"80%\" },\n\t\t\t},\n\t\t);\n\n\t\tif (!result || !result.confirmed) {\n\t\t\tremoveChainDir(chainDir);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: \"Chain cancelled\" }],\n\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput()),\n\t\t\t};\n\t\t}\n\n\t\tif (result.runInBackground) {\n\t\t\tremoveChainDir(chainDir);\n\t\t\tconst updatedChain: ChainStep[] = chainSteps.map((step, i) => {\n\t\t\t\tif (isParallelStep(step)) return step;\n\t\t\t\tconst override = result.behaviorOverrides[i];\n\t\t\t\treturn {\n\t\t\t\t\t...step,\n\t\t\t\t\ttask: result.templates[i]!,\n\t\t\t\t\t...(override?.model !== undefined ? { model: override.model } : {}),\n\t\t\t\t\t...(override?.output !== undefined ? { output: override.output } : {}),\n\t\t\t\t\t...(\"outputMode\" in step && step.outputMode !== undefined ? { outputMode: step.outputMode } : {}),\n\t\t\t\t\t...(override?.reads !== undefined ? { reads: override.reads } : {}),\n\t\t\t\t\t...(override?.progress !== undefined ? { progress: override.progress } : {}),\n\t\t\t\t\t...(override?.skills !== undefined ? { skill: override.skills } : {}),\n\t\t\t\t};\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: \"Launching in background...\" }],\n\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput()),\n\t\t\t\trequestedAsync: { chain: updatedChain, chainSkills },\n\t\t\t};\n\t\t}\n\n\t\ttemplates = result.templates;\n\t\ttuiBehaviorOverrides = result.behaviorOverrides;\n\t}\n\n\tconst deadlineAt = params.deadlineAt ?? (params.timeoutMs !== undefined ? Date.now() + params.timeoutMs : undefined);\n\tconst globalSemaphore = new Semaphore(params.globalConcurrencyLimit ?? DEFAULT_GLOBAL_CONCURRENCY_LIMIT);\n\tlet prev = \"\";\n\tlet globalTaskIndex = 0;\n\tlet progressCreated = false;\n\n\tfor (let stepIndex = 0; stepIndex < chainSteps.length; stepIndex++) {\n\t\tconst step = chainSteps[stepIndex]!;\n\t\tconst stepTemplates = templates[stepIndex]!;\n\n\t\tif (isParallelStep(step)) {\n\t\t\tconst parallelTemplates = stepTemplates as string[];\n\t\t\tconst parallelCwd = resolveChildCwd(cwd ?? ctx.cwd, step.cwd);\n\t\t\tlet worktreeSetup: WorktreeSetup | undefined;\n\t\t\tif (step.worktree) {\n\t\t\t\tconst worktreeTaskCwdConflict = findWorktreeTaskCwdConflict(step.parallel, parallelCwd);\n\t\t\t\tif (worktreeTaskCwdConflict) {\n\t\t\t\t\treturn buildChainExecutionErrorResult(\n\t\t\t\t\t\t`parallel chain step ${stepIndex + 1}: ${formatWorktreeTaskCwdConflict(worktreeTaskCwdConflict, parallelCwd)}`,\n\t\t\t\t\t\tmakeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tworktreeSetup = createWorktrees(parallelCwd, `${runId}-s${stepIndex}`, step.parallel.length, {\n\t\t\t\t\t\tagents: step.parallel.map((task) => task.agent),\n\t\t\t\t\t\tsetupHook: params.worktreeSetupHook\n\t\t\t\t\t\t\t? { hookPath: params.worktreeSetupHook, timeoutMs: params.worktreeSetupHookTimeoutMs }\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tbaseDir: params.worktreeBaseDir,\n\t\t\t\t\t});\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\t\t\treturn buildChainExecutionErrorResult(message, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst agentNames = step.parallel.map((task) => task.agent);\n\t\t\t\tconst parallelBehaviors = resolveParallelBehaviors(step.parallel, agents, stepIndex, chainSkills)\n\t\t\t\t\t.map((behavior, taskIndex) => suppressProgressForReadOnlyTask(behavior, parallelTemplates[taskIndex] ?? step.parallel[taskIndex]?.task, originalTask));\n\t\t\t\tfor (let taskIndex = 0; taskIndex < step.parallel.length; taskIndex++) {\n\t\t\t\t\tconst behavior = parallelBehaviors[taskIndex]!;\n\t\t\t\t\tconst outputPath = typeof behavior.output === \"string\"\n\t\t\t\t\t\t? (path.isAbsolute(behavior.output) ? behavior.output : path.join(chainDir, behavior.output))\n\t\t\t\t\t\t: undefined;\n\t\t\t\t\tconst validationError = validateFileOnlyOutputMode(behavior.outputMode, outputPath, `Parallel chain step ${stepIndex + 1} task ${taskIndex + 1} (${step.parallel[taskIndex]!.agent})`);\n\t\t\t\t\tif (validationError) return buildChainExecutionErrorResult(validationError, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex + taskIndex }));\n\t\t\t\t}\n\t\t\t\tprogressCreated = ensureParallelProgressFile(chainDir, progressCreated, parallelBehaviors);\n\t\t\t\tcreateParallelDirs(chainDir, stepIndex, step.parallel.length, agentNames);\n\n\t\t\t\tconst parallelResults = await runParallelChainTasks({\n\t\t\t\t\tstep,\n\t\t\t\t\tparallelTemplates,\n\t\t\t\t\tparallelBehaviors,\n\t\t\t\t\tagents,\n\t\t\t\t\tstepIndex,\n\t\t\t\t\tavailableModels,\n\t\t\t\t\tmodelScope,\n\t\t\t\t\tchainDir,\n\t\t\t\t\tprev,\n\t\t\t\t\toriginalTask,\n\t\t\t\t\tctx,\n\t\t\t\t\tintercomEvents,\n\t\t\t\t\tcwd,\n\t\t\t\t\trunId,\n\t\t\t\t\tglobalTaskIndex,\n\t\t\t\t\tsessionDirForIndex,\n\t\t\t\t\tsessionFileForIndex,\n\t\t\t\t\tsessionFileForTask,\n\t\t\t\t\tthinkingOverrideForTask,\n\t\t\t\t\tshareEnabled,\n\t\t\t\t\tartifactConfig,\n\t\t\t\t\tartifactsDir,\n\t\t\t\t\tsignal,\n\t\t\t\t\tonUpdate,\n\t\t\t\t\tresults,\n\t\t\t\t\tallProgress,\n\t\t\t\t\toutputs,\n\t\t\t\t\tchainAgents,\n\t\t\t\t\tchainSteps,\n\t\t\t\t\ttotalSteps,\n\t\t\t\t\tdynamicChildren,\n\t\t\t\t\tdynamicGroupStatuses,\n\t\t\t\t\tcontrolConfig,\n\t\t\t\t\tonControlEvent,\n\t\t\t\t\tchildIntercomTarget,\n\t\t\t\t\torchestratorIntercomTarget,\n\t\t\t\t\tforegroundControl,\n\t\t\t\t\tnestedRoute: params.nestedRoute,\n\t\t\t\t\tworktreeSetup,\n\t\t\t\t\tmaxSubagentDepth: params.maxSubagentDepth,\n\t\t\t\t\ttimeoutMs: params.timeoutMs,\n\t\t\t\t\tdeadlineAt,\n\t\t\t\t\tturnBudget: params.turnBudget,\n\t\t\t\t\tonDetachedExit,\n\t\t\t\t\ttoolBudget: params.toolBudget,\n\t\t\t\t\tconfigToolBudget: params.configToolBudget,\n\t\t\t\t\tglobalSemaphore,\n\t\t\t\t});\n\t\t\t\tglobalTaskIndex += step.parallel.length;\n\n\t\t\t\tfor (const result of parallelResults) {\n\t\t\t\t\tresults.push(result);\n\t\t\t\t\tif (result.progress) allProgress.push(result.progress);\n\t\t\t\t\tif (result.artifactPaths) allArtifactPaths.push(result.artifactPaths);\n\t\t\t\t}\n\t\t\t\tconst interruptedIndexInStep = parallelResults.findIndex((result) => result.interrupted);\n\t\t\t\tconst interrupted = interruptedIndexInStep >= 0 ? parallelResults[interruptedIndexInStep] : undefined;\n\t\t\t\tif (interrupted) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain paused after interrupt at step ${stepIndex + 1} (${interrupted.agent}). Waiting for explicit next action.` }],\n\t\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\t\tcurrentFlatIndex: globalTaskIndex - step.parallel.length + interruptedIndexInStep,\n\t\t\t\t\t\t})),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst detachedIndexInStep = parallelResults.findIndex((result) => result.detached);\n\t\t\t\tconst detached = detachedIndexInStep >= 0 ? parallelResults[detachedIndexInStep] : undefined;\n\t\t\t\tif (detached) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain detached for intercom coordination at step ${stepIndex + 1} (${detached.agent}). Reply to the supervisor request first, then wait with subagent_wait({ id: \"${runId}\" }). Use subagent({ action: \"status\", id: \"${runId}\" }) to recover the result; do not resume or launch a replacement while it remains detached.` }],\n\t\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\t\tcurrentFlatIndex: globalTaskIndex - step.parallel.length + detachedIndexInStep,\n\t\t\t\t\t\t})),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst failures = parallelResults\n\t\t\t\t\t.map((result, originalIndex) => ({ ...result, originalIndex }))\n\t\t\t\t\t.filter((result) => result.exitCode !== 0 && result.exitCode !== -1);\n\t\t\t\tif (failures.length > 0) {\n\t\t\t\t\tconst failureSummary = failures\n\t\t\t\t\t\t.map((failure) => `- Task ${failure.originalIndex + 1} (${failure.agent}): ${failure.error || \"failed\"}`)\n\t\t\t\t\t\t.join(\"\\n\");\n\t\t\t\t\tconst errorMsg = `Parallel step ${stepIndex + 1} failed:\\n${failureSummary}`;\n\t\t\t\t\tconst summary = buildChainSummary(chainSteps, results, chainDir, \"failed\", {\n\t\t\t\t\t\tindex: stepIndex,\n\t\t\t\t\t\terror: errorMsg,\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontent: [{ type: \"text\", text: summary }],\n\t\t\t\t\t\tisError: true,\n\t\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\t\tcurrentFlatIndex: globalTaskIndex - step.parallel.length + failures[0]!.originalIndex,\n\t\t\t\t\t\t})),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tfor (let taskIndex = 0; taskIndex < parallelResults.length; taskIndex++) {\n\t\t\t\t\tconst outputName = step.parallel[taskIndex]?.as;\n\t\t\t\t\tif (outputName) outputs[outputName] = outputEntryFromResult(parallelResults[taskIndex]!, stepIndex);\n\t\t\t\t}\n\n\t\t\t\tconst taskResults: ParallelTaskResult[] = parallelResults.map((result, i) => {\n\t\t\t\t\tconst outputTarget = parallelBehaviors[i]?.output;\n\t\t\t\t\tconst outputTargetPath = typeof outputTarget === \"string\"\n\t\t\t\t\t\t? (path.isAbsolute(outputTarget) ? outputTarget : path.join(chainDir, outputTarget))\n\t\t\t\t\t\t: undefined;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tagent: result.agent,\n\t\t\t\t\t\ttaskIndex: i,\n\t\t\t\t\t\toutput: getSingleResultOutput(result),\n\t\t\t\t\t\texitCode: result.exitCode,\n\t\t\t\t\t\terror: result.error,\n\t\t\t\t\t\ttimedOut: result.timedOut,\n\t\t\t\t\t\toutputTargetPath,\n\t\t\t\t\t\toutputTargetExists: outputTargetPath ? fs.existsSync(outputTargetPath) : undefined,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tprev = aggregateParallelOutputs(taskResults);\n\t\t\t\tprev = appendParallelWorktreeSummary(\n\t\t\t\t\tprev,\n\t\t\t\t\tworktreeSetup,\n\t\t\t\t\tpath.join(chainDir, \"worktree-diffs\", `step-${stepIndex}`),\n\t\t\t\t\tagentNames,\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tif (worktreeSetup) cleanupWorktrees(worktreeSetup);\n\t\t\t}\n\t\t} else if (isDynamicParallelStep(step)) {\n\t\t\tconst dynamicStartIndex = globalTaskIndex;\n\t\t\tconst reservedDynamicItems = step.expand.maxItems ?? params.dynamicFanoutMaxItems ?? 0;\n\t\t\tlet materialized: ReturnType<typeof materializeDynamicParallelStep>;\n\t\t\ttry {\n\t\t\t\tmaterialized = materializeDynamicParallelStep(step, outputs, stepIndex, { maxItems: params.dynamicFanoutMaxItems });\n\t\t\t} catch (error) {\n\t\t\t\tconst message = error instanceof DynamicFanoutError ? error.message : error instanceof Error ? error.message : String(error);\n\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: message };\n\t\t\t\treturn buildChainExecutionErrorResult(message, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }));\n\t\t\t}\n\n\t\t\tdynamicChildren[stepIndex] = materialized.items.map((item, itemIndex) => ({\n\t\t\t\tagent: step.parallel.agent,\n\t\t\t\tlabel: materialized.parallel[itemIndex]?.label,\n\t\t\t\tflatIndex: globalTaskIndex + itemIndex,\n\t\t\t\titemKey: item.key,\n\t\t\t\tstructured: Boolean(step.parallel.outputSchema),\n\t\t\t}));\n\n\t\t\tif (materialized.parallel.length === 0) {\n\t\t\t\tconst collection: DynamicCollectedResult[] = [];\n\t\t\t\ttry {\n\t\t\t\t\tvalidateDynamicCollection(step.collect.outputSchema, collection);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst message = error instanceof DynamicFanoutError ? error.message : error instanceof Error ? error.message : String(error);\n\t\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: message };\n\t\t\t\t\treturn buildChainExecutionErrorResult(message, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }));\n\t\t\t\t}\n\t\t\t\toutputs[step.collect.as] = {\n\t\t\t\t\ttext: JSON.stringify(collection),\n\t\t\t\t\tstructured: collection,\n\t\t\t\t\tagent: step.parallel.agent,\n\t\t\t\t\tstepIndex,\n\t\t\t\t};\n\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"completed\" };\n\t\t\t\tif (step.acceptance !== undefined) {\n\t\t\t\t\tconst effectiveGroupAcceptance = resolveEffectiveAcceptance({\n\t\t\t\t\t\texplicit: step.acceptance,\n\t\t\t\t\t\tagentName: step.parallel.agent,\n\t\t\t\t\t\tacceptanceRole: agents.find((agent) => agent.name === step.parallel.agent)?.acceptanceRole,\n\t\t\t\t\t\ttask: (step.parallel.task ?? originalTask ?? \"\").replace(/\\{task\\}/g, originalTask ?? \"\"),\n\t\t\t\t\t\tmode: \"chain\",\n\t\t\t\t\t\tdynamicGroup: true,\n\t\t\t\t\t});\n\t\t\t\t\tconst groupAcceptance = await evaluateAcceptance({\n\t\t\t\t\t\tacceptance: effectiveGroupAcceptance,\n\t\t\t\t\t\toutput: \"\",\n\t\t\t\t\t\treport: aggregateAcceptanceReport({\n\t\t\t\t\t\t\tresults: [],\n\t\t\t\t\t\t\tnotes: \"Dynamic fanout produced 0 results.\",\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tcwd: cwd ?? ctx.cwd,\n\t\t\t\t\t});\n\t\t\t\t\tdynamicGroupStatuses[stepIndex].acceptance = groupAcceptance;\n\t\t\t\t\tconst groupAcceptanceFailure = acceptanceFailureMessage(groupAcceptance);\n\t\t\t\t\tif (groupAcceptanceFailure) {\n\t\t\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: groupAcceptanceFailure, acceptance: groupAcceptance };\n\t\t\t\t\t\treturn buildChainExecutionErrorResult(groupAcceptanceFailure, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tprev = \"Dynamic fanout produced 0 results.\";\n\t\t\t\tglobalTaskIndex = dynamicStartIndex + reservedDynamicItems;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst dynamicParallelStep: ParallelStep = {\n\t\t\t\tparallel: materialized.parallel,\n\t\t\t\tconcurrency: step.concurrency,\n\t\t\t\tfailFast: step.failFast,\n\t\t\t};\n\t\t\tconst parallelTemplates = materialized.parallel.map((task) => task.task ?? \"{previous}\");\n\t\t\tconst parallelBehaviors = resolveParallelBehaviors(dynamicParallelStep.parallel, agents, stepIndex, chainSkills)\n\t\t\t\t.map((behavior, taskIndex) => suppressProgressForReadOnlyTask(behavior, parallelTemplates[taskIndex] ?? dynamicParallelStep.parallel[taskIndex]?.task, originalTask));\n\n\t\t\tfor (let taskIndex = 0; taskIndex < dynamicParallelStep.parallel.length; taskIndex++) {\n\t\t\t\tconst behavior = parallelBehaviors[taskIndex]!;\n\t\t\t\tconst outputPath = typeof behavior.output === \"string\"\n\t\t\t\t\t? (path.isAbsolute(behavior.output) ? behavior.output : path.join(chainDir, behavior.output))\n\t\t\t\t\t: undefined;\n\t\t\t\tconst validationError = validateFileOnlyOutputMode(behavior.outputMode, outputPath, `Dynamic chain step ${stepIndex + 1} item ${taskIndex + 1} (${dynamicParallelStep.parallel[taskIndex]!.agent})`);\n\t\t\t\tif (validationError) {\n\t\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: validationError };\n\t\t\t\t\treturn buildChainExecutionErrorResult(validationError, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex + taskIndex }));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tprogressCreated = ensureParallelProgressFile(chainDir, progressCreated, parallelBehaviors);\n\t\t\tcreateParallelDirs(chainDir, stepIndex, dynamicParallelStep.parallel.length, dynamicParallelStep.parallel.map((task) => task.agent));\n\t\t\tconst parallelResults = await runParallelChainTasks({\n\t\t\t\tstep: dynamicParallelStep,\n\t\t\t\tparallelTemplates,\n\t\t\t\tparallelBehaviors,\n\t\t\t\tagents,\n\t\t\t\tstepIndex,\n\t\t\t\tavailableModels,\n\t\t\t\tmodelScope,\n\t\t\t\tchainDir,\n\t\t\t\tprev,\n\t\t\t\toriginalTask,\n\t\t\t\tctx,\n\t\t\t\tintercomEvents,\n\t\t\t\tcwd,\n\t\t\t\trunId,\n\t\t\t\tglobalTaskIndex,\n\t\t\t\tsessionDirForIndex,\n\t\t\t\tsessionFileForIndex,\n\t\t\t\tsessionFileForTask,\n\t\t\t\tthinkingOverrideForTask,\n\t\t\t\tshareEnabled,\n\t\t\t\tartifactConfig,\n\t\t\t\tartifactsDir,\n\t\t\t\tsignal,\n\t\t\t\tonUpdate,\n\t\t\t\tresults,\n\t\t\t\tallProgress,\n\t\t\t\toutputs,\n\t\t\t\tchainAgents,\n\t\t\t\tchainSteps,\n\t\t\t\ttotalSteps,\n\t\t\t\tdynamicChildren,\n\t\t\t\tdynamicGroupStatuses,\n\t\t\t\tcontrolConfig,\n\t\t\t\tonControlEvent,\n\t\t\t\tchildIntercomTarget,\n\t\t\t\torchestratorIntercomTarget,\n\t\t\t\tforegroundControl,\n\t\t\t\tnestedRoute: params.nestedRoute,\n\t\t\t\tmaxSubagentDepth: params.maxSubagentDepth,\n\t\t\t\ttimeoutMs: params.timeoutMs,\n\t\t\t\tdeadlineAt,\n\t\t\t\tturnBudget: params.turnBudget,\n\t\t\t\tonDetachedExit,\n\t\t\t\ttoolBudget: params.toolBudget,\n\t\t\t\tconfigToolBudget: params.configToolBudget,\n\t\t\t\tglobalSemaphore,\n\t\t\t\tdynamic: true,\n\t\t\t});\n\t\t\tglobalTaskIndex = dynamicStartIndex + reservedDynamicItems;\n\n\t\t\tfor (const result of parallelResults) {\n\t\t\t\tresults.push(result);\n\t\t\t\tif (result.progress) allProgress.push(result.progress);\n\t\t\t\tif (result.artifactPaths) allArtifactPaths.push(result.artifactPaths);\n\t\t\t}\n\t\t\tconst collected = collectDynamicResults(step, materialized.items, parallelResults);\n\t\t\tconst interruptedIndexInStep = parallelResults.findIndex((result) => result.interrupted);\n\t\t\tconst interrupted = interruptedIndexInStep >= 0 ? parallelResults[interruptedIndexInStep] : undefined;\n\t\t\tif (interrupted) {\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain paused after interrupt at step ${stepIndex + 1} (${interrupted.agent}). Waiting for explicit next action.` }],\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\tcurrentFlatIndex: dynamicStartIndex + interruptedIndexInStep,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst detachedIndexInStep = parallelResults.findIndex((result) => result.detached);\n\t\t\tconst detached = detachedIndexInStep >= 0 ? parallelResults[detachedIndexInStep] : undefined;\n\t\t\tif (detached) {\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain detached for intercom coordination at step ${stepIndex + 1} (${detached.agent}). Reply to the supervisor request first, then wait with subagent_wait({ id: \"${runId}\" }). Use subagent({ action: \"status\", id: \"${runId}\" }) to recover the result; do not resume or launch a replacement while it remains detached.` }],\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\tcurrentFlatIndex: dynamicStartIndex + detachedIndexInStep,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst failures = parallelResults\n\t\t\t\t.map((result, originalIndex) => ({ ...result, originalIndex }))\n\t\t\t\t.filter((result) => result.exitCode !== 0 && result.exitCode !== -1);\n\t\t\tif (failures.length > 0) {\n\t\t\t\tconst failureSummary = failures\n\t\t\t\t\t.map((failure) => `- Item ${failure.originalIndex + 1} (${failure.agent}, key ${materialized.items[failure.originalIndex]?.key ?? failure.originalIndex}): ${failure.error || \"failed\"}`)\n\t\t\t\t\t.join(\"\\n\");\n\t\t\t\tconst errorMsg = `Dynamic step ${stepIndex + 1} failed:\\n${failureSummary}`;\n\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: errorMsg };\n\t\t\t\tconst summary = buildChainSummary(chainSteps, results, chainDir, \"failed\", {\n\t\t\t\t\tindex: stepIndex,\n\t\t\t\t\terror: errorMsg,\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: summary }],\n\t\t\t\t\tisError: true,\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\tcurrentFlatIndex: dynamicStartIndex + failures[0]!.originalIndex,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tvalidateDynamicCollection(step.collect.outputSchema, collected);\n\t\t\t} catch (error) {\n\t\t\t\tconst message = error instanceof DynamicFanoutError ? error.message : error instanceof Error ? error.message : String(error);\n\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: message };\n\t\t\t\treturn buildChainExecutionErrorResult(message, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: dynamicStartIndex }));\n\t\t\t}\n\t\t\toutputs[step.collect.as] = {\n\t\t\t\ttext: JSON.stringify(collected),\n\t\t\t\tstructured: collected,\n\t\t\t\tagent: step.parallel.agent,\n\t\t\t\tstepIndex,\n\t\t\t};\n\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"completed\" };\n\t\t\tconst effectiveGroupAcceptance = resolveEffectiveAcceptance({\n\t\t\t\texplicit: step.acceptance,\n\t\t\t\tagentName: step.parallel.agent,\n\t\t\t\tacceptanceRole: agents.find((agent) => agent.name === step.parallel.agent)?.acceptanceRole,\n\t\t\t\ttask: materialized.parallel\n\t\t\t\t\t.map((task) => (task.task ?? originalTask ?? \"\").replace(/\\{task\\}/g, originalTask ?? \"\"))\n\t\t\t\t\t.join(\"\\n\"),\n\t\t\t\tmode: \"chain\",\n\t\t\t\tdynamicGroup: true,\n\t\t\t});\n\t\t\tconst groupAcceptance = await evaluateAcceptance({\n\t\t\t\tacceptance: effectiveGroupAcceptance,\n\t\t\t\toutput: \"\",\n\t\t\t\treport: aggregateAcceptanceReport({\n\t\t\t\t\tresults: parallelResults,\n\t\t\t\t\tnotes: `Dynamic fanout collected ${collected.length} result(s) into ${step.collect.as}.`,\n\t\t\t\t}),\n\t\t\t\tcwd: cwd ?? ctx.cwd,\n\t\t\t});\n\t\t\tdynamicGroupStatuses[stepIndex].acceptance = groupAcceptance;\n\t\t\tconst groupAcceptanceFailure = effectiveGroupAcceptance.explicit ? acceptanceFailureMessage(groupAcceptance) : undefined;\n\t\t\tif (groupAcceptanceFailure) {\n\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: groupAcceptanceFailure, acceptance: groupAcceptance };\n\t\t\t\treturn buildChainExecutionErrorResult(groupAcceptanceFailure, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex - dynamicParallelStep.parallel.length }));\n\t\t\t}\n\t\t\tconst taskResults: ParallelTaskResult[] = parallelResults.map((result, i) => ({\n\t\t\t\tagent: result.agent,\n\t\t\t\ttaskIndex: i,\n\t\t\t\toutput: getSingleResultOutput(result),\n\t\t\t\texitCode: result.exitCode,\n\t\t\t\terror: result.error,\n\t\t\t\ttimedOut: result.timedOut,\n\t\t\t}));\n\t\t\tprev = aggregateParallelOutputs(taskResults, (i, agent) => `=== Dynamic Item ${i + 1} (${agent}, key ${materialized.items[i]?.key ?? i}) ===`);\n\t\t} else {\n\t\t\tconst seqStep = step as SequentialStep;\n\t\t\tconst stepTemplate = stepTemplates as string;\n\n\t\t\tconst agentConfig = agents.find((a) => a.name === seqStep.agent);\n\t\t\tif (!agentConfig) {\n\t\t\t\tremoveChainDir(chainDir);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Unknown agent: ${seqStep.agent}` }],\n\t\t\t\t\tisError: true,\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex })),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst tuiOverride = tuiBehaviorOverrides?.[stepIndex];\n\t\t\tconst stepOverride: StepOverrides = {\n\t\t\t\toutput: tuiOverride?.output !== undefined ? tuiOverride.output : seqStep.output,\n\t\t\t\toutputMode: seqStep.outputMode,\n\t\t\t\treads: tuiOverride?.reads !== undefined ? tuiOverride.reads : seqStep.reads,\n\t\t\t\tprogress: tuiOverride?.progress !== undefined ? tuiOverride.progress : seqStep.progress,\n\t\t\t\tskills:\n\t\t\t\t\ttuiOverride?.skills !== undefined\n\t\t\t\t\t\t? tuiOverride.skills\n\t\t\t\t\t\t: normalizeSkillInput(seqStep.skill),\n\t\t\t};\n\t\t\tconst behavior = suppressProgressForReadOnlyTask(resolveStepBehavior(agentConfig, stepOverride, chainSkills), stepTemplate, originalTask);\n\n\t\t\tconst isFirstProgress = behavior.progress && !progressCreated;\n\t\t\tif (isFirstProgress) {\n\t\t\t\tprogressCreated = true;\n\t\t\t}\n\n\t\t\tconst templateHasPrevious = stepTemplate.includes(\"{previous}\");\n\t\t\tconst { prefix, suffix } = buildChainInstructions(\n\t\t\t\t{ ...behavior, output: false },\n\t\t\t\tchainDir,\n\t\t\t\tisFirstProgress,\n\t\t\t\ttemplateHasPrevious ? undefined : prev,\n\t\t\t);\n\n\t\t\tlet stepTask = resolveOutputReferences(stepTemplate, outputs);\n\t\t\tstepTask = stepTask.replace(/\\{task\\}/g, originalTask);\n\t\t\tstepTask = stepTask.replace(/\\{previous\\}/g, prev);\n\t\t\tstepTask = stepTask.replace(/\\{chain_dir\\}/g, chainDir);\n\t\t\tconst cleanTask = stepTask;\n\t\t\tstepTask = prefix + stepTask + suffix;\n\n\t\t\t// lunr: model tiers — explicit step model wins; otherwise resolve seqStep.tier via the tier bridge.\n\t\t\tconst explicitStepModel = tuiOverride?.model ?? seqStep.model ?? resolveTierModelOverride(seqStep.tier);\n\t\t\tconst effectiveModel = resolveEffectiveSubagentModel(\n\t\t\t\texplicitStepModel,\n\t\t\t\tagentConfig.model,\n\t\t\t\tctx.model,\n\t\t\t\tavailableModels,\n\t\t\t\tctx.model?.provider,\n\t\t\t\t{ scope: modelScope },\n\t\t\t);\n\n\t\t\tconst outputPath = typeof behavior.output === \"string\"\n\t\t\t\t? (path.isAbsolute(behavior.output) ? behavior.output : path.join(chainDir, behavior.output))\n\t\t\t\t: undefined;\n\t\t\tstepTask = injectSingleOutputInstruction(stepTask, outputPath, agentConfig);\n\t\t\tconst validationError = validateFileOnlyOutputMode(behavior.outputMode, outputPath, `Chain step ${stepIndex + 1} (${seqStep.agent})`);\n\t\t\tif (validationError) {\n\t\t\t\treturn buildChainExecutionErrorResult(validationError, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }));\n\t\t\t}\n\t\t\tconst maxSubagentDepth = resolveChildMaxSubagentDepth(params.maxSubagentDepth, agentConfig.maxSubagentDepth);\n\t\t\tconst childIndex = globalTaskIndex;\n\t\t\tconst interruptController = new AbortController();\n\t\t\tif (foregroundControl) {\n\t\t\t\tforegroundControl.currentAgent = seqStep.agent;\n\t\t\t\tforegroundControl.currentIndex = childIndex;\n\t\t\t\tforegroundControl.currentActivityState = undefined;\n\t\t\t\tforegroundControl.updatedAt = Date.now();\n\t\t\t\tforegroundControl.interrupt = () => {\n\t\t\t\t\tif (interruptController.signal.aborted) return false;\n\t\t\t\t\tinterruptController.abort();\n\t\t\t\t\tforegroundControl.currentActivityState = undefined;\n\t\t\t\t\tforegroundControl.updatedAt = Date.now();\n\t\t\t\t\treturn true;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst structuredRuntime = seqStep.outputSchema\n\t\t\t\t? createStructuredOutputRuntime(seqStep.outputSchema, path.join(chainDir, \"structured-output\"))\n\t\t\t\t: undefined;\n\t\t\tconst toolBudget = resolveChainToolBudget({ stepBudget: seqStep.toolBudget, runBudget: params.toolBudget, agentBudget: agentConfig?.toolBudget, configBudget: params.configToolBudget });\n\t\t\tif (toolBudget.error) return buildChainExecutionErrorResult(toolBudget.error, {\n\t\t\t\tresults,\n\t\t\t\tincludeProgress,\n\t\t\t\tallProgress,\n\t\t\t\tallArtifactPaths,\n\t\t\t\tartifactsDir: params.artifactsDir,\n\t\t\t\tchainAgents,\n\t\t\t\tchainSteps,\n\t\t\t\ttotalSteps,\n\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\trunId: params.runId,\n\t\t\t\toutputs,\n\t\t\t\tcurrentFlatIndex: globalTaskIndex,\n\t\t\t\tdynamicChildren,\n\t\t\t\tdynamicGroupStatuses,\n\t\t\t});\n\t\t\tconst r = await runSync(ctx.cwd, agents, seqStep.agent, stepTask, {\n\t\t\t\tparentSessionId: ctx.sessionManager.getSessionId() ?? undefined,\n\t\t\t\tcwd: resolveChildCwd(cwd ?? ctx.cwd, seqStep.cwd),\n\t\t\t\tsignal,\n\t\t\t\tinterruptSignal: interruptController.signal,\n\t\t\t\tallowIntercomDetach: agentConfig.systemPrompt?.includes(INTERCOM_BRIDGE_MARKER) === true,\n\t\t\t\tintercomEvents,\n\t\t\t\trunId,\n\t\t\t\tindex: childIndex,\n\t\t\t\tsessionDir: sessionDirForIndex(childIndex),\n\t\t\t\tsessionFile: sessionFileForTask?.(seqStep.agent, childIndex, effectiveModel)\n\t\t\t\t\t?? sessionFileForIndex?.(childIndex),\n\t\t\t\tthinkingOverride: thinkingOverrideForTask?.(seqStep.agent, childIndex, effectiveModel),\n\t\t\t\tshare: shareEnabled,\n\t\t\t\tartifactsDir: artifactConfig.enabled ? artifactsDir : undefined,\n\t\t\t\tartifactConfig,\n\t\t\t\toutputPath,\n\t\t\t\toutputMode: behavior.outputMode,\n\t\t\t\tmaxSubagentDepth,\n\t\t\t\tcontrolConfig,\n\t\t\t\tonControlEvent,\n\t\t\t\tintercomSessionName: childIntercomTarget?.(seqStep.agent, childIndex),\n\t\t\t\torchestratorIntercomTarget,\n\t\t\t\tnestedRoute: params.nestedRoute,\n\t\t\t\tmodelOverride: effectiveModel,\n\t\t\t\tavailableModels,\n\t\t\t\tpreferredModelProvider: ctx.model?.provider,\n\t\t\t\tmodelScope,\n\t\t\t\tskills: behavior.skills === false ? [] : behavior.skills,\n\t\t\t\tstructuredOutput: structuredRuntime,\n\t\t\t\tacceptance: seqStep.acceptance,\n\t\t\t\tacceptanceContext: { mode: \"chain\" },\n\t\t\t\ttimeoutMs: params.timeoutMs,\n\t\t\t\tdeadlineAt,\n\t\t\t\tturnBudget: params.turnBudget,\n\t\t\t\tonDetachedExit: onDetachedExit\n\t\t\t\t\t? (result) => onDetachedExit(childIndex, result)\n\t\t\t\t\t: undefined,\n\t\t\t\ttoolBudget: toolBudget.toolBudget,\n\t\t\t\tonUpdate: onUpdate\n\t\t\t\t\t? (p) => {\n\t\t\t\t\t\tconst stepResults = p.details?.results || [];\n\t\t\t\t\t\tconst stepProgress = p.details?.progress || [];\n\t\t\t\t\t\tif (foregroundControl && stepProgress.length > 0) {\n\t\t\t\t\t\t\tconst current = stepProgress[0];\n\t\t\t\t\t\t\tforegroundControl.currentAgent = seqStep.agent;\n\t\t\t\t\t\t\tforegroundControl.currentIndex = childIndex;\n\t\t\t\t\t\t\tforegroundControl.currentActivityState = current?.activityState;\n\t\t\t\t\t\t\tforegroundControl.lastActivityAt = current?.lastActivityAt;\n\t\t\t\t\t\t\tforegroundControl.currentTool = current?.currentTool;\n\t\t\t\t\t\t\tforegroundControl.currentToolStartedAt = current?.currentToolStartedAt;\n\t\t\t\t\t\t\tforegroundControl.currentPath = current?.currentPath;\n\t\t\t\t\t\t\tforegroundControl.turnCount = current?.turnCount;\n\t\t\t\t\t\t\tforegroundControl.tokens = current?.tokens;\n\t\t\t\t\t\t\tforegroundControl.toolCount = current?.toolCount;\n\t\t\t\t\t\t\tforegroundControl.updatedAt = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUpdate({\n\t\t\t\t\t\t\t...p,\n\t\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\t\tmode: \"chain\",\n\t\t\t\t\t\t\t\tresults: results.concat(stepResults),\n\t\t\t\t\t\t\t\tprogress: allProgress.concat(stepProgress),\n\t\t\t\t\t\t\t\tcontrolEvents: p.details?.controlEvents,\n\t\t\t\t\t\t\t\tchainAgents,\n\t\t\t\t\t\t\t\ttotalSteps,\n\t\t\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\t\t\toutputs,\n\t\t\t\t\t\t\t\tworkflowGraph: buildWorkflowGraphSnapshot({\n\t\t\t\t\t\t\t\t\trunId,\n\t\t\t\t\t\t\t\t\tmode: \"chain\",\n\t\t\t\t\t\t\t\t\tsteps: chainSteps,\n\t\t\t\t\t\t\t\t\tresults: results.concat(stepResults),\n\t\t\t\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\t\t\t\tcurrentFlatIndex: childIndex,\n\t\t\t\t\t\t\t\t\tdynamicChildren,\n\t\t\t\t\t\t\t\t\tdynamicGroupStatuses,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t});\n\t\t\tif (foregroundControl?.currentIndex === childIndex) {\n\t\t\t\tforegroundControl.interrupt = undefined;\n\t\t\t\tforegroundControl.updatedAt = Date.now();\n\t\t\t}\n\t\t\trecordRun(seqStep.agent, cleanTask, r.exitCode, r.progressSummary?.durationMs ?? 0);\n\n\t\t\tglobalTaskIndex++;\n\t\t\tresults.push(r);\n\t\t\tif (r.progress) allProgress.push(r.progress);\n\t\t\tif (r.artifactPaths) allArtifactPaths.push(r.artifactPaths);\n\n\t\t\tif (r.interrupted) {\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain paused after interrupt at step ${stepIndex + 1} (${r.agent}). Waiting for explicit next action.` }],\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: childIndex })),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (r.detached) {\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain detached for intercom coordination at step ${stepIndex + 1} (${r.agent}). Reply to the supervisor request first, then wait with subagent_wait({ id: \"${runId}\" }). Use subagent({ action: \"status\", id: \"${runId}\" }) to recover the result; do not resume or launch a replacement while it remains detached.` }],\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: childIndex })),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (r.exitCode !== 0) {\n\t\t\t\tconst summary = buildChainSummary(chainSteps, results, chainDir, \"failed\", {\n\t\t\t\t\tindex: stepIndex,\n\t\t\t\t\terror: r.error || \"Chain failed\",\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: summary }],\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: childIndex })),\n\t\t\t\t\tisError: true,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (behavior.output) {\n\t\t\t\ttry {\n\t\t\t\t\tconst expectedPath = path.isAbsolute(behavior.output)\n\t\t\t\t\t\t? behavior.output\n\t\t\t\t\t\t: path.join(chainDir, behavior.output);\n\t\t\t\t\tif (!fs.existsSync(expectedPath)) {\n\t\t\t\t\t\tconst dirFiles = fs.readdirSync(chainDir);\n\t\t\t\t\t\tconst mdFiles = dirFiles.filter((file) => file.endsWith(\".md\") && file !== \"progress.md\");\n\t\t\t\t\t\tconst warning = mdFiles.length > 0\n\t\t\t\t\t\t\t? `Agent wrote to different file(s): ${mdFiles.join(\", \")} instead of ${behavior.output}`\n\t\t\t\t\t\t\t: `Agent did not create expected output file: ${behavior.output}`;\n\t\t\t\t\t\tr.error = r.error ? `${r.error}\\n${warning}` : warning;\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Ignore validation errors; this diagnostic should not mask successful chain output.\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (seqStep.as) outputs[seqStep.as] = outputEntryFromResult(r, stepIndex);\n\t\t\tprev = getSingleResultOutput(r);\n\t\t}\n\t}\n\n\tconst summary = buildChainSummary(chainSteps, results, chainDir, \"completed\");\n\n\treturn {\n\t\tcontent: [{ type: \"text\", text: summary }],\n\t\tdetails: buildChainExecutionDetails(makeDetailsInput()),\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"chain-execution.js","sourceRoot":"","sources":["../../../../../../src/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * Chain execution logic for subagent tool\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { AgentToolResult } from \"@ashx-j/lunr-agent\";\nimport type { ExtensionContext } from \"@ashx-j/lunr\";\nimport type { ChildRuntimeConfig } from \"../../shared/types.ts\";\nimport { normalizeChildSpec } from \"../../shared/child-spec.ts\";\nimport { snapshotParentPermissionMode } from \"../../../../../core/subagent-permission-inherit.ts\";\nimport { ChainClarifyComponent, type ChainClarifyResult, type BehaviorOverride } from \"./chain-clarify.ts\";\nimport { toModelInfo, type ModelInfo } from \"../../shared/model-info.ts\";\nimport {\n\tresolveChainTemplates,\n\tcreateChainDir,\n\tremoveChainDir,\n\tresolveStepBehavior,\n\tresolveParallelBehaviors,\n\tbuildChainInstructions,\n\twriteInitialProgressFile,\n\tcreateParallelDirs,\n\tsuppressProgressForReadOnlyTask,\n\taggregateParallelOutputs,\n\tisDynamicParallelStep,\n\tisParallelStep,\n\ttype StepOverrides,\n\ttype ChainStep,\n\ttype ParallelStep,\n\ttype SequentialStep,\n\ttype ParallelTaskResult,\n\ttype ResolvedStepBehavior,\n\ttype ResolvedTemplates,\n} from \"../../shared/settings.ts\";\nimport { discoverAvailableSkills, normalizeSkillInput } from \"../../agents/skills.ts\";\nimport { INTERCOM_BRIDGE_MARKER } from \"../../intercom/intercom-bridge.ts\";\nimport { runSync } from \"./execution.ts\";\nimport { buildChainSummary } from \"../../shared/formatters.ts\";\nimport { compactForegroundDetails, getSingleResultOutput, mapConcurrent, resolveChildCwd, sumResultsCost, sumResultsUsage } from \"../../shared/utils.ts\";\nimport { DEFAULT_GLOBAL_CONCURRENCY_LIMIT, Semaphore } from \"../shared/parallel-utils.ts\";\nimport { recordRun } from \"../shared/run-history.ts\";\nimport {\n\tcleanupWorktrees,\n\tcreateWorktrees,\n\tdiffWorktrees,\n\tfindWorktreeTaskCwdConflict,\n\tformatWorktreeDiffSummary,\n\tformatWorktreeTaskCwdConflict,\n\ttype WorktreeSetup,\n} from \"../shared/worktree.ts\";\nimport {\n\ttype ActivityState,\n\ttype AgentProgress,\n\ttype ArtifactConfig,\n\ttype ArtifactPaths,\n\ttype ControlEvent,\n\ttype Details,\n\ttype IntercomEventBus,\n\ttype NestedRouteInfo,\n\ttype ResolvedControlConfig,\n\ttype ResolvedTurnBudget,\n\ttype ResolvedToolBudget,\n\ttype SingleResult,\n\ttype ToolBudgetConfig,\n\tMAX_CONCURRENCY,\n\tresolveChildMaxSubagentDepth,\n} from \"../../shared/types.ts\";\nimport { resolveEffectiveSubagentModel, resolveTierModelOverride } from \"../shared/model-fallback.ts\";\nimport type { ModelScopeConfig } from \"../shared/model-scope.ts\";\nimport { injectSingleOutputInstruction, validateFileOnlyOutputMode } from \"../shared/single-output.ts\";\nimport { buildWorkflowGraphSnapshot } from \"../shared/workflow-graph.ts\";\nimport { ChainOutputValidationError, outputEntryFromResult, resolveOutputReferences, validateChainOutputBindings } from \"../shared/chain-outputs.ts\";\nimport { createStructuredOutputRuntime } from \"../shared/structured-output.ts\";\nimport { collectDynamicResults, DynamicFanoutError, materializeDynamicParallelStep, validateDynamicCollection, type DynamicCollectedResult } from \"../shared/dynamic-fanout.ts\";\nimport { acceptanceFailureMessage, aggregateAcceptanceReport, evaluateAcceptance, resolveEffectiveAcceptance } from \"../shared/acceptance.ts\";\nimport type { ChainOutputMap } from \"../../shared/types.ts\";\nimport { validateToolBudgetConfig } from \"../shared/tool-budget.ts\";\n\ninterface ChainExecutionDetailsInput {\n\tresults: SingleResult[];\n\tincludeProgress?: boolean;\n\tallProgress: AgentProgress[];\n\tallArtifactPaths: ArtifactPaths[];\n\tartifactsDir: string;\n\tchainAgents: string[];\n\tchainSteps: ChainStep[];\n\ttotalSteps: number;\n\tcurrentStepIndex?: number;\n\trunId: string;\n\toutputs?: ChainOutputMap;\n\tcurrentFlatIndex?: number;\n\tdynamicChildren?: Record<number, Array<{ agent: string; label?: string; flatIndex: number; itemKey: string; outputName?: string; structured?: boolean; error?: string }>>;\n\tdynamicGroupStatuses?: Record<number, { status: \"pending\" | \"running\" | \"completed\" | \"failed\" | \"paused\" | \"stopped\" | \"detached\"; error?: string; acceptance?: SingleResult[\"acceptance\"] }>;\n}\n\ninterface ParallelChainRunInput {\n\tstep: ParallelStep;\n\tparallelTemplates: string[];\n\tparallelBehaviors: ResolvedStepBehavior[];\n\tagents: ChildRuntimeConfig[];\n\tstepIndex: number;\n\tavailableModels: ModelInfo[];\n\tmodelScope?: ModelScopeConfig;\n\tchainDir: string;\n\tprev: string;\n\toriginalTask: string;\n\tctx: ExtensionContext;\n\tintercomEvents?: IntercomEventBus;\n\tcwd?: string;\n\trunId: string;\n\tglobalTaskIndex: number;\n\tsessionDirForIndex: (idx?: number) => string | undefined;\n\tsessionFileForIndex?: (idx?: number) => string | undefined;\n\tsessionFileForTask?: (agentName: string, idx?: number, modelOverride?: string) => string | undefined;\n\tthinkingOverrideForTask?: (agentName: string, idx?: number, modelOverride?: string) => ChildRuntimeConfig[\"thinking\"] | undefined;\n\tshareEnabled: boolean;\n\tartifactConfig: ArtifactConfig;\n\tartifactsDir: string;\n\tsignal?: AbortSignal;\n\tonUpdate?: (r: AgentToolResult<Details>) => void;\n\tonControlEvent?: (event: ControlEvent) => void;\n\tcontrolConfig: ResolvedControlConfig;\n\tchildIntercomTarget?: (agent: string, index: number) => string | undefined;\n\torchestratorIntercomTarget?: string;\n\tforegroundControl?: {\n\t\tupdatedAt: number;\n\t\tcurrentAgent?: string;\n\t\tcurrentChildId?: string;\n\t\tcurrentIndex?: number;\n\t\tcurrentActivityState?: ActivityState;\n\t\tlastActivityAt?: number;\n\t\tcurrentTool?: string;\n\t\tcurrentToolStartedAt?: number;\n\t\tcurrentPath?: string;\n\t\tturnCount?: number;\n\t\ttokens?: number;\n\t\ttoolCount?: number;\n\t\tinterrupt?: () => boolean;\n\t};\n\tresults: SingleResult[];\n\tallProgress: AgentProgress[];\n\toutputs: ChainOutputMap;\n\tchainAgents: string[];\n\tchainSteps: ChainStep[];\n\ttotalSteps: number;\n\tdynamicChildren?: ChainExecutionDetailsInput[\"dynamicChildren\"];\n\tdynamicGroupStatuses?: ChainExecutionDetailsInput[\"dynamicGroupStatuses\"];\n\tworktreeSetup?: WorktreeSetup;\n\tmaxSubagentDepth: number;\n\tnestedRoute?: NestedRouteInfo;\n\ttimeoutMs?: number;\n\tdeadlineAt?: number;\n\tturnBudget?: ResolvedTurnBudget;\n\tonDetachedExit?: (index: number, result: SingleResult) => void;\n\ttoolBudget?: ResolvedToolBudget;\n\tconfigToolBudget?: ToolBudgetConfig;\n\tglobalSemaphore?: Semaphore;\n\tdynamic?: boolean;\n}\n\nfunction buildChainExecutionDetails(input: ChainExecutionDetailsInput): Details {\n\treturn compactForegroundDetails({\n\t\tmode: \"chain\",\n\t\tresults: input.results,\n\t\tprogress: input.includeProgress ? input.allProgress : undefined,\n\t\tartifacts: input.allArtifactPaths.length ? { dir: input.artifactsDir, files: input.allArtifactPaths } : undefined,\n\t\tchainAgents: input.chainAgents,\n\t\ttotalSteps: input.totalSteps,\n\t\tcurrentStepIndex: input.currentStepIndex,\n\t\toutputs: input.outputs,\n\t\ttotalChildUsage: sumResultsUsage(input.results),\n\t\ttotalCost: sumResultsCost(input.results),\n\t\tworkflowGraph: buildWorkflowGraphSnapshot({\n\t\t\trunId: input.runId,\n\t\t\tmode: \"chain\",\n\t\t\tsteps: input.chainSteps,\n\t\t\tresults: input.results,\n\t\t\tcurrentStepIndex: input.currentStepIndex,\n\t\t\tcurrentFlatIndex: input.currentFlatIndex,\n\t\t\tdynamicChildren: input.dynamicChildren,\n\t\t\tdynamicGroupStatuses: input.dynamicGroupStatuses,\n\t\t}),\n\t});\n}\n\nfunction buildChainExecutionErrorResult(message: string, input: ChainExecutionDetailsInput): ChainExecutionResult {\n\treturn {\n\t\tcontent: [{ type: \"text\", text: message }],\n\t\tisError: true,\n\t\tdetails: buildChainExecutionDetails(input),\n\t};\n}\n\nfunction ensureParallelProgressFile(\n\tchainDir: string,\n\tprogressCreated: boolean,\n\tparallelBehaviors: ResolvedStepBehavior[],\n): boolean {\n\tif (progressCreated || !parallelBehaviors.some((behavior) => behavior.progress)) {\n\t\treturn progressCreated;\n\t}\n\twriteInitialProgressFile(chainDir);\n\treturn true;\n}\n\nfunction appendParallelWorktreeSummary(\n\toutput: string,\n\tworktreeSetup: WorktreeSetup | undefined,\n\tdiffsDir: string,\n\tagents: string[],\n): string {\n\tif (!worktreeSetup) return output;\n\tconst diffs = diffWorktrees(worktreeSetup, agents, diffsDir);\n\tconst diffSummary = formatWorktreeDiffSummary(diffs);\n\tif (!diffSummary) return output;\n\treturn `${output}\\n\\n${diffSummary}`;\n}\n\nfunction resolveChainToolBudget(input: { stepBudget?: ToolBudgetConfig; runBudget?: ResolvedToolBudget; agentBudget?: ToolBudgetConfig; configBudget?: ToolBudgetConfig }): { toolBudget?: ResolvedToolBudget; error?: string } {\n\tif (input.stepBudget !== undefined) {\n\t\tconst resolved = validateToolBudgetConfig(input.stepBudget, \"toolBudget\");\n\t\treturn { toolBudget: resolved.budget, error: resolved.error };\n\t}\n\tif (input.runBudget !== undefined) return { toolBudget: input.runBudget };\n\tif (input.agentBudget !== undefined) {\n\t\tconst resolved = validateToolBudgetConfig(input.agentBudget, \"agent.toolBudget\");\n\t\treturn { toolBudget: resolved.budget, error: resolved.error };\n\t}\n\tconst resolved = validateToolBudgetConfig(input.configBudget, \"config.toolBudget\");\n\treturn { toolBudget: resolved.budget, error: resolved.error };\n}\n\nasync function runParallelChainTasks(input: ParallelChainRunInput): Promise<SingleResult[]> {\n\tconst concurrency = input.step.concurrency ?? MAX_CONCURRENCY;\n\tconst failFast = input.step.failFast ?? false;\n\tlet aborted = false;\n\tconst effectiveModels = input.step.parallel.map((task) => {\n\t\tconst taskChildConfig = input.agents.find((child) => child.name === task.agent);\n\t\treturn resolveEffectiveSubagentModel(\n\t\t\t// lunr: model tiers — explicit per-task model wins; otherwise resolve task.tier via the tier bridge.\n\t\t\ttask.model ?? resolveTierModelOverride(task.tier),\n\t\t\ttaskChildConfig?.model,\n\t\t\tinput.ctx.model,\n\t\t\tinput.availableModels,\n\t\t\tinput.ctx.model?.provider,\n\t\t\t{ scope: input.modelScope },\n\t\t);\n\t});\n\tfor (let taskIndex = 0; taskIndex < input.step.parallel.length; taskIndex++) {\n\t\tconst task = input.step.parallel[taskIndex]!;\n\t\tinput.sessionFileForTask?.(task.agent, input.globalTaskIndex + taskIndex, effectiveModels[taskIndex]);\n\t}\n\n\tconst parallelResults = await mapConcurrent(\n\t\tinput.step.parallel,\n\t\tconcurrency,\n\t\tasync (task, taskIndex) => {\n\t\t\tif (aborted && failFast) {\n\t\t\t\treturn {\n\t\t\t\t\tagent: task.agent,\n\t\t\t\t\ttask: \"(skipped)\",\n\t\t\t\t\texitCode: -1,\n\t\t\t\t\tmessages: [],\n\t\t\t\t\tusage: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, cost: 0, turns: 0 },\n\t\t\t\t\terror: \"Skipped due to fail-fast\",\n\t\t\t\t} as SingleResult;\n\t\t\t}\n\n\t\t\tconst taskTemplate = input.parallelTemplates[taskIndex] ?? \"{previous}\";\n\t\t\tconst behavior = suppressProgressForReadOnlyTask(input.parallelBehaviors[taskIndex]!, taskTemplate, input.originalTask);\n\t\t\tconst taskChildConfig = input.agents.find((child) => child.name === task.agent);\n\t\t\tconst templateHasPrevious = taskTemplate.includes(\"{previous}\");\n\t\t\tconst { prefix, suffix } = buildChainInstructions(\n\t\t\t\t{ ...behavior, output: false },\n\t\t\t\tinput.chainDir,\n\t\t\t\tfalse,\n\t\t\t\ttemplateHasPrevious ? undefined : input.prev,\n\t\t\t);\n\n\t\t\tlet taskStr = resolveOutputReferences(taskTemplate, input.outputs);\n\t\t\ttaskStr = taskStr.replace(/\\{task\\}/g, input.originalTask);\n\t\t\ttaskStr = taskStr.replace(/\\{previous\\}/g, input.prev);\n\t\t\ttaskStr = taskStr.replace(/\\{chain_dir\\}/g, input.chainDir);\n\t\t\tconst cleanTask = taskStr;\n\t\t\ttaskStr = prefix + taskStr + suffix;\n\n\t\t\tconst effectiveModel = effectiveModels[taskIndex];\n\t\t\tconst maxSubagentDepth = resolveChildMaxSubagentDepth(input.maxSubagentDepth, taskChildConfig?.maxSubagentDepth);\n\t\t\tconst toolBudget = resolveChainToolBudget({ stepBudget: task.toolBudget, runBudget: input.toolBudget, agentBudget: taskChildConfig?.toolBudget, configBudget: input.configToolBudget });\n\t\t\tif (toolBudget.error) throw new Error(toolBudget.error);\n\n\t\t\tconst taskCwd = input.worktreeSetup\n\t\t\t\t? input.worktreeSetup.worktrees[taskIndex]!.agentCwd\n\t\t\t\t: resolveChildCwd(input.cwd ?? input.ctx.cwd, task.cwd);\n\n\t\t\tconst outputPath = typeof behavior.output === \"string\"\n\t\t\t\t? (path.isAbsolute(behavior.output) ? behavior.output : path.join(input.chainDir, behavior.output))\n\t\t\t\t: undefined;\n\t\t\ttaskStr = injectSingleOutputInstruction(taskStr, outputPath, taskChildConfig);\n\t\t\tconst interruptController = new AbortController();\n\t\t\tif (input.foregroundControl) {\n\t\t\t\tinput.foregroundControl.currentAgent = task.description || task.agent;\n\t\t\t\tinput.foregroundControl.currentChildId = task.agent;\n\t\t\t\tinput.foregroundControl.currentIndex = input.globalTaskIndex + taskIndex;\n\t\t\t\tinput.foregroundControl.currentActivityState = undefined;\n\t\t\t\tinput.foregroundControl.updatedAt = Date.now();\n\t\t\t\tinput.foregroundControl.interrupt = () => {\n\t\t\t\t\tif (interruptController.signal.aborted) return false;\n\t\t\t\t\tinterruptController.abort();\n\t\t\t\t\tinput.foregroundControl!.currentActivityState = undefined;\n\t\t\t\t\tinput.foregroundControl!.updatedAt = Date.now();\n\t\t\t\t\treturn true;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst structuredRuntime = task.outputSchema\n\t\t\t\t? createStructuredOutputRuntime(task.outputSchema, path.join(input.chainDir, \"structured-output\"))\n\t\t\t\t: undefined;\n\t\t\tconst result = await runSync(input.ctx.cwd, normalizeChildSpec({\n\t\t\t\ttask: taskStr,\n\t\t\t\tdescription: task.description,\n\t\t\t\tpermissions: task.permissions,\n\t\t\t\tmodel: effectiveModel ?? task.model,\n\t\t\t\tskill: task.skill,\n\t\t\t\tcwd: taskCwd,\n\t\t\t\toutput: task.output,\n\t\t\t\toutputMode: task.outputMode,\n\t\t\t\tacceptance: task.acceptance,\n\t\t\t\ttoolBudget: task.toolBudget,\n\t\t\t}, { parentMode: snapshotParentPermissionMode(input.ctx.sessionManager.getSessionId() ?? undefined), runId: input.runId, index: input.globalTaskIndex + taskIndex }), {\n\t\t\t\tparentSessionId: input.ctx.sessionManager.getSessionId() ?? undefined,\n\t\t\t\tcwd: taskCwd,\n\t\t\t\tsignal: input.signal,\n\t\t\t\tinterruptSignal: interruptController.signal,\n\t\t\t\tallowIntercomDetach: taskChildConfig?.systemPrompt?.includes(INTERCOM_BRIDGE_MARKER) === true,\n\t\t\t\tintercomEvents: input.intercomEvents,\n\t\t\t\trunId: input.runId,\n\t\t\t\tindex: input.globalTaskIndex + taskIndex,\n\t\t\t\tsessionDir: input.sessionDirForIndex(input.globalTaskIndex + taskIndex),\n\t\t\t\tsessionFile: input.sessionFileForTask?.(task.agent, input.globalTaskIndex + taskIndex, effectiveModel)\n\t\t\t\t\t?? input.sessionFileForIndex?.(input.globalTaskIndex + taskIndex),\n\t\t\t\tthinkingOverride: input.thinkingOverrideForTask?.(task.agent, input.globalTaskIndex + taskIndex, effectiveModel),\n\t\t\t\tshare: input.shareEnabled,\n\t\t\t\tartifactsDir: input.artifactConfig.enabled ? input.artifactsDir : undefined,\n\t\t\t\tartifactConfig: input.artifactConfig,\n\t\t\t\toutputPath,\n\t\t\t\toutputMode: behavior.outputMode,\n\t\t\t\tmaxSubagentDepth,\n\t\t\t\tcontrolConfig: input.controlConfig,\n\t\t\t\tonControlEvent: input.onControlEvent,\n\t\t\t\tintercomSessionName: input.childIntercomTarget?.(task.agent, input.globalTaskIndex + taskIndex),\n\t\t\t\torchestratorIntercomTarget: input.orchestratorIntercomTarget,\n\t\t\t\tnestedRoute: input.nestedRoute,\n\t\t\t\tmodelOverride: effectiveModel,\n\t\t\t\tavailableModels: input.availableModels,\n\t\t\t\tpreferredModelProvider: input.ctx.model?.provider,\n\t\t\t\tmodelScope: input.modelScope,\n\t\t\t\tskills: behavior.skills === false ? [] : behavior.skills,\n\t\t\t\tstructuredOutput: structuredRuntime,\n\t\t\t\tacceptance: task.acceptance,\n\t\t\t\tacceptanceContext: { mode: \"chain\", dynamic: input.dynamic && task.acceptance === undefined },\n\t\t\t\ttimeoutMs: input.timeoutMs,\n\t\t\t\tdeadlineAt: input.deadlineAt,\n\t\t\t\tturnBudget: input.turnBudget,\n\t\t\t\tonDetachedExit: input.onDetachedExit\n\t\t\t\t\t? (result) => input.onDetachedExit?.(input.globalTaskIndex + taskIndex, result)\n\t\t\t\t\t: undefined,\n\t\t\t\ttoolBudget: toolBudget.toolBudget,\n\t\t\t\tonUpdate: input.onUpdate\n\t\t\t\t\t? (progressUpdate) => {\n\t\t\t\t\t\tconst stepResults = progressUpdate.details?.results || [];\n\t\t\t\t\t\tconst stepProgress = progressUpdate.details?.progress || [];\n\t\t\t\t\t\tif (input.foregroundControl && stepProgress.length > 0) {\n\t\t\t\t\t\t\tconst current = stepProgress[0];\n\t\t\t\t\t\t\tinput.foregroundControl.currentAgent = task.description || task.agent;\n\t\t\t\t\t\t\tinput.foregroundControl.currentChildId = task.agent;\n\t\t\t\t\t\t\tinput.foregroundControl.currentIndex = input.globalTaskIndex + taskIndex;\n\t\t\t\t\t\t\tinput.foregroundControl.currentActivityState = current?.activityState;\n\t\t\t\t\t\t\tinput.foregroundControl.lastActivityAt = current?.lastActivityAt;\n\t\t\t\t\t\t\tinput.foregroundControl.currentTool = current?.currentTool;\n\t\t\t\t\t\t\tinput.foregroundControl.currentToolStartedAt = current?.currentToolStartedAt;\n\t\t\t\t\t\t\tinput.foregroundControl.currentPath = current?.currentPath;\n\t\t\t\t\t\t\tinput.foregroundControl.turnCount = current?.turnCount;\n\t\t\t\t\t\t\tinput.foregroundControl.tokens = current?.tokens;\n\t\t\t\t\t\t\tinput.foregroundControl.toolCount = current?.toolCount;\n\t\t\t\t\t\t\tinput.foregroundControl.updatedAt = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinput.onUpdate?.({\n\t\t\t\t\t\t\t...progressUpdate,\n\t\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\t\tmode: \"chain\",\n\t\t\t\t\t\t\t\tresults: input.results.concat(stepResults),\n\t\t\t\t\t\t\t\tprogress: input.allProgress.concat(stepProgress),\n\t\t\t\t\t\t\t\tcontrolEvents: progressUpdate.details?.controlEvents,\n\t\t\t\t\t\t\t\tchainAgents: input.chainAgents,\n\t\t\t\t\t\t\t\ttotalSteps: input.totalSteps,\n\t\t\t\t\t\t\t\tcurrentStepIndex: input.stepIndex,\n\t\t\t\t\t\t\t\toutputs: input.outputs,\n\t\t\t\t\t\t\t\tworkflowGraph: buildWorkflowGraphSnapshot({\n\t\t\t\t\t\t\t\t\trunId: input.runId,\n\t\t\t\t\t\t\t\t\tmode: \"chain\",\n\t\t\t\t\t\t\t\t\tsteps: input.chainSteps,\n\t\t\t\t\t\t\t\t\tresults: input.results.concat(stepResults),\n\t\t\t\t\t\t\t\t\tcurrentStepIndex: input.stepIndex,\n\t\t\t\t\t\t\t\t\tcurrentFlatIndex: input.globalTaskIndex + taskIndex,\n\t\t\t\t\t\t\t\t\tdynamicChildren: input.dynamicChildren,\n\t\t\t\t\t\t\t\t\tdynamicGroupStatuses: input.dynamicGroupStatuses,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t});\n\t\t\tif (input.foregroundControl?.currentIndex === input.globalTaskIndex + taskIndex) {\n\t\t\t\tinput.foregroundControl.interrupt = undefined;\n\t\t\t\tinput.foregroundControl.updatedAt = Date.now();\n\t\t\t}\n\n\t\t\tif (result.exitCode !== 0 && failFast) {\n\t\t\t\taborted = true;\n\t\t\t}\n\t\t\trecordRun(task.agent, cleanTask, result.exitCode, result.progressSummary?.durationMs ?? 0);\n\t\t\treturn result;\n\t\t},\n\t\tinput.globalSemaphore,\n\t);\n\n\treturn parallelResults;\n}\n\ninterface ChainExecutionParams {\n\tchain: ChainStep[];\n\ttask?: string;\n\tagents: ChildRuntimeConfig[];\n\tctx: ExtensionContext;\n\tintercomEvents?: IntercomEventBus;\n\tsignal?: AbortSignal;\n\trunId: string;\n\tcwd?: string;\n\tshareEnabled: boolean;\n\tsessionDirForIndex: (idx?: number) => string | undefined;\n\tsessionFileForIndex?: (idx?: number) => string | undefined;\n\tsessionFileForTask?: (agentName: string, idx?: number, modelOverride?: string) => string | undefined;\n\tthinkingOverrideForTask?: (agentName: string, idx?: number, modelOverride?: string) => ChildRuntimeConfig[\"thinking\"] | undefined;\n\tartifactsDir: string;\n\tartifactConfig: ArtifactConfig;\n\tincludeProgress?: boolean;\n\tclarify?: boolean;\n\tonUpdate?: (r: AgentToolResult<Details>) => void;\n\tonControlEvent?: (event: ControlEvent) => void;\n\tcontrolConfig: ResolvedControlConfig;\n\tchildIntercomTarget?: (agent: string, index: number) => string | undefined;\n\torchestratorIntercomTarget?: string;\n\tforegroundControl?: {\n\t\tupdatedAt: number;\n\t\tcurrentAgent?: string;\n\t\tcurrentChildId?: string;\n\t\tcurrentIndex?: number;\n\t\tcurrentActivityState?: ActivityState;\n\t\tlastActivityAt?: number;\n\t\tcurrentTool?: string;\n\t\tcurrentToolStartedAt?: number;\n\t\tcurrentPath?: string;\n\t\tturnCount?: number;\n\t\ttokens?: number;\n\t\ttoolCount?: number;\n\t\tinterrupt?: () => boolean;\n\t};\n\tchainSkills?: string[];\n\tchainDir?: string;\n\tdynamicFanoutMaxItems?: number;\n\tmaxSubagentDepth: number;\n\tnestedRoute?: NestedRouteInfo;\n\tworktreeSetupHook?: string;\n\tworktreeSetupHookTimeoutMs?: number;\n\tworktreeBaseDir?: string;\n\ttimeoutMs?: number;\n\tdeadlineAt?: number;\n\tturnBudget?: ResolvedTurnBudget;\n\tonDetachedExit?: (index: number, result: SingleResult) => void;\n\ttoolBudget?: ResolvedToolBudget;\n\tconfigToolBudget?: ToolBudgetConfig;\n\t/** Global cap on simultaneously-running tasks within this chain. Defaults to DEFAULT_GLOBAL_CONCURRENCY_LIMIT. */\n\tglobalConcurrencyLimit?: number;\n}\n\ninterface ChainExecutionResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tdetails: Details;\n\tisError?: boolean;\n\t/** User requested async execution via TUI - caller should dispatch to executeAsyncChain */\n\trequestedAsync?: {\n\t\tchain: ChainStep[];\n\t\tchainSkills: string[];\n\t};\n}\n\n/**\n * Execute a chain of subagent steps\n */\nexport async function executeChain(params: ChainExecutionParams): Promise<ChainExecutionResult> {\n\tconst {\n\t\tchain: chainSteps,\n\t\tagents,\n\t\tctx,\n\t\tsignal,\n\t\trunId,\n\t\tcwd,\n\t\tshareEnabled,\n\t\tsessionDirForIndex,\n\t\tsessionFileForIndex,\n\t\tsessionFileForTask,\n\t\tthinkingOverrideForTask,\n\t\tartifactsDir,\n\t\tartifactConfig,\n\t\tincludeProgress,\n\t\tclarify,\n\t\tonUpdate,\n\t\tonControlEvent,\n\t\tcontrolConfig,\n\t\tonDetachedExit,\n\t\tchildIntercomTarget,\n\t\torchestratorIntercomTarget,\n\t\tforegroundControl,\n\t\tintercomEvents,\n\t\tchainSkills: chainSkillsParam,\n\t\tchainDir: chainDirBase,\n\t\tmodelScope,\n\t} = params;\n\tconst chainSkills = chainSkillsParam ?? [];\n\n\tconst results: SingleResult[] = [];\n\tconst outputs: ChainOutputMap = {};\n\tconst dynamicChildren: ChainExecutionDetailsInput[\"dynamicChildren\"] = {};\n\tconst dynamicGroupStatuses: ChainExecutionDetailsInput[\"dynamicGroupStatuses\"] = {};\n\tconst allProgress: AgentProgress[] = [];\n\tconst allArtifactPaths: ArtifactPaths[] = [];\n\n\tconst chainAgents: string[] = chainSteps.map((step) =>\n\t\tisParallelStep(step)\n\t\t\t? `[${step.parallel.map((t) => t.description || t.label || t.agent || \"child\").join(\"+\")}]`\n\t\t\t: isDynamicParallelStep(step)\n\t\t\t\t? `expand:${step.parallel.description || step.parallel.label || step.parallel.agent || \"child\"}`\n\t\t\t: ((step as SequentialStep).description || (step as SequentialStep).label || (step as SequentialStep).agent || \"child\"),\n\t);\n\tconst totalSteps = chainSteps.length;\n\n\tconst makeDetailsInput = (overrides: Pick<Partial<ChainExecutionDetailsInput>, \"currentStepIndex\" | \"currentFlatIndex\"> = {}): ChainExecutionDetailsInput => ({\n\t\tresults,\n\t\t...(includeProgress !== undefined ? { includeProgress } : {}),\n\t\tallProgress,\n\t\tallArtifactPaths,\n\t\tartifactsDir,\n\t\tchainAgents,\n\t\tchainSteps,\n\t\ttotalSteps,\n\t\trunId,\n\t\toutputs,\n\t\tdynamicChildren,\n\t\tdynamicGroupStatuses,\n\t\t...overrides,\n\t});\n\n\tconst firstStep = chainSteps[0]!;\n\tconst originalTask = params.task\n\t\t?? (isParallelStep(firstStep)\n\t\t\t? firstStep.parallel[0]!.task!\n\t\t\t: isDynamicParallelStep(firstStep)\n\t\t\t\t? firstStep.parallel.task!\n\t\t\t\t: (firstStep as SequentialStep).task!);\n\ttry {\n\t\tvalidateChainOutputBindings(chainSteps, { maxItems: params.dynamicFanoutMaxItems });\n\t} catch (error) {\n\t\tif (error instanceof ChainOutputValidationError) {\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: error.message }],\n\t\t\t\tisError: true,\n\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput()),\n\t\t\t};\n\t\t}\n\t\tthrow error;\n\t}\n\n\tconst chainDir = createChainDir(runId, chainDirBase);\n\tconst hasParallelSteps = chainSteps.some((step) => isParallelStep(step) || isDynamicParallelStep(step));\n\tlet templates: ResolvedTemplates = resolveChainTemplates(chainSteps);\n\tconst shouldClarify = clarify === true && ctx.hasUI && !hasParallelSteps;\n\tlet tuiBehaviorOverrides: (BehaviorOverride | undefined)[] | undefined;\n\tconst availableModels: ModelInfo[] = ctx.modelRegistry.getAvailable().map(toModelInfo);\n\tconst availableSkills = discoverAvailableSkills(cwd ?? ctx.cwd);\n\n\tif (shouldClarify) {\n\t\tconst seqSteps = chainSteps as SequentialStep[];\n\t\tconst agentConfigs: ChildRuntimeConfig[] = [];\n\t\tfor (const step of seqSteps) {\n\t\t\tconst config = agents.find((a) => a.name === step.agent);\n\t\t\tif (!config) {\n\t\t\t\tremoveChainDir(chainDir);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Unknown agent: ${step.agent}` }],\n\t\t\t\t\tisError: true,\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({ currentStepIndex: seqSteps.indexOf(step) })),\n\t\t\t\t};\n\t\t\t}\n\t\t\tagentConfigs.push(config);\n\t\t}\n\n\t\tconst stepOverrides: StepOverrides[] = seqSteps.map((step) => ({\n\t\t\toutput: step.output,\n\t\t\toutputMode: step.outputMode,\n\t\t\treads: step.reads,\n\t\t\tprogress: step.progress,\n\t\t\tskills: normalizeSkillInput(step.skill),\n\t\t\tmodel: step.model,\n\t\t}));\n\n\t\tconst resolvedBehaviors = agentConfigs.map((_config, i) =>\n\t\t\tresolveStepBehavior(stepOverrides[i]!, chainSkills),\n\t\t);\n\t\tconst flatTemplates = templates as string[];\n\n\t\tconst result = await ctx.ui.custom<ChainClarifyResult>(\n\t\t\t(tui, theme, _kb, done) =>\n\t\t\t\tnew ChainClarifyComponent(\n\t\t\t\t\ttui,\n\t\t\t\t\ttheme,\n\t\t\t\t\tagentConfigs,\n\t\t\t\t\tflatTemplates,\n\t\t\t\t\toriginalTask,\n\t\t\t\t\tchainDir,\n\t\t\t\t\tresolvedBehaviors,\n\t\t\t\t\tavailableModels,\n\t\t\t\t\tctx.model?.provider,\n\t\t\t\t\tavailableSkills,\n\t\t\t\t\tdone,\n\t\t\t\t),\n\t\t\t{\n\t\t\t\toverlay: true,\n\t\t\t\toverlayOptions: { anchor: \"center\", width: 84, maxHeight: \"80%\" },\n\t\t\t},\n\t\t);\n\n\t\tif (!result || !result.confirmed) {\n\t\t\tremoveChainDir(chainDir);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: \"Chain cancelled\" }],\n\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput()),\n\t\t\t};\n\t\t}\n\n\t\tif (result.runInBackground) {\n\t\t\tremoveChainDir(chainDir);\n\t\t\tconst updatedChain: ChainStep[] = chainSteps.map((step, i) => {\n\t\t\t\tif (isParallelStep(step)) return step;\n\t\t\t\tconst override = result.behaviorOverrides[i];\n\t\t\t\treturn {\n\t\t\t\t\t...step,\n\t\t\t\t\ttask: result.templates[i]!,\n\t\t\t\t\t...(override?.model !== undefined ? { model: override.model } : {}),\n\t\t\t\t\t...(override?.output !== undefined ? { output: override.output } : {}),\n\t\t\t\t\t...(\"outputMode\" in step && step.outputMode !== undefined ? { outputMode: step.outputMode } : {}),\n\t\t\t\t\t...(override?.reads !== undefined ? { reads: override.reads } : {}),\n\t\t\t\t\t...(override?.progress !== undefined ? { progress: override.progress } : {}),\n\t\t\t\t\t...(override?.skills !== undefined ? { skill: override.skills } : {}),\n\t\t\t\t};\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: \"Launching in background...\" }],\n\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput()),\n\t\t\t\trequestedAsync: { chain: updatedChain, chainSkills },\n\t\t\t};\n\t\t}\n\n\t\ttemplates = result.templates;\n\t\ttuiBehaviorOverrides = result.behaviorOverrides;\n\t}\n\n\tconst deadlineAt = params.deadlineAt ?? (params.timeoutMs !== undefined ? Date.now() + params.timeoutMs : undefined);\n\tconst globalSemaphore = new Semaphore(params.globalConcurrencyLimit ?? DEFAULT_GLOBAL_CONCURRENCY_LIMIT);\n\tlet prev = \"\";\n\tlet globalTaskIndex = 0;\n\tlet progressCreated = false;\n\n\tfor (let stepIndex = 0; stepIndex < chainSteps.length; stepIndex++) {\n\t\tconst step = chainSteps[stepIndex]!;\n\t\tconst stepTemplates = templates[stepIndex]!;\n\n\t\tif (isParallelStep(step)) {\n\t\t\tconst parallelTemplates = stepTemplates as string[];\n\t\t\tconst parallelCwd = resolveChildCwd(cwd ?? ctx.cwd, step.cwd);\n\t\t\tlet worktreeSetup: WorktreeSetup | undefined;\n\t\t\tif (step.worktree) {\n\t\t\t\tconst worktreeTaskCwdConflict = findWorktreeTaskCwdConflict(step.parallel, parallelCwd);\n\t\t\t\tif (worktreeTaskCwdConflict) {\n\t\t\t\t\treturn buildChainExecutionErrorResult(\n\t\t\t\t\t\t`parallel chain step ${stepIndex + 1}: ${formatWorktreeTaskCwdConflict(worktreeTaskCwdConflict, parallelCwd)}`,\n\t\t\t\t\t\tmakeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tworktreeSetup = createWorktrees(parallelCwd, `${runId}-s${stepIndex}`, step.parallel.length, {\n\t\t\t\t\t\tagents: step.parallel.map((task) => task.agent),\n\t\t\t\t\t\tsetupHook: params.worktreeSetupHook\n\t\t\t\t\t\t\t? { hookPath: params.worktreeSetupHook, timeoutMs: params.worktreeSetupHookTimeoutMs }\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tbaseDir: params.worktreeBaseDir,\n\t\t\t\t\t});\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\t\t\treturn buildChainExecutionErrorResult(message, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst agentNames = step.parallel.map((task) => task.agent);\n\t\t\t\tconst parallelBehaviors = resolveParallelBehaviors(step.parallel, stepIndex, chainSkills)\n\t\t\t\t\t.map((behavior, taskIndex) => suppressProgressForReadOnlyTask(behavior, parallelTemplates[taskIndex] ?? step.parallel[taskIndex]?.task, originalTask));\n\t\t\t\tfor (let taskIndex = 0; taskIndex < step.parallel.length; taskIndex++) {\n\t\t\t\t\tconst behavior = parallelBehaviors[taskIndex]!;\n\t\t\t\t\tconst outputPath = typeof behavior.output === \"string\"\n\t\t\t\t\t\t? (path.isAbsolute(behavior.output) ? behavior.output : path.join(chainDir, behavior.output))\n\t\t\t\t\t\t: undefined;\n\t\t\t\t\tconst validationError = validateFileOnlyOutputMode(behavior.outputMode, outputPath, `Parallel chain step ${stepIndex + 1} task ${taskIndex + 1} (${step.parallel[taskIndex]!.agent})`);\n\t\t\t\t\tif (validationError) return buildChainExecutionErrorResult(validationError, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex + taskIndex }));\n\t\t\t\t}\n\t\t\t\tprogressCreated = ensureParallelProgressFile(chainDir, progressCreated, parallelBehaviors);\n\t\t\t\tcreateParallelDirs(chainDir, stepIndex, step.parallel.length, agentNames);\n\n\t\t\t\tconst parallelResults = await runParallelChainTasks({\n\t\t\t\t\tstep,\n\t\t\t\t\tparallelTemplates,\n\t\t\t\t\tparallelBehaviors,\n\t\t\t\t\tagents,\n\t\t\t\t\tstepIndex,\n\t\t\t\t\tavailableModels,\n\t\t\t\t\tmodelScope,\n\t\t\t\t\tchainDir,\n\t\t\t\t\tprev,\n\t\t\t\t\toriginalTask,\n\t\t\t\t\tctx,\n\t\t\t\t\tintercomEvents,\n\t\t\t\t\tcwd,\n\t\t\t\t\trunId,\n\t\t\t\t\tglobalTaskIndex,\n\t\t\t\t\tsessionDirForIndex,\n\t\t\t\t\tsessionFileForIndex,\n\t\t\t\t\tsessionFileForTask,\n\t\t\t\t\tthinkingOverrideForTask,\n\t\t\t\t\tshareEnabled,\n\t\t\t\t\tartifactConfig,\n\t\t\t\t\tartifactsDir,\n\t\t\t\t\tsignal,\n\t\t\t\t\tonUpdate,\n\t\t\t\t\tresults,\n\t\t\t\t\tallProgress,\n\t\t\t\t\toutputs,\n\t\t\t\t\tchainAgents,\n\t\t\t\t\tchainSteps,\n\t\t\t\t\ttotalSteps,\n\t\t\t\t\tdynamicChildren,\n\t\t\t\t\tdynamicGroupStatuses,\n\t\t\t\t\tcontrolConfig,\n\t\t\t\t\tonControlEvent,\n\t\t\t\t\tchildIntercomTarget,\n\t\t\t\t\torchestratorIntercomTarget,\n\t\t\t\t\tforegroundControl,\n\t\t\t\t\tnestedRoute: params.nestedRoute,\n\t\t\t\t\tworktreeSetup,\n\t\t\t\t\tmaxSubagentDepth: params.maxSubagentDepth,\n\t\t\t\t\ttimeoutMs: params.timeoutMs,\n\t\t\t\t\tdeadlineAt,\n\t\t\t\t\tturnBudget: params.turnBudget,\n\t\t\t\t\tonDetachedExit,\n\t\t\t\t\ttoolBudget: params.toolBudget,\n\t\t\t\t\tconfigToolBudget: params.configToolBudget,\n\t\t\t\t\tglobalSemaphore,\n\t\t\t\t});\n\t\t\t\tglobalTaskIndex += step.parallel.length;\n\n\t\t\t\tfor (const result of parallelResults) {\n\t\t\t\t\tresults.push(result);\n\t\t\t\t\tif (result.progress) allProgress.push(result.progress);\n\t\t\t\t\tif (result.artifactPaths) allArtifactPaths.push(result.artifactPaths);\n\t\t\t\t}\n\t\t\t\tconst interruptedIndexInStep = parallelResults.findIndex((result) => result.interrupted);\n\t\t\t\tconst interrupted = interruptedIndexInStep >= 0 ? parallelResults[interruptedIndexInStep] : undefined;\n\t\t\t\tif (interrupted) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain paused after interrupt at step ${stepIndex + 1} (${interrupted.agent}). Waiting for explicit next action.` }],\n\t\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\t\tcurrentFlatIndex: globalTaskIndex - step.parallel.length + interruptedIndexInStep,\n\t\t\t\t\t\t})),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst detachedIndexInStep = parallelResults.findIndex((result) => result.detached);\n\t\t\t\tconst detached = detachedIndexInStep >= 0 ? parallelResults[detachedIndexInStep] : undefined;\n\t\t\t\tif (detached) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain detached for intercom coordination at step ${stepIndex + 1} (${detached.agent}). Reply to the supervisor request first, then wait with subagent_wait({ id: \"${runId}\" }). Use subagent({ action: \"status\", id: \"${runId}\" }) to recover the result; do not resume or launch a replacement while it remains detached.` }],\n\t\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\t\tcurrentFlatIndex: globalTaskIndex - step.parallel.length + detachedIndexInStep,\n\t\t\t\t\t\t})),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst failures = parallelResults\n\t\t\t\t\t.map((result, originalIndex) => ({ ...result, originalIndex }))\n\t\t\t\t\t.filter((result) => result.exitCode !== 0 && result.exitCode !== -1);\n\t\t\t\tif (failures.length > 0) {\n\t\t\t\t\tconst failureSummary = failures\n\t\t\t\t\t\t.map((failure) => `- Task ${failure.originalIndex + 1} (${failure.agent}): ${failure.error || \"failed\"}`)\n\t\t\t\t\t\t.join(\"\\n\");\n\t\t\t\t\tconst errorMsg = `Parallel step ${stepIndex + 1} failed:\\n${failureSummary}`;\n\t\t\t\t\tconst summary = buildChainSummary(chainSteps, results, chainDir, \"failed\", {\n\t\t\t\t\t\tindex: stepIndex,\n\t\t\t\t\t\terror: errorMsg,\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontent: [{ type: \"text\", text: summary }],\n\t\t\t\t\t\tisError: true,\n\t\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\t\tcurrentFlatIndex: globalTaskIndex - step.parallel.length + failures[0]!.originalIndex,\n\t\t\t\t\t\t})),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tfor (let taskIndex = 0; taskIndex < parallelResults.length; taskIndex++) {\n\t\t\t\t\tconst outputName = step.parallel[taskIndex]?.as;\n\t\t\t\t\tif (outputName) outputs[outputName] = outputEntryFromResult(parallelResults[taskIndex]!, stepIndex);\n\t\t\t\t}\n\n\t\t\t\tconst taskResults: ParallelTaskResult[] = parallelResults.map((result, i) => {\n\t\t\t\t\tconst outputTarget = parallelBehaviors[i]?.output;\n\t\t\t\t\tconst outputTargetPath = typeof outputTarget === \"string\"\n\t\t\t\t\t\t? (path.isAbsolute(outputTarget) ? outputTarget : path.join(chainDir, outputTarget))\n\t\t\t\t\t\t: undefined;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tagent: result.agent,\n\t\t\t\t\t\ttaskIndex: i,\n\t\t\t\t\t\toutput: getSingleResultOutput(result),\n\t\t\t\t\t\texitCode: result.exitCode,\n\t\t\t\t\t\terror: result.error,\n\t\t\t\t\t\ttimedOut: result.timedOut,\n\t\t\t\t\t\toutputTargetPath,\n\t\t\t\t\t\toutputTargetExists: outputTargetPath ? fs.existsSync(outputTargetPath) : undefined,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tprev = aggregateParallelOutputs(taskResults);\n\t\t\t\tprev = appendParallelWorktreeSummary(\n\t\t\t\t\tprev,\n\t\t\t\t\tworktreeSetup,\n\t\t\t\t\tpath.join(chainDir, \"worktree-diffs\", `step-${stepIndex}`),\n\t\t\t\t\tagentNames,\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tif (worktreeSetup) cleanupWorktrees(worktreeSetup);\n\t\t\t}\n\t\t} else if (isDynamicParallelStep(step)) {\n\t\t\tconst dynamicStartIndex = globalTaskIndex;\n\t\t\tconst reservedDynamicItems = step.expand.maxItems ?? params.dynamicFanoutMaxItems ?? 0;\n\t\t\tlet materialized: ReturnType<typeof materializeDynamicParallelStep>;\n\t\t\ttry {\n\t\t\t\tmaterialized = materializeDynamicParallelStep(step, outputs, stepIndex, { maxItems: params.dynamicFanoutMaxItems });\n\t\t\t} catch (error) {\n\t\t\t\tconst message = error instanceof DynamicFanoutError ? error.message : error instanceof Error ? error.message : String(error);\n\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: message };\n\t\t\t\treturn buildChainExecutionErrorResult(message, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }));\n\t\t\t}\n\n\t\t\tdynamicChildren[stepIndex] = materialized.items.map((item, itemIndex) => ({\n\t\t\t\tagent: step.parallel.agent,\n\t\t\t\tlabel: materialized.parallel[itemIndex]?.label,\n\t\t\t\tflatIndex: globalTaskIndex + itemIndex,\n\t\t\t\titemKey: item.key,\n\t\t\t\tstructured: Boolean(step.parallel.outputSchema),\n\t\t\t}));\n\n\t\t\tif (materialized.parallel.length === 0) {\n\t\t\t\tconst collection: DynamicCollectedResult[] = [];\n\t\t\t\ttry {\n\t\t\t\t\tvalidateDynamicCollection(step.collect.outputSchema, collection);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst message = error instanceof DynamicFanoutError ? error.message : error instanceof Error ? error.message : String(error);\n\t\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: message };\n\t\t\t\t\treturn buildChainExecutionErrorResult(message, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }));\n\t\t\t\t}\n\t\t\t\toutputs[step.collect.as] = {\n\t\t\t\t\ttext: JSON.stringify(collection),\n\t\t\t\t\tstructured: collection,\n\t\t\t\t\tagent: step.parallel.agent,\n\t\t\t\t\tstepIndex,\n\t\t\t\t};\n\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"completed\" };\n\t\t\t\tif (step.acceptance !== undefined) {\n\t\t\t\t\tconst effectiveGroupAcceptance = resolveEffectiveAcceptance({\n\t\t\t\t\t\texplicit: step.acceptance,\n\t\t\t\t\t\tagentName: step.parallel.agent,\n\t\t\t\t\t\tacceptanceRole: agents.find((agent) => agent.name === step.parallel.agent)?.acceptanceRole,\n\t\t\t\t\t\ttask: (step.parallel.task ?? originalTask ?? \"\").replace(/\\{task\\}/g, originalTask ?? \"\"),\n\t\t\t\t\t\tmode: \"chain\",\n\t\t\t\t\t\tdynamicGroup: true,\n\t\t\t\t\t});\n\t\t\t\t\tconst groupAcceptance = await evaluateAcceptance({\n\t\t\t\t\t\tacceptance: effectiveGroupAcceptance,\n\t\t\t\t\t\toutput: \"\",\n\t\t\t\t\t\treport: aggregateAcceptanceReport({\n\t\t\t\t\t\t\tresults: [],\n\t\t\t\t\t\t\tnotes: \"Dynamic fanout produced 0 results.\",\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tcwd: cwd ?? ctx.cwd,\n\t\t\t\t\t});\n\t\t\t\t\tdynamicGroupStatuses[stepIndex].acceptance = groupAcceptance;\n\t\t\t\t\tconst groupAcceptanceFailure = acceptanceFailureMessage(groupAcceptance);\n\t\t\t\t\tif (groupAcceptanceFailure) {\n\t\t\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: groupAcceptanceFailure, acceptance: groupAcceptance };\n\t\t\t\t\t\treturn buildChainExecutionErrorResult(groupAcceptanceFailure, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tprev = \"Dynamic fanout produced 0 results.\";\n\t\t\t\tglobalTaskIndex = dynamicStartIndex + reservedDynamicItems;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst dynamicParallelStep: ParallelStep = {\n\t\t\t\tparallel: materialized.parallel,\n\t\t\t\tconcurrency: step.concurrency,\n\t\t\t\tfailFast: step.failFast,\n\t\t\t};\n\t\t\tconst parallelTemplates = materialized.parallel.map((task) => task.task ?? \"{previous}\");\n\t\t\tconst parallelBehaviors = resolveParallelBehaviors(dynamicParallelStep.parallel, stepIndex, chainSkills)\n\t\t\t\t.map((behavior, taskIndex) => suppressProgressForReadOnlyTask(behavior, parallelTemplates[taskIndex] ?? dynamicParallelStep.parallel[taskIndex]?.task, originalTask));\n\n\t\t\tfor (let taskIndex = 0; taskIndex < dynamicParallelStep.parallel.length; taskIndex++) {\n\t\t\t\tconst behavior = parallelBehaviors[taskIndex]!;\n\t\t\t\tconst outputPath = typeof behavior.output === \"string\"\n\t\t\t\t\t? (path.isAbsolute(behavior.output) ? behavior.output : path.join(chainDir, behavior.output))\n\t\t\t\t\t: undefined;\n\t\t\t\tconst validationError = validateFileOnlyOutputMode(behavior.outputMode, outputPath, `Dynamic chain step ${stepIndex + 1} item ${taskIndex + 1} (${dynamicParallelStep.parallel[taskIndex]!.agent})`);\n\t\t\t\tif (validationError) {\n\t\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: validationError };\n\t\t\t\t\treturn buildChainExecutionErrorResult(validationError, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex + taskIndex }));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tprogressCreated = ensureParallelProgressFile(chainDir, progressCreated, parallelBehaviors);\n\t\t\tcreateParallelDirs(chainDir, stepIndex, dynamicParallelStep.parallel.length, dynamicParallelStep.parallel.map((task) => task.agent));\n\t\t\tconst parallelResults = await runParallelChainTasks({\n\t\t\t\tstep: dynamicParallelStep,\n\t\t\t\tparallelTemplates,\n\t\t\t\tparallelBehaviors,\n\t\t\t\tagents,\n\t\t\t\tstepIndex,\n\t\t\t\tavailableModels,\n\t\t\t\tmodelScope,\n\t\t\t\tchainDir,\n\t\t\t\tprev,\n\t\t\t\toriginalTask,\n\t\t\t\tctx,\n\t\t\t\tintercomEvents,\n\t\t\t\tcwd,\n\t\t\t\trunId,\n\t\t\t\tglobalTaskIndex,\n\t\t\t\tsessionDirForIndex,\n\t\t\t\tsessionFileForIndex,\n\t\t\t\tsessionFileForTask,\n\t\t\t\tthinkingOverrideForTask,\n\t\t\t\tshareEnabled,\n\t\t\t\tartifactConfig,\n\t\t\t\tartifactsDir,\n\t\t\t\tsignal,\n\t\t\t\tonUpdate,\n\t\t\t\tresults,\n\t\t\t\tallProgress,\n\t\t\t\toutputs,\n\t\t\t\tchainAgents,\n\t\t\t\tchainSteps,\n\t\t\t\ttotalSteps,\n\t\t\t\tdynamicChildren,\n\t\t\t\tdynamicGroupStatuses,\n\t\t\t\tcontrolConfig,\n\t\t\t\tonControlEvent,\n\t\t\t\tchildIntercomTarget,\n\t\t\t\torchestratorIntercomTarget,\n\t\t\t\tforegroundControl,\n\t\t\t\tnestedRoute: params.nestedRoute,\n\t\t\t\tmaxSubagentDepth: params.maxSubagentDepth,\n\t\t\t\ttimeoutMs: params.timeoutMs,\n\t\t\t\tdeadlineAt,\n\t\t\t\tturnBudget: params.turnBudget,\n\t\t\t\tonDetachedExit,\n\t\t\t\ttoolBudget: params.toolBudget,\n\t\t\t\tconfigToolBudget: params.configToolBudget,\n\t\t\t\tglobalSemaphore,\n\t\t\t\tdynamic: true,\n\t\t\t});\n\t\t\tglobalTaskIndex = dynamicStartIndex + reservedDynamicItems;\n\n\t\t\tfor (const result of parallelResults) {\n\t\t\t\tresults.push(result);\n\t\t\t\tif (result.progress) allProgress.push(result.progress);\n\t\t\t\tif (result.artifactPaths) allArtifactPaths.push(result.artifactPaths);\n\t\t\t}\n\t\t\tconst collected = collectDynamicResults(step, materialized.items, parallelResults);\n\t\t\tconst interruptedIndexInStep = parallelResults.findIndex((result) => result.interrupted);\n\t\t\tconst interrupted = interruptedIndexInStep >= 0 ? parallelResults[interruptedIndexInStep] : undefined;\n\t\t\tif (interrupted) {\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain paused after interrupt at step ${stepIndex + 1} (${interrupted.agent}). Waiting for explicit next action.` }],\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\tcurrentFlatIndex: dynamicStartIndex + interruptedIndexInStep,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst detachedIndexInStep = parallelResults.findIndex((result) => result.detached);\n\t\t\tconst detached = detachedIndexInStep >= 0 ? parallelResults[detachedIndexInStep] : undefined;\n\t\t\tif (detached) {\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain detached for intercom coordination at step ${stepIndex + 1} (${detached.agent}). Reply to the supervisor request first, then wait with subagent_wait({ id: \"${runId}\" }). Use subagent({ action: \"status\", id: \"${runId}\" }) to recover the result; do not resume or launch a replacement while it remains detached.` }],\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\tcurrentFlatIndex: dynamicStartIndex + detachedIndexInStep,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst failures = parallelResults\n\t\t\t\t.map((result, originalIndex) => ({ ...result, originalIndex }))\n\t\t\t\t.filter((result) => result.exitCode !== 0 && result.exitCode !== -1);\n\t\t\tif (failures.length > 0) {\n\t\t\t\tconst failureSummary = failures\n\t\t\t\t\t.map((failure) => `- Item ${failure.originalIndex + 1} (${failure.agent}, key ${materialized.items[failure.originalIndex]?.key ?? failure.originalIndex}): ${failure.error || \"failed\"}`)\n\t\t\t\t\t.join(\"\\n\");\n\t\t\t\tconst errorMsg = `Dynamic step ${stepIndex + 1} failed:\\n${failureSummary}`;\n\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: errorMsg };\n\t\t\t\tconst summary = buildChainSummary(chainSteps, results, chainDir, \"failed\", {\n\t\t\t\t\tindex: stepIndex,\n\t\t\t\t\terror: errorMsg,\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: summary }],\n\t\t\t\t\tisError: true,\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({\n\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\tcurrentFlatIndex: dynamicStartIndex + failures[0]!.originalIndex,\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tvalidateDynamicCollection(step.collect.outputSchema, collected);\n\t\t\t} catch (error) {\n\t\t\t\tconst message = error instanceof DynamicFanoutError ? error.message : error instanceof Error ? error.message : String(error);\n\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: message };\n\t\t\t\treturn buildChainExecutionErrorResult(message, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: dynamicStartIndex }));\n\t\t\t}\n\t\t\toutputs[step.collect.as] = {\n\t\t\t\ttext: JSON.stringify(collected),\n\t\t\t\tstructured: collected,\n\t\t\t\tagent: step.parallel.agent,\n\t\t\t\tstepIndex,\n\t\t\t};\n\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"completed\" };\n\t\t\tconst effectiveGroupAcceptance = resolveEffectiveAcceptance({\n\t\t\t\texplicit: step.acceptance,\n\t\t\t\tagentName: step.parallel.agent,\n\t\t\t\tacceptanceRole: agents.find((agent) => agent.name === step.parallel.agent)?.acceptanceRole,\n\t\t\t\ttask: materialized.parallel\n\t\t\t\t\t.map((task) => (task.task ?? originalTask ?? \"\").replace(/\\{task\\}/g, originalTask ?? \"\"))\n\t\t\t\t\t.join(\"\\n\"),\n\t\t\t\tmode: \"chain\",\n\t\t\t\tdynamicGroup: true,\n\t\t\t});\n\t\t\tconst groupAcceptance = await evaluateAcceptance({\n\t\t\t\tacceptance: effectiveGroupAcceptance,\n\t\t\t\toutput: \"\",\n\t\t\t\treport: aggregateAcceptanceReport({\n\t\t\t\t\tresults: parallelResults,\n\t\t\t\t\tnotes: `Dynamic fanout collected ${collected.length} result(s) into ${step.collect.as}.`,\n\t\t\t\t}),\n\t\t\t\tcwd: cwd ?? ctx.cwd,\n\t\t\t});\n\t\t\tdynamicGroupStatuses[stepIndex].acceptance = groupAcceptance;\n\t\t\tconst groupAcceptanceFailure = effectiveGroupAcceptance.explicit ? acceptanceFailureMessage(groupAcceptance) : undefined;\n\t\t\tif (groupAcceptanceFailure) {\n\t\t\t\tdynamicGroupStatuses[stepIndex] = { status: \"failed\", error: groupAcceptanceFailure, acceptance: groupAcceptance };\n\t\t\t\treturn buildChainExecutionErrorResult(groupAcceptanceFailure, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex - dynamicParallelStep.parallel.length }));\n\t\t\t}\n\t\t\tconst taskResults: ParallelTaskResult[] = parallelResults.map((result, i) => ({\n\t\t\t\tagent: result.agent,\n\t\t\t\ttaskIndex: i,\n\t\t\t\toutput: getSingleResultOutput(result),\n\t\t\t\texitCode: result.exitCode,\n\t\t\t\terror: result.error,\n\t\t\t\ttimedOut: result.timedOut,\n\t\t\t}));\n\t\t\tprev = aggregateParallelOutputs(taskResults, (i, agent) => `=== Dynamic Item ${i + 1} (${agent}, key ${materialized.items[i]?.key ?? i}) ===`);\n\t\t} else {\n\t\t\tconst seqStep = step as SequentialStep;\n\t\t\tconst stepTemplate = stepTemplates as string;\n\n\t\t\tconst agentConfig = agents.find((a) => a.name === seqStep.agent);\n\t\t\tif (!agentConfig) {\n\t\t\t\tremoveChainDir(chainDir);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Unknown agent: ${seqStep.agent}` }],\n\t\t\t\t\tisError: true,\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex })),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst tuiOverride = tuiBehaviorOverrides?.[stepIndex];\n\t\t\tconst stepOverride: StepOverrides = {\n\t\t\t\toutput: tuiOverride?.output !== undefined ? tuiOverride.output : seqStep.output,\n\t\t\t\toutputMode: seqStep.outputMode,\n\t\t\t\treads: tuiOverride?.reads !== undefined ? tuiOverride.reads : seqStep.reads,\n\t\t\t\tprogress: tuiOverride?.progress !== undefined ? tuiOverride.progress : seqStep.progress,\n\t\t\t\tskills:\n\t\t\t\t\ttuiOverride?.skills !== undefined\n\t\t\t\t\t\t? tuiOverride.skills\n\t\t\t\t\t\t: normalizeSkillInput(seqStep.skill),\n\t\t\t};\n\t\t\tconst behavior = suppressProgressForReadOnlyTask(resolveStepBehavior(stepOverride, chainSkills), stepTemplate, originalTask);\n\n\t\t\tconst isFirstProgress = behavior.progress && !progressCreated;\n\t\t\tif (isFirstProgress) {\n\t\t\t\tprogressCreated = true;\n\t\t\t}\n\n\t\t\tconst templateHasPrevious = stepTemplate.includes(\"{previous}\");\n\t\t\tconst { prefix, suffix } = buildChainInstructions(\n\t\t\t\t{ ...behavior, output: false },\n\t\t\t\tchainDir,\n\t\t\t\tisFirstProgress,\n\t\t\t\ttemplateHasPrevious ? undefined : prev,\n\t\t\t);\n\n\t\t\tlet stepTask = resolveOutputReferences(stepTemplate, outputs);\n\t\t\tstepTask = stepTask.replace(/\\{task\\}/g, originalTask);\n\t\t\tstepTask = stepTask.replace(/\\{previous\\}/g, prev);\n\t\t\tstepTask = stepTask.replace(/\\{chain_dir\\}/g, chainDir);\n\t\t\tconst cleanTask = stepTask;\n\t\t\tstepTask = prefix + stepTask + suffix;\n\n\t\t\t// lunr: model tiers — explicit step model wins; otherwise resolve seqStep.tier via the tier bridge.\n\t\t\tconst explicitStepModel = tuiOverride?.model ?? seqStep.model ?? resolveTierModelOverride(seqStep.tier);\n\t\t\tconst effectiveModel = resolveEffectiveSubagentModel(\n\t\t\t\texplicitStepModel,\n\t\t\t\tagentConfig.model,\n\t\t\t\tctx.model,\n\t\t\t\tavailableModels,\n\t\t\t\tctx.model?.provider,\n\t\t\t\t{ scope: modelScope },\n\t\t\t);\n\n\t\t\tconst outputPath = typeof behavior.output === \"string\"\n\t\t\t\t? (path.isAbsolute(behavior.output) ? behavior.output : path.join(chainDir, behavior.output))\n\t\t\t\t: undefined;\n\t\t\tstepTask = injectSingleOutputInstruction(stepTask, outputPath, agentConfig);\n\t\t\tconst validationError = validateFileOnlyOutputMode(behavior.outputMode, outputPath, `Chain step ${stepIndex + 1} (${seqStep.agent})`);\n\t\t\tif (validationError) {\n\t\t\t\treturn buildChainExecutionErrorResult(validationError, makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: globalTaskIndex }));\n\t\t\t}\n\t\t\tconst maxSubagentDepth = resolveChildMaxSubagentDepth(params.maxSubagentDepth, agentConfig.maxSubagentDepth);\n\t\t\tconst childIndex = globalTaskIndex;\n\t\t\tconst interruptController = new AbortController();\n\t\t\tif (foregroundControl) {\n\t\t\t\tforegroundControl.currentAgent = seqStep.description || seqStep.agent;\n\t\t\t\tforegroundControl.currentChildId = seqStep.agent;\n\t\t\t\tforegroundControl.currentIndex = childIndex;\n\t\t\t\tforegroundControl.currentActivityState = undefined;\n\t\t\t\tforegroundControl.updatedAt = Date.now();\n\t\t\t\tforegroundControl.interrupt = () => {\n\t\t\t\t\tif (interruptController.signal.aborted) return false;\n\t\t\t\t\tinterruptController.abort();\n\t\t\t\t\tforegroundControl.currentActivityState = undefined;\n\t\t\t\t\tforegroundControl.updatedAt = Date.now();\n\t\t\t\t\treturn true;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst structuredRuntime = seqStep.outputSchema\n\t\t\t\t? createStructuredOutputRuntime(seqStep.outputSchema, path.join(chainDir, \"structured-output\"))\n\t\t\t\t: undefined;\n\t\t\tconst toolBudget = resolveChainToolBudget({ stepBudget: seqStep.toolBudget, runBudget: params.toolBudget, agentBudget: agentConfig?.toolBudget, configBudget: params.configToolBudget });\n\t\t\tif (toolBudget.error) return buildChainExecutionErrorResult(toolBudget.error, {\n\t\t\t\tresults,\n\t\t\t\tincludeProgress,\n\t\t\t\tallProgress,\n\t\t\t\tallArtifactPaths,\n\t\t\t\tartifactsDir: params.artifactsDir,\n\t\t\t\tchainAgents,\n\t\t\t\tchainSteps,\n\t\t\t\ttotalSteps,\n\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\trunId: params.runId,\n\t\t\t\toutputs,\n\t\t\t\tcurrentFlatIndex: globalTaskIndex,\n\t\t\t\tdynamicChildren,\n\t\t\t\tdynamicGroupStatuses,\n\t\t\t});\n\t\t\tconst r = await runSync(ctx.cwd, normalizeChildSpec({\n\t\t\t\ttask: stepTask,\n\t\t\t\tdescription: seqStep.description,\n\t\t\t\tpermissions: seqStep.permissions,\n\t\t\t\tmodel: effectiveModel ?? seqStep.model,\n\t\t\t\tskill: seqStep.skill,\n\t\t\t\tcwd: seqStep.cwd,\n\t\t\t\toutput: seqStep.output,\n\t\t\t\toutputMode: seqStep.outputMode,\n\t\t\t\tacceptance: seqStep.acceptance,\n\t\t\t\ttoolBudget: seqStep.toolBudget,\n\t\t\t}, { parentMode: snapshotParentPermissionMode(ctx.sessionManager.getSessionId() ?? undefined), runId, index: childIndex }), {\n\t\t\t\tparentSessionId: ctx.sessionManager.getSessionId() ?? undefined,\n\t\t\t\tcwd: resolveChildCwd(cwd ?? ctx.cwd, seqStep.cwd),\n\t\t\t\tsignal,\n\t\t\t\tinterruptSignal: interruptController.signal,\n\t\t\t\tallowIntercomDetach: agentConfig.systemPrompt?.includes(INTERCOM_BRIDGE_MARKER) === true,\n\t\t\t\tintercomEvents,\n\t\t\t\trunId,\n\t\t\t\tindex: childIndex,\n\t\t\t\tsessionDir: sessionDirForIndex(childIndex),\n\t\t\t\tsessionFile: sessionFileForTask?.(seqStep.agent, childIndex, effectiveModel)\n\t\t\t\t\t?? sessionFileForIndex?.(childIndex),\n\t\t\t\tthinkingOverride: thinkingOverrideForTask?.(seqStep.agent, childIndex, effectiveModel),\n\t\t\t\tshare: shareEnabled,\n\t\t\t\tartifactsDir: artifactConfig.enabled ? artifactsDir : undefined,\n\t\t\t\tartifactConfig,\n\t\t\t\toutputPath,\n\t\t\t\toutputMode: behavior.outputMode,\n\t\t\t\tmaxSubagentDepth,\n\t\t\t\tcontrolConfig,\n\t\t\t\tonControlEvent,\n\t\t\t\tintercomSessionName: childIntercomTarget?.(seqStep.agent, childIndex),\n\t\t\t\torchestratorIntercomTarget,\n\t\t\t\tnestedRoute: params.nestedRoute,\n\t\t\t\tmodelOverride: effectiveModel,\n\t\t\t\tavailableModels,\n\t\t\t\tpreferredModelProvider: ctx.model?.provider,\n\t\t\t\tmodelScope,\n\t\t\t\tskills: behavior.skills === false ? [] : behavior.skills,\n\t\t\t\tstructuredOutput: structuredRuntime,\n\t\t\t\tacceptance: seqStep.acceptance,\n\t\t\t\tacceptanceContext: { mode: \"chain\" },\n\t\t\t\ttimeoutMs: params.timeoutMs,\n\t\t\t\tdeadlineAt,\n\t\t\t\tturnBudget: params.turnBudget,\n\t\t\t\tonDetachedExit: onDetachedExit\n\t\t\t\t\t? (result) => onDetachedExit(childIndex, result)\n\t\t\t\t\t: undefined,\n\t\t\t\ttoolBudget: toolBudget.toolBudget,\n\t\t\t\tonUpdate: onUpdate\n\t\t\t\t\t? (p) => {\n\t\t\t\t\t\tconst stepResults = p.details?.results || [];\n\t\t\t\t\t\tconst stepProgress = p.details?.progress || [];\n\t\t\t\t\t\tif (foregroundControl && stepProgress.length > 0) {\n\t\t\t\t\t\t\tconst current = stepProgress[0];\n\t\t\t\t\t\t\tforegroundControl.currentAgent = seqStep.description || seqStep.agent;\n\t\t\t\t\t\t\tforegroundControl.currentChildId = seqStep.agent;\n\t\t\t\t\t\t\tforegroundControl.currentIndex = childIndex;\n\t\t\t\t\t\t\tforegroundControl.currentActivityState = current?.activityState;\n\t\t\t\t\t\t\tforegroundControl.lastActivityAt = current?.lastActivityAt;\n\t\t\t\t\t\t\tforegroundControl.currentTool = current?.currentTool;\n\t\t\t\t\t\t\tforegroundControl.currentToolStartedAt = current?.currentToolStartedAt;\n\t\t\t\t\t\t\tforegroundControl.currentPath = current?.currentPath;\n\t\t\t\t\t\t\tforegroundControl.turnCount = current?.turnCount;\n\t\t\t\t\t\t\tforegroundControl.tokens = current?.tokens;\n\t\t\t\t\t\t\tforegroundControl.toolCount = current?.toolCount;\n\t\t\t\t\t\t\tforegroundControl.updatedAt = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUpdate({\n\t\t\t\t\t\t\t...p,\n\t\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\t\tmode: \"chain\",\n\t\t\t\t\t\t\t\tresults: results.concat(stepResults),\n\t\t\t\t\t\t\t\tprogress: allProgress.concat(stepProgress),\n\t\t\t\t\t\t\t\tcontrolEvents: p.details?.controlEvents,\n\t\t\t\t\t\t\t\tchainAgents,\n\t\t\t\t\t\t\t\ttotalSteps,\n\t\t\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\t\t\toutputs,\n\t\t\t\t\t\t\t\tworkflowGraph: buildWorkflowGraphSnapshot({\n\t\t\t\t\t\t\t\t\trunId,\n\t\t\t\t\t\t\t\t\tmode: \"chain\",\n\t\t\t\t\t\t\t\t\tsteps: chainSteps,\n\t\t\t\t\t\t\t\t\tresults: results.concat(stepResults),\n\t\t\t\t\t\t\t\t\tcurrentStepIndex: stepIndex,\n\t\t\t\t\t\t\t\t\tcurrentFlatIndex: childIndex,\n\t\t\t\t\t\t\t\t\tdynamicChildren,\n\t\t\t\t\t\t\t\t\tdynamicGroupStatuses,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t});\n\t\t\tif (foregroundControl?.currentIndex === childIndex) {\n\t\t\t\tforegroundControl.interrupt = undefined;\n\t\t\t\tforegroundControl.updatedAt = Date.now();\n\t\t\t}\n\t\t\trecordRun(seqStep.agent, cleanTask, r.exitCode, r.progressSummary?.durationMs ?? 0);\n\n\t\t\tglobalTaskIndex++;\n\t\t\tresults.push(r);\n\t\t\tif (r.progress) allProgress.push(r.progress);\n\t\t\tif (r.artifactPaths) allArtifactPaths.push(r.artifactPaths);\n\n\t\t\tif (r.interrupted) {\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain paused after interrupt at step ${stepIndex + 1} (${r.agent}). Waiting for explicit next action.` }],\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: childIndex })),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (r.detached) {\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Chain detached for intercom coordination at step ${stepIndex + 1} (${r.agent}). Reply to the supervisor request first, then wait with subagent_wait({ id: \"${runId}\" }). Use subagent({ action: \"status\", id: \"${runId}\" }) to recover the result; do not resume or launch a replacement while it remains detached.` }],\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: childIndex })),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (r.exitCode !== 0) {\n\t\t\t\tconst summary = buildChainSummary(chainSteps, results, chainDir, \"failed\", {\n\t\t\t\t\tindex: stepIndex,\n\t\t\t\t\terror: r.error || \"Chain failed\",\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: summary }],\n\t\t\t\t\tdetails: buildChainExecutionDetails(makeDetailsInput({ currentStepIndex: stepIndex, currentFlatIndex: childIndex })),\n\t\t\t\t\tisError: true,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (behavior.output) {\n\t\t\t\ttry {\n\t\t\t\t\tconst expectedPath = path.isAbsolute(behavior.output)\n\t\t\t\t\t\t? behavior.output\n\t\t\t\t\t\t: path.join(chainDir, behavior.output);\n\t\t\t\t\tif (!fs.existsSync(expectedPath)) {\n\t\t\t\t\t\tconst dirFiles = fs.readdirSync(chainDir);\n\t\t\t\t\t\tconst mdFiles = dirFiles.filter((file) => file.endsWith(\".md\") && file !== \"progress.md\");\n\t\t\t\t\t\tconst warning = mdFiles.length > 0\n\t\t\t\t\t\t\t? `Agent wrote to different file(s): ${mdFiles.join(\", \")} instead of ${behavior.output}`\n\t\t\t\t\t\t\t: `Agent did not create expected output file: ${behavior.output}`;\n\t\t\t\t\t\tr.error = r.error ? `${r.error}\\n${warning}` : warning;\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Ignore validation errors; this diagnostic should not mask successful chain output.\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (seqStep.as) outputs[seqStep.as] = outputEntryFromResult(r, stepIndex);\n\t\t\tprev = getSingleResultOutput(r);\n\t\t}\n\t}\n\n\tconst summary = buildChainSummary(chainSteps, results, chainDir, \"completed\");\n\n\treturn {\n\t\tcontent: [{ type: \"text\", text: summary }],\n\t\tdetails: buildChainExecutionDetails(makeDetailsInput()),\n\t};\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core execution logic for running subagents
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { ChildSpec } from "../../shared/types.ts";
|
|
5
5
|
import { type RunSyncOptions, type SingleResult } from "../../shared/types.ts";
|
|
6
6
|
/**
|
|
7
7
|
* Run a subagent synchronously (blocking until complete)
|
|
8
8
|
*/
|
|
9
|
-
export declare function runSync(runtimeCwd: string,
|
|
9
|
+
export declare function runSync(runtimeCwd: string, spec: ChildSpec, options: RunSyncOptions): Promise<SingleResult>;
|
|
10
10
|
//# sourceMappingURL=execution.d.ts.map
|