@proletariat/cli 0.3.71 → 0.3.73
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/dist/commands/action/create.d.ts +6 -2
- package/dist/commands/action/create.js +108 -40
- package/dist/commands/action/create.js.map +1 -1
- package/dist/commands/action/delete.js +1 -1
- package/dist/commands/action/delete.js.map +1 -1
- package/dist/commands/action/list.d.ts +1 -1
- package/dist/commands/action/list.js +12 -10
- package/dist/commands/action/list.js.map +1 -1
- package/dist/commands/action/run.js +3 -3
- package/dist/commands/action/run.js.map +1 -1
- package/dist/commands/action/show.js +25 -4
- package/dist/commands/action/show.js.map +1 -1
- package/dist/commands/action/update.d.ts +6 -2
- package/dist/commands/action/update.js +131 -53
- package/dist/commands/action/update.js.map +1 -1
- package/dist/commands/agent/auth.js +4 -0
- package/dist/commands/agent/auth.js.map +1 -1
- package/dist/commands/agent/cleanup.js +1 -1
- package/dist/commands/agent/cleanup.js.map +1 -1
- package/dist/commands/agent/discover.js +1 -0
- package/dist/commands/agent/discover.js.map +1 -1
- package/dist/commands/agent/index.js +2 -0
- package/dist/commands/agent/index.js.map +1 -1
- package/dist/commands/agent/rebuild.js +1 -1
- package/dist/commands/agent/rebuild.js.map +1 -1
- package/dist/commands/agent/remove.js +1 -1
- package/dist/commands/agent/remove.js.map +1 -1
- package/dist/commands/agent/restart.js +1 -1
- package/dist/commands/agent/restart.js.map +1 -1
- package/dist/commands/agent/visit.js +1 -1
- package/dist/commands/agent/visit.js.map +1 -1
- package/dist/commands/asana/connect.js +6 -5
- package/dist/commands/asana/connect.js.map +1 -1
- package/dist/commands/asana/import.js +4 -4
- package/dist/commands/asana/import.js.map +1 -1
- package/dist/commands/asana/sync.js +3 -3
- package/dist/commands/asana/sync.js.map +1 -1
- package/dist/commands/autocomplete/setup.js +2 -1
- package/dist/commands/autocomplete/setup.js.map +1 -1
- package/dist/commands/board/index.js +1 -0
- package/dist/commands/board/index.js.map +1 -1
- package/dist/commands/board/view.js +1 -1
- package/dist/commands/board/view.js.map +1 -1
- package/dist/commands/branch/create.js +1 -1
- package/dist/commands/branch/create.js.map +1 -1
- package/dist/commands/branch/validate.js +2 -0
- package/dist/commands/branch/validate.js.map +1 -1
- package/dist/commands/branch/where.js +1 -0
- package/dist/commands/branch/where.js.map +1 -1
- package/dist/commands/category/create.js +3 -0
- package/dist/commands/category/create.js.map +1 -1
- package/dist/commands/category/delete.js +3 -0
- package/dist/commands/category/delete.js.map +1 -1
- package/dist/commands/category/rename.js +6 -0
- package/dist/commands/category/rename.js.map +1 -1
- package/dist/commands/claude/index.js +5 -5
- package/dist/commands/claude/index.js.map +1 -1
- package/dist/commands/claude/open.js +5 -0
- package/dist/commands/claude/open.js.map +1 -1
- package/dist/commands/commit.js +1 -1
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/config/index.js +6 -1
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/dashboard.js +1 -0
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/diet.js +1 -0
- package/dist/commands/diet.js.map +1 -1
- package/dist/commands/docker/clean.js +2 -0
- package/dist/commands/docker/clean.js.map +1 -1
- package/dist/commands/docker/index.js +1 -0
- package/dist/commands/docker/index.js.map +1 -1
- package/dist/commands/docker/logs.js +6 -0
- package/dist/commands/docker/logs.js.map +1 -1
- package/dist/commands/docker/prune.js +1 -0
- package/dist/commands/docker/prune.js.map +1 -1
- package/dist/commands/docker/restart.js +5 -0
- package/dist/commands/docker/restart.js.map +1 -1
- package/dist/commands/docker/start.js +4 -0
- package/dist/commands/docker/start.js.map +1 -1
- package/dist/commands/docker/stop.js +4 -0
- package/dist/commands/docker/stop.js.map +1 -1
- package/dist/commands/epic/activate.js +1 -1
- package/dist/commands/epic/activate.js.map +1 -1
- package/dist/commands/epic/archive.js +1 -1
- package/dist/commands/epic/archive.js.map +1 -1
- package/dist/commands/epic/create.js +4 -0
- package/dist/commands/epic/create.js.map +1 -1
- package/dist/commands/epic/delete.js +1 -1
- package/dist/commands/epic/delete.js.map +1 -1
- package/dist/commands/epic/move.js +1 -1
- package/dist/commands/epic/move.js.map +1 -1
- package/dist/commands/epic/progress.js +1 -0
- package/dist/commands/epic/progress.js.map +1 -1
- package/dist/commands/epic/project.js +1 -1
- package/dist/commands/epic/project.js.map +1 -1
- package/dist/commands/epic/reorder.js +1 -1
- package/dist/commands/epic/reorder.js.map +1 -1
- package/dist/commands/epic/spec.js +1 -1
- package/dist/commands/epic/spec.js.map +1 -1
- package/dist/commands/epic/ticket.js +1 -1
- package/dist/commands/epic/ticket.js.map +1 -1
- package/dist/commands/epic/view.js +1 -1
- package/dist/commands/epic/view.js.map +1 -1
- package/dist/commands/execution/config.js +7 -1
- package/dist/commands/execution/config.js.map +1 -1
- package/dist/commands/execution/list.js +1 -0
- package/dist/commands/execution/list.js.map +1 -1
- package/dist/commands/execution/logs.js +1 -0
- package/dist/commands/execution/logs.js.map +1 -1
- package/dist/commands/execution/stop.js +2 -0
- package/dist/commands/execution/stop.js.map +1 -1
- package/dist/commands/execution/view.js +3 -1
- package/dist/commands/execution/view.js.map +1 -1
- package/dist/commands/feedback/list.js +2 -0
- package/dist/commands/feedback/list.js.map +1 -1
- package/dist/commands/feedback/submit.js +2 -0
- package/dist/commands/feedback/submit.js.map +1 -1
- package/dist/commands/feedback/view.js +2 -0
- package/dist/commands/feedback/view.js.map +1 -1
- package/dist/commands/gh/login.js +1 -1
- package/dist/commands/gh/login.js.map +1 -1
- package/dist/commands/gh/token.js +1 -1
- package/dist/commands/gh/token.js.map +1 -1
- package/dist/commands/linear/auth.js +4 -4
- package/dist/commands/linear/auth.js.map +1 -1
- package/dist/commands/linear/connect.js +10 -5
- package/dist/commands/linear/connect.js.map +1 -1
- package/dist/commands/linear/import.js +4 -3
- package/dist/commands/linear/import.js.map +1 -1
- package/dist/commands/linear/sync.js +3 -3
- package/dist/commands/linear/sync.js.map +1 -1
- package/dist/commands/link/create.js +1 -1
- package/dist/commands/link/create.js.map +1 -1
- package/dist/commands/link/list.js +1 -1
- package/dist/commands/link/list.js.map +1 -1
- package/dist/commands/link/remove.js +1 -1
- package/dist/commands/link/remove.js.map +1 -1
- package/dist/commands/media/add.js +2 -1
- package/dist/commands/media/add.js.map +1 -1
- package/dist/commands/media/index.js +2 -0
- package/dist/commands/media/index.js.map +1 -1
- package/dist/commands/media/list.js +1 -0
- package/dist/commands/media/list.js.map +1 -1
- package/dist/commands/media/preprocess.js +1 -1
- package/dist/commands/media/preprocess.js.map +1 -1
- package/dist/commands/media/remove.js +2 -1
- package/dist/commands/media/remove.js.map +1 -1
- package/dist/commands/media/show.js +1 -1
- package/dist/commands/media/show.js.map +1 -1
- package/dist/commands/monday/connect.js +4 -4
- package/dist/commands/monday/connect.js.map +1 -1
- package/dist/commands/monday/sync.js +4 -4
- package/dist/commands/monday/sync.js.map +1 -1
- package/dist/commands/new.js +1 -0
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/orchestrator/start.js +2 -0
- package/dist/commands/orchestrator/start.js.map +1 -1
- package/dist/commands/phase/delete.js +1 -1
- package/dist/commands/phase/delete.js.map +1 -1
- package/dist/commands/phase/move.js +1 -1
- package/dist/commands/phase/move.js.map +1 -1
- package/dist/commands/phase/template/delete.js +1 -0
- package/dist/commands/phase/template/delete.js.map +1 -1
- package/dist/commands/phase/update.js +1 -1
- package/dist/commands/phase/update.js.map +1 -1
- package/dist/commands/pmo/init.js +2 -2
- package/dist/commands/pmo/init.js.map +1 -1
- package/dist/commands/pr/checks.js +1 -1
- package/dist/commands/pr/checks.js.map +1 -1
- package/dist/commands/pr/create.js +1 -1
- package/dist/commands/pr/create.js.map +1 -1
- package/dist/commands/pr/index.js +1 -1
- package/dist/commands/pr/index.js.map +1 -1
- package/dist/commands/pr/link.js +3 -3
- package/dist/commands/pr/link.js.map +1 -1
- package/dist/commands/pr/list.js +1 -1
- package/dist/commands/pr/list.js.map +1 -1
- package/dist/commands/pr/merge.js +1 -1
- package/dist/commands/pr/merge.js.map +1 -1
- package/dist/commands/pr/status.js +1 -1
- package/dist/commands/pr/status.js.map +1 -1
- package/dist/commands/priority/add.js +2 -2
- package/dist/commands/priority/add.js.map +1 -1
- package/dist/commands/priority/remove.js +2 -2
- package/dist/commands/priority/remove.js.map +1 -1
- package/dist/commands/priority/set.js +2 -2
- package/dist/commands/priority/set.js.map +1 -1
- package/dist/commands/project/archive.js +1 -1
- package/dist/commands/project/archive.js.map +1 -1
- package/dist/commands/project/create.js +4 -0
- package/dist/commands/project/create.js.map +1 -1
- package/dist/commands/project/delete.js +1 -1
- package/dist/commands/project/delete.js.map +1 -1
- package/dist/commands/project/spec.js +1 -1
- package/dist/commands/project/spec.js.map +1 -1
- package/dist/commands/project/unarchive.js +1 -1
- package/dist/commands/project/unarchive.js.map +1 -1
- package/dist/commands/project/update.js +1 -1
- package/dist/commands/project/update.js.map +1 -1
- package/dist/commands/project/view.js +1 -1
- package/dist/commands/project/view.js.map +1 -1
- package/dist/commands/pull.js +3 -0
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/qa/index.js +4 -4
- package/dist/commands/qa/index.js.map +1 -1
- package/dist/commands/repo/add.js +1 -1
- package/dist/commands/repo/add.js.map +1 -1
- package/dist/commands/repo/create.js +1 -1
- package/dist/commands/repo/create.js.map +1 -1
- package/dist/commands/repo/remove.js +2 -2
- package/dist/commands/repo/remove.js.map +1 -1
- package/dist/commands/repo/view.js +1 -1
- package/dist/commands/repo/view.js.map +1 -1
- package/dist/commands/roadmap/create.js +1 -0
- package/dist/commands/roadmap/create.js.map +1 -1
- package/dist/commands/session/create.js +4 -0
- package/dist/commands/session/create.js.map +1 -1
- package/dist/commands/session/exec.js +4 -0
- package/dist/commands/session/exec.js.map +1 -1
- package/dist/commands/session/health.js +2 -0
- package/dist/commands/session/health.js.map +1 -1
- package/dist/commands/session/inspect.js +3 -0
- package/dist/commands/session/inspect.js.map +1 -1
- package/dist/commands/session/peek.js +1 -0
- package/dist/commands/session/peek.js.map +1 -1
- package/dist/commands/session/restart.js +4 -0
- package/dist/commands/session/restart.js.map +1 -1
- package/dist/commands/shortcut/connect.js +4 -4
- package/dist/commands/shortcut/connect.js.map +1 -1
- package/dist/commands/staff/remove.js +1 -1
- package/dist/commands/staff/remove.js.map +1 -1
- package/dist/commands/status/delete.js +2 -1
- package/dist/commands/status/delete.js.map +1 -1
- package/dist/commands/status/list.js +1 -0
- package/dist/commands/status/list.js.map +1 -1
- package/dist/commands/status/move.js +2 -1
- package/dist/commands/status/move.js.map +1 -1
- package/dist/commands/status/update.js +1 -1
- package/dist/commands/status/update.js.map +1 -1
- package/dist/commands/telemetry/disable.js +1 -0
- package/dist/commands/telemetry/disable.js.map +1 -1
- package/dist/commands/telemetry/enable.js +1 -0
- package/dist/commands/telemetry/enable.js.map +1 -1
- package/dist/commands/telemetry/index.js +1 -0
- package/dist/commands/telemetry/index.js.map +1 -1
- package/dist/commands/template/apply.js +2 -2
- package/dist/commands/template/apply.js.map +1 -1
- package/dist/commands/template/delete.js +1 -0
- package/dist/commands/template/delete.js.map +1 -1
- package/dist/commands/template/save.js +1 -0
- package/dist/commands/template/save.js.map +1 -1
- package/dist/commands/template/update.js +1 -0
- package/dist/commands/template/update.js.map +1 -1
- package/dist/commands/ticket/complete.js +1 -1
- package/dist/commands/ticket/complete.js.map +1 -1
- package/dist/commands/ticket/create.js +14 -4
- package/dist/commands/ticket/create.js.map +1 -1
- package/dist/commands/ticket/delete.js +23 -8
- package/dist/commands/ticket/delete.js.map +1 -1
- package/dist/commands/ticket/edit.js +2 -2
- package/dist/commands/ticket/edit.js.map +1 -1
- package/dist/commands/ticket/link/block.js +1 -1
- package/dist/commands/ticket/link/block.js.map +1 -1
- package/dist/commands/ticket/link/duplicates.js +1 -1
- package/dist/commands/ticket/link/duplicates.js.map +1 -1
- package/dist/commands/ticket/link/relates.js +1 -1
- package/dist/commands/ticket/link/relates.js.map +1 -1
- package/dist/commands/ticket/list.d.ts +0 -8
- package/dist/commands/ticket/list.js +15 -121
- package/dist/commands/ticket/list.js.map +1 -1
- package/dist/commands/ticket/move.js +34 -7
- package/dist/commands/ticket/move.js.map +1 -1
- package/dist/commands/ticket/resolve.js +2 -2
- package/dist/commands/ticket/resolve.js.map +1 -1
- package/dist/commands/ticket/status.js +1 -1
- package/dist/commands/ticket/status.js.map +1 -1
- package/dist/commands/ticket/template/delete.js +1 -0
- package/dist/commands/ticket/template/delete.js.map +1 -1
- package/dist/commands/ticket/template/save.js +1 -0
- package/dist/commands/ticket/template/save.js.map +1 -1
- package/dist/commands/ticket/update.js +1 -0
- package/dist/commands/ticket/update.js.map +1 -1
- package/dist/commands/ticket/view.js +1 -1
- package/dist/commands/ticket/view.js.map +1 -1
- package/dist/commands/tools/add.js +6 -0
- package/dist/commands/tools/add.js.map +1 -1
- package/dist/commands/tools/remove.js +3 -0
- package/dist/commands/tools/remove.js.map +1 -1
- package/dist/commands/trello/configure.js +5 -5
- package/dist/commands/trello/configure.js.map +1 -1
- package/dist/commands/trello/import.js +4 -4
- package/dist/commands/trello/import.js.map +1 -1
- package/dist/commands/trello/sync.js +3 -3
- package/dist/commands/trello/sync.js.map +1 -1
- package/dist/commands/version/bump.js +3 -0
- package/dist/commands/version/bump.js.map +1 -1
- package/dist/commands/work/complete.js +34 -1
- package/dist/commands/work/complete.js.map +1 -1
- package/dist/commands/work/hooks/add.js +7 -0
- package/dist/commands/work/hooks/add.js.map +1 -1
- package/dist/commands/work/hooks/list.js +2 -0
- package/dist/commands/work/hooks/list.js.map +1 -1
- package/dist/commands/work/hooks/remove.js +4 -0
- package/dist/commands/work/hooks/remove.js.map +1 -1
- package/dist/commands/work/hooks/toggle.js +4 -0
- package/dist/commands/work/hooks/toggle.js.map +1 -1
- package/dist/commands/work/ready.js +48 -7
- package/dist/commands/work/ready.js.map +1 -1
- package/dist/commands/work/resolve.js +1 -1
- package/dist/commands/work/resolve.js.map +1 -1
- package/dist/commands/work/review.js +3 -1
- package/dist/commands/work/review.js.map +1 -1
- package/dist/commands/work/revise.js +1 -1
- package/dist/commands/work/revise.js.map +1 -1
- package/dist/commands/work/source/set.js +3 -0
- package/dist/commands/work/source/set.js.map +1 -1
- package/dist/commands/work/source.js +1 -0
- package/dist/commands/work/source.js.map +1 -1
- package/dist/commands/work/spawn.js +4 -3
- package/dist/commands/work/spawn.js.map +1 -1
- package/dist/commands/work/start.js +121 -24
- package/dist/commands/work/start.js.map +1 -1
- package/dist/commands/work/watch.js +1 -1
- package/dist/commands/work/watch.js.map +1 -1
- package/dist/commands/workflow/delete.js +1 -1
- package/dist/commands/workflow/delete.js.map +1 -1
- package/dist/commands/workflow/setup.d.ts +24 -0
- package/dist/commands/workflow/setup.js +351 -0
- package/dist/commands/workflow/setup.js.map +1 -0
- package/dist/commands/workflow/switch.js +1 -1
- package/dist/commands/workflow/switch.js.map +1 -1
- package/dist/commands/workflow/view.js +1 -1
- package/dist/commands/workflow/view.js.map +1 -1
- package/dist/commands/workflow-rule/create.d.ts +19 -0
- package/dist/commands/workflow-rule/create.js +141 -0
- package/dist/commands/workflow-rule/create.js.map +1 -0
- package/dist/commands/workflow-rule/delete.d.ts +18 -0
- package/dist/commands/workflow-rule/delete.js +72 -0
- package/dist/commands/workflow-rule/delete.js.map +1 -0
- package/dist/commands/workflow-rule/index.d.ts +16 -0
- package/dist/commands/workflow-rule/index.js +83 -0
- package/dist/commands/workflow-rule/index.js.map +1 -0
- package/dist/commands/workflow-rule/list.d.ts +17 -0
- package/dist/commands/workflow-rule/list.js +72 -0
- package/dist/commands/workflow-rule/list.js.map +1 -0
- package/dist/commands/workflow-rule/update.d.ts +22 -0
- package/dist/commands/workflow-rule/update.js +84 -0
- package/dist/commands/workflow-rule/update.js.map +1 -0
- package/dist/commands/workspace/add.js +5 -0
- package/dist/commands/workspace/add.js.map +1 -1
- package/dist/commands/workspace/remove.js +1 -1
- package/dist/commands/workspace/remove.js.map +1 -1
- package/dist/hooks/init.js +37 -11
- package/dist/hooks/init.js.map +1 -1
- package/dist/hooks/postrun.d.ts +6 -4
- package/dist/hooks/postrun.js +25 -18
- package/dist/hooks/postrun.js.map +1 -1
- package/dist/lib/database/drizzle-schema.d.ts +269 -4
- package/dist/lib/database/drizzle-schema.js +22 -2
- package/dist/lib/database/drizzle-schema.js.map +1 -1
- package/dist/lib/database/migrations/0003_actions_redesign.d.ts +15 -0
- package/dist/lib/database/migrations/0003_actions_redesign.js +105 -0
- package/dist/lib/database/migrations/0003_actions_redesign.js.map +1 -0
- package/dist/lib/database/migrations/0004_workflow_rules.d.ts +2 -0
- package/dist/lib/database/migrations/0004_workflow_rules.js +25 -0
- package/dist/lib/database/migrations/0004_workflow_rules.js.map +1 -0
- package/dist/lib/database/migrations/index.js +4 -0
- package/dist/lib/database/migrations/index.js.map +1 -1
- package/dist/lib/events/events.d.ts +13 -1
- package/dist/lib/execution/commit-validation.d.ts +58 -0
- package/dist/lib/execution/commit-validation.js +252 -0
- package/dist/lib/execution/commit-validation.js.map +1 -0
- package/dist/lib/execution/config.js +3 -0
- package/dist/lib/execution/config.js.map +1 -1
- package/dist/lib/execution/storage.d.ts +24 -1
- package/dist/lib/execution/storage.js +35 -6
- package/dist/lib/execution/storage.js.map +1 -1
- package/dist/lib/flags/resolver.js +3 -6
- package/dist/lib/flags/resolver.js.map +1 -1
- package/dist/lib/linear/client.d.ts +4 -0
- package/dist/lib/linear/client.js +12 -0
- package/dist/lib/linear/client.js.map +1 -1
- package/dist/lib/onboarding/wizard.js +3 -3
- package/dist/lib/onboarding/wizard.js.map +1 -1
- package/dist/lib/pmo/base-command.d.ts +21 -1
- package/dist/lib/pmo/base-command.js +28 -4
- package/dist/lib/pmo/base-command.js.map +1 -1
- package/dist/lib/pmo/schema.d.ts +3 -1
- package/dist/lib/pmo/schema.js +25 -3
- package/dist/lib/pmo/schema.js.map +1 -1
- package/dist/lib/pmo/storage/actions.d.ts +5 -3
- package/dist/lib/pmo/storage/actions.js +89 -23
- package/dist/lib/pmo/storage/actions.js.map +1 -1
- package/dist/lib/pmo/storage/base.d.ts +5 -0
- package/dist/lib/pmo/storage/base.js +203 -20
- package/dist/lib/pmo/storage/base.js.map +1 -1
- package/dist/lib/pmo/storage/index.d.ts +9 -2
- package/dist/lib/pmo/storage/index.js +28 -3
- package/dist/lib/pmo/storage/index.js.map +1 -1
- package/dist/lib/pmo/storage/types.d.ts +19 -2
- package/dist/lib/pmo/storage/workflow-rules.d.ts +35 -0
- package/dist/lib/pmo/storage/workflow-rules.js +183 -0
- package/dist/lib/pmo/storage/workflow-rules.js.map +1 -0
- package/dist/lib/pmo/sync-manager.js +6 -0
- package/dist/lib/pmo/sync-manager.js.map +1 -1
- package/dist/lib/pmo/types.d.ts +59 -4
- package/dist/lib/pmo/types.js.map +1 -1
- package/dist/lib/prompt-command.js +1 -1
- package/dist/lib/prompt-command.js.map +1 -1
- package/dist/lib/prompt-json.d.ts +19 -11
- package/dist/lib/prompt-json.js +32 -17
- package/dist/lib/prompt-json.js.map +1 -1
- package/dist/lib/providers/index.d.ts +11 -0
- package/dist/lib/providers/index.js +11 -0
- package/dist/lib/providers/index.js.map +1 -0
- package/dist/lib/providers/linear-provider.d.ts +26 -0
- package/dist/lib/providers/linear-provider.js +339 -0
- package/dist/lib/providers/linear-provider.js.map +1 -0
- package/dist/lib/providers/pmo-provider.d.ts +20 -0
- package/dist/lib/providers/pmo-provider.js +83 -0
- package/dist/lib/providers/pmo-provider.js.map +1 -0
- package/dist/lib/providers/resolver.d.ts +44 -0
- package/dist/lib/providers/resolver.js +82 -0
- package/dist/lib/providers/resolver.js.map +1 -0
- package/dist/lib/providers/types.d.ts +136 -0
- package/dist/lib/providers/types.js +12 -0
- package/dist/lib/providers/types.js.map +1 -0
- package/dist/lib/telemetry/analytics.d.ts +25 -7
- package/dist/lib/telemetry/analytics.js +123 -58
- package/dist/lib/telemetry/analytics.js.map +1 -1
- package/dist/lib/update-prompt.d.ts +3 -3
- package/dist/lib/update-prompt.js +15 -10
- package/dist/lib/update-prompt.js.map +1 -1
- package/dist/lib/work-lifecycle/action-chaining.d.ts +61 -0
- package/dist/lib/work-lifecycle/action-chaining.js +211 -0
- package/dist/lib/work-lifecycle/action-chaining.js.map +1 -0
- package/dist/lib/work-lifecycle/index.d.ts +4 -0
- package/dist/lib/work-lifecycle/index.js +4 -0
- package/dist/lib/work-lifecycle/index.js.map +1 -1
- package/dist/lib/work-lifecycle/post-execution.d.ts +85 -0
- package/dist/lib/work-lifecycle/post-execution.js +120 -0
- package/dist/lib/work-lifecycle/post-execution.js.map +1 -0
- package/dist/lib/work-lifecycle/rule-evaluator.d.ts +38 -0
- package/dist/lib/work-lifecycle/rule-evaluator.js +102 -0
- package/dist/lib/work-lifecycle/rule-evaluator.js.map +1 -0
- package/oclif.manifest.json +4248 -3757
- package/package.json +1 -1
|
@@ -30,6 +30,7 @@ import { LinearMapper } from '../../lib/linear/mapper.js';
|
|
|
30
30
|
import { ExternalIssueAdapterError } from '../../lib/external-issues/types.js';
|
|
31
31
|
import { loadDefaultWorkSource, getConnectedIntegrations, isLocalTicketId, } from '../../lib/work-source/index.js';
|
|
32
32
|
import { pruneWorktrees, checkoutBranchSafe } from '../../lib/branch/index.js';
|
|
33
|
+
import { handlePostExecutionTransition } from '../../lib/work-lifecycle/index.js';
|
|
33
34
|
/**
|
|
34
35
|
* Try to execute a git command, return true if successful
|
|
35
36
|
*/
|
|
@@ -428,6 +429,7 @@ export default class WorkStart extends PMOCommand {
|
|
|
428
429
|
if (flags['create-pr'] && flags['no-pr']) {
|
|
429
430
|
if (shouldOutputJson(flags)) {
|
|
430
431
|
outputErrorAsJson('CONFLICTING_FLAGS', '--create-pr and --no-pr are mutually exclusive', createMetadata('work start', flags));
|
|
432
|
+
return;
|
|
431
433
|
}
|
|
432
434
|
this.error('--create-pr and --no-pr are mutually exclusive');
|
|
433
435
|
}
|
|
@@ -440,6 +442,7 @@ export default class WorkStart extends PMOCommand {
|
|
|
440
442
|
if (flags['skip-permissions'] && flags['permission-mode']) {
|
|
441
443
|
if (shouldOutputJson(flags)) {
|
|
442
444
|
outputErrorAsJson('CONFLICTING_FLAGS', 'Cannot use both --skip-permissions and --permission-mode flags. Use only one: --skip-permissions OR --permission-mode danger/safe', createMetadata('work start', flags));
|
|
445
|
+
return;
|
|
443
446
|
}
|
|
444
447
|
this.error('Cannot use both --skip-permissions and --permission-mode flags.\n' +
|
|
445
448
|
'Use only one: --skip-permissions OR --permission-mode danger/safe');
|
|
@@ -455,7 +458,7 @@ export default class WorkStart extends PMOCommand {
|
|
|
455
458
|
const handleError = (code, message) => {
|
|
456
459
|
if (jsonMode) {
|
|
457
460
|
outputErrorAsJson(code, message, createMetadata('work start', flags));
|
|
458
|
-
|
|
461
|
+
return;
|
|
459
462
|
}
|
|
460
463
|
this.error(message);
|
|
461
464
|
};
|
|
@@ -849,9 +852,48 @@ export default class WorkStart extends PMOCommand {
|
|
|
849
852
|
if (activeStaffAgents.length > 0) {
|
|
850
853
|
// Clean up stale executions before checking availability (TKT-604)
|
|
851
854
|
// This fixes agents appearing as "busy" when their sessions have terminated
|
|
852
|
-
const
|
|
853
|
-
if (
|
|
854
|
-
this.log(styles.muted(` Cleaned up ${
|
|
855
|
+
const cleanedExecutions = executionStorage.cleanupStaleExecutionsDetailed();
|
|
856
|
+
if (cleanedExecutions.length > 0 && !jsonMode) {
|
|
857
|
+
this.log(styles.muted(` Cleaned up ${cleanedExecutions.length} stale execution(s)`));
|
|
858
|
+
}
|
|
859
|
+
// Post-execution hook: validate commits and auto-transition tickets that have PRs to Review
|
|
860
|
+
if (cleanedExecutions.length > 0) {
|
|
861
|
+
for (const cleaned of cleanedExecutions) {
|
|
862
|
+
try {
|
|
863
|
+
// Resolve agent directory for commit validation (PRLT-984)
|
|
864
|
+
let agentDir;
|
|
865
|
+
let repoWorktrees;
|
|
866
|
+
if (cleaned.agentName) {
|
|
867
|
+
try {
|
|
868
|
+
agentDir = resolveAgentDir(workspaceInfo, cleaned.agentName);
|
|
869
|
+
repoWorktrees = detectRepoWorktrees(agentDir);
|
|
870
|
+
}
|
|
871
|
+
catch {
|
|
872
|
+
// Agent dir resolution may fail for ephemeral agents that were cleaned up
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
const result = await handlePostExecutionTransition({
|
|
876
|
+
ticketId: cleaned.ticketId,
|
|
877
|
+
agentName: cleaned.agentName,
|
|
878
|
+
branch: cleaned.branch,
|
|
879
|
+
agentDir,
|
|
880
|
+
repoWorktrees,
|
|
881
|
+
}, this.storage, db);
|
|
882
|
+
if (result.blockedByValidation && !jsonMode) {
|
|
883
|
+
this.log(styles.warning(` ⚠ ${cleaned.ticketId}: agent completed without meaningful code — ${result.validation?.details}`));
|
|
884
|
+
// Persist validation failure on the execution record
|
|
885
|
+
executionStorage.updateStatus(cleaned.executionId, 'failed', undefined, `Commit validation failed: ${result.validation?.details}`);
|
|
886
|
+
}
|
|
887
|
+
else if (result.transitioned && !jsonMode) {
|
|
888
|
+
const via = result.provider && result.provider !== 'pmo' ? ` via ${result.provider}` : '';
|
|
889
|
+
const validationInfo = result.validation ? ` (${result.validation.details})` : '';
|
|
890
|
+
this.log(styles.muted(` Auto-transitioned ${cleaned.ticketId}: ${result.fromState} → ${result.toState}${via}${validationInfo}`));
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
catch {
|
|
894
|
+
// Non-fatal — don't block work start for transition failures
|
|
895
|
+
}
|
|
896
|
+
}
|
|
855
897
|
}
|
|
856
898
|
// Get list of busy agents (already running something)
|
|
857
899
|
const busyAgentNames = new Set();
|
|
@@ -1037,7 +1079,11 @@ export default class WorkStart extends PMOCommand {
|
|
|
1037
1079
|
// Get coder name for branch naming (prompts on first use)
|
|
1038
1080
|
const coderName = await getOrPromptCoderName(db);
|
|
1039
1081
|
// Use ticket's existing branch or generate a new one
|
|
1040
|
-
|
|
1082
|
+
// When ticket was imported from an external source, use the external key
|
|
1083
|
+
// (e.g. PRLT-962) instead of the internal PMO ID (e.g. TKT-134) for branch naming
|
|
1084
|
+
const externalMeta = getTicketExternalMetadata(ticket);
|
|
1085
|
+
const branchTicketId = externalMeta.key || ticket.id;
|
|
1086
|
+
const branch = ticket.branch || generateBranchName(branchTicketId, ticket.title, coderName, assignedAgent, ticket.category);
|
|
1041
1087
|
const isExistingBranch = !!ticket.branch;
|
|
1042
1088
|
// Get epic info if linked
|
|
1043
1089
|
let epicTitle;
|
|
@@ -1069,16 +1115,16 @@ export default class WorkStart extends PMOCommand {
|
|
|
1069
1115
|
// Interactive action selection
|
|
1070
1116
|
// Get ticket's current status to determine suggested action
|
|
1071
1117
|
const ticketStatus = await this.storage.getStatus(ticket.statusId || '');
|
|
1072
|
-
const
|
|
1073
|
-
// Get suggested action for this
|
|
1074
|
-
const suggestedAction = await this.storage.getSuggestedAction(
|
|
1118
|
+
const currentStateName = ticketStatus?.name || ticket.statusName || 'Todo';
|
|
1119
|
+
// Get suggested action for this state
|
|
1120
|
+
const suggestedAction = await this.storage.getSuggestedAction(currentStateName);
|
|
1075
1121
|
// Get all actions for selection
|
|
1076
1122
|
const allActions = await this.storage.listActions();
|
|
1077
1123
|
// Build choices with suggested action at top
|
|
1078
1124
|
const actionChoiceList = [];
|
|
1079
1125
|
if (suggestedAction) {
|
|
1080
1126
|
actionChoiceList.push({
|
|
1081
|
-
name: `${suggestedAction.name} - ${suggestedAction.description || 'Suggested for ' +
|
|
1127
|
+
name: `${suggestedAction.name} - ${suggestedAction.description || 'Suggested for ' + currentStateName} (Recommended)`,
|
|
1082
1128
|
value: suggestedAction.id,
|
|
1083
1129
|
});
|
|
1084
1130
|
}
|
|
@@ -1126,7 +1172,7 @@ export default class WorkStart extends PMOCommand {
|
|
|
1126
1172
|
description: 'Unstructured exploration and debugging',
|
|
1127
1173
|
prompt: 'You are working on an ad-hoc session for exploration and debugging. Help the user with whatever they need.',
|
|
1128
1174
|
modifiesCode: false,
|
|
1129
|
-
|
|
1175
|
+
toState: 'In Progress',
|
|
1130
1176
|
isBuiltin: false,
|
|
1131
1177
|
createdAt: new Date(),
|
|
1132
1178
|
};
|
|
@@ -2051,19 +2097,32 @@ export default class WorkStart extends PMOCommand {
|
|
|
2051
2097
|
await this.storage.updateTicket(ticket.id, { assignee: assignedAgent });
|
|
2052
2098
|
this.log(styles.muted(` Assigned to: ${assignedAgent}`));
|
|
2053
2099
|
}
|
|
2054
|
-
// Move ticket to target column based on action's
|
|
2055
|
-
// If action has a
|
|
2056
|
-
const
|
|
2100
|
+
// Move ticket to target column based on action's toState
|
|
2101
|
+
// If action has a to_state, use that state name directly; otherwise fall back to "In Progress" default
|
|
2102
|
+
const targetStateName = selectedAction?.toState;
|
|
2057
2103
|
const board = ticket.projectId ? await this.storage.getProjectBoard(ticket.projectId) : null;
|
|
2058
2104
|
const columnNames = board ? board.columns.map(col => col.name) : [];
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2105
|
+
let targetColumnName = null;
|
|
2106
|
+
if (targetStateName) {
|
|
2107
|
+
// Try direct state name match first
|
|
2108
|
+
targetColumnName = findColumnByName(columnNames, targetStateName);
|
|
2109
|
+
if (!targetColumnName) {
|
|
2110
|
+
const categoryMap = {
|
|
2111
|
+
'Backlog': 'planned',
|
|
2112
|
+
'Todo': 'planned',
|
|
2113
|
+
'In Progress': 'in_progress',
|
|
2114
|
+
'Done': 'done',
|
|
2115
|
+
};
|
|
2116
|
+
const columnType = categoryMap[targetStateName] || 'in_progress';
|
|
2117
|
+
const workColumnName = getWorkColumnSetting(db, columnType);
|
|
2118
|
+
targetColumnName = findColumnByName(columnNames, workColumnName);
|
|
2119
|
+
}
|
|
2120
|
+
}
|
|
2121
|
+
else {
|
|
2122
|
+
// No target state specified — default to "In Progress"
|
|
2123
|
+
const workColumnName = getWorkColumnSetting(db, 'in_progress');
|
|
2124
|
+
targetColumnName = findColumnByName(columnNames, workColumnName);
|
|
2125
|
+
}
|
|
2067
2126
|
if (targetColumnName && ticket.statusName !== targetColumnName) {
|
|
2068
2127
|
try {
|
|
2069
2128
|
await this.storage.moveTicket(ticket.projectId, ticket.id, targetColumnName);
|
|
@@ -2160,9 +2219,46 @@ export default class WorkStart extends PMOCommand {
|
|
|
2160
2219
|
// Get staff agents that exist on disk (warns about missing directories)
|
|
2161
2220
|
const activeStaffAgents = getActiveStaffAgents(workspaceInfo, (msg) => this.log(msg));
|
|
2162
2221
|
// Clean up stale executions before checking availability (TKT-604)
|
|
2163
|
-
const
|
|
2164
|
-
if (
|
|
2165
|
-
this.log(styles.muted(` Cleaned up ${
|
|
2222
|
+
const batchCleanedExecutions = executionStorage.cleanupStaleExecutionsDetailed();
|
|
2223
|
+
if (batchCleanedExecutions.length > 0) {
|
|
2224
|
+
this.log(styles.muted(` Cleaned up ${batchCleanedExecutions.length} stale execution(s)`));
|
|
2225
|
+
// Post-execution hook: validate commits and auto-transition tickets that have PRs to Review
|
|
2226
|
+
for (const cleaned of batchCleanedExecutions) {
|
|
2227
|
+
try {
|
|
2228
|
+
// Resolve agent directory for commit validation (PRLT-984)
|
|
2229
|
+
let agentDir;
|
|
2230
|
+
let repoWorktrees;
|
|
2231
|
+
if (cleaned.agentName) {
|
|
2232
|
+
try {
|
|
2233
|
+
agentDir = resolveAgentDir(workspaceInfo, cleaned.agentName);
|
|
2234
|
+
repoWorktrees = detectRepoWorktrees(agentDir);
|
|
2235
|
+
}
|
|
2236
|
+
catch {
|
|
2237
|
+
// Agent dir resolution may fail for ephemeral agents that were cleaned up
|
|
2238
|
+
}
|
|
2239
|
+
}
|
|
2240
|
+
const result = await handlePostExecutionTransition({
|
|
2241
|
+
ticketId: cleaned.ticketId,
|
|
2242
|
+
agentName: cleaned.agentName,
|
|
2243
|
+
branch: cleaned.branch,
|
|
2244
|
+
agentDir,
|
|
2245
|
+
repoWorktrees,
|
|
2246
|
+
}, this.storage, db);
|
|
2247
|
+
if (result.blockedByValidation) {
|
|
2248
|
+
this.log(styles.warning(` ⚠ ${cleaned.ticketId}: agent completed without meaningful code — ${result.validation?.details}`));
|
|
2249
|
+
// Persist validation failure on the execution record
|
|
2250
|
+
executionStorage.updateStatus(cleaned.executionId, 'failed', undefined, `Commit validation failed: ${result.validation?.details}`);
|
|
2251
|
+
}
|
|
2252
|
+
else if (result.transitioned) {
|
|
2253
|
+
const via = result.provider && result.provider !== 'pmo' ? ` via ${result.provider}` : '';
|
|
2254
|
+
const validationInfo = result.validation ? ` (${result.validation.details})` : '';
|
|
2255
|
+
this.log(styles.muted(` Auto-transitioned ${cleaned.ticketId}: ${result.fromState} → ${result.toState}${via}${validationInfo}`));
|
|
2256
|
+
}
|
|
2257
|
+
}
|
|
2258
|
+
catch {
|
|
2259
|
+
// Non-fatal
|
|
2260
|
+
}
|
|
2261
|
+
}
|
|
2166
2262
|
}
|
|
2167
2263
|
const busyAgentNames = new Set();
|
|
2168
2264
|
for (const agent of activeStaffAgents) {
|
|
@@ -2176,6 +2272,7 @@ export default class WorkStart extends PMOCommand {
|
|
|
2176
2272
|
db.close();
|
|
2177
2273
|
if (batchJsonMode) {
|
|
2178
2274
|
outputErrorAsJson('NO_AVAILABLE_AGENTS', 'No available agents. All agents are busy with other work.', createMetadata('work start', flags));
|
|
2275
|
+
return;
|
|
2179
2276
|
}
|
|
2180
2277
|
this.error('No available agents. All agents are busy with other work.');
|
|
2181
2278
|
}
|