@proletariat/cli 0.3.92 → 0.3.94
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 +1 -1
- package/dist/commands/action/delete.d.ts +1 -1
- package/dist/commands/action/index.d.ts +1 -1
- package/dist/commands/action/list.d.ts +1 -1
- package/dist/commands/action/run.d.ts +1 -1
- package/dist/commands/action/show.d.ts +1 -1
- package/dist/commands/action/update.d.ts +1 -1
- package/dist/commands/agent/auth.js +2 -6
- package/dist/commands/agent/auth.js.map +1 -1
- package/dist/commands/agent/cleanup.d.ts +1 -1
- package/dist/commands/agent/cleanup.js +5 -5
- package/dist/commands/agent/cleanup.js.map +1 -1
- package/dist/commands/{project/list.d.ts → agent/gc.d.ts} +4 -3
- package/dist/commands/agent/gc.js +75 -0
- package/dist/commands/agent/gc.js.map +1 -0
- package/dist/commands/agent/index.d.ts +1 -1
- package/dist/commands/agent/list.d.ts +1 -1
- package/dist/commands/agent/list.js +2 -2
- package/dist/commands/agent/list.js.map +1 -1
- package/dist/commands/agent/login.d.ts +1 -1
- package/dist/commands/agent/rebuild.d.ts +1 -1
- package/dist/commands/agent/remove.d.ts +1 -1
- package/dist/commands/agent/restart.d.ts +1 -1
- package/dist/commands/agent/shell.d.ts +1 -1
- package/dist/commands/agent/shell.js +3 -5
- package/dist/commands/agent/shell.js.map +1 -1
- package/dist/commands/agent/staff/index.d.ts +1 -1
- package/dist/commands/agent/staff/remove.d.ts +1 -1
- package/dist/commands/agent/status.d.ts +1 -1
- package/dist/commands/agent/visit.d.ts +1 -1
- package/dist/commands/asana/import.d.ts +1 -1
- package/dist/commands/branch/create.d.ts +1 -1
- package/dist/commands/branch/create.js +2 -2
- package/dist/commands/branch/create.js.map +1 -1
- package/dist/commands/branch/index.d.ts +1 -1
- package/dist/commands/branch/list.d.ts +1 -1
- package/dist/commands/branch/validate.d.ts +1 -1
- package/dist/commands/branch/where.d.ts +1 -1
- package/dist/commands/claude/index.js +2 -2
- package/dist/commands/claude/index.js.map +1 -1
- package/dist/commands/claude/open.js +11 -5
- package/dist/commands/claude/open.js.map +1 -1
- package/dist/commands/config/index.js +88 -7
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/db/repair.js +2 -2
- package/dist/commands/db/repair.js.map +1 -1
- package/dist/commands/diet.d.ts +1 -1
- package/dist/commands/docker/clean.js +2 -4
- package/dist/commands/docker/clean.js.map +1 -1
- package/dist/commands/docker/index.js +4 -4
- package/dist/commands/docker/index.js.map +1 -1
- package/dist/commands/docker/list.js +2 -4
- package/dist/commands/docker/list.js.map +1 -1
- package/dist/commands/docker/logs.js +2 -4
- package/dist/commands/docker/logs.js.map +1 -1
- package/dist/commands/docker/rebuild-cache.d.ts +12 -0
- package/dist/commands/docker/rebuild-cache.js +144 -0
- package/dist/commands/docker/rebuild-cache.js.map +1 -0
- package/dist/commands/docker/restart.js +2 -4
- package/dist/commands/docker/restart.js.map +1 -1
- package/dist/commands/docker/shell.js +2 -4
- package/dist/commands/docker/shell.js.map +1 -1
- package/dist/commands/docker/start.js +2 -4
- package/dist/commands/docker/start.js.map +1 -1
- package/dist/commands/docker/stop.js +2 -4
- package/dist/commands/docker/stop.js.map +1 -1
- package/dist/commands/docker/sync.js +2 -4
- package/dist/commands/docker/sync.js.map +1 -1
- package/dist/commands/execution/config.d.ts +1 -1
- package/dist/commands/execution/config.js +39 -0
- package/dist/commands/execution/config.js.map +1 -1
- package/dist/commands/execution/index.d.ts +1 -1
- package/dist/commands/execution/list.d.ts +1 -1
- package/dist/commands/execution/list.js +2 -4
- package/dist/commands/execution/list.js.map +1 -1
- package/dist/commands/execution/logs.d.ts +1 -1
- package/dist/commands/execution/logs.js +2 -4
- package/dist/commands/execution/logs.js.map +1 -1
- package/dist/commands/execution/stop.d.ts +1 -1
- package/dist/commands/execution/stop.js +2 -4
- package/dist/commands/execution/stop.js.map +1 -1
- package/dist/commands/execution/view.d.ts +1 -1
- package/dist/commands/execution/view.js +2 -4
- package/dist/commands/execution/view.js.map +1 -1
- package/dist/commands/gh/login.js +2 -1
- package/dist/commands/gh/login.js.map +1 -1
- package/dist/commands/gh/status.js +18 -2
- package/dist/commands/gh/status.js.map +1 -1
- package/dist/commands/{ticket/bulk.d.ts → hook/export.d.ts} +8 -5
- package/dist/commands/hook/export.js +52 -0
- package/dist/commands/hook/export.js.map +1 -0
- package/dist/commands/hook/fire.d.ts +29 -0
- package/dist/commands/hook/fire.js +139 -0
- package/dist/commands/hook/fire.js.map +1 -0
- package/dist/commands/{project → hook}/index.d.ts +5 -5
- package/dist/commands/hook/index.js +53 -0
- package/dist/commands/hook/index.js.map +1 -0
- package/dist/commands/{board/index.d.ts → hook/list.d.ts} +10 -12
- package/dist/commands/hook/list.js +136 -0
- package/dist/commands/hook/list.js.map +1 -0
- package/dist/commands/{project/archive.d.ts → hook/preset.d.ts} +11 -7
- package/dist/commands/hook/preset.js +76 -0
- package/dist/commands/hook/preset.js.map +1 -0
- package/dist/commands/linear/auth.d.ts +1 -1
- package/dist/commands/linear/connect.d.ts +1 -1
- package/dist/commands/linear/import.d.ts +1 -1
- package/dist/commands/linear/status.d.ts +1 -1
- package/dist/commands/linear/sync.d.ts +1 -1
- package/dist/commands/mcp-server.d.ts +8 -2
- package/dist/commands/mcp-server.js +17 -31
- package/dist/commands/mcp-server.js.map +1 -1
- package/dist/commands/monday/connect.d.ts +1 -1
- package/dist/commands/monday/sync.d.ts +1 -1
- package/dist/commands/orchestrate/index.d.ts +35 -0
- package/dist/commands/orchestrate/index.js +267 -0
- package/dist/commands/orchestrate/index.js.map +1 -0
- package/dist/commands/orchestrator/attach.js +2 -3
- package/dist/commands/orchestrator/attach.js.map +1 -1
- package/dist/commands/orchestrator/index.d.ts +1 -1
- package/dist/commands/orchestrator/start.d.ts +3 -3
- package/dist/commands/orchestrator/start.js +32 -43
- package/dist/commands/orchestrator/start.js.map +1 -1
- package/dist/commands/orchestrator/stop.js +21 -26
- package/dist/commands/orchestrator/stop.js.map +1 -1
- package/dist/commands/pr/checks.d.ts +1 -1
- package/dist/commands/pr/close.d.ts +1 -1
- package/dist/commands/pr/create.d.ts +1 -1
- package/dist/commands/pr/index.d.ts +1 -1
- package/dist/commands/pr/link.d.ts +1 -1
- package/dist/commands/pr/list.d.ts +1 -1
- package/dist/commands/pr/merge.d.ts +1 -1
- package/dist/commands/pr/status.d.ts +1 -1
- package/dist/commands/pull.d.ts +1 -1
- package/dist/commands/qa/index.js +3 -3
- package/dist/commands/qa/index.js.map +1 -1
- package/dist/commands/repo/add.d.ts +1 -1
- package/dist/commands/repo/create.d.ts +1 -1
- package/dist/commands/repo/fix-remotes.d.ts +1 -1
- package/dist/commands/repo/index.d.ts +1 -1
- package/dist/commands/repo/list.d.ts +1 -1
- package/dist/commands/repo/remove.d.ts +1 -1
- package/dist/commands/repo/view.d.ts +1 -1
- package/dist/commands/session/attach.d.ts +1 -1
- package/dist/commands/session/attach.js +5 -7
- package/dist/commands/session/attach.js.map +1 -1
- package/dist/commands/session/cleanup.d.ts +1 -1
- package/dist/commands/session/cleanup.js +2 -4
- package/dist/commands/session/cleanup.js.map +1 -1
- package/dist/commands/session/create.d.ts +1 -1
- package/dist/commands/session/exec.d.ts +1 -1
- package/dist/commands/session/exec.js +2 -3
- package/dist/commands/session/exec.js.map +1 -1
- package/dist/commands/session/health.d.ts +1 -1
- package/dist/commands/session/health.js +2 -4
- package/dist/commands/session/health.js.map +1 -1
- package/dist/commands/session/index.d.ts +1 -1
- package/dist/commands/session/inspect.d.ts +1 -1
- package/dist/commands/session/inspect.js +2 -3
- package/dist/commands/session/inspect.js.map +1 -1
- package/dist/commands/session/list.d.ts +1 -1
- package/dist/commands/session/list.js +2 -4
- package/dist/commands/session/list.js.map +1 -1
- package/dist/commands/session/peek.d.ts +1 -1
- package/dist/commands/session/peek.js +3 -6
- package/dist/commands/session/peek.js.map +1 -1
- package/dist/commands/session/poke.js +2 -4
- package/dist/commands/session/poke.js.map +1 -1
- package/dist/commands/session/prune.d.ts +1 -1
- package/dist/commands/session/prune.js +2 -4
- package/dist/commands/session/prune.js.map +1 -1
- package/dist/commands/session/report.d.ts +1 -1
- package/dist/commands/session/report.js +2 -4
- package/dist/commands/session/report.js.map +1 -1
- package/dist/commands/session/restart.d.ts +1 -1
- package/dist/commands/session/restart.js +2 -3
- package/dist/commands/session/restart.js.map +1 -1
- package/dist/commands/shortcut/connect.d.ts +1 -1
- package/dist/commands/support/logs.d.ts +1 -1
- package/dist/commands/ticket/create.d.ts +4 -5
- package/dist/commands/ticket/create.js +69 -88
- package/dist/commands/ticket/create.js.map +1 -1
- package/dist/commands/ticket/delete.d.ts +1 -1
- package/dist/commands/ticket/edit.d.ts +1 -1
- package/dist/commands/ticket/edit.js +22 -14
- package/dist/commands/ticket/edit.js.map +1 -1
- package/dist/commands/ticket/index.d.ts +1 -1
- package/dist/commands/ticket/index.js +6 -36
- package/dist/commands/ticket/index.js.map +1 -1
- package/dist/commands/ticket/list.d.ts +1 -1
- package/dist/commands/ticket/move.d.ts +1 -1
- package/dist/commands/ticket/show.d.ts +8 -7
- package/dist/commands/ticket/show.js +101 -8
- package/dist/commands/ticket/show.js.map +1 -1
- package/dist/commands/ticket/update.d.ts +1 -1
- package/dist/commands/ticket/update.js +31 -14
- package/dist/commands/ticket/update.js.map +1 -1
- package/dist/commands/trello/configure.d.ts +1 -1
- package/dist/commands/trello/import.d.ts +1 -1
- package/dist/commands/trello/sync.d.ts +1 -1
- package/dist/commands/work/asana.d.ts +1 -1
- package/dist/commands/work/complete.d.ts +1 -1
- package/dist/commands/work/complete.js +2 -3
- package/dist/commands/work/complete.js.map +1 -1
- package/dist/commands/work/groom.d.ts +1 -1
- package/dist/commands/work/hooks/add.d.ts +1 -1
- package/dist/commands/work/hooks/add.js +2 -4
- package/dist/commands/work/hooks/add.js.map +1 -1
- package/dist/commands/work/hooks/index.d.ts +1 -1
- package/dist/commands/work/hooks/list.d.ts +1 -1
- package/dist/commands/work/hooks/list.js +2 -4
- package/dist/commands/work/hooks/list.js.map +1 -1
- package/dist/commands/work/hooks/remove.d.ts +1 -1
- package/dist/commands/work/hooks/remove.js +2 -4
- package/dist/commands/work/hooks/remove.js.map +1 -1
- package/dist/commands/work/hooks/toggle.d.ts +1 -1
- package/dist/commands/work/hooks/toggle.js +2 -4
- package/dist/commands/work/hooks/toggle.js.map +1 -1
- package/dist/commands/work/implement.d.ts +1 -1
- package/dist/commands/work/index.d.ts +1 -1
- package/dist/commands/work/index.js +4 -0
- package/dist/commands/work/index.js.map +1 -1
- package/dist/commands/work/jira.d.ts +1 -1
- package/dist/commands/work/linear.d.ts +1 -1
- package/dist/commands/work/peek.d.ts +1 -1
- package/dist/commands/work/ready.d.ts +1 -1
- package/dist/commands/work/ready.js +2 -3
- package/dist/commands/work/ready.js.map +1 -1
- package/dist/commands/work/rebase.d.ts +33 -0
- package/dist/commands/work/rebase.js +394 -0
- package/dist/commands/work/rebase.js.map +1 -0
- package/dist/commands/work/resolve.d.ts +1 -1
- package/dist/commands/work/review.d.ts +1 -1
- package/dist/commands/work/ship.d.ts +2 -1
- package/dist/commands/work/ship.js +49 -4
- package/dist/commands/work/ship.js.map +1 -1
- package/dist/commands/work/shortcut.d.ts +1 -1
- package/dist/commands/work/source/set.d.ts +1 -1
- package/dist/commands/work/source.d.ts +1 -1
- package/dist/commands/work/spawn.d.ts +1 -1
- package/dist/commands/work/spawn.js +2 -4
- package/dist/commands/work/spawn.js.map +1 -1
- package/dist/commands/work/start.d.ts +8 -1
- package/dist/commands/work/start.js +190 -22
- package/dist/commands/work/start.js.map +1 -1
- package/dist/commands/work/status.d.ts +1 -1
- package/dist/commands/work/stop.d.ts +1 -1
- package/dist/commands/work/stop.js +2 -4
- package/dist/commands/work/stop.js.map +1 -1
- package/dist/commands/work/watch.d.ts +1 -1
- package/dist/commands/work/watch.js +2 -4
- package/dist/commands/work/watch.js.map +1 -1
- package/dist/hooks/init.js +2 -2
- package/dist/hooks/init.js.map +1 -1
- package/dist/lib/agents/commands.d.ts +9 -3
- package/dist/lib/agents/commands.js +103 -88
- package/dist/lib/agents/commands.js.map +1 -1
- package/dist/lib/asana/config.js +13 -7
- package/dist/lib/asana/config.js.map +1 -1
- package/dist/lib/clickup/client.d.ts +92 -0
- package/dist/lib/clickup/client.js +150 -0
- package/dist/lib/clickup/client.js.map +1 -0
- package/dist/lib/clickup/config.d.ts +41 -0
- package/dist/lib/clickup/config.js +104 -0
- package/dist/lib/clickup/config.js.map +1 -0
- package/dist/lib/clickup/index.d.ts +4 -0
- package/dist/lib/clickup/index.js +4 -0
- package/dist/lib/clickup/index.js.map +1 -0
- package/dist/lib/clickup/types.d.ts +104 -0
- package/dist/lib/clickup/types.js +34 -0
- package/dist/lib/clickup/types.js.map +1 -0
- package/dist/lib/dashboard/server.js +1 -1
- package/dist/lib/dashboard/server.js.map +1 -1
- package/dist/lib/database/agents.d.ts +62 -4
- package/dist/lib/database/agents.js +161 -8
- package/dist/lib/database/agents.js.map +1 -1
- package/dist/lib/database/credential-store.d.ts +64 -0
- package/dist/lib/database/credential-store.js +306 -0
- package/dist/lib/database/credential-store.js.map +1 -0
- package/dist/lib/database/db-safety.js +4 -4
- package/dist/lib/database/db-safety.js.map +1 -1
- package/dist/lib/database/drizzle-schema.d.ts +2 -2
- package/dist/lib/database/drizzle-schema.js +2 -1
- package/dist/lib/database/drizzle-schema.js.map +1 -1
- package/dist/lib/database/index.d.ts +2 -1
- package/dist/lib/database/index.js +3 -1
- package/dist/lib/database/index.js.map +1 -1
- package/dist/lib/database/migrations/0013_agent_lifecycle_states.d.ts +11 -0
- package/dist/lib/database/migrations/0013_agent_lifecycle_states.js +47 -0
- package/dist/lib/database/migrations/0013_agent_lifecycle_states.js.map +1 -0
- package/dist/lib/database/migrations/0014_agent_work_lifecycle.d.ts +10 -0
- package/dist/lib/database/migrations/0014_agent_work_lifecycle.js +31 -0
- package/dist/lib/database/migrations/0014_agent_work_lifecycle.js.map +1 -0
- package/dist/lib/database/migrations/0015_orchestrate_hooks.d.ts +8 -0
- package/dist/lib/database/migrations/0015_orchestrate_hooks.js +35 -0
- package/dist/lib/database/migrations/0015_orchestrate_hooks.js.map +1 -0
- package/dist/lib/database/migrations/0016_schema_catchup.d.ts +15 -0
- package/dist/lib/database/migrations/0016_schema_catchup.js +154 -0
- package/dist/lib/database/migrations/0016_schema_catchup.js.map +1 -0
- package/dist/lib/database/migrations/index.js +8 -0
- package/dist/lib/database/migrations/index.js.map +1 -1
- package/dist/lib/database/pmo-bootstrap.d.ts +7 -0
- package/dist/lib/database/pmo-bootstrap.js +47 -22
- package/dist/lib/database/pmo-bootstrap.js.map +1 -1
- package/dist/lib/database/workspace-schema.d.ts +1 -1
- package/dist/lib/database/workspace-schema.js +3 -1
- package/dist/lib/database/workspace-schema.js.map +1 -1
- package/dist/lib/database/workspace.js +4 -0
- package/dist/lib/database/workspace.js.map +1 -1
- package/dist/lib/events/events.d.ts +28 -0
- package/dist/lib/events/index.d.ts +1 -1
- package/dist/lib/events/index.js.map +1 -1
- package/dist/lib/execution/config.d.ts +2 -0
- package/dist/lib/execution/config.js +14 -0
- package/dist/lib/execution/config.js.map +1 -1
- package/dist/lib/execution/devcontainer.js +51 -0
- package/dist/lib/execution/devcontainer.js.map +1 -1
- package/dist/lib/execution/runners/devcontainer-tmux.js +1 -1
- package/dist/lib/execution/runners/devcontainer-tmux.js.map +1 -1
- package/dist/lib/execution/runners/devcontainer.js +9 -1
- package/dist/lib/execution/runners/devcontainer.js.map +1 -1
- package/dist/lib/execution/runners/docker-credentials.d.ts +8 -0
- package/dist/lib/execution/runners/docker-credentials.js +20 -3
- package/dist/lib/execution/runners/docker-credentials.js.map +1 -1
- package/dist/lib/execution/runners/docker-management.d.ts +54 -0
- package/dist/lib/execution/runners/docker-management.js +194 -7
- package/dist/lib/execution/runners/docker-management.js.map +1 -1
- package/dist/lib/execution/runners/index.d.ts +1 -1
- package/dist/lib/execution/runners/index.js +1 -1
- package/dist/lib/execution/runners/index.js.map +1 -1
- package/dist/lib/execution/runners/shared.d.ts +23 -1
- package/dist/lib/execution/runners/shared.js +112 -1
- package/dist/lib/execution/runners/shared.js.map +1 -1
- package/dist/lib/execution/session-utils.d.ts +4 -0
- package/dist/lib/execution/session-utils.js +34 -24
- package/dist/lib/execution/session-utils.js.map +1 -1
- package/dist/lib/execution/spawner.js +8 -1
- package/dist/lib/execution/spawner.js.map +1 -1
- package/dist/lib/execution/types.js +1 -1
- package/dist/lib/external-issues/types.d.ts +3 -3
- package/dist/lib/external-issues/types.js +1 -1
- package/dist/lib/external-issues/types.js.map +1 -1
- package/dist/lib/jira/config.js +10 -4
- package/dist/lib/jira/config.js.map +1 -1
- package/dist/lib/linear/client.d.ts +13 -0
- package/dist/lib/linear/client.js +37 -0
- package/dist/lib/linear/client.js.map +1 -1
- package/dist/lib/linear/config.js +13 -8
- package/dist/lib/linear/config.js.map +1 -1
- package/dist/lib/mcp/generator.d.ts +26 -0
- package/dist/lib/mcp/generator.js +219 -0
- package/dist/lib/mcp/generator.js.map +1 -0
- package/dist/lib/mcp/index.d.ts +1 -0
- package/dist/lib/mcp/index.js +1 -0
- package/dist/lib/mcp/index.js.map +1 -1
- package/dist/lib/mcp/tools/index.d.ts +0 -11
- package/dist/lib/mcp/tools/index.js +0 -11
- package/dist/lib/mcp/tools/index.js.map +1 -1
- package/dist/lib/mcp/tools/overrides/index.d.ts +23 -0
- package/dist/lib/mcp/tools/overrides/index.js +30 -0
- package/dist/lib/mcp/tools/overrides/index.js.map +1 -0
- package/dist/lib/mcp/tools/overrides/tmux.d.ts +11 -0
- package/dist/lib/mcp/tools/overrides/tmux.js +184 -0
- package/dist/lib/mcp/tools/overrides/tmux.js.map +1 -0
- package/dist/lib/mcp/tools/overrides/work-start.d.ts +12 -0
- package/dist/lib/mcp/tools/overrides/work-start.js +108 -0
- package/dist/lib/mcp/tools/overrides/work-start.js.map +1 -0
- package/dist/lib/mcp/tools/ticket.js +10 -48
- package/dist/lib/mcp/tools/ticket.js.map +1 -1
- package/dist/lib/monday/config.js +11 -5
- package/dist/lib/monday/config.js.map +1 -1
- package/dist/lib/orchestrate/actions.d.ts +20 -0
- package/dist/lib/orchestrate/actions.js +194 -0
- package/dist/lib/orchestrate/actions.js.map +1 -0
- package/dist/lib/orchestrate/config-loader.d.ts +31 -0
- package/dist/lib/orchestrate/config-loader.js +201 -0
- package/dist/lib/orchestrate/config-loader.js.map +1 -0
- package/dist/lib/orchestrate/engine.d.ts +94 -0
- package/dist/lib/orchestrate/engine.js +290 -0
- package/dist/lib/orchestrate/engine.js.map +1 -0
- package/dist/lib/orchestrate/index.d.ts +16 -0
- package/dist/lib/orchestrate/index.js +14 -0
- package/dist/lib/orchestrate/index.js.map +1 -0
- package/dist/lib/orchestrate/poller.d.ts +58 -0
- package/dist/lib/orchestrate/poller.js +282 -0
- package/dist/lib/orchestrate/poller.js.map +1 -0
- package/dist/lib/orchestrate/presets.d.ts +27 -0
- package/dist/lib/orchestrate/presets.js +65 -0
- package/dist/lib/orchestrate/presets.js.map +1 -0
- package/dist/lib/orchestrate/types.d.ts +93 -0
- package/dist/lib/orchestrate/types.js +46 -0
- package/dist/lib/orchestrate/types.js.map +1 -0
- package/dist/lib/pmo/base-command.d.ts +20 -152
- package/dist/lib/pmo/base-command.js +32 -198
- package/dist/lib/pmo/base-command.js.map +1 -1
- package/dist/lib/pmo/index.d.ts +1 -0
- package/dist/lib/pmo/index.js +3 -0
- package/dist/lib/pmo/index.js.map +1 -1
- package/dist/lib/pmo/storage/base.d.ts +0 -18
- package/dist/lib/pmo/storage/base.js +0 -231
- package/dist/lib/pmo/storage/base.js.map +1 -1
- package/dist/lib/pmo/storage/index.d.ts +1 -76
- package/dist/lib/pmo/storage/index.js +1 -215
- package/dist/lib/pmo/storage/index.js.map +1 -1
- package/dist/lib/pmo/storage/specs.js.map +1 -1
- package/dist/lib/pmo/storage/tickets.d.ts +2 -2
- package/dist/lib/pmo/storage/tickets.js +4 -34
- package/dist/lib/pmo/storage/tickets.js.map +1 -1
- package/dist/lib/pmo/types.d.ts +0 -37
- package/dist/lib/pr/index.d.ts +28 -0
- package/dist/lib/pr/index.js +100 -0
- package/dist/lib/pr/index.js.map +1 -1
- package/dist/lib/providers/clickup-provider.d.ts +28 -0
- package/dist/lib/providers/clickup-provider.js +353 -0
- package/dist/lib/providers/clickup-provider.js.map +1 -0
- package/dist/lib/providers/event-emitting-provider.d.ts +4 -2
- package/dist/lib/providers/event-emitting-provider.js +12 -0
- package/dist/lib/providers/event-emitting-provider.js.map +1 -1
- package/dist/lib/providers/index.d.ts +1 -1
- package/dist/lib/providers/index.js.map +1 -1
- package/dist/lib/providers/linear-provider.d.ts +4 -2
- package/dist/lib/providers/linear-provider.js +106 -0
- package/dist/lib/providers/linear-provider.js.map +1 -1
- package/dist/lib/providers/pmo-provider.d.ts +4 -2
- package/dist/lib/providers/pmo-provider.js +26 -0
- package/dist/lib/providers/pmo-provider.js.map +1 -1
- package/dist/lib/providers/resolver.d.ts +1 -1
- package/dist/lib/providers/resolver.js +16 -5
- package/dist/lib/providers/resolver.js.map +1 -1
- package/dist/lib/providers/types.d.ts +31 -2
- package/dist/lib/runners/claude-code-runner.js +13 -4
- package/dist/lib/runners/claude-code-runner.js.map +1 -1
- package/dist/lib/runtime-command.d.ts +219 -0
- package/dist/lib/runtime-command.js +320 -0
- package/dist/lib/runtime-command.js.map +1 -0
- package/dist/lib/shortcut/config.js +13 -7
- package/dist/lib/shortcut/config.js.map +1 -1
- package/dist/lib/telemetry/analytics.d.ts +1 -1
- package/dist/lib/telemetry/analytics.js +16 -8
- package/dist/lib/telemetry/analytics.js.map +1 -1
- package/dist/lib/trello/config.js +17 -12
- package/dist/lib/trello/config.js.map +1 -1
- package/dist/lib/update-check.d.ts +8 -3
- package/dist/lib/update-check.js +16 -5
- package/dist/lib/update-check.js.map +1 -1
- package/dist/lib/work-lifecycle/events.d.ts +1 -1
- package/dist/lib/work-lifecycle/hooks/types.d.ts +3 -2
- package/dist/lib/work-lifecycle/hooks/types.js +12 -0
- package/dist/lib/work-lifecycle/hooks/types.js.map +1 -1
- package/dist/lib/work-source/config.d.ts +1 -1
- package/dist/lib/work-source/config.js +11 -1
- package/dist/lib/work-source/config.js.map +1 -1
- package/dist/lib/work-source/provider-sources.js +6 -1
- package/dist/lib/work-source/provider-sources.js.map +1 -1
- package/oclif.manifest.json +2682 -3839
- package/package.json +1 -1
- package/dist/commands/board/index.js +0 -263
- package/dist/commands/board/index.js.map +0 -1
- package/dist/commands/board/view.d.ts +0 -15
- package/dist/commands/board/view.js +0 -137
- package/dist/commands/board/view.js.map +0 -1
- package/dist/commands/board/watch.d.ts +0 -15
- package/dist/commands/board/watch.js +0 -59
- package/dist/commands/board/watch.js.map +0 -1
- package/dist/commands/dashboard/index.d.ts +0 -14
- package/dist/commands/dashboard/index.js +0 -117
- package/dist/commands/dashboard/index.js.map +0 -1
- package/dist/commands/dashboard.d.ts +0 -38
- package/dist/commands/dashboard.js +0 -353
- package/dist/commands/dashboard.js.map +0 -1
- package/dist/commands/pmo/init.d.ts +0 -28
- package/dist/commands/pmo/init.js +0 -410
- package/dist/commands/pmo/init.js.map +0 -1
- package/dist/commands/project/archive.js +0 -79
- package/dist/commands/project/archive.js.map +0 -1
- package/dist/commands/project/create.d.ts +0 -24
- package/dist/commands/project/create.js +0 -191
- package/dist/commands/project/create.js.map +0 -1
- package/dist/commands/project/delete.d.ts +0 -18
- package/dist/commands/project/delete.js +0 -115
- package/dist/commands/project/delete.js.map +0 -1
- package/dist/commands/project/index.js +0 -60
- package/dist/commands/project/index.js.map +0 -1
- package/dist/commands/project/list.js +0 -115
- package/dist/commands/project/list.js.map +0 -1
- package/dist/commands/project/spec.d.ts +0 -19
- package/dist/commands/project/spec.js +0 -218
- package/dist/commands/project/spec.js.map +0 -1
- package/dist/commands/project/unarchive.d.ts +0 -17
- package/dist/commands/project/unarchive.js +0 -55
- package/dist/commands/project/unarchive.js.map +0 -1
- package/dist/commands/project/update.d.ts +0 -19
- package/dist/commands/project/update.js +0 -161
- package/dist/commands/project/update.js.map +0 -1
- package/dist/commands/project/view.d.ts +0 -17
- package/dist/commands/project/view.js +0 -107
- package/dist/commands/project/view.js.map +0 -1
- package/dist/commands/ticket/bulk.js +0 -141
- package/dist/commands/ticket/bulk.js.map +0 -1
- package/dist/commands/ticket/cancel.d.ts +0 -17
- package/dist/commands/ticket/cancel.js +0 -206
- package/dist/commands/ticket/cancel.js.map +0 -1
- package/dist/commands/ticket/category.d.ts +0 -15
- package/dist/commands/ticket/category.js +0 -64
- package/dist/commands/ticket/category.js.map +0 -1
- package/dist/commands/ticket/complete.d.ts +0 -17
- package/dist/commands/ticket/complete.js +0 -178
- package/dist/commands/ticket/complete.js.map +0 -1
- package/dist/commands/ticket/epic.d.ts +0 -21
- package/dist/commands/ticket/epic.js +0 -306
- package/dist/commands/ticket/epic.js.map +0 -1
- package/dist/commands/ticket/link/block.d.ts +0 -15
- package/dist/commands/ticket/link/block.js +0 -96
- package/dist/commands/ticket/link/block.js.map +0 -1
- package/dist/commands/ticket/link/duplicates.d.ts +0 -15
- package/dist/commands/ticket/link/duplicates.js +0 -96
- package/dist/commands/ticket/link/duplicates.js.map +0 -1
- package/dist/commands/ticket/link/index.d.ts +0 -14
- package/dist/commands/ticket/link/index.js +0 -99
- package/dist/commands/ticket/link/index.js.map +0 -1
- package/dist/commands/ticket/link/relates.d.ts +0 -15
- package/dist/commands/ticket/link/relates.js +0 -96
- package/dist/commands/ticket/link/relates.js.map +0 -1
- package/dist/commands/ticket/project.d.ts +0 -19
- package/dist/commands/ticket/project.js +0 -257
- package/dist/commands/ticket/project.js.map +0 -1
- package/dist/commands/ticket/reassign.d.ts +0 -20
- package/dist/commands/ticket/reassign.js +0 -311
- package/dist/commands/ticket/reassign.js.map +0 -1
- package/dist/commands/ticket/resolve.d.ts +0 -68
- package/dist/commands/ticket/resolve.js +0 -296
- package/dist/commands/ticket/resolve.js.map +0 -1
- package/dist/commands/ticket/spec.d.ts +0 -19
- package/dist/commands/ticket/spec.js +0 -260
- package/dist/commands/ticket/spec.js.map +0 -1
- package/dist/commands/ticket/status.d.ts +0 -14
- package/dist/commands/ticket/status.js +0 -84
- package/dist/commands/ticket/status.js.map +0 -1
- package/dist/commands/ticket/view.d.ts +0 -14
- package/dist/commands/ticket/view.js +0 -109
- package/dist/commands/ticket/view.js.map +0 -1
- package/dist/lib/mcp/tools/board.d.ts +0 -6
- package/dist/lib/mcp/tools/board.js +0 -190
- package/dist/lib/mcp/tools/board.js.map +0 -1
- package/dist/lib/mcp/tools/category.d.ts +0 -6
- package/dist/lib/mcp/tools/category.js +0 -85
- package/dist/lib/mcp/tools/category.js.map +0 -1
- package/dist/lib/mcp/tools/epic.d.ts +0 -6
- package/dist/lib/mcp/tools/epic.js +0 -184
- package/dist/lib/mcp/tools/epic.js.map +0 -1
- package/dist/lib/mcp/tools/label.d.ts +0 -6
- package/dist/lib/mcp/tools/label.js +0 -339
- package/dist/lib/mcp/tools/label.js.map +0 -1
- package/dist/lib/mcp/tools/phase.d.ts +0 -6
- package/dist/lib/mcp/tools/phase.js +0 -132
- package/dist/lib/mcp/tools/phase.js.map +0 -1
- package/dist/lib/mcp/tools/project.d.ts +0 -6
- package/dist/lib/mcp/tools/project.js +0 -197
- package/dist/lib/mcp/tools/project.js.map +0 -1
- package/dist/lib/mcp/tools/roadmap.d.ts +0 -6
- package/dist/lib/mcp/tools/roadmap.js +0 -124
- package/dist/lib/mcp/tools/roadmap.js.map +0 -1
- package/dist/lib/mcp/tools/status.d.ts +0 -6
- package/dist/lib/mcp/tools/status.js +0 -110
- package/dist/lib/mcp/tools/status.js.map +0 -1
- package/dist/lib/mcp/tools/template.d.ts +0 -6
- package/dist/lib/mcp/tools/template.js +0 -108
- package/dist/lib/mcp/tools/template.js.map +0 -1
- package/dist/lib/mcp/tools/view.d.ts +0 -6
- package/dist/lib/mcp/tools/view.js +0 -77
- package/dist/lib/mcp/tools/view.js.map +0 -1
- package/dist/lib/mcp/tools/workflow.d.ts +0 -6
- package/dist/lib/mcp/tools/workflow.js +0 -96
- package/dist/lib/mcp/tools/workflow.js.map +0 -1
- package/dist/lib/pmo/storage/categories.d.ts +0 -50
- package/dist/lib/pmo/storage/categories.js +0 -206
- package/dist/lib/pmo/storage/categories.js.map +0 -1
- package/dist/lib/pmo/storage/labels.d.ts +0 -55
- package/dist/lib/pmo/storage/labels.js +0 -347
- package/dist/lib/pmo/storage/labels.js.map +0 -1
- package/dist/lib/pmo/storage/phases.d.ts +0 -65
- package/dist/lib/pmo/storage/phases.js +0 -393
- package/dist/lib/pmo/storage/phases.js.map +0 -1
- package/dist/lib/pmo/storage/roadmaps.d.ts +0 -64
- package/dist/lib/pmo/storage/roadmaps.js +0 -373
- package/dist/lib/pmo/storage/roadmaps.js.map +0 -1
- package/dist/lib/pmo/storage/views.d.ts +0 -57
- package/dist/lib/pmo/storage/views.js +0 -456
- package/dist/lib/pmo/storage/views.js.map +0 -1
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrate Config Loader
|
|
3
|
+
*
|
|
4
|
+
* Loads .proletariat/hooks.yml and .proletariat/workflow.yml files,
|
|
5
|
+
* validates them, and syncs hook configurations into the database.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'node:fs';
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import yaml from 'js-yaml';
|
|
10
|
+
import { WorkHookStorage } from '../work-lifecycle/hooks/storage.js';
|
|
11
|
+
import { HOOK_MODES } from './types.js';
|
|
12
|
+
import { getPreset } from './presets.js';
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// YAML File Loading
|
|
15
|
+
// =============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Load and parse .proletariat/hooks.yml from an HQ path.
|
|
18
|
+
* Returns null if the file doesn't exist.
|
|
19
|
+
*/
|
|
20
|
+
export function loadHooksYaml(hqPath) {
|
|
21
|
+
const filePath = path.join(hqPath, '.proletariat', 'hooks.yml');
|
|
22
|
+
if (!fs.existsSync(filePath))
|
|
23
|
+
return null;
|
|
24
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
25
|
+
const parsed = yaml.load(content);
|
|
26
|
+
return parsed ?? null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Load and parse .proletariat/workflow.yml from an HQ path.
|
|
30
|
+
* Returns null if the file doesn't exist.
|
|
31
|
+
*/
|
|
32
|
+
export function loadWorkflowYaml(hqPath) {
|
|
33
|
+
const filePath = path.join(hqPath, '.proletariat', 'workflow.yml');
|
|
34
|
+
if (!fs.existsSync(filePath))
|
|
35
|
+
return null;
|
|
36
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
37
|
+
const parsed = yaml.load(content);
|
|
38
|
+
return parsed ?? null;
|
|
39
|
+
}
|
|
40
|
+
// =============================================================================
|
|
41
|
+
// Hook Sync
|
|
42
|
+
// =============================================================================
|
|
43
|
+
/**
|
|
44
|
+
* Map an OrchestrateEvent + action string into an existing HookableEvent + HookActionType.
|
|
45
|
+
* For built-in actions, we use 'shell' type with a `prlt` command as the action value.
|
|
46
|
+
*/
|
|
47
|
+
function mapToHookConfig(event, entry) {
|
|
48
|
+
// Map orchestrate events to hookable events where possible
|
|
49
|
+
const eventMap = {
|
|
50
|
+
'work:started': 'work:started',
|
|
51
|
+
'work:status_changed': 'work:status_changed',
|
|
52
|
+
'work:pr_created': 'work:pr_created',
|
|
53
|
+
'work:completed': 'work:completed',
|
|
54
|
+
'agent:spawned': 'agent:spawned',
|
|
55
|
+
'agent:stopped': 'agent:stopped',
|
|
56
|
+
};
|
|
57
|
+
const hookEvent = eventMap[event];
|
|
58
|
+
// For events without a direct mapping, store as shell hook with prlt hook fire
|
|
59
|
+
const resolvedEvent = hookEvent ?? 'work:status_changed';
|
|
60
|
+
const actionValue = `prlt hook fire ${event} --action ${entry.action}`;
|
|
61
|
+
return {
|
|
62
|
+
event: resolvedEvent,
|
|
63
|
+
actionType: 'shell',
|
|
64
|
+
actionValue,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Sync hooks from a parsed YAML config into the database.
|
|
69
|
+
* Clears existing YAML-sourced hooks and replaces them.
|
|
70
|
+
*/
|
|
71
|
+
export function syncHooksFromYaml(db, hooksYaml) {
|
|
72
|
+
const storage = new WorkHookStorage(db);
|
|
73
|
+
let count = 0;
|
|
74
|
+
// Clear existing YAML-sourced hooks
|
|
75
|
+
try {
|
|
76
|
+
db.exec("DELETE FROM pmo_work_hooks WHERE source = 'yaml'");
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// source column might not exist yet — ignore
|
|
80
|
+
}
|
|
81
|
+
for (const [eventName, entries] of Object.entries(hooksYaml)) {
|
|
82
|
+
if (!Array.isArray(entries))
|
|
83
|
+
continue;
|
|
84
|
+
for (let i = 0; i < entries.length; i++) {
|
|
85
|
+
const entry = entries[i];
|
|
86
|
+
if (!entry.action)
|
|
87
|
+
continue;
|
|
88
|
+
const mode = entry.mode && HOOK_MODES.includes(entry.mode)
|
|
89
|
+
? entry.mode
|
|
90
|
+
: 'auto';
|
|
91
|
+
const hookName = `yaml:${eventName}:${entry.action}:${i}`;
|
|
92
|
+
try {
|
|
93
|
+
const hook = storage.create({
|
|
94
|
+
name: hookName,
|
|
95
|
+
event: eventName || 'work:status_changed',
|
|
96
|
+
actionType: 'shell',
|
|
97
|
+
actionValue: entry.action,
|
|
98
|
+
description: `From hooks.yml: ${eventName} → ${entry.action} (${mode})`,
|
|
99
|
+
});
|
|
100
|
+
// Update the mode and source via raw SQL since WorkHookStorage doesn't support these yet
|
|
101
|
+
try {
|
|
102
|
+
db.prepare("UPDATE pmo_work_hooks SET mode = ?, priority = ?, source = 'yaml', config = ? WHERE id = ?").run(mode, i, entry.max_retries ? JSON.stringify({ max_retries: entry.max_retries }) : null, hook.id);
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// Columns might not exist yet
|
|
106
|
+
}
|
|
107
|
+
count++;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
// Skip duplicates
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return count;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Apply a preset to the database, replacing existing preset-sourced hooks.
|
|
118
|
+
*/
|
|
119
|
+
export function applyPreset(db, presetName) {
|
|
120
|
+
const preset = getPreset(presetName);
|
|
121
|
+
const storage = new WorkHookStorage(db);
|
|
122
|
+
let count = 0;
|
|
123
|
+
// Clear existing preset-sourced hooks
|
|
124
|
+
try {
|
|
125
|
+
db.exec("DELETE FROM pmo_work_hooks WHERE source = 'preset'");
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
// source column might not exist yet
|
|
129
|
+
}
|
|
130
|
+
for (let i = 0; i < preset.hooks.length; i++) {
|
|
131
|
+
const hook = preset.hooks[i];
|
|
132
|
+
const hookName = `preset:${presetName}:${hook.event}:${hook.action}:${i}`;
|
|
133
|
+
try {
|
|
134
|
+
const created = storage.create({
|
|
135
|
+
name: hookName,
|
|
136
|
+
event: mapOrchestrateToHookable(hook.event),
|
|
137
|
+
actionType: 'shell',
|
|
138
|
+
actionValue: `prlt hook fire ${hook.event} --action ${hook.action}`,
|
|
139
|
+
description: `Preset ${presetName}: ${hook.event} → ${hook.action} (${hook.mode})`,
|
|
140
|
+
});
|
|
141
|
+
try {
|
|
142
|
+
db.prepare("UPDATE pmo_work_hooks SET mode = ?, priority = ?, source = 'preset', config = ? WHERE id = ?").run(hook.mode, i, hook.config ? JSON.stringify(hook.config) : null, created.id);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// Columns might not exist
|
|
146
|
+
}
|
|
147
|
+
count++;
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
// Skip duplicates
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return count;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Map orchestrate event to the closest hookable event.
|
|
157
|
+
* For new orchestrate events, use a fallback.
|
|
158
|
+
*/
|
|
159
|
+
function mapOrchestrateToHookable(event) {
|
|
160
|
+
const directMap = {
|
|
161
|
+
'work:started': 'work:started',
|
|
162
|
+
'work:status_changed': 'work:status_changed',
|
|
163
|
+
'work:pr_created': 'work:pr_created',
|
|
164
|
+
'work:completed': 'work:completed',
|
|
165
|
+
'agent:spawned': 'agent:spawned',
|
|
166
|
+
'agent:stopped': 'agent:stopped',
|
|
167
|
+
};
|
|
168
|
+
return directMap[event] ?? 'work:status_changed';
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Export current hook configuration to YAML format.
|
|
172
|
+
*/
|
|
173
|
+
export function exportHooksToYaml(db) {
|
|
174
|
+
const storage = new WorkHookStorage(db);
|
|
175
|
+
const hooks = storage.list();
|
|
176
|
+
const grouped = {};
|
|
177
|
+
for (const hook of hooks) {
|
|
178
|
+
const event = hook.event;
|
|
179
|
+
if (!grouped[event])
|
|
180
|
+
grouped[event] = [];
|
|
181
|
+
let mode = 'auto';
|
|
182
|
+
let config;
|
|
183
|
+
try {
|
|
184
|
+
const row = db.prepare("SELECT mode, config FROM pmo_work_hooks WHERE id = ?").get(hook.id);
|
|
185
|
+
if (row?.mode)
|
|
186
|
+
mode = row.mode;
|
|
187
|
+
if (row?.config)
|
|
188
|
+
config = JSON.parse(row.config);
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
// mode column might not exist
|
|
192
|
+
}
|
|
193
|
+
grouped[event].push({
|
|
194
|
+
action: hook.actionValue,
|
|
195
|
+
mode,
|
|
196
|
+
...(config ? config : {}),
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
return yaml.dump(grouped, { indent: 2, lineWidth: 120 });
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=config-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrate Engine
|
|
3
|
+
*
|
|
4
|
+
* The core daemon loop that:
|
|
5
|
+
* 1. Loads hook configuration from DB (synced from YAML/presets/CLI)
|
|
6
|
+
* 2. Subscribes to EventBus events
|
|
7
|
+
* 3. Executes matching hooks with mode-aware behavior
|
|
8
|
+
* 4. Optionally polls external sources for events
|
|
9
|
+
*
|
|
10
|
+
* The engine extends the existing HookManager with mode support
|
|
11
|
+
* and built-in action execution.
|
|
12
|
+
*/
|
|
13
|
+
import type Database from 'better-sqlite3';
|
|
14
|
+
import type { OrchestrateEventContext, OrchestrateActionResult } from './types.js';
|
|
15
|
+
export interface OrchestrateEngineOptions {
|
|
16
|
+
/** Database connection */
|
|
17
|
+
db: Database.Database;
|
|
18
|
+
/** Logger function */
|
|
19
|
+
log?: (msg: string) => void;
|
|
20
|
+
/** Callback for confirm-mode hooks (returns true to approve) */
|
|
21
|
+
onConfirm?: (hookName: string, event: string, action: string) => Promise<boolean>;
|
|
22
|
+
/** Callback for notifications */
|
|
23
|
+
onNotify?: (hookName: string, event: string, action: string, result: OrchestrateActionResult) => void;
|
|
24
|
+
}
|
|
25
|
+
export declare class OrchestrateEngine {
|
|
26
|
+
private db;
|
|
27
|
+
private hookStorage;
|
|
28
|
+
private unsubscribers;
|
|
29
|
+
private log;
|
|
30
|
+
private onConfirm?;
|
|
31
|
+
private onNotify?;
|
|
32
|
+
private running;
|
|
33
|
+
private pendingConfirmations;
|
|
34
|
+
constructor(options: OrchestrateEngineOptions);
|
|
35
|
+
/**
|
|
36
|
+
* Start the orchestrate engine — subscribe to all orchestrate events.
|
|
37
|
+
*/
|
|
38
|
+
start(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Stop the engine and clean up subscriptions.
|
|
41
|
+
*/
|
|
42
|
+
stop(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Fire an event manually (used by `prlt hook fire`).
|
|
45
|
+
* This is the entry point for external event sources (GitHub Actions, polling, etc.).
|
|
46
|
+
*/
|
|
47
|
+
fireEvent(event: string, ctx: OrchestrateEventContext): Promise<OrchestrateActionResult[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Get pending confirmations for hooks in confirm mode.
|
|
50
|
+
*/
|
|
51
|
+
getPendingConfirmations(): typeof this.pendingConfirmations;
|
|
52
|
+
/**
|
|
53
|
+
* Approve a pending confirmation and execute it.
|
|
54
|
+
*/
|
|
55
|
+
approveConfirmation(index: number): Promise<OrchestrateActionResult | null>;
|
|
56
|
+
/**
|
|
57
|
+
* Deny a pending confirmation.
|
|
58
|
+
*/
|
|
59
|
+
denyConfirmation(index: number): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Handle an event by finding and executing matching hooks.
|
|
62
|
+
*/
|
|
63
|
+
private handleEvent;
|
|
64
|
+
/**
|
|
65
|
+
* Get hooks for a given event from the database, ordered by priority.
|
|
66
|
+
*/
|
|
67
|
+
private getHooksForEvent;
|
|
68
|
+
/**
|
|
69
|
+
* Build an OrchestrateEventContext from raw event data.
|
|
70
|
+
*/
|
|
71
|
+
private buildContext;
|
|
72
|
+
/**
|
|
73
|
+
* Resolve the action name from a hook row.
|
|
74
|
+
* Built-in actions are referenced by name; shell hooks use the raw command.
|
|
75
|
+
*/
|
|
76
|
+
private resolveActionName;
|
|
77
|
+
/**
|
|
78
|
+
* Execute an action — either built-in or shell fallback.
|
|
79
|
+
*/
|
|
80
|
+
private executeAction;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Initialize and start the orchestrate engine.
|
|
84
|
+
* Safe to call multiple times.
|
|
85
|
+
*/
|
|
86
|
+
export declare function initOrchestrateEngine(options: OrchestrateEngineOptions): OrchestrateEngine;
|
|
87
|
+
/**
|
|
88
|
+
* Get the running orchestrate engine instance.
|
|
89
|
+
*/
|
|
90
|
+
export declare function getOrchestrateEngine(): OrchestrateEngine | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Stop the orchestrate engine.
|
|
93
|
+
*/
|
|
94
|
+
export declare function stopOrchestrateEngine(): void;
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrate Engine
|
|
3
|
+
*
|
|
4
|
+
* The core daemon loop that:
|
|
5
|
+
* 1. Loads hook configuration from DB (synced from YAML/presets/CLI)
|
|
6
|
+
* 2. Subscribes to EventBus events
|
|
7
|
+
* 3. Executes matching hooks with mode-aware behavior
|
|
8
|
+
* 4. Optionally polls external sources for events
|
|
9
|
+
*
|
|
10
|
+
* The engine extends the existing HookManager with mode support
|
|
11
|
+
* and built-in action execution.
|
|
12
|
+
*/
|
|
13
|
+
import { execSync } from 'node:child_process';
|
|
14
|
+
import { getEventBus } from '../events/event-bus.js';
|
|
15
|
+
import { WorkHookStorage } from '../work-lifecycle/hooks/storage.js';
|
|
16
|
+
import { executeBuiltinAction, ACTION_HANDLERS } from './actions.js';
|
|
17
|
+
export class OrchestrateEngine {
|
|
18
|
+
db;
|
|
19
|
+
hookStorage;
|
|
20
|
+
unsubscribers = [];
|
|
21
|
+
log;
|
|
22
|
+
onConfirm;
|
|
23
|
+
onNotify;
|
|
24
|
+
running = false;
|
|
25
|
+
pendingConfirmations = [];
|
|
26
|
+
constructor(options) {
|
|
27
|
+
this.db = options.db;
|
|
28
|
+
this.hookStorage = new WorkHookStorage(options.db);
|
|
29
|
+
this.log = options.log ?? (() => { });
|
|
30
|
+
this.onConfirm = options.onConfirm;
|
|
31
|
+
this.onNotify = options.onNotify;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Start the orchestrate engine — subscribe to all orchestrate events.
|
|
35
|
+
*/
|
|
36
|
+
start() {
|
|
37
|
+
if (this.running)
|
|
38
|
+
return;
|
|
39
|
+
this.running = true;
|
|
40
|
+
const bus = getEventBus();
|
|
41
|
+
// Subscribe to standard RuntimeEventMap events
|
|
42
|
+
const standardEvents = [
|
|
43
|
+
'work:started',
|
|
44
|
+
'work:status_changed',
|
|
45
|
+
'work:pr_created',
|
|
46
|
+
'work:pr_merged',
|
|
47
|
+
'work:pr_closed',
|
|
48
|
+
'work:completed',
|
|
49
|
+
'agent:spawned',
|
|
50
|
+
'agent:stopped',
|
|
51
|
+
];
|
|
52
|
+
for (const eventName of standardEvents) {
|
|
53
|
+
this.unsubscribers.push(bus.on(eventName, (payload) => {
|
|
54
|
+
void this.handleEvent(eventName, payload);
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
this.log('[orchestrate] Engine started, listening for events');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Stop the engine and clean up subscriptions.
|
|
61
|
+
*/
|
|
62
|
+
stop() {
|
|
63
|
+
this.running = false;
|
|
64
|
+
for (const unsub of this.unsubscribers) {
|
|
65
|
+
unsub();
|
|
66
|
+
}
|
|
67
|
+
this.unsubscribers = [];
|
|
68
|
+
this.pendingConfirmations = [];
|
|
69
|
+
this.log('[orchestrate] Engine stopped');
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Fire an event manually (used by `prlt hook fire`).
|
|
73
|
+
* This is the entry point for external event sources (GitHub Actions, polling, etc.).
|
|
74
|
+
*/
|
|
75
|
+
async fireEvent(event, ctx) {
|
|
76
|
+
return this.handleEvent(event, ctx);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get pending confirmations for hooks in confirm mode.
|
|
80
|
+
*/
|
|
81
|
+
getPendingConfirmations() {
|
|
82
|
+
return [...this.pendingConfirmations];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Approve a pending confirmation and execute it.
|
|
86
|
+
*/
|
|
87
|
+
async approveConfirmation(index) {
|
|
88
|
+
if (index < 0 || index >= this.pendingConfirmations.length)
|
|
89
|
+
return null;
|
|
90
|
+
const pending = this.pendingConfirmations.splice(index, 1)[0];
|
|
91
|
+
const result = executeBuiltinAction(pending.action, pending.ctx, pending.config);
|
|
92
|
+
this.log(`[orchestrate] Approved: ${pending.hookName} → ${pending.action} (${result.success ? 'success' : 'failed'})`);
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Deny a pending confirmation.
|
|
97
|
+
*/
|
|
98
|
+
denyConfirmation(index) {
|
|
99
|
+
if (index < 0 || index >= this.pendingConfirmations.length)
|
|
100
|
+
return false;
|
|
101
|
+
const pending = this.pendingConfirmations.splice(index, 1)[0];
|
|
102
|
+
this.log(`[orchestrate] Denied: ${pending.hookName} → ${pending.action}`);
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
// ===========================================================================
|
|
106
|
+
// Private
|
|
107
|
+
// ===========================================================================
|
|
108
|
+
/**
|
|
109
|
+
* Handle an event by finding and executing matching hooks.
|
|
110
|
+
*/
|
|
111
|
+
async handleEvent(eventName, eventData) {
|
|
112
|
+
const results = [];
|
|
113
|
+
try {
|
|
114
|
+
// Query hooks matching this event, ordered by priority
|
|
115
|
+
const hooks = this.getHooksForEvent(eventName);
|
|
116
|
+
if (hooks.length === 0)
|
|
117
|
+
return results;
|
|
118
|
+
// Build event context from the payload
|
|
119
|
+
const ctx = this.buildContext(eventName, eventData);
|
|
120
|
+
for (const hook of hooks) {
|
|
121
|
+
const mode = (hook.mode || 'auto');
|
|
122
|
+
const config = hook.config ? JSON.parse(hook.config) : undefined;
|
|
123
|
+
// Determine action — either a built-in action name or the raw action_value
|
|
124
|
+
const actionName = this.resolveActionName(hook);
|
|
125
|
+
if (mode === 'off') {
|
|
126
|
+
results.push({ action: actionName, success: true, durationMs: 0, skipped: true });
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
if (mode === 'confirm') {
|
|
130
|
+
// Queue for confirmation
|
|
131
|
+
if (this.onConfirm) {
|
|
132
|
+
const approved = await this.onConfirm(hook.name, eventName, actionName);
|
|
133
|
+
if (!approved) {
|
|
134
|
+
this.log(`[orchestrate] Skipped (not confirmed): ${hook.name} → ${actionName}`);
|
|
135
|
+
results.push({ action: actionName, success: true, durationMs: 0, skipped: true });
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// No confirm handler — queue for later approval
|
|
141
|
+
this.pendingConfirmations.push({
|
|
142
|
+
hookName: hook.name,
|
|
143
|
+
event: eventName,
|
|
144
|
+
action: actionName,
|
|
145
|
+
ctx,
|
|
146
|
+
config,
|
|
147
|
+
});
|
|
148
|
+
this.log(`[orchestrate] Queued for confirmation: ${hook.name} → ${actionName}`);
|
|
149
|
+
results.push({ action: actionName, success: true, durationMs: 0, awaitingConfirmation: true });
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Execute the action
|
|
154
|
+
const result = this.executeAction(actionName, ctx, config);
|
|
155
|
+
results.push(result);
|
|
156
|
+
this.log(`[orchestrate] ${hook.name} → ${actionName}: ${result.success ? 'success' : `failed: ${result.error}`} (${result.durationMs}ms)`);
|
|
157
|
+
// For notify mode, also fire the notification callback
|
|
158
|
+
if (mode === 'notify' && this.onNotify) {
|
|
159
|
+
this.onNotify(hook.name, eventName, actionName, result);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
this.log(`[orchestrate] Error handling event ${eventName}: ${err instanceof Error ? err.message : String(err)}`);
|
|
165
|
+
}
|
|
166
|
+
return results;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Get hooks for a given event from the database, ordered by priority.
|
|
170
|
+
*/
|
|
171
|
+
getHooksForEvent(eventName) {
|
|
172
|
+
try {
|
|
173
|
+
return this.db.prepare(`
|
|
174
|
+
SELECT id, name, event, action_type, action_value, enabled, description, mode, priority, config
|
|
175
|
+
FROM pmo_work_hooks
|
|
176
|
+
WHERE event = ? AND enabled = 1
|
|
177
|
+
ORDER BY priority ASC, created_at ASC
|
|
178
|
+
`).all(eventName);
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
// Fallback without mode/priority columns (pre-migration)
|
|
182
|
+
try {
|
|
183
|
+
const basic = this.db.prepare(`
|
|
184
|
+
SELECT id, name, event, action_type, action_value, enabled, description
|
|
185
|
+
FROM pmo_work_hooks
|
|
186
|
+
WHERE event = ? AND enabled = 1
|
|
187
|
+
ORDER BY created_at ASC
|
|
188
|
+
`).all(eventName);
|
|
189
|
+
return basic;
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
return [];
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Build an OrchestrateEventContext from raw event data.
|
|
198
|
+
*/
|
|
199
|
+
buildContext(eventName, data) {
|
|
200
|
+
return {
|
|
201
|
+
event: eventName,
|
|
202
|
+
ticket: (data.ticketId ?? data.workItemId ?? data.ticket),
|
|
203
|
+
pr: (data.prNumber ?? data.pr),
|
|
204
|
+
branch: data.branch,
|
|
205
|
+
agent: (data.agentName ?? data.agent ?? data.sessionId),
|
|
206
|
+
container: data.containerId,
|
|
207
|
+
executionId: data.executionId,
|
|
208
|
+
prUrl: data.prUrl,
|
|
209
|
+
projectId: data.projectId,
|
|
210
|
+
...data,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Resolve the action name from a hook row.
|
|
215
|
+
* Built-in actions are referenced by name; shell hooks use the raw command.
|
|
216
|
+
*/
|
|
217
|
+
resolveActionName(hook) {
|
|
218
|
+
// If the action_value starts with "prlt hook fire", extract the --action value
|
|
219
|
+
const actionMatch = hook.action_value.match(/--action\s+(\S+)/);
|
|
220
|
+
if (actionMatch)
|
|
221
|
+
return actionMatch[1];
|
|
222
|
+
// If it's a known built-in action name directly
|
|
223
|
+
if (ACTION_HANDLERS[hook.action_value])
|
|
224
|
+
return hook.action_value;
|
|
225
|
+
// Otherwise it's a raw shell command — use the action_value as-is
|
|
226
|
+
return hook.action_value;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Execute an action — either built-in or shell fallback.
|
|
230
|
+
*/
|
|
231
|
+
executeAction(actionName, ctx, config) {
|
|
232
|
+
// Try built-in action first
|
|
233
|
+
if (ACTION_HANDLERS[actionName]) {
|
|
234
|
+
return executeBuiltinAction(actionName, ctx, config);
|
|
235
|
+
}
|
|
236
|
+
// Fallback to shell execution
|
|
237
|
+
const start = Date.now();
|
|
238
|
+
try {
|
|
239
|
+
const env = {
|
|
240
|
+
...process.env,
|
|
241
|
+
PRLT_HOOK_EVENT: ctx.event,
|
|
242
|
+
PRLT_HOOK_TICKET: ctx.ticket ?? '',
|
|
243
|
+
PRLT_HOOK_PR: ctx.pr ? String(ctx.pr) : '',
|
|
244
|
+
PRLT_HOOK_BRANCH: ctx.branch ?? '',
|
|
245
|
+
PRLT_HOOK_AGENT: ctx.agent ?? '',
|
|
246
|
+
};
|
|
247
|
+
execSync(actionName, { env, timeout: 30_000, stdio: 'pipe' });
|
|
248
|
+
return { action: actionName, success: true, durationMs: Date.now() - start };
|
|
249
|
+
}
|
|
250
|
+
catch (err) {
|
|
251
|
+
return {
|
|
252
|
+
action: actionName,
|
|
253
|
+
success: false,
|
|
254
|
+
error: err instanceof Error ? err.message : String(err),
|
|
255
|
+
durationMs: Date.now() - start,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// =============================================================================
|
|
261
|
+
// Singleton
|
|
262
|
+
// =============================================================================
|
|
263
|
+
let _engine;
|
|
264
|
+
/**
|
|
265
|
+
* Initialize and start the orchestrate engine.
|
|
266
|
+
* Safe to call multiple times.
|
|
267
|
+
*/
|
|
268
|
+
export function initOrchestrateEngine(options) {
|
|
269
|
+
if (!_engine) {
|
|
270
|
+
_engine = new OrchestrateEngine(options);
|
|
271
|
+
_engine.start();
|
|
272
|
+
}
|
|
273
|
+
return _engine;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Get the running orchestrate engine instance.
|
|
277
|
+
*/
|
|
278
|
+
export function getOrchestrateEngine() {
|
|
279
|
+
return _engine;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Stop the orchestrate engine.
|
|
283
|
+
*/
|
|
284
|
+
export function stopOrchestrateEngine() {
|
|
285
|
+
if (_engine) {
|
|
286
|
+
_engine.stop();
|
|
287
|
+
_engine = undefined;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrate module — public API.
|
|
3
|
+
*
|
|
4
|
+
* Event-driven pipeline automation daemon with HITL controls.
|
|
5
|
+
* Extends the work-lifecycle hook system with built-in actions,
|
|
6
|
+
* YAML config loading, presets, and mode-aware execution.
|
|
7
|
+
*/
|
|
8
|
+
export type { OrchestrateEvent, HookMode, BuiltinAction, HooksYaml, HookYamlEntry, WorkflowYaml, PresetName, OrchestrateEventContext, OrchestrateActionResult, } from './types.js';
|
|
9
|
+
export { ORCHESTRATE_EVENTS, HOOK_MODES, BUILTIN_ACTIONS, PRESET_NAMES, } from './types.js';
|
|
10
|
+
export { PRESETS, getPreset, } from './presets.js';
|
|
11
|
+
export { loadHooksYaml, loadWorkflowYaml, syncHooksFromYaml, applyPreset, exportHooksToYaml, } from './config-loader.js';
|
|
12
|
+
export { ACTION_HANDLERS, executeBuiltinAction, } from './actions.js';
|
|
13
|
+
export { OrchestrateEngine, initOrchestrateEngine, getOrchestrateEngine, stopOrchestrateEngine, } from './engine.js';
|
|
14
|
+
export type { OrchestrateEngineOptions } from './engine.js';
|
|
15
|
+
export { OrchestratePoller } from './poller.js';
|
|
16
|
+
export type { PollerOptions } from './poller.js';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrate module — public API.
|
|
3
|
+
*
|
|
4
|
+
* Event-driven pipeline automation daemon with HITL controls.
|
|
5
|
+
* Extends the work-lifecycle hook system with built-in actions,
|
|
6
|
+
* YAML config loading, presets, and mode-aware execution.
|
|
7
|
+
*/
|
|
8
|
+
export { ORCHESTRATE_EVENTS, HOOK_MODES, BUILTIN_ACTIONS, PRESET_NAMES, } from './types.js';
|
|
9
|
+
export { PRESETS, getPreset, } from './presets.js';
|
|
10
|
+
export { loadHooksYaml, loadWorkflowYaml, syncHooksFromYaml, applyPreset, exportHooksToYaml, } from './config-loader.js';
|
|
11
|
+
export { ACTION_HANDLERS, executeBuiltinAction, } from './actions.js';
|
|
12
|
+
export { OrchestrateEngine, initOrchestrateEngine, getOrchestrateEngine, stopOrchestrateEngine, } from './engine.js';
|
|
13
|
+
export { OrchestratePoller } from './poller.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,OAAO,EACP,SAAS,GACV,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAClB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,eAAe,EACf,oBAAoB,GACrB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AAIpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA"}
|