agentplane 0.3.7 → 0.3.9
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/assets/AGENTS.md +11 -1
- package/assets/RUNNER.md +17 -0
- package/bin/agentplane.js +16 -7
- package/bin/framework-dev-contract.d.ts +6 -0
- package/bin/framework-dev-contract.js +13 -0
- package/bin/stale-dist-policy.js +6 -1
- package/dist/.build-manifest.json +692 -337
- package/dist/adapters/task-backend/task-backend-adapter.d.ts +3 -1
- package/dist/adapters/task-backend/task-backend-adapter.d.ts.map +1 -1
- package/dist/adapters/task-backend/task-backend-adapter.js +13 -0
- package/dist/backends/task-backend/local-backend-doc.d.ts +5 -0
- package/dist/backends/task-backend/local-backend-doc.d.ts.map +1 -0
- package/dist/backends/task-backend/local-backend-doc.js +98 -0
- package/dist/backends/task-backend/local-backend-read.d.ts +7 -0
- package/dist/backends/task-backend/local-backend-read.d.ts.map +1 -0
- package/dist/backends/task-backend/local-backend-read.js +186 -0
- package/dist/backends/task-backend/local-backend-state.d.ts +17 -0
- package/dist/backends/task-backend/local-backend-state.d.ts.map +1 -0
- package/dist/backends/task-backend/local-backend-state.js +50 -0
- package/dist/backends/task-backend/local-backend-write.d.ts +15 -0
- package/dist/backends/task-backend/local-backend-write.d.ts.map +1 -0
- package/dist/backends/task-backend/local-backend-write.js +254 -0
- package/dist/backends/task-backend/local-backend.d.ts +4 -2
- package/dist/backends/task-backend/local-backend.d.ts.map +1 -1
- package/dist/backends/task-backend/local-backend.js +26 -403
- package/dist/backends/task-backend/redmine/backend-cache-doc.d.ts +40 -0
- package/dist/backends/task-backend/redmine/backend-cache-doc.d.ts.map +1 -0
- package/dist/backends/task-backend/redmine/backend-cache-doc.js +178 -0
- package/dist/backends/task-backend/redmine/backend-report.d.ts +10 -0
- package/dist/backends/task-backend/redmine/backend-report.d.ts.map +1 -0
- package/dist/backends/task-backend/redmine/backend-report.js +43 -0
- package/dist/backends/task-backend/redmine/backend-sync.d.ts +67 -0
- package/dist/backends/task-backend/redmine/backend-sync.d.ts.map +1 -0
- package/dist/backends/task-backend/redmine/backend-sync.js +367 -0
- package/dist/backends/task-backend/redmine/mapping.d.ts +2 -1
- package/dist/backends/task-backend/redmine/mapping.d.ts.map +1 -1
- package/dist/backends/task-backend/redmine/mapping.js +12 -2
- package/dist/backends/task-backend/redmine/parse.d.ts +2 -1
- package/dist/backends/task-backend/redmine/parse.d.ts.map +1 -1
- package/dist/backends/task-backend/redmine/parse.js +5 -3
- package/dist/backends/task-backend/redmine/state.d.ts +2 -0
- package/dist/backends/task-backend/redmine/state.d.ts.map +1 -1
- package/dist/backends/task-backend/redmine/state.js +15 -1
- package/dist/backends/task-backend/redmine-backend.d.ts +5 -2
- package/dist/backends/task-backend/redmine-backend.d.ts.map +1 -1
- package/dist/backends/task-backend/redmine-backend.js +88 -536
- package/dist/backends/task-backend/shared/constants.d.ts +2 -1
- package/dist/backends/task-backend/shared/constants.d.ts.map +1 -1
- package/dist/backends/task-backend/shared/doc.d.ts.map +1 -1
- package/dist/backends/task-backend/shared/doc.js +25 -39
- package/dist/backends/task-backend/shared/export.d.ts +2 -9
- package/dist/backends/task-backend/shared/export.d.ts.map +1 -1
- package/dist/backends/task-backend/shared/export.js +73 -8
- package/dist/backends/task-backend/shared/normalize.d.ts +5 -1
- package/dist/backends/task-backend/shared/normalize.d.ts.map +1 -1
- package/dist/backends/task-backend/shared/normalize.js +166 -0
- package/dist/backends/task-backend/shared/record.d.ts +1 -1
- package/dist/backends/task-backend/shared/record.d.ts.map +1 -1
- package/dist/backends/task-backend/shared/record.js +7 -2
- package/dist/backends/task-backend/shared/types.d.ts +38 -36
- package/dist/backends/task-backend/shared/types.d.ts.map +1 -1
- package/dist/backends/task-backend/shared.d.ts +2 -2
- package/dist/backends/task-backend/shared.d.ts.map +1 -1
- package/dist/backends/task-backend/shared.js +1 -1
- package/dist/backends/task-backend.d.ts +1 -1
- package/dist/backends/task-backend.d.ts.map +1 -1
- package/dist/backends/task-backend.js +1 -1
- package/dist/backends/task-index.d.ts +2 -2
- package/dist/backends/task-index.d.ts.map +1 -1
- package/dist/backends/task-index.js +9 -6
- package/dist/cli/bootstrap-guide.d.ts +2 -2
- package/dist/cli/bootstrap-guide.d.ts.map +1 -1
- package/dist/cli/bootstrap-guide.js +10 -10
- package/dist/cli/command-guide.d.ts.map +1 -1
- package/dist/cli/command-guide.js +11 -9
- package/dist/cli/command-invocations.d.ts +4 -0
- package/dist/cli/command-invocations.d.ts.map +1 -0
- package/dist/cli/command-invocations.js +35 -0
- package/dist/cli/command-snippets.d.ts +12 -8
- package/dist/cli/command-snippets.d.ts.map +1 -1
- package/dist/cli/command-snippets.js +14 -8
- package/dist/cli/exit-codes.d.ts.map +1 -1
- package/dist/cli/exit-codes.js +1 -0
- package/dist/cli/group-command.d.ts +18 -0
- package/dist/cli/group-command.d.ts.map +1 -0
- package/dist/cli/group-command.js +45 -0
- package/dist/cli/output.d.ts +29 -0
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +76 -0
- package/dist/cli/prompts.d.ts.map +1 -1
- package/dist/cli/prompts.js +5 -1
- package/dist/cli/run-cli/command-catalog/core.d.ts.map +1 -1
- package/dist/cli/run-cli/command-catalog/core.js +38 -29
- package/dist/cli/run-cli/command-catalog/lifecycle.d.ts.map +1 -1
- package/dist/cli/run-cli/command-catalog/lifecycle.js +9 -6
- package/dist/cli/run-cli/command-catalog/project.d.ts +1 -1
- package/dist/cli/run-cli/command-catalog/project.d.ts.map +1 -1
- package/dist/cli/run-cli/command-catalog/project.js +8 -6
- package/dist/cli/run-cli/command-catalog/shared.d.ts +12 -3
- package/dist/cli/run-cli/command-catalog/shared.d.ts.map +1 -1
- package/dist/cli/run-cli/command-catalog/shared.js +6 -3
- package/dist/cli/run-cli/command-catalog/task.d.ts +1 -1
- package/dist/cli/run-cli/command-catalog/task.d.ts.map +1 -1
- package/dist/cli/run-cli/command-catalog/task.js +46 -11
- package/dist/cli/run-cli/command-catalog.d.ts +11 -1
- package/dist/cli/run-cli/command-catalog.d.ts.map +1 -1
- package/dist/cli/run-cli/command-catalog.js +29 -0
- package/dist/cli/run-cli/commands/config.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/config.js +52 -6
- package/dist/cli/run-cli/commands/core/agent-profiles.d.ts +34 -0
- package/dist/cli/run-cli/commands/core/agent-profiles.d.ts.map +1 -0
- package/dist/cli/run-cli/commands/core/agent-profiles.js +97 -0
- package/dist/cli/run-cli/commands/core/agents.d.ts +7 -0
- package/dist/cli/run-cli/commands/core/agents.d.ts.map +1 -0
- package/dist/cli/run-cli/commands/core/agents.js +97 -0
- package/dist/cli/run-cli/commands/core/preflight.d.ts +10 -0
- package/dist/cli/run-cli/commands/core/preflight.d.ts.map +1 -0
- package/dist/cli/run-cli/commands/core/preflight.js +286 -0
- package/dist/cli/run-cli/commands/core/quickstart.d.ts +8 -0
- package/dist/cli/run-cli/commands/core/quickstart.d.ts.map +1 -0
- package/dist/cli/run-cli/commands/core/quickstart.js +43 -0
- package/dist/cli/run-cli/commands/core/role.d.ts +9 -0
- package/dist/cli/run-cli/commands/core/role.d.ts.map +1 -0
- package/dist/cli/run-cli/commands/core/role.js +128 -0
- package/dist/cli/run-cli/commands/core.d.ts +4 -24
- package/dist/cli/run-cli/commands/core.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/core.js +4 -630
- package/dist/cli/run-cli/error-guidance.js +10 -0
- package/dist/cli/run-cli/globals.d.ts +5 -2
- package/dist/cli/run-cli/globals.d.ts.map +1 -1
- package/dist/cli/run-cli/globals.js +82 -86
- package/dist/cli/run-cli.d.ts.map +1 -1
- package/dist/cli/run-cli.js +137 -100
- package/dist/cli/run-cli.test-helpers.d.ts +21 -0
- package/dist/cli/run-cli.test-helpers.d.ts.map +1 -1
- package/dist/cli/run-cli.test-helpers.js +122 -12
- package/dist/cli/spec/help.d.ts +10 -2
- package/dist/cli/spec/help.d.ts.map +1 -1
- package/dist/cli/spec/help.js +7 -5
- package/dist/cli/spec/registry.d.ts +27 -1
- package/dist/cli/spec/registry.d.ts.map +1 -1
- package/dist/cli/spec/registry.js +98 -25
- package/dist/commands/backend/sync.command.d.ts +3 -5
- package/dist/commands/backend/sync.command.d.ts.map +1 -1
- package/dist/commands/backend/sync.command.js +9 -12
- package/dist/commands/backend.d.ts.map +1 -1
- package/dist/commands/backend.js +8 -7
- package/dist/commands/branch/base.command.d.ts +2 -3
- package/dist/commands/branch/base.command.d.ts.map +1 -1
- package/dist/commands/branch/base.command.js +8 -12
- package/dist/commands/branch/base.d.ts.map +1 -1
- package/dist/commands/branch/base.js +11 -7
- package/dist/commands/branch/cleanup-merged.d.ts.map +1 -1
- package/dist/commands/branch/cleanup-merged.js +9 -8
- package/dist/commands/branch/remove.d.ts.map +1 -1
- package/dist/commands/branch/remove.js +4 -3
- package/dist/commands/branch/status.d.ts.map +1 -1
- package/dist/commands/branch/status.js +4 -3
- package/dist/commands/branch/work-start.d.ts.map +1 -1
- package/dist/commands/branch/work-start.js +48 -5
- package/dist/commands/cleanup/merged.command.d.ts +2 -3
- package/dist/commands/cleanup/merged.command.d.ts.map +1 -1
- package/dist/commands/cleanup/merged.command.js +8 -12
- package/dist/commands/docs/cli.command.js +2 -2
- package/dist/commands/doctor/runtime.js +1 -1
- package/dist/commands/doctor/workflow.d.ts.map +1 -1
- package/dist/commands/doctor/workflow.js +10 -1
- package/dist/commands/finish.spec.d.ts.map +1 -1
- package/dist/commands/finish.spec.js +7 -0
- package/dist/commands/guard/guard.command.d.ts +3 -3
- package/dist/commands/guard/guard.command.d.ts.map +1 -1
- package/dist/commands/guard/guard.command.js +9 -14
- package/dist/commands/guard/impl/commands.d.ts +2 -0
- package/dist/commands/guard/impl/commands.d.ts.map +1 -1
- package/dist/commands/guard/impl/commands.js +55 -7
- package/dist/commands/guard/impl/policy.d.ts +1 -0
- package/dist/commands/guard/impl/policy.d.ts.map +1 -1
- package/dist/commands/guard/impl/policy.js +9 -6
- package/dist/commands/hooks/hooks.command.d.ts +3 -3
- package/dist/commands/hooks/hooks.command.d.ts.map +1 -1
- package/dist/commands/hooks/hooks.command.js +9 -11
- package/dist/commands/hooks/index.d.ts.map +1 -1
- package/dist/commands/hooks/index.js +8 -4
- package/dist/commands/pr/check.d.ts.map +1 -1
- package/dist/commands/pr/check.js +90 -18
- package/dist/commands/pr/integrate/cmd.d.ts.map +1 -1
- package/dist/commands/pr/integrate/cmd.js +31 -3
- package/dist/commands/pr/integrate/internal/cleanup.d.ts +12 -0
- package/dist/commands/pr/integrate/internal/cleanup.d.ts.map +1 -0
- package/dist/commands/pr/integrate/internal/cleanup.js +46 -0
- package/dist/commands/pr/integrate/internal/finalize.d.ts +4 -0
- package/dist/commands/pr/integrate/internal/finalize.d.ts.map +1 -1
- package/dist/commands/pr/integrate/internal/finalize.js +34 -40
- package/dist/commands/pr/integrate/internal/merge.d.ts +6 -0
- package/dist/commands/pr/integrate/internal/merge.d.ts.map +1 -1
- package/dist/commands/pr/integrate/internal/merge.js +92 -0
- package/dist/commands/pr/integrate/internal/prepare.d.ts +1 -0
- package/dist/commands/pr/integrate/internal/prepare.d.ts.map +1 -1
- package/dist/commands/pr/integrate/internal/prepare.js +1 -0
- package/dist/commands/pr/integrate/verify.d.ts.map +1 -1
- package/dist/commands/pr/integrate/verify.js +4 -3
- package/dist/commands/pr/note.d.ts.map +1 -1
- package/dist/commands/pr/note.js +3 -2
- package/dist/commands/pr/open.d.ts.map +1 -1
- package/dist/commands/pr/open.js +9 -12
- package/dist/commands/pr/pr.command.d.ts +3 -4
- package/dist/commands/pr/pr.command.d.ts.map +1 -1
- package/dist/commands/pr/pr.command.js +6 -11
- package/dist/commands/pr/update.d.ts.map +1 -1
- package/dist/commands/pr/update.js +5 -10
- package/dist/commands/recipes/cache.command.d.ts +3 -4
- package/dist/commands/recipes/cache.command.d.ts.map +1 -1
- package/dist/commands/recipes/cache.command.js +8 -26
- package/dist/commands/recipes/impl/apply.js +1 -1
- package/dist/commands/recipes/impl/commands/explain.js +1 -1
- package/dist/commands/recipes/impl/installed-recipes.d.ts.map +1 -1
- package/dist/commands/recipes/impl/installed-recipes.js +1 -1
- package/dist/commands/recipes/impl/manifest.d.ts.map +1 -1
- package/dist/commands/recipes/impl/manifest.js +0 -10
- package/dist/commands/recipes/impl/project-installed-recipes.d.ts.map +1 -1
- package/dist/commands/recipes/impl/project-installed-recipes.js +1 -1
- package/dist/commands/recipes/impl/resolver.d.ts +1 -1
- package/dist/commands/recipes/impl/resolver.d.ts.map +1 -1
- package/dist/commands/recipes/impl/resolver.js +26 -16
- package/dist/commands/recipes/impl/scenario.d.ts.map +1 -1
- package/dist/commands/recipes/impl/scenario.js +80 -0
- package/dist/commands/recipes/impl/types.d.ts +27 -13
- package/dist/commands/recipes/impl/types.d.ts.map +1 -1
- package/dist/commands/recipes/recipes.command.d.ts +3 -4
- package/dist/commands/recipes/recipes.command.d.ts.map +1 -1
- package/dist/commands/recipes/recipes.command.js +8 -34
- package/dist/commands/recipes.d.ts.map +1 -1
- package/dist/commands/recipes.test-helpers.d.ts +17 -0
- package/dist/commands/recipes.test-helpers.d.ts.map +1 -1
- package/dist/commands/recipes.test-helpers.js +56 -2
- package/dist/commands/release/apply.command.d.ts.map +1 -1
- package/dist/commands/release/apply.command.js +77 -56
- package/dist/commands/release/plan.command.d.ts.map +1 -1
- package/dist/commands/release/plan.command.js +7 -3
- package/dist/commands/release/release.command.d.ts +3 -3
- package/dist/commands/release/release.command.d.ts.map +1 -1
- package/dist/commands/release/release.command.js +9 -11
- package/dist/commands/release.test-helpers.d.ts +34 -0
- package/dist/commands/release.test-helpers.d.ts.map +1 -0
- package/dist/commands/release.test-helpers.js +48 -0
- package/dist/commands/runtime.command.d.ts +7 -7
- package/dist/commands/runtime.command.d.ts.map +1 -1
- package/dist/commands/runtime.command.js +29 -33
- package/dist/commands/scenario/execute.command.d.ts +8 -0
- package/dist/commands/scenario/execute.command.d.ts.map +1 -0
- package/dist/commands/scenario/execute.command.js +117 -0
- package/dist/commands/scenario/impl/commands.d.ts.map +1 -1
- package/dist/commands/scenario/impl/commands.js +45 -32
- package/dist/commands/scenario/run.command.js +2 -2
- package/dist/commands/scenario/scenario.command.d.ts +3 -4
- package/dist/commands/scenario/scenario.command.d.ts.map +1 -1
- package/dist/commands/scenario/scenario.command.js +8 -26
- package/dist/commands/shared/git-context.d.ts +1 -0
- package/dist/commands/shared/git-context.d.ts.map +1 -1
- package/dist/commands/shared/git-context.js +4 -2
- package/dist/commands/shared/git-ops.d.ts +1 -0
- package/dist/commands/shared/git-ops.d.ts.map +1 -1
- package/dist/commands/shared/git-ops.js +13 -0
- package/dist/commands/shared/operator-pipeline.d.ts +10 -0
- package/dist/commands/shared/operator-pipeline.d.ts.map +1 -0
- package/dist/commands/shared/operator-pipeline.js +16 -0
- package/dist/commands/shared/pr-meta.d.ts +32 -12
- package/dist/commands/shared/pr-meta.d.ts.map +1 -1
- package/dist/commands/shared/pr-meta.js +49 -14
- package/dist/commands/shared/reconcile-check.d.ts.map +1 -1
- package/dist/commands/shared/reconcile-check.js +28 -3
- package/dist/commands/shared/task-backend.d.ts +10 -6
- package/dist/commands/shared/task-backend.d.ts.map +1 -1
- package/dist/commands/shared/task-backend.js +99 -25
- package/dist/commands/shared/task-handoff.d.ts +64 -0
- package/dist/commands/shared/task-handoff.d.ts.map +1 -0
- package/dist/commands/shared/task-handoff.js +151 -0
- package/dist/commands/shared/task-mutation.d.ts +36 -0
- package/dist/commands/shared/task-mutation.d.ts.map +1 -0
- package/dist/commands/shared/task-mutation.js +67 -0
- package/dist/commands/shared/task-store.d.ts +5 -1
- package/dist/commands/shared/task-store.d.ts.map +1 -1
- package/dist/commands/shared/task-store.js +72 -92
- package/dist/commands/task/add.d.ts.map +1 -1
- package/dist/commands/task/add.js +41 -39
- package/dist/commands/task/block.d.ts.map +1 -1
- package/dist/commands/task/block.js +31 -110
- package/dist/commands/task/close-duplicate.d.ts.map +1 -1
- package/dist/commands/task/close-duplicate.js +0 -7
- package/dist/commands/task/close-noop.d.ts.map +1 -1
- package/dist/commands/task/close-noop.js +0 -21
- package/dist/commands/task/close-shared.d.ts +0 -2
- package/dist/commands/task/close-shared.d.ts.map +1 -1
- package/dist/commands/task/close-shared.js +25 -55
- package/dist/commands/task/comment.d.ts.map +1 -1
- package/dist/commands/task/comment.js +48 -37
- package/dist/commands/task/derive.d.ts.map +1 -1
- package/dist/commands/task/derive.js +14 -7
- package/dist/commands/task/doc.command.d.ts.map +1 -1
- package/dist/commands/task/doc.command.js +7 -6
- package/dist/commands/task/doc.d.ts.map +1 -1
- package/dist/commands/task/doc.js +58 -62
- package/dist/commands/task/finish-shared.d.ts +60 -0
- package/dist/commands/task/finish-shared.d.ts.map +1 -0
- package/dist/commands/task/finish-shared.js +181 -0
- package/dist/commands/task/finish.d.ts +1 -0
- package/dist/commands/task/finish.d.ts.map +1 -1
- package/dist/commands/task/finish.js +79 -210
- package/dist/commands/task/handoff-record.command.d.ts +17 -0
- package/dist/commands/task/handoff-record.command.d.ts.map +1 -0
- package/dist/commands/task/handoff-record.command.js +140 -0
- package/dist/commands/task/handoff-show.command.d.ts +8 -0
- package/dist/commands/task/handoff-show.command.d.ts.map +1 -0
- package/dist/commands/task/handoff-show.command.js +77 -0
- package/dist/commands/task/handoff.command.d.ts +7 -0
- package/dist/commands/task/handoff.command.d.ts.map +1 -0
- package/dist/commands/task/handoff.command.js +21 -0
- package/dist/commands/task/handoff.shared.d.ts +39 -0
- package/dist/commands/task/handoff.shared.d.ts.map +1 -0
- package/dist/commands/task/handoff.shared.js +134 -0
- package/dist/commands/task/hosted-close.command.d.ts +9 -0
- package/dist/commands/task/hosted-close.command.d.ts.map +1 -0
- package/dist/commands/task/hosted-close.command.js +190 -0
- package/dist/commands/task/hosted-merge-sync.d.ts +40 -0
- package/dist/commands/task/hosted-merge-sync.d.ts.map +1 -0
- package/dist/commands/task/hosted-merge-sync.js +277 -0
- package/dist/commands/task/list.d.ts.map +1 -1
- package/dist/commands/task/list.js +7 -24
- package/dist/commands/task/new.d.ts.map +1 -1
- package/dist/commands/task/new.js +26 -6
- package/dist/commands/task/next.d.ts.map +1 -1
- package/dist/commands/task/next.js +10 -28
- package/dist/commands/task/normalize.command.d.ts +1 -0
- package/dist/commands/task/normalize.command.d.ts.map +1 -1
- package/dist/commands/task/normalize.command.js +12 -0
- package/dist/commands/task/normalize.d.ts +1 -0
- package/dist/commands/task/normalize.d.ts.map +1 -1
- package/dist/commands/task/normalize.js +21 -9
- package/dist/commands/task/plan.command.d.ts +3 -4
- package/dist/commands/task/plan.command.d.ts.map +1 -1
- package/dist/commands/task/plan.command.js +6 -12
- package/dist/commands/task/plan.d.ts.map +1 -1
- package/dist/commands/task/plan.js +96 -103
- package/dist/commands/task/reclaim.command.d.ts +11 -0
- package/dist/commands/task/reclaim.command.d.ts.map +1 -0
- package/dist/commands/task/reclaim.command.js +102 -0
- package/dist/commands/task/resume-context.command.d.ts +9 -0
- package/dist/commands/task/resume-context.command.d.ts.map +1 -0
- package/dist/commands/task/resume-context.command.js +60 -0
- package/dist/commands/task/run-cancel.command.d.ts +6 -0
- package/dist/commands/task/run-cancel.command.d.ts.map +1 -0
- package/dist/commands/task/run-cancel.command.js +45 -0
- package/dist/commands/task/run-cancel.spec.d.ts +7 -0
- package/dist/commands/task/run-cancel.spec.d.ts.map +1 -0
- package/dist/commands/task/run-cancel.spec.js +20 -0
- package/dist/commands/task/run-resume.command.d.ts +6 -0
- package/dist/commands/task/run-resume.command.d.ts.map +1 -0
- package/dist/commands/task/run-resume.command.js +55 -0
- package/dist/commands/task/run-resume.spec.d.ts +7 -0
- package/dist/commands/task/run-resume.spec.d.ts.map +1 -0
- package/dist/commands/task/run-resume.spec.js +20 -0
- package/dist/commands/task/run-retry.command.d.ts +6 -0
- package/dist/commands/task/run-retry.command.d.ts.map +1 -0
- package/dist/commands/task/run-retry.command.js +56 -0
- package/dist/commands/task/run-retry.spec.d.ts +7 -0
- package/dist/commands/task/run-retry.spec.d.ts.map +1 -0
- package/dist/commands/task/run-retry.spec.js +20 -0
- package/dist/commands/task/run-show.command.d.ts +6 -0
- package/dist/commands/task/run-show.command.d.ts.map +1 -0
- package/dist/commands/task/run-show.command.js +133 -0
- package/dist/commands/task/run-show.spec.d.ts +8 -0
- package/dist/commands/task/run-show.spec.d.ts.map +1 -0
- package/dist/commands/task/run-show.spec.js +44 -0
- package/dist/commands/task/run-tail.command.d.ts +6 -0
- package/dist/commands/task/run-tail.command.d.ts.map +1 -0
- package/dist/commands/task/run-tail.command.js +26 -0
- package/dist/commands/task/run-tail.spec.d.ts +8 -0
- package/dist/commands/task/run-tail.spec.d.ts.map +1 -0
- package/dist/commands/task/run-tail.spec.js +51 -0
- package/dist/commands/task/run-trace.command.d.ts +6 -0
- package/dist/commands/task/run-trace.command.d.ts.map +1 -0
- package/dist/commands/task/run-trace.command.js +25 -0
- package/dist/commands/task/run-trace.spec.d.ts +7 -0
- package/dist/commands/task/run-trace.spec.d.ts.map +1 -0
- package/dist/commands/task/run-trace.spec.js +31 -0
- package/dist/commands/task/run.command.d.ts +6 -0
- package/dist/commands/task/run.command.d.ts.map +1 -0
- package/dist/commands/task/run.command.js +74 -0
- package/dist/commands/task/run.spec.d.ts +7 -0
- package/dist/commands/task/run.spec.d.ts.map +1 -0
- package/dist/commands/task/run.spec.js +26 -0
- package/dist/commands/task/scaffold.d.ts.map +1 -1
- package/dist/commands/task/scaffold.js +4 -2
- package/dist/commands/task/scrub.d.ts.map +1 -1
- package/dist/commands/task/scrub.js +27 -24
- package/dist/commands/task/search.d.ts.map +1 -1
- package/dist/commands/task/search.js +21 -31
- package/dist/commands/task/set-status.d.ts.map +1 -1
- package/dist/commands/task/set-status.js +36 -152
- package/dist/commands/task/shared/dependencies.d.ts +4 -4
- package/dist/commands/task/shared/dependencies.d.ts.map +1 -1
- package/dist/commands/task/shared/dependencies.js +10 -2
- package/dist/commands/task/shared/docs.d.ts +6 -1
- package/dist/commands/task/shared/docs.d.ts.map +1 -1
- package/dist/commands/task/shared/docs.js +13 -0
- package/dist/commands/task/shared/listing.d.ts +16 -2
- package/dist/commands/task/shared/listing.d.ts.map +1 -1
- package/dist/commands/task/shared/listing.js +56 -0
- package/dist/commands/task/shared/transition-command.d.ts +15 -0
- package/dist/commands/task/shared/transition-command.d.ts.map +1 -0
- package/dist/commands/task/shared/transition-command.js +43 -0
- package/dist/commands/task/shared/transitions.d.ts +39 -0
- package/dist/commands/task/shared/transitions.d.ts.map +1 -1
- package/dist/commands/task/shared/transitions.js +62 -1
- package/dist/commands/task/shared/workflow-transition-service.d.ts +75 -0
- package/dist/commands/task/shared/workflow-transition-service.d.ts.map +1 -0
- package/dist/commands/task/shared/workflow-transition-service.js +226 -0
- package/dist/commands/task/shared.d.ts +5 -3
- package/dist/commands/task/shared.d.ts.map +1 -1
- package/dist/commands/task/shared.js +5 -3
- package/dist/commands/task/show.d.ts.map +1 -1
- package/dist/commands/task/show.js +37 -3
- package/dist/commands/task/start.d.ts.map +1 -1
- package/dist/commands/task/start.js +33 -119
- package/dist/commands/task/task.command.d.ts +3 -4
- package/dist/commands/task/task.command.d.ts.map +1 -1
- package/dist/commands/task/task.command.js +22 -37
- package/dist/commands/task/verify-record.d.ts.map +1 -1
- package/dist/commands/task/verify-record.js +16 -141
- package/dist/commands/task/verify.command.d.ts.map +1 -1
- package/dist/commands/task/verify.command.js +7 -6
- package/dist/commands/task.test-helpers.d.ts +13 -0
- package/dist/commands/task.test-helpers.d.ts.map +1 -0
- package/dist/commands/task.test-helpers.js +65 -0
- package/dist/commands/upgrade/materialize.d.ts +28 -0
- package/dist/commands/upgrade/materialize.d.ts.map +1 -0
- package/dist/commands/upgrade/materialize.js +154 -0
- package/dist/commands/upgrade/plan.d.ts +18 -0
- package/dist/commands/upgrade/plan.d.ts.map +1 -0
- package/dist/commands/upgrade/plan.js +219 -0
- package/dist/commands/upgrade/policy.d.ts +24 -0
- package/dist/commands/upgrade/policy.d.ts.map +1 -0
- package/dist/commands/upgrade/policy.js +182 -0
- package/dist/commands/upgrade/report.d.ts.map +1 -1
- package/dist/commands/upgrade/report.js +7 -5
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +154 -642
- package/dist/commands/workflow.command.d.ts +3 -4
- package/dist/commands/workflow.command.d.ts.map +1 -1
- package/dist/commands/workflow.command.js +8 -25
- package/dist/ports/task-backend-port.d.ts +3 -1
- package/dist/ports/task-backend-port.d.ts.map +1 -1
- package/dist/runner/adapters/codex.d.ts +9 -0
- package/dist/runner/adapters/codex.d.ts.map +1 -0
- package/dist/runner/adapters/codex.js +414 -0
- package/dist/runner/adapters/custom.d.ts +12 -0
- package/dist/runner/adapters/custom.d.ts.map +1 -0
- package/dist/runner/adapters/custom.js +512 -0
- package/dist/runner/adapters/index.d.ts +8 -0
- package/dist/runner/adapters/index.d.ts.map +1 -0
- package/dist/runner/adapters/index.js +15 -0
- package/dist/runner/adapters/recipe-run-profile.d.ts +8 -0
- package/dist/runner/adapters/recipe-run-profile.d.ts.map +1 -0
- package/dist/runner/adapters/recipe-run-profile.js +53 -0
- package/dist/runner/adapters/shared.d.ts +45 -0
- package/dist/runner/adapters/shared.d.ts.map +1 -0
- package/dist/runner/adapters/shared.js +58 -0
- package/dist/runner/artifacts.d.ts +31 -0
- package/dist/runner/artifacts.d.ts.map +1 -0
- package/dist/runner/artifacts.js +153 -0
- package/dist/runner/codex-approval-probe.d.ts +23 -0
- package/dist/runner/codex-approval-probe.d.ts.map +1 -0
- package/dist/runner/codex-approval-probe.js +55 -0
- package/dist/runner/codex-smoke.d.ts +11 -0
- package/dist/runner/codex-smoke.d.ts.map +1 -0
- package/dist/runner/codex-smoke.js +45 -0
- package/dist/runner/config.d.ts +6 -0
- package/dist/runner/config.d.ts.map +1 -0
- package/dist/runner/config.js +15 -0
- package/dist/runner/context/base-prompts.d.ts +10 -0
- package/dist/runner/context/base-prompts.d.ts.map +1 -0
- package/dist/runner/context/base-prompts.js +255 -0
- package/dist/runner/context/recipe-context.d.ts +17 -0
- package/dist/runner/context/recipe-context.d.ts.map +1 -0
- package/dist/runner/context/recipe-context.js +48 -0
- package/dist/runner/context/task-context.d.ts +24 -0
- package/dist/runner/context/task-context.d.ts.map +1 -0
- package/dist/runner/context/task-context.js +266 -0
- package/dist/runner/index.d.ts +12 -0
- package/dist/runner/index.d.ts.map +1 -0
- package/dist/runner/index.js +11 -0
- package/dist/runner/policy-decision.d.ts +12 -0
- package/dist/runner/policy-decision.d.ts.map +1 -0
- package/dist/runner/policy-decision.js +89 -0
- package/dist/runner/policy-display.d.ts +4 -0
- package/dist/runner/policy-display.d.ts.map +1 -0
- package/dist/runner/policy-display.js +41 -0
- package/dist/runner/process-supervision.d.ts +48 -0
- package/dist/runner/process-supervision.d.ts.map +1 -0
- package/dist/runner/process-supervision.js +490 -0
- package/dist/runner/result-manifest-policy.d.ts +9 -0
- package/dist/runner/result-manifest-policy.d.ts.map +1 -0
- package/dist/runner/result-manifest-policy.js +96 -0
- package/dist/runner/result-manifest.d.ts +30 -0
- package/dist/runner/result-manifest.d.ts.map +1 -0
- package/dist/runner/result-manifest.js +322 -0
- package/dist/runner/run-id.d.ts +2 -0
- package/dist/runner/run-id.d.ts.map +1 -0
- package/dist/runner/run-id.js +3 -0
- package/dist/runner/run-repository.d.ts +51 -0
- package/dist/runner/run-repository.d.ts.map +1 -0
- package/dist/runner/run-repository.js +222 -0
- package/dist/runner/task-run-paths.d.ts +19 -0
- package/dist/runner/task-run-paths.d.ts.map +1 -0
- package/dist/runner/task-run-paths.js +25 -0
- package/dist/runner/task-state.d.ts +9 -0
- package/dist/runner/task-state.d.ts.map +1 -0
- package/dist/runner/task-state.js +354 -0
- package/dist/runner/test-helpers.d.ts +30 -0
- package/dist/runner/test-helpers.d.ts.map +1 -0
- package/dist/runner/test-helpers.js +97 -0
- package/dist/runner/trace-artifacts.d.ts +14 -0
- package/dist/runner/trace-artifacts.d.ts.map +1 -0
- package/dist/runner/trace-artifacts.js +80 -0
- package/dist/runner/trace.d.ts +10 -0
- package/dist/runner/trace.d.ts.map +1 -0
- package/dist/runner/trace.js +37 -0
- package/dist/runner/types.d.ts +317 -0
- package/dist/runner/types.d.ts.map +1 -0
- package/dist/runner/types.js +3 -0
- package/dist/runner/usecases/scenario-materialize-task.d.ts +29 -0
- package/dist/runner/usecases/scenario-materialize-task.d.ts.map +1 -0
- package/dist/runner/usecases/scenario-materialize-task.js +151 -0
- package/dist/runner/usecases/task-run-inspect.d.ts +41 -0
- package/dist/runner/usecases/task-run-inspect.d.ts.map +1 -0
- package/dist/runner/usecases/task-run-inspect.js +74 -0
- package/dist/runner/usecases/task-run-lifecycle-cancel.d.ts +10 -0
- package/dist/runner/usecases/task-run-lifecycle-cancel.d.ts.map +1 -0
- package/dist/runner/usecases/task-run-lifecycle-cancel.js +172 -0
- package/dist/runner/usecases/task-run-lifecycle-replay.d.ts +18 -0
- package/dist/runner/usecases/task-run-lifecycle-replay.d.ts.map +1 -0
- package/dist/runner/usecases/task-run-lifecycle-replay.js +128 -0
- package/dist/runner/usecases/task-run-lifecycle-shared.d.ts +45 -0
- package/dist/runner/usecases/task-run-lifecycle-shared.d.ts.map +1 -0
- package/dist/runner/usecases/task-run-lifecycle-shared.js +172 -0
- package/dist/runner/usecases/task-run-lifecycle.d.ts +4 -0
- package/dist/runner/usecases/task-run-lifecycle.d.ts.map +1 -0
- package/dist/runner/usecases/task-run-lifecycle.js +2 -0
- package/dist/runner/usecases/task-run.d.ts +32 -0
- package/dist/runner/usecases/task-run.d.ts.map +1 -0
- package/dist/runner/usecases/task-run.js +278 -0
- package/dist/shared/agent-emoji.d.ts.map +1 -1
- package/dist/shared/agent-emoji.js +1 -0
- package/dist/shared/errors.d.ts +1 -1
- package/dist/shared/errors.d.ts.map +1 -1
- package/dist/shared/guards.d.ts.map +1 -1
- package/dist/shared/guards.js +1 -0
- package/dist/shared/repo-cli-version.d.ts.map +1 -1
- package/dist/shared/repo-cli-version.js +7 -5
- package/dist/shared/task-doc-conflicts.d.ts +12 -0
- package/dist/shared/task-doc-conflicts.d.ts.map +1 -0
- package/dist/shared/task-doc-conflicts.js +40 -0
- package/dist/shared/task-doc-state.d.ts +10 -0
- package/dist/shared/task-doc-state.d.ts.map +1 -0
- package/dist/shared/task-doc-state.js +15 -0
- package/dist/test-helpers/fs.d.ts +2 -0
- package/dist/test-helpers/fs.d.ts.map +1 -0
- package/dist/test-helpers/fs.js +9 -0
- package/dist/usecases/context/resolve-context.d.ts +2 -0
- package/dist/usecases/context/resolve-context.d.ts.map +1 -1
- package/dist/usecases/context/resolve-context.js +4 -1
- package/dist/usecases/task/task-list-usecase.d.ts.map +1 -1
- package/dist/usecases/task/task-list-usecase.js +2 -8
- package/dist/workflow-runtime/fix.d.ts +9 -1
- package/dist/workflow-runtime/fix.d.ts.map +1 -1
- package/dist/workflow-runtime/fix.js +9 -1
- package/package.json +2 -2
- package/dist/backends/task-backend.test-helpers.d.ts +0 -4
- package/dist/backends/task-backend.test-helpers.d.ts.map +0 -1
- package/dist/backends/task-backend.test-helpers.js +0 -33
- package/dist/cli/run-cli/catalog.d.ts +0 -7
- package/dist/cli/run-cli/catalog.d.ts.map +0 -1
- package/dist/cli/run-cli/catalog.js +0 -22
- package/dist/cli/run-cli.core.pr-flow.test-helpers.d.ts +0 -3
- package/dist/cli/run-cli.core.pr-flow.test-helpers.d.ts.map +0 -1
- package/dist/cli/run-cli.core.pr-flow.test-helpers.js +0 -41
- package/dist/cli/run-cli.core.tasks.test-helpers.d.ts +0 -2
- package/dist/cli/run-cli.core.tasks.test-helpers.d.ts.map +0 -1
- package/dist/cli/run-cli.core.tasks.test-helpers.js +0 -6
- package/dist/commands/block.command.d.ts +0 -4
- package/dist/commands/block.command.d.ts.map +0 -1
- package/dist/commands/block.command.js +0 -2
- package/dist/commands/doctor.command.d.ts +0 -3
- package/dist/commands/doctor.command.d.ts.map +0 -1
- package/dist/commands/doctor.command.js +0 -2
- package/dist/commands/finish.command.d.ts +0 -4
- package/dist/commands/finish.command.d.ts.map +0 -1
- package/dist/commands/finish.command.js +0 -2
- package/dist/commands/recipes/install.command.d.ts +0 -3
- package/dist/commands/recipes/install.command.d.ts.map +0 -1
- package/dist/commands/recipes/install.command.js +0 -2
- package/dist/commands/start.command.d.ts +0 -4
- package/dist/commands/start.command.d.ts.map +0 -1
- package/dist/commands/start.command.js +0 -2
- package/dist/commands/task/list.command.d.ts +0 -4
- package/dist/commands/task/list.command.d.ts.map +0 -1
- package/dist/commands/task/list.command.js +0 -2
- package/dist/commands/task/next.command.d.ts +0 -4
- package/dist/commands/task/next.command.d.ts.map +0 -1
- package/dist/commands/task/next.command.js +0 -2
- package/dist/commands/task/search.command.d.ts +0 -4
- package/dist/commands/task/search.command.d.ts.map +0 -1
- package/dist/commands/task/search.command.js +0 -2
- package/dist/commands/task/show.command.d.ts +0 -4
- package/dist/commands/task/show.command.d.ts.map +0 -1
- package/dist/commands/task/show.command.js +0 -2
- package/dist/commands/verify.command.d.ts +0 -4
- package/dist/commands/verify.command.d.ts.map +0 -1
- package/dist/commands/verify.command.js +0 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
1
2
|
import { CliError } from "../../shared/errors.js";
|
|
2
3
|
const GLOBAL_FLAGS = [
|
|
3
4
|
{ key: "help", forms: ["--help", "-h"], takesValue: false, scoped: false },
|
|
@@ -10,28 +11,12 @@ const GLOBAL_FLAGS = [
|
|
|
10
11
|
];
|
|
11
12
|
const GLOBAL_FLAG_FORMS = new Map(GLOBAL_FLAGS.flatMap((def) => def.forms.map((form) => [form, def])));
|
|
12
13
|
const OUTPUT_MODE_ENV = "AGENTPLANE_OUTPUT";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (!arg)
|
|
20
|
-
continue;
|
|
21
|
-
const def = GLOBAL_FLAG_FORMS.get(arg);
|
|
22
|
-
if (!def) {
|
|
23
|
-
// First non-global token is treated as the start of the command id.
|
|
24
|
-
hasRest = true;
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
if (def.key === "jsonErrors" && !hasRest)
|
|
28
|
-
return true;
|
|
29
|
-
if (def.takesValue) {
|
|
30
|
-
// Skip the value if present; do not throw on missing value here.
|
|
31
|
-
i++;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return false;
|
|
14
|
+
function makeGlobalUsageError(message) {
|
|
15
|
+
return new CliError({
|
|
16
|
+
exitCode: 2,
|
|
17
|
+
code: "E_USAGE",
|
|
18
|
+
message,
|
|
19
|
+
});
|
|
35
20
|
}
|
|
36
21
|
export function parseGlobalArgs(argv) {
|
|
37
22
|
let help = false;
|
|
@@ -42,6 +27,12 @@ export function parseGlobalArgs(argv) {
|
|
|
42
27
|
let allowNetwork = false;
|
|
43
28
|
let outputMode;
|
|
44
29
|
const rest = [];
|
|
30
|
+
const result = (error) => ({
|
|
31
|
+
globals: { help, version, noUpdateCheck, root, jsonErrors, allowNetwork, outputMode },
|
|
32
|
+
rest,
|
|
33
|
+
jsonErrorMode: jsonErrors || outputMode === "json",
|
|
34
|
+
...(error ? { error } : {}),
|
|
35
|
+
});
|
|
45
36
|
for (let i = 0; i < argv.length; i++) {
|
|
46
37
|
const arg = argv[i];
|
|
47
38
|
if (!arg)
|
|
@@ -79,11 +70,7 @@ export function parseGlobalArgs(argv) {
|
|
|
79
70
|
case "root": {
|
|
80
71
|
const next = argv[i + 1];
|
|
81
72
|
if (!next) {
|
|
82
|
-
|
|
83
|
-
exitCode: 2,
|
|
84
|
-
code: "E_USAGE",
|
|
85
|
-
message: "Missing value after --root (expected repository path)",
|
|
86
|
-
});
|
|
73
|
+
return result(makeGlobalUsageError("Missing value after --root (expected repository path)"));
|
|
87
74
|
}
|
|
88
75
|
root = next;
|
|
89
76
|
i++;
|
|
@@ -92,19 +79,11 @@ export function parseGlobalArgs(argv) {
|
|
|
92
79
|
case "outputMode": {
|
|
93
80
|
const next = argv[i + 1];
|
|
94
81
|
if (!next) {
|
|
95
|
-
|
|
96
|
-
exitCode: 2,
|
|
97
|
-
code: "E_USAGE",
|
|
98
|
-
message: "Missing value after --output (expected text|json)",
|
|
99
|
-
});
|
|
82
|
+
return result(makeGlobalUsageError("Missing value after --output (expected text|json)"));
|
|
100
83
|
}
|
|
101
84
|
const normalized = next.trim().toLowerCase();
|
|
102
85
|
if (normalized !== "text" && normalized !== "json") {
|
|
103
|
-
|
|
104
|
-
exitCode: 2,
|
|
105
|
-
code: "E_USAGE",
|
|
106
|
-
message: `Invalid value for --output: ${next} (expected text|json)`,
|
|
107
|
-
});
|
|
86
|
+
return result(makeGlobalUsageError(`Invalid value for --output: ${next} (expected text|json)`));
|
|
108
87
|
}
|
|
109
88
|
outputMode = normalized;
|
|
110
89
|
i++;
|
|
@@ -116,10 +95,7 @@ export function parseGlobalArgs(argv) {
|
|
|
116
95
|
}
|
|
117
96
|
}
|
|
118
97
|
}
|
|
119
|
-
return
|
|
120
|
-
globals: { help, version, noUpdateCheck, root, jsonErrors, allowNetwork, outputMode },
|
|
121
|
-
rest,
|
|
122
|
-
};
|
|
98
|
+
return result();
|
|
123
99
|
}
|
|
124
100
|
export function resolveOutputMode(modeFromFlag) {
|
|
125
101
|
if (modeFromFlag)
|
|
@@ -142,56 +118,76 @@ function chunkToString(chunk, encoding) {
|
|
|
142
118
|
return Buffer.from(chunk).toString(encoding);
|
|
143
119
|
return String(chunk);
|
|
144
120
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
121
|
+
const structuredOutputStore = new AsyncLocalStorage();
|
|
122
|
+
let passthroughStdoutWrite = process.stdout.write.bind(process.stdout);
|
|
123
|
+
let passthroughStderrWrite = process.stderr.write.bind(process.stderr);
|
|
124
|
+
function appendStructuredChunk(channel, chunk, rest) {
|
|
125
|
+
const store = structuredOutputStore.getStore();
|
|
126
|
+
if (!store)
|
|
127
|
+
return false;
|
|
128
|
+
const encoding = typeof rest[0] === "string" ? rest[0] : undefined;
|
|
129
|
+
store[channel].push(chunkToString(chunk, encoding));
|
|
130
|
+
const callback = rest.find((item) => typeof item === "function");
|
|
131
|
+
callback?.(null);
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
const structuredStdoutWrite = ((chunk, ...rest) => {
|
|
135
|
+
if (appendStructuredChunk("stdout", chunk, rest))
|
|
157
136
|
return true;
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const callback = rest.find((item) => typeof item === "function");
|
|
163
|
-
callback?.(null);
|
|
137
|
+
return passthroughStdoutWrite(chunk, ...rest);
|
|
138
|
+
});
|
|
139
|
+
const structuredStderrWrite = ((chunk, ...rest) => {
|
|
140
|
+
if (appendStructuredChunk("stderr", chunk, rest))
|
|
164
141
|
return true;
|
|
142
|
+
return passthroughStderrWrite(chunk, ...rest);
|
|
143
|
+
});
|
|
144
|
+
function ensureStructuredOutputProxyInstalled() {
|
|
145
|
+
if (process.stdout.write !== structuredStdoutWrite) {
|
|
146
|
+
passthroughStdoutWrite = process.stdout.write.bind(process.stdout);
|
|
147
|
+
process.stdout.write = structuredStdoutWrite;
|
|
148
|
+
}
|
|
149
|
+
if (process.stderr.write !== structuredStderrWrite) {
|
|
150
|
+
passthroughStderrWrite = process.stderr.write.bind(process.stderr);
|
|
151
|
+
process.stderr.write = structuredStderrWrite;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async function collectStructuredOutput(run) {
|
|
155
|
+
ensureStructuredOutputProxyInstalled();
|
|
156
|
+
return await structuredOutputStore.run({ stdout: [], stderr: [] }, async () => {
|
|
157
|
+
const exitCode = await run();
|
|
158
|
+
const store = structuredOutputStore.getStore();
|
|
159
|
+
return {
|
|
160
|
+
exitCode,
|
|
161
|
+
stdout: store?.stdout.join("").trim() ?? "",
|
|
162
|
+
stderr: store?.stderr.join("").trim() ?? "",
|
|
163
|
+
};
|
|
165
164
|
});
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
parsed = undefined;
|
|
176
|
-
}
|
|
165
|
+
}
|
|
166
|
+
export async function runWithOutputMode(opts) {
|
|
167
|
+
if (opts.mode === "text")
|
|
168
|
+
return await opts.run();
|
|
169
|
+
const { exitCode, stdout, stderr } = await collectStructuredOutput(opts.run);
|
|
170
|
+
let parsed;
|
|
171
|
+
if (stdout.length > 0) {
|
|
172
|
+
try {
|
|
173
|
+
parsed = JSON.parse(stdout);
|
|
177
174
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
mode: "agent_json_v1",
|
|
181
|
-
command: opts.command,
|
|
182
|
-
ok: exitCode === 0,
|
|
183
|
-
exit_code: exitCode,
|
|
184
|
-
stdout: trimmedStdout,
|
|
185
|
-
stderr: stderr.trim(),
|
|
186
|
-
};
|
|
187
|
-
if (parsed !== undefined) {
|
|
188
|
-
payload.data = parsed;
|
|
175
|
+
catch {
|
|
176
|
+
parsed = undefined;
|
|
189
177
|
}
|
|
190
|
-
stdoutWrite(`${JSON.stringify(payload, null, 2)}\n`);
|
|
191
|
-
return exitCode;
|
|
192
178
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
179
|
+
const payload = {
|
|
180
|
+
schema_version: 1,
|
|
181
|
+
mode: "agent_json_v1",
|
|
182
|
+
command: opts.command,
|
|
183
|
+
ok: exitCode === 0,
|
|
184
|
+
exit_code: exitCode,
|
|
185
|
+
stdout,
|
|
186
|
+
stderr,
|
|
187
|
+
};
|
|
188
|
+
if (parsed !== undefined) {
|
|
189
|
+
payload.data = parsed;
|
|
196
190
|
}
|
|
191
|
+
passthroughStdoutWrite(`${JSON.stringify(payload, null, 2)}\n`);
|
|
192
|
+
return exitCode;
|
|
197
193
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":"AAgDA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+P5D"}
|
package/dist/cli/run-cli.js
CHANGED
|
@@ -7,11 +7,11 @@ import { resolveContext } from "../usecases/context/resolve-context.js";
|
|
|
7
7
|
import { getVersion } from "../meta/version.js";
|
|
8
8
|
import { getApprovalRequirements } from "../commands/shared/approval-requirements.js";
|
|
9
9
|
import { parseCommandArgv } from "./spec/parse.js";
|
|
10
|
-
import { helpSpec } from "./spec/help.js";
|
|
10
|
+
import { helpSpec, makeHelpHandler } from "./spec/help.js";
|
|
11
11
|
import { usageError } from "./spec/errors.js";
|
|
12
12
|
import { suggestOne } from "./spec/suggest.js";
|
|
13
|
-
import { matchCommandCatalog } from "./run-cli/catalog.js";
|
|
14
|
-
import {
|
|
13
|
+
import { COMMANDS, matchCommandCatalog } from "./run-cli/command-catalog.js";
|
|
14
|
+
import { parseGlobalArgs, resolveOutputMode, runWithOutputMode } from "./run-cli/globals.js";
|
|
15
15
|
import { writeError } from "./run-cli/error-guidance.js";
|
|
16
16
|
import { maybeWarnOnUpdate } from "./run-cli/update-warning.js";
|
|
17
17
|
const HELP_TAIL_OPTIONS = new Set(["--compact", "--json"]);
|
|
@@ -33,11 +33,26 @@ async function maybeResolveProject(opts) {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
export async function runCli(argv) {
|
|
36
|
-
let jsonErrors =
|
|
36
|
+
let jsonErrors = false;
|
|
37
37
|
try {
|
|
38
|
-
const
|
|
38
|
+
const parsedGlobals = parseGlobalArgs(argv);
|
|
39
|
+
jsonErrors = parsedGlobals.jsonErrorMode;
|
|
40
|
+
if (parsedGlobals.error) {
|
|
41
|
+
throw parsedGlobals.error;
|
|
42
|
+
}
|
|
43
|
+
const { globals, rest } = parsedGlobals;
|
|
39
44
|
const outputMode = resolveOutputMode(globals.outputMode);
|
|
40
45
|
jsonErrors = globals.jsonErrors || outputMode === "json";
|
|
46
|
+
const cwd = process.cwd();
|
|
47
|
+
let matched = null;
|
|
48
|
+
let maybeResolvedProjectPromise = null;
|
|
49
|
+
const getMaybeResolvedProject = async () => {
|
|
50
|
+
maybeResolvedProjectPromise ??=
|
|
51
|
+
matched?.entry.dispatch.project === false
|
|
52
|
+
? Promise.resolve(null)
|
|
53
|
+
: maybeResolveProject({ cwd, rootOverride: globals.root });
|
|
54
|
+
return await maybeResolvedProjectPromise;
|
|
55
|
+
};
|
|
41
56
|
if (globals.version) {
|
|
42
57
|
return await runWithOutputMode({
|
|
43
58
|
mode: outputMode,
|
|
@@ -48,41 +63,117 @@ export async function runCli(argv) {
|
|
|
48
63
|
},
|
|
49
64
|
});
|
|
50
65
|
}
|
|
51
|
-
const
|
|
66
|
+
const helpRegistryEntries = [
|
|
67
|
+
{ spec: helpSpec },
|
|
68
|
+
...COMMANDS.map((entry) => ({ spec: entry.spec })),
|
|
69
|
+
];
|
|
70
|
+
const helpRegistry = {
|
|
71
|
+
list: () => helpRegistryEntries,
|
|
72
|
+
match: (tokens) => {
|
|
73
|
+
if (tokens[0] === "help") {
|
|
74
|
+
return { spec: helpSpec, consumed: 1 };
|
|
75
|
+
}
|
|
76
|
+
const match = matchCommandCatalog(tokens);
|
|
77
|
+
return match ? { spec: match.entry.spec, consumed: match.consumed } : null;
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
const runHelp = makeHelpHandler(helpRegistry);
|
|
81
|
+
let projectPromise = null;
|
|
82
|
+
const getResolvedProject = async (commandForErrorContext) => {
|
|
83
|
+
projectPromise ??= (async () => {
|
|
84
|
+
const resolved = await getMaybeResolvedProject();
|
|
85
|
+
return resolved ?? (await resolveProject({ cwd, rootOverride: globals.root ?? null }));
|
|
86
|
+
})();
|
|
87
|
+
try {
|
|
88
|
+
return await projectPromise;
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
throw mapCoreError(err, { command: commandForErrorContext, root: globals.root ?? null });
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
let configPromise = null;
|
|
95
|
+
const getLoadedConfig = async (commandForErrorContext) => {
|
|
96
|
+
configPromise ??= (async () => {
|
|
97
|
+
const project = await getResolvedProject(commandForErrorContext);
|
|
98
|
+
await loadDotEnv(project.gitRoot);
|
|
99
|
+
return await loadConfig(project.agentplaneDir);
|
|
100
|
+
})();
|
|
101
|
+
try {
|
|
102
|
+
return await configPromise;
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
throw mapCoreError(err, { command: commandForErrorContext, root: globals.root ?? null });
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
let ctxPromise = null;
|
|
109
|
+
const getCtx = async (commandForErrorContext) => {
|
|
110
|
+
ctxPromise ??= (async () => {
|
|
111
|
+
const resolvedProject = await getResolvedProject(commandForErrorContext);
|
|
112
|
+
const loadedConfig = await getLoadedConfig(commandForErrorContext);
|
|
113
|
+
return await resolveContext({
|
|
114
|
+
cwd,
|
|
115
|
+
rootOverride: globals.root ?? null,
|
|
116
|
+
resolvedProject,
|
|
117
|
+
config: loadedConfig.config,
|
|
118
|
+
});
|
|
119
|
+
})();
|
|
120
|
+
try {
|
|
121
|
+
return await ctxPromise;
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
throw mapCoreError(err, { command: commandForErrorContext, root: globals.root ?? null });
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
const getCtxOrThrow = async (commandForErrorContext) => {
|
|
128
|
+
if (matched?.entry.dispatch.taskContext === false) {
|
|
129
|
+
throw new CliError({
|
|
130
|
+
exitCode: exitCodeForError("E_INTERNAL"),
|
|
131
|
+
code: "E_INTERNAL",
|
|
132
|
+
message: `Internal error: command does not require task context but attempted to load it: ${commandForErrorContext}`,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
return await getCtx(commandForErrorContext);
|
|
136
|
+
};
|
|
137
|
+
const buildRuntimeRegistry = async () => {
|
|
52
138
|
const { buildRegistry } = await import("./run-cli/registry.run.js");
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
getLoadedConfig: reject("getLoadedConfig"),
|
|
139
|
+
return buildRegistry({
|
|
140
|
+
getCtx: getCtxOrThrow,
|
|
141
|
+
getResolvedProject,
|
|
142
|
+
getLoadedConfig,
|
|
58
143
|
});
|
|
59
|
-
|
|
60
|
-
|
|
144
|
+
};
|
|
145
|
+
let runtimeRegistryPromise = null;
|
|
146
|
+
const getRuntimeRegistry = async () => {
|
|
147
|
+
runtimeRegistryPromise ??= buildRuntimeRegistry();
|
|
148
|
+
return await runtimeRegistryPromise;
|
|
149
|
+
};
|
|
150
|
+
const runFastHelp = async (helpArgv) => {
|
|
151
|
+
if (helpArgv[0] !== "help") {
|
|
61
152
|
throw new CliError({
|
|
62
|
-
exitCode: exitCodeForError("
|
|
63
|
-
code: "
|
|
64
|
-
message: "
|
|
153
|
+
exitCode: exitCodeForError("E_INTERNAL"),
|
|
154
|
+
code: "E_INTERNAL",
|
|
155
|
+
message: "Internal error: fast help must be invoked through helpSpec",
|
|
65
156
|
});
|
|
66
157
|
}
|
|
67
|
-
const
|
|
68
|
-
const parsed = parseCommandArgv(match.spec, tail).parsed;
|
|
158
|
+
const parsed = parseCommandArgv(helpSpec, helpArgv.slice(1)).parsed;
|
|
69
159
|
return await runWithOutputMode({
|
|
70
160
|
mode: outputMode,
|
|
71
|
-
command:
|
|
72
|
-
run: async () => {
|
|
73
|
-
return await match.handler({ cwd: process.cwd(), rootOverride: globals.root }, parsed);
|
|
74
|
-
},
|
|
161
|
+
command: helpSpec.id.join(" "),
|
|
162
|
+
run: async () => await runHelp({ cwd, rootOverride: globals.root }, parsed),
|
|
75
163
|
});
|
|
76
164
|
};
|
|
77
165
|
// `--help` is treated as an alias for `help` and supports per-command help:
|
|
78
166
|
// - agentplane --help
|
|
79
167
|
// - agentplane <cmd...> --help [--compact|--json]
|
|
80
168
|
if (globals.help) {
|
|
81
|
-
|
|
169
|
+
if (rest[0] === "help") {
|
|
170
|
+
return await runFastHelp(rest);
|
|
171
|
+
}
|
|
172
|
+
const matchedHelp = helpRegistry.match(rest);
|
|
82
173
|
if (matchedHelp) {
|
|
83
174
|
const rawHelpTail = rest.slice(matchedHelp.consumed);
|
|
84
175
|
const commandFlags = new Set();
|
|
85
|
-
for (const opt of matchedHelp.
|
|
176
|
+
for (const opt of matchedHelp.spec.options ?? []) {
|
|
86
177
|
const optRecord = opt;
|
|
87
178
|
const long = typeof optRecord.name === "string" ? optRecord.name.trim() : "";
|
|
88
179
|
if (long)
|
|
@@ -100,52 +191,26 @@ export async function runCli(argv) {
|
|
|
100
191
|
});
|
|
101
192
|
}
|
|
102
193
|
const helpTail = rawHelpTail.filter((token) => token.startsWith("-") && HELP_TAIL_OPTIONS.has(token));
|
|
103
|
-
return await
|
|
194
|
+
return await runFastHelp(["help", ...matchedHelp.spec.id, ...helpTail]);
|
|
104
195
|
}
|
|
105
|
-
return await
|
|
196
|
+
return await runFastHelp(["help", ...rest]);
|
|
106
197
|
}
|
|
107
198
|
if (rest.length === 0) {
|
|
108
|
-
return await
|
|
199
|
+
return await runFastHelp(["help"]);
|
|
109
200
|
}
|
|
110
|
-
//
|
|
201
|
+
// `agentplane help ...` stays on the fast path and does not require project resolution.
|
|
111
202
|
if (rest[0] === "help") {
|
|
112
|
-
return await
|
|
203
|
+
return await runFastHelp(rest);
|
|
113
204
|
}
|
|
114
|
-
|
|
115
|
-
const
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
: await maybeResolveProject({ cwd, rootOverride: globals.root });
|
|
119
|
-
let projectPromise = resolved
|
|
120
|
-
? Promise.resolve(resolved)
|
|
121
|
-
: null;
|
|
122
|
-
const getResolvedProject = async (commandForErrorContext) => {
|
|
123
|
-
projectPromise ??= resolveProject({ cwd, rootOverride: globals.root ?? null });
|
|
124
|
-
try {
|
|
125
|
-
return await projectPromise;
|
|
126
|
-
}
|
|
127
|
-
catch (err) {
|
|
128
|
-
throw mapCoreError(err, { command: commandForErrorContext, root: globals.root ?? null });
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
let configPromise = null;
|
|
132
|
-
const getLoadedConfig = async (commandForErrorContext) => {
|
|
133
|
-
configPromise ??= (async () => {
|
|
134
|
-
const project = await getResolvedProject(commandForErrorContext);
|
|
135
|
-
await loadDotEnv(project.gitRoot);
|
|
136
|
-
return await loadConfig(project.agentplaneDir);
|
|
137
|
-
})();
|
|
138
|
-
try {
|
|
139
|
-
return await configPromise;
|
|
140
|
-
}
|
|
141
|
-
catch (err) {
|
|
142
|
-
throw mapCoreError(err, { command: commandForErrorContext, root: globals.root ?? null });
|
|
143
|
-
}
|
|
144
|
-
};
|
|
205
|
+
matched = matchCommandCatalog(rest);
|
|
206
|
+
const resolved = await getMaybeResolvedProject();
|
|
207
|
+
const matchedDispatch = matched?.entry.dispatch ?? null;
|
|
208
|
+
const commandNeedsLoadedConfig = matchedDispatch?.loadedConfig === true;
|
|
145
209
|
// `require_network=true` means "no network without explicit approval".
|
|
146
|
-
// Update-check is
|
|
210
|
+
// Update-check is optional and should only cross the loaded-config boundary
|
|
211
|
+
// when the matched command will cross it anyway.
|
|
147
212
|
let skipUpdateCheckForPolicy = true;
|
|
148
|
-
if (resolved &&
|
|
213
|
+
if (resolved && commandNeedsLoadedConfig && !globals.noUpdateCheck) {
|
|
149
214
|
try {
|
|
150
215
|
const loaded = await getLoadedConfig("update-check");
|
|
151
216
|
const requireNetwork = getApprovalRequirements({
|
|
@@ -162,53 +227,25 @@ export async function runCli(argv) {
|
|
|
162
227
|
}
|
|
163
228
|
await maybeWarnOnUpdate({
|
|
164
229
|
currentVersion: getVersion(),
|
|
165
|
-
skip: globals.noUpdateCheck || skipUpdateCheckForPolicy ||
|
|
230
|
+
skip: globals.noUpdateCheck || skipUpdateCheckForPolicy || !commandNeedsLoadedConfig,
|
|
166
231
|
jsonErrors,
|
|
167
232
|
});
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
const loadedConfig = await getLoadedConfig(commandForErrorContext);
|
|
173
|
-
return await resolveContext({
|
|
174
|
-
cwd,
|
|
175
|
-
rootOverride: globals.root ?? null,
|
|
176
|
-
resolvedProject,
|
|
177
|
-
config: loadedConfig.config,
|
|
178
|
-
});
|
|
179
|
-
})();
|
|
180
|
-
try {
|
|
181
|
-
return await ctxPromise;
|
|
182
|
-
}
|
|
183
|
-
catch (err) {
|
|
184
|
-
throw mapCoreError(err, { command: commandForErrorContext, root: globals.root ?? null });
|
|
185
|
-
}
|
|
186
|
-
};
|
|
187
|
-
const getCtxOrThrow = async (commandForErrorContext) => {
|
|
188
|
-
if (matched?.entry.needsTaskContext === false) {
|
|
233
|
+
const registry = await getRuntimeRegistry();
|
|
234
|
+
if (matched) {
|
|
235
|
+
const runtimeEntry = registry.lookup(matched.entry.spec.id);
|
|
236
|
+
if (!runtimeEntry) {
|
|
189
237
|
throw new CliError({
|
|
190
238
|
exitCode: exitCodeForError("E_INTERNAL"),
|
|
191
239
|
code: "E_INTERNAL",
|
|
192
|
-
message: `Internal error:
|
|
240
|
+
message: `Internal error: runtime registry missing command: ${matched.entry.spec.id.join(" ")}`,
|
|
193
241
|
});
|
|
194
242
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
// cli2 command routing (single router).
|
|
198
|
-
const { buildRegistry } = await import("./run-cli/registry.run.js");
|
|
199
|
-
const registry = buildRegistry({
|
|
200
|
-
getCtx: getCtxOrThrow,
|
|
201
|
-
getResolvedProject,
|
|
202
|
-
getLoadedConfig,
|
|
203
|
-
});
|
|
204
|
-
const match = registry.match(rest);
|
|
205
|
-
if (match) {
|
|
206
|
-
const tail = rest.slice(match.consumed);
|
|
207
|
-
const parsed = parseCommandArgv(match.spec, tail).parsed;
|
|
243
|
+
const tail = rest.slice(matched.consumed);
|
|
244
|
+
const parsed = parseCommandArgv(runtimeEntry.spec, tail).parsed;
|
|
208
245
|
return await runWithOutputMode({
|
|
209
246
|
mode: outputMode,
|
|
210
|
-
command:
|
|
211
|
-
run: async () => await
|
|
247
|
+
command: runtimeEntry.spec.id.join(" "),
|
|
248
|
+
run: async () => await runtimeEntry.handler({ cwd, rootOverride: globals.root }, parsed),
|
|
212
249
|
});
|
|
213
250
|
}
|
|
214
251
|
const input = rest.join(" ");
|
|
@@ -8,12 +8,33 @@ export declare function captureStdIO(): {
|
|
|
8
8
|
readonly stderr: string;
|
|
9
9
|
restore(): void;
|
|
10
10
|
};
|
|
11
|
+
export type AgentJsonEnvelope = {
|
|
12
|
+
schema_version?: number;
|
|
13
|
+
mode?: string;
|
|
14
|
+
command?: string;
|
|
15
|
+
ok?: boolean;
|
|
16
|
+
exit_code?: number;
|
|
17
|
+
stdout?: string;
|
|
18
|
+
stderr?: string;
|
|
19
|
+
data?: unknown;
|
|
20
|
+
};
|
|
21
|
+
export declare function splitOutputLines(text: string): string[];
|
|
22
|
+
export declare function parseAgentJsonEnvelope(stdout: string): AgentJsonEnvelope;
|
|
23
|
+
export declare function expectAgentJsonEnvelope(payload: AgentJsonEnvelope, opts: {
|
|
24
|
+
command: string;
|
|
25
|
+
ok: boolean;
|
|
26
|
+
exitCode: number;
|
|
27
|
+
hasData?: boolean;
|
|
28
|
+
}): void;
|
|
11
29
|
export declare function silenceStdIO(): () => void;
|
|
12
30
|
export declare function stubTaskBackend(overrides?: Partial<TaskBackend>): TaskBackend;
|
|
13
31
|
export declare function runCliSilent(args: string[]): Promise<number>;
|
|
14
32
|
export declare function mkGitRepoRoot(): Promise<string>;
|
|
15
33
|
export declare function mkTempDir(): Promise<string>;
|
|
16
34
|
export declare function writeDefaultConfig(root: string): Promise<void>;
|
|
35
|
+
export declare function writeAndConfigureRoot(): Promise<string>;
|
|
36
|
+
export declare function approveTaskPlan(root: string, taskId: string): Promise<void>;
|
|
37
|
+
export declare function recordVerificationOk(root: string, taskId: string): Promise<void>;
|
|
17
38
|
export declare function writeConfig(root: string, config: ReturnType<typeof defaultConfig>): Promise<void>;
|
|
18
39
|
export declare function resetAgentplaneHomeRecipes(): Promise<void>;
|
|
19
40
|
export declare function createRecipeArchive(opts?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-cli.test-helpers.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.test-helpers.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"run-cli.test-helpers.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.test-helpers.ts"],"names":[],"mappings":"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"}
|