@selesai/code 0.8.3 → 0.8.5
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 +15 -0
- package/README.md +7 -1
- package/dist/core/slash-commands.js +1 -0
- package/dist/defaults/models.json +41 -55
- package/dist/defaults/settings.json +7 -8
- package/dist/extensions/handoff-new.ts +1 -1
- package/dist/extensions/inline-skills.test.ts +1 -0
- package/dist/extensions/inline-skills.ts +1 -1
- package/dist/extensions/pi-intercom/CHANGELOG.md +25 -3
- package/dist/extensions/pi-intercom/README.md +34 -15
- package/dist/extensions/pi-intercom/broker/broker.ts +38 -141
- package/dist/extensions/pi-intercom/broker/client-liveness.test.ts +173 -0
- package/dist/extensions/pi-intercom/broker/client.ts +78 -150
- package/dist/extensions/pi-intercom/broker/extension-state.ts +18 -7
- package/dist/extensions/pi-intercom/broker/framing.ts +1 -1
- package/dist/extensions/pi-intercom/broker/protocol.ts +182 -0
- package/dist/extensions/pi-intercom/broker/spawn.test.ts +106 -7
- package/dist/extensions/pi-intercom/broker/spawn.ts +37 -11
- package/dist/extensions/pi-intercom/config.test.ts +8 -10
- package/dist/extensions/pi-intercom/config.ts +3 -3
- package/dist/extensions/pi-intercom/index.ts +218 -147
- package/dist/extensions/pi-intercom/intercom.integration.test.ts +891 -103
- package/dist/extensions/pi-intercom/package.json +3 -2
- package/dist/extensions/pi-intercom/project-agent.test.ts +145 -0
- package/dist/extensions/pi-intercom/project-agent.ts +324 -0
- package/dist/extensions/pi-intercom/reply-tracker.test.ts +86 -1
- package/dist/extensions/pi-intercom/reply-tracker.ts +41 -9
- package/dist/extensions/pi-intercom/skills/pi-intercom/SKILL.md +49 -9
- package/dist/extensions/pi-intercom/test/inline-message.test.ts +9 -9
- package/dist/extensions/pi-intercom/types.ts +3 -1
- package/dist/extensions/pi-intercom/ui/inline-message.ts +7 -7
- package/dist/extensions/pi-powerline-footer/.github/workflows/test.yml +2 -2
- package/dist/extensions/pi-powerline-footer/CHANGELOG.md +14 -1
- package/dist/extensions/pi-powerline-footer/README.md +20 -37
- package/dist/extensions/pi-powerline-footer/bash-mode/completion.ts +40 -25
- package/dist/extensions/pi-powerline-footer/bash-mode/editor.ts +149 -18
- package/dist/extensions/pi-powerline-footer/bash-mode/types.ts +1 -0
- package/dist/extensions/pi-powerline-footer/editor-performance.ts +99 -0
- package/dist/extensions/pi-powerline-footer/git-status.ts +15 -0
- package/dist/extensions/pi-powerline-footer/index.ts +394 -317
- package/dist/extensions/pi-powerline-footer/package.json +1 -1
- package/dist/extensions/pi-powerline-footer/powerline-config.ts +0 -12
- package/dist/extensions/pi-powerline-footer/queue/store.ts +8 -56
- package/dist/extensions/pi-powerline-footer/queue/types.ts +1 -2
- package/dist/extensions/pi-powerline-footer/segments.ts +0 -3
- package/dist/extensions/pi-powerline-footer/tests/bash-mode.test.ts +231 -1
- package/dist/extensions/pi-powerline-footer/tests/custom-items.test.ts +5 -19
- package/dist/extensions/pi-powerline-footer/tests/editor-performance.test.ts +43 -0
- package/dist/extensions/pi-powerline-footer/tests/git-optional-locks.test.ts +64 -0
- package/dist/extensions/pi-powerline-footer/tests/jump-shortcuts.test.ts +116 -0
- package/dist/extensions/pi-powerline-footer/tests/queue-store.test.ts +19 -149
- package/dist/extensions/pi-powerline-footer/tests/remaining-regressions.test.ts +6 -0
- package/dist/extensions/pi-powerline-footer/tests/usage-display.test.ts +5 -5
- package/dist/extensions/pi-powerline-footer/types.ts +1 -2
- package/dist/extensions/pi-subagents/CHANGELOG.md +225 -14
- package/dist/extensions/pi-subagents/README.md +66 -1613
- package/dist/extensions/pi-subagents/agents/builder.md +0 -1
- package/dist/extensions/pi-subagents/agents/delegate.md +14 -0
- package/dist/extensions/pi-subagents/agents/oracle.md +74 -0
- package/dist/extensions/pi-subagents/agents/reviewer.md +78 -0
- package/dist/extensions/pi-subagents/agents/scout.md +50 -0
- package/dist/extensions/pi-subagents/agents/worker.md +58 -0
- package/dist/extensions/pi-subagents/docs/configuration.md +372 -0
- package/dist/extensions/pi-subagents/docs/extension-api.md +308 -0
- package/dist/extensions/pi-subagents/docs/missions.md +119 -0
- package/dist/extensions/pi-subagents/docs/models.md +192 -0
- package/dist/extensions/pi-subagents/docs/observability.md +174 -0
- package/dist/extensions/pi-subagents/docs/tool-reference.md +343 -0
- package/dist/extensions/pi-subagents/docs/watchdog.md +176 -0
- package/dist/extensions/pi-subagents/docs/workflows.md +163 -0
- package/dist/extensions/pi-subagents/inspector-runner.mjs +11 -0
- package/dist/extensions/pi-subagents/package-lock.json +152 -194
- package/dist/extensions/pi-subagents/package.json +9 -10
- package/dist/extensions/pi-subagents/prompts/gather-context-and-clarify.md +1 -1
- package/dist/extensions/pi-subagents/prompts/parallel-cleanup.md +9 -9
- package/dist/extensions/pi-subagents/prompts/parallel-research.md +6 -6
- package/dist/extensions/pi-subagents/prompts/parallel-review.md +8 -8
- package/dist/extensions/pi-subagents/prompts/review-loop.md +12 -12
- package/dist/extensions/pi-subagents/skills/pi-subagents/SKILL.md +22 -17
- package/dist/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md +77 -72
- package/dist/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md +177 -69
- package/dist/extensions/pi-subagents/skills/pi-subagents/references/management-authoring-rpc.md +28 -8
- package/dist/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +88 -66
- package/dist/extensions/pi-subagents/src/agents/agent-management.ts +3 -3
- package/dist/extensions/pi-subagents/src/agents/agent-refinements.ts +624 -0
- package/dist/extensions/pi-subagents/src/agents/agents.ts +38 -19
- package/dist/extensions/pi-subagents/src/agents/frontmatter.ts +7 -3
- package/dist/extensions/pi-subagents/src/agents/proactive-skills.ts +2 -2
- package/dist/extensions/pi-subagents/src/agents/skills.ts +2 -9
- package/dist/extensions/pi-subagents/src/api/delegation.ts +1 -2
- package/dist/extensions/pi-subagents/src/api/project-panes.ts +30 -0
- package/dist/extensions/pi-subagents/src/extension/config.ts +62 -8
- package/dist/extensions/pi-subagents/src/extension/control-notices.ts +2 -2
- package/dist/extensions/pi-subagents/src/extension/doctor.ts +40 -0
- package/dist/extensions/pi-subagents/src/extension/fanout-child.ts +51 -26
- package/dist/extensions/pi-subagents/src/extension/index.ts +140 -50
- package/dist/extensions/pi-subagents/src/extension/public-execution.ts +77 -0
- package/dist/extensions/pi-subagents/src/extension/rpc.ts +18 -24
- package/dist/extensions/pi-subagents/src/extension/schemas.ts +58 -21
- package/dist/extensions/pi-subagents/src/extension/subagent-guide.ts +39 -0
- package/dist/extensions/pi-subagents/src/extension/tool-description.ts +47 -25
- package/dist/extensions/pi-subagents/src/inspectors/herdr/actions.ts +3 -3
- package/dist/extensions/pi-subagents/src/inspectors/herdr/project-panes.ts +460 -64
- package/dist/extensions/pi-subagents/src/intercom/intercom-bridge.ts +4 -1
- package/dist/extensions/pi-subagents/src/intercom/native-supervisor-channel.ts +102 -4
- package/dist/extensions/pi-subagents/src/missions/actions.ts +77 -16
- package/dist/extensions/pi-subagents/src/missions/goal-driver.ts +162 -0
- package/dist/extensions/pi-subagents/src/missions/lifecycle.ts +65 -17
- package/dist/extensions/pi-subagents/src/missions/store.ts +151 -9
- package/dist/extensions/pi-subagents/src/missions/types.ts +58 -3
- package/dist/extensions/pi-subagents/src/missions/workflow-state.ts +260 -0
- package/dist/extensions/pi-subagents/src/profiles/profiles.ts +8 -8
- package/dist/extensions/pi-subagents/src/runs/background/active-async-capacity.ts +374 -0
- package/dist/extensions/pi-subagents/src/runs/background/active-run-index.ts +46 -0
- package/dist/extensions/pi-subagents/src/runs/background/async-execution.ts +158 -36
- package/dist/extensions/pi-subagents/src/runs/background/async-job-tracker.ts +294 -134
- package/dist/extensions/pi-subagents/src/runs/background/async-resume.ts +26 -4
- package/dist/extensions/pi-subagents/src/runs/background/async-status.ts +45 -6
- package/dist/extensions/pi-subagents/src/runs/background/chain-append.ts +33 -15
- package/dist/extensions/pi-subagents/src/runs/background/completion-replay.ts +267 -0
- package/dist/extensions/pi-subagents/src/runs/background/control-channel.ts +145 -60
- package/dist/extensions/pi-subagents/src/runs/background/owned-process-tree.ts +104 -0
- package/dist/extensions/pi-subagents/src/runs/background/process-terminal.ts +17 -3
- package/dist/extensions/pi-subagents/src/runs/background/result-watcher.ts +114 -6
- package/dist/extensions/pi-subagents/src/runs/background/resume-guidance.ts +33 -0
- package/dist/extensions/pi-subagents/src/runs/background/retained-children.ts +68 -0
- package/dist/extensions/pi-subagents/src/runs/background/run-id-resolver.ts +71 -0
- package/dist/extensions/pi-subagents/src/runs/background/run-status.ts +26 -3
- package/dist/extensions/pi-subagents/src/runs/background/scheduled-runs.ts +42 -14
- package/dist/extensions/pi-subagents/src/runs/background/stale-run-reconciler.ts +12 -24
- package/dist/extensions/pi-subagents/src/runs/background/steering.ts +7 -5
- package/dist/extensions/pi-subagents/src/runs/background/subagent-runner.ts +233 -101
- package/dist/extensions/pi-subagents/src/runs/background/subagent-wait.ts +17 -4
- package/dist/extensions/pi-subagents/src/runs/background/wait-completions.ts +146 -0
- package/dist/extensions/pi-subagents/src/runs/background/wait-subscriptions.ts +21 -5
- package/dist/extensions/pi-subagents/src/runs/foreground/async-dismiss-action.ts +85 -0
- package/dist/extensions/pi-subagents/src/runs/foreground/async-steering-action.ts +43 -18
- package/dist/extensions/pi-subagents/src/runs/foreground/chain-clarify.ts +20 -19
- package/dist/extensions/pi-subagents/src/runs/foreground/chain-execution.ts +40 -2
- package/dist/extensions/pi-subagents/src/runs/foreground/execution.ts +188 -46
- package/dist/extensions/pi-subagents/src/runs/foreground/foreground-control.ts +12 -0
- package/dist/extensions/pi-subagents/src/runs/foreground/foreground-history.ts +137 -0
- package/dist/extensions/pi-subagents/src/runs/foreground/prompt-audit.ts +171 -0
- package/dist/extensions/pi-subagents/src/runs/foreground/subagent-executor.ts +1365 -252
- package/dist/extensions/pi-subagents/src/runs/foreground/workflow-foreground-steering.ts +187 -0
- package/dist/extensions/pi-subagents/src/runs/shared/acceptance.ts +178 -26
- package/dist/extensions/pi-subagents/src/runs/shared/dynamic-fanout.ts +1 -1
- package/dist/extensions/pi-subagents/src/runs/shared/llm-intent-arbiter.ts +286 -0
- package/dist/extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +2 -0
- package/dist/extensions/pi-subagents/src/runs/shared/model-fallback.ts +32 -5
- package/dist/extensions/pi-subagents/src/runs/shared/model-scope.ts +12 -2
- package/dist/extensions/pi-subagents/src/runs/shared/parallel-utils.ts +3 -0
- package/dist/extensions/pi-subagents/src/runs/shared/pi-args.ts +509 -117
- package/dist/extensions/pi-subagents/src/runs/shared/pi-spawn.ts +10 -10
- package/dist/extensions/pi-subagents/src/runs/shared/run-fanout-budget.ts +280 -0
- package/dist/extensions/pi-subagents/src/runs/shared/single-output.ts +4 -2
- package/dist/extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.ts +189 -32
- package/dist/extensions/pi-subagents/src/runs/shared/task-intent.ts +21 -5
- package/dist/extensions/pi-subagents/src/runs/shared/worktree.ts +20 -8
- package/dist/extensions/pi-subagents/src/shared/artifacts.ts +128 -3
- package/dist/extensions/pi-subagents/src/shared/display-text.ts +100 -0
- package/dist/extensions/pi-subagents/src/shared/file-coalescer.ts +9 -0
- package/dist/extensions/pi-subagents/src/shared/fork-context.ts +13 -0
- package/dist/extensions/pi-subagents/src/shared/formatters.ts +4 -6
- package/dist/extensions/pi-subagents/src/shared/prompt-resources.ts +51 -0
- package/dist/extensions/pi-subagents/src/shared/settings.ts +41 -11
- package/dist/extensions/pi-subagents/src/shared/types.ts +192 -3
- package/dist/extensions/pi-subagents/src/shared/utf8.ts +11 -0
- package/dist/extensions/pi-subagents/src/shared/utils.ts +46 -34
- package/dist/extensions/pi-subagents/src/slash/delegation-adapters.ts +1 -14
- package/dist/extensions/pi-subagents/src/slash/inline-subagents.ts +1 -1
- package/dist/extensions/pi-subagents/src/slash/prompt-template-bridge.ts +14 -12
- package/dist/extensions/pi-subagents/src/slash/prompt-workflows.ts +176 -21
- package/dist/extensions/pi-subagents/src/slash/slash-bridge.ts +12 -6
- package/dist/extensions/pi-subagents/src/slash/slash-commands.ts +52 -18
- package/dist/extensions/pi-subagents/src/slash/slash-live-state.ts +36 -5
- package/dist/extensions/pi-subagents/src/tui/fleet-status.ts +37 -21
- package/dist/extensions/pi-subagents/src/tui/fleet.ts +375 -42
- package/dist/extensions/pi-subagents/src/tui/render.ts +201 -68
- package/dist/extensions/pi-subagents/src/types/pi-runtime-compat.d.ts +0 -6
- package/dist/extensions/pi-subagents/src/watchdog/change-signature.ts +5 -4
- package/dist/extensions/pi-subagents/src/watchdog/lsp-diagnostics.ts +0 -1
- package/dist/extensions/pi-subagents/src/workflows/scripted-workflow.ts +332 -27
- package/dist/extensions/pi-subagents/test/e2e/real-session-subagent.test.ts +15 -15
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/cli.d.ts +3 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/register-bedrock.d.ts +2 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/bun/restore-sandbox-env.d.ts +17 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/args.d.ts +57 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/config-selector.d.ts +16 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/file-processor.d.ts +15 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/initial-message.d.ts +18 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/list-models.d.ts +9 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/project-trust.d.ts +10 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/session-picker.d.ts +10 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli/startup-ui.d.ts +20 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/cli.d.ts +3 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/config.d.ts +96 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-runtime.d.ts +119 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session-services.d.ts +85 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/agent-session.d.ts +620 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-guidance.d.ts +5 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/auth-storage.d.ts +56 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/bash-executor.d.ts +32 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/cache-stats.d.ts +49 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/branch-summarization.d.ts +93 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/compaction.d.ts +128 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/index.d.ts +7 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/compaction/utils.d.ts +38 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/defaults.d.ts +3 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/diagnostics.d.ts +15 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/event-bus.d.ts +9 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/exec.d.ts +29 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/experimental.d.ts +2 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/ansi-to-html.d.ts +22 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/index.d.ts +37 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/export-html/tool-renderer.d.ts +34 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/index.d.ts +12 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/loader.d.ts +23 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/runner.d.ts +171 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/types.d.ts +1261 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/extensions/wrapper.d.ts +20 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/footer-data-provider.d.ts +54 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/http-dispatcher.d.ts +22 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/index.d.ts +13 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/keybindings.d.ts +358 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/messages.d.ts +77 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-config.d.ts +512 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-registry.d.ts +43 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-resolver.d.ts +121 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/model-runtime.d.ts +82 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/models-store.d.ts +17 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/output-guard.d.ts +7 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/package-manager.d.ts +210 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/project-trust.d.ts +15 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/prompt-templates.d.ts +54 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-attribution.d.ts +4 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/provider-composer.d.ts +55 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/radius.d.ts +2 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/remote-catalog-provider.d.ts +5 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resolve-config-value.d.ts +30 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/resource-loader.d.ts +206 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/runtime-credentials.d.ts +15 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/sdk.d.ts +106 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-cwd.d.ts +19 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/session-manager.d.ts +356 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/settings-manager.d.ts +297 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/skills.d.ts +60 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/slash-commands.d.ts +15 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/source-info.d.ts +18 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/system-prompt.d.ts +28 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/telemetry.d.ts +3 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/timings.d.ts +10 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/bash.d.ts +68 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit-diff.d.ts +106 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/edit.d.ts +51 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/file-mutation-queue.d.ts +6 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/find.d.ts +35 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/grep.d.ts +37 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/index.d.ts +40 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/ls.d.ts +37 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/output-accumulator.d.ts +52 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/path-utils.d.ts +10 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/read.d.ts +35 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/render-utils.d.ts +24 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/truncate.d.ts +70 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/tools/write.d.ts +26 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/trust-manager.d.ts +36 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/core/usage-totals.d.ts +19 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/index.d.ts +3 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/client.d.ts +61 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/huggingface.d.ts +23 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/index.d.ts +3 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/provider.d.ts +10 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/extensions/llama/ui.d.ts +42 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/index.d.ts +35 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/main.d.ts +12 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/migrations.d.ts +33 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/index.d.ts +9 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/armin.d.ts +34 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/assistant-message.d.ts +22 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bash-execution.d.ts +34 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/config-selector.d.ts +102 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-editor.d.ts +21 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-entry.d.ts +19 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/custom-message.d.ts +20 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/daxnuts.d.ts +23 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/diff.d.ts +12 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-editor.d.ts +22 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-input.d.ts +23 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/extension-selector.d.ts +26 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/footer.d.ts +32 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/index.d.ts +34 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/login-dialog.d.ts +52 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/model-selector.d.ts +54 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/session-selector.d.ts +95 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/settings-selector.d.ts +77 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/status-indicator.d.ts +28 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/theme-selector.d.ts +11 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tool-execution.d.ts +63 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/tree-selector.d.ts +94 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/trust-selector.d.ts +23 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/user-message.d.ts +14 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/interactive-mode.d.ts +394 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/model-search.d.ts +12 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme-controller.d.ts +29 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/interactive/theme/theme.d.ts +120 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/print-mode.d.ts +28 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/jsonl.d.ts +17 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-client.d.ts +246 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-mode.d.ts +20 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/modes/rpc/rpc-types.d.ts +457 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/package-manager-cli.d.ts +8 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/rpc-entry.d.ts +3 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/ansi.d.ts +2 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/changelog.d.ts +22 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/child-process.d.ts +18 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-image.d.ts +11 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard-native.d.ts +11 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/clipboard.d.ts +4 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/deprecation.d.ts +4 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/exif-orientation.d.ts +5 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/frontmatter.d.ts +8 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/fs-watch.d.ts +5 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/git.d.ts +26 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/html.d.ts +7 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-convert.d.ts +10 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-process.d.ts +18 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-core.d.ts +30 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize-worker.d.ts +2 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/image-resize.d.ts +16 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/json.d.ts +3 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/mime.d.ts +3 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/open-browser.d.ts +9 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/paths.d.ts +31 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/photon.d.ts +21 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/pi-user-agent.d.ts +2 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/shell.d.ts +31 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/sleep.d.ts +5 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/syntax-highlight.d.ts +12 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/tools-manager.d.ts +3 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/version-check.d.ts +15 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/dist/utils/windows-self-update.d.ts +3 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/index.mjs +84 -0
- package/dist/extensions/pi-subagents/test/fixtures/pi-coding-agent-shim/package.json +14 -0
- package/dist/extensions/pi-subagents/test/integration/acceptance-file-report.test.ts +102 -15
- package/dist/extensions/pi-subagents/test/integration/async-execution.test.ts +507 -306
- package/dist/extensions/pi-subagents/test/integration/async-job-tracker.test.ts +309 -123
- package/dist/extensions/pi-subagents/test/integration/async-status.test.ts +124 -58
- package/dist/extensions/pi-subagents/test/integration/chain-clarify.test.ts +62 -16
- package/dist/extensions/pi-subagents/test/integration/chain-execution.test.ts +167 -113
- package/dist/extensions/pi-subagents/test/integration/detect-error.test.ts +1 -1
- package/dist/extensions/pi-subagents/test/integration/external-cli-runner.test.ts +4 -2
- package/dist/extensions/pi-subagents/test/integration/fork-context-execution.test.ts +139 -58
- package/dist/extensions/pi-subagents/test/integration/intercom-result-delivery.test.ts +324 -59
- package/dist/extensions/pi-subagents/test/integration/parallel-execution.test.ts +98 -22
- package/dist/extensions/pi-subagents/test/integration/render-fork-badge.test.ts +106 -106
- package/dist/extensions/pi-subagents/test/integration/render-widget.test.ts +416 -106
- package/dist/extensions/pi-subagents/test/integration/result-watcher.test.ts +287 -17
- package/dist/extensions/pi-subagents/test/integration/single-execution.test.ts +1122 -96
- package/dist/extensions/pi-subagents/test/integration/slash-commands.test.ts +107 -20
- package/dist/extensions/pi-subagents/test/integration/slash-live-state.test.ts +9 -9
- package/dist/extensions/pi-subagents/test/integration/template-resolution.test.ts +26 -6
- package/dist/extensions/pi-subagents/test/integration/top-level-async.test.ts +2 -2
- package/dist/extensions/pi-subagents/test/support/helpers.ts +2 -0
- package/dist/extensions/pi-subagents/test/support/mock-pi-script.mjs +1 -1
- package/dist/extensions/pi-subagents/test/support/ts-loader.mjs +0 -8
- package/dist/extensions/pi-subagents/test/unit/acceptance.test.ts +194 -59
- package/dist/extensions/pi-subagents/test/unit/active-async-capacity.test.ts +317 -0
- package/dist/extensions/pi-subagents/test/unit/agent-disabled.test.ts +15 -15
- package/dist/extensions/pi-subagents/test/unit/agent-eject-disable.test.ts +66 -66
- package/dist/extensions/pi-subagents/test/unit/agent-frontmatter.test.ts +334 -248
- package/dist/extensions/pi-subagents/test/unit/agent-management.test.ts +52 -52
- package/dist/extensions/pi-subagents/test/unit/agent-memory.test.ts +26 -26
- package/dist/extensions/pi-subagents/test/unit/agent-overrides.test.ts +118 -99
- package/dist/extensions/pi-subagents/test/unit/agent-refinements.test.ts +160 -0
- package/dist/extensions/pi-subagents/test/unit/agent-selection.test.ts +9 -9
- package/dist/extensions/pi-subagents/test/unit/artifacts.test.ts +43 -1
- package/dist/extensions/pi-subagents/test/unit/async-execution.test.ts +36 -10
- package/dist/extensions/pi-subagents/test/unit/async-interrupt-action.test.ts +387 -30
- package/dist/extensions/pi-subagents/test/unit/async-permission-session.test.ts +9 -9
- package/dist/extensions/pi-subagents/test/unit/async-recovery-descriptor.test.ts +18 -3
- package/dist/extensions/pi-subagents/test/unit/async-resume.test.ts +99 -40
- package/dist/extensions/pi-subagents/test/unit/background-work.test.ts +5 -3
- package/dist/extensions/pi-subagents/test/unit/builtin-agent-documentation.test.ts +7 -7
- package/dist/extensions/pi-subagents/test/unit/capability-ceiling-agent-allowlist.test.ts +19 -19
- package/dist/extensions/pi-subagents/test/unit/chain-append.test.ts +94 -23
- package/dist/extensions/pi-subagents/test/unit/chain-root-attachment.test.ts +9 -9
- package/dist/extensions/pi-subagents/test/unit/chain-serializer.test.ts +20 -20
- package/dist/extensions/pi-subagents/test/unit/child-transcript.test.ts +9 -9
- package/dist/extensions/pi-subagents/test/unit/compaction-resume.test.ts +35 -5
- package/dist/extensions/pi-subagents/test/unit/completion-dedupe.test.ts +2 -2
- package/dist/extensions/pi-subagents/test/unit/completion-guard.test.ts +70 -52
- package/dist/extensions/pi-subagents/test/unit/completion-replay.test.ts +187 -0
- package/dist/extensions/pi-subagents/test/unit/control-channel.test.ts +125 -71
- package/dist/extensions/pi-subagents/test/unit/control-notices.test.ts +18 -3
- package/dist/extensions/pi-subagents/test/unit/default-extensions.test.ts +12 -12
- package/dist/extensions/pi-subagents/test/unit/delegation-api.test.ts +17 -23
- package/dist/extensions/pi-subagents/test/unit/doctor.test.ts +30 -2
- package/dist/extensions/pi-subagents/test/unit/dynamic-fanout.test.ts +25 -25
- package/dist/extensions/pi-subagents/test/unit/extra-agent-dirs.test.ts +3 -3
- package/dist/extensions/pi-subagents/test/unit/file-coalescer.test.ts +15 -0
- package/dist/extensions/pi-subagents/test/unit/fleet-status.test.ts +91 -47
- package/dist/extensions/pi-subagents/test/unit/fleet.test.ts +468 -38
- package/dist/extensions/pi-subagents/test/unit/foreground-control.test.ts +14 -4
- package/dist/extensions/pi-subagents/test/unit/foreground-tool-call-compaction.test.ts +37 -0
- package/dist/extensions/pi-subagents/test/unit/herdr-inspector-bootstrap.test.ts +69 -0
- package/dist/extensions/pi-subagents/test/unit/herdr-inspector.test.ts +79 -2
- package/dist/extensions/pi-subagents/test/unit/herdr-status-bridge.test.ts +102 -49
- package/dist/extensions/pi-subagents/test/unit/index-child-registration.test.ts +98 -32
- package/dist/extensions/pi-subagents/test/unit/intercom-bridge.test.ts +7 -6
- package/dist/extensions/pi-subagents/test/unit/llm-intent-arbiter.test.ts +171 -0
- package/dist/extensions/pi-subagents/test/unit/mission-goal-driver.test.ts +116 -0
- package/dist/extensions/pi-subagents/test/unit/mission-lifecycle.test.ts +81 -7
- package/dist/extensions/pi-subagents/test/unit/mission-store.test.ts +289 -13
- package/dist/extensions/pi-subagents/test/unit/model-fallback.test.ts +42 -1
- package/dist/extensions/pi-subagents/test/unit/model-scope-settings.test.ts +2 -2
- package/dist/extensions/pi-subagents/test/unit/model-scope.test.ts +11 -2
- package/dist/extensions/pi-subagents/test/unit/native-supervisor-channel.test.ts +84 -10
- package/dist/extensions/pi-subagents/test/unit/nested-control.test.ts +122 -8
- package/dist/extensions/pi-subagents/test/unit/nested-events.test.ts +8 -8
- package/dist/extensions/pi-subagents/test/unit/notify.test.ts +24 -24
- package/dist/extensions/pi-subagents/test/unit/owned-process-tree.test.ts +69 -0
- package/dist/extensions/pi-subagents/test/unit/package-manifest.test.ts +16 -2
- package/dist/extensions/pi-subagents/test/unit/parallel-handoff.test.ts +7 -7
- package/dist/extensions/pi-subagents/test/unit/parallel-utils.test.ts +10 -10
- package/dist/extensions/pi-subagents/test/unit/path-handling.test.ts +3 -3
- package/dist/extensions/pi-subagents/test/unit/path-resolution.test.ts +26 -17
- package/dist/extensions/pi-subagents/test/unit/pi-args-permission-system.test.ts +405 -0
- package/dist/extensions/pi-subagents/test/unit/pi-args.test.ts +440 -92
- package/dist/extensions/pi-subagents/test/unit/pi-coding-agent-dir.test.ts +24 -8
- package/dist/extensions/pi-subagents/test/unit/pi-spawn.test.ts +6 -6
- package/dist/extensions/pi-subagents/test/unit/preflight.test.ts +43 -43
- package/dist/extensions/pi-subagents/test/unit/proactive-skills.test.ts +13 -13
- package/dist/extensions/pi-subagents/test/unit/process-terminal.test.ts +59 -6
- package/dist/extensions/pi-subagents/test/unit/profiles.test.ts +19 -19
- package/dist/extensions/pi-subagents/test/unit/project-panes-public-api.test.ts +243 -0
- package/dist/extensions/pi-subagents/test/unit/prompt-template-bridge.test.ts +68 -168
- package/dist/extensions/pi-subagents/test/unit/prompt-workflows.test.ts +58 -15
- package/dist/extensions/pi-subagents/test/unit/public-execution.test.ts +51 -0
- package/dist/extensions/pi-subagents/test/unit/reads-resolution.test.ts +66 -0
- package/dist/extensions/pi-subagents/test/unit/render-helpers.test.ts +47 -28
- package/dist/extensions/pi-subagents/test/unit/result-intercom.test.ts +12 -12
- package/dist/extensions/pi-subagents/test/unit/retained-children.test.ts +57 -0
- package/dist/extensions/pi-subagents/test/unit/rpc.test.ts +111 -31
- package/dist/extensions/pi-subagents/test/unit/run-fanout-budget.test.ts +121 -0
- package/dist/extensions/pi-subagents/test/unit/run-id-resolver.test.ts +1 -1
- package/dist/extensions/pi-subagents/test/unit/run-status.test.ts +65 -50
- package/dist/extensions/pi-subagents/test/unit/scheduled-runs.test.ts +69 -28
- package/dist/extensions/pi-subagents/test/unit/scheduled-store-root.test.ts +67 -0
- package/dist/extensions/pi-subagents/test/unit/schemas.test.ts +60 -44
- package/dist/extensions/pi-subagents/test/unit/scripted-workflow.test.ts +424 -49
- package/dist/extensions/pi-subagents/test/unit/single-output.test.ts +28 -0
- package/dist/extensions/pi-subagents/test/unit/skills-fallback.test.ts +23 -1
- package/dist/extensions/pi-subagents/test/unit/slash-bridge.test.ts +32 -5
- package/dist/extensions/pi-subagents/test/unit/stale-run-reconciler.test.ts +13 -13
- package/dist/extensions/pi-subagents/test/unit/steering-action.test.ts +130 -92
- package/dist/extensions/pi-subagents/test/unit/steering.test.ts +2 -2
- package/dist/extensions/pi-subagents/test/unit/subagent-action-recovery.test.ts +85 -0
- package/dist/extensions/pi-subagents/test/unit/subagent-control.test.ts +35 -35
- package/dist/extensions/pi-subagents/test/unit/subagent-guide.test.ts +24 -0
- package/dist/extensions/pi-subagents/test/unit/subagent-prompt-runtime.test.ts +312 -22
- package/dist/extensions/pi-subagents/test/unit/subagent-wait.test.ts +150 -15
- package/dist/extensions/pi-subagents/test/unit/task-intent.test.ts +65 -26
- package/dist/extensions/pi-subagents/test/unit/timeout-defaults.test.ts +138 -0
- package/dist/extensions/pi-subagents/test/unit/tool-description.test.ts +76 -25
- package/dist/extensions/pi-subagents/test/unit/turn-budget.test.ts +5 -5
- package/dist/extensions/pi-subagents/test/unit/wait-subscriptions.test.ts +55 -6
- package/dist/extensions/pi-subagents/test/unit/watchdog-child-status.test.ts +13 -13
- package/dist/extensions/pi-subagents/test/unit/watchdog-lsp-diagnostics.test.ts +1 -1
- package/dist/extensions/pi-subagents/test/unit/watchdog-runtime.test.ts +1 -1
- package/dist/extensions/pi-subagents/test/unit/watchdog-settings.test.ts +8 -8
- package/dist/extensions/pi-subagents/test/unit/widget-nested-render.test.ts +6 -6
- package/dist/extensions/pi-subagents/test/unit/workflow-chat-progress.test.ts +138 -11
- package/dist/extensions/pi-subagents/test/unit/workflow-graph.test.ts +8 -8
- package/dist/extensions/pi-subagents/test/unit/workflow-launch-params.test.ts +113 -0
- package/dist/extensions/pi-subagents/test/unit/worktree.test.ts +68 -7
- package/dist/extensions/pi-subagents/test/unit/writer-budget-guidance.test.ts +6 -6
- package/dist/extensions/workflow/extension.ts +21 -19
- package/dist/extensions/workflow/modes.ts +65 -0
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.js +48 -1
- package/dist/skills/pi-subagents/SKILL.md +20 -15
- package/dist/skills/pi-subagents/references/constraints-and-recipes.md +77 -83
- package/dist/skills/pi-subagents/references/execution-controls.md +215 -106
- package/dist/skills/pi-subagents/references/management-authoring-rpc.md +29 -9
- package/dist/skills/pi-subagents/references/prompting-and-roles.md +58 -43
- package/docs/plans/workflow-autoloop-reference.md +192 -0
- package/docs/plans/workflow-subagent-consolidation-planb.md +374 -0
- package/docs/plans/workflow-subagent-scripted-merge.md +406 -0
- package/docs/quickstart.md +27 -43
- package/docs/settings.md +4 -0
- package/docs/usage.md +1 -0
- package/package.json +2 -1
- package/dist/extensions/workflow/adapter.ts +0 -949
- package/dist/extensions/workflow/modes/loop.ts +0 -74
- package/dist/extensions/workflow/modes/prototype.ts +0 -170
- package/dist/extensions/workflow/modes/quicktype.ts +0 -150
- package/dist/extensions/workflow/modes/task.ts +0 -105
- package/dist/extensions/workflow/run-state.ts +0 -124
- package/dist/extensions/workflow/state-machine.ts +0 -484
- package/dist/extensions/workflow/validators.ts +0 -42
|
@@ -232,7 +232,7 @@ describe("detectSubagentError", { skip: !available ? "utils not importable" : un
|
|
|
232
232
|
// ---- Real-world regression test ----
|
|
233
233
|
|
|
234
234
|
it("real-world: 19-read review run with trailing EISDIR", () => {
|
|
235
|
-
// Simulate the actual _impl-
|
|
235
|
+
// Simulate the actual _impl-reviewer run that produced a false positive
|
|
236
236
|
const readResults = Array.from({ length: 18 }, (_, i) =>
|
|
237
237
|
toolResult("read", `contents of file ${i + 1}`),
|
|
238
238
|
);
|
|
@@ -4,6 +4,7 @@ import * as fs from "node:fs";
|
|
|
4
4
|
import * as os from "node:os";
|
|
5
5
|
import * as path from "node:path";
|
|
6
6
|
import { afterEach, describe, it } from "node:test";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
7
8
|
|
|
8
9
|
const tempDirs: string[] = [];
|
|
9
10
|
afterEach(() => {
|
|
@@ -12,7 +13,7 @@ afterEach(() => {
|
|
|
12
13
|
|
|
13
14
|
function runProcess(command: string, args: string[], cwd: string): Promise<number | null> {
|
|
14
15
|
return new Promise((resolve, reject) => {
|
|
15
|
-
const child = spawn(command, args, { cwd, stdio: "inherit", shell: false
|
|
16
|
+
const child = spawn(command, args, { cwd, stdio: "inherit", shell: false });
|
|
16
17
|
child.once("error", reject);
|
|
17
18
|
child.once("close", resolve);
|
|
18
19
|
});
|
|
@@ -45,7 +46,8 @@ describe("external CLI async lifecycle", () => {
|
|
|
45
46
|
resultMode: "single",
|
|
46
47
|
}));
|
|
47
48
|
const repo = path.resolve(import.meta.dirname, "../..");
|
|
48
|
-
const
|
|
49
|
+
const jitiCli = path.join(path.dirname(fileURLToPath(import.meta.resolve("jiti/package.json"))), "lib", "jiti-cli.mjs");
|
|
50
|
+
const exitCode = await runProcess(process.execPath, [jitiCli, path.join(repo, "src/runs/background/subagent-runner.ts"), configPath], repo);
|
|
49
51
|
assert.equal(exitCode, 0);
|
|
50
52
|
const status = JSON.parse(fs.readFileSync(path.join(asyncDir, "status.json"), "utf-8"));
|
|
51
53
|
assert.equal(status.state, "complete");
|
|
@@ -5,6 +5,7 @@ import * as path from "node:path";
|
|
|
5
5
|
import type { MockPi } from "../support/helpers.ts";
|
|
6
6
|
import { createEventBus, createMockPi, createTempDir, events, removeTempDir, tryImport } from "../support/helpers.ts";
|
|
7
7
|
import { discoverAgents } from "../../src/agents/agents.ts";
|
|
8
|
+
import { ACTIVE_ASYNC_CAPACITY_DIR, acquireActiveAsyncCapacity, activeAsyncCapacitySessionKey } from "../../src/runs/background/active-async-capacity.ts";
|
|
8
9
|
import { DEFAULT_FORK_PREAMBLE, INTERCOM_DETACH_REQUEST_EVENT, SUBAGENT_ASYNC_STARTED_EVENT } from "../../src/shared/types.ts";
|
|
9
10
|
|
|
10
11
|
interface ExecutorModule {
|
|
@@ -335,14 +336,14 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
335
336
|
const { manager, openedPaths, branchedLeafIds } = makeForkingSessionManagerRecorder({ sessionFile: parentSessionFile, leafId: "leaf-current" });
|
|
336
337
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
337
338
|
agents: [
|
|
338
|
-
{ name: "
|
|
339
|
+
{ name: "worker", description: "Worker", defaultContext: "fork" },
|
|
339
340
|
],
|
|
340
341
|
projectAgentsDir: null,
|
|
341
342
|
}));
|
|
342
343
|
|
|
343
344
|
const result = await executor.execute(
|
|
344
345
|
"id",
|
|
345
|
-
{ agent: "
|
|
346
|
+
{ agent: "worker", task: "test" },
|
|
346
347
|
new AbortController().signal,
|
|
347
348
|
undefined,
|
|
348
349
|
makeCtx(manager),
|
|
@@ -376,14 +377,14 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
376
377
|
};
|
|
377
378
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
378
379
|
agents: [
|
|
379
|
-
{ name: "
|
|
380
|
+
{ name: "worker", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
|
|
380
381
|
],
|
|
381
382
|
projectAgentsDir: null,
|
|
382
383
|
}));
|
|
383
384
|
|
|
384
385
|
const result = await executor.execute(
|
|
385
386
|
"id",
|
|
386
|
-
{ agent: "
|
|
387
|
+
{ agent: "worker", task: "test" },
|
|
387
388
|
new AbortController().signal,
|
|
388
389
|
undefined,
|
|
389
390
|
makeCtx(manager),
|
|
@@ -433,7 +434,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
433
434
|
};
|
|
434
435
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
435
436
|
agents: [
|
|
436
|
-
{ name: "
|
|
437
|
+
{ name: "worker", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini:high", fallbackModels: ["anthropic/claude-sonnet-4:low"], thinking: "high" },
|
|
437
438
|
],
|
|
438
439
|
projectAgentsDir: null,
|
|
439
440
|
}));
|
|
@@ -449,7 +450,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
449
450
|
};
|
|
450
451
|
const result = await executor.execute(
|
|
451
452
|
"id",
|
|
452
|
-
{ agent: "
|
|
453
|
+
{ agent: "worker", task: "test" },
|
|
453
454
|
new AbortController().signal,
|
|
454
455
|
undefined,
|
|
455
456
|
ctx,
|
|
@@ -482,7 +483,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
482
483
|
};
|
|
483
484
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
484
485
|
agents: [
|
|
485
|
-
{ name: "
|
|
486
|
+
{ name: "worker", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini:high", thinking: "high" },
|
|
486
487
|
],
|
|
487
488
|
projectAgentsDir: null,
|
|
488
489
|
}));
|
|
@@ -495,7 +496,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
495
496
|
};
|
|
496
497
|
const result = await executor.execute(
|
|
497
498
|
"id",
|
|
498
|
-
{ agent: "
|
|
499
|
+
{ agent: "worker", task: "test" },
|
|
499
500
|
new AbortController().signal,
|
|
500
501
|
undefined,
|
|
501
502
|
ctx,
|
|
@@ -516,7 +517,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
516
517
|
const manager = makeSignedThinkingSessionManager(childSessionFile);
|
|
517
518
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
518
519
|
agents: [
|
|
519
|
-
{ name: "
|
|
520
|
+
{ name: "worker", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini:high", thinking: "high" },
|
|
520
521
|
],
|
|
521
522
|
projectAgentsDir: null,
|
|
522
523
|
modelScope: { enforce: true, allow: ["anthropic/*"] },
|
|
@@ -533,7 +534,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
533
534
|
try {
|
|
534
535
|
const result = await executor.execute(
|
|
535
536
|
"id",
|
|
536
|
-
{ agent: "
|
|
537
|
+
{ agent: "worker", task: "test" },
|
|
537
538
|
new AbortController().signal,
|
|
538
539
|
undefined,
|
|
539
540
|
ctx,
|
|
@@ -554,7 +555,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
554
555
|
const manager = makeSignedThinkingSessionManager(childSessionFile);
|
|
555
556
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
556
557
|
agents: [
|
|
557
|
-
{ name: "
|
|
558
|
+
{ name: "worker", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini", thinking: "high" },
|
|
558
559
|
],
|
|
559
560
|
projectAgentsDir: null,
|
|
560
561
|
modelScope: { enforce: true, allow: ["anthropic/*"] },
|
|
@@ -572,7 +573,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
572
573
|
for (const model of ["", "inherit"]) {
|
|
573
574
|
const result = await executor.execute(
|
|
574
575
|
"id",
|
|
575
|
-
{ agent: "
|
|
576
|
+
{ agent: "worker", task: "test", model },
|
|
576
577
|
new AbortController().signal,
|
|
577
578
|
undefined,
|
|
578
579
|
ctx,
|
|
@@ -612,7 +613,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
612
613
|
};
|
|
613
614
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
614
615
|
agents: [
|
|
615
|
-
{ name: "
|
|
616
|
+
{ name: "worker", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
|
|
616
617
|
],
|
|
617
618
|
projectAgentsDir: null,
|
|
618
619
|
}));
|
|
@@ -625,7 +626,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
625
626
|
};
|
|
626
627
|
const result = await executor.execute(
|
|
627
628
|
"id",
|
|
628
|
-
{ agent: "
|
|
629
|
+
{ agent: "worker", task: "test" },
|
|
629
630
|
new AbortController().signal,
|
|
630
631
|
undefined,
|
|
631
632
|
ctx,
|
|
@@ -633,7 +634,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
633
634
|
|
|
634
635
|
assert.equal(result.isError, undefined);
|
|
635
636
|
const text = result.content.filter((block) => block.type === "text").map((block) => block.text).join("\n");
|
|
636
|
-
assert.equal(text.includes("fork context forced thinking off for
|
|
637
|
+
assert.equal(text.includes("fork context forced thinking off for worker (child 0)"), true);
|
|
637
638
|
});
|
|
638
639
|
|
|
639
640
|
it("resolves inherit before classifying a forked child", async () => {
|
|
@@ -641,7 +642,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
641
642
|
const manager = makeSignedThinkingSessionManager(childSessionFile);
|
|
642
643
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
643
644
|
agents: [
|
|
644
|
-
{ name: "
|
|
645
|
+
{ name: "worker", description: "Worker", defaultContext: "fork", thinking: "high" },
|
|
645
646
|
],
|
|
646
647
|
projectAgentsDir: null,
|
|
647
648
|
}));
|
|
@@ -655,7 +656,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
655
656
|
|
|
656
657
|
const result = await executor.execute(
|
|
657
658
|
"id",
|
|
658
|
-
{ agent: "
|
|
659
|
+
{ agent: "worker", task: "test", model: "inherit" },
|
|
659
660
|
new AbortController().signal,
|
|
660
661
|
undefined,
|
|
661
662
|
ctx,
|
|
@@ -671,7 +672,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
671
672
|
const manager = makeSignedThinkingSessionManager(childSessionFile);
|
|
672
673
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
673
674
|
agents: [
|
|
674
|
-
{ name: "
|
|
675
|
+
{ name: "worker", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5", thinking: "high" },
|
|
675
676
|
],
|
|
676
677
|
projectAgentsDir: null,
|
|
677
678
|
}));
|
|
@@ -688,7 +689,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
688
689
|
|
|
689
690
|
const result = await executor.execute(
|
|
690
691
|
"id",
|
|
691
|
-
{ tasks: [{ agent: "
|
|
692
|
+
{ tasks: [{ agent: "worker", task: "test", model: "" }] },
|
|
692
693
|
new AbortController().signal,
|
|
693
694
|
undefined,
|
|
694
695
|
ctx,
|
|
@@ -706,7 +707,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
706
707
|
const manager = makeSignedThinkingSessionManager(childSessionFile);
|
|
707
708
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
708
709
|
agents: [
|
|
709
|
-
{ name: "
|
|
710
|
+
{ name: "worker", description: "Worker", defaultContext: "fork", model: "openai/gpt-5-mini", thinking: "high" },
|
|
710
711
|
],
|
|
711
712
|
projectAgentsDir: null,
|
|
712
713
|
}));
|
|
@@ -719,7 +720,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
719
720
|
|
|
720
721
|
const result = await executor.execute(
|
|
721
722
|
"id",
|
|
722
|
-
{ tasks: [{ agent: "
|
|
723
|
+
{ tasks: [{ agent: "worker", task: "test", model: "" }] },
|
|
723
724
|
new AbortController().signal,
|
|
724
725
|
undefined,
|
|
725
726
|
ctx,
|
|
@@ -737,7 +738,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
737
738
|
const manager = makeSignedThinkingSessionManager(childSessionFile);
|
|
738
739
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
739
740
|
agents: [
|
|
740
|
-
{ name: "
|
|
741
|
+
{ name: "worker", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
|
|
741
742
|
],
|
|
742
743
|
projectAgentsDir: null,
|
|
743
744
|
}));
|
|
@@ -763,7 +764,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
763
764
|
|
|
764
765
|
const result = await executor.execute(
|
|
765
766
|
"id",
|
|
766
|
-
{ agent: "
|
|
767
|
+
{ agent: "worker", task: "test", clarify: true },
|
|
767
768
|
new AbortController().signal,
|
|
768
769
|
undefined,
|
|
769
770
|
ctx,
|
|
@@ -783,7 +784,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
783
784
|
const manager = makeSignedThinkingSessionManager(childSessionFile);
|
|
784
785
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
785
786
|
agents: [
|
|
786
|
-
{ name: "
|
|
787
|
+
{ name: "worker", description: "Worker", defaultContext: "fork", model: "anthropic/claude-sonnet-4-5:high", thinking: "high" },
|
|
787
788
|
],
|
|
788
789
|
projectAgentsDir: null,
|
|
789
790
|
}));
|
|
@@ -796,7 +797,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
796
797
|
|
|
797
798
|
const result = await executor.execute(
|
|
798
799
|
"id",
|
|
799
|
-
{ agent: "
|
|
800
|
+
{ agent: "worker", task: "test" },
|
|
800
801
|
new AbortController().signal,
|
|
801
802
|
undefined,
|
|
802
803
|
ctx,
|
|
@@ -804,7 +805,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
804
805
|
|
|
805
806
|
assert.equal(result.isError, true);
|
|
806
807
|
const text = result.content.filter((block) => block.text).map((block) => block.text).join("\n");
|
|
807
|
-
assert.equal(text.includes("fork context forced thinking off for
|
|
808
|
+
assert.equal(text.includes("fork context forced thinking off for worker (child 0)"), true);
|
|
808
809
|
});
|
|
809
810
|
|
|
810
811
|
it("keeps default-fork context on run-path errors", async () => {
|
|
@@ -812,7 +813,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
812
813
|
const { manager } = makeForkingSessionManagerRecorder({ sessionFile: parentSessionFile, leafId: "leaf-current" });
|
|
813
814
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
814
815
|
agents: [
|
|
815
|
-
{ name: "
|
|
816
|
+
{ name: "worker", description: "Worker", defaultContext: "fork" },
|
|
816
817
|
],
|
|
817
818
|
projectAgentsDir: null,
|
|
818
819
|
}));
|
|
@@ -824,7 +825,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
824
825
|
|
|
825
826
|
const result = await executor.execute(
|
|
826
827
|
"id",
|
|
827
|
-
{ agent: "
|
|
828
|
+
{ agent: "worker" },
|
|
828
829
|
new AbortController().signal,
|
|
829
830
|
undefined,
|
|
830
831
|
ctx,
|
|
@@ -840,14 +841,14 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
840
841
|
const { manager, openedPaths, branchedLeafIds } = makeForkingSessionManagerRecorder({ sessionFile: parentSessionFile, leafId: "leaf-current" });
|
|
841
842
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
842
843
|
agents: [
|
|
843
|
-
{ name: "
|
|
844
|
+
{ name: "oracle", description: "Oracle", defaultContext: "fork" },
|
|
844
845
|
],
|
|
845
846
|
projectAgentsDir: null,
|
|
846
847
|
}));
|
|
847
848
|
|
|
848
849
|
const result = await executor.execute(
|
|
849
850
|
"id",
|
|
850
|
-
{ agent: "
|
|
851
|
+
{ agent: "oracle", task: "test", context: "fresh" },
|
|
851
852
|
new AbortController().signal,
|
|
852
853
|
undefined,
|
|
853
854
|
makeCtx(manager),
|
|
@@ -866,7 +867,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
866
867
|
const { manager, openedPaths, branchedLeafIds } = makeForkingSessionManagerRecorder({ sessionFile: parentSessionFile, leafId: "leaf-current" });
|
|
867
868
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
868
869
|
agents: [
|
|
869
|
-
{ name: "
|
|
870
|
+
{ name: "worker", description: "Worker", defaultContext: "fork" },
|
|
870
871
|
{ name: "second", description: "Second" },
|
|
871
872
|
],
|
|
872
873
|
projectAgentsDir: null,
|
|
@@ -874,7 +875,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
874
875
|
|
|
875
876
|
const result = await executor.execute(
|
|
876
877
|
"id",
|
|
877
|
-
{ tasks: [{ agent: "
|
|
878
|
+
{ tasks: [{ agent: "worker", task: "one" }, { agent: "second", task: "two" }] },
|
|
878
879
|
new AbortController().signal,
|
|
879
880
|
undefined,
|
|
880
881
|
makeCtx(manager),
|
|
@@ -898,7 +899,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
898
899
|
const { manager, openedPaths } = makeForkingSessionManagerRecorder({ sessionFile: parentSessionFile, leafId: "leaf-current" });
|
|
899
900
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
900
901
|
agents: [
|
|
901
|
-
{ name: "
|
|
902
|
+
{ name: "worker", description: "Worker", defaultContext: "fork" },
|
|
902
903
|
{ name: "second", description: "Second" },
|
|
903
904
|
],
|
|
904
905
|
projectAgentsDir: null,
|
|
@@ -906,7 +907,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
906
907
|
|
|
907
908
|
const result = await executor.execute(
|
|
908
909
|
"id",
|
|
909
|
-
{ tasks: [{ agent: "
|
|
910
|
+
{ tasks: [{ agent: "worker", task: "one" }, { agent: "second", task: "two" }], context: "fresh" },
|
|
910
911
|
new AbortController().signal,
|
|
911
912
|
undefined,
|
|
912
913
|
makeCtx(manager),
|
|
@@ -924,14 +925,14 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
924
925
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
925
926
|
agents: [
|
|
926
927
|
{ name: "echo", description: "Echo" },
|
|
927
|
-
{ name: "
|
|
928
|
+
{ name: "worker", description: "Worker", defaultContext: "fork" },
|
|
928
929
|
],
|
|
929
930
|
projectAgentsDir: null,
|
|
930
931
|
}));
|
|
931
932
|
|
|
932
933
|
const result = await executor.execute(
|
|
933
934
|
"id",
|
|
934
|
-
{ chain: [{ agent: "echo", task: "scan" }, { agent: "
|
|
935
|
+
{ chain: [{ agent: "echo", task: "scan" }, { agent: "worker", task: "write" }], clarify: false },
|
|
935
936
|
new AbortController().signal,
|
|
936
937
|
undefined,
|
|
937
938
|
makeCtx(manager),
|
|
@@ -965,15 +966,15 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
965
966
|
};
|
|
966
967
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
967
968
|
agents: [
|
|
968
|
-
{ name: "
|
|
969
|
-
{ name: "
|
|
969
|
+
{ name: "scout", description: "Scout", defaultContext: "fresh" },
|
|
970
|
+
{ name: "worker", description: "Worker", defaultContext: "fork" },
|
|
970
971
|
],
|
|
971
972
|
projectAgentsDir: null,
|
|
972
973
|
}));
|
|
973
974
|
|
|
974
975
|
const result = await executor.execute(
|
|
975
976
|
"id",
|
|
976
|
-
{ tasks: [{ agent: "
|
|
977
|
+
{ tasks: [{ agent: "scout", task: "scan" }, { agent: "worker", task: "write" }] },
|
|
977
978
|
new AbortController().signal,
|
|
978
979
|
undefined,
|
|
979
980
|
makeCtx(manager),
|
|
@@ -1000,8 +1001,8 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1000
1001
|
};
|
|
1001
1002
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
1002
1003
|
agents: [
|
|
1003
|
-
{ name: "
|
|
1004
|
-
{ name: "
|
|
1004
|
+
{ name: "scout", description: "Scout", defaultContext: "fresh" },
|
|
1005
|
+
{ name: "worker", description: "Worker", defaultContext: "fork" },
|
|
1005
1006
|
],
|
|
1006
1007
|
projectAgentsDir: null,
|
|
1007
1008
|
}));
|
|
@@ -1010,11 +1011,11 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1010
1011
|
"id",
|
|
1011
1012
|
{
|
|
1012
1013
|
chain: [
|
|
1013
|
-
{ agent: "
|
|
1014
|
-
{ agent: "
|
|
1014
|
+
{ agent: "scout", task: "scan" },
|
|
1015
|
+
{ agent: "worker", task: "write" },
|
|
1015
1016
|
{
|
|
1016
1017
|
expand: { from: { output: "items", path: "$" } },
|
|
1017
|
-
parallel: { agent: "
|
|
1018
|
+
parallel: { agent: "scout", task: "inspect item" },
|
|
1018
1019
|
collect: { as: "inspections" },
|
|
1019
1020
|
},
|
|
1020
1021
|
],
|
|
@@ -1041,7 +1042,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1041
1042
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
1042
1043
|
agents: [
|
|
1043
1044
|
{ name: "producer", description: "Producer", defaultContext: "fresh" },
|
|
1044
|
-
{ name: "
|
|
1045
|
+
{ name: "worker", description: "Worker", defaultContext: "fork" },
|
|
1045
1046
|
],
|
|
1046
1047
|
projectAgentsDir: null,
|
|
1047
1048
|
}));
|
|
@@ -1053,10 +1054,10 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1053
1054
|
{ agent: "producer", task: "produce", as: "items", outputSchema: { type: "object" } },
|
|
1054
1055
|
{
|
|
1055
1056
|
expand: { from: { output: "items", path: "/items" }, item: "item", key: "/id", maxItems: 3 },
|
|
1056
|
-
parallel: { agent: "
|
|
1057
|
+
parallel: { agent: "worker", task: "inspect {item.id}" },
|
|
1057
1058
|
collect: { as: "inspections" },
|
|
1058
1059
|
},
|
|
1059
|
-
{ agent: "
|
|
1060
|
+
{ agent: "worker", task: "final" },
|
|
1060
1061
|
],
|
|
1061
1062
|
clarify: false,
|
|
1062
1063
|
},
|
|
@@ -1074,13 +1075,13 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1074
1075
|
it("reports unknown top-level parallel agents before default-fork preconditions", async () => {
|
|
1075
1076
|
const { manager } = makeSessionManagerRecorder({ sessionFile: undefined, leafId: "leaf-current" });
|
|
1076
1077
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
1077
|
-
agents: [{ name: "
|
|
1078
|
+
agents: [{ name: "worker", description: "Worker", defaultContext: "fork" }],
|
|
1078
1079
|
projectAgentsDir: null,
|
|
1079
1080
|
}));
|
|
1080
1081
|
|
|
1081
1082
|
const result = await executor.execute(
|
|
1082
1083
|
"id",
|
|
1083
|
-
{ tasks: [{ agent: "
|
|
1084
|
+
{ tasks: [{ agent: "worker", task: "one" }, { agent: "missing", task: "two" }] },
|
|
1084
1085
|
new AbortController().signal,
|
|
1085
1086
|
undefined,
|
|
1086
1087
|
makeCtx(manager),
|
|
@@ -1446,7 +1447,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1446
1447
|
|
|
1447
1448
|
it("keeps inherited model-scope warnings non-fatal in async parallel conversion", { skip: !asyncAvailable ? "jiti not available" : undefined }, async () => {
|
|
1448
1449
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
1449
|
-
agents: [{ name: "
|
|
1450
|
+
agents: [{ name: "worker", description: "Worker", model: "openai/gpt-5-mini" }],
|
|
1450
1451
|
projectAgentsDir: null,
|
|
1451
1452
|
modelScope: { enforce: true, allow: ["anthropic/*"] },
|
|
1452
1453
|
}));
|
|
@@ -1462,7 +1463,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1462
1463
|
try {
|
|
1463
1464
|
const result = await executor.execute(
|
|
1464
1465
|
"id",
|
|
1465
|
-
{ tasks: [{ agent: "
|
|
1466
|
+
{ tasks: [{ agent: "worker", task: "test" }], async: true },
|
|
1466
1467
|
new AbortController().signal,
|
|
1467
1468
|
undefined,
|
|
1468
1469
|
ctx,
|
|
@@ -1478,7 +1479,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1478
1479
|
|
|
1479
1480
|
it("keeps inherited model-scope warnings non-fatal after Clarify switches parallel work to background", { skip: !asyncAvailable ? "jiti not available" : undefined }, async () => {
|
|
1480
1481
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
1481
|
-
agents: [{ name: "
|
|
1482
|
+
agents: [{ name: "worker", description: "Worker", model: "openai/gpt-5-mini" }],
|
|
1482
1483
|
projectAgentsDir: null,
|
|
1483
1484
|
modelScope: { enforce: true, allow: ["anthropic/*"] },
|
|
1484
1485
|
}));
|
|
@@ -1503,7 +1504,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1503
1504
|
try {
|
|
1504
1505
|
const result = await executor.execute(
|
|
1505
1506
|
"id",
|
|
1506
|
-
{ tasks: [{ agent: "
|
|
1507
|
+
{ tasks: [{ agent: "worker", task: "test" }], clarify: true },
|
|
1507
1508
|
new AbortController().signal,
|
|
1508
1509
|
undefined,
|
|
1509
1510
|
ctx,
|
|
@@ -1523,6 +1524,7 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1523
1524
|
const rawParallelChainGoal = "Parallel chain first child raw goal";
|
|
1524
1525
|
const paddedWorkflowGoal = " preserve this workflow padding ";
|
|
1525
1526
|
const literalPreambleGoal = `${DEFAULT_FORK_PREAMBLE}\n\nTask:\nliteral fresh-context text`;
|
|
1527
|
+
const redactedGoal = "[prompt redacted]";
|
|
1526
1528
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
1527
1529
|
agents: [
|
|
1528
1530
|
{ name: "echo", description: "Echo", defaultContext: "fork" },
|
|
@@ -1576,13 +1578,91 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1576
1578
|
assert.ok(result.details?.asyncId, `${testCase.name}: expected an async id`);
|
|
1577
1579
|
const event = started.find((entry) => entry.id === result.details?.asyncId);
|
|
1578
1580
|
assert.ok(event, `${testCase.name}: missing async-started event for ${result.details?.asyncId}`);
|
|
1579
|
-
assert.equal(event.goal,
|
|
1581
|
+
assert.equal(event.goal, redactedGoal, testCase.name);
|
|
1580
1582
|
if (!("allowsLiteralPreamble" in testCase)) {
|
|
1581
1583
|
assert.doesNotMatch(event.goal ?? "", /delegated subagent running from a fork/, testCase.name);
|
|
1584
|
+
assert.notEqual(event.goal, testCase.goal, testCase.name);
|
|
1582
1585
|
}
|
|
1583
1586
|
}
|
|
1584
1587
|
});
|
|
1585
1588
|
|
|
1589
|
+
it("rejects Clarify background switches over the active async capacity cap", { skip: !asyncAvailable ? "jiti not available" : undefined }, async () => {
|
|
1590
|
+
const previousDepth = process.env.SELESAI_SUBAGENT_DEPTH;
|
|
1591
|
+
process.env.SELESAI_SUBAGENT_DEPTH = "0";
|
|
1592
|
+
try {
|
|
1593
|
+
for (const testCase of [
|
|
1594
|
+
{
|
|
1595
|
+
name: "single",
|
|
1596
|
+
mode: "single",
|
|
1597
|
+
params: { agent: "echo", task: "Original single", async: true, clarify: true },
|
|
1598
|
+
templates: ["Edited single"],
|
|
1599
|
+
},
|
|
1600
|
+
{
|
|
1601
|
+
name: "parallel",
|
|
1602
|
+
mode: "parallel",
|
|
1603
|
+
params: { tasks: [{ agent: "echo", task: "Original parallel" }, { agent: "second", task: "Second child" }], async: true, clarify: true },
|
|
1604
|
+
templates: ["Edited parallel", "Second child"],
|
|
1605
|
+
},
|
|
1606
|
+
{
|
|
1607
|
+
name: "chain",
|
|
1608
|
+
mode: "chain",
|
|
1609
|
+
params: { chain: [{ agent: "echo", task: "Original chain" }], async: true, clarify: true },
|
|
1610
|
+
templates: ["Edited chain"],
|
|
1611
|
+
},
|
|
1612
|
+
] as const) {
|
|
1613
|
+
const sessionId = `session-clarify-cap-${testCase.name}-${Date.now()}`;
|
|
1614
|
+
const sessionCapacityDir = path.join(ACTIVE_ASYNC_CAPACITY_DIR, activeAsyncCapacitySessionKey(sessionId));
|
|
1615
|
+
fs.rmSync(sessionCapacityDir, { recursive: true, force: true });
|
|
1616
|
+
const held = acquireActiveAsyncCapacity({
|
|
1617
|
+
sessionId,
|
|
1618
|
+
limit: 1,
|
|
1619
|
+
runId: `held-${testCase.name}`,
|
|
1620
|
+
kind: "runner",
|
|
1621
|
+
asyncDir: path.join(tempDir, `held-${testCase.name}`),
|
|
1622
|
+
});
|
|
1623
|
+
held?.markStarted(`held-runner-${testCase.name}`);
|
|
1624
|
+
try {
|
|
1625
|
+
const executor = makeExecutorWithConfig({ maxActiveAsyncRunsPerSession: 1 });
|
|
1626
|
+
const manager = {
|
|
1627
|
+
...makeSessionManagerRecorder().manager,
|
|
1628
|
+
getSessionId: () => sessionId,
|
|
1629
|
+
};
|
|
1630
|
+
const ctx = {
|
|
1631
|
+
...makeCtx(manager),
|
|
1632
|
+
hasUI: true,
|
|
1633
|
+
ui: {
|
|
1634
|
+
custom: async () => ({
|
|
1635
|
+
confirmed: true,
|
|
1636
|
+
templates: testCase.templates,
|
|
1637
|
+
behaviorOverrides: testCase.templates.map(() => undefined),
|
|
1638
|
+
runInBackground: true,
|
|
1639
|
+
}),
|
|
1640
|
+
},
|
|
1641
|
+
};
|
|
1642
|
+
|
|
1643
|
+
const result = await executor.execute(
|
|
1644
|
+
`clarify-cap-${testCase.name}`,
|
|
1645
|
+
testCase.params,
|
|
1646
|
+
new AbortController().signal,
|
|
1647
|
+
undefined,
|
|
1648
|
+
ctx,
|
|
1649
|
+
);
|
|
1650
|
+
|
|
1651
|
+
assert.equal(result.isError, true, testCase.name);
|
|
1652
|
+
assert.equal(result.details?.mode, testCase.mode, testCase.name);
|
|
1653
|
+
assert.equal(result.details?.asyncId, undefined, testCase.name);
|
|
1654
|
+
assert.match(result.content[0]?.text ?? "", /Active async run capacity exhausted: 1\/1 used/, testCase.name);
|
|
1655
|
+
assert.equal(mockPi.callCount(), 0, testCase.name);
|
|
1656
|
+
} finally {
|
|
1657
|
+
fs.rmSync(sessionCapacityDir, { recursive: true, force: true });
|
|
1658
|
+
}
|
|
1659
|
+
}
|
|
1660
|
+
} finally {
|
|
1661
|
+
if (previousDepth === undefined) delete process.env.SELESAI_SUBAGENT_DEPTH;
|
|
1662
|
+
else process.env.SELESAI_SUBAGENT_DEPTH = previousDepth;
|
|
1663
|
+
}
|
|
1664
|
+
});
|
|
1665
|
+
|
|
1586
1666
|
it("uses edited raw goals when clarification switches each mode to background", { skip: !asyncAvailable ? "jiti not available" : undefined }, async () => {
|
|
1587
1667
|
const executor = makeExecutorWithDiscoverAgents(() => ({
|
|
1588
1668
|
agents: [
|
|
@@ -1640,7 +1720,8 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1640
1720
|
assert.equal(result.isError, undefined, testCase.name);
|
|
1641
1721
|
assert.ok(result.details?.asyncId, `${testCase.name}: expected an async id`);
|
|
1642
1722
|
const event = started.find((entry) => entry.id === result.details?.asyncId);
|
|
1643
|
-
assert.equal(event?.goal,
|
|
1723
|
+
assert.equal(event?.goal, "[prompt redacted]", testCase.name);
|
|
1724
|
+
assert.notEqual(event?.goal, testCase.goal, testCase.name);
|
|
1644
1725
|
assert.doesNotMatch(event?.goal ?? "", /delegated subagent running from a fork/, testCase.name);
|
|
1645
1726
|
}
|
|
1646
1727
|
});
|
|
@@ -1863,14 +1944,14 @@ describe("fork context execution wiring", { skip: !available ? "subagent executo
|
|
|
1863
1944
|
process.env.USERPROFILE = tempHome;
|
|
1864
1945
|
const worktreeDir = path.join(tempDir, "worktree");
|
|
1865
1946
|
fs.mkdirSync(worktreeDir, { recursive: true });
|
|
1866
|
-
writeProjectOverride(tempDir, "
|
|
1867
|
-
writeProjectOverride(worktreeDir, "
|
|
1947
|
+
writeProjectOverride(tempDir, "reviewer", "openai/gpt-5-main");
|
|
1948
|
+
writeProjectOverride(worktreeDir, "reviewer", "openai/gpt-5-worktree");
|
|
1868
1949
|
const executor = makeExecutor();
|
|
1869
1950
|
|
|
1870
1951
|
try {
|
|
1871
1952
|
const result = await executor.execute(
|
|
1872
1953
|
"id",
|
|
1873
|
-
{ action: "get", agent: "
|
|
1954
|
+
{ action: "get", agent: "reviewer", cwd: "worktree" },
|
|
1874
1955
|
new AbortController().signal,
|
|
1875
1956
|
undefined,
|
|
1876
1957
|
makeCtx(makeSessionManagerRecorder().manager),
|