@emiliosp/pi-maestro 0.7.4 → 0.9.0
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/ADR.md +89 -0
- package/CHANGELOG.md +6 -0
- package/README.md +3 -2
- package/ROADMAP.md +115 -21
- package/agents/builder.md +2 -4
- package/docs/glossary.md +2 -1
- package/docs/workflow.md +25 -9
- package/node_modules/pi-subagents/CHANGELOG.md +140 -0
- package/node_modules/pi-subagents/README.md +1 -1
- package/node_modules/pi-subagents/agents/evidence-auditor.md +1 -0
- package/node_modules/pi-subagents/agents/oracle.md +9 -19
- package/node_modules/pi-subagents/agents/researcher.md +0 -3
- package/node_modules/pi-subagents/agents/reviewer.md +18 -61
- package/node_modules/pi-subagents/agents/scout.md +1 -4
- package/node_modules/pi-subagents/agents/worker.md +8 -25
- package/node_modules/pi-subagents/docs/agents.md +71 -4
- package/node_modules/pi-subagents/docs/configuration.md +75 -10
- package/node_modules/pi-subagents/docs/extension-api.md +40 -11
- package/node_modules/pi-subagents/docs/missions.md +24 -17
- package/node_modules/pi-subagents/docs/models.md +1 -1
- package/node_modules/pi-subagents/docs/observability.md +12 -5
- package/node_modules/pi-subagents/docs/tool-reference.md +103 -85
- package/node_modules/pi-subagents/docs/watchdog.md +8 -6
- package/node_modules/pi-subagents/docs/workflows.md +17 -8
- package/node_modules/pi-subagents/index.d.ts.map +1 -1
- package/node_modules/pi-subagents/index.js +5 -0
- package/node_modules/pi-subagents/index.js.map +1 -1
- package/node_modules/pi-subagents/package.json +2 -1
- package/node_modules/pi-subagents/prompts/council.md +1 -1
- package/node_modules/pi-subagents/skills/pi-subagents/SKILL.md +2 -2
- package/node_modules/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md +1 -1
- package/node_modules/pi-subagents/skills/pi-subagents/references/execution-controls.md +16 -16
- package/node_modules/pi-subagents/skills/pi-subagents/references/management-authoring-rpc.md +16 -12
- package/node_modules/pi-subagents/skills/pi-subagents/references/multi-lane-orchestration.md +1 -1
- package/node_modules/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +3 -3
- package/node_modules/pi-subagents/src/agents/advertised-agent-prompt.d.ts +5 -1
- package/node_modules/pi-subagents/src/agents/advertised-agent-prompt.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/agents/advertised-agent-prompt.js +8 -2
- package/node_modules/pi-subagents/src/agents/advertised-agent-prompt.js.map +1 -1
- package/node_modules/pi-subagents/src/agents/agent-management.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/agents/agent-management.js +5 -0
- package/node_modules/pi-subagents/src/agents/agent-management.js.map +1 -1
- package/node_modules/pi-subagents/src/agents/agent-scope.d.ts +1 -0
- package/node_modules/pi-subagents/src/agents/agent-scope.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/agents/agent-scope.js +3 -0
- package/node_modules/pi-subagents/src/agents/agent-scope.js.map +1 -1
- package/node_modules/pi-subagents/src/agents/agent-serializer.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/agents/agent-serializer.js +3 -0
- package/node_modules/pi-subagents/src/agents/agent-serializer.js.map +1 -1
- package/node_modules/pi-subagents/src/agents/agents.d.ts +14 -2
- package/node_modules/pi-subagents/src/agents/agents.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/agents/agents.js +94 -36
- package/node_modules/pi-subagents/src/agents/agents.js.map +1 -1
- package/node_modules/pi-subagents/src/api/external-runs.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/api/external-runs.js +5 -4
- package/node_modules/pi-subagents/src/api/external-runs.js.map +1 -1
- package/node_modules/pi-subagents/src/api/preflight.d.ts +2 -0
- package/node_modules/pi-subagents/src/api/preflight.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/api/preflight.js +7 -3
- package/node_modules/pi-subagents/src/api/preflight.js.map +1 -1
- package/node_modules/pi-subagents/src/extension/active-runs-prompt.d.ts +8 -0
- package/node_modules/pi-subagents/src/extension/active-runs-prompt.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/extension/active-runs-prompt.js +30 -0
- package/node_modules/pi-subagents/src/extension/active-runs-prompt.js.map +1 -0
- package/node_modules/pi-subagents/src/extension/config.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/extension/config.js +29 -2
- package/node_modules/pi-subagents/src/extension/config.js.map +1 -1
- package/node_modules/pi-subagents/src/extension/control-notices.d.ts +0 -2
- package/node_modules/pi-subagents/src/extension/control-notices.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/extension/control-notices.js +1 -7
- package/node_modules/pi-subagents/src/extension/control-notices.js.map +1 -1
- package/node_modules/pi-subagents/src/extension/declaration-pinning.d.ts +19 -0
- package/node_modules/pi-subagents/src/extension/declaration-pinning.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/extension/declaration-pinning.js +154 -0
- package/node_modules/pi-subagents/src/extension/declaration-pinning.js.map +1 -0
- package/node_modules/pi-subagents/src/extension/doctor.d.ts +3 -1
- package/node_modules/pi-subagents/src/extension/doctor.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/extension/doctor.js +3 -9
- package/node_modules/pi-subagents/src/extension/doctor.js.map +1 -1
- package/node_modules/pi-subagents/src/extension/fanout-child.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/extension/fanout-child.js +6 -8
- package/node_modules/pi-subagents/src/extension/fanout-child.js.map +1 -1
- package/node_modules/pi-subagents/src/extension/index.d.ts +1 -2
- package/node_modules/pi-subagents/src/extension/index.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/extension/index.js +121 -127
- package/node_modules/pi-subagents/src/extension/index.js.map +1 -1
- package/node_modules/pi-subagents/src/extension/rpc.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/extension/rpc.js +12 -6
- package/node_modules/pi-subagents/src/extension/rpc.js.map +1 -1
- package/node_modules/pi-subagents/src/extension/schemas.d.ts +137 -1
- package/node_modules/pi-subagents/src/extension/schemas.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/extension/schemas.js +22 -22
- package/node_modules/pi-subagents/src/extension/schemas.js.map +1 -1
- package/node_modules/pi-subagents/src/extension/subagent-guide.d.ts +1 -0
- package/node_modules/pi-subagents/src/extension/subagent-guide.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/extension/subagent-guide.js +80 -6
- package/node_modules/pi-subagents/src/extension/subagent-guide.js.map +1 -1
- package/node_modules/pi-subagents/src/extension/subagent-options.d.ts +8 -0
- package/node_modules/pi-subagents/src/extension/subagent-options.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/extension/subagent-options.js +52 -0
- package/node_modules/pi-subagents/src/extension/subagent-options.js.map +1 -0
- package/node_modules/pi-subagents/src/extension/tool-activation.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/extension/tool-activation.js +7 -4
- package/node_modules/pi-subagents/src/extension/tool-activation.js.map +1 -1
- package/node_modules/pi-subagents/src/extension/tool-description.d.ts +4 -7
- package/node_modules/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/extension/tool-description.js +45 -59
- package/node_modules/pi-subagents/src/extension/tool-description.js.map +1 -1
- package/node_modules/pi-subagents/src/inspectors/actions.d.ts +2 -0
- package/node_modules/pi-subagents/src/inspectors/actions.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/inspectors/actions.js +41 -13
- package/node_modules/pi-subagents/src/inspectors/actions.js.map +1 -1
- package/node_modules/pi-subagents/src/inspectors/plugins.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/inspectors/plugins.js +3 -2
- package/node_modules/pi-subagents/src/inspectors/plugins.js.map +1 -1
- package/node_modules/pi-subagents/src/inspectors/tmux/actions.d.ts +26 -0
- package/node_modules/pi-subagents/src/inspectors/tmux/actions.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/inspectors/tmux/actions.js +182 -0
- package/node_modules/pi-subagents/src/inspectors/tmux/actions.js.map +1 -0
- package/node_modules/pi-subagents/src/inspectors/tmux/client.d.ts +28 -0
- package/node_modules/pi-subagents/src/inspectors/tmux/client.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/inspectors/tmux/client.js +65 -0
- package/node_modules/pi-subagents/src/inspectors/tmux/client.js.map +1 -0
- package/node_modules/pi-subagents/src/inspectors/tmux/plugin.d.ts +8 -0
- package/node_modules/pi-subagents/src/inspectors/tmux/plugin.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/inspectors/tmux/plugin.js +15 -0
- package/node_modules/pi-subagents/src/inspectors/tmux/plugin.js.map +1 -0
- package/node_modules/pi-subagents/src/integrations/herdr-status.d.ts +0 -1
- package/node_modules/pi-subagents/src/integrations/herdr-status.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/integrations/herdr-status.js +18 -52
- package/node_modules/pi-subagents/src/integrations/herdr-status.js.map +1 -1
- package/node_modules/pi-subagents/src/integrations/program-status.d.ts +31 -0
- package/node_modules/pi-subagents/src/integrations/program-status.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/integrations/program-status.js +189 -0
- package/node_modules/pi-subagents/src/integrations/program-status.js.map +1 -0
- package/node_modules/pi-subagents/src/intercom/native-supervisor-channel.d.ts +17 -1
- package/node_modules/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/intercom/native-supervisor-channel.js +102 -9
- package/node_modules/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -1
- package/node_modules/pi-subagents/src/intercom/result-intercom.js +1 -1
- package/node_modules/pi-subagents/src/intercom/result-intercom.js.map +1 -1
- package/node_modules/pi-subagents/src/intercom/supervisor-ui.d.ts +2 -12
- package/node_modules/pi-subagents/src/intercom/supervisor-ui.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/intercom/supervisor-ui.js +2 -154
- package/node_modules/pi-subagents/src/intercom/supervisor-ui.js.map +1 -1
- package/node_modules/pi-subagents/src/missions/store.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/missions/store.js +27 -5
- package/node_modules/pi-subagents/src/missions/store.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/active-async-capacity.d.ts +2 -1
- package/node_modules/pi-subagents/src/runs/background/active-async-capacity.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/active-async-capacity.js +10 -6
- package/node_modules/pi-subagents/src/runs/background/active-async-capacity.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/async-execution.d.ts +9 -1
- package/node_modules/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/async-execution.js +253 -144
- package/node_modules/pi-subagents/src/runs/background/async-execution.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/async-job-tracker.d.ts +4 -1
- package/node_modules/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/async-job-tracker.js +3 -2
- package/node_modules/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/async-resume.js +9 -3
- package/node_modules/pi-subagents/src/runs/background/async-resume.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/await-async-run.d.ts +8 -4
- package/node_modules/pi-subagents/src/runs/background/await-async-run.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/await-async-run.js +14 -8
- package/node_modules/pi-subagents/src/runs/background/await-async-run.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/binary-bootstrap.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/binary-bootstrap.js +2 -1
- package/node_modules/pi-subagents/src/runs/background/binary-bootstrap.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/chain-root-attachment.d.ts +2 -0
- package/node_modules/pi-subagents/src/runs/background/chain-root-attachment.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/chain-root-attachment.js +9 -6
- package/node_modules/pi-subagents/src/runs/background/chain-root-attachment.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/control-channel.d.ts +1 -0
- package/node_modules/pi-subagents/src/runs/background/control-channel.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/control-channel.js +27 -3
- package/node_modules/pi-subagents/src/runs/background/control-channel.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/fleet-view.js +5 -5
- package/node_modules/pi-subagents/src/runs/background/fleet-view.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/notify.d.ts +12 -2
- package/node_modules/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/notify.js +152 -13
- package/node_modules/pi-subagents/src/runs/background/notify.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/result-files.d.ts +29 -0
- package/node_modules/pi-subagents/src/runs/background/result-files.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/result-files.js +104 -6
- package/node_modules/pi-subagents/src/runs/background/result-files.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/result-watcher.js +60 -64
- package/node_modules/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/resume-guidance.js +2 -2
- package/node_modules/pi-subagents/src/runs/background/resume-guidance.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/run-child-session.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/run-child-session.js +9 -15
- package/node_modules/pi-subagents/src/runs/background/run-child-session.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/run-id-resolver.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/run-id-resolver.js +9 -6
- package/node_modules/pi-subagents/src/runs/background/run-id-resolver.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/run-status.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/run-status.js +19 -15
- package/node_modules/pi-subagents/src/runs/background/run-status.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/runner-aliases.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/runner-aliases.js +11 -8
- package/node_modules/pi-subagents/src/runs/background/runner-aliases.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/runner-child-launch.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/runner-child-launch.js +1 -0
- package/node_modules/pi-subagents/src/runs/background/runner-child-launch.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/runner-http-dispatcher.d.ts +3 -0
- package/node_modules/pi-subagents/src/runs/background/runner-http-dispatcher.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/runner-http-dispatcher.js +2 -0
- package/node_modules/pi-subagents/src/runs/background/runner-http-dispatcher.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/scheduled-runs.d.ts +9 -0
- package/node_modules/pi-subagents/src/runs/background/scheduled-runs.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/scheduled-runs.js +124 -36
- package/node_modules/pi-subagents/src/runs/background/scheduled-runs.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/subagent-runner-bootstrap.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/subagent-runner-bootstrap.js +5 -1
- package/node_modules/pi-subagents/src/runs/background/subagent-runner-bootstrap.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/subagent-runner.d.ts +3 -1
- package/node_modules/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/subagent-runner.js +211 -283
- package/node_modules/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/subagent-wait.d.ts +2 -0
- package/node_modules/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/subagent-wait.js +34 -20
- package/node_modules/pi-subagents/src/runs/background/subagent-wait.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/terminal-run-index.d.ts +1 -0
- package/node_modules/pi-subagents/src/runs/background/terminal-run-index.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/terminal-run-index.js +47 -1
- package/node_modules/pi-subagents/src/runs/background/terminal-run-index.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/wait-tool.js +36 -23
- package/node_modules/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/workflow-terminal-proof.d.ts +1 -1
- package/node_modules/pi-subagents/src/runs/background/workflow-terminal-proof.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/background/workflow-terminal-proof.js +12 -3
- package/node_modules/pi-subagents/src/runs/background/workflow-terminal-proof.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/foreground/async-stop-action.d.ts +7 -1
- package/node_modules/pi-subagents/src/runs/foreground/async-stop-action.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/foreground/async-stop-action.js +55 -32
- package/node_modules/pi-subagents/src/runs/foreground/async-stop-action.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/foreground/execution.js +101 -79
- package/node_modules/pi-subagents/src/runs/foreground/execution.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/foreground/subagent-executor.d.ts +5 -1
- package/node_modules/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/foreground/subagent-executor.js +184 -84
- package/node_modules/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/child-hooks.js +6 -5
- package/node_modules/pi-subagents/src/runs/shared/child-hooks.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/child-launch.d.ts +2 -0
- package/node_modules/pi-subagents/src/runs/shared/child-launch.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/child-launch.js +1 -0
- package/node_modules/pi-subagents/src/runs/shared/child-launch.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/child-session.d.ts +4 -0
- package/node_modules/pi-subagents/src/runs/shared/child-session.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/child-session.js +28 -23
- package/node_modules/pi-subagents/src/runs/shared/child-session.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/child-tool-plan.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/child-tool-plan.js +11 -10
- package/node_modules/pi-subagents/src/runs/shared/child-tool-plan.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/dynamic-fanout.js +1 -1
- package/node_modules/pi-subagents/src/runs/shared/dynamic-fanout.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/effective-system-prompt.d.ts +4 -4
- package/node_modules/pi-subagents/src/runs/shared/effective-system-prompt.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/effective-system-prompt.js +5 -4
- package/node_modules/pi-subagents/src/runs/shared/effective-system-prompt.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/external-cli-runner.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/external-cli-runner.js +3 -2
- package/node_modules/pi-subagents/src/runs/shared/external-cli-runner.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/herdr-placed-run.d.ts +1 -0
- package/node_modules/pi-subagents/src/runs/shared/herdr-placed-run.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/herdr-placed-run.js +10 -6
- package/node_modules/pi-subagents/src/runs/shared/herdr-placed-run.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/model-resolution-diagnostic.d.ts +17 -5
- package/node_modules/pi-subagents/src/runs/shared/model-resolution-diagnostic.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/model-resolution-diagnostic.js +37 -10
- package/node_modules/pi-subagents/src/runs/shared/model-resolution-diagnostic.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/model-resolution.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/model-resolution.js +29 -1
- package/node_modules/pi-subagents/src/runs/shared/model-resolution.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/nested-events.d.ts +2 -0
- package/node_modules/pi-subagents/src/runs/shared/nested-events.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/nested-events.js +4 -0
- package/node_modules/pi-subagents/src/runs/shared/nested-events.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/orca-progress-tabs.js +1 -1
- package/node_modules/pi-subagents/src/runs/shared/orca-progress-tabs.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/parallel-handoff.js +2 -2
- package/node_modules/pi-subagents/src/runs/shared/parallel-handoff.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/parallel-utils.d.ts +2 -0
- package/node_modules/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/partial-output.d.ts +7 -0
- package/node_modules/pi-subagents/src/runs/shared/partial-output.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/partial-output.js +7 -0
- package/node_modules/pi-subagents/src/runs/shared/partial-output.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/runner-launcher.d.ts +12 -0
- package/node_modules/pi-subagents/src/runs/shared/runner-launcher.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/runs/shared/runner-launcher.js +25 -0
- package/node_modules/pi-subagents/src/runs/shared/runner-launcher.js.map +1 -0
- package/node_modules/pi-subagents/src/runs/shared/single-output.d.ts +31 -1
- package/node_modules/pi-subagents/src/runs/shared/single-output.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/single-output.js +100 -21
- package/node_modules/pi-subagents/src/runs/shared/single-output.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/structured-output.d.ts +2 -0
- package/node_modules/pi-subagents/src/runs/shared/structured-output.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/structured-output.js +26 -8
- package/node_modules/pi-subagents/src/runs/shared/structured-output.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/subagent-control.js +3 -3
- package/node_modules/pi-subagents/src/runs/shared/subagent-control.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts +37 -2
- package/node_modules/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +130 -22
- package/node_modules/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/tool-budget.js +1 -1
- package/node_modules/pi-subagents/src/runs/shared/tool-budget.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/workflow-async-child-guidance.js +1 -1
- package/node_modules/pi-subagents/src/runs/shared/workflow-async-child-guidance.js.map +1 -1
- package/node_modules/pi-subagents/src/runs/shared/worktree-cleanup-plan.js +1 -1
- package/node_modules/pi-subagents/src/runs/shared/worktree-cleanup-plan.js.map +1 -1
- package/node_modules/pi-subagents/src/shared/atomic-json.d.ts +4 -3
- package/node_modules/pi-subagents/src/shared/atomic-json.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/shared/atomic-json.js +3 -1
- package/node_modules/pi-subagents/src/shared/atomic-json.js.map +1 -1
- package/node_modules/pi-subagents/src/shared/child-transcript.js +1 -1
- package/node_modules/pi-subagents/src/shared/child-transcript.js.map +1 -1
- package/node_modules/pi-subagents/src/shared/edit-distance.d.ts +5 -0
- package/node_modules/pi-subagents/src/shared/edit-distance.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/shared/edit-distance.js +33 -0
- package/node_modules/pi-subagents/src/shared/edit-distance.js.map +1 -0
- package/node_modules/pi-subagents/src/shared/extension-context.d.ts +5 -0
- package/node_modules/pi-subagents/src/shared/extension-context.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/shared/extension-context.js +7 -0
- package/node_modules/pi-subagents/src/shared/extension-context.js.map +1 -1
- package/node_modules/pi-subagents/src/shared/formatters.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/shared/formatters.js +1 -6
- package/node_modules/pi-subagents/src/shared/formatters.js.map +1 -1
- package/node_modules/pi-subagents/src/shared/model-info.d.ts +8 -0
- package/node_modules/pi-subagents/src/shared/model-info.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/shared/model-info.js +22 -0
- package/node_modules/pi-subagents/src/shared/model-info.js.map +1 -1
- package/node_modules/pi-subagents/src/shared/package-version.d.ts +3 -0
- package/node_modules/pi-subagents/src/shared/package-version.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/shared/package-version.js +15 -0
- package/node_modules/pi-subagents/src/shared/package-version.js.map +1 -0
- package/node_modules/pi-subagents/src/shared/parent-wake.d.ts +24 -0
- package/node_modules/pi-subagents/src/shared/parent-wake.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/shared/parent-wake.js +71 -0
- package/node_modules/pi-subagents/src/shared/parent-wake.js.map +1 -0
- package/node_modules/pi-subagents/src/shared/pruned-fork.d.ts +1 -1
- package/node_modules/pi-subagents/src/shared/pruned-fork.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/shared/pruned-fork.js +6 -0
- package/node_modules/pi-subagents/src/shared/pruned-fork.js.map +1 -1
- package/node_modules/pi-subagents/src/shared/runtime-module-path.d.ts +11 -0
- package/node_modules/pi-subagents/src/shared/runtime-module-path.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/shared/runtime-module-path.js +17 -0
- package/node_modules/pi-subagents/src/shared/runtime-module-path.js.map +1 -0
- package/node_modules/pi-subagents/src/shared/types.d.ts +33 -10
- package/node_modules/pi-subagents/src/shared/types.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/shared/types.js +7 -4
- package/node_modules/pi-subagents/src/shared/types.js.map +1 -1
- package/node_modules/pi-subagents/src/shared/utils.d.ts +2 -0
- package/node_modules/pi-subagents/src/shared/utils.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/shared/utils.js +10 -7
- package/node_modules/pi-subagents/src/shared/utils.js.map +1 -1
- package/node_modules/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/slash/slash-commands.js +21 -10
- package/node_modules/pi-subagents/src/slash/slash-commands.js.map +1 -1
- package/node_modules/pi-subagents/src/slash/subagents-admin.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/slash/subagents-admin.js +3 -1
- package/node_modules/pi-subagents/src/slash/subagents-admin.js.map +1 -1
- package/node_modules/pi-subagents/src/tui/fleet-status.d.ts +5 -0
- package/node_modules/pi-subagents/src/tui/fleet-status.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/tui/fleet-status.js +24 -3
- package/node_modules/pi-subagents/src/tui/fleet-status.js.map +1 -1
- package/node_modules/pi-subagents/src/tui/fleet-transcript.d.ts +2 -0
- package/node_modules/pi-subagents/src/tui/fleet-transcript.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/tui/fleet-transcript.js +7 -2
- package/node_modules/pi-subagents/src/tui/fleet-transcript.js.map +1 -1
- package/node_modules/pi-subagents/src/tui/fleet.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/tui/fleet.js +11 -6
- package/node_modules/pi-subagents/src/tui/fleet.js.map +1 -1
- package/node_modules/pi-subagents/src/tui/render.d.ts +2 -2
- package/node_modules/pi-subagents/src/tui/render.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/tui/render.js +19 -17
- package/node_modules/pi-subagents/src/tui/render.js.map +1 -1
- package/node_modules/pi-subagents/src/tui/subagent-messages.d.ts +23 -0
- package/node_modules/pi-subagents/src/tui/subagent-messages.d.ts.map +1 -0
- package/node_modules/pi-subagents/src/tui/subagent-messages.js +270 -0
- package/node_modules/pi-subagents/src/tui/subagent-messages.js.map +1 -0
- package/node_modules/pi-subagents/src/watchdog/change-signature.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/watchdog/change-signature.js +1 -3
- package/node_modules/pi-subagents/src/watchdog/change-signature.js.map +1 -1
- package/node_modules/pi-subagents/src/watchdog/register-main.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/watchdog/register-main.js +1 -19
- package/node_modules/pi-subagents/src/watchdog/register-main.js.map +1 -1
- package/node_modules/pi-subagents/src/watchdog/render.d.ts +2 -10
- package/node_modules/pi-subagents/src/watchdog/render.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/watchdog/render.js +1 -19
- package/node_modules/pi-subagents/src/watchdog/render.js.map +1 -1
- package/node_modules/pi-subagents/src/watchdog/tool-actions.js +2 -2
- package/node_modules/pi-subagents/src/watchdog/tool-actions.js.map +1 -1
- package/node_modules/pi-subagents/src/workflows/scripted-workflow.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/workflows/scripted-workflow.js +33 -10
- package/node_modules/pi-subagents/src/workflows/scripted-workflow.js.map +1 -1
- package/node_modules/pi-subagents/src/workflows/workflow-resources.d.ts.map +1 -1
- package/node_modules/pi-subagents/src/workflows/workflow-resources.js +12 -0
- package/node_modules/pi-subagents/src/workflows/workflow-resources.js.map +1 -1
- package/package.json +3 -3
- package/src/artifacts/builder-handoff/assertBuilderHandoff.ts +0 -14
- package/src/artifacts/builder-handoff/schema.ts +0 -26
- package/src/maestro/instructions/getMaestroInstructions.ts +4 -2
- package/src/maestro/status/formatMaestroStatus.ts +0 -3
- package/src/tools/child/record-builder-handoff.ts +2 -10
- package/src/tools/main/resolve-escalations.ts +1 -1
- package/src/tools/main/resolve-findings.ts +1 -1
- package/src/tools/main/run-builder.ts +9 -49
- package/src/workflow/builder/completeBuilderPass.ts +4 -13
- package/src/workflow/builder/utils/getWorkflowEventByBuilderHandoff.ts +24 -0
- package/src/workflow/state/schema.ts +0 -3
- package/src/workflow/transitions.ts +0 -4
- package/src/workflow/verifier/completeVerifierPass.ts +3 -9
- package/src/workflow/{findings → verifier}/resolveFindings.ts +4 -12
- package/src/workflow/verifier/utils/getWorkflowEventByVerifierHandoff.ts +40 -0
- package/DESIGN_DECISIONS.md +0 -21
- package/node_modules/pi-subagents/src/runs/shared/run-history.d.ts +0 -67
- package/node_modules/pi-subagents/src/runs/shared/run-history.d.ts.map +0 -1
- package/node_modules/pi-subagents/src/runs/shared/run-history.js +0 -270
- package/node_modules/pi-subagents/src/runs/shared/run-history.js.map +0 -1
- /package/src/workflow/{escalation → builder}/resolveEscalations.ts +0 -0
package/ADR.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Architecture decision records
|
|
2
|
+
|
|
3
|
+
An Architecture Decision Record (ADR) explains an important architectural choice, its context, and its consequences.
|
|
4
|
+
This file contains one numbered record per decision.
|
|
5
|
+
|
|
6
|
+
Requirements and routine project rules belong in the [roadmap](ROADMAP.md) or other relevant documentation.
|
|
7
|
+
|
|
8
|
+
When a new decision replaces an accepted decision, add a new record, mark the earlier record as superseded, and link both records.
|
|
9
|
+
|
|
10
|
+
## ADR-001: Keep the workflow independent of Git
|
|
11
|
+
|
|
12
|
+
### Status
|
|
13
|
+
|
|
14
|
+
Accepted. Recorded date: 2026-10-07. Implemented in `0.6.0`.
|
|
15
|
+
|
|
16
|
+
### Context
|
|
17
|
+
|
|
18
|
+
The previous workflow required Git and used checkpoints and automatic commits. The recorded reason for removing that approach was to simplify the project. Other evaluated alternatives were not recorded.
|
|
19
|
+
|
|
20
|
+
### Decision
|
|
21
|
+
|
|
22
|
+
`Maestro` uses the Pi project directory and saved workflow phase. It does not require Git or create automatic commits.
|
|
23
|
+
|
|
24
|
+
The `verifier` checks live project files. The `owner` controls later Git use, pull requests, and merging.
|
|
25
|
+
|
|
26
|
+
### Consequences
|
|
27
|
+
|
|
28
|
+
Workflow execution no longer depends on Git. Revision and commit fields were removed without migration or compatibility readers. Interrupted and older workflows require manual `owner` handling.
|
|
29
|
+
|
|
30
|
+
### Evidence
|
|
31
|
+
|
|
32
|
+
[Commit deae41c](https://github.com/emilioSp/pi-maestro/commit/deae41ce66a3f2c76859209c44165e7ddd0f3a72), [Changelog 0.6.0](CHANGELOG.md#060), and [workflow completion](docs/workflow.md#workflow-completion).
|
|
33
|
+
|
|
34
|
+
## ADR-002: Store escalation decisions in builder handoffs
|
|
35
|
+
|
|
36
|
+
### Status
|
|
37
|
+
|
|
38
|
+
Accepted. Recorded date: 2026-10-08. Implemented in `0.7.0`.
|
|
39
|
+
|
|
40
|
+
### Context
|
|
41
|
+
|
|
42
|
+
The previous approach stored `escalations` in standalone files and used singular resolution tools. The recorded reason for replacing it was to use the same storage, local ID, and batch decision model as `verifier` `findings`. Other evaluated alternatives were not recorded.
|
|
43
|
+
|
|
44
|
+
### Decision
|
|
45
|
+
|
|
46
|
+
Numbered `builder` `handoffs` contain `escalation` questions and their `owner` resolutions. One call records all current answers. No parallel storage model is needed.
|
|
47
|
+
|
|
48
|
+
IDs restart at `E1` in each `handoff`. References include both IDs, such as `B1/E1`. Answers update only the active handoff's resolution fields.
|
|
49
|
+
|
|
50
|
+
### Consequences
|
|
51
|
+
|
|
52
|
+
Standalone `escalation` storage and singular resolution tools were removed. Questions and decisions remain together in each numbered `builder` `handoff`.
|
|
53
|
+
|
|
54
|
+
There are no migration procedures, fallback readers, or deprecated aliases. `Artifact` versions remain `1.0.0` despite the breaking change.
|
|
55
|
+
|
|
56
|
+
### Evidence
|
|
57
|
+
|
|
58
|
+
[Repository-only specification](.specs/20261008-132344-store-escalations-in-builder-handoffs/spec.md), [Commit dda6eb5](https://github.com/emilioSp/pi-maestro/commit/dda6eb5b3ab76ba175112c3c565c70be747d7344), and [escalation workflow](docs/workflow.md#escalations).
|
|
59
|
+
|
|
60
|
+
## ADR-003: Route builder failures through owner escalations
|
|
61
|
+
|
|
62
|
+
### Status
|
|
63
|
+
|
|
64
|
+
Accepted. Implemented.
|
|
65
|
+
|
|
66
|
+
### Context
|
|
67
|
+
|
|
68
|
+
The `owner` must decide how work continues after a reportable technical problem.
|
|
69
|
+
The workflow also needs a simpler model with two `builder` outcomes.
|
|
70
|
+
|
|
71
|
+
### Decision
|
|
72
|
+
|
|
73
|
+
The `builder` reports only `done` or `escalation`.
|
|
74
|
+
Reportable technical failures use the existing `escalation` process.
|
|
75
|
+
The `owner` decides how to proceed instead of reaching a terminal failure phase.
|
|
76
|
+
|
|
77
|
+
### Consequences
|
|
78
|
+
|
|
79
|
+
Reuse the existing tools, numbered `handoffs`, and batch decisions.
|
|
80
|
+
Individual `probe` results retain `failed` as a valid value.
|
|
81
|
+
|
|
82
|
+
Execution and protocol errors without a valid saved result still stop the workflow.
|
|
83
|
+
This decision adds no automatic recovery.
|
|
84
|
+
|
|
85
|
+
This breaking MVP change has no migrations, compatibility readers, deprecated aliases, or dedicated legacy-format tests.
|
|
86
|
+
|
|
87
|
+
### Evidence
|
|
88
|
+
|
|
89
|
+
[Specification](.specs/20261013-101454-route-builder-failures-through-owner-escalations/spec.md) and [R-03](ROADMAP.md#r-03-route-builder-failures-through-owner-escalations).
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
This file summarizes meaningful changes to the codebase, including behavior, data formats, architecture, and development tools. Git tags identify version boundaries; GitHub Releases are not required. Version-only changes and routine maintenance are omitted.
|
|
4
4
|
|
|
5
|
+
## Unreleased
|
|
6
|
+
|
|
7
|
+
1. Breaking: `builder` reports now support only `done` and `escalation`. Reportable technical problems use the existing `owner` `escalation` process.
|
|
8
|
+
2. Removed the terminal `builder` failure phase and event. Execution errors and missing or invalid saved results still stop the workflow without automatic recovery.
|
|
9
|
+
3. No migrations, compatibility readers, or deprecated aliases are provided. `Artifact` versions remain `1.0.0`.
|
|
10
|
+
|
|
5
11
|
## 0.7.3
|
|
6
12
|
|
|
7
13
|
1. Added Oxlint rules for `given ... when ... then ...` test titles, `const` usage, unnecessary `else` branches, type aliases, and ESM imports. See [PR #31](https://github.com/emilioSp/pi-maestro/pull/31).
|
package/README.md
CHANGED
|
@@ -83,7 +83,8 @@ If a `spec` change is needed during an `escalation` or `finding` decision, the `
|
|
|
83
83
|
|
|
84
84
|
The workflow ends at `candidate-ready`. Rejected `findings` retain their reasons. Later changes are outside the completed verification. The `owner` controls any later Git use, pull request, and merge.
|
|
85
85
|
|
|
86
|
-
The same `/maestro` command disables `Maestro` and leaves project files unchanged. Disabling `Maestro`, restarting Pi, or using `/resume` clears live session state.
|
|
86
|
+
The same `/maestro` command disables `Maestro` and leaves project files unchanged. Disabling `Maestro`, restarting Pi, or using `/resume` clears live session state.
|
|
87
|
+
Saved files do not automatically restore or resume an incomplete workflow. The `owner` handles it manually.
|
|
87
88
|
|
|
88
89
|
## Configuration
|
|
89
90
|
|
|
@@ -104,4 +105,4 @@ The reading order is:
|
|
|
104
105
|
2. [Tech stack](TECH_STACK.md): runtime technologies and development tools.
|
|
105
106
|
3. [Roadmap](ROADMAP.md): completed outcomes and planned priorities.
|
|
106
107
|
4. [Changelog](CHANGELOG.md): meaningful codebase changes and breaking changes.
|
|
107
|
-
5. [
|
|
108
|
+
5. [Architecture decision records](ADR.md): architectural choices, context, consequences, and evidence.
|
package/ROADMAP.md
CHANGED
|
@@ -10,35 +10,53 @@ Item identifiers remain stable when priorities change. The `owner` approves chan
|
|
|
10
10
|
|
|
11
11
|
### R-01: Improve status presentation and activation feedback
|
|
12
12
|
|
|
13
|
-
The status bar uses phase icons, theme colors, and shortened `spec` IDs. Successful activation shows the configured `builder` and `verifier` settings without adding the notice to session history or model context. All 12 `acceptance criteria` passed with no `verifier` `findings
|
|
13
|
+
The status bar uses phase icons, theme colors, and shortened `spec` IDs. Successful activation shows the configured `builder` and `verifier` settings without adding the notice to session history or model context. All 12 `acceptance criteria` passed with no `verifier` `findings`. The saved workflow reached `candidate-ready`.
|
|
14
14
|
|
|
15
|
-
Evidence
|
|
15
|
+
#### Evidence
|
|
16
|
+
|
|
17
|
+
[Specification](.specs/20261007-170438-update-maestro-status-bar-with-agent-models-theme-colors-and-phase-icons/spec.md), [verifier report](.specs/20261007-170438-update-maestro-status-bar-with-agent-models-theme-colors-and-phase-icons/handoffs/verifier/V1.json), and [merged PR #26](https://github.com/emilioSp/pi-maestro/pull/26).
|
|
16
18
|
|
|
17
19
|
### R-02: Store escalations and owner decisions in builder handoffs
|
|
18
20
|
|
|
19
|
-
Numbered `builder` `handoffs` contain multiple `escalation` questions and their `owner` resolutions. The `owner` resolves all current questions in one batch
|
|
21
|
+
Numbered `builder` `handoffs` contain multiple `escalation` questions and their `owner` resolutions. The `owner` resolves all current questions in one batch. Earlier `handoffs` remain available as history. All 10 `acceptance criteria` passed with no `verifier` `findings`. The saved workflow reached `candidate-ready`.
|
|
22
|
+
|
|
23
|
+
#### Evidence
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
[Specification](.specs/20261008-132344-store-escalations-in-builder-handoffs/spec.md), [verifier report](.specs/20261008-132344-store-escalations-in-builder-handoffs/handoffs/verifier/V1.json), and [merged PR #27](https://github.com/emilioSp/pi-maestro/pull/27).
|
|
22
26
|
|
|
23
27
|
### R-12: Format glossary terms consistently
|
|
24
28
|
|
|
25
29
|
Applied glossary formatting across the documentation and recorded its exclusions in `AGENTS.md` and the documentation audit skill. The approved change document uses the term `spec`. The `owner` confirmed completion.
|
|
26
30
|
|
|
27
|
-
Evidence
|
|
31
|
+
#### Evidence
|
|
28
32
|
|
|
29
|
-
|
|
33
|
+
[Glossary](docs/glossary.md) and [workflow documentation](docs/workflow.md).
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
### R-15: Rename the test support directory
|
|
32
36
|
|
|
33
|
-
|
|
37
|
+
Renamed `test/` to `tests/` at the owner's request. Updated imports, fixture paths, lint configuration, and project instructions. This follows the global instruction to keep fixtures under `tests/fixtures`. Source tests remain next to their source files. Historical `handoffs` retain their recorded paths.
|
|
38
|
+
|
|
39
|
+
#### Evidence
|
|
40
|
+
|
|
41
|
+
[Test support](tests/support/), [fixtures](tests/fixtures/), [lint configuration](biome.json), and [project instructions](AGENTS.md#tests).
|
|
42
|
+
|
|
43
|
+
## Now
|
|
34
44
|
|
|
35
45
|
### R-03: Route builder failures through owner escalations
|
|
36
46
|
|
|
37
|
-
|
|
47
|
+
#### Objective
|
|
48
|
+
|
|
49
|
+
The `builder` reports technical problems that prevent completion through the existing `escalation` process. The `owner` decides how to proceed.
|
|
50
|
+
|
|
51
|
+
The approved [specification](.specs/20261013-101454-route-builder-failures-through-owner-escalations/spec.md) is implemented.
|
|
52
|
+
Automatic recovery of interrupted `runs` remains outside this item.
|
|
38
53
|
|
|
39
|
-
|
|
54
|
+
#### Completed when
|
|
55
|
+
|
|
56
|
+
`Builder` failures produce `owner` `escalations` instead of a terminal failure state. Individual checks retain `failed` as a valid result. Agent instructions, tools, workflow transitions, tests, and documentation describe the same behavior.
|
|
57
|
+
|
|
58
|
+
## Next
|
|
40
59
|
|
|
41
|
-
Automatic recovery of interrupted `runs` is outside this item. No `specification` is approved yet.
|
|
42
60
|
|
|
43
61
|
## Later
|
|
44
62
|
|
|
@@ -46,44 +64,120 @@ These items need scope review before `specification` approval. Existing behavior
|
|
|
46
64
|
|
|
47
65
|
### R-04: Rename the npm package
|
|
48
66
|
|
|
67
|
+
#### Objective
|
|
68
|
+
|
|
49
69
|
Rename `@emiliosp/pi-maestro` to `pi-maestro-sdd`. The `owner` installs the package under the new name. This item changes the package identity, not the development workflow.
|
|
50
70
|
|
|
51
|
-
|
|
71
|
+
Compatibility with installations under the old name must be decided in the `specification`. No `specification` is approved yet.
|
|
72
|
+
|
|
73
|
+
#### Completed when
|
|
74
|
+
|
|
75
|
+
Package metadata and installation documentation use the new name. The package is available under that name.
|
|
52
76
|
|
|
53
77
|
### R-05: Keep acceptance criterion numbering continuous
|
|
54
78
|
|
|
55
|
-
|
|
79
|
+
#### Objective
|
|
80
|
+
|
|
81
|
+
When criteria are removed during `spec` preparation or revision, renumber the remaining criteria without gaps. Numbering starts at `AC1` and continues through the final criterion.
|
|
82
|
+
|
|
83
|
+
#### Completed when
|
|
84
|
+
|
|
85
|
+
The `spec` and its current references use consistent numbering.
|
|
56
86
|
|
|
57
87
|
### R-06: Check subagent extensions at activation
|
|
58
88
|
|
|
59
|
-
|
|
89
|
+
#### Objective
|
|
90
|
+
|
|
91
|
+
Make extension availability problems visible before a `builder` or `verifier` `run` starts. Activation already checks agent launch requirements, so first identify any missing extension checks.
|
|
92
|
+
|
|
93
|
+
#### Completed when
|
|
94
|
+
|
|
95
|
+
Unavailable required subagent extensions prevent activation. The error identifies the problem.
|
|
60
96
|
|
|
61
97
|
### R-07: Guide initial configuration
|
|
62
98
|
|
|
63
|
-
|
|
99
|
+
#### Objective
|
|
100
|
+
|
|
101
|
+
Help the `owner` create `Maestro` configuration through an interview. `Maestro` asks questions and writes the agreed configuration.
|
|
102
|
+
|
|
103
|
+
#### Completed when
|
|
104
|
+
|
|
105
|
+
The `owner` can create a valid project configuration without writing the file manually.
|
|
64
106
|
|
|
65
107
|
### R-08: Change agent models before a builder run
|
|
66
108
|
|
|
67
|
-
|
|
109
|
+
#### Objective
|
|
110
|
+
|
|
111
|
+
Let the `owner` change the `builder` and `verifier` models during `spec` preparation and the `ready-for-builder` phase. The selected models apply to subsequent `runs`.
|
|
112
|
+
|
|
113
|
+
#### Completed when
|
|
114
|
+
|
|
115
|
+
The `owner` can select available models in those phases. `Maestro` uses the selections.
|
|
68
116
|
|
|
69
117
|
### R-09: Define workflow reconciliation
|
|
70
118
|
|
|
71
|
-
|
|
119
|
+
#### Objective
|
|
120
|
+
|
|
121
|
+
Explore how `Maestro` can reconcile saved `artifacts` and workflow state. The recovery scope is not yet defined.
|
|
122
|
+
|
|
123
|
+
#### Completed when
|
|
124
|
+
|
|
125
|
+
Not yet defined. The `owner` must define the intended outcome, recovery boundaries, and completion condition before this item can move forward.
|
|
72
126
|
|
|
73
127
|
### R-10: Match handoff criteria to the approved spec
|
|
74
128
|
|
|
129
|
+
#### Objective
|
|
130
|
+
|
|
75
131
|
Prevent `builder` and `verifier` reports from omitting or adding `acceptance criteria`. Each report must contain exactly the criterion IDs in the approved `spec`, with no duplicates in either place. Existing duplicate checks in reports do not establish this match.
|
|
76
132
|
|
|
77
|
-
|
|
133
|
+
The `specification` must define the criterion heading format used to extract IDs. For example, a heading can use `### AC1: ...`.
|
|
134
|
+
|
|
135
|
+
#### Completed when
|
|
136
|
+
|
|
137
|
+
Both `handoff` submissions reject missing, extra, or duplicate criterion IDs before saving a report or changing phase.
|
|
78
138
|
|
|
79
139
|
### R-11: Reduce temporary verifier changes
|
|
80
140
|
|
|
141
|
+
#### Objective
|
|
142
|
+
|
|
81
143
|
Reduce the risk that verification changes the `candidate`. Existing instructions already require exact restoration, cleanup, and reporting of unresolved restoration problems. Refine the remaining guidance rather than duplicate those rules.
|
|
82
144
|
|
|
83
|
-
Prefer checks that leave existing files unchanged and use separate temporary files when possible. Change an existing file only when a criterion requires it
|
|
145
|
+
Prefer checks that leave existing files unchanged and use separate temporary files when possible. Change an existing file only when a criterion requires it. Retain its exact contents and restore it immediately after each `probe`, including failed `probes`. Prefer check-only commands over commands that apply automatic fixes.
|
|
146
|
+
|
|
147
|
+
`Maestro` currently has no file-hash restoration check. Adding one requires a separate scope decision.
|
|
84
148
|
|
|
85
|
-
|
|
149
|
+
#### Completed when
|
|
150
|
+
|
|
151
|
+
`Verifier` instructions cover these limits and require restoration and temporary-file cleanup before `handoff`. If restoration fails, the `verifier` must stop and report affected paths and remaining changes.
|
|
86
152
|
|
|
87
153
|
### R-13: Show when Maestro is working
|
|
88
154
|
|
|
89
|
-
|
|
155
|
+
#### Objective
|
|
156
|
+
|
|
157
|
+
Show an activity indicator in Pi's status bar while progress does not require an `owner` decision. A spinner is one option, not an agreed implementation.
|
|
158
|
+
|
|
159
|
+
#### Completed when
|
|
160
|
+
|
|
161
|
+
The status clearly distinguishes work in progress from a request for `owner` action.
|
|
162
|
+
|
|
163
|
+
### R-14: Introduce Maestro at activation
|
|
164
|
+
|
|
165
|
+
#### Objective
|
|
166
|
+
|
|
167
|
+
When activated, `Maestro` gives a brief introduction and invites the `owner` to ask how it works, if interested. `Maestro` must have access to its own documentation to answer those questions.
|
|
168
|
+
|
|
169
|
+
#### Completed when
|
|
170
|
+
|
|
171
|
+
Activation includes this short introduction. `Maestro` can consult its documentation.
|
|
172
|
+
|
|
173
|
+
### R-16: Verify code quality against AGENTS.md instructions
|
|
174
|
+
|
|
175
|
+
#### Objective
|
|
176
|
+
|
|
177
|
+
Add code-quality review against applicable `AGENTS.md` instructions as another `verifier` responsibility. Keep all existing responsibilities unchanged, including independent verification of every `acceptance criterion` in the approved `spec`. Code-quality review supplements that verification. It does not replace or reduce it.
|
|
178
|
+
|
|
179
|
+
Existing `verifier` instructions already require reading applicable `AGENTS.md` files and following technical rules. Extend that guidance to require explicit code-quality review and reporting of instruction violations. Do not introduce personal style preferences as requirements.
|
|
180
|
+
|
|
181
|
+
#### Completed when
|
|
182
|
+
|
|
183
|
+
The `verifier` performs both its existing verification duties and the additional code-quality review. Every `acceptance criterion` is still independently verified. Each code-quality `finding` about an instruction violation identifies the `AGENTS.md` file, quotes the violated instruction, and explains how the code violates it.
|
package/agents/builder.md
CHANGED
|
@@ -45,6 +45,7 @@ Follow applicable repository commands and technical rules. Inspect scripts befor
|
|
|
45
45
|
Do not edit `spec.md`, prototypes, `workflow.json`, or handoffs directly through any tool.
|
|
46
46
|
Use `maestro_record_builder_handoff` for protocol changes. The tool supplies artifact paths and versions.
|
|
47
47
|
|
|
48
|
+
If a technical problem prevents completion and you can safely report it, stop implementation and submit an escalation. Use its fields for the reason, evidence, owner question, options, consequences, and next steps. The owner decides how work continues.
|
|
48
49
|
If a significant discovery requires an owner choice, stop implementation and use the escalation outcome below.
|
|
49
50
|
Examples include a spec conflict, undefined behavior, a material architectural alternative, scope changes, or verification and reversibility decisions.
|
|
50
51
|
An escalation does not require a technical failure or blocker.
|
|
@@ -75,8 +76,7 @@ Before any terminal tool call, restore temporary verification changes and remove
|
|
|
75
76
|
Choose the outcome from the actual result:
|
|
76
77
|
|
|
77
78
|
1. `done`: Implementation and required checks are complete. Every criterion has `probeStatus: passed`. Call `maestro_record_builder_handoff` with `specId`, `status: done`, `summary`, `acceptanceCriteria`, `notes`, and `escalations: []`.
|
|
78
|
-
2. `escalation`: An owner decision is required. Call `maestro_record_builder_handoff` with `specId`, `status: escalation`, `summary`, every criterion result, `notes`, and all `escalations`. Assign sequential IDs in array order: `E1`, `E2`, and so on. Restart at `E1` for each handoff. Each entry contains `id`, `question`, `context`, `options`, `recommendation`, `notes`, and `resolution: null`. Include evidence in the context. Give each option an ID, description, consequences, and next step. Use `recommendation: null` unless evidence supports an option. Refer to questions with both IDs, such as `B1/E1`. Record actual probe results, including incomplete probes. All probes can pass when an owner decision remains necessary. Save one handoff and stop.
|
|
79
|
-
3. `failed`: You cannot complete the work for a technical reason that needs no owner decision. Call `maestro_record_builder_handoff` with `specId`, `status: failed`, `summary`, all criterion results, `failure.reason`, and `notes`. Report actual statuses, including `not-run` where applicable.
|
|
79
|
+
2. `escalation`: An owner decision is required, including when a reportable technical problem prevents completion. Call `maestro_record_builder_handoff` with `specId`, `status: escalation`, `summary`, every criterion result, `notes`, and all `escalations`. Assign sequential IDs in array order: `E1`, `E2`, and so on. Restart at `E1` for each handoff. Each entry contains `id`, `question`, `context`, `options`, `recommendation`, `notes`, and `resolution: null`. Include evidence in the context. Give each option an ID, description, consequences, and next step. Use `recommendation: null` unless evidence supports an option. Refer to questions with both IDs, such as `B1/E1`. Record actual probe results, including incomplete probes. All probes can pass when an owner decision remains necessary or another required repository check prevents completion. Save one handoff and stop.
|
|
80
80
|
|
|
81
81
|
After a successful terminal call, return the saved outcome and artifact path to Maestro. Stop the pass.
|
|
82
82
|
Do not delete or replace earlier handoffs. Do not continue implementation after saving the result.
|
|
@@ -88,8 +88,6 @@ If a terminal call fails, inspect the error, current phase, and artifacts before
|
|
|
88
88
|
If validation rejected the submission without writing it, correct the payload to match the tool schema and actual evidence.
|
|
89
89
|
If the tool partially wrote an artifact or changed phase before an error, report it and stop. Do not resubmit.
|
|
90
90
|
Never change honest statuses or omit criteria merely to make a payload pass validation.
|
|
91
|
-
The tool rejects `failed` when a nonempty criterion list contains only `passed` probes.
|
|
92
|
-
If another technical failure prevents completion in that case, report this protocol limitation to Maestro instead of falsifying criterion results.
|
|
93
91
|
Do not delete a terminal artifact, edit workflow state, or use a different outcome to bypass an error.
|
|
94
92
|
If cleanup or the protocol cannot be completed safely, report the exact blocker and remaining changes to Maestro and stop.
|
|
95
93
|
Do not claim a saved result when the terminal call did not succeed.
|
package/docs/glossary.md
CHANGED
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
| `Expected result` | The observable result that a `probe` must produce. |
|
|
15
15
|
| `Artifact` | A saved workflow file, such as a `spec`, or a `handoff` between agents. |
|
|
16
16
|
| `Handoff` | A saved `builder` or `verifier` report with results, `probe` outcomes, and notes. |
|
|
17
|
+
| `Observability` | The owner's ability to inspect workflow progress and reported results. |
|
|
17
18
|
| `Run` or `pass` | One execution of the `builder` or `verifier` with a fresh conversation. |
|
|
18
19
|
| `Candidate` | The project files created by agents after a workflow `run` |
|
|
19
20
|
| `Finding` | A technical issue that the `verifier` records for an `owner` decision. |
|
|
20
|
-
| `Escalation` | An implementation question that the `builder` records in its `handoff` for an `owner` decision. |
|
|
21
|
+
| `Escalation` | An implementation question or reportable technical problem that the `builder` records in its `handoff` for an `owner` decision. |
|
|
21
22
|
| `GREEN FLAG` | The owner's explicit reply that approves the current `spec` and starts the `builder`. |
|
|
22
23
|
| `fix-code` | An `owner` decision that requests code fixes without changing the approved `spec`. |
|
|
23
24
|
| `reject` | An `owner` decision that declines a `finding` and records a reason. It does not mean that verification passed. |
|
package/docs/workflow.md
CHANGED
|
@@ -17,12 +17,25 @@ A `verifier` `handoff` can contain `findings`, which are technical issues.
|
|
|
17
17
|
|---|---|
|
|
18
18
|
| `Owner` | Decides requirements, scope, technical decisions, `spec` approval, `escalation` answers, and `finding` decisions. Performs the final review. |
|
|
19
19
|
| `Maestro` | Prepares the `spec` with the `owner`, records workflow progress, runs agents, presents issues, and saves `owner` decisions. |
|
|
20
|
-
| `Builder` | Implements the approved `spec` and runs every `probe`. Reports completion
|
|
20
|
+
| `Builder` | Implements the approved `spec` and runs every `probe`. Reports completion or an `escalation`, including technical problems that prevent completion. |
|
|
21
21
|
| `Verifier` | Independently runs every `probe` against the live project files. Reports `findings` without repairing product code. |
|
|
22
22
|
|
|
23
23
|
`Builder` and `verifier` `runs` are sequential foreground operations. Each starts with a fresh conversation and reads the `spec` and saved `artifacts`.
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
## Observability
|
|
26
|
+
|
|
27
|
+
`Observability` is the owner's ability to inspect workflow progress and reported results.
|
|
28
|
+
|
|
29
|
+
Maestro's Pi status shows the current phase.
|
|
30
|
+
|
|
31
|
+
`pi-subagents` FleetView and `/subagents-fleet` show live agent activity and transcripts.
|
|
32
|
+
|
|
33
|
+
Saved `handoffs` provide a structured account of each reported `run`.
|
|
34
|
+
The `builder` reports its outcome, `probe` results, notes, and any `escalation` questions.
|
|
35
|
+
The `verifier` reports its independent checks, results, and `findings`.
|
|
36
|
+
Recorded `owner` decisions explain how questions and issues were resolved. Earlier numbered reports remain available for inspection.
|
|
37
|
+
|
|
38
|
+
For example, the `owner` can read `B1.json` to see what the `builder` reports implementing and which `probes` it ran. `V1.json` shows what the `verifier` reports checking independently and which issues it found.
|
|
26
39
|
|
|
27
40
|
## Main flow
|
|
28
41
|
|
|
@@ -53,8 +66,6 @@ flowchart TD
|
|
|
53
66
|
ownerEscalation -->|Spec changes| reviseSpec[Owner and Maestro revise the spec]
|
|
54
67
|
reviseSpec --> approval
|
|
55
68
|
|
|
56
|
-
buildOutcome -->|Failed| stopped[Workflow stops for manual owner follow-up]
|
|
57
|
-
|
|
58
69
|
findings -->|One or more| ownerFindings[Owner decides every finding]
|
|
59
70
|
ownerFindings -->|Reject all with reasons| candidate
|
|
60
71
|
ownerFindings -->|Fix code| recordFixes[Maestro records the decisions]
|
|
@@ -64,7 +75,7 @@ flowchart TD
|
|
|
64
75
|
candidate --> summary
|
|
65
76
|
summary --> review
|
|
66
77
|
|
|
67
|
-
linkStyle 0,1,2,3,4,5,17
|
|
78
|
+
linkStyle 0,1,2,3,4,5,16,17 stroke:#2e7d32,stroke-width:3px
|
|
68
79
|
```
|
|
69
80
|
|
|
70
81
|
## Workflow phases
|
|
@@ -79,7 +90,6 @@ The default path is `.specs/<spec-id>/workflow.json`. The `spec` directory is [c
|
|
|
79
90
|
| `ready-for-builder` | The approved `spec` or recorded `owner` decisions permit a `builder` `run`. |
|
|
80
91
|
| `builder-running` | A `builder` `run` is active. |
|
|
81
92
|
| `escalation-decision` | The `owner` must decide how to handle every `escalation` question. |
|
|
82
|
-
| `builder-failed` | The `builder` recorded a technical failure. The workflow stops. |
|
|
83
93
|
| `ready-for-verifier` | The `builder` completed the work and the `verifier` can start. |
|
|
84
94
|
| `verifier-running` | A `verifier` `run` is active. |
|
|
85
95
|
| `findings-decision` | The `owner` must decide how to handle every current `finding`. |
|
|
@@ -110,7 +120,8 @@ Each criterion contains these parts:
|
|
|
110
120
|
|
|
111
121
|
## Escalations
|
|
112
122
|
|
|
113
|
-
An `escalation` returns an implementation decision
|
|
123
|
+
An `escalation` returns an implementation decision or a technical problem to the `owner`.
|
|
124
|
+
For instance a technical failure, an undefined behavior, a conflict with the `spec`, or a possible scope change.
|
|
114
125
|
|
|
115
126
|
The `builder` saves all questions from one `pass` in the `escalations` list of its numbered `handoff`. `Maestro` identifies each question with both report and `escalation` IDs, such as `B1/E1`. See [Escalation references](glossary.md#escalation-references) for their scope.
|
|
116
127
|
|
|
@@ -184,7 +195,10 @@ For example, a repair cycle with successful `builder` results produces these fil
|
|
|
184
195
|
|
|
185
196
|
If the first `builder` `run` escalates, it creates `B1.json` with its questions. `Owner` answers update `B1.json`. The next saved `builder` result creates `B2.json`.
|
|
186
197
|
|
|
187
|
-
A `builder` report
|
|
198
|
+
A `builder` report has `status: done` or `status: escalation`. A `done` report requires every recorded `probe` to pass and an empty `escalations` list.
|
|
199
|
+
An `escalation` retains actual `probe` results: `passed`, `failed`, or `not-run`.
|
|
200
|
+
|
|
201
|
+
Execution errors or missing or invalid saved results stop the workflow. See [Limitations](#limitations).
|
|
188
202
|
|
|
189
203
|
The default layout after multiple `runs` is:
|
|
190
204
|
|
|
@@ -213,7 +227,9 @@ One example is `gpt-luna-6` with `thinking: "low"`.
|
|
|
213
227
|
Moreover, the workflow works well with a defined harness: tests, lint for code rules, anti-slop checks for unwanted patterns, and `AGENTS.md`. `Maestro` does not supply these project-specific checks.
|
|
214
228
|
|
|
215
229
|
### No automatic rollback
|
|
216
|
-
|
|
230
|
+
Launch errors, delegation failures, timeouts, interruptions, cancellations, and missing or invalid `handoffs` stop the workflow without a recovery transition.
|
|
231
|
+
If a `run` saves no completed transition, its saved running phase remains unchanged. Partial protocol writes require manual `owner` follow-up.
|
|
232
|
+
`Maestro` provides no automatic rollback, repair, or recovery for these errors. The files that remain are available for `owner` inspection.
|
|
217
233
|
|
|
218
234
|
### No reconciliation
|
|
219
235
|
Disabling `Maestro`, restarting Pi, or using `/resume` clears live `Maestro` session state and leaves project files unchanged. `Maestro` starts disabled in a new or resumed session. Reactivating it does not reconstruct or resume a saved workflow.
|