@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":"slash-commands.js","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/slash/slash-commands.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport { randomUUID } from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { keyText, type ExtensionAPI, type ExtensionContext } from \"@ashx-j/lunr\";\nimport { Key, matchesKey, type Component, type TUI } from \"@ashx-j/lunr-tui\";\nimport { BUILTIN_AGENT_NAMES, discoverAgents, discoverAgentsAll, type ChainConfig } from \"../agents/agents.ts\";\nimport {\n\tDEFAULT_PROVIDER_MODELS_MAX_AGE_DAYS,\n\tapplySubagentProfile,\n\tcheckSubagentProfile,\n\tgenerateProfilesForProvider,\n\tlistSubagentProfiles,\n\treadSubagentProfile,\n\trefreshProviderModelCatalog,\n} from \"../profiles/profiles.ts\";\nimport type { SubagentParamsLike } from \"../runs/foreground/subagent-executor.ts\";\nimport { isDynamicParallelStep, isParallelStep, type ChainStep } from \"../shared/settings.ts\";\nimport { findModelInfo, toModelInfo } from \"../shared/model-info.ts\";\nimport { formatTokens, shortenPath } from \"../shared/formatters.ts\";\nimport { listAsyncRuns, formatAsyncRunProgressLabel, type AsyncRunSummary } from \"../runs/background/async-status.ts\";\nimport { scheduledRunStorePath } from \"../runs/background/scheduled-runs.ts\";\nimport { SUBAGENT_FANOUT_CHILD_ENV } from \"../runs/shared/pi-args.ts\";\nimport { assertJsonSchemaObject } from \"../runs/shared/structured-output.ts\";\nimport { validateAcceptanceInput } from \"../runs/shared/acceptance.ts\";\nimport type { SlashSubagentResponse, SlashSubagentUpdate } from \"./slash-bridge.ts\";\nimport { registerPromptWorkflowCommands } from \"./prompt-workflows.ts\";\nimport { openSubagentFleet } from \"../tui/fleet.ts\";\nimport {\n\tapplySlashUpdate,\n\tbuildSlashInitialResult,\n\tfailSlashResult,\n\tfinalizeSlashResult,\n\tresolveSlashMessageDetails,\n} from \"./slash-live-state.ts\";\nimport {\n\tSLASH_RESULT_TYPE,\n\tSLASH_TEXT_RESULT_TYPE,\n\tSLASH_SUBAGENT_CANCEL_EVENT,\n\tSLASH_SUBAGENT_REQUEST_EVENT,\n\tSLASH_SUBAGENT_RESPONSE_EVENT,\n\tSLASH_SUBAGENT_STARTED_EVENT,\n\tSLASH_SUBAGENT_UPDATE_EVENT,\n\tASYNC_DIR,\n\ttype Details,\n\ttype JsonSchemaObject,\n\ttype SingleResult,\n\ttype SubagentState,\n\ttype Usage,\n} from \"../shared/types.ts\";\n\ninterface InlineConfig {\n\toutput?: string | false;\n\toutputMode?: \"inline\" | \"file-only\";\n\treads?: string[] | false;\n\tmodel?: string;\n\tskill?: string[] | false;\n\tprogress?: boolean;\n\tas?: string;\n\tlabel?: string;\n\tphase?: string;\n\tcwd?: string;\n\tcount?: number;\n\toutputSchema?: string;\n\tacceptance?: string;\n}\n\nconst parseInlineConfig = (raw: string): InlineConfig => {\n\tconst config: InlineConfig = {};\n\tfor (const part of raw.split(\",\")) {\n\t\tconst trimmed = part.trim();\n\t\tif (!trimmed) continue;\n\t\tconst eq = trimmed.indexOf(\"=\");\n\t\tif (eq === -1) {\n\t\t\tif (trimmed === \"progress\") config.progress = true;\n\t\t\tcontinue;\n\t\t}\n\t\tconst key = trimmed.slice(0, eq).trim();\n\t\tconst val = trimmed.slice(eq + 1).trim();\n\t\tswitch (key) {\n\t\t\tcase \"output\": config.output = val === \"false\" ? false : val; break;\n\t\t\tcase \"outputMode\": if (val === \"inline\" || val === \"file-only\") config.outputMode = val; break;\n\t\t\tcase \"reads\": config.reads = val === \"false\" ? false : val.split(\"+\").filter(Boolean); break;\n\t\t\tcase \"model\": config.model = val || undefined; break;\n\t\t\tcase \"skill\": case \"skills\": config.skill = val === \"false\" ? false : val.split(\"+\").filter(Boolean); break;\n\t\t\tcase \"progress\": config.progress = val !== \"false\"; break;\n\t\t\tcase \"as\": config.as = val || undefined; break;\n\t\t\tcase \"label\": config.label = val || undefined; break;\n\t\t\tcase \"phase\": config.phase = val || undefined; break;\n\t\t\tcase \"cwd\": config.cwd = val || undefined; break;\n\t\t\tcase \"count\": { const n = Number(val); if (Number.isInteger(n) && n > 0) config.count = n; break; }\n\t\t\tcase \"outputSchema\": config.outputSchema = val || undefined; break;\n\t\t\tcase \"acceptance\": config.acceptance = val || undefined; break;\n\t\t}\n\t}\n\treturn config;\n};\n\nconst parseAgentToken = (token: string): { name: string; config: InlineConfig } => {\n\tconst bracket = token.indexOf(\"[\");\n\tif (bracket === -1) return { name: token, config: {} };\n\tconst end = token.lastIndexOf(\"]\");\n\treturn { name: token.slice(0, bracket), config: parseInlineConfig(token.slice(bracket + 1, end !== -1 ? end : undefined)) };\n};\n\nconst extractExecutionFlags = (rawArgs: string): { args: string; bg: boolean; fork: boolean } => {\n\tlet args = rawArgs.trim();\n\tlet bg = false;\n\tlet fork = false;\n\n\twhile (true) {\n\t\tif (args.endsWith(\" --bg\") || args === \"--bg\") {\n\t\t\tbg = true;\n\t\t\targs = args === \"--bg\" ? \"\" : args.slice(0, -5).trim();\n\t\t\tcontinue;\n\t\t}\n\t\tif (args.endsWith(\" --fork\") || args === \"--fork\") {\n\t\t\tfork = true;\n\t\t\targs = args === \"--fork\" ? \"\" : args.slice(0, -7).trim();\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\n\n\treturn { args, bg, fork };\n};\n\nconst makeAgentCompletions = (state: SubagentState, multiAgent: boolean) => (prefix: string) => {\n\tif (!state.baseCwd) return null;\n\tconst agents = discoverAgents(state.baseCwd, \"both\").agents;\n\tif (!multiAgent) {\n\t\tif (prefix.includes(\" \")) return null;\n\t\treturn agents.filter((a) => a.name.startsWith(prefix)).map((a) => ({ value: a.name, label: a.name }));\n\t}\n\n\t// Find the start of the current chain step: after the last top-level `->` arrow or `(`,\n\t// or after a `|` *inside* a group. A `|` at depth 0 is plain task text (only `(` opens a\n\t// group), so it must not restart agent completion — otherwise `scout -- do x | wr` would\n\t// wrongly resume suggesting agents past the `--` task. Quotes are tracked so separators\n\t// inside a task are ignored.\n\tlet inSingle = false, inDouble = false, depth = 0, segStart = 0;\n\tfor (let i = 0; i < prefix.length; i++) {\n\t\tconst ch = prefix[i]!;\n\t\tif (inSingle) { if (ch === \"'\") inSingle = false; continue; }\n\t\tif (inDouble) { if (ch === '\"') inDouble = false; continue; }\n\t\tif (ch === \"'\") { inSingle = true; continue; }\n\t\tif (ch === '\"') { inDouble = true; continue; }\n\t\tif (ch === \"(\") {\n\t\t\tif (!prefix.slice(segStart, i).includes(\" -- \")) {\n\t\t\t\tdepth++;\n\t\t\t\tsegStart = i + 1;\n\t\t\t}\n\t\t}\n\t\telse if (ch === \")\") {\n\t\t\tif (depth > 0) {\n\t\t\t\tdepth--;\n\t\t\t\tsegStart = i + 1;\n\t\t\t}\n\t\t}\n\t\telse if (ch === \"|\" && depth > 0) segStart = i + 1;\n\t\telse if (ch === \">\" && prefix[i - 1] === \"-\" && depth === 0) segStart = i + 1;\n\t}\n\t// Inside an open quote, or once the task has started (`--` / a quote), we are no\n\t// longer typing an agent name.\n\tif (inSingle || inDouble) return null;\n\tconst segment = prefix.slice(segStart);\n\tif (segment.includes(\" -- \") || segment.includes('\"') || segment.includes(\"'\")) return null;\n\n\tconst lastWord = (segment.match(/(\\S*)$/) || [\"\", \"\"])[1];\n\tlet beforeLastWord = prefix.slice(0, prefix.length - lastWord.length);\n\t// A bare `->` or `|` just typed (no trailing space) needs a separating space;\n\t// `(` glues naturally to the agent name.\n\tif (lastWord === \"\" && /[>|]$/.test(beforeLastWord)) beforeLastWord = `${beforeLastWord} `;\n\n\treturn agents.filter((a) => a.name.startsWith(lastWord)).map((a) => ({ value: `${beforeLastWord}${a.name}`, label: a.name }));\n};\n\nconst discoverSavedChains = (cwd: string): ChainConfig[] => {\n\tconst chainsByName = new Map<string, ChainConfig>();\n\tfor (const chain of discoverAgentsAll(cwd).chains) {\n\t\tchainsByName.set(chain.name, chain);\n\t}\n\treturn Array.from(chainsByName.values());\n};\n\nconst makeChainCompletions = (state: SubagentState) => (prefix: string) => {\n\tif (prefix.includes(\" \") || !state.baseCwd) return null;\n\treturn discoverSavedChains(state.baseCwd)\n\t\t.filter((chain) => chain.name.startsWith(prefix))\n\t\t.map((chain) => ({ value: chain.name, label: chain.name }));\n};\n\nconst makeBuiltinAgentNameCompletions = () => (prefix: string) => {\n\tif (prefix.includes(\" \")) return null;\n\treturn BUILTIN_AGENT_NAMES\n\t\t.filter((name) => name.startsWith(prefix))\n\t\t.map((name) => ({ value: name, label: name }));\n};\n\nconst makeProviderCompletions = (state: SubagentState) => (prefix: string) => {\n\tif (prefix.includes(\" \")) return null;\n\tconst available = state.lastUiContext?.modelRegistry?.getAvailable?.();\n\tif (!Array.isArray(available)) return null;\n\tconst providers = [...new Set(available\n\t\t.map((model) => typeof model?.provider === \"string\" ? model.provider : \"\")\n\t\t.filter(Boolean))]\n\t\t.sort((a, b) => a.localeCompare(b));\n\treturn providers\n\t\t.filter((provider) => provider.startsWith(prefix))\n\t\t.map((provider) => ({ value: provider, label: provider }));\n};\n\nfunction sendSlashText(pi: ExtensionAPI, text: string): void {\n\tpi.sendMessage({ customType: SLASH_TEXT_RESULT_TYPE, content: text, display: true });\n}\n\nasync function withSlashStatus<T>(\n\tctx: ExtensionContext,\n\ttext: string,\n\trun: () => Promise<T>,\n): Promise<T> {\n\tif (ctx.hasUI) ctx.ui.setStatus(\"subagent-slash-text\", text);\n\ttry {\n\t\treturn await run();\n\t} finally {\n\t\tif (ctx.hasUI) ctx.ui.setStatus(\"subagent-slash-text\", undefined);\n\t}\n}\n\ntype Theme = ExtensionContext[\"ui\"][\"theme\"];\n\ntype StopSelectorTarget = {\n\tkind: \"async\" | \"scheduled\";\n\tid: string;\n\tlabel: string;\n\tdetail: string;\n\tactionLabel: string;\n};\n\ntype StopSelectorResult = { confirmed: boolean; target?: StopSelectorTarget };\n\nfunction commandForTarget(target: StopSelectorTarget): string {\n\treturn target.kind === \"scheduled\"\n\t\t? `subagent({ action: \"schedule-cancel\", id: ${JSON.stringify(target.id)} })`\n\t\t: `subagent({ action: \"stop\", id: ${JSON.stringify(target.id)} })`;\n}\n\nfunction formatAsyncStopTarget(run: AsyncRunSummary): StopSelectorTarget {\n\tconst progress = formatAsyncRunProgressLabel(run);\n\tconst cwd = run.cwd ? shortenPath(run.cwd) : shortenPath(run.asyncDir);\n\treturn {\n\t\tkind: \"async\",\n\t\tid: run.id,\n\t\tlabel: `${run.id} · ${run.mode} · ${progress}`,\n\t\tdetail: `${run.state} · ${cwd}`,\n\t\tactionLabel: \"stop async run\",\n\t};\n}\n\nfunction scheduledStopTargets(ctx: ExtensionContext, state: SubagentState): StopSelectorTarget[] {\n\tconst sessionId = state.currentSessionId ?? ctx.sessionManager.getSessionId();\n\tif (!sessionId) return [];\n\tconst storePath = scheduledRunStorePath(ctx.cwd, sessionId);\n\tif (!fs.existsSync(storePath)) return [];\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = JSON.parse(fs.readFileSync(storePath, \"utf-8\"));\n\t} catch {\n\t\treturn [];\n\t}\n\tconst jobs = parsed && typeof parsed === \"object\" && Array.isArray((parsed as { jobs?: unknown }).jobs)\n\t\t? (parsed as { jobs: Array<Record<string, unknown>> }).jobs\n\t\t: [];\n\treturn jobs\n\t\t.filter((job) => job.state === \"scheduled\" && typeof job.id === \"string\" && typeof job.name === \"string\" && typeof job.runAt === \"number\")\n\t\t.sort((left, right) => Number(left.runAt) - Number(right.runAt))\n\t\t.map((job) => ({\n\t\t\tkind: \"scheduled\" as const,\n\t\t\tid: String(job.id),\n\t\t\tlabel: `${String(job.id)} · ${String(job.name)}`,\n\t\t\tdetail: `scheduled · ${new Date(Number(job.runAt)).toISOString()}`,\n\t\t\tactionLabel: \"cancel scheduled run\",\n\t\t}));\n}\n\nfunction discoverStopTargets(ctx: ExtensionContext, state: SubagentState): StopSelectorTarget[] {\n\tconst sessionId = state.currentSessionId ?? ctx.sessionManager.getSessionId() ?? undefined;\n\tconst asyncTargets = listAsyncRuns(ASYNC_DIR, {\n\t\tstates: [\"queued\", \"running\"],\n\t\t...(sessionId ? { sessionId } : {}),\n\t}).map(formatAsyncStopTarget);\n\treturn [...asyncTargets, ...scheduledStopTargets(ctx, state)];\n}\n\nfunction stopFallbackText(targets: StopSelectorTarget[]): string {\n\tif (targets.length === 0) return \"No active current-session async runs or scheduled subagent runs to stop.\";\n\tconst lines = [\"Subagent stop targets:\", \"\"];\n\tfor (const target of targets) {\n\t\tlines.push(`- ${target.label}`);\n\t\tlines.push(` ${target.detail}`);\n\t\tlines.push(` ${target.actionLabel}: ${commandForTarget(target)}`);\n\t\tif (target.kind === \"async\") lines.push(` slash: /subagents-stop ${target.id}`);\n\t}\n\treturn lines.join(\"\\n\");\n}\n\nclass SubagentsStopSelector implements Component {\n\treadonly width = 84;\n\tprivate selected = 0;\n\tprivate confirming = false;\n\tprivate readonly tui: TUI;\n\tprivate readonly theme: Theme;\n\tprivate readonly targets: StopSelectorTarget[];\n\tprivate readonly done: (result: StopSelectorResult) => void;\n\n\tconstructor(tui: TUI, theme: Theme, targets: StopSelectorTarget[], done: (result: StopSelectorResult) => void) {\n\t\tthis.tui = tui;\n\t\tthis.theme = theme;\n\t\tthis.targets = targets;\n\t\tthis.done = done;\n\t}\n\n\thandleInput(data: string): void {\n\t\tif (matchesKey(data, \"escape\") || matchesKey(data, \"ctrl+c\")) {\n\t\t\tthis.done({ confirmed: false });\n\t\t\treturn;\n\t\t}\n\t\tif (this.confirming) {\n\t\t\tif (matchesKey(data, \"return\") || data.toLowerCase() === \"y\") {\n\t\t\t\tthis.done({ confirmed: true, target: this.targets[this.selected] });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (data.toLowerCase() === \"n\" || matchesKey(data, \"backspace\")) {\n\t\t\t\tthis.confirming = false;\n\t\t\t\tthis.tui.requestRender();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (matchesKey(data, \"up\")) {\n\t\t\tthis.selected = Math.max(0, this.selected - 1);\n\t\t\tthis.tui.requestRender();\n\t\t\treturn;\n\t\t}\n\t\tif (matchesKey(data, \"down\")) {\n\t\t\tthis.selected = Math.min(this.targets.length - 1, this.selected + 1);\n\t\t\tthis.tui.requestRender();\n\t\t\treturn;\n\t\t}\n\t\tif (matchesKey(data, \"return\")) {\n\t\t\tthis.confirming = true;\n\t\t\tthis.tui.requestRender();\n\t\t}\n\t}\n\n\trender(width: number): string[] {\n\t\tconst contentWidth = Math.max(40, Math.min(this.width, width || this.width));\n\t\tconst lines = [this.theme.bold(\"Stop subagent run\"), this.theme.fg(\"dim\", \"Select a current-session async run to stop, or a scheduled run to cancel.\"), \"\"];\n\t\tconst maxRows = 10;\n\t\tconst start = Math.max(0, Math.min(this.selected - maxRows + 1, Math.max(0, this.targets.length - maxRows)));\n\t\tfor (let index = start; index < Math.min(this.targets.length, start + maxRows); index++) {\n\t\t\tconst target = this.targets[index]!;\n\t\t\tconst selected = index === this.selected;\n\t\t\tconst marker = selected ? \"›\" : \" \";\n\t\t\t\tconst actionLabel = target.actionLabel;\n\t\t\tconst action = target.kind === \"scheduled\" ? this.theme.fg(\"warning\", actionLabel) : this.theme.fg(\"accent\", actionLabel);\n\t\t\tconst labelWidth = Math.max(0, contentWidth - marker.length - actionLabel.length - 2);\n\t\t\tlines.push(`${marker} ${action} ${target.label.slice(0, labelWidth)}`);\n\t\t\tif (selected) lines.push(this.theme.fg(\"dim\", ` ${target.detail}`.slice(0, contentWidth)));\n\t\t}\n\t\tif (this.targets.length > maxRows) lines.push(this.theme.fg(\"dim\", `Showing ${start + 1}-${Math.min(this.targets.length, start + maxRows)} of ${this.targets.length}`));\n\t\tlines.push(\"\");\n\t\tif (this.confirming) {\n\t\t\tconst target = this.targets[this.selected]!;\n\t\t\tlines.push(this.theme.fg(\"warning\", `Confirm: ${target.actionLabel} ${target.id}?`));\n\t\t\tif (target.kind === \"async\") lines.push(this.theme.fg(\"dim\", \"Stop ends this run; use interrupt for a resumable pause.\"));\n\t\t\tlines.push(this.theme.fg(\"dim\", \"Enter/Y confirms · N returns · Esc cancels\"));\n\t\t} else {\n\t\t\tlines.push(this.theme.fg(\"dim\", \"↑/↓ select · Enter confirm · Esc cancel\"));\n\t\t}\n\t\treturn lines;\n\t}\n}\n\nfunction emptyUsage(): Usage {\n\treturn { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, cost: 0, turns: 0 };\n}\n\nfunction addUsage(target: Usage, source: Usage): void {\n\ttarget.input += source.input;\n\ttarget.output += source.output;\n\ttarget.cacheRead += source.cacheRead;\n\ttarget.cacheWrite += source.cacheWrite;\n\ttarget.cost += source.cost;\n\ttarget.turns += source.turns;\n}\n\nfunction usageHasValue(usage: Usage): boolean {\n\treturn usage.input !== 0 || usage.output !== 0 || usage.cacheRead !== 0 || usage.cacheWrite !== 0 || usage.cost !== 0 || usage.turns !== 0;\n}\n\nfunction assistantUsageFromMessage(message: unknown): Usage | undefined {\n\tif (!message || typeof message !== \"object\") return undefined;\n\tconst msg = message as { role?: unknown; usage?: unknown };\n\tif (msg.role !== \"assistant\" || !msg.usage || typeof msg.usage !== \"object\") return undefined;\n\tconst usage = msg.usage as {\n\t\tinput?: unknown;\n\t\toutput?: unknown;\n\t\tcacheRead?: unknown;\n\t\tcacheWrite?: unknown;\n\t\tcost?: { total?: unknown };\n\t};\n\treturn {\n\t\tinput: typeof usage.input === \"number\" ? usage.input : 0,\n\t\toutput: typeof usage.output === \"number\" ? usage.output : 0,\n\t\tcacheRead: typeof usage.cacheRead === \"number\" ? usage.cacheRead : 0,\n\t\tcacheWrite: typeof usage.cacheWrite === \"number\" ? usage.cacheWrite : 0,\n\t\tcost: typeof usage.cost?.total === \"number\" ? usage.cost.total : 0,\n\t\tturns: 1,\n\t};\n}\n\nfunction isSubagentDetails(value: unknown): value is Details {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst details = value as { mode?: unknown; results?: unknown };\n\treturn typeof details.mode === \"string\" && Array.isArray(details.results);\n}\n\nfunction detailsFromSessionEntry(entry: unknown): Details | undefined {\n\tif (!entry || typeof entry !== \"object\") return undefined;\n\tconst record = entry as { type?: unknown; customType?: unknown; details?: unknown; message?: unknown };\n\tif (record.type === \"custom_message\" && record.customType === SLASH_RESULT_TYPE) {\n\t\tconst details = resolveSlashMessageDetails(record.details)?.result.details;\n\t\treturn isSubagentDetails(details) ? details : undefined;\n\t}\n\tif (record.type !== \"message\" || !record.message || typeof record.message !== \"object\") return undefined;\n\tconst message = record.message as { role?: unknown; toolName?: unknown; details?: unknown };\n\tif (message.role !== \"toolResult\" || message.toolName !== \"subagent\") return undefined;\n\treturn isSubagentDetails(message.details) ? message.details : undefined;\n}\n\nfunction formatCostUsage(label: string, usage: Usage): string {\n\tconst extras = [\n\t\tusage.cacheRead ? `cache read ${formatTokens(usage.cacheRead)}` : \"\",\n\t\tusage.cacheWrite ? `cache write ${formatTokens(usage.cacheWrite)}` : \"\",\n\t\tusage.turns ? `${usage.turns} turn${usage.turns === 1 ? \"\" : \"s\"}` : \"\",\n\t].filter(Boolean);\n\treturn `${label}: ↑${formatTokens(usage.input)} ↓${formatTokens(usage.output)} $${usage.cost.toFixed(4)}${extras.length ? ` (${extras.join(\", \")})` : \"\"}`;\n}\n\nfunction buildSubagentCostReport(ctx: ExtensionContext): string {\n\tconst parent = emptyUsage();\n\tconst childTotal = emptyUsage();\n\tconst total = emptyUsage();\n\tconst children: Array<{ label: string; usage: Usage; sessionFile?: string }> = [];\n\tfor (const entry of ctx.sessionManager.getBranch()) {\n\t\tconst message = entry.type === \"message\" ? (entry as { message?: unknown }).message : undefined;\n\t\tconst parentUsage = assistantUsageFromMessage(message);\n\t\tif (parentUsage) addUsage(parent, parentUsage);\n\t\tconst details = detailsFromSessionEntry(entry);\n\t\tif (!details) continue;\n\t\tfor (const result of details.results) {\n\t\t\tif (!usageHasValue(result.usage)) continue;\n\t\t\tconst usage = { ...result.usage };\n\t\t\tchildren.push({\n\t\t\t\tlabel: `Child ${children.length + 1} (${result.agent})`,\n\t\t\t\tusage,\n\t\t\t\t...(result.sessionFile ? { sessionFile: result.sessionFile } : {}),\n\t\t\t});\n\t\t\taddUsage(childTotal, usage);\n\t\t}\n\t}\n\taddUsage(total, parent);\n\taddUsage(total, childTotal);\n\tconst lines = [\n\t\t\"Subagent cost\",\n\t\t\"\",\n\t\tformatCostUsage(\"Parent\", parent),\n\t];\n\tif (children.length === 0) {\n\t\tlines.push(\"No subagent child usage found in this session.\");\n\t} else {\n\t\tfor (const child of children) {\n\t\t\tlines.push(formatCostUsage(child.label, child.usage));\n\t\t\tif (child.sessionFile) lines.push(` Session: ${child.sessionFile}`);\n\t\t}\n\t}\n\tlines.push(\"────────────────────────────\", formatCostUsage(\"Children\", childTotal), formatCostUsage(\"Total\", total));\n\treturn lines.join(\"\\n\");\n}\n\nfunction parseSingleRequiredArg(args: string, usage: string): { ok: true; value: string } | { ok: false; message: string } {\n\tconst parts = args.trim().split(/\\s+/).filter(Boolean);\n\tif (parts.length !== 1) return { ok: false, message: usage };\n\treturn { ok: true, value: parts[0]! };\n}\n\nfunction getProfileWorkerModel(profile: { subagents?: { agentOverrides?: Record<string, { model?: string }> } }): string | undefined {\n\tconst model = profile.subagents?.agentOverrides?.worker?.model;\n\treturn typeof model === \"string\" && model.trim() ? model.trim() : undefined;\n}\n\nfunction loadSavedOutputSchema(chain: ChainConfig, stepAgent: string, outputSchema: unknown): JsonSchemaObject | undefined {\n\tif (outputSchema === undefined) return undefined;\n\tif (typeof outputSchema === \"string\") {\n\t\tconst schemaPath = path.isAbsolute(outputSchema)\n\t\t\t? outputSchema\n\t\t\t: path.join(path.dirname(chain.filePath), outputSchema);\n\t\tconst parsed = JSON.parse(fs.readFileSync(schemaPath, \"utf-8\")) as unknown;\n\t\tassertJsonSchemaObject(parsed, `outputSchema for chain '${chain.name}' step '${stepAgent}' (${schemaPath})`);\n\t\treturn parsed;\n\t}\n\tassertJsonSchemaObject(outputSchema, `outputSchema for chain '${chain.name}' step '${stepAgent}'`);\n\treturn outputSchema;\n}\n\nconst mapSavedChainSteps = (chain: ChainConfig, worktree = false): ChainStep[] => {\n\treturn (chain.steps as unknown as Array<ChainStep & { skills?: string[] | false }>).map((step) => {\n\t\tif (isParallelStep(step)) {\n\t\t\tconst parallel = step.parallel.map((task) => {\n\t\t\t\tconst { outputSchema: rawOutputSchema, ...rest } = task as typeof task & { outputSchema?: unknown };\n\t\t\t\tconst outputSchema = loadSavedOutputSchema(chain, task.agent, rawOutputSchema);\n\t\t\t\treturn { ...rest, ...(outputSchema ? { outputSchema } : {}) };\n\t\t\t});\n\t\t\treturn { ...step, parallel, ...(worktree ? { worktree: true } : {}) };\n\t\t}\n\t\tif (isDynamicParallelStep(step)) {\n\t\t\tconst { outputSchema: rawOutputSchema, ...parallelRest } = step.parallel as typeof step.parallel & { outputSchema?: unknown };\n\t\t\tconst outputSchema = loadSavedOutputSchema(chain, step.parallel.agent, rawOutputSchema);\n\t\t\tconst collectSchema = loadSavedOutputSchema(chain, `${step.collect.as} collection`, step.collect.outputSchema);\n\t\t\treturn {\n\t\t\t\t...step,\n\t\t\t\tparallel: { ...parallelRest, ...(outputSchema ? { outputSchema } : {}) },\n\t\t\t\tcollect: { ...step.collect, ...(collectSchema ? { outputSchema: collectSchema } : {}) },\n\t\t\t};\n\t\t}\n\t\tconst outputSchema = loadSavedOutputSchema(chain, step.agent, (step as { outputSchema?: unknown }).outputSchema);\n\t\treturn {\n\t\t\tagent: step.agent,\n\t\t\ttask: step.task || undefined,\n\t\t\t...(step.phase ? { phase: step.phase } : {}),\n\t\t\t...(step.label ? { label: step.label } : {}),\n\t\t\t...(step.as ? { as: step.as } : {}),\n\t\t\t...(outputSchema ? { outputSchema } : {}),\n\t\t\t...((step as { acceptance?: unknown }).acceptance !== undefined ? { acceptance: (step as { acceptance?: unknown }).acceptance } : {}),\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\tskill: step.skill ?? step.skills,\n\t\t\tmodel: step.model,\n\t\t};\n\t});\n};\n\nasync function requestSlashRun(\n\tpi: ExtensionAPI,\n\tctx: ExtensionContext,\n\trequestId: string,\n\tparams: SubagentParamsLike,\n): Promise<SlashSubagentResponse> {\n\treturn new Promise((resolve, reject) => {\n\t\tlet done = false;\n\t\tlet started = false;\n\n\t\tconst startTimeoutMs = 15_000;\n\t\tconst startTimeout = setTimeout(() => {\n\t\t\tfinish(() => reject(new Error(\n\t\t\t\t\"Slash subagent bridge did not start within 15s. Ensure the extension is loaded correctly.\",\n\t\t\t)));\n\t\t}, startTimeoutMs);\n\n\t\tconst onStarted = (data: unknown) => {\n\t\t\tif (done || !data || typeof data !== \"object\") return;\n\t\t\tif ((data as { requestId?: unknown }).requestId !== requestId) return;\n\t\t\tstarted = true;\n\t\t\tclearTimeout(startTimeout);\n\t\t\tif (ctx.hasUI) ctx.ui.setStatus(\"subagent-slash\", \"running...\");\n\t\t};\n\n\t\tconst onResponse = (data: unknown) => {\n\t\t\tif (done || !data || typeof data !== \"object\") return;\n\t\t\tconst response = data as Partial<SlashSubagentResponse>;\n\t\t\tif (response.requestId !== requestId) return;\n\t\t\tclearTimeout(startTimeout);\n\t\t\tfinish(() => resolve(response as SlashSubagentResponse));\n\t\t};\n\n\t\tconst onUpdate = (data: unknown) => {\n\t\t\tif (done || !data || typeof data !== \"object\") return;\n\t\t\tconst update = data as SlashSubagentUpdate;\n\t\t\tif (update.requestId !== requestId) return;\n\t\t\tapplySlashUpdate(requestId, update);\n\t\t\tif (!ctx.hasUI) return;\n\t\t\tconst tool = update.currentTool ? ` ${update.currentTool}` : \"\";\n\t\t\tconst count = update.toolCount ?? 0;\n\t\t\tconst liveDetailKey = keyText(\"app.tools.expand\");\n\t\t\tctx.ui.setStatus(\"subagent-slash\", `${count} tools${tool} | ${liveDetailKey} live detail`);\n\t\t};\n\n\t\tconst onTerminalInput = ctx.hasUI\n\t\t\t? ctx.ui.onTerminalInput((input) => {\n\t\t\t\tif (!matchesKey(input, Key.escape)) return undefined;\n\t\t\t\tpi.events.emit(SLASH_SUBAGENT_CANCEL_EVENT, { requestId });\n\t\t\t\tfinish(() => reject(new Error(\"Cancelled\")));\n\t\t\t\treturn { consume: true };\n\t\t\t})\n\t\t\t: undefined;\n\n\t\tconst unsubStarted = pi.events.on(SLASH_SUBAGENT_STARTED_EVENT, onStarted);\n\t\tconst unsubResponse = pi.events.on(SLASH_SUBAGENT_RESPONSE_EVENT, onResponse);\n\t\tconst unsubUpdate = pi.events.on(SLASH_SUBAGENT_UPDATE_EVENT, onUpdate);\n\n\t\tconst finish = (next: () => void) => {\n\t\t\tif (done) return;\n\t\t\tdone = true;\n\t\t\tclearTimeout(startTimeout);\n\t\t\tunsubStarted();\n\t\t\tunsubResponse();\n\t\t\tunsubUpdate();\n\t\t\tonTerminalInput?.();\n\t\t\tnext();\n\t\t};\n\n\t\tpi.events.emit(SLASH_SUBAGENT_REQUEST_EVENT, { requestId, params, ctx });\n\n\t\t// Bridge emits STARTED synchronously during REQUEST emit.\n\t\t// If not started, no bridge received the request.\n\t\tif (!started && done) return;\n\t\tif (!started) {\n\t\t\tfinish(() => reject(new Error(\n\t\t\t\t\"No slash subagent bridge responded. Ensure the subagent extension is loaded correctly.\",\n\t\t\t)));\n\t\t}\n\t});\n}\n\nfunction extractSlashMessageText(content: string | Array<{ type?: string; text?: string }>): string {\n\tif (typeof content === \"string\") return content;\n\tif (!Array.isArray(content)) return \"\";\n\treturn content\n\t\t.filter((part): part is { type: \"text\"; text: string } => part?.type === \"text\" && typeof part.text === \"string\")\n\t\t.map((part) => part.text)\n\t\t.join(\"\\n\");\n}\n\nfunction formatExportPathList(paths: string[]): string {\n\treturn paths.map((file) => `- \\`${file}\\``).join(\"\\n\");\n}\n\nfunction collectResultPaths(results: SingleResult[], getPath: (result: SingleResult) => string | undefined): string[] {\n\treturn results\n\t\t.map(getPath)\n\t\t.filter((file): file is string => typeof file === \"string\" && file.length > 0);\n}\n\nfunction buildSlashExportText(response: SlashSubagentResponse): string {\n\tconst output = extractSlashMessageText(response.result.content) || response.errorText || \"(no output)\";\n\tconst results = response.result.details?.results ?? [];\n\tconst sessionFiles = collectResultPaths(results, (result) => result.sessionFile);\n\tconst savedOutputs = collectResultPaths(results, (result) => result.savedOutputPath);\n\tconst artifactOutputs = collectResultPaths(results, (result) => result.artifactPaths?.outputPath);\n\tconst sections = [\"## Subagent result\", output];\n\tif (sessionFiles.length > 0) sections.push(\"## Child session exports\", formatExportPathList(sessionFiles));\n\tif (savedOutputs.length > 0) sections.push(\"## Saved outputs\", formatExportPathList(savedOutputs));\n\tif (artifactOutputs.length > 0) sections.push(\"## Artifact outputs\", formatExportPathList(artifactOutputs));\n\treturn sections.join(\"\\n\\n\");\n}\n\nfunction persistSlashSessionSnapshot(ctx: ExtensionContext): void {\n\ttry {\n\t\tif (!ctx.sessionManager) return;\n\t\tconst sessionManager = ctx.sessionManager as typeof ctx.sessionManager & {\n\t\t\t_rewriteFile?: () => void;\n\t\t\tflushed?: boolean;\n\t\t};\n\t\tconst sessionFile = sessionManager.getSessionFile();\n\t\tif (!sessionFile || typeof sessionManager._rewriteFile !== \"function\") return;\n\t\tfs.mkdirSync(path.dirname(sessionFile), { recursive: true });\n\t\tsessionManager._rewriteFile();\n\t\tsessionManager.flushed = true;\n\t} catch (error) {\n\t\tconsole.error(\"Failed to persist slash session snapshot for export:\", error);\n\t}\n}\n\nasync function runSlashSubagent(\n\tpi: ExtensionAPI,\n\tctx: ExtensionContext,\n\tparams: SubagentParamsLike,\n): Promise<void> {\n\tif (ctx.hasUI) ctx.ui.setToolsExpanded(false);\n\tconst requestId = randomUUID();\n\tconst initialDetails = buildSlashInitialResult(requestId, params);\n\tconst initialText = extractSlashMessageText(initialDetails.result.content) || \"Running subagent...\";\n\tpi.sendMessage({\n\t\tcustomType: SLASH_RESULT_TYPE,\n\t\tcontent: initialText,\n\t\tdisplay: true,\n\t\tdetails: initialDetails,\n\t});\n\tpersistSlashSessionSnapshot(ctx);\n\n\ttry {\n\t\tconst response = await requestSlashRun(pi, ctx, requestId, params);\n\t\tconst finalDetails = finalizeSlashResult(response);\n\t\tpi.sendMessage({\n\t\t\tcustomType: SLASH_RESULT_TYPE,\n\t\t\tcontent: buildSlashExportText(response),\n\t\t\tdisplay: !ctx.hasUI,\n\t\t\tdetails: finalDetails,\n\t\t});\n\t\tpersistSlashSessionSnapshot(ctx);\n\t\tif (ctx.hasUI) {\n\t\t\tctx.ui.setStatus(\"subagent-slash\", undefined);\n\t\t}\n\t\tif (response.isError && ctx.hasUI) {\n\t\t\tctx.ui.notify(response.errorText || \"Subagent failed\", \"error\");\n\t\t}\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tconst failedDetails = failSlashResult(requestId, params, message);\n\t\tpi.sendMessage({\n\t\t\tcustomType: SLASH_RESULT_TYPE,\n\t\t\tcontent: `## Subagent result\\n\\n${message}`,\n\t\t\tdisplay: !ctx.hasUI,\n\t\t\tdetails: failedDetails,\n\t\t});\n\t\tpersistSlashSessionSnapshot(ctx);\n\t\tif (ctx.hasUI) {\n\t\t\tctx.ui.setStatus(\"subagent-slash\", undefined);\n\t\t}\n\t\tif (message === \"Cancelled\") {\n\t\t\tif (ctx.hasUI) ctx.ui.notify(\"Cancelled\", \"warning\");\n\t\t\treturn;\n\t\t}\n\t\tif (ctx.hasUI) ctx.ui.notify(message, \"error\");\n\t}\n}\n\n\nexport interface GroupConfig { concurrency?: number; failFast?: boolean; worktree?: boolean }\nexport interface ParsedStep { kind: \"step\"; name: string; config: InlineConfig; task?: string }\nexport interface ParsedGroup { kind: \"group\"; tasks: ParsedStep[]; config: GroupConfig }\nexport type ParsedGroupStep = ParsedStep | ParsedGroup;\n\nexport const PARALLEL_GROUP_USAGE =\n\t'Usage: /chain agent \"task\" -> (agent2 \"task\" | agent3 \"task\") -> agent4';\n\nexport class SlashParseError extends Error {}\n\n// Walk `input` tracking quote/paren state; returns true if parens are unbalanced.\nfunction findUnmatchedCloseParen(input: string): boolean {\n\tlet depth = 0, inSingle = false, inDouble = false;\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst ch = input[i]!;\n\t\tif (inSingle) { if (ch === \"'\") inSingle = false; continue; }\n\t\tif (inDouble) { if (ch === '\"') inDouble = false; continue; }\n\t\tif (ch === \"'\") { inSingle = true; continue; }\n\t\tif (ch === '\"') { inDouble = true; continue; }\n\t\tif (ch === \"(\") depth++;\n\t\telse if (ch === \")\") { depth--; if (depth < 0) return true; }\n\t}\n\treturn depth !== 0;\n}\n\n// Split on top-level \" -> \", ignoring arrows inside quotes or parentheses.\nfunction splitOnArrow(input: string): string[] {\n\tconst segments: string[] = [];\n\tlet depth = 0, inSingle = false, inDouble = false, start = 0;\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst ch = input[i]!;\n\t\tif (inSingle) { if (ch === \"'\") inSingle = false; continue; }\n\t\tif (inDouble) { if (ch === '\"') inDouble = false; continue; }\n\t\tif (ch === \"'\") { inSingle = true; continue; }\n\t\tif (ch === '\"') { inDouble = true; continue; }\n\t\tif (ch === \"(\") depth++;\n\t\telse if (ch === \")\") depth--;\n\t\telse if (depth === 0 && ch === \"-\" && input[i + 1] === \">\" && input[i + 2] === \" \") {\n\t\t\tsegments.push(input.slice(start, i));\n\t\t\ti += 2;\n\t\t\tstart = i + 1;\n\t\t}\n\t}\n\tsegments.push(input.slice(start));\n\treturn segments;\n}\n\n// Split a group's inner text on top-level \" | \", ignoring pipes inside quotes/parens.\nfunction splitGroupTasks(inner: string): string[] {\n\tconst parts: string[] = [];\n\tlet depth = 0, inSingle = false, inDouble = false, start = 0;\n\tfor (let i = 0; i < inner.length; i++) {\n\t\tconst ch = inner[i]!;\n\t\tif (inSingle) { if (ch === \"'\") inSingle = false; continue; }\n\t\tif (inDouble) { if (ch === '\"') inDouble = false; continue; }\n\t\tif (ch === \"'\") { inSingle = true; continue; }\n\t\tif (ch === '\"') { inDouble = true; continue; }\n\t\tif (ch === \"(\") depth++;\n\t\telse if (ch === \")\") depth--;\n\t\telse if (ch === \"|\" && depth === 0) {\n\t\t\tparts.push(inner.slice(start, i));\n\t\t\tstart = i + 1;\n\t\t}\n\t}\n\tparts.push(inner.slice(start));\n\treturn parts;\n}\n\nexport function parseSingleTaskToken(token: string): ParsedStep {\n\tlet agentPart: string;\n\tlet task: string | undefined;\n\tconst qMatch = token.match(/^(\\S+(?:\\[[^\\]]*\\])?)\\s+(?:\"([^\"]*)\"|'([^']*)')$/);\n\tif (qMatch) {\n\t\tagentPart = qMatch[1]!;\n\t\ttask = (qMatch[2] ?? qMatch[3]) || undefined;\n\t} else {\n\t\tconst dashIdx = token.indexOf(\" -- \");\n\t\tif (dashIdx !== -1) {\n\t\t\tagentPart = token.slice(0, dashIdx).trim();\n\t\t\ttask = token.slice(dashIdx + 4).trim() || undefined;\n\t\t} else {\n\t\t\tagentPart = token;\n\t\t}\n\t}\n\treturn { kind: \"step\", ...parseAgentToken(agentPart), task };\n}\n\nconst parseGroupConfig = (raw: string): GroupConfig => {\n\tconst config: GroupConfig = {};\n\tfor (const part of raw.split(\",\")) {\n\t\tconst trimmed = part.trim();\n\t\tif (!trimmed) continue;\n\t\tconst eq = trimmed.indexOf(\"=\");\n\t\tconst key = eq === -1 ? trimmed : trimmed.slice(0, eq).trim();\n\t\tconst val = eq === -1 ? \"\" : trimmed.slice(eq + 1).trim();\n\t\tswitch (key) {\n\t\t\tcase \"concurrency\": { const n = Number(val); if (Number.isInteger(n) && n > 0) config.concurrency = n; break; }\n\t\t\tcase \"failFast\": config.failFast = eq === -1 ? true : val !== \"false\"; break;\n\t\t\tcase \"worktree\": config.worktree = eq === -1 ? true : val !== \"false\"; break;\n\t\t}\n\t}\n\treturn config;\n};\n\n// Split `(...)` from an optional trailing `[...]` group-config suffix, respecting\n// quotes and nested parens. Returns the inner group text and the parsed config.\nconst splitGroupBody = (trimmed: string): { inner: string; config: GroupConfig } => {\n\tlet depth = 0, inSingle = false, inDouble = false, closeIdx = -1;\n\tfor (let i = 0; i < trimmed.length; i++) {\n\t\tconst ch = trimmed[i]!;\n\t\tif (inSingle) { if (ch === \"'\") inSingle = false; continue; }\n\t\tif (inDouble) { if (ch === '\"') inDouble = false; continue; }\n\t\tif (ch === \"'\") { inSingle = true; continue; }\n\t\tif (ch === '\"') { inDouble = true; continue; }\n\t\tif (ch === \"(\") depth++;\n\t\telse if (ch === \")\") { depth--; if (depth === 0) { closeIdx = i; break; } }\n\t}\n\tif (closeIdx === -1) throw new SlashParseError(`Unmatched parentheses in group: '${trimmed}'`);\n\tconst inner = trimmed.slice(1, closeIdx);\n\tconst suffix = trimmed.slice(closeIdx + 1).trim();\n\tif (!suffix) return { inner, config: {} };\n\tif (!suffix.startsWith(\"[\") || !suffix.endsWith(\"]\")) {\n\t\tthrow new SlashParseError(`Group options must be wrapped in [...]: '${suffix}'`);\n\t}\n\treturn { inner, config: parseGroupConfig(suffix.slice(1, -1)) };\n};\n\nexport function parseGroupSegment(segment: string): ParsedGroup {\n\tconst trimmed = segment.trim();\n\tif (!trimmed.startsWith(\"(\")) {\n\t\tthrow new SlashParseError(`Parallel group must be wrapped in parentheses: '${trimmed}'`);\n\t}\n\tconst { inner, config } = splitGroupBody(trimmed);\n\tconst rawParts = splitGroupTasks(inner).map((p) => p.trim()).filter((p) => p.length > 0);\n\tif (rawParts.length < 2) {\n\t\tthrow new SlashParseError(\"Parallel group must contain at least two tasks separated by ' | '\");\n\t}\n\treturn { kind: \"group\", tasks: rawParts.map((part) => parseSingleTaskToken(part)), config };\n}\n\n// True if `input` uses inline parallel-group syntax. A group is a *step* that begins\n// with `(` at the top level, so we split on top-level ` -> ` arrows and look for a\n// segment that opens with `(`. Parentheses appearing inside a task (e.g.\n// `scout -- inspect auth (backend)`) do not count, which keeps legacy shared-task\n// `-- task` parsing — including a bare `|` inside the task — on the single-agent path.\nexport function hasGroupSyntax(input: string): boolean {\n\treturn splitOnArrow(input).some((seg) => seg.trim().startsWith(\"(\"));\n}\n\nexport function parseChainExpression(input: string): { steps: ParsedGroupStep[] } {\n\tconst trimmed = input.trim();\n\tif (!trimmed.includes(\" -> \")) {\n\t\tthrow new SlashParseError('Parallel groups in /chain require \" -> \" between steps');\n\t}\n\tif (findUnmatchedCloseParen(trimmed)) {\n\t\tthrow new SlashParseError(\"Unmatched parentheses in /chain expression\");\n\t}\n\tconst steps: ParsedGroupStep[] = [];\n\tfor (const seg of splitOnArrow(trimmed)) {\n\t\tconst t = seg.trim();\n\t\tif (!t) continue;\n\t\tif (t.startsWith(\"(\")) {\n\t\t\tsteps.push(parseGroupSegment(t));\n\t\t\tcontinue;\n\t\t}\n\t\tif (findUnmatchedCloseParen(t)) {\n\t\t\tthrow new SlashParseError(`Unmatched parentheses in chain segment: '${t}'`);\n\t\t}\n\t\tsteps.push(parseSingleTaskToken(t));\n\t}\n\tif (steps.length === 0) {\n\t\tthrow new SlashParseError(\"/chain expression must include at least one step\");\n\t}\n\treturn { steps };\n}\n\nconst parseAgentArgs = (\n\tstate: SubagentState,\n\targs: string,\n\tcommand: string,\n\tctx: ExtensionContext,\n): { steps: ParsedStep[]; task: string } | null => {\n\tconst input = args.trim();\n\tconst usage = `Usage: /${command} agent1 \"task1\" -> agent2 \"task2\"`;\n\tlet steps: ParsedStep[];\n\tlet sharedTask: string;\n\tlet perStep = false;\n\n\tif (input.includes(\" -> \")) {\n\t\tperStep = true;\n\t\tconst segments = input.split(\" -> \");\n\t\tsteps = [];\n\t\tfor (const seg of segments) {\n\t\t\tconst trimmed = seg.trim();\n\t\t\tif (!trimmed) continue;\n\t\t\tsteps.push(parseSingleTaskToken(trimmed));\n\t\t}\n\t\tsharedTask = steps.find((s) => s.task)?.task ?? \"\";\n\t} else {\n\t\tconst delimiterIndex = input.indexOf(\" -- \");\n\t\tif (delimiterIndex === -1) {\n\t\t\tctx.ui.notify(usage, \"error\");\n\t\t\treturn null;\n\t\t}\n\t\tconst agentsPart = input.slice(0, delimiterIndex).trim();\n\t\tsharedTask = input.slice(delimiterIndex + 4).trim();\n\t\tif (!agentsPart || !sharedTask) {\n\t\t\tctx.ui.notify(usage, \"error\");\n\t\t\treturn null;\n\t\t}\n\t\tsteps = agentsPart.split(/\\s+/).filter(Boolean).map((t) => parseSingleTaskToken(t));\n\t}\n\n\tif (steps.length === 0) {\n\t\tctx.ui.notify(usage, \"error\");\n\t\treturn null;\n\t}\n\tif (!state.baseCwd) {\n\t\tctx.ui.notify(\"Subagent session cwd is not initialized yet\", \"error\");\n\t\treturn null;\n\t}\n\tconst agents = discoverAgents(state.baseCwd, \"both\").agents;\n\tfor (const step of steps) {\n\t\tif (!agents.find((a) => a.name === step.name)) {\n\t\t\tctx.ui.notify(`Unknown agent: ${step.name}`, \"error\");\n\t\t\treturn null;\n\t\t}\n\t}\n\tif (command === \"chain\" && !steps[0]?.task && (perStep || !sharedTask)) {\n\t\tctx.ui.notify(`First step must have a task: /chain agent \"task\" -> agent2`, \"error\");\n\t\treturn null;\n\t}\n\tif (command === \"parallel\" && !steps.some((s) => s.task) && !sharedTask) {\n\t\tctx.ui.notify(\"At least one step must have a task\", \"error\");\n\t\treturn null;\n\t}\n\treturn { steps, task: sharedTask };\n};\n\ntype ChainStepObject = {\n\tagent: string;\n\ttask?: string;\n\toutput?: string | false;\n\toutputMode?: \"inline\" | \"file-only\";\n\treads?: string[] | false;\n\tmodel?: string;\n\tskill?: string[] | false;\n\tprogress?: boolean;\n\tas?: string;\n\tlabel?: string;\n\tphase?: string;\n\tcwd?: string;\n\tcount?: number;\n\toutputSchema?: JsonSchemaObject;\n\tacceptance?: string;\n};\n\nconst INLINE_ACCEPTANCE_LEVELS = new Set([\"auto\", \"attested\", \"checked\"]);\n\nfunction validateInlineAcceptanceInput(value: string, agent: string): void {\n\tconst errors = validateAcceptanceInput(value, `acceptance for step '${agent}'`);\n\tif (errors.length > 0) throw new SlashParseError(errors[0]!);\n\tif (!INLINE_ACCEPTANCE_LEVELS.has(value)) {\n\t\tthrow new SlashParseError(`Inline acceptance for step '${agent}' supports auto, attested, or checked. Use the subagent tool API or a saved .chain.json file for none or verified acceptance contracts; reviewed is inferred-only.`);\n\t}\n}\n\n// Load an inline `outputSchema=<path>` JSON file, resolved against the session cwd.\n// Throws (SlashParseError / fs / JSON) on a missing or malformed schema.\nfunction loadInlineOutputSchema(baseCwd: string, agent: string, value: string): JsonSchemaObject {\n\tconst schemaPath = path.isAbsolute(value) ? value : path.join(baseCwd, value);\n\tconst label = `outputSchema for step '${agent}' (${schemaPath})`;\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = JSON.parse(fs.readFileSync(schemaPath, \"utf-8\"));\n\t} catch (error) {\n\t\tthrow new SlashParseError(`Cannot read ${label}: ${error instanceof Error ? error.message : String(error)}`);\n\t}\n\tassertJsonSchemaObject(parsed, label);\n\treturn parsed;\n}\n\n// Build a ChainStep object from a parsed token. `inGroup` enables `count` (parallel-only).\n// May throw SlashParseError for an invalid acceptance level or outputSchema path.\nconst mapParsedTaskToStepObject = (\n\tstep: ParsedStep,\n\tfallbackTask: string | undefined,\n\tisFirst: boolean,\n\topts: { baseCwd: string; inGroup: boolean },\n): ChainStepObject => {\n\tconst { name, config, task: stepTask } = step;\n\tif (config.acceptance !== undefined) validateInlineAcceptanceInput(config.acceptance, name);\n\treturn {\n\t\tagent: name,\n\t\t...(stepTask ? { task: stepTask } : isFirst && fallbackTask ? { task: fallbackTask } : {}),\n\t\t...(config.output !== undefined ? { output: config.output } : {}),\n\t\t...(config.outputMode !== undefined ? { outputMode: config.outputMode } : {}),\n\t\t...(config.reads !== undefined ? { reads: config.reads } : {}),\n\t\t...(config.model ? { model: config.model } : {}),\n\t\t...(config.skill !== undefined ? { skill: config.skill } : {}),\n\t\t...(config.progress !== undefined ? { progress: config.progress } : {}),\n\t\t...(config.as ? { as: config.as } : {}),\n\t\t...(config.label ? { label: config.label } : {}),\n\t\t...(config.phase ? { phase: config.phase } : {}),\n\t\t...(config.cwd ? { cwd: config.cwd } : {}),\n\t\t...(opts.inGroup && config.count !== undefined ? { count: config.count } : {}),\n\t\t...(config.outputSchema ? { outputSchema: loadInlineOutputSchema(opts.baseCwd, name, config.outputSchema) } : {}),\n\t\t...(config.acceptance ? { acceptance: config.acceptance } : {}),\n\t};\n};\n\nexport function buildChainExpressionSteps(\n\tstate: SubagentState,\n\tinput: string,\n\tctx: ExtensionContext,\n): { chain: ChainStep[]; task: string } | null {\n\tconst notify = (message: string) => ctx.ui.notify(message, \"error\");\n\tif (!hasGroupSyntax(input)) {\n\t\tconst parsed = parseAgentArgs(state, input, \"chain\", ctx);\n\t\tif (!parsed) return null;\n\t\tconst baseCwd = state.baseCwd!; // parseAgentArgs already verified baseCwd is set\n\t\ttry {\n\t\t\tconst chain: ChainStep[] = parsed.steps.map((step, i) =>\n\t\t\t\tmapParsedTaskToStepObject(step, parsed.task || undefined, i === 0, { baseCwd, inGroup: false }),\n\t\t\t);\n\t\t\treturn { chain, task: parsed.task };\n\t\t} catch (error) {\n\t\t\tnotify(error instanceof Error ? error.message : String(error));\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tlet expression: { steps: ParsedGroupStep[] };\n\ttry {\n\t\texpression = parseChainExpression(input);\n\t} catch (error) {\n\t\tnotify(error instanceof Error ? error.message : String(error));\n\t\treturn null;\n\t}\n\tif (!state.baseCwd) {\n\t\tnotify(\"Subagent session cwd is not initialized yet\");\n\t\treturn null;\n\t}\n\tconst agents = discoverAgents(state.baseCwd, \"both\").agents;\n\tconst stepAgentNames = expression.steps.flatMap((step) =>\n\t\tstep.kind === \"group\" ? step.tasks.map((t) => t.name) : [step.name],\n\t);\n\tfor (const name of stepAgentNames) {\n\t\tif (!agents.find((a) => a.name === name)) {\n\t\t\tnotify(`Unknown agent: ${name}`);\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Every task inside a parallel group needs its own task; there is no shared-task fallback.\n\tfor (const step of expression.steps) {\n\t\tif (step.kind === \"group\" && step.tasks.some((t) => !t.task)) {\n\t\t\tnotify('Each task in a parallel group needs a task: (agent \"a\" | agent \"b\")');\n\t\t\treturn null;\n\t\t}\n\t}\n\tconst firstStep = expression.steps[0]!;\n\tconst firstHasTask =\n\t\tfirstStep.kind === \"group\"\n\t\t\t? firstStep.tasks.some((t) => Boolean(t.task))\n\t\t\t: Boolean(firstStep.task);\n\tif (!firstHasTask) {\n\t\tnotify('First step must have a task: /chain agent \"task\" -> agent2');\n\t\treturn null;\n\t}\n\tconst sharedTask =\n\t\tfirstStep.kind === \"group\"\n\t\t\t? (firstStep.tasks.find((t) => t.task)?.task ?? \"\")\n\t\t\t: (firstStep.task ?? \"\");\n\tconst baseCwd = state.baseCwd;\n\tlet chain: ChainStep[];\n\ttry {\n\t\tchain = expression.steps.map((step) => {\n\t\t\tif (step.kind === \"group\") {\n\t\t\t\tconst parallel = step.tasks.map((t) => mapParsedTaskToStepObject(t, undefined, false, { baseCwd, inGroup: true }));\n\t\t\t\treturn {\n\t\t\t\t\tparallel,\n\t\t\t\t\t...(step.config.concurrency !== undefined ? { concurrency: step.config.concurrency } : {}),\n\t\t\t\t\t...(step.config.failFast !== undefined ? { failFast: step.config.failFast } : {}),\n\t\t\t\t\t...(step.config.worktree !== undefined ? { worktree: step.config.worktree } : {}),\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn mapParsedTaskToStepObject(step, sharedTask || undefined, false, { baseCwd, inGroup: false });\n\t\t});\n\t} catch (error) {\n\t\tnotify(error instanceof Error ? error.message : String(error));\n\t\treturn null;\n\t}\n\treturn { chain, task: sharedTask };\n}\n\nexport function registerSlashCommands(\n\tpi: ExtensionAPI,\n\tstate: SubagentState,\n): void {\n\tlet fleetOpen = false;\n\tconst showFleet = async (ctx: ExtensionContext) => {\n\t\tstate.lastUiContext = ctx;\n\t\tif (!ctx.hasUI) {\n\t\t\tawait runSlashSubagent(pi, ctx, { action: \"status\", view: \"fleet\" });\n\t\t\treturn;\n\t\t}\n\t\tif (fleetOpen) {\n\t\t\tctx.ui.notify(\"Subagent fleet inspector is already open.\", \"info\");\n\t\t\treturn;\n\t\t}\n\t\tfleetOpen = true;\n\t\ttry {\n\t\t\tawait openSubagentFleet(ctx, state);\n\t\t} finally {\n\t\t\tfleetOpen = false;\n\t\t}\n\t};\n\n\tpi.registerCommand(\"run\", {\n\t\tdescription: \"Run a subagent directly: /run agent[output=file] [task] [--bg]\",\n\t\tgetArgumentCompletions: makeAgentCompletions(state, false),\n\t\thandler: async (args, ctx) => {\n\t\t\tconst { args: cleanedArgs, bg } = extractExecutionFlags(args);\n\t\t\tconst input = cleanedArgs.trim();\n\t\t\tconst firstSpace = input.indexOf(\" \");\n\t\t\tif (!input) { ctx.ui.notify(\"Usage: /run <agent> [task] [--bg]\", \"error\"); return; }\n\t\t\tconst { name: agentName, config: inline } = parseAgentToken(firstSpace === -1 ? input : input.slice(0, firstSpace));\n\t\t\tconst task = firstSpace === -1 ? \"\" : input.slice(firstSpace + 1).trim();\n\n\t\t\tif (!state.baseCwd) { ctx.ui.notify(\"Subagent session cwd is not initialized yet\", \"error\"); return; }\n\t\t\tconst agents = discoverAgents(state.baseCwd, \"both\").agents;\n\t\t\tif (!agents.find((a) => a.name === agentName)) { ctx.ui.notify(`Unknown agent: ${agentName}`, \"error\"); return; }\n\n\t\t\tlet finalTask = task;\n\t\t\tif (inline.reads && Array.isArray(inline.reads) && inline.reads.length > 0) {\n\t\t\t\tfinalTask = `[Read from: ${inline.reads.join(\", \")}]\\n\\n${finalTask}`;\n\t\t\t}\n\t\t\tconst params: SubagentParamsLike = { agent: agentName, task: finalTask, clarify: false, agentScope: \"both\" };\n\t\t\tif (inline.output !== undefined) params.output = inline.output;\n\t\t\tif (inline.outputMode !== undefined) params.outputMode = inline.outputMode;\n\t\t\tif (inline.skill !== undefined) params.skill = inline.skill;\n\t\t\tif (inline.model) params.model = inline.model;\n\t\t\tif (bg) params.async = true;\n\t\t\tawait runSlashSubagent(pi, ctx, params);\n\t\t},\n\t});\n\n\tpi.registerCommand(\"chain\", {\n\t\tdescription: \"Run agents in sequence: /chain scout \\\"task\\\" -> planner [--bg]\",\n\t\tgetArgumentCompletions: makeAgentCompletions(state, true),\n\t\thandler: async (args, ctx) => {\n\t\t\tconst { args: cleanedArgs, bg } = extractExecutionFlags(args);\n\t\t\tconst built = buildChainExpressionSteps(state, cleanedArgs, ctx);\n\t\t\tif (!built) return;\n\t\t\tconst params: SubagentParamsLike = { chain: built.chain, task: built.task, clarify: false, agentScope: \"both\" };\n\t\t\tif (bg) params.async = true;\n\t\t\tawait runSlashSubagent(pi, ctx, params);\n\t\t},\n\t});\n\n\tpi.registerCommand(\"run-chain\", {\n\t\tdescription: \"Run a saved chain: /run-chain chainName -- task [--bg]\",\n\t\tgetArgumentCompletions: makeChainCompletions(state),\n\t\thandler: async (args, ctx) => {\n\t\t\tconst { args: cleanedArgs, bg } = extractExecutionFlags(args);\n\t\t\tconst delimiterIndex = cleanedArgs.indexOf(\" -- \");\n\t\t\tconst usage = \"Usage: /run-chain <chainName> -- <task> [--bg]\";\n\t\t\tif (delimiterIndex === -1) {\n\t\t\t\tctx.ui.notify(usage, \"error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst chainName = cleanedArgs.slice(0, delimiterIndex).trim();\n\t\t\tconst task = cleanedArgs.slice(delimiterIndex + 4).trim();\n\t\t\tif (!chainName || !task) {\n\t\t\t\tctx.ui.notify(usage, \"error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!state.baseCwd) { ctx.ui.notify(\"Subagent session cwd is not initialized yet\", \"error\"); return; }\n\t\t\tconst chain = discoverSavedChains(state.baseCwd).find((candidate) => candidate.name === chainName);\n\t\t\tif (!chain) {\n\t\t\t\tctx.ui.notify(`Unknown chain: ${chainName}`, \"error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst params: SubagentParamsLike = { chain: mapSavedChainSteps(chain), task, clarify: false, agentScope: \"both\" };\n\t\t\tif (bg) params.async = true;\n\t\t\tawait runSlashSubagent(pi, ctx, params);\n\t\t},\n\t});\n\n\tpi.registerCommand(\"parallel\", {\n\t\tdescription: \"Run agents in parallel: /parallel scout \\\"task1\\\" -> reviewer \\\"task2\\\" [--bg]\",\n\t\tgetArgumentCompletions: makeAgentCompletions(state, true),\n\t\thandler: async (args, ctx) => {\n\t\t\tconst { args: cleanedArgs, bg } = extractExecutionFlags(args);\n\t\t\tconst parsed = parseAgentArgs(state, cleanedArgs, \"parallel\", ctx);\n\t\t\tif (!parsed) return;\n\t\t\tconst tasks = parsed.steps.map(({ name, config, task: stepTask }) => ({\n\t\t\t\tagent: name,\n\t\t\t\ttask: stepTask ?? parsed.task,\n\t\t\t\t...(config.output !== undefined ? { output: config.output } : {}),\n\t\t\t\t...(config.outputMode !== undefined ? { outputMode: config.outputMode } : {}),\n\t\t\t\t...(config.reads !== undefined ? { reads: config.reads } : {}),\n\t\t\t\t...(config.model ? { model: config.model } : {}),\n\t\t\t\t...(config.skill !== undefined ? { skill: config.skill } : {}),\n\t\t\t\t...(config.progress !== undefined ? { progress: config.progress } : {}),\n\t\t\t}));\n\t\t\tconst params: SubagentParamsLike = { tasks, clarify: false, agentScope: \"both\" };\n\t\t\tif (bg) params.async = true;\n\t\t\tawait runSlashSubagent(pi, ctx, params);\n\t\t},\n\t});\n\n\tpi.registerCommand(\"subagent-cost\", {\n\t\tdescription: \"Show parent and subagent child usage cost for this session\",\n\t\thandler: async (_args, ctx) => {\n\t\t\tsendSlashText(pi, buildSubagentCostReport(ctx));\n\t\t},\n\t});\n\n\tpi.registerCommand(\"subagents-doctor\", {\n\t\tdescription: \"Show subagent diagnostics\",\n\t\thandler: async (_args, ctx) => {\n\t\t\tawait runSlashSubagent(pi, ctx, { action: \"doctor\" });\n\t\t},\n\t});\n\n\tpi.registerCommand(\"subagents-fleet\", {\n\t\tdescription: \"Open the live, inspection-only subagent fleet\",\n\t\thandler: async (_args, ctx) => showFleet(ctx),\n\t});\n\n\tpi.registerShortcut(Key.ctrlAlt(\"f\"), {\n\t\tdescription: \"Open subagent fleet inspector\",\n\t\thandler: async (ctx) => showFleet(ctx),\n\t});\n\n\tpi.registerCommand(\"subagents-stop\", {\n\t\tdescription: \"Stop a current-session async subagent run\",\n\t\thandler: async (args, ctx) => {\n\t\t\tconst id = args.trim();\n\t\t\tif (id) {\n\t\t\t\tawait runSlashSubagent(pi, ctx, { action: \"stop\", id });\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (process.env[SUBAGENT_FANOUT_CHILD_ENV] === \"1\") {\n\t\t\t\tsendSlashText(pi, \"Selector unavailable in child-safe fanout mode. Pass an explicit current-session top-level async run id, for example `/subagents-stop <run-id>` or `subagent({ action: \\\"stop\\\", id: \\\"<run-id>\\\" })`.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet targets: StopSelectorTarget[];\n\t\t\ttry {\n\t\t\t\ttargets = discoverStopTargets(ctx, state);\n\t\t\t} catch (error) {\n\t\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\t\tctx.ui.notify(message, \"error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!ctx.hasUI) {\n\t\t\t\tsendSlashText(pi, stopFallbackText(targets));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (targets.length === 0) {\n\t\t\t\tctx.ui.notify(\"No active current-session async runs or scheduled subagent runs to stop.\", \"info\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst result = await ctx.ui.custom<StopSelectorResult>(\n\t\t\t\t(tui, theme, _kb, done) => new SubagentsStopSelector(tui, theme, targets, done),\n\t\t\t\t{ overlay: true, overlayOptions: { anchor: \"center\", width: 88, maxHeight: \"80%\" } },\n\t\t\t);\n\t\t\tif (!result?.confirmed || !result.target) return;\n\t\t\tif (result.target.kind === \"scheduled\") {\n\t\t\t\tawait runSlashSubagent(pi, ctx, { action: \"schedule-cancel\", id: result.target.id });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait runSlashSubagent(pi, ctx, { action: \"stop\", id: result.target.id });\n\t\t},\n\t});\n\n\tregisterPromptWorkflowCommands({\n\t\tpi,\n\t\trun: (params, ctx) => runSlashSubagent(pi, ctx, params),\n\t});\n\n\tpi.registerCommand(\"subagents-models\", {\n\t\tdescription: \"Show runtime-loaded builtin subagent models\",\n\t\tgetArgumentCompletions: makeBuiltinAgentNameCompletions(),\n\t\thandler: async (args, ctx) => {\n\t\t\tconst trimmed = args.trim();\n\t\t\tif (!trimmed) {\n\t\t\t\tawait runSlashSubagent(pi, ctx, { action: \"models\" });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst parts = trimmed.split(/\\s+/).filter(Boolean);\n\t\t\tif (parts.length !== 1) {\n\t\t\t\tctx.ui.notify(\"Usage: /subagents-models [builtin-agent-name]\", \"error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst agent = parts[0]!;\n\t\t\tif (!(BUILTIN_AGENT_NAMES as readonly string[]).includes(agent)) {\n\t\t\t\tctx.ui.notify(`Unknown builtin agent: ${agent}`, \"error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait runSlashSubagent(pi, ctx, { action: \"models\", agent });\n\t\t},\n\t});\n\n\tpi.registerCommand(\"subagents-profiles\", {\n\t\tdescription: \"List saved subagent profiles\",\n\t\thandler: async (_args, _ctx) => {\n\t\t\tconst profiles = listSubagentProfiles();\n\t\t\tif (profiles.length === 0) {\n\t\t\t\tsendSlashText(pi, \"Subagent profiles\\n\\nNo subagent profiles found in ~/.pi/agent/profiles/pi-subagents/\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsendSlashText(pi, `Subagent profiles\\n\\n${profiles.join(\"\\n\")}`);\n\t\t},\n\t});\n\n\tpi.registerCommand(\"subagents-load-profile\", {\n\t\tdescription: \"Load a subagent profile into ~/.pi/agent/settings.json\",\n\t\tgetArgumentCompletions: (prefix) => {\n\t\t\tif (prefix.includes(\" \")) return null;\n\t\t\treturn listSubagentProfiles()\n\t\t\t\t.filter((name) => name.startsWith(prefix))\n\t\t\t\t.map((name) => ({ value: name, label: name }));\n\t\t},\n\t\thandler: async (args, ctx) => {\n\t\t\tconst parsed = parseSingleRequiredArg(args, \"Usage: /subagents-load-profile <name>\");\n\t\t\tif (!parsed.ok) {\n\t\t\t\tctx.ui.notify(parsed.message, \"error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait withSlashStatus(ctx, `Loading profile ${parsed.value}…`, async () => {\n\t\t\t\t\tconst { profile } = readSubagentProfile(parsed.value);\n\t\t\t\t\tconst workerModel = getProfileWorkerModel(profile);\n\t\t\t\t\tconst result = applySubagentProfile(parsed.value);\n\t\t\t\t\tconst lines = [\n\t\t\t\t\t\t`Loaded subagent profile: ${parsed.value}`,\n\t\t\t\t\t\t`Profile: ${result.filePath}`,\n\t\t\t\t\t\t`Updated: ${result.settingsPath}`,\n\t\t\t\t\t];\n\n\t\t\t\t\tif (workerModel && typeof pi.setModel === \"function\" && typeof ctx.modelRegistry?.find === \"function\" && typeof ctx.modelRegistry?.getAvailable === \"function\") {\n\t\t\t\t\t\tconst shouldSwitch = await ctx.ui.confirm(\n\t\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\t`Profile loaded. Also switch this session to the profile worker model?\\n\\n${workerModel}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (shouldSwitch) {\n\t\t\t\t\t\t\tconst modelInfo = findModelInfo(workerModel, ctx.modelRegistry.getAvailable().map(toModelInfo));\n\t\t\t\t\t\t\tconst model = modelInfo ? ctx.modelRegistry.find(modelInfo.provider, modelInfo.id) : undefined;\n\t\t\t\t\t\t\tif (!modelInfo || !model) {\n\t\t\t\t\t\t\t\tlines.push(`Could not switch current session model: '${workerModel}' is not available in the current model registry.`);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst success = await pi.setModel(model);\n\t\t\t\t\t\t\t\tif (success) lines.push(`Current session model switched to: ${modelInfo.fullId}`);\n\t\t\t\t\t\t\t\telse lines.push(`Could not switch current session model to '${workerModel}': no API key or provider access is available.`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (workerModel) {\n\t\t\t\t\t\tlines.push(`Profile worker model: ${workerModel}`);\n\t\t\t\t\t}\n\n\t\t\t\t\tsendSlashText(pi, lines.join(\"\\n\"));\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tctx.ui.notify(error instanceof Error ? error.message : String(error), \"error\");\n\t\t\t}\n\t\t},\n\t});\n\n\tpi.registerCommand(\"subagents-refresh-provider-models\", {\n\t\tdescription: \"Refresh the cached model catalog for one provider\",\n\t\tgetArgumentCompletions: makeProviderCompletions(state),\n\t\thandler: async (args, ctx) => {\n\t\t\tconst trimmed = args.trim();\n\t\t\tconst force = /(?:^|\\s)--force$/.test(trimmed) || /(?:^|\\s)force$/.test(trimmed);\n\t\t\tconst withoutForce = trimmed.replace(/(?:^|\\s)(?:--force|force)$/, \"\").trim();\n\t\t\tconst parsed = parseSingleRequiredArg(withoutForce, \"Usage: /subagents-refresh-provider-models <provider> [--force]\");\n\t\t\tif (!parsed.ok) {\n\t\t\t\tctx.ui.notify(parsed.message, \"error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait withSlashStatus(ctx, `Refreshing provider models for ${parsed.value}…`, async () => {\n\t\t\t\t\tconst result = await refreshProviderModelCatalog(pi, ctx, parsed.value, { force, maxAgeDays: DEFAULT_PROVIDER_MODELS_MAX_AGE_DAYS });\n\t\t\t\t\tconst lines = [\n\t\t\t\t\t\t\"Provider model catalog\",\n\t\t\t\t\t\t`Provider: ${parsed.value}`,\n\t\t\t\t\t\t`Status: ${result.reused ? \"fresh cache reused\" : \"refreshed\"}`,\n\t\t\t\t\t\t`File: ${result.filePath}`,\n\t\t\t\t\t\t`Models: ${result.catalog.models.length}`,\n\t\t\t\t\t\t`Refreshed at: ${result.catalog.refreshedAt}`,\n\t\t\t\t\t];\n\t\t\t\t\tif (result.heuristicFallbackCount > 0) {\n\t\t\t\t\t\tlines.push(`Warning: ${result.heuristicFallbackCount} model${result.heuristicFallbackCount === 1 ? \" was\" : \"s were\"} classified with name heuristics fallback.`);\n\t\t\t\t\t}\n\t\t\t\t\tsendSlashText(pi, lines.join(\"\\n\"));\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tctx.ui.notify(error instanceof Error ? error.message : String(error), \"error\");\n\t\t\t}\n\t\t},\n\t});\n\n\tpi.registerCommand(\"subagents-generate-profiles\", {\n\t\tdescription: \"Generate <provider>.quota and <provider>.quality subagent profiles\",\n\t\tgetArgumentCompletions: makeProviderCompletions(state),\n\t\thandler: async (args, ctx) => {\n\t\t\tconst parsed = parseSingleRequiredArg(args, \"Usage: /subagents-generate-profiles <provider>\");\n\t\t\tif (!parsed.ok) {\n\t\t\t\tctx.ui.notify(parsed.message, \"error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait withSlashStatus(ctx, `Generating profiles for ${parsed.value}…`, async () => {\n\t\t\t\t\tconst result = await generateProfilesForProvider(pi, ctx, parsed.value, { maxAgeDays: DEFAULT_PROVIDER_MODELS_MAX_AGE_DAYS });\n\t\t\t\t\tconst lines = [\n\t\t\t\t\t\t\"Generated subagent profiles\",\n\t\t\t\t\t\t`Provider: ${parsed.value}`,\n\t\t\t\t\t\t`Catalog: ${result.catalogPath}`,\n\t\t\t\t\t\t`Quota: ${result.quotaPath}`,\n\t\t\t\t\t\t` cheap=${result.quotaModels.cheap}`,\n\t\t\t\t\t\t` medium=${result.quotaModels.medium}`,\n\t\t\t\t\t\t` strong=${result.quotaModels.strong}`,\n\t\t\t\t\t\t`Quality: ${result.qualityPath}`,\n\t\t\t\t\t\t` cheap=${result.qualityModels.cheap}`,\n\t\t\t\t\t\t` medium=${result.qualityModels.medium}`,\n\t\t\t\t\t\t` strong=${result.qualityModels.strong}`,\n\t\t\t\t\t];\n\t\t\t\t\tif (result.selectedHeuristicFallbackCount > 0) {\n\t\t\t\t\t\tlines.push(`Warning: generated profiles depend on heuristic-only classification for ${result.selectedHeuristicFallbackCount} selected model${result.selectedHeuristicFallbackCount === 1 ? \"\" : \"s\"}.`);\n\t\t\t\t\t} else if (result.heuristicFallbackCount > 0) {\n\t\t\t\t\t\tlines.push(`Warning: provider catalog still contains ${result.heuristicFallbackCount} heuristic-classified model${result.heuristicFallbackCount === 1 ? \"\" : \"s\"}.`);\n\t\t\t\t\t}\n\t\t\t\t\tsendSlashText(pi, lines.join(\"\\n\"));\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tctx.ui.notify(error instanceof Error ? error.message : String(error), \"error\");\n\t\t\t}\n\t\t},\n\t});\n\n\tpi.registerCommand(\"subagents-check-profile\", {\n\t\tdescription: \"Check whether a saved profile still points to usable models\",\n\t\tgetArgumentCompletions: (prefix) => {\n\t\t\tif (prefix.includes(\" \")) return null;\n\t\t\treturn listSubagentProfiles()\n\t\t\t\t.filter((name) => name.startsWith(prefix))\n\t\t\t\t.map((name) => ({ value: name, label: name }));\n\t\t},\n\t\thandler: async (args, ctx) => {\n\t\t\tconst parsed = parseSingleRequiredArg(args, \"Usage: /subagents-check-profile <name>\");\n\t\t\tif (!parsed.ok) {\n\t\t\t\tctx.ui.notify(parsed.message, \"error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait withSlashStatus(ctx, `Checking profile ${parsed.value}…`, async () => {\n\t\t\t\t\tconst result = await checkSubagentProfile(pi, ctx, parsed.value);\n\t\t\t\t\tconst lines = [\n\t\t\t\t\t\t\"Subagent profile check\",\n\t\t\t\t\t\t`Profile: ${result.profileName}`,\n\t\t\t\t\t\t`File: ${result.filePath}`,\n\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t...result.results.map((entry) => `${entry.agent} → ${entry.model} — registry ${entry.inRegistry ? \"ok\" : \"missing\"}; probe ${entry.probe.status}${entry.probe.message ? ` (${entry.probe.message.split(/\\r?\\n/, 1)[0]})` : \"\"}`),\n\t\t\t\t\t];\n\t\t\t\t\tsendSlashText(pi, lines.join(\"\\n\"));\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tctx.ui.notify(error instanceof Error ? error.message : String(error), \"error\");\n\t\t\t}\n\t\t},\n\t});\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/slash/slash-commands.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport { randomUUID } from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { keyText, type ExtensionAPI, type ExtensionContext } from \"@ashx-j/lunr\";\nimport { Key, matchesKey, type Component, type TUI } from \"@ashx-j/lunr-tui\";\nimport type { SubagentParamsLike } from \"../runs/foreground/subagent-executor.ts\";\nimport type { ChainStep } from \"../shared/settings.ts\";\nimport { formatTokens, shortenPath } from \"../shared/formatters.ts\";\nimport { listAsyncRuns, formatAsyncRunProgressLabel, type AsyncRunSummary } from \"../runs/background/async-status.ts\";\nimport { scheduledRunStorePath } from \"../runs/background/scheduled-runs.ts\";\nimport { SUBAGENT_FANOUT_CHILD_ENV } from \"../runs/shared/pi-args.ts\";\nimport { assertJsonSchemaObject } from \"../runs/shared/structured-output.ts\";\nimport { validateAcceptanceInput } from \"../runs/shared/acceptance.ts\";\nimport type { SlashSubagentResponse, SlashSubagentUpdate } from \"./slash-bridge.ts\";\nimport { registerPromptWorkflowCommands } from \"./prompt-workflows.ts\";\nimport { openSubagentFleet } from \"../tui/fleet.ts\";\nimport {\n\tapplySlashUpdate,\n\tbuildSlashInitialResult,\n\tfailSlashResult,\n\tfinalizeSlashResult,\n\tresolveSlashMessageDetails,\n} from \"./slash-live-state.ts\";\nimport {\n\tSLASH_RESULT_TYPE,\n\tSLASH_TEXT_RESULT_TYPE,\n\tSLASH_SUBAGENT_CANCEL_EVENT,\n\tSLASH_SUBAGENT_REQUEST_EVENT,\n\tSLASH_SUBAGENT_RESPONSE_EVENT,\n\tSLASH_SUBAGENT_STARTED_EVENT,\n\tSLASH_SUBAGENT_UPDATE_EVENT,\n\tASYNC_DIR,\n\ttype Details,\n\ttype JsonSchemaObject,\n\ttype SingleResult,\n\ttype SubagentState,\n\ttype Usage,\n} from \"../shared/types.ts\";\n\ninterface InlineConfig {\n\toutput?: string | false;\n\toutputMode?: \"inline\" | \"file-only\";\n\treads?: string[] | false;\n\tmodel?: string;\n\tpermissions?: \"full\" | \"read-only\";\n\tskill?: string[] | false;\n\tprogress?: boolean;\n\tas?: string;\n\tlabel?: string;\n\tphase?: string;\n\tcwd?: string;\n\tcount?: number;\n\toutputSchema?: string;\n\tacceptance?: string;\n}\n\nconst parseInlineConfig = (raw: string): InlineConfig => {\n\tconst config: InlineConfig = {};\n\tfor (const part of raw.split(\",\")) {\n\t\tconst trimmed = part.trim();\n\t\tif (!trimmed) continue;\n\t\tconst eq = trimmed.indexOf(\"=\");\n\t\tif (eq === -1) {\n\t\t\tif (trimmed === \"progress\") config.progress = true;\n\t\t\tcontinue;\n\t\t}\n\t\tconst key = trimmed.slice(0, eq).trim();\n\t\tconst val = trimmed.slice(eq + 1).trim();\n\t\tswitch (key) {\n\t\t\tcase \"output\": config.output = val === \"false\" ? false : val; break;\n\t\t\tcase \"outputMode\": if (val === \"inline\" || val === \"file-only\") config.outputMode = val; break;\n\t\t\tcase \"reads\": config.reads = val === \"false\" ? false : val.split(\"+\").filter(Boolean); break;\n\t\t\tcase \"model\": config.model = val || undefined; break;\n\t\t\tcase \"permissions\": if (val === \"full\" || val === \"read-only\") config.permissions = val; break;\n\t\t\tcase \"skill\": case \"skills\": config.skill = val === \"false\" ? false : val.split(\"+\").filter(Boolean); break;\n\t\t\tcase \"progress\": config.progress = val !== \"false\"; break;\n\t\t\tcase \"as\": config.as = val || undefined; break;\n\t\t\tcase \"label\": config.label = val || undefined; break;\n\t\t\tcase \"phase\": config.phase = val || undefined; break;\n\t\t\tcase \"cwd\": config.cwd = val || undefined; break;\n\t\t\tcase \"count\": { const n = Number(val); if (Number.isInteger(n) && n > 0) config.count = n; break; }\n\t\t\tcase \"outputSchema\": config.outputSchema = val || undefined; break;\n\t\t\tcase \"acceptance\": config.acceptance = val || undefined; break;\n\t\t}\n\t}\n\treturn config;\n};\n\nconst parseAgentToken = (token: string): { name: string; config: InlineConfig } => {\n\tconst bracket = token.indexOf(\"[\");\n\tif (bracket === -1) return { name: token, config: {} };\n\tconst end = token.lastIndexOf(\"]\");\n\treturn { name: token.slice(0, bracket), config: parseInlineConfig(token.slice(bracket + 1, end !== -1 ? end : undefined)) };\n};\n\nconst extractExecutionFlags = (rawArgs: string): { args: string; bg: boolean } => {\n\tlet args = rawArgs.trim();\n\tlet bg = false;\n\n\twhile (true) {\n\t\tif (args.endsWith(\" --bg\") || args === \"--bg\") {\n\t\t\tbg = true;\n\t\t\targs = args === \"--bg\" ? \"\" : args.slice(0, -5).trim();\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\n\n\treturn { args, bg };\n};\n\nfunction sendSlashText(pi: ExtensionAPI, text: string): void {\n\tpi.sendMessage({ customType: SLASH_TEXT_RESULT_TYPE, content: text, display: true });\n}\n\ntype Theme = ExtensionContext[\"ui\"][\"theme\"];\n\ntype StopSelectorTarget = {\n\tkind: \"async\" | \"scheduled\";\n\tid: string;\n\tlabel: string;\n\tdetail: string;\n\tactionLabel: string;\n};\n\ntype StopSelectorResult = { confirmed: boolean; target?: StopSelectorTarget };\n\nfunction commandForTarget(target: StopSelectorTarget): string {\n\treturn target.kind === \"scheduled\"\n\t\t? `subagent({ action: \"schedule-cancel\", id: ${JSON.stringify(target.id)} })`\n\t\t: `subagent({ action: \"stop\", id: ${JSON.stringify(target.id)} })`;\n}\n\nfunction formatAsyncStopTarget(run: AsyncRunSummary): StopSelectorTarget {\n\tconst progress = formatAsyncRunProgressLabel(run);\n\tconst cwd = run.cwd ? shortenPath(run.cwd) : shortenPath(run.asyncDir);\n\treturn {\n\t\tkind: \"async\",\n\t\tid: run.id,\n\t\tlabel: `${run.id} · ${run.mode} · ${progress}`,\n\t\tdetail: `${run.state} · ${cwd}`,\n\t\tactionLabel: \"stop async run\",\n\t};\n}\n\nfunction scheduledStopTargets(ctx: ExtensionContext, state: SubagentState): StopSelectorTarget[] {\n\tconst sessionId = state.currentSessionId ?? ctx.sessionManager.getSessionId();\n\tif (!sessionId) return [];\n\tconst storePath = scheduledRunStorePath(ctx.cwd, sessionId);\n\tif (!fs.existsSync(storePath)) return [];\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = JSON.parse(fs.readFileSync(storePath, \"utf-8\"));\n\t} catch {\n\t\treturn [];\n\t}\n\tconst jobs = parsed && typeof parsed === \"object\" && Array.isArray((parsed as { jobs?: unknown }).jobs)\n\t\t? (parsed as { jobs: Array<Record<string, unknown>> }).jobs\n\t\t: [];\n\treturn jobs\n\t\t.filter((job) => job.state === \"scheduled\" && typeof job.id === \"string\" && typeof job.name === \"string\" && typeof job.runAt === \"number\")\n\t\t.sort((left, right) => Number(left.runAt) - Number(right.runAt))\n\t\t.map((job) => ({\n\t\t\tkind: \"scheduled\" as const,\n\t\t\tid: String(job.id),\n\t\t\tlabel: `${String(job.id)} · ${String(job.name)}`,\n\t\t\tdetail: `scheduled · ${new Date(Number(job.runAt)).toISOString()}`,\n\t\t\tactionLabel: \"cancel scheduled run\",\n\t\t}));\n}\n\nfunction discoverStopTargets(ctx: ExtensionContext, state: SubagentState): StopSelectorTarget[] {\n\tconst sessionId = state.currentSessionId ?? ctx.sessionManager.getSessionId() ?? undefined;\n\tconst asyncTargets = listAsyncRuns(ASYNC_DIR, {\n\t\tstates: [\"queued\", \"running\"],\n\t\t...(sessionId ? { sessionId } : {}),\n\t}).map(formatAsyncStopTarget);\n\treturn [...asyncTargets, ...scheduledStopTargets(ctx, state)];\n}\n\nfunction stopFallbackText(targets: StopSelectorTarget[]): string {\n\tif (targets.length === 0) return \"No active current-session async runs or scheduled subagent runs to stop.\";\n\tconst lines = [\"Subagent stop targets:\", \"\"];\n\tfor (const target of targets) {\n\t\tlines.push(`- ${target.label}`);\n\t\tlines.push(` ${target.detail}`);\n\t\tlines.push(` ${target.actionLabel}: ${commandForTarget(target)}`);\n\t\tif (target.kind === \"async\") lines.push(` slash: /subagents-stop ${target.id}`);\n\t}\n\treturn lines.join(\"\\n\");\n}\n\nclass SubagentsStopSelector implements Component {\n\treadonly width = 84;\n\tprivate selected = 0;\n\tprivate confirming = false;\n\tprivate readonly tui: TUI;\n\tprivate readonly theme: Theme;\n\tprivate readonly targets: StopSelectorTarget[];\n\tprivate readonly done: (result: StopSelectorResult) => void;\n\n\tconstructor(tui: TUI, theme: Theme, targets: StopSelectorTarget[], done: (result: StopSelectorResult) => void) {\n\t\tthis.tui = tui;\n\t\tthis.theme = theme;\n\t\tthis.targets = targets;\n\t\tthis.done = done;\n\t}\n\n\thandleInput(data: string): void {\n\t\tif (matchesKey(data, \"escape\") || matchesKey(data, \"ctrl+c\")) {\n\t\t\tthis.done({ confirmed: false });\n\t\t\treturn;\n\t\t}\n\t\tif (this.confirming) {\n\t\t\tif (matchesKey(data, \"return\") || data.toLowerCase() === \"y\") {\n\t\t\t\tthis.done({ confirmed: true, target: this.targets[this.selected] });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (data.toLowerCase() === \"n\" || matchesKey(data, \"backspace\")) {\n\t\t\t\tthis.confirming = false;\n\t\t\t\tthis.tui.requestRender();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (matchesKey(data, \"up\")) {\n\t\t\tthis.selected = Math.max(0, this.selected - 1);\n\t\t\tthis.tui.requestRender();\n\t\t\treturn;\n\t\t}\n\t\tif (matchesKey(data, \"down\")) {\n\t\t\tthis.selected = Math.min(this.targets.length - 1, this.selected + 1);\n\t\t\tthis.tui.requestRender();\n\t\t\treturn;\n\t\t}\n\t\tif (matchesKey(data, \"return\")) {\n\t\t\tthis.confirming = true;\n\t\t\tthis.tui.requestRender();\n\t\t}\n\t}\n\n\trender(width: number): string[] {\n\t\tconst contentWidth = Math.max(40, Math.min(this.width, width || this.width));\n\t\tconst lines = [this.theme.bold(\"Stop subagent run\"), this.theme.fg(\"dim\", \"Select a current-session async run to stop, or a scheduled run to cancel.\"), \"\"];\n\t\tconst maxRows = 10;\n\t\tconst start = Math.max(0, Math.min(this.selected - maxRows + 1, Math.max(0, this.targets.length - maxRows)));\n\t\tfor (let index = start; index < Math.min(this.targets.length, start + maxRows); index++) {\n\t\t\tconst target = this.targets[index]!;\n\t\t\tconst selected = index === this.selected;\n\t\t\tconst marker = selected ? \"›\" : \" \";\n\t\t\t\tconst actionLabel = target.actionLabel;\n\t\t\tconst action = target.kind === \"scheduled\" ? this.theme.fg(\"warning\", actionLabel) : this.theme.fg(\"accent\", actionLabel);\n\t\t\tconst labelWidth = Math.max(0, contentWidth - marker.length - actionLabel.length - 2);\n\t\t\tlines.push(`${marker} ${action} ${target.label.slice(0, labelWidth)}`);\n\t\t\tif (selected) lines.push(this.theme.fg(\"dim\", ` ${target.detail}`.slice(0, contentWidth)));\n\t\t}\n\t\tif (this.targets.length > maxRows) lines.push(this.theme.fg(\"dim\", `Showing ${start + 1}-${Math.min(this.targets.length, start + maxRows)} of ${this.targets.length}`));\n\t\tlines.push(\"\");\n\t\tif (this.confirming) {\n\t\t\tconst target = this.targets[this.selected]!;\n\t\t\tlines.push(this.theme.fg(\"warning\", `Confirm: ${target.actionLabel} ${target.id}?`));\n\t\t\tif (target.kind === \"async\") lines.push(this.theme.fg(\"dim\", \"Stop ends this run; use interrupt for a resumable pause.\"));\n\t\t\tlines.push(this.theme.fg(\"dim\", \"Enter/Y confirms · N returns · Esc cancels\"));\n\t\t} else {\n\t\t\tlines.push(this.theme.fg(\"dim\", \"↑/↓ select · Enter confirm · Esc cancel\"));\n\t\t}\n\t\treturn lines;\n\t}\n}\n\nfunction emptyUsage(): Usage {\n\treturn { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, cost: 0, turns: 0 };\n}\n\nfunction addUsage(target: Usage, source: Usage): void {\n\ttarget.input += source.input;\n\ttarget.output += source.output;\n\ttarget.cacheRead += source.cacheRead;\n\ttarget.cacheWrite += source.cacheWrite;\n\ttarget.cost += source.cost;\n\ttarget.turns += source.turns;\n}\n\nfunction usageHasValue(usage: Usage): boolean {\n\treturn usage.input !== 0 || usage.output !== 0 || usage.cacheRead !== 0 || usage.cacheWrite !== 0 || usage.cost !== 0 || usage.turns !== 0;\n}\n\nfunction assistantUsageFromMessage(message: unknown): Usage | undefined {\n\tif (!message || typeof message !== \"object\") return undefined;\n\tconst msg = message as { role?: unknown; usage?: unknown };\n\tif (msg.role !== \"assistant\" || !msg.usage || typeof msg.usage !== \"object\") return undefined;\n\tconst usage = msg.usage as {\n\t\tinput?: unknown;\n\t\toutput?: unknown;\n\t\tcacheRead?: unknown;\n\t\tcacheWrite?: unknown;\n\t\tcost?: { total?: unknown };\n\t};\n\treturn {\n\t\tinput: typeof usage.input === \"number\" ? usage.input : 0,\n\t\toutput: typeof usage.output === \"number\" ? usage.output : 0,\n\t\tcacheRead: typeof usage.cacheRead === \"number\" ? usage.cacheRead : 0,\n\t\tcacheWrite: typeof usage.cacheWrite === \"number\" ? usage.cacheWrite : 0,\n\t\tcost: typeof usage.cost?.total === \"number\" ? usage.cost.total : 0,\n\t\tturns: 1,\n\t};\n}\n\nfunction isSubagentDetails(value: unknown): value is Details {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst details = value as { mode?: unknown; results?: unknown };\n\treturn typeof details.mode === \"string\" && Array.isArray(details.results);\n}\n\nfunction detailsFromSessionEntry(entry: unknown): Details | undefined {\n\tif (!entry || typeof entry !== \"object\") return undefined;\n\tconst record = entry as { type?: unknown; customType?: unknown; details?: unknown; message?: unknown };\n\tif (record.type === \"custom_message\" && record.customType === SLASH_RESULT_TYPE) {\n\t\tconst details = resolveSlashMessageDetails(record.details)?.result.details;\n\t\treturn isSubagentDetails(details) ? details : undefined;\n\t}\n\tif (record.type !== \"message\" || !record.message || typeof record.message !== \"object\") return undefined;\n\tconst message = record.message as { role?: unknown; toolName?: unknown; details?: unknown };\n\tif (message.role !== \"toolResult\" || message.toolName !== \"subagent\") return undefined;\n\treturn isSubagentDetails(message.details) ? message.details : undefined;\n}\n\nfunction formatCostUsage(label: string, usage: Usage): string {\n\tconst extras = [\n\t\tusage.cacheRead ? `cache read ${formatTokens(usage.cacheRead)}` : \"\",\n\t\tusage.cacheWrite ? `cache write ${formatTokens(usage.cacheWrite)}` : \"\",\n\t\tusage.turns ? `${usage.turns} turn${usage.turns === 1 ? \"\" : \"s\"}` : \"\",\n\t].filter(Boolean);\n\treturn `${label}: ↑${formatTokens(usage.input)} ↓${formatTokens(usage.output)} $${usage.cost.toFixed(4)}${extras.length ? ` (${extras.join(\", \")})` : \"\"}`;\n}\n\nfunction buildSubagentCostReport(ctx: ExtensionContext): string {\n\tconst parent = emptyUsage();\n\tconst childTotal = emptyUsage();\n\tconst total = emptyUsage();\n\tconst children: Array<{ label: string; usage: Usage; sessionFile?: string }> = [];\n\tfor (const entry of ctx.sessionManager.getBranch()) {\n\t\tconst message = entry.type === \"message\" ? (entry as { message?: unknown }).message : undefined;\n\t\tconst parentUsage = assistantUsageFromMessage(message);\n\t\tif (parentUsage) addUsage(parent, parentUsage);\n\t\tconst details = detailsFromSessionEntry(entry);\n\t\tif (!details) continue;\n\t\tfor (const result of details.results) {\n\t\t\tif (!usageHasValue(result.usage)) continue;\n\t\t\tconst usage = { ...result.usage };\n\t\t\tchildren.push({\n\t\t\t\tlabel: `Child ${children.length + 1} (${result.agent})`,\n\t\t\t\tusage,\n\t\t\t\t...(result.sessionFile ? { sessionFile: result.sessionFile } : {}),\n\t\t\t});\n\t\t\taddUsage(childTotal, usage);\n\t\t}\n\t}\n\taddUsage(total, parent);\n\taddUsage(total, childTotal);\n\tconst lines = [\n\t\t\"Subagent cost\",\n\t\t\"\",\n\t\tformatCostUsage(\"Parent\", parent),\n\t];\n\tif (children.length === 0) {\n\t\tlines.push(\"No subagent child usage found in this session.\");\n\t} else {\n\t\tfor (const child of children) {\n\t\t\tlines.push(formatCostUsage(child.label, child.usage));\n\t\t\tif (child.sessionFile) lines.push(` Session: ${child.sessionFile}`);\n\t\t}\n\t}\n\tlines.push(\"────────────────────────────\", formatCostUsage(\"Children\", childTotal), formatCostUsage(\"Total\", total));\n\treturn lines.join(\"\\n\");\n}\n\nasync function requestSlashRun(\n\tpi: ExtensionAPI,\n\tctx: ExtensionContext,\n\trequestId: string,\n\tparams: SubagentParamsLike,\n): Promise<SlashSubagentResponse> {\n\treturn new Promise((resolve, reject) => {\n\t\tlet done = false;\n\t\tlet started = false;\n\n\t\tconst startTimeoutMs = 15_000;\n\t\tconst startTimeout = setTimeout(() => {\n\t\t\tfinish(() => reject(new Error(\n\t\t\t\t\"Slash subagent bridge did not start within 15s. Ensure the extension is loaded correctly.\",\n\t\t\t)));\n\t\t}, startTimeoutMs);\n\n\t\tconst onStarted = (data: unknown) => {\n\t\t\tif (done || !data || typeof data !== \"object\") return;\n\t\t\tif ((data as { requestId?: unknown }).requestId !== requestId) return;\n\t\t\tstarted = true;\n\t\t\tclearTimeout(startTimeout);\n\t\t\tif (ctx.hasUI) ctx.ui.setStatus(\"subagent-slash\", \"running...\");\n\t\t};\n\n\t\tconst onResponse = (data: unknown) => {\n\t\t\tif (done || !data || typeof data !== \"object\") return;\n\t\t\tconst response = data as Partial<SlashSubagentResponse>;\n\t\t\tif (response.requestId !== requestId) return;\n\t\t\tclearTimeout(startTimeout);\n\t\t\tfinish(() => resolve(response as SlashSubagentResponse));\n\t\t};\n\n\t\tconst onUpdate = (data: unknown) => {\n\t\t\tif (done || !data || typeof data !== \"object\") return;\n\t\t\tconst update = data as SlashSubagentUpdate;\n\t\t\tif (update.requestId !== requestId) return;\n\t\t\tapplySlashUpdate(requestId, update);\n\t\t\tif (!ctx.hasUI) return;\n\t\t\tconst tool = update.currentTool ? ` ${update.currentTool}` : \"\";\n\t\t\tconst count = update.toolCount ?? 0;\n\t\t\tconst liveDetailKey = keyText(\"app.tools.expand\");\n\t\t\tctx.ui.setStatus(\"subagent-slash\", `${count} tools${tool} | ${liveDetailKey} live detail`);\n\t\t};\n\n\t\tconst onTerminalInput = ctx.hasUI\n\t\t\t? ctx.ui.onTerminalInput((input) => {\n\t\t\t\tif (!matchesKey(input, Key.escape)) return undefined;\n\t\t\t\tpi.events.emit(SLASH_SUBAGENT_CANCEL_EVENT, { requestId });\n\t\t\t\tfinish(() => reject(new Error(\"Cancelled\")));\n\t\t\t\treturn { consume: true };\n\t\t\t})\n\t\t\t: undefined;\n\n\t\tconst unsubStarted = pi.events.on(SLASH_SUBAGENT_STARTED_EVENT, onStarted);\n\t\tconst unsubResponse = pi.events.on(SLASH_SUBAGENT_RESPONSE_EVENT, onResponse);\n\t\tconst unsubUpdate = pi.events.on(SLASH_SUBAGENT_UPDATE_EVENT, onUpdate);\n\n\t\tconst finish = (next: () => void) => {\n\t\t\tif (done) return;\n\t\t\tdone = true;\n\t\t\tclearTimeout(startTimeout);\n\t\t\tunsubStarted();\n\t\t\tunsubResponse();\n\t\t\tunsubUpdate();\n\t\t\tonTerminalInput?.();\n\t\t\tnext();\n\t\t};\n\n\t\tpi.events.emit(SLASH_SUBAGENT_REQUEST_EVENT, { requestId, params, ctx });\n\n\t\t// Bridge emits STARTED synchronously during REQUEST emit.\n\t\t// If not started, no bridge received the request.\n\t\tif (!started && done) return;\n\t\tif (!started) {\n\t\t\tfinish(() => reject(new Error(\n\t\t\t\t\"No slash subagent bridge responded. Ensure the subagent extension is loaded correctly.\",\n\t\t\t)));\n\t\t}\n\t});\n}\n\nfunction extractSlashMessageText(content: string | Array<{ type?: string; text?: string }>): string {\n\tif (typeof content === \"string\") return content;\n\tif (!Array.isArray(content)) return \"\";\n\treturn content\n\t\t.filter((part): part is { type: \"text\"; text: string } => part?.type === \"text\" && typeof part.text === \"string\")\n\t\t.map((part) => part.text)\n\t\t.join(\"\\n\");\n}\n\nfunction formatExportPathList(paths: string[]): string {\n\treturn paths.map((file) => `- \\`${file}\\``).join(\"\\n\");\n}\n\nfunction collectResultPaths(results: SingleResult[], getPath: (result: SingleResult) => string | undefined): string[] {\n\treturn results\n\t\t.map(getPath)\n\t\t.filter((file): file is string => typeof file === \"string\" && file.length > 0);\n}\n\nfunction buildSlashExportText(response: SlashSubagentResponse): string {\n\tconst output = extractSlashMessageText(response.result.content) || response.errorText || \"(no output)\";\n\tconst results = response.result.details?.results ?? [];\n\tconst sessionFiles = collectResultPaths(results, (result) => result.sessionFile);\n\tconst savedOutputs = collectResultPaths(results, (result) => result.savedOutputPath);\n\tconst artifactOutputs = collectResultPaths(results, (result) => result.artifactPaths?.outputPath);\n\tconst sections = [\"## Subagent result\", output];\n\tif (sessionFiles.length > 0) sections.push(\"## Child session exports\", formatExportPathList(sessionFiles));\n\tif (savedOutputs.length > 0) sections.push(\"## Saved outputs\", formatExportPathList(savedOutputs));\n\tif (artifactOutputs.length > 0) sections.push(\"## Artifact outputs\", formatExportPathList(artifactOutputs));\n\treturn sections.join(\"\\n\\n\");\n}\n\nfunction persistSlashSessionSnapshot(ctx: ExtensionContext): void {\n\ttry {\n\t\tif (!ctx.sessionManager) return;\n\t\tconst sessionManager = ctx.sessionManager as typeof ctx.sessionManager & {\n\t\t\t_rewriteFile?: () => void;\n\t\t\tflushed?: boolean;\n\t\t};\n\t\tconst sessionFile = sessionManager.getSessionFile();\n\t\tif (!sessionFile || typeof sessionManager._rewriteFile !== \"function\") return;\n\t\tfs.mkdirSync(path.dirname(sessionFile), { recursive: true });\n\t\tsessionManager._rewriteFile();\n\t\tsessionManager.flushed = true;\n\t} catch (error) {\n\t\tconsole.error(\"Failed to persist slash session snapshot for export:\", error);\n\t}\n}\n\nasync function runSlashSubagent(\n\tpi: ExtensionAPI,\n\tctx: ExtensionContext,\n\tparams: SubagentParamsLike,\n): Promise<void> {\n\tif (ctx.hasUI) ctx.ui.setToolsExpanded(false);\n\tconst requestId = randomUUID();\n\tconst initialDetails = buildSlashInitialResult(requestId, params);\n\tconst initialText = extractSlashMessageText(initialDetails.result.content) || \"Running subagent...\";\n\tpi.sendMessage({\n\t\tcustomType: SLASH_RESULT_TYPE,\n\t\tcontent: initialText,\n\t\tdisplay: true,\n\t\tdetails: initialDetails,\n\t});\n\tpersistSlashSessionSnapshot(ctx);\n\n\ttry {\n\t\tconst response = await requestSlashRun(pi, ctx, requestId, params);\n\t\tconst finalDetails = finalizeSlashResult(response);\n\t\tpi.sendMessage({\n\t\t\tcustomType: SLASH_RESULT_TYPE,\n\t\t\tcontent: buildSlashExportText(response),\n\t\t\tdisplay: !ctx.hasUI,\n\t\t\tdetails: finalDetails,\n\t\t});\n\t\tpersistSlashSessionSnapshot(ctx);\n\t\tif (ctx.hasUI) {\n\t\t\tctx.ui.setStatus(\"subagent-slash\", undefined);\n\t\t}\n\t\tif (response.isError && ctx.hasUI) {\n\t\t\tctx.ui.notify(response.errorText || \"Subagent failed\", \"error\");\n\t\t}\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tconst failedDetails = failSlashResult(requestId, params, message);\n\t\tpi.sendMessage({\n\t\t\tcustomType: SLASH_RESULT_TYPE,\n\t\t\tcontent: `## Subagent result\\n\\n${message}`,\n\t\t\tdisplay: !ctx.hasUI,\n\t\t\tdetails: failedDetails,\n\t\t});\n\t\tpersistSlashSessionSnapshot(ctx);\n\t\tif (ctx.hasUI) {\n\t\t\tctx.ui.setStatus(\"subagent-slash\", undefined);\n\t\t}\n\t\tif (message === \"Cancelled\") {\n\t\t\tif (ctx.hasUI) ctx.ui.notify(\"Cancelled\", \"warning\");\n\t\t\treturn;\n\t\t}\n\t\tif (ctx.hasUI) ctx.ui.notify(message, \"error\");\n\t}\n}\n\n\nexport interface GroupConfig { concurrency?: number; failFast?: boolean; worktree?: boolean }\nexport interface ParsedStep { kind: \"step\"; name: string; config: InlineConfig; task?: string }\nexport interface ParsedGroup { kind: \"group\"; tasks: ParsedStep[]; config: GroupConfig }\nexport type ParsedGroupStep = ParsedStep | ParsedGroup;\n\nexport const PARALLEL_GROUP_USAGE =\n\t'Usage: /chain agent \"task\" -> (agent2 \"task\" | agent3 \"task\") -> agent4';\n\nexport class SlashParseError extends Error {}\n\n// Walk `input` tracking quote/paren state; returns true if parens are unbalanced.\nfunction findUnmatchedCloseParen(input: string): boolean {\n\tlet depth = 0, inSingle = false, inDouble = false;\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst ch = input[i]!;\n\t\tif (inSingle) { if (ch === \"'\") inSingle = false; continue; }\n\t\tif (inDouble) { if (ch === '\"') inDouble = false; continue; }\n\t\tif (ch === \"'\") { inSingle = true; continue; }\n\t\tif (ch === '\"') { inDouble = true; continue; }\n\t\tif (ch === \"(\") depth++;\n\t\telse if (ch === \")\") { depth--; if (depth < 0) return true; }\n\t}\n\treturn depth !== 0;\n}\n\n// Split on top-level \" -> \", ignoring arrows inside quotes or parentheses.\nfunction splitOnArrow(input: string): string[] {\n\tconst segments: string[] = [];\n\tlet depth = 0, inSingle = false, inDouble = false, start = 0;\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst ch = input[i]!;\n\t\tif (inSingle) { if (ch === \"'\") inSingle = false; continue; }\n\t\tif (inDouble) { if (ch === '\"') inDouble = false; continue; }\n\t\tif (ch === \"'\") { inSingle = true; continue; }\n\t\tif (ch === '\"') { inDouble = true; continue; }\n\t\tif (ch === \"(\") depth++;\n\t\telse if (ch === \")\") depth--;\n\t\telse if (depth === 0 && ch === \"-\" && input[i + 1] === \">\" && input[i + 2] === \" \") {\n\t\t\tsegments.push(input.slice(start, i));\n\t\t\ti += 2;\n\t\t\tstart = i + 1;\n\t\t}\n\t}\n\tsegments.push(input.slice(start));\n\treturn segments;\n}\n\n// Split a group's inner text on top-level \" | \", ignoring pipes inside quotes/parens.\nfunction splitGroupTasks(inner: string): string[] {\n\tconst parts: string[] = [];\n\tlet depth = 0, inSingle = false, inDouble = false, start = 0;\n\tfor (let i = 0; i < inner.length; i++) {\n\t\tconst ch = inner[i]!;\n\t\tif (inSingle) { if (ch === \"'\") inSingle = false; continue; }\n\t\tif (inDouble) { if (ch === '\"') inDouble = false; continue; }\n\t\tif (ch === \"'\") { inSingle = true; continue; }\n\t\tif (ch === '\"') { inDouble = true; continue; }\n\t\tif (ch === \"(\") depth++;\n\t\telse if (ch === \")\") depth--;\n\t\telse if (ch === \"|\" && depth === 0) {\n\t\t\tparts.push(inner.slice(start, i));\n\t\t\tstart = i + 1;\n\t\t}\n\t}\n\tparts.push(inner.slice(start));\n\treturn parts;\n}\n\nexport function parseSingleTaskToken(token: string): ParsedStep {\n\tlet agentPart: string;\n\tlet task: string | undefined;\n\tconst qMatch = token.match(/^(\\S+(?:\\[[^\\]]*\\])?)\\s+(?:\"([^\"]*)\"|'([^']*)')$/);\n\tif (qMatch) {\n\t\tagentPart = qMatch[1]!;\n\t\ttask = (qMatch[2] ?? qMatch[3]) || undefined;\n\t} else {\n\t\tconst dashIdx = token.indexOf(\" -- \");\n\t\tif (dashIdx !== -1) {\n\t\t\tagentPart = token.slice(0, dashIdx).trim();\n\t\t\ttask = token.slice(dashIdx + 4).trim() || undefined;\n\t\t} else {\n\t\t\tagentPart = token;\n\t\t}\n\t}\n\treturn { kind: \"step\", ...parseAgentToken(agentPart), task };\n}\n\nconst parseGroupConfig = (raw: string): GroupConfig => {\n\tconst config: GroupConfig = {};\n\tfor (const part of raw.split(\",\")) {\n\t\tconst trimmed = part.trim();\n\t\tif (!trimmed) continue;\n\t\tconst eq = trimmed.indexOf(\"=\");\n\t\tconst key = eq === -1 ? trimmed : trimmed.slice(0, eq).trim();\n\t\tconst val = eq === -1 ? \"\" : trimmed.slice(eq + 1).trim();\n\t\tswitch (key) {\n\t\t\tcase \"concurrency\": { const n = Number(val); if (Number.isInteger(n) && n > 0) config.concurrency = n; break; }\n\t\t\tcase \"failFast\": config.failFast = eq === -1 ? true : val !== \"false\"; break;\n\t\t\tcase \"worktree\": config.worktree = eq === -1 ? true : val !== \"false\"; break;\n\t\t}\n\t}\n\treturn config;\n};\n\n// Split `(...)` from an optional trailing `[...]` group-config suffix, respecting\n// quotes and nested parens. Returns the inner group text and the parsed config.\nconst splitGroupBody = (trimmed: string): { inner: string; config: GroupConfig } => {\n\tlet depth = 0, inSingle = false, inDouble = false, closeIdx = -1;\n\tfor (let i = 0; i < trimmed.length; i++) {\n\t\tconst ch = trimmed[i]!;\n\t\tif (inSingle) { if (ch === \"'\") inSingle = false; continue; }\n\t\tif (inDouble) { if (ch === '\"') inDouble = false; continue; }\n\t\tif (ch === \"'\") { inSingle = true; continue; }\n\t\tif (ch === '\"') { inDouble = true; continue; }\n\t\tif (ch === \"(\") depth++;\n\t\telse if (ch === \")\") { depth--; if (depth === 0) { closeIdx = i; break; } }\n\t}\n\tif (closeIdx === -1) throw new SlashParseError(`Unmatched parentheses in group: '${trimmed}'`);\n\tconst inner = trimmed.slice(1, closeIdx);\n\tconst suffix = trimmed.slice(closeIdx + 1).trim();\n\tif (!suffix) return { inner, config: {} };\n\tif (!suffix.startsWith(\"[\") || !suffix.endsWith(\"]\")) {\n\t\tthrow new SlashParseError(`Group options must be wrapped in [...]: '${suffix}'`);\n\t}\n\treturn { inner, config: parseGroupConfig(suffix.slice(1, -1)) };\n};\n\nexport function parseGroupSegment(segment: string): ParsedGroup {\n\tconst trimmed = segment.trim();\n\tif (!trimmed.startsWith(\"(\")) {\n\t\tthrow new SlashParseError(`Parallel group must be wrapped in parentheses: '${trimmed}'`);\n\t}\n\tconst { inner, config } = splitGroupBody(trimmed);\n\tconst rawParts = splitGroupTasks(inner).map((p) => p.trim()).filter((p) => p.length > 0);\n\tif (rawParts.length < 2) {\n\t\tthrow new SlashParseError(\"Parallel group must contain at least two tasks separated by ' | '\");\n\t}\n\treturn { kind: \"group\", tasks: rawParts.map((part) => parseSingleTaskToken(part)), config };\n}\n\n// True if `input` uses inline parallel-group syntax. A group is a *step* that begins\n// with `(` at the top level, so we split on top-level ` -> ` arrows and look for a\n// segment that opens with `(`. Parentheses appearing inside a task (e.g.\n// `scout -- inspect auth (backend)`) do not count, which keeps legacy shared-task\n// `-- task` parsing — including a bare `|` inside the task — on the single-agent path.\nexport function hasGroupSyntax(input: string): boolean {\n\treturn splitOnArrow(input).some((seg) => seg.trim().startsWith(\"(\"));\n}\n\nexport function parseChainExpression(input: string): { steps: ParsedGroupStep[] } {\n\tconst trimmed = input.trim();\n\tif (!trimmed.includes(\" -> \")) {\n\t\tthrow new SlashParseError('Parallel groups in /chain require \" -> \" between steps');\n\t}\n\tif (findUnmatchedCloseParen(trimmed)) {\n\t\tthrow new SlashParseError(\"Unmatched parentheses in /chain expression\");\n\t}\n\tconst steps: ParsedGroupStep[] = [];\n\tfor (const seg of splitOnArrow(trimmed)) {\n\t\tconst t = seg.trim();\n\t\tif (!t) continue;\n\t\tif (t.startsWith(\"(\")) {\n\t\t\tsteps.push(parseGroupSegment(t));\n\t\t\tcontinue;\n\t\t}\n\t\tif (findUnmatchedCloseParen(t)) {\n\t\t\tthrow new SlashParseError(`Unmatched parentheses in chain segment: '${t}'`);\n\t\t}\n\t\tsteps.push(parseSingleTaskToken(t));\n\t}\n\tif (steps.length === 0) {\n\t\tthrow new SlashParseError(\"/chain expression must include at least one step\");\n\t}\n\treturn { steps };\n}\n\nconst parseAgentArgs = (\n\tstate: SubagentState,\n\targs: string,\n\tcommand: string,\n\tctx: ExtensionContext,\n): { steps: ParsedStep[]; task: string } | null => {\n\tconst input = args.trim();\n\tconst usage = `Usage: /${command} description1 \"task1\" -> description2 \"task2\"`;\n\tlet steps: ParsedStep[];\n\tlet sharedTask: string;\n\tlet perStep = false;\n\n\tif (input.includes(\" -> \")) {\n\t\tperStep = true;\n\t\tconst segments = input.split(\" -> \");\n\t\tsteps = [];\n\t\tfor (const seg of segments) {\n\t\t\tconst trimmed = seg.trim();\n\t\t\tif (!trimmed) continue;\n\t\t\tsteps.push(parseSingleTaskToken(trimmed));\n\t\t}\n\t\tsharedTask = steps.find((s) => s.task)?.task ?? \"\";\n\t} else {\n\t\tconst delimiterIndex = input.indexOf(\" -- \");\n\t\tif (delimiterIndex === -1) {\n\t\t\tctx.ui.notify(usage, \"error\");\n\t\t\treturn null;\n\t\t}\n\t\tconst agentsPart = input.slice(0, delimiterIndex).trim();\n\t\tsharedTask = input.slice(delimiterIndex + 4).trim();\n\t\tif (!agentsPart || !sharedTask) {\n\t\t\tctx.ui.notify(usage, \"error\");\n\t\t\treturn null;\n\t\t}\n\t\tsteps = agentsPart.split(/\\s+/).filter(Boolean).map((t) => parseSingleTaskToken(t));\n\t}\n\n\tif (steps.length === 0) {\n\t\tctx.ui.notify(usage, \"error\");\n\t\treturn null;\n\t}\n\tif (!state.baseCwd) {\n\t\tctx.ui.notify(\"Subagent session cwd is not initialized yet\", \"error\");\n\t\treturn null;\n\t}\n\tif (command === \"chain\" && !steps[0]?.task && (perStep || !sharedTask)) {\n\t\tctx.ui.notify(`First step must have a task: /chain description \"task\" -> description2`, \"error\");\n\t\treturn null;\n\t}\n\tif (command === \"parallel\" && !steps.some((s) => s.task) && !sharedTask) {\n\t\tctx.ui.notify(\"At least one step must have a task\", \"error\");\n\t\treturn null;\n\t}\n\treturn { steps, task: sharedTask };\n};\n\ntype ChainStepObject = {\n\tdescription: string;\n\tpermissions: \"full\" | \"read-only\";\n\ttask?: string;\n\toutput?: string | false;\n\toutputMode?: \"inline\" | \"file-only\";\n\treads?: string[] | false;\n\tmodel?: string;\n\tskill?: string[] | false;\n\tprogress?: boolean;\n\tas?: string;\n\tlabel?: string;\n\tphase?: string;\n\tcwd?: string;\n\tcount?: number;\n\toutputSchema?: JsonSchemaObject;\n\tacceptance?: string;\n};\n\nconst INLINE_ACCEPTANCE_LEVELS = new Set([\"auto\", \"attested\", \"checked\"]);\n\nfunction validateInlineAcceptanceInput(value: string, agent: string): void {\n\tconst errors = validateAcceptanceInput(value, `acceptance for step '${agent}'`);\n\tif (errors.length > 0) throw new SlashParseError(errors[0]!);\n\tif (!INLINE_ACCEPTANCE_LEVELS.has(value)) {\n\t\tthrow new SlashParseError(`Inline acceptance for step '${agent}' supports auto, attested, or checked. Use the subagent tool API or a saved .chain.json file for none or verified acceptance contracts; reviewed is inferred-only.`);\n\t}\n}\n\n// Load an inline `outputSchema=<path>` JSON file, resolved against the session cwd.\n// Throws (SlashParseError / fs / JSON) on a missing or malformed schema.\nfunction loadInlineOutputSchema(baseCwd: string, agent: string, value: string): JsonSchemaObject {\n\tconst schemaPath = path.isAbsolute(value) ? value : path.join(baseCwd, value);\n\tconst label = `outputSchema for step '${agent}' (${schemaPath})`;\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = JSON.parse(fs.readFileSync(schemaPath, \"utf-8\"));\n\t} catch (error) {\n\t\tthrow new SlashParseError(`Cannot read ${label}: ${error instanceof Error ? error.message : String(error)}`);\n\t}\n\tassertJsonSchemaObject(parsed, label);\n\treturn parsed;\n}\n\n// Build a ChainStep object from a parsed token. `inGroup` enables `count` (parallel-only).\n// May throw SlashParseError for an invalid acceptance level or outputSchema path.\nconst mapParsedTaskToStepObject = (\n\tstep: ParsedStep,\n\tfallbackTask: string | undefined,\n\tisFirst: boolean,\n\topts: { baseCwd: string; inGroup: boolean },\n): ChainStepObject => {\n\tconst { name, config, task: stepTask } = step;\n\tif (config.acceptance !== undefined) validateInlineAcceptanceInput(config.acceptance, name);\n\treturn {\n\t\tdescription: name,\n\t\tpermissions: config.permissions ?? \"full\",\n\t\t...(stepTask ? { task: stepTask } : isFirst && fallbackTask ? { task: fallbackTask } : {}),\n\t\t...(config.output !== undefined ? { output: config.output } : {}),\n\t\t...(config.outputMode !== undefined ? { outputMode: config.outputMode } : {}),\n\t\t...(config.reads !== undefined ? { reads: config.reads } : {}),\n\t\t...(config.model ? { model: config.model } : {}),\n\t\t...(config.skill !== undefined ? { skill: config.skill } : {}),\n\t\t...(config.progress !== undefined ? { progress: config.progress } : {}),\n\t\t...(config.as ? { as: config.as } : {}),\n\t\t...(config.label ? { label: config.label } : {}),\n\t\t...(config.phase ? { phase: config.phase } : {}),\n\t\t...(config.cwd ? { cwd: config.cwd } : {}),\n\t\t...(opts.inGroup && config.count !== undefined ? { count: config.count } : {}),\n\t\t...(config.outputSchema ? { outputSchema: loadInlineOutputSchema(opts.baseCwd, name, config.outputSchema) } : {}),\n\t\t...(config.acceptance ? { acceptance: config.acceptance } : {}),\n\t};\n};\n\nexport function buildChainExpressionSteps(\n\tstate: SubagentState,\n\tinput: string,\n\tctx: ExtensionContext,\n): { chain: ChainStep[]; task: string } | null {\n\tconst notify = (message: string) => ctx.ui.notify(message, \"error\");\n\tif (!hasGroupSyntax(input)) {\n\t\tconst parsed = parseAgentArgs(state, input, \"chain\", ctx);\n\t\tif (!parsed) return null;\n\t\tconst baseCwd = state.baseCwd!; // parseAgentArgs already verified baseCwd is set\n\t\ttry {\n\t\t\tconst chain: ChainStep[] = parsed.steps.map((step, i) =>\n\t\t\t\tmapParsedTaskToStepObject(step, parsed.task || undefined, i === 0, { baseCwd, inGroup: false }),\n\t\t\t);\n\t\t\treturn { chain, task: parsed.task };\n\t\t} catch (error) {\n\t\t\tnotify(error instanceof Error ? error.message : String(error));\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tlet expression: { steps: ParsedGroupStep[] };\n\ttry {\n\t\texpression = parseChainExpression(input);\n\t} catch (error) {\n\t\tnotify(error instanceof Error ? error.message : String(error));\n\t\treturn null;\n\t}\n\tif (!state.baseCwd) {\n\t\tnotify(\"Subagent session cwd is not initialized yet\");\n\t\treturn null;\n\t}\n\t// Every task inside a parallel group needs its own task; there is no shared-task fallback.\n\tfor (const step of expression.steps) {\n\t\tif (step.kind === \"group\" && step.tasks.some((t) => !t.task)) {\n\t\t\tnotify('Each child in a parallel group needs a task: (description \"a\" | description2 \"b\")');\n\t\t\treturn null;\n\t\t}\n\t}\n\tconst firstStep = expression.steps[0]!;\n\tconst firstHasTask =\n\t\tfirstStep.kind === \"group\"\n\t\t\t? firstStep.tasks.some((t) => Boolean(t.task))\n\t\t\t: Boolean(firstStep.task);\n\tif (!firstHasTask) {\n\t\tnotify('First step must have a task: /chain description \"task\" -> description2');\n\t\treturn null;\n\t}\n\tconst sharedTask =\n\t\tfirstStep.kind === \"group\"\n\t\t\t? (firstStep.tasks.find((t) => t.task)?.task ?? \"\")\n\t\t\t: (firstStep.task ?? \"\");\n\tconst baseCwd = state.baseCwd;\n\tlet chain: ChainStep[];\n\ttry {\n\t\tchain = expression.steps.map((step) => {\n\t\t\tif (step.kind === \"group\") {\n\t\t\t\tconst parallel = step.tasks.map((t) => mapParsedTaskToStepObject(t, undefined, false, { baseCwd, inGroup: true }));\n\t\t\t\treturn {\n\t\t\t\t\tparallel,\n\t\t\t\t\t...(step.config.concurrency !== undefined ? { concurrency: step.config.concurrency } : {}),\n\t\t\t\t\t...(step.config.failFast !== undefined ? { failFast: step.config.failFast } : {}),\n\t\t\t\t\t...(step.config.worktree !== undefined ? { worktree: step.config.worktree } : {}),\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn mapParsedTaskToStepObject(step, sharedTask || undefined, false, { baseCwd, inGroup: false });\n\t\t});\n\t} catch (error) {\n\t\tnotify(error instanceof Error ? error.message : String(error));\n\t\treturn null;\n\t}\n\treturn { chain, task: sharedTask };\n}\n\nexport function registerSlashCommands(\n\tpi: ExtensionAPI,\n\tstate: SubagentState,\n): void {\n\tlet fleetOpen = false;\n\tconst showFleet = async (ctx: ExtensionContext) => {\n\t\tstate.lastUiContext = ctx;\n\t\tif (!ctx.hasUI) {\n\t\t\tawait runSlashSubagent(pi, ctx, { action: \"status\", view: \"fleet\" });\n\t\t\treturn;\n\t\t}\n\t\tif (fleetOpen) {\n\t\t\tctx.ui.notify(\"Subagent fleet inspector is already open.\", \"info\");\n\t\t\treturn;\n\t\t}\n\t\tfleetOpen = true;\n\t\ttry {\n\t\t\tawait openSubagentFleet(ctx, state);\n\t\t} finally {\n\t\t\tfleetOpen = false;\n\t\t}\n\t};\n\n\tpi.registerCommand(\"run\", {\n\t\tdescription: \"Run a prompt-defined child: /run description[output=file] task [--bg]\",\n\t\thandler: async (args, ctx) => {\n\t\t\tconst { args: cleanedArgs, bg } = extractExecutionFlags(args);\n\t\t\tconst input = cleanedArgs.trim();\n\t\t\tconst firstSpace = input.indexOf(\" \");\n\t\t\tif (!input) { ctx.ui.notify(\"Usage: /run <description> <task> [--bg]\", \"error\"); return; }\n\t\t\tconst { name: description, config: inline } = parseAgentToken(firstSpace === -1 ? input : input.slice(0, firstSpace));\n\t\t\tconst task = firstSpace === -1 ? \"\" : input.slice(firstSpace + 1).trim();\n\t\t\tif (!description || !task) { ctx.ui.notify(\"Usage: /run <description> <task> [--bg]\", \"error\"); return; }\n\n\t\t\tlet finalTask = task;\n\t\t\tif (inline.reads && Array.isArray(inline.reads) && inline.reads.length > 0) {\n\t\t\t\tfinalTask = `[Read from: ${inline.reads.join(\", \")}]\\n\\n${finalTask}`;\n\t\t\t}\n\t\t\tconst params: SubagentParamsLike = { description, permissions: inline.permissions ?? \"full\", task: finalTask, clarify: false };\n\t\t\tif (inline.output !== undefined) params.output = inline.output;\n\t\t\tif (inline.outputMode !== undefined) params.outputMode = inline.outputMode;\n\t\t\tif (inline.skill !== undefined) params.skill = inline.skill;\n\t\t\tif (inline.model) params.model = inline.model;\n\t\t\tif (bg) params.async = true;\n\t\t\tawait runSlashSubagent(pi, ctx, params);\n\t\t},\n\t});\n\n\tpi.registerCommand(\"chain\", {\n\t\tdescription: \"Run prompt-defined children in sequence: /chain inspect \\\"task\\\" -> implement [--bg]\",\n\t\thandler: async (args, ctx) => {\n\t\t\tconst { args: cleanedArgs, bg } = extractExecutionFlags(args);\n\t\t\tconst built = buildChainExpressionSteps(state, cleanedArgs, ctx);\n\t\t\tif (!built) return;\n\t\t\tconst params: SubagentParamsLike = { chain: built.chain, task: built.task, clarify: false };\n\t\t\tif (bg) params.async = true;\n\t\t\tawait runSlashSubagent(pi, ctx, params);\n\t\t},\n\t});\n\n\tpi.registerCommand(\"parallel\", {\n\t\tdescription: \"Run prompt-defined children in parallel: /parallel inspect \\\"task1\\\" -> review \\\"task2\\\" [--bg]\",\n\t\thandler: async (args, ctx) => {\n\t\t\tconst { args: cleanedArgs, bg } = extractExecutionFlags(args);\n\t\t\tconst parsed = parseAgentArgs(state, cleanedArgs, \"parallel\", ctx);\n\t\t\tif (!parsed) return;\n\t\t\tconst tasks = parsed.steps.map(({ name, config, task: stepTask }) => ({\n\t\t\t\tdescription: name,\n\t\t\t\tpermissions: config.permissions ?? \"full\" as const,\n\t\t\t\ttask: stepTask ?? parsed.task,\n\t\t\t\t...(config.output !== undefined ? { output: config.output } : {}),\n\t\t\t\t...(config.outputMode !== undefined ? { outputMode: config.outputMode } : {}),\n\t\t\t\t...(config.reads !== undefined ? { reads: config.reads } : {}),\n\t\t\t\t...(config.model ? { model: config.model } : {}),\n\t\t\t\t...(config.skill !== undefined ? { skill: config.skill } : {}),\n\t\t\t\t...(config.progress !== undefined ? { progress: config.progress } : {}),\n\t\t\t}));\n\t\t\tconst params: SubagentParamsLike = { tasks, clarify: false };\n\t\t\tif (bg) params.async = true;\n\t\t\tawait runSlashSubagent(pi, ctx, params);\n\t\t},\n\t});\n\n\tpi.registerCommand(\"subagent-cost\", {\n\t\tdescription: \"Show parent and subagent child usage cost for this session\",\n\t\thandler: async (_args, ctx) => {\n\t\t\tsendSlashText(pi, buildSubagentCostReport(ctx));\n\t\t},\n\t});\n\n\tpi.registerCommand(\"subagents-doctor\", {\n\t\tdescription: \"Show subagent diagnostics\",\n\t\thandler: async (_args, ctx) => {\n\t\t\tawait runSlashSubagent(pi, ctx, { action: \"doctor\" });\n\t\t},\n\t});\n\n\tpi.registerCommand(\"subagents-fleet\", {\n\t\tdescription: \"Open the live, inspection-only subagent fleet\",\n\t\thandler: async (_args, ctx) => showFleet(ctx),\n\t});\n\n\tpi.registerShortcut(Key.ctrlAlt(\"f\"), {\n\t\tdescription: \"Open subagent fleet inspector\",\n\t\thandler: async (ctx) => showFleet(ctx),\n\t});\n\n\tpi.registerCommand(\"subagents-stop\", {\n\t\tdescription: \"Stop a current-session async subagent run\",\n\t\thandler: async (args, ctx) => {\n\t\t\tconst id = args.trim();\n\t\t\tif (id) {\n\t\t\t\tawait runSlashSubagent(pi, ctx, { action: \"stop\", id });\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (process.env[SUBAGENT_FANOUT_CHILD_ENV] === \"1\") {\n\t\t\t\tsendSlashText(pi, \"Selector unavailable in child-safe fanout mode. Pass an explicit current-session top-level async run id, for example `/subagents-stop <run-id>` or `subagent({ action: \\\"stop\\\", id: \\\"<run-id>\\\" })`.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet targets: StopSelectorTarget[];\n\t\t\ttry {\n\t\t\t\ttargets = discoverStopTargets(ctx, state);\n\t\t\t} catch (error) {\n\t\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\t\tctx.ui.notify(message, \"error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!ctx.hasUI) {\n\t\t\t\tsendSlashText(pi, stopFallbackText(targets));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (targets.length === 0) {\n\t\t\t\tctx.ui.notify(\"No active current-session async runs or scheduled subagent runs to stop.\", \"info\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst result = await ctx.ui.custom<StopSelectorResult>(\n\t\t\t\t(tui, theme, _kb, done) => new SubagentsStopSelector(tui, theme, targets, done),\n\t\t\t\t{ overlay: true, overlayOptions: { anchor: \"center\", width: 88, maxHeight: \"80%\" } },\n\t\t\t);\n\t\t\tif (!result?.confirmed || !result.target) return;\n\t\t\tif (result.target.kind === \"scheduled\") {\n\t\t\t\tawait runSlashSubagent(pi, ctx, { action: \"schedule-cancel\", id: result.target.id });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait runSlashSubagent(pi, ctx, { action: \"stop\", id: result.target.id });\n\t\t},\n\t});\n\n\tregisterPromptWorkflowCommands({\n\t\tpi,\n\t\trun: (params, ctx) => runSlashSubagent(pi, ctx, params),\n\t});\n\n}\n"]}
|
|
@@ -21,8 +21,9 @@ export declare const subagentAnimSink: {
|
|
|
21
21
|
};
|
|
22
22
|
/** Drop leading [Read from: …] / [Write to: …] lines from a child task. */
|
|
23
23
|
export declare function stripTaskChrome(task: string | undefined): string;
|
|
24
|
-
/** Compact-row lead:
|
|
24
|
+
/** Compact-row lead: sanitized description, never a removed agent type or the model. */
|
|
25
25
|
export declare function compactRowLead(result: {
|
|
26
|
+
description?: string;
|
|
26
27
|
task?: string;
|
|
27
28
|
model?: string;
|
|
28
29
|
}): string;
|