@proletariat/cli 0.3.93 → 0.3.95
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/cleanup.d.ts +3 -4
- package/dist/commands/agent/cleanup.js +5 -4
- package/dist/commands/agent/cleanup.js.map +1 -1
- package/dist/commands/agent/gc.d.ts +3 -4
- package/dist/commands/agent/gc.js +5 -4
- package/dist/commands/agent/gc.js.map +1 -1
- package/dist/commands/agent/index.d.ts +3 -4
- package/dist/commands/agent/index.js +5 -4
- package/dist/commands/agent/index.js.map +1 -1
- package/dist/commands/agent/list.d.ts +3 -4
- package/dist/commands/agent/list.js +5 -4
- 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 +3 -4
- package/dist/commands/agent/remove.js +5 -4
- package/dist/commands/agent/remove.js.map +1 -1
- package/dist/commands/agent/restart.d.ts +1 -1
- package/dist/commands/agent/shell.d.ts +1 -1
- package/dist/commands/agent/staff/index.d.ts +3 -4
- package/dist/commands/agent/staff/index.js +5 -4
- package/dist/commands/agent/staff/index.js.map +1 -1
- package/dist/commands/agent/staff/remove.d.ts +3 -4
- package/dist/commands/agent/staff/remove.js +5 -4
- package/dist/commands/agent/staff/remove.js.map +1 -1
- package/dist/commands/agent/status.d.ts +3 -4
- package/dist/commands/agent/status.js +5 -4
- package/dist/commands/agent/status.js.map +1 -1
- package/dist/commands/agent/visit.d.ts +3 -4
- package/dist/commands/agent/visit.js +5 -4
- package/dist/commands/agent/visit.js.map +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 +1 -12
- 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 +3 -4
- package/dist/commands/branch/list.js +5 -4
- package/dist/commands/branch/list.js.map +1 -1
- package/dist/commands/branch/validate.d.ts +3 -4
- package/dist/commands/branch/validate.js +6 -5
- package/dist/commands/branch/validate.js.map +1 -1
- package/dist/commands/branch/where.d.ts +3 -4
- package/dist/commands/branch/where.js +5 -4
- package/dist/commands/branch/where.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 +2 -2
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/db/backup.d.ts +16 -0
- package/dist/commands/db/backup.js +125 -0
- package/dist/commands/db/backup.js.map +1 -0
- package/dist/commands/db/repair.js +8 -11
- package/dist/commands/db/repair.js.map +1 -1
- package/dist/commands/diet.d.ts +1 -1
- package/dist/commands/docker/index.js +2 -0
- package/dist/commands/docker/index.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/execution/config.d.ts +3 -4
- package/dist/commands/execution/config.js +5 -4
- package/dist/commands/execution/config.js.map +1 -1
- package/dist/commands/execution/index.d.ts +3 -4
- package/dist/commands/execution/index.js +5 -4
- package/dist/commands/execution/index.js.map +1 -1
- package/dist/commands/execution/list.d.ts +3 -4
- package/dist/commands/execution/list.js +5 -4
- package/dist/commands/execution/list.js.map +1 -1
- package/dist/commands/execution/logs.d.ts +3 -4
- package/dist/commands/execution/logs.js +5 -4
- package/dist/commands/execution/logs.js.map +1 -1
- package/dist/commands/execution/stop.d.ts +3 -4
- package/dist/commands/execution/stop.js +5 -4
- package/dist/commands/execution/stop.js.map +1 -1
- package/dist/commands/execution/view.d.ts +3 -4
- package/dist/commands/execution/view.js +5 -4
- package/dist/commands/execution/view.js.map +1 -1
- package/dist/commands/hook/export.d.ts +3 -4
- package/dist/commands/hook/export.js +5 -4
- package/dist/commands/hook/export.js.map +1 -1
- package/dist/commands/hook/fire.d.ts +3 -4
- package/dist/commands/hook/fire.js +5 -4
- package/dist/commands/hook/fire.js.map +1 -1
- package/dist/commands/hook/index.d.ts +1 -1
- package/dist/commands/hook/list.d.ts +3 -4
- package/dist/commands/hook/list.js +5 -4
- package/dist/commands/hook/list.js.map +1 -1
- package/dist/commands/hook/preset.d.ts +3 -4
- package/dist/commands/hook/preset.js +5 -4
- package/dist/commands/hook/preset.js.map +1 -1
- 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 +15 -28
- 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 +3 -4
- package/dist/commands/orchestrate/index.js +5 -4
- package/dist/commands/orchestrate/index.js.map +1 -1
- package/dist/commands/orchestrator/index.d.ts +3 -4
- package/dist/commands/orchestrator/index.js +5 -4
- package/dist/commands/orchestrator/index.js.map +1 -1
- package/dist/commands/orchestrator/start.d.ts +3 -3
- package/dist/commands/orchestrator/start.js +38 -40
- package/dist/commands/orchestrator/start.js.map +1 -1
- package/dist/commands/pr/checks.d.ts +3 -4
- package/dist/commands/pr/checks.js +5 -4
- package/dist/commands/pr/checks.js.map +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/repo/add.d.ts +3 -4
- package/dist/commands/repo/add.js +5 -4
- package/dist/commands/repo/add.js.map +1 -1
- package/dist/commands/repo/create.d.ts +3 -4
- package/dist/commands/repo/create.js +5 -4
- package/dist/commands/repo/create.js.map +1 -1
- package/dist/commands/repo/fix-remotes.d.ts +3 -4
- package/dist/commands/repo/fix-remotes.js +5 -4
- package/dist/commands/repo/fix-remotes.js.map +1 -1
- package/dist/commands/repo/index.d.ts +3 -4
- package/dist/commands/repo/index.js +5 -4
- package/dist/commands/repo/index.js.map +1 -1
- package/dist/commands/repo/list.d.ts +3 -4
- package/dist/commands/repo/list.js +5 -4
- package/dist/commands/repo/list.js.map +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/cleanup.d.ts +3 -4
- package/dist/commands/session/cleanup.js +5 -4
- package/dist/commands/session/cleanup.js.map +1 -1
- package/dist/commands/session/create.d.ts +3 -4
- package/dist/commands/session/create.js +5 -4
- package/dist/commands/session/create.js.map +1 -1
- package/dist/commands/session/exec.d.ts +3 -4
- package/dist/commands/session/exec.js +5 -4
- package/dist/commands/session/exec.js.map +1 -1
- package/dist/commands/session/health.d.ts +1 -1
- package/dist/commands/session/health.js +18 -0
- package/dist/commands/session/health.js.map +1 -1
- package/dist/commands/session/index.d.ts +3 -4
- package/dist/commands/session/index.js +9 -4
- package/dist/commands/session/index.js.map +1 -1
- package/dist/commands/session/inspect.d.ts +3 -4
- package/dist/commands/session/inspect.js +5 -4
- package/dist/commands/session/inspect.js.map +1 -1
- package/dist/commands/session/list.d.ts +3 -4
- package/dist/commands/session/list.js +19 -5
- package/dist/commands/session/list.js.map +1 -1
- package/dist/commands/session/peek.d.ts +1 -1
- package/dist/commands/session/prune.d.ts +3 -4
- package/dist/commands/session/prune.js +5 -4
- package/dist/commands/session/prune.js.map +1 -1
- package/dist/commands/session/report.d.ts +25 -5
- package/dist/commands/session/report.js +201 -5
- package/dist/commands/session/report.js.map +1 -1
- package/dist/commands/session/restart.d.ts +3 -4
- package/dist/commands/session/restart.js +5 -4
- package/dist/commands/session/restart.js.map +1 -1
- package/dist/commands/session/watch.d.ts +17 -0
- package/dist/commands/session/watch.js +139 -0
- package/dist/commands/session/watch.js.map +1 -0
- 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 +1 -1
- package/dist/commands/ticket/delete.d.ts +1 -1
- package/dist/commands/ticket/edit.d.ts +1 -1
- package/dist/commands/ticket/index.d.ts +3 -4
- package/dist/commands/ticket/index.js +11 -40
- 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/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/{dashboard/index.d.ts → web.d.ts} +10 -4
- package/dist/commands/web.js +82 -0
- package/dist/commands/web.js.map +1 -0
- package/dist/commands/work/asana.d.ts +1 -1
- package/dist/commands/work/complete.d.ts +1 -1
- package/dist/commands/work/groom.d.ts +1 -1
- package/dist/commands/work/hooks/add.d.ts +3 -4
- package/dist/commands/work/hooks/add.js +5 -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 +3 -4
- package/dist/commands/work/hooks/list.js +5 -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/toggle.d.ts +3 -4
- package/dist/commands/work/hooks/toggle.js +5 -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/jira.d.ts +1 -1
- package/dist/commands/work/linear.d.ts +1 -1
- package/dist/commands/work/peek.d.ts +3 -4
- package/dist/commands/work/peek.js +5 -4
- package/dist/commands/work/peek.js.map +1 -1
- package/dist/commands/{ticket/cancel.d.ts → work/propose.d.ts} +11 -5
- package/dist/commands/work/propose.js +57 -0
- package/dist/commands/work/propose.js.map +1 -0
- package/dist/commands/work/ready.d.ts +1 -1
- package/dist/commands/work/ready.js +2 -2
- package/dist/commands/work/ready.js.map +1 -1
- package/dist/commands/work/rebase.d.ts +2 -2
- package/dist/commands/work/rebase.js +52 -49
- package/dist/commands/work/rebase.js.map +1 -1
- 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 +7 -1
- package/dist/commands/work/ship.js +217 -48
- 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/start.d.ts +1 -1
- package/dist/commands/work/start.js +3 -6
- 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 +3 -4
- package/dist/commands/work/stop.js +5 -4
- package/dist/commands/work/stop.js.map +1 -1
- package/dist/commands/work/watch.d.ts +1 -1
- package/dist/hooks/init.js +12 -2
- package/dist/hooks/init.js.map +1 -1
- package/dist/lib/asana/config.js +13 -7
- package/dist/lib/asana/config.js.map +1 -1
- package/dist/lib/branch/index.d.ts +6 -5
- package/dist/lib/branch/index.js +8 -13
- package/dist/lib/branch/index.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/html.d.ts +2 -1
- package/dist/lib/dashboard/html.js +150 -522
- package/dist/lib/dashboard/html.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.d.ts +48 -9
- package/dist/lib/database/db-safety.js +308 -43
- package/dist/lib/database/db-safety.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/pmo-bootstrap.d.ts +7 -0
- package/dist/lib/database/pmo-bootstrap.js +45 -20
- package/dist/lib/database/pmo-bootstrap.js.map +1 -1
- package/dist/lib/database/workspace.js +7 -1
- package/dist/lib/database/workspace.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/docker-management.d.ts +23 -0
- package/dist/lib/execution/runners/docker-management.js +99 -7
- package/dist/lib/execution/runners/docker-management.js.map +1 -1
- package/dist/lib/execution/runners/docker.js +8 -0
- package/dist/lib/execution/runners/docker.js.map +1 -1
- package/dist/lib/execution/runners/prompt-builder.js +9 -6
- package/dist/lib/execution/runners/prompt-builder.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 +2 -4
- package/dist/lib/execution/spawner.js.map +1 -1
- package/dist/lib/execution/storage.d.ts +29 -1
- package/dist/lib/execution/storage.js +77 -0
- package/dist/lib/execution/storage.js.map +1 -1
- package/dist/lib/execution/types.d.ts +17 -6
- package/dist/lib/execution/types.js +11 -8
- package/dist/lib/execution/types.js.map +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/config.js +13 -8
- package/dist/lib/linear/config.js.map +1 -1
- package/dist/lib/machine-config.d.ts +8 -0
- package/dist/lib/machine-config.js +37 -0
- package/dist/lib/machine-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/poller.d.ts +1 -1
- package/dist/lib/orchestrate/poller.js +1 -1
- 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 +5 -234
- 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/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/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/index.d.ts +1 -0
- package/dist/lib/providers/index.js +1 -0
- package/dist/lib/providers/index.js.map +1 -1
- package/dist/lib/providers/resolver.d.ts +1 -1
- package/dist/lib/providers/resolver.js +32 -5
- package/dist/lib/providers/resolver.js.map +1 -1
- package/dist/lib/providers/trello-provider.d.ts +28 -0
- package/dist/lib/providers/trello-provider.js +381 -0
- package/dist/lib/providers/trello-provider.js.map +1 -0
- package/dist/lib/providers/types.d.ts +1 -1
- 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/session/heartbeat.d.ts +45 -0
- package/dist/lib/session/heartbeat.js +150 -0
- package/dist/lib/session/heartbeat.js.map +1 -0
- package/dist/lib/session/index.d.ts +7 -0
- package/dist/lib/session/index.js +8 -0
- package/dist/lib/session/index.js.map +1 -0
- package/dist/lib/session/watcher.d.ts +79 -0
- package/dist/lib/session/watcher.js +142 -0
- package/dist/lib/session/watcher.js.map +1 -0
- package/dist/lib/shipping/auto-merge.d.ts +57 -0
- package/dist/lib/shipping/auto-merge.js +311 -0
- package/dist/lib/shipping/auto-merge.js.map +1 -0
- package/dist/lib/shipping/github.d.ts +68 -0
- package/dist/lib/shipping/github.js +217 -0
- package/dist/lib/shipping/github.js.map +1 -0
- package/dist/lib/shipping/index.d.ts +13 -0
- package/dist/lib/shipping/index.js +11 -0
- package/dist/lib/shipping/index.js.map +1 -0
- package/dist/lib/shipping/rebase.d.ts +35 -0
- package/dist/lib/shipping/rebase.js +107 -0
- package/dist/lib/shipping/rebase.js.map +1 -0
- package/dist/lib/shipping/types.d.ts +181 -0
- package/dist/lib/shipping/types.js +9 -0
- package/dist/lib/shipping/types.js.map +1 -0
- package/dist/lib/shortcut/config.js +13 -7
- package/dist/lib/shortcut/config.js.map +1 -1
- package/dist/lib/trello/client.d.ts +1 -0
- package/dist/lib/trello/client.js +6 -0
- package/dist/lib/trello/client.js.map +1 -1
- package/dist/lib/trello/config.js +17 -12
- package/dist/lib/trello/config.js.map +1 -1
- package/dist/lib/work-lifecycle/events.d.ts +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 +3810 -5723
- package/package.json +8 -8
- package/dist/commands/board/index.d.ts +0 -21
- 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.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.d.ts +0 -18
- 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.d.ts +0 -14
- package/dist/commands/project/index.js +0 -60
- package/dist/commands/project/index.js.map +0 -1
- package/dist/commands/project/list.d.ts +0 -16
- 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.d.ts +0 -14
- package/dist/commands/ticket/bulk.js +0 -141
- package/dist/commands/ticket/bulk.js.map +0 -1
- 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 -193
- 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 -340
- 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 -306
- 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 -113
- 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,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sibling PR Rebase — Provider-Agnostic
|
|
3
|
+
*
|
|
4
|
+
* After a PR merges, the base branch advances. Other open PRs may become
|
|
5
|
+
* stale or conflicting. This module rebases sibling PRs using the git
|
|
6
|
+
* provider's API (e.g., GitHub's update-branch endpoint), falling back
|
|
7
|
+
* to local git rebase when the API is unavailable.
|
|
8
|
+
*
|
|
9
|
+
* On conflict, optionally labels the PR and adds a comment so the
|
|
10
|
+
* author knows manual resolution is needed.
|
|
11
|
+
*/
|
|
12
|
+
import type { GitProvider, RebaseSiblingOptions, SiblingRebaseResult } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Detect the git provider for the current repository.
|
|
15
|
+
*
|
|
16
|
+
* Currently supports GitHub. Returns null if the provider cannot be detected.
|
|
17
|
+
* GitLab support can be added here by checking the remote URL.
|
|
18
|
+
*/
|
|
19
|
+
export declare function detectGitProvider(cwd?: string): GitProvider | null;
|
|
20
|
+
/**
|
|
21
|
+
* Rebase all open sibling PRs after a merge.
|
|
22
|
+
*
|
|
23
|
+
* This is the main entry point for post-merge sibling rebase.
|
|
24
|
+
* It uses the git provider's API to update branches, which is cleaner
|
|
25
|
+
* than local git rebase + force-push because:
|
|
26
|
+
* - No local checkout needed
|
|
27
|
+
* - Works in CI/CD without full git history
|
|
28
|
+
* - Uses the provider's merge infrastructure
|
|
29
|
+
* - Avoids force-push permission issues
|
|
30
|
+
*
|
|
31
|
+
* @param options - Configuration for the rebase operation
|
|
32
|
+
* @param provider - Git provider to use (auto-detected if not provided)
|
|
33
|
+
* @returns Results of the rebase operation for each PR
|
|
34
|
+
*/
|
|
35
|
+
export declare function rebaseSiblingPRs(options: RebaseSiblingOptions, provider?: GitProvider | null): SiblingRebaseResult;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sibling PR Rebase — Provider-Agnostic
|
|
3
|
+
*
|
|
4
|
+
* After a PR merges, the base branch advances. Other open PRs may become
|
|
5
|
+
* stale or conflicting. This module rebases sibling PRs using the git
|
|
6
|
+
* provider's API (e.g., GitHub's update-branch endpoint), falling back
|
|
7
|
+
* to local git rebase when the API is unavailable.
|
|
8
|
+
*
|
|
9
|
+
* On conflict, optionally labels the PR and adds a comment so the
|
|
10
|
+
* author knows manual resolution is needed.
|
|
11
|
+
*/
|
|
12
|
+
import { GitHubProvider } from './github.js';
|
|
13
|
+
const CONFLICT_LABEL = 'rebase-conflict';
|
|
14
|
+
const CONFLICT_COMMENT = 'This PR has merge conflicts with the base branch after a recent merge. ' +
|
|
15
|
+
'Please rebase or merge the base branch to resolve conflicts.';
|
|
16
|
+
/**
|
|
17
|
+
* Detect the git provider for the current repository.
|
|
18
|
+
*
|
|
19
|
+
* Currently supports GitHub. Returns null if the provider cannot be detected.
|
|
20
|
+
* GitLab support can be added here by checking the remote URL.
|
|
21
|
+
*/
|
|
22
|
+
export function detectGitProvider(cwd) {
|
|
23
|
+
// For now, default to GitHub since it's the only implemented provider.
|
|
24
|
+
// When GitLab/Bitbucket providers are added, detect from the remote URL:
|
|
25
|
+
// git remote get-url origin → github.com = GitHub, gitlab.com = GitLab, etc.
|
|
26
|
+
return new GitHubProvider();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Rebase all open sibling PRs after a merge.
|
|
30
|
+
*
|
|
31
|
+
* This is the main entry point for post-merge sibling rebase.
|
|
32
|
+
* It uses the git provider's API to update branches, which is cleaner
|
|
33
|
+
* than local git rebase + force-push because:
|
|
34
|
+
* - No local checkout needed
|
|
35
|
+
* - Works in CI/CD without full git history
|
|
36
|
+
* - Uses the provider's merge infrastructure
|
|
37
|
+
* - Avoids force-push permission issues
|
|
38
|
+
*
|
|
39
|
+
* @param options - Configuration for the rebase operation
|
|
40
|
+
* @param provider - Git provider to use (auto-detected if not provided)
|
|
41
|
+
* @returns Results of the rebase operation for each PR
|
|
42
|
+
*/
|
|
43
|
+
export function rebaseSiblingPRs(options, provider) {
|
|
44
|
+
const gitProvider = provider ?? detectGitProvider(options.cwd);
|
|
45
|
+
if (!gitProvider) {
|
|
46
|
+
return {
|
|
47
|
+
succeeded: [],
|
|
48
|
+
failed: [],
|
|
49
|
+
skipped: [],
|
|
50
|
+
totalChecked: 0,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const { excludePRNumber, cwd, onProgress, labelConflicts = true, commentOnConflicts = true, rebaseAll = false, } = options;
|
|
54
|
+
const openPRs = gitProvider.listOpenPRs(cwd);
|
|
55
|
+
const result = {
|
|
56
|
+
succeeded: [],
|
|
57
|
+
failed: [],
|
|
58
|
+
skipped: [],
|
|
59
|
+
totalChecked: 0,
|
|
60
|
+
};
|
|
61
|
+
for (const pr of openPRs) {
|
|
62
|
+
// Skip the PR that was just merged
|
|
63
|
+
if (pr.number === excludePRNumber)
|
|
64
|
+
continue;
|
|
65
|
+
result.totalChecked++;
|
|
66
|
+
// Check mergeable state unless rebaseAll is set
|
|
67
|
+
if (!rebaseAll) {
|
|
68
|
+
const state = gitProvider.getMergeableState(pr.number, cwd);
|
|
69
|
+
if (state === 'MERGEABLE') {
|
|
70
|
+
result.skipped.push({
|
|
71
|
+
success: true,
|
|
72
|
+
prNumber: pr.number,
|
|
73
|
+
headBranch: pr.headBranch,
|
|
74
|
+
});
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
// Skip UNKNOWN state PRs — we can't determine if they need rebase
|
|
78
|
+
if (state === 'UNKNOWN') {
|
|
79
|
+
result.skipped.push({
|
|
80
|
+
success: true,
|
|
81
|
+
prNumber: pr.number,
|
|
82
|
+
headBranch: pr.headBranch,
|
|
83
|
+
});
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
onProgress?.(`Updating PR #${pr.number} (${pr.headBranch})...`);
|
|
88
|
+
const updateResult = gitProvider.updatePRBranch(pr.number, cwd);
|
|
89
|
+
if (updateResult.success) {
|
|
90
|
+
result.succeeded.push(updateResult);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
result.failed.push(updateResult);
|
|
94
|
+
// Label and comment on conflict failures
|
|
95
|
+
if (updateResult.hasConflicts) {
|
|
96
|
+
if (labelConflicts) {
|
|
97
|
+
gitProvider.addLabel(pr.number, CONFLICT_LABEL, cwd);
|
|
98
|
+
}
|
|
99
|
+
if (commentOnConflicts) {
|
|
100
|
+
gitProvider.addComment(pr.number, CONFLICT_COMMENT, cwd);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=rebase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rebase.js","sourceRoot":"","sources":["../../../src/lib/shipping/rebase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shipping Types — Git Provider Interface & Auto-Merge
|
|
3
|
+
*
|
|
4
|
+
* Provider-agnostic interface for git hosting operations needed by the
|
|
5
|
+
* shipping/rebase pipeline and auto-merge orchestration. Implementations
|
|
6
|
+
* exist for GitHub (via gh CLI) and can be added for GitLab, Bitbucket, etc.
|
|
7
|
+
*/
|
|
8
|
+
import type { PRInfo, MergeableState } from '../pr/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Supported git hosting provider names.
|
|
11
|
+
*/
|
|
12
|
+
export type GitProviderName = 'github' | 'gitlab';
|
|
13
|
+
/**
|
|
14
|
+
* Result of attempting to update (rebase) a PR branch via the provider API.
|
|
15
|
+
*/
|
|
16
|
+
export interface UpdateBranchResult {
|
|
17
|
+
success: boolean;
|
|
18
|
+
/** PR number that was updated */
|
|
19
|
+
prNumber: number;
|
|
20
|
+
/** Head branch name */
|
|
21
|
+
headBranch: string;
|
|
22
|
+
/** Error message if the update failed */
|
|
23
|
+
error?: string;
|
|
24
|
+
/** Whether the failure was due to merge conflicts */
|
|
25
|
+
hasConflicts?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Result of the full sibling rebase operation across all PRs.
|
|
29
|
+
*/
|
|
30
|
+
export interface SiblingRebaseResult {
|
|
31
|
+
/** PRs that were successfully rebased */
|
|
32
|
+
succeeded: UpdateBranchResult[];
|
|
33
|
+
/** PRs that failed to rebase (conflicts or other errors) */
|
|
34
|
+
failed: UpdateBranchResult[];
|
|
35
|
+
/** PRs that were skipped (already up to date) */
|
|
36
|
+
skipped: UpdateBranchResult[];
|
|
37
|
+
/** Total open PRs checked */
|
|
38
|
+
totalChecked: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Options for the rebaseSiblingPRs operation.
|
|
42
|
+
*/
|
|
43
|
+
export interface RebaseSiblingOptions {
|
|
44
|
+
/** PR number to exclude (the one that was just merged) */
|
|
45
|
+
excludePRNumber: number | null;
|
|
46
|
+
/** Working directory for git operations */
|
|
47
|
+
cwd?: string;
|
|
48
|
+
/** Callback for progress messages */
|
|
49
|
+
onProgress?: (msg: string) => void;
|
|
50
|
+
/** Whether to add a 'rebase-conflict' label on conflict failures */
|
|
51
|
+
labelConflicts?: boolean;
|
|
52
|
+
/** Whether to add a comment on conflict failures */
|
|
53
|
+
commentOnConflicts?: boolean;
|
|
54
|
+
/** Whether to attempt all PRs or just conflicting ones */
|
|
55
|
+
rebaseAll?: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Provider-agnostic interface for git hosting operations.
|
|
59
|
+
*
|
|
60
|
+
* Each provider (GitHub, GitLab, etc.) implements this interface to enable
|
|
61
|
+
* API-based branch updates instead of local git rebase + force-push.
|
|
62
|
+
*
|
|
63
|
+
* API-based updates are preferred because:
|
|
64
|
+
* - They don't require a local checkout
|
|
65
|
+
* - They work in CI/CD environments without full git history
|
|
66
|
+
* - They use the hosting provider's merge infrastructure
|
|
67
|
+
* - They avoid force-push permission issues
|
|
68
|
+
*/
|
|
69
|
+
export interface GitProvider {
|
|
70
|
+
/** Which provider this is */
|
|
71
|
+
readonly name: GitProviderName;
|
|
72
|
+
/**
|
|
73
|
+
* List all open PRs/MRs in the repository.
|
|
74
|
+
*/
|
|
75
|
+
listOpenPRs(cwd?: string): PRInfo[];
|
|
76
|
+
/**
|
|
77
|
+
* Get the mergeable state of a PR/MR.
|
|
78
|
+
*/
|
|
79
|
+
getMergeableState(prNumber: number, cwd?: string): MergeableState;
|
|
80
|
+
/**
|
|
81
|
+
* Update a PR branch to include the latest changes from its base branch.
|
|
82
|
+
*
|
|
83
|
+
* GitHub: PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch
|
|
84
|
+
* GitLab: PUT /projects/{id}/merge_requests/{merge_request_iid}/rebase
|
|
85
|
+
*
|
|
86
|
+
* This is the API-based alternative to local git rebase + force-push.
|
|
87
|
+
* Falls back to local git rebase if the API call fails.
|
|
88
|
+
*/
|
|
89
|
+
updatePRBranch(prNumber: number, cwd?: string): UpdateBranchResult;
|
|
90
|
+
/**
|
|
91
|
+
* Add a label to a PR/MR.
|
|
92
|
+
*/
|
|
93
|
+
addLabel(prNumber: number, label: string, cwd?: string): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Add a comment to a PR/MR.
|
|
96
|
+
*/
|
|
97
|
+
addComment(prNumber: number, body: string, cwd?: string): boolean;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Result of enabling or disabling auto-merge on a PR.
|
|
101
|
+
*/
|
|
102
|
+
export interface AutoMergeResult {
|
|
103
|
+
success: boolean;
|
|
104
|
+
prNumber: number;
|
|
105
|
+
error?: string;
|
|
106
|
+
/** Whether auto-merge was already enabled when we tried to enable it */
|
|
107
|
+
alreadyEnabled?: boolean;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Configuration for the when-green watch loop.
|
|
111
|
+
*/
|
|
112
|
+
export interface WhenGreenOptions {
|
|
113
|
+
/** PR number to watch */
|
|
114
|
+
prNumber: number;
|
|
115
|
+
/** Merge method (squash, merge, rebase) */
|
|
116
|
+
method: 'merge' | 'squash' | 'rebase';
|
|
117
|
+
/** Delete branch after merging */
|
|
118
|
+
deleteBranch: boolean;
|
|
119
|
+
/** Use admin privileges to bypass branch protections */
|
|
120
|
+
admin: boolean;
|
|
121
|
+
/** Fail on conflicts instead of auto-rebasing */
|
|
122
|
+
noRebase: boolean;
|
|
123
|
+
/** Working directory for git operations */
|
|
124
|
+
cwd?: string;
|
|
125
|
+
/** Head branch name */
|
|
126
|
+
headBranch: string;
|
|
127
|
+
/** Base branch name */
|
|
128
|
+
baseBranch: string;
|
|
129
|
+
/** Callback for progress messages */
|
|
130
|
+
onProgress?: (msg: string) => void;
|
|
131
|
+
/** Callback for warning messages */
|
|
132
|
+
onWarning?: (msg: string) => void;
|
|
133
|
+
/** Maximum time to wait in milliseconds (default: 60 minutes) */
|
|
134
|
+
timeoutMs?: number;
|
|
135
|
+
/** Poll interval in milliseconds (default: 30 seconds) */
|
|
136
|
+
pollIntervalMs?: number;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Result of the when-green watch loop.
|
|
140
|
+
*/
|
|
141
|
+
export interface WhenGreenResult {
|
|
142
|
+
/** Whether the PR was successfully merged */
|
|
143
|
+
merged: boolean;
|
|
144
|
+
/** Whether native auto-merge was enabled as a safety net */
|
|
145
|
+
autoMergeEnabled: boolean;
|
|
146
|
+
/** Number of poll cycles completed */
|
|
147
|
+
pollCycles: number;
|
|
148
|
+
/** Whether a rebase was performed during the watch */
|
|
149
|
+
rebasePerformed: boolean;
|
|
150
|
+
/** Error message if the operation failed */
|
|
151
|
+
error?: string;
|
|
152
|
+
/** Error code for JSON output */
|
|
153
|
+
errorCode?: string;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Provider-agnostic interface for auto-merge operations.
|
|
157
|
+
*
|
|
158
|
+
* Each provider (GitHub, GitLab, etc.) implements these methods to enable
|
|
159
|
+
* native auto-merge functionality.
|
|
160
|
+
*/
|
|
161
|
+
export interface AutoMergeProvider {
|
|
162
|
+
/** Which provider this is */
|
|
163
|
+
readonly name: 'github' | 'gitlab';
|
|
164
|
+
/**
|
|
165
|
+
* Enable native auto-merge on a PR.
|
|
166
|
+
*
|
|
167
|
+
* GitHub: `gh pr merge --auto --squash`
|
|
168
|
+
* GitLab: merge when pipeline succeeds API
|
|
169
|
+
*/
|
|
170
|
+
enableAutoMerge(prNumber: number, method: 'merge' | 'squash' | 'rebase', cwd?: string): AutoMergeResult;
|
|
171
|
+
/**
|
|
172
|
+
* Disable native auto-merge on a PR.
|
|
173
|
+
*
|
|
174
|
+
* GitHub: `gh pr merge --disable-auto`
|
|
175
|
+
*/
|
|
176
|
+
disableAutoMerge(prNumber: number, cwd?: string): AutoMergeResult;
|
|
177
|
+
/**
|
|
178
|
+
* Check if a PR has been merged (by auto-merge or manually).
|
|
179
|
+
*/
|
|
180
|
+
isPRMerged(prNumber: number, cwd?: string): boolean;
|
|
181
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shipping Types — Git Provider Interface & Auto-Merge
|
|
3
|
+
*
|
|
4
|
+
* Provider-agnostic interface for git hosting operations needed by the
|
|
5
|
+
* shipping/rebase pipeline and auto-merge orchestration. Implementations
|
|
6
|
+
* exist for GitHub (via gh CLI) and can be added for GitLab, Bitbucket, etc.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/shipping/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { loadProviderSources, resolveApiKey } from '../work-source/provider-sources.js';
|
|
7
7
|
import { SettingsStore } from '../database/settings-store.js';
|
|
8
|
+
import { getCredential, setCredential, deleteCredential, hasCredential } from '../database/credential-store.js';
|
|
8
9
|
const SHORTCUT_CONFIG_KEYS = {
|
|
9
10
|
apiToken: 'shortcut.api_token',
|
|
10
11
|
workspaceSlug: 'shortcut.workspace_slug',
|
|
@@ -13,7 +14,7 @@ const SHORTCUT_CONFIG_KEYS = {
|
|
|
13
14
|
* Check if Shortcut is configured.
|
|
14
15
|
*/
|
|
15
16
|
export function isShortcutConfigured(db) {
|
|
16
|
-
const hasDbConfig =
|
|
17
|
+
const hasDbConfig = hasCredential(db, SHORTCUT_CONFIG_KEYS.apiToken);
|
|
17
18
|
if (hasDbConfig)
|
|
18
19
|
return true;
|
|
19
20
|
const hasEnvToken = !!(process.env.PRLT_SHORTCUT_API_TOKEN || process.env.SHORTCUT_API_TOKEN);
|
|
@@ -24,7 +25,7 @@ export function isShortcutConfigured(db) {
|
|
|
24
25
|
*/
|
|
25
26
|
export function loadShortcutConfig(db) {
|
|
26
27
|
const settings = new SettingsStore(db);
|
|
27
|
-
const apiToken =
|
|
28
|
+
const apiToken = getCredential(db, SHORTCUT_CONFIG_KEYS.apiToken)
|
|
28
29
|
|| process.env.PRLT_SHORTCUT_API_TOKEN
|
|
29
30
|
|| process.env.SHORTCUT_API_TOKEN;
|
|
30
31
|
if (!apiToken)
|
|
@@ -42,7 +43,7 @@ export function loadShortcutConfig(db) {
|
|
|
42
43
|
*/
|
|
43
44
|
export function saveShortcutConfig(db, config) {
|
|
44
45
|
const settings = new SettingsStore(db);
|
|
45
|
-
|
|
46
|
+
setCredential(db, SHORTCUT_CONFIG_KEYS.apiToken, config.apiToken);
|
|
46
47
|
if (config.workspaceSlug) {
|
|
47
48
|
settings.set(SHORTCUT_CONFIG_KEYS.workspaceSlug, config.workspaceSlug);
|
|
48
49
|
}
|
|
@@ -51,7 +52,7 @@ export function saveShortcutConfig(db, config) {
|
|
|
51
52
|
* Save the Shortcut API token.
|
|
52
53
|
*/
|
|
53
54
|
export function saveShortcutApiToken(db, apiToken) {
|
|
54
|
-
|
|
55
|
+
setCredential(db, SHORTCUT_CONFIG_KEYS.apiToken, apiToken);
|
|
55
56
|
}
|
|
56
57
|
/**
|
|
57
58
|
* Save the Shortcut workspace slug.
|
|
@@ -65,7 +66,12 @@ export function saveShortcutWorkspaceSlug(db, slug) {
|
|
|
65
66
|
export function clearShortcutConfig(db) {
|
|
66
67
|
const settings = new SettingsStore(db);
|
|
67
68
|
for (const key of Object.values(SHORTCUT_CONFIG_KEYS)) {
|
|
68
|
-
|
|
69
|
+
if (key === SHORTCUT_CONFIG_KEYS.apiToken) {
|
|
70
|
+
deleteCredential(db, key);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
settings.delete(key);
|
|
74
|
+
}
|
|
69
75
|
}
|
|
70
76
|
}
|
|
71
77
|
/**
|
|
@@ -90,7 +96,7 @@ export function getShortcutApiToken(db) {
|
|
|
90
96
|
const envKey = process.env.PRLT_SHORTCUT_API_TOKEN || process.env.SHORTCUT_API_TOKEN;
|
|
91
97
|
if (envKey)
|
|
92
98
|
return envKey;
|
|
93
|
-
// 3. Legacy: stored workspace setting
|
|
94
|
-
return
|
|
99
|
+
// 3. Legacy: stored workspace setting (now in credentials.db)
|
|
100
|
+
return getCredential(db, SHORTCUT_CONFIG_KEYS.apiToken);
|
|
95
101
|
}
|
|
96
102
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/shortcut/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/shortcut/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,4 +20,5 @@ export declare class TrelloClient {
|
|
|
20
20
|
getBoards(): Promise<TrelloBoard[]>;
|
|
21
21
|
createCard(input: TrelloCardUpsertInput): Promise<TrelloCard>;
|
|
22
22
|
updateCard(cardId: string, input: TrelloCardUpsertInput): Promise<TrelloCard>;
|
|
23
|
+
addComment(cardId: string, text: string): Promise<void>;
|
|
23
24
|
}
|
|
@@ -110,5 +110,11 @@ export class TrelloClient {
|
|
|
110
110
|
body: input,
|
|
111
111
|
});
|
|
112
112
|
}
|
|
113
|
+
async addComment(cardId, text) {
|
|
114
|
+
await this.request(`/cards/${cardId}/actions/comments`, {
|
|
115
|
+
method: 'POST',
|
|
116
|
+
body: { text },
|
|
117
|
+
});
|
|
118
|
+
}
|
|
113
119
|
}
|
|
114
120
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/lib/trello/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/lib/trello/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { loadProviderSources, resolveApiKey } from '../work-source/provider-sources.js';
|
|
7
7
|
import { SettingsStore } from '../database/settings-store.js';
|
|
8
|
+
import { getCredential, setCredential, deleteCredential, hasCredential } from '../database/credential-store.js';
|
|
8
9
|
const TRELLO_CONFIG_KEYS = {
|
|
9
10
|
apiKey: 'trello.api_key',
|
|
10
11
|
apiToken: 'trello.api_token',
|
|
@@ -15,9 +16,8 @@ const TRELLO_CONFIG_KEYS = {
|
|
|
15
16
|
* Check if Trello is configured.
|
|
16
17
|
*/
|
|
17
18
|
export function isTrelloConfigured(db) {
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
&& settings.has(TRELLO_CONFIG_KEYS.apiToken);
|
|
19
|
+
const hasDbConfig = hasCredential(db, TRELLO_CONFIG_KEYS.apiKey)
|
|
20
|
+
&& hasCredential(db, TRELLO_CONFIG_KEYS.apiToken);
|
|
21
21
|
if (hasDbConfig)
|
|
22
22
|
return true;
|
|
23
23
|
const hasEnvKey = !!(process.env.PRLT_TRELLO_API_KEY || process.env.TRELLO_API_KEY);
|
|
@@ -29,10 +29,10 @@ export function isTrelloConfigured(db) {
|
|
|
29
29
|
*/
|
|
30
30
|
export function loadTrelloConfig(db) {
|
|
31
31
|
const settings = new SettingsStore(db);
|
|
32
|
-
const apiKey =
|
|
32
|
+
const apiKey = getCredential(db, TRELLO_CONFIG_KEYS.apiKey)
|
|
33
33
|
|| process.env.PRLT_TRELLO_API_KEY
|
|
34
34
|
|| process.env.TRELLO_API_KEY;
|
|
35
|
-
const apiToken =
|
|
35
|
+
const apiToken = getCredential(db, TRELLO_CONFIG_KEYS.apiToken)
|
|
36
36
|
|| process.env.PRLT_TRELLO_API_TOKEN
|
|
37
37
|
|| process.env.TRELLO_API_TOKEN;
|
|
38
38
|
if (!apiKey || !apiToken)
|
|
@@ -51,8 +51,8 @@ export function loadTrelloConfig(db) {
|
|
|
51
51
|
*/
|
|
52
52
|
export function saveTrelloConfig(db, config) {
|
|
53
53
|
const settings = new SettingsStore(db);
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
setCredential(db, TRELLO_CONFIG_KEYS.apiKey, config.apiKey);
|
|
55
|
+
setCredential(db, TRELLO_CONFIG_KEYS.apiToken, config.apiToken);
|
|
56
56
|
if (config.boardId) {
|
|
57
57
|
settings.set(TRELLO_CONFIG_KEYS.boardId, config.boardId);
|
|
58
58
|
}
|
|
@@ -61,10 +61,10 @@ export function saveTrelloConfig(db, config) {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
export function saveTrelloApiKey(db, apiKey) {
|
|
64
|
-
|
|
64
|
+
setCredential(db, TRELLO_CONFIG_KEYS.apiKey, apiKey);
|
|
65
65
|
}
|
|
66
66
|
export function saveTrelloApiToken(db, apiToken) {
|
|
67
|
-
|
|
67
|
+
setCredential(db, TRELLO_CONFIG_KEYS.apiToken, apiToken);
|
|
68
68
|
}
|
|
69
69
|
export function saveTrelloBoard(db, boardId, boardName) {
|
|
70
70
|
const settings = new SettingsStore(db);
|
|
@@ -74,7 +74,12 @@ export function saveTrelloBoard(db, boardId, boardName) {
|
|
|
74
74
|
export function clearTrelloConfig(db) {
|
|
75
75
|
const settings = new SettingsStore(db);
|
|
76
76
|
for (const key of Object.values(TRELLO_CONFIG_KEYS)) {
|
|
77
|
-
|
|
77
|
+
if (key === TRELLO_CONFIG_KEYS.apiKey || key === TRELLO_CONFIG_KEYS.apiToken) {
|
|
78
|
+
deleteCredential(db, key);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
settings.delete(key);
|
|
82
|
+
}
|
|
78
83
|
}
|
|
79
84
|
}
|
|
80
85
|
export function getTrelloApiKey(db) {
|
|
@@ -94,12 +99,12 @@ export function getTrelloApiKey(db) {
|
|
|
94
99
|
const envKey = process.env.PRLT_TRELLO_API_KEY || process.env.TRELLO_API_KEY;
|
|
95
100
|
if (envKey)
|
|
96
101
|
return envKey;
|
|
97
|
-
return
|
|
102
|
+
return getCredential(db, TRELLO_CONFIG_KEYS.apiKey);
|
|
98
103
|
}
|
|
99
104
|
export function getTrelloApiToken(db) {
|
|
100
105
|
const envToken = process.env.PRLT_TRELLO_API_TOKEN || process.env.TRELLO_API_TOKEN;
|
|
101
106
|
if (envToken)
|
|
102
107
|
return envToken;
|
|
103
|
-
return
|
|
108
|
+
return getCredential(db, TRELLO_CONFIG_KEYS.apiToken);
|
|
104
109
|
}
|
|
105
110
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/trello/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/trello/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ import type { StateCategory } from '../pmo/types.js';
|
|
|
13
13
|
* Sources that can emit work-lifecycle events.
|
|
14
14
|
* PMO is just another provider, not the central hub.
|
|
15
15
|
*/
|
|
16
|
-
export type WorkEventSource = 'pmo' | 'linear' | 'github' | 'jira' | 'asana' | 'shortcut' | 'trello' | 'monday';
|
|
16
|
+
export type WorkEventSource = 'pmo' | 'linear' | 'github' | 'jira' | 'asana' | 'shortcut' | 'trello' | 'monday' | 'clickup';
|
|
17
17
|
/** Emitted when work begins on a work item (status moved to 'started' category). */
|
|
18
18
|
export interface WorkStartedEvent {
|
|
19
19
|
workItemId: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type Database from 'better-sqlite3';
|
|
2
|
-
export declare const WORK_SOURCE_PROVIDERS: readonly ["pmo", "linear", "jira", "shortcut", "asana", "trello", "monday"];
|
|
2
|
+
export declare const WORK_SOURCE_PROVIDERS: readonly ["pmo", "linear", "jira", "shortcut", "asana", "trello", "monday", "clickup"];
|
|
3
3
|
export type WorkSourceProvider = typeof WORK_SOURCE_PROVIDERS[number];
|
|
4
4
|
export interface WorkSourceRef {
|
|
5
5
|
provider: WorkSourceProvider;
|
|
@@ -4,12 +4,13 @@ import { loadJiraConfig } from '../jira/config.js';
|
|
|
4
4
|
import { loadShortcutConfig } from '../shortcut/config.js';
|
|
5
5
|
import { loadTrelloConfig } from '../trello/config.js';
|
|
6
6
|
import { loadMondayConfig } from '../monday/config.js';
|
|
7
|
+
import { loadClickUpConfig } from '../clickup/config.js';
|
|
7
8
|
import { loadProviderSources } from './provider-sources.js';
|
|
8
9
|
import { SettingsStore } from '../database/settings-store.js';
|
|
9
10
|
const DEFAULT_SOURCE_KEY = 'work.default_source';
|
|
10
11
|
/** @deprecated Old key kept for migration — use DEFAULT_SOURCE_KEY */
|
|
11
12
|
const LEGACY_ACTIVE_SOURCE_KEY = 'work.active_source';
|
|
12
|
-
export const WORK_SOURCE_PROVIDERS = ['pmo', 'linear', 'jira', 'shortcut', 'asana', 'trello', 'monday'];
|
|
13
|
+
export const WORK_SOURCE_PROVIDERS = ['pmo', 'linear', 'jira', 'shortcut', 'asana', 'trello', 'monday', 'clickup'];
|
|
13
14
|
function settingsFor(db) {
|
|
14
15
|
return new SettingsStore(db);
|
|
15
16
|
}
|
|
@@ -118,6 +119,13 @@ export function getRegisteredWorkSources(db) {
|
|
|
118
119
|
context: trelloConfig.boardName ?? trelloConfig.boardId ?? undefined,
|
|
119
120
|
});
|
|
120
121
|
}
|
|
122
|
+
const clickUpConfig = loadClickUpConfig(db);
|
|
123
|
+
if (clickUpConfig) {
|
|
124
|
+
providers.set('clickup', {
|
|
125
|
+
provider: 'clickup',
|
|
126
|
+
context: clickUpConfig.defaultListName ?? clickUpConfig.defaultListId ?? undefined,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
121
129
|
// Append multi-source provider entries. These use a composite key
|
|
122
130
|
// (provider + ':' + prefix) so they don't overwrite single-provider
|
|
123
131
|
// entries already in the map.
|
|
@@ -149,6 +157,8 @@ export function getConnectedIntegrations(db) {
|
|
|
149
157
|
integrations.push('trello');
|
|
150
158
|
if (loadMondayConfig(db))
|
|
151
159
|
integrations.push('monday');
|
|
160
|
+
if (loadClickUpConfig(db))
|
|
161
|
+
integrations.push('clickup');
|
|
152
162
|
return integrations;
|
|
153
163
|
}
|
|
154
164
|
//# sourceMappingURL=config.js.map
|