@proletariat/cli 0.1.4 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +510 -255
- package/bin/dev.cmd +3 -0
- package/bin/dev.js +5 -0
- package/bin/run.cmd +3 -0
- package/bin/run.js +23 -0
- package/dist/commands/action/create.d.ts +21 -0
- package/dist/commands/action/create.js +126 -0
- package/dist/commands/action/delete.d.ts +17 -0
- package/dist/commands/action/delete.js +78 -0
- package/dist/commands/action/index.d.ts +15 -0
- package/dist/commands/action/index.js +107 -0
- package/dist/commands/action/list.d.ts +14 -0
- package/dist/commands/action/list.js +89 -0
- package/dist/commands/action/run.d.ts +19 -0
- package/dist/commands/action/run.js +179 -0
- package/dist/commands/action/show.d.ts +15 -0
- package/dist/commands/action/show.js +47 -0
- package/dist/commands/action/update.d.ts +22 -0
- package/dist/commands/action/update.js +168 -0
- package/dist/commands/agent/index.d.ts +13 -0
- package/dist/commands/agent/index.js +131 -0
- package/dist/commands/agent/list.d.ts +7 -0
- package/dist/commands/agent/list.js +126 -0
- package/dist/commands/agent/login.d.ts +16 -0
- package/dist/commands/agent/login.js +146 -0
- package/dist/commands/agent/rebuild.d.ts +18 -0
- package/dist/commands/agent/rebuild.js +133 -0
- package/dist/commands/agent/restart.d.ts +17 -0
- package/dist/commands/agent/restart.js +116 -0
- package/dist/commands/agent/shell.d.ts +23 -0
- package/dist/commands/agent/shell.js +378 -0
- package/dist/commands/agent/staff/add.d.ts +15 -0
- package/dist/commands/agent/staff/add.js +281 -0
- package/dist/commands/agent/staff/index.d.ts +14 -0
- package/dist/commands/agent/staff/index.js +90 -0
- package/dist/commands/agent/staff/list.d.ts +7 -0
- package/dist/commands/agent/staff/list.js +90 -0
- package/dist/commands/agent/staff/remove.d.ts +16 -0
- package/dist/commands/agent/staff/remove.js +137 -0
- package/dist/commands/agent/status.d.ts +17 -0
- package/dist/commands/agent/status.js +139 -0
- package/dist/commands/agent/temp/cleanup.d.ts +23 -0
- package/dist/commands/agent/temp/cleanup.js +388 -0
- package/dist/commands/agent/temp/index.d.ts +14 -0
- package/dist/commands/agent/temp/index.js +82 -0
- package/dist/commands/agent/temp/list.d.ts +7 -0
- package/dist/commands/agent/temp/list.js +108 -0
- package/dist/commands/agent/themes/add-names.d.ts +10 -0
- package/dist/commands/agent/themes/add-names.js +67 -0
- package/dist/commands/agent/themes/create.d.ts +13 -0
- package/dist/commands/agent/themes/create.js +66 -0
- package/dist/commands/agent/themes/index.d.ts +9 -0
- package/dist/commands/agent/themes/index.js +194 -0
- package/dist/commands/agent/themes/list.d.ts +6 -0
- package/dist/commands/agent/themes/list.js +41 -0
- package/dist/commands/agent/themes/set.d.ts +12 -0
- package/dist/commands/agent/themes/set.js +77 -0
- package/dist/commands/agent/visit.d.ts +16 -0
- package/dist/commands/agent/visit.js +88 -0
- package/dist/commands/autocomplete/setup.d.ts +14 -0
- package/dist/commands/autocomplete/setup.js +154 -0
- package/dist/commands/board/index.d.ts +17 -0
- package/dist/commands/board/index.js +255 -0
- package/dist/commands/board/watch.d.ts +13 -0
- package/dist/commands/board/watch.js +52 -0
- package/dist/commands/branch/create.d.ts +50 -0
- package/dist/commands/branch/create.js +624 -0
- package/dist/commands/branch/index.d.ts +13 -0
- package/dist/commands/branch/index.js +50 -0
- package/dist/commands/branch/list.d.ts +17 -0
- package/dist/commands/branch/list.js +120 -0
- package/dist/commands/branch/validate.d.ts +15 -0
- package/dist/commands/branch/validate.js +73 -0
- package/dist/commands/commit.d.ts +71 -0
- package/dist/commands/commit.js +499 -0
- package/dist/commands/docker/clean.d.ts +13 -0
- package/dist/commands/docker/clean.js +224 -0
- package/dist/commands/docker/index.d.ts +19 -0
- package/dist/commands/docker/index.js +274 -0
- package/dist/commands/docker/list.d.ts +16 -0
- package/dist/commands/docker/list.js +200 -0
- package/dist/commands/docker/logs.d.ts +14 -0
- package/dist/commands/docker/logs.js +118 -0
- package/dist/commands/docker/prune.d.ts +14 -0
- package/dist/commands/docker/prune.js +211 -0
- package/dist/commands/docker/restart.d.ts +14 -0
- package/dist/commands/docker/restart.js +129 -0
- package/dist/commands/docker/shell.d.ts +14 -0
- package/dist/commands/docker/shell.js +103 -0
- package/dist/commands/docker/start.d.ts +12 -0
- package/dist/commands/docker/start.js +92 -0
- package/dist/commands/docker/status.d.ts +7 -0
- package/dist/commands/docker/status.js +40 -0
- package/dist/commands/docker/stop.d.ts +14 -0
- package/dist/commands/docker/stop.js +134 -0
- package/dist/commands/docker/sync.d.ts +15 -0
- package/dist/commands/docker/sync.js +112 -0
- package/dist/commands/epic/activate.d.ts +13 -0
- package/dist/commands/epic/activate.js +118 -0
- package/dist/commands/epic/archive.d.ts +14 -0
- package/dist/commands/epic/archive.js +132 -0
- package/dist/commands/epic/create.d.ts +15 -0
- package/dist/commands/epic/create.js +137 -0
- package/dist/commands/epic/index.d.ts +13 -0
- package/dist/commands/epic/index.js +88 -0
- package/dist/commands/epic/link/block.d.ts +14 -0
- package/dist/commands/epic/link/block.js +79 -0
- package/dist/commands/epic/link/duplicates.d.ts +14 -0
- package/dist/commands/epic/link/duplicates.js +66 -0
- package/dist/commands/epic/link/index.d.ts +19 -0
- package/dist/commands/epic/link/index.js +242 -0
- package/dist/commands/epic/link/relates.d.ts +14 -0
- package/dist/commands/epic/link/relates.js +66 -0
- package/dist/commands/epic/link/remove.d.ts +16 -0
- package/dist/commands/epic/link/remove.js +89 -0
- package/dist/commands/epic/list.d.ts +11 -0
- package/dist/commands/epic/list.js +87 -0
- package/dist/commands/epic/move.d.ts +15 -0
- package/dist/commands/epic/move.js +184 -0
- package/dist/commands/epic/progress.d.ts +16 -0
- package/dist/commands/epic/progress.js +166 -0
- package/dist/commands/epic/project.d.ts +15 -0
- package/dist/commands/epic/project.js +219 -0
- package/dist/commands/epic/reorder.d.ts +21 -0
- package/dist/commands/epic/reorder.js +160 -0
- package/dist/commands/epic/spec.d.ts +15 -0
- package/dist/commands/epic/spec.js +191 -0
- package/dist/commands/epic/ticket.d.ts +18 -0
- package/dist/commands/epic/ticket.js +291 -0
- package/dist/commands/epic/view.d.ts +13 -0
- package/dist/commands/epic/view.js +117 -0
- package/dist/commands/execution/index.d.ts +13 -0
- package/dist/commands/execution/index.js +70 -0
- package/dist/commands/execution/list.d.ts +15 -0
- package/dist/commands/execution/list.js +144 -0
- package/dist/commands/execution/logs.d.ts +18 -0
- package/dist/commands/execution/logs.js +161 -0
- package/dist/commands/execution/stop.d.ts +22 -0
- package/dist/commands/execution/stop.js +248 -0
- package/dist/commands/gh/index.d.ts +9 -0
- package/dist/commands/gh/index.js +53 -0
- package/dist/commands/gh/login.d.ts +6 -0
- package/dist/commands/gh/login.js +57 -0
- package/dist/commands/gh/status.d.ts +6 -0
- package/dist/commands/gh/status.js +48 -0
- package/dist/commands/gh/token.d.ts +6 -0
- package/dist/commands/gh/token.js +59 -0
- package/dist/commands/init.d.ts +26 -0
- package/dist/commands/init.js +200 -0
- package/dist/commands/phase/create.d.ts +22 -0
- package/dist/commands/phase/create.js +123 -0
- package/dist/commands/phase/delete.d.ts +17 -0
- package/dist/commands/phase/delete.js +73 -0
- package/dist/commands/phase/list.d.ts +12 -0
- package/dist/commands/phase/list.js +76 -0
- package/dist/commands/phase/move.d.ts +17 -0
- package/dist/commands/phase/move.js +115 -0
- package/dist/commands/phase/template/apply.d.ts +17 -0
- package/dist/commands/phase/template/apply.js +106 -0
- package/dist/commands/phase/template/create.d.ts +16 -0
- package/dist/commands/phase/template/create.js +58 -0
- package/dist/commands/phase/template/delete.d.ts +17 -0
- package/dist/commands/phase/template/delete.js +98 -0
- package/dist/commands/phase/template/index.d.ts +15 -0
- package/dist/commands/phase/template/index.js +128 -0
- package/dist/commands/phase/template/list.d.ts +16 -0
- package/dist/commands/phase/template/list.js +95 -0
- package/dist/commands/phase/template/update.d.ts +17 -0
- package/dist/commands/phase/template/update.js +89 -0
- package/dist/commands/phase/update.d.ts +23 -0
- package/dist/commands/phase/update.js +174 -0
- package/dist/commands/pmo/init.d.ts +25 -0
- package/dist/commands/pmo/init.js +341 -0
- package/dist/commands/pr/create.d.ts +17 -0
- package/dist/commands/pr/create.js +242 -0
- package/dist/commands/pr/index.d.ts +9 -0
- package/dist/commands/pr/index.js +68 -0
- package/dist/commands/pr/link.d.ts +14 -0
- package/dist/commands/pr/link.js +212 -0
- package/dist/commands/pr/status.d.ts +12 -0
- package/dist/commands/pr/status.js +161 -0
- package/dist/commands/project/archive.d.ts +17 -0
- package/dist/commands/project/archive.js +83 -0
- package/dist/commands/project/create.d.ts +22 -0
- package/dist/commands/project/create.js +143 -0
- package/dist/commands/project/delete.d.ts +17 -0
- package/dist/commands/project/delete.js +128 -0
- package/dist/commands/project/index.d.ts +13 -0
- package/dist/commands/project/index.js +64 -0
- package/dist/commands/project/list.d.ts +14 -0
- package/dist/commands/project/list.js +96 -0
- package/dist/commands/project/spec.d.ts +18 -0
- package/dist/commands/project/spec.js +216 -0
- package/dist/commands/project/unarchive.d.ts +15 -0
- package/dist/commands/project/unarchive.js +35 -0
- package/dist/commands/project/view.d.ts +16 -0
- package/dist/commands/project/view.js +94 -0
- package/dist/commands/repo/add.d.ts +21 -0
- package/dist/commands/repo/add.js +118 -0
- package/dist/commands/repo/index.d.ts +13 -0
- package/dist/commands/repo/index.js +114 -0
- package/dist/commands/repo/list.d.ts +13 -0
- package/dist/commands/repo/list.js +96 -0
- package/dist/commands/repo/remove.d.ts +23 -0
- package/dist/commands/repo/remove.js +217 -0
- package/dist/commands/repo/view.d.ts +15 -0
- package/dist/commands/repo/view.js +99 -0
- package/dist/commands/session/attach.d.ts +40 -0
- package/dist/commands/session/attach.js +307 -0
- package/dist/commands/session/index.d.ts +13 -0
- package/dist/commands/session/index.js +64 -0
- package/dist/commands/session/list.d.ts +21 -0
- package/dist/commands/session/list.js +181 -0
- package/dist/commands/spec/create.d.ts +19 -0
- package/dist/commands/spec/create.js +130 -0
- package/dist/commands/spec/index.d.ts +13 -0
- package/dist/commands/spec/index.js +68 -0
- package/dist/commands/spec/link/depends.d.ts +14 -0
- package/dist/commands/spec/link/depends.js +64 -0
- package/dist/commands/spec/link/duplicates.d.ts +14 -0
- package/dist/commands/spec/link/duplicates.js +63 -0
- package/dist/commands/spec/link/index.d.ts +19 -0
- package/dist/commands/spec/link/index.js +200 -0
- package/dist/commands/spec/link/relates.d.ts +14 -0
- package/dist/commands/spec/link/relates.js +63 -0
- package/dist/commands/spec/link/remove.d.ts +16 -0
- package/dist/commands/spec/link/remove.js +94 -0
- package/dist/commands/spec/list.d.ts +12 -0
- package/dist/commands/spec/list.js +75 -0
- package/dist/commands/spec/plan.d.ts +15 -0
- package/dist/commands/spec/plan.js +108 -0
- package/dist/commands/spec/ticket.d.ts +18 -0
- package/dist/commands/spec/ticket.js +160 -0
- package/dist/commands/spec/view.d.ts +15 -0
- package/dist/commands/spec/view.js +163 -0
- package/dist/commands/status/create.d.ts +21 -0
- package/dist/commands/status/create.js +140 -0
- package/dist/commands/status/delete.d.ts +13 -0
- package/dist/commands/status/delete.js +77 -0
- package/dist/commands/status/index.d.ts +14 -0
- package/dist/commands/status/index.js +91 -0
- package/dist/commands/status/list.d.ts +12 -0
- package/dist/commands/status/list.js +93 -0
- package/dist/commands/status/move.d.ts +14 -0
- package/dist/commands/status/move.js +120 -0
- package/dist/commands/status/update.d.ts +20 -0
- package/dist/commands/status/update.js +180 -0
- package/dist/commands/template/delete.d.ts +15 -0
- package/dist/commands/template/delete.js +142 -0
- package/dist/commands/template/index.d.ts +10 -0
- package/dist/commands/template/index.js +64 -0
- package/dist/commands/template/list.d.ts +18 -0
- package/dist/commands/template/list.js +157 -0
- package/dist/commands/template/phase/apply.d.ts +14 -0
- package/dist/commands/template/phase/apply.js +41 -0
- package/dist/commands/template/phase/create.d.ts +12 -0
- package/dist/commands/template/phase/create.js +29 -0
- package/dist/commands/template/phase/delete.d.ts +13 -0
- package/dist/commands/template/phase/delete.js +34 -0
- package/dist/commands/template/phase/index.d.ts +10 -0
- package/dist/commands/template/phase/index.js +62 -0
- package/dist/commands/template/phase/list.d.ts +11 -0
- package/dist/commands/template/phase/list.js +34 -0
- package/dist/commands/template/phase/update.d.ts +13 -0
- package/dist/commands/template/phase/update.js +35 -0
- package/dist/commands/template/ticket/apply.d.ts +17 -0
- package/dist/commands/template/ticket/apply.js +58 -0
- package/dist/commands/template/ticket/delete.d.ts +13 -0
- package/dist/commands/template/ticket/delete.js +34 -0
- package/dist/commands/template/ticket/index.d.ts +10 -0
- package/dist/commands/template/ticket/index.js +62 -0
- package/dist/commands/template/ticket/list.d.ts +11 -0
- package/dist/commands/template/ticket/list.js +34 -0
- package/dist/commands/template/ticket/save.d.ts +13 -0
- package/dist/commands/template/ticket/save.js +35 -0
- package/dist/commands/ticket/bulk.d.ts +13 -0
- package/dist/commands/ticket/bulk.js +145 -0
- package/dist/commands/ticket/complete.d.ts +16 -0
- package/dist/commands/ticket/complete.js +170 -0
- package/dist/commands/ticket/create.d.ts +22 -0
- package/dist/commands/ticket/create.js +390 -0
- package/dist/commands/ticket/delete.d.ts +16 -0
- package/dist/commands/ticket/delete.js +178 -0
- package/dist/commands/ticket/edit.d.ts +27 -0
- package/dist/commands/ticket/edit.js +322 -0
- package/dist/commands/ticket/epic.d.ts +20 -0
- package/dist/commands/ticket/epic.js +333 -0
- package/dist/commands/ticket/index.d.ts +13 -0
- package/dist/commands/ticket/index.js +103 -0
- package/dist/commands/ticket/link/block.d.ts +14 -0
- package/dist/commands/ticket/link/block.js +94 -0
- package/dist/commands/ticket/link/duplicates.d.ts +14 -0
- package/dist/commands/ticket/link/duplicates.js +93 -0
- package/dist/commands/ticket/link/index.d.ts +19 -0
- package/dist/commands/ticket/link/index.js +239 -0
- package/dist/commands/ticket/link/relates.d.ts +14 -0
- package/dist/commands/ticket/link/relates.js +93 -0
- package/dist/commands/ticket/link/remove.d.ts +16 -0
- package/dist/commands/ticket/link/remove.js +128 -0
- package/dist/commands/ticket/list.d.ts +24 -0
- package/dist/commands/ticket/list.js +431 -0
- package/dist/commands/ticket/move.d.ts +18 -0
- package/dist/commands/ticket/move.js +212 -0
- package/dist/commands/ticket/project.d.ts +18 -0
- package/dist/commands/ticket/project.js +254 -0
- package/dist/commands/ticket/reassign.d.ts +19 -0
- package/dist/commands/ticket/reassign.js +279 -0
- package/dist/commands/ticket/spec.d.ts +18 -0
- package/dist/commands/ticket/spec.js +259 -0
- package/dist/commands/ticket/status.d.ts +13 -0
- package/dist/commands/ticket/status.js +87 -0
- package/dist/commands/ticket/template/apply.d.ts +25 -0
- package/dist/commands/ticket/template/apply.js +249 -0
- package/dist/commands/ticket/template/create.d.ts +19 -0
- package/dist/commands/ticket/template/create.js +210 -0
- package/dist/commands/ticket/template/delete.d.ts +17 -0
- package/dist/commands/ticket/template/delete.js +92 -0
- package/dist/commands/ticket/template/index.d.ts +15 -0
- package/dist/commands/ticket/template/index.js +118 -0
- package/dist/commands/ticket/template/list.d.ts +16 -0
- package/dist/commands/ticket/template/list.js +110 -0
- package/dist/commands/ticket/template/save.d.ts +14 -0
- package/dist/commands/ticket/template/save.js +110 -0
- package/dist/commands/ticket/update.d.ts +18 -0
- package/dist/commands/ticket/update.js +325 -0
- package/dist/commands/ticket/view.d.ts +13 -0
- package/dist/commands/ticket/view.js +80 -0
- package/dist/commands/whoami.d.ts +9 -0
- package/dist/commands/whoami.js +103 -0
- package/dist/commands/work/complete.d.ts +13 -0
- package/dist/commands/work/complete.js +121 -0
- package/dist/commands/work/index.d.ts +13 -0
- package/dist/commands/work/index.js +70 -0
- package/dist/commands/work/ready.d.ts +24 -0
- package/dist/commands/work/ready.js +290 -0
- package/dist/commands/work/revise.d.ts +19 -0
- package/dist/commands/work/revise.js +377 -0
- package/dist/commands/work/spawn-all.d.ts +17 -0
- package/dist/commands/work/spawn-all.js +58 -0
- package/dist/commands/work/spawn.d.ts +29 -0
- package/dist/commands/work/spawn.js +728 -0
- package/dist/commands/work/start.d.ts +39 -0
- package/dist/commands/work/start.js +1393 -0
- package/dist/commands/work/watch.d.ts +31 -0
- package/dist/commands/work/watch.js +359 -0
- package/dist/commands/workflow/create.d.ts +18 -0
- package/dist/commands/workflow/create.js +119 -0
- package/dist/commands/workflow/delete.d.ts +17 -0
- package/dist/commands/workflow/delete.js +119 -0
- package/dist/commands/workflow/index.d.ts +15 -0
- package/dist/commands/workflow/index.js +75 -0
- package/dist/commands/workflow/list.d.ts +15 -0
- package/dist/commands/workflow/list.js +75 -0
- package/dist/commands/workflow/switch.d.ts +13 -0
- package/dist/commands/workflow/switch.js +117 -0
- package/dist/commands/workflow/view.d.ts +16 -0
- package/dist/commands/workflow/view.js +114 -0
- package/dist/commands/workspace/add.d.ts +12 -0
- package/dist/commands/workspace/add.js +74 -0
- package/dist/commands/workspace/list.d.ts +9 -0
- package/dist/commands/workspace/list.js +153 -0
- package/dist/commands/workspace/remove.d.ts +13 -0
- package/dist/commands/workspace/remove.js +98 -0
- package/dist/commands/workspace/use.d.ts +12 -0
- package/dist/commands/workspace/use.js +111 -0
- package/dist/hooks/init.d.ts +11 -0
- package/dist/hooks/init.js +57 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/lib/agents/commands.d.ts +189 -0
- package/dist/lib/agents/commands.js +893 -0
- package/dist/lib/agents/index.d.ts +54 -0
- package/dist/lib/agents/index.js +382 -0
- package/dist/lib/branch/index.d.ts +120 -0
- package/dist/lib/branch/index.js +334 -0
- package/dist/lib/colors.d.ts +94 -0
- package/dist/lib/colors.js +68 -0
- package/dist/lib/commands/docker-command.d.ts +21 -0
- package/dist/lib/commands/docker-command.js +27 -0
- package/dist/lib/database/index.d.ts +176 -0
- package/dist/lib/database/index.js +581 -0
- package/dist/lib/docker/resolve.d.ts +38 -0
- package/dist/lib/docker/resolve.js +175 -0
- package/dist/lib/execution/config.d.ts +150 -0
- package/dist/lib/execution/config.js +541 -0
- package/dist/lib/execution/devcontainer.d.ts +85 -0
- package/dist/lib/execution/devcontainer.js +594 -0
- package/dist/lib/execution/index.d.ts +10 -0
- package/dist/lib/execution/index.js +10 -0
- package/dist/lib/execution/runners.d.ts +53 -0
- package/dist/lib/execution/runners.js +1182 -0
- package/dist/lib/execution/spawner.d.ts +85 -0
- package/dist/lib/execution/spawner.js +548 -0
- package/dist/lib/execution/storage.d.ts +159 -0
- package/dist/lib/execution/storage.js +425 -0
- package/dist/lib/execution/types.d.ts +145 -0
- package/dist/lib/execution/types.js +157 -0
- package/dist/lib/init/index.d.ts +75 -0
- package/dist/lib/init/index.js +355 -0
- package/dist/lib/machine-config.d.ts +170 -0
- package/dist/lib/machine-config.js +386 -0
- package/dist/lib/pmo/base-command.d.ts +195 -0
- package/dist/lib/pmo/base-command.js +319 -0
- package/dist/lib/pmo/create-spec-folders.d.ts +43 -0
- package/dist/lib/pmo/create-spec-folders.js +64 -0
- package/dist/lib/pmo/epic-files.d.ts +56 -0
- package/dist/lib/pmo/epic-files.js +195 -0
- package/dist/lib/pmo/find-pmo.d.ts +14 -0
- package/dist/lib/pmo/find-pmo.js +172 -0
- package/dist/lib/pmo/index.d.ts +109 -0
- package/dist/lib/pmo/index.js +501 -0
- package/dist/lib/pmo/markdown.d.ts +31 -0
- package/dist/lib/pmo/markdown.js +245 -0
- package/dist/lib/pmo/pmo-context.d.ts +27 -0
- package/dist/lib/pmo/pmo-context.js +44 -0
- package/dist/lib/pmo/schema.d.ts +82 -0
- package/dist/lib/pmo/schema.js +531 -0
- package/dist/lib/pmo/spec-parser.d.ts +25 -0
- package/dist/lib/pmo/spec-parser.js +205 -0
- package/dist/lib/pmo/spec-types.d.ts +43 -0
- package/dist/lib/pmo/spec-types.js +7 -0
- package/dist/lib/pmo/storage/actions.d.ts +34 -0
- package/dist/lib/pmo/storage/actions.js +177 -0
- package/dist/lib/pmo/storage/base.d.ts +47 -0
- package/dist/lib/pmo/storage/base.js +858 -0
- package/dist/lib/pmo/storage/dependencies.d.ts +61 -0
- package/dist/lib/pmo/storage/dependencies.js +267 -0
- package/dist/lib/pmo/storage/epics.d.ts +46 -0
- package/dist/lib/pmo/storage/epics.js +243 -0
- package/dist/lib/pmo/storage/helpers.d.ts +33 -0
- package/dist/lib/pmo/storage/helpers.js +148 -0
- package/dist/lib/pmo/storage/index.d.ts +186 -0
- package/dist/lib/pmo/storage/index.js +689 -0
- package/dist/lib/pmo/storage/phases.d.ts +65 -0
- package/dist/lib/pmo/storage/phases.js +392 -0
- package/dist/lib/pmo/storage/projects.d.ts +79 -0
- package/dist/lib/pmo/storage/projects.js +303 -0
- package/dist/lib/pmo/storage/specs.d.ts +77 -0
- package/dist/lib/pmo/storage/specs.js +389 -0
- package/dist/lib/pmo/storage/statuses.d.ts +63 -0
- package/dist/lib/pmo/storage/statuses.js +404 -0
- package/dist/lib/pmo/storage/subtasks.d.ts +37 -0
- package/dist/lib/pmo/storage/subtasks.js +184 -0
- package/dist/lib/pmo/storage/templates.d.ts +40 -0
- package/dist/lib/pmo/storage/templates.js +210 -0
- package/dist/lib/pmo/storage/tickets.d.ts +57 -0
- package/dist/lib/pmo/storage/tickets.js +453 -0
- package/dist/lib/pmo/storage/types.d.ts +200 -0
- package/dist/lib/pmo/storage/types.js +5 -0
- package/dist/lib/pmo/storage/views.d.ts +44 -0
- package/dist/lib/pmo/storage/views.js +355 -0
- package/dist/lib/pmo/storage-sqlite.d.ts +7 -0
- package/dist/lib/pmo/storage-sqlite.js +7 -0
- package/dist/lib/pmo/sync-manager.d.ts +92 -0
- package/dist/lib/pmo/sync-manager.js +229 -0
- package/dist/lib/pmo/types.d.ts +710 -0
- package/dist/lib/pmo/types.js +108 -0
- package/dist/lib/pmo/utils.d.ts +122 -0
- package/dist/lib/pmo/utils.js +174 -0
- package/dist/lib/pmo/watcher.d.ts +43 -0
- package/dist/lib/pmo/watcher.js +208 -0
- package/dist/lib/pr/index.d.ts +150 -0
- package/dist/lib/pr/index.js +483 -0
- package/dist/lib/prompt-json.d.ts +231 -0
- package/dist/lib/prompt-json.js +213 -0
- package/dist/lib/repos/index.d.ts +81 -0
- package/dist/lib/repos/index.js +679 -0
- package/dist/lib/styles.d.ts +98 -0
- package/dist/lib/styles.js +195 -0
- package/dist/lib/themes.d.ts +128 -0
- package/dist/lib/themes.js +301 -0
- package/dist/lib/ui/BoardUI.d.ts +21 -0
- package/dist/lib/ui/BoardUI.js +85 -0
- package/dist/lib/ui/ClaimTicketUI.d.ts +17 -0
- package/dist/lib/ui/ClaimTicketUI.js +64 -0
- package/dist/lib/ui/CreateTicketUI.d.ts +13 -0
- package/dist/lib/ui/CreateTicketUI.js +101 -0
- package/dist/lib/workspace.d.ts +66 -0
- package/dist/lib/workspace.js +204 -0
- package/oclif.manifest.json +10593 -0
- package/package.json +104 -52
- package/LICENSE +0 -21
- package/dist/bin/prlt.d.ts +0 -11
- package/dist/bin/prlt.d.ts.map +0 -1
- package/dist/bin/prlt.js +0 -144
- package/dist/bin/prlt.js.map +0 -1
- package/dist/lib/config/index.d.ts +0 -14
- package/dist/lib/config/index.d.ts.map +0 -1
- package/dist/lib/config/index.js +0 -139
- package/dist/lib/config/index.js.map +0 -1
- package/dist/lib/config/upgrade.d.ts +0 -2
- package/dist/lib/config/upgrade.d.ts.map +0 -1
- package/dist/lib/config/upgrade.js +0 -173
- package/dist/lib/config/upgrade.js.map +0 -1
- package/dist/lib/themes/index.d.ts +0 -8
- package/dist/lib/themes/index.d.ts.map +0 -1
- package/dist/lib/themes/index.js +0 -80
- package/dist/lib/themes/index.js.map +0 -1
- package/dist/lib/utils/helpers.d.ts +0 -4
- package/dist/lib/utils/helpers.d.ts.map +0 -1
- package/dist/lib/utils/helpers.js +0 -39
- package/dist/lib/utils/helpers.js.map +0 -1
- package/dist/lib/utils/logger.d.ts +0 -4
- package/dist/lib/utils/logger.d.ts.map +0 -1
- package/dist/lib/utils/logger.js +0 -28
- package/dist/lib/utils/logger.js.map +0 -1
- package/dist/lib/workspace/index.d.ts +0 -13
- package/dist/lib/workspace/index.d.ts.map +0 -1
- package/dist/lib/workspace/index.js +0 -116
- package/dist/lib/workspace/index.js.map +0 -1
- package/dist/lib/worktree/index.d.ts +0 -7
- package/dist/lib/worktree/index.d.ts.map +0 -1
- package/dist/lib/worktree/index.js +0 -362
- package/dist/lib/worktree/index.js.map +0 -1
- package/dist/lib/worktree/migrate.d.ts +0 -2
- package/dist/lib/worktree/migrate.d.ts.map +0 -1
- package/dist/lib/worktree/migrate.js +0 -212
- package/dist/lib/worktree/migrate.js.map +0 -1
- package/dist/lib/worktree/repair.d.ts +0 -3
- package/dist/lib/worktree/repair.d.ts.map +0 -1
- package/dist/lib/worktree/repair.js +0 -140
- package/dist/lib/worktree/repair.js.map +0 -1
- package/dist/types/index.d.ts +0 -57
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Branch Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utilities for creating and validating conventional branch names.
|
|
5
|
+
* Format: {type}/{coder}/{description} or {type}/{description}
|
|
6
|
+
*/
|
|
7
|
+
import { execSync } from 'node:child_process';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Branch Types
|
|
10
|
+
// =============================================================================
|
|
11
|
+
export const BRANCH_TYPES = {
|
|
12
|
+
// Conventional Commits (standard types)
|
|
13
|
+
feat: 'New feature',
|
|
14
|
+
fix: 'Bug fix',
|
|
15
|
+
rfct: 'Refactoring (no functional change)',
|
|
16
|
+
docs: 'Documentation only',
|
|
17
|
+
test: 'Test additions or corrections',
|
|
18
|
+
chore: 'Maintenance tasks, no production code',
|
|
19
|
+
perf: 'Performance improvement',
|
|
20
|
+
ci: 'CI/CD configuration changes',
|
|
21
|
+
build: 'Build system or external dependency changes',
|
|
22
|
+
// Extended Types (proletariat extras)
|
|
23
|
+
sec: 'Security fixes or improvements',
|
|
24
|
+
db: 'Database migrations or schema changes',
|
|
25
|
+
rel: 'Release preparation',
|
|
26
|
+
// 5Tool Founder Types
|
|
27
|
+
ship: 'Shipping, deployment, and launch',
|
|
28
|
+
grow: 'Growth and marketing initiatives',
|
|
29
|
+
cx: 'Customer experience and support',
|
|
30
|
+
strat: 'Strategy and planning',
|
|
31
|
+
ops: 'Business operations',
|
|
32
|
+
};
|
|
33
|
+
// Conventional Commits (standard types)
|
|
34
|
+
export const CONVENTIONAL_TYPES = [
|
|
35
|
+
'feat', 'fix', 'rfct', 'docs', 'test', 'chore', 'perf', 'ci', 'build'
|
|
36
|
+
];
|
|
37
|
+
// Extended Types (proletariat extras)
|
|
38
|
+
export const EXTENDED_TYPES = [
|
|
39
|
+
'sec', 'db', 'rel'
|
|
40
|
+
];
|
|
41
|
+
// 5Tool Founder Types
|
|
42
|
+
export const FOUNDER_TYPES = [
|
|
43
|
+
'ship', 'grow', 'cx', 'strat', 'ops'
|
|
44
|
+
];
|
|
45
|
+
// Combined for wizard display
|
|
46
|
+
export const DEVELOPMENT_TYPES = [...CONVENTIONAL_TYPES, ...EXTENDED_TYPES];
|
|
47
|
+
export const BUSINESS_TYPES = FOUNDER_TYPES;
|
|
48
|
+
// =============================================================================
|
|
49
|
+
// Validation
|
|
50
|
+
// =============================================================================
|
|
51
|
+
const KEBAB_CASE_REGEX = /^[a-z0-9]+(-[a-z0-9]+)*$/;
|
|
52
|
+
export function isKebabCase(str) {
|
|
53
|
+
return KEBAB_CASE_REGEX.test(str);
|
|
54
|
+
}
|
|
55
|
+
export function isValidBranchType(type) {
|
|
56
|
+
return type in BRANCH_TYPES;
|
|
57
|
+
}
|
|
58
|
+
// Ticket ID pattern (e.g., TKT-001, PROJ-123)
|
|
59
|
+
const TICKET_ID_REGEX = /^[A-Z]+-\d+$/;
|
|
60
|
+
/**
|
|
61
|
+
* Check if a string looks like a ticket ID.
|
|
62
|
+
*/
|
|
63
|
+
export function isTicketId(str) {
|
|
64
|
+
return TICKET_ID_REGEX.test(str);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Parse and validate a branch name against conventional format.
|
|
68
|
+
*
|
|
69
|
+
* Supported formats:
|
|
70
|
+
* - {ticketId}/{type}/{owner}/{agent}/{description} - full format with ticket
|
|
71
|
+
* - {ticketId}/{type}/{owner}/{description} - ticket format without agent (manual)
|
|
72
|
+
* - {type}/{owner}/{description} - legacy format without ticket
|
|
73
|
+
* - {type}/{description} - minimal format
|
|
74
|
+
*/
|
|
75
|
+
export function validateBranchName(name) {
|
|
76
|
+
const parts = name.split('/');
|
|
77
|
+
if (parts.length < 2 || parts.length > 5) {
|
|
78
|
+
return {
|
|
79
|
+
valid: false,
|
|
80
|
+
error: 'Branch name must have 2-5 parts separated by /',
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
// Check if first part is a ticket ID
|
|
84
|
+
const hasTicket = isTicketId(parts[0]);
|
|
85
|
+
if (hasTicket) {
|
|
86
|
+
// Ticket-first format: {ticketId}/{type}/{owner}/{agent?}/{description}
|
|
87
|
+
const ticketId = parts[0];
|
|
88
|
+
const type = parts[1];
|
|
89
|
+
if (!isValidBranchType(type)) {
|
|
90
|
+
return {
|
|
91
|
+
valid: false,
|
|
92
|
+
error: `Unknown branch type: "${type}". Valid types: ${Object.keys(BRANCH_TYPES).join(', ')}`,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
if (parts.length === 3) {
|
|
96
|
+
// {ticketId}/{type}/{description}
|
|
97
|
+
return {
|
|
98
|
+
valid: true,
|
|
99
|
+
parts: { ticketId, type: type, description: parts[2] },
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if (parts.length === 4) {
|
|
103
|
+
// {ticketId}/{type}/{owner}/{description}
|
|
104
|
+
return {
|
|
105
|
+
valid: true,
|
|
106
|
+
parts: { ticketId, type: type, owner: parts[2], description: parts[3] },
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
if (parts.length === 5) {
|
|
110
|
+
// {ticketId}/{type}/{owner}/{agent}/{description}
|
|
111
|
+
return {
|
|
112
|
+
valid: true,
|
|
113
|
+
parts: { ticketId, type: type, owner: parts[2], agent: parts[3], description: parts[4] },
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
valid: false,
|
|
118
|
+
error: 'Invalid ticket branch format. Expected: {ticketId}/{type}/{owner}/{description} or {ticketId}/{type}/{owner}/{agent}/{description}',
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
// Legacy format without ticket: {type}/{owner?}/{description}
|
|
122
|
+
const type = parts[0];
|
|
123
|
+
if (!isValidBranchType(type)) {
|
|
124
|
+
return {
|
|
125
|
+
valid: false,
|
|
126
|
+
error: `Unknown branch type: "${type}". Valid types: ${Object.keys(BRANCH_TYPES).join(', ')}`,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
if (parts.length === 2) {
|
|
130
|
+
// {type}/{description}
|
|
131
|
+
const description = parts[1];
|
|
132
|
+
if (!isKebabCase(description)) {
|
|
133
|
+
return {
|
|
134
|
+
valid: false,
|
|
135
|
+
error: `Description must be kebab-case: "${description}"`,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
valid: true,
|
|
140
|
+
parts: { type: type, description },
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
// {type}/{owner}/{description}
|
|
144
|
+
const owner = parts[1];
|
|
145
|
+
const description = parts[2];
|
|
146
|
+
if (!isKebabCase(owner)) {
|
|
147
|
+
return {
|
|
148
|
+
valid: false,
|
|
149
|
+
error: `Owner name must be kebab-case: "${owner}"`,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
if (!isKebabCase(description)) {
|
|
153
|
+
return {
|
|
154
|
+
valid: false,
|
|
155
|
+
error: `Description must be kebab-case: "${description}"`,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
valid: true,
|
|
160
|
+
parts: { type: type, owner, description },
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Build a branch name from parts.
|
|
165
|
+
*
|
|
166
|
+
* Formats:
|
|
167
|
+
* - With ticket + agent: {ticketId}/{type}/{owner}/{agent}/{description}
|
|
168
|
+
* - With ticket (manual): {ticketId}/{type}/{owner}/{description}
|
|
169
|
+
* - Without ticket: {type}/{owner}/{description}
|
|
170
|
+
* - Minimal: {type}/{description}
|
|
171
|
+
*/
|
|
172
|
+
export function buildBranchName(type, description, options) {
|
|
173
|
+
const { ticketId, owner, agent } = options || {};
|
|
174
|
+
if (ticketId) {
|
|
175
|
+
// Ticket-first format
|
|
176
|
+
if (agent && owner) {
|
|
177
|
+
return `${ticketId}/${type}/${owner}/${agent}/${description}`;
|
|
178
|
+
}
|
|
179
|
+
if (owner) {
|
|
180
|
+
return `${ticketId}/${type}/${owner}/${description}`;
|
|
181
|
+
}
|
|
182
|
+
return `${ticketId}/${type}/${description}`;
|
|
183
|
+
}
|
|
184
|
+
// Legacy format without ticket
|
|
185
|
+
if (owner) {
|
|
186
|
+
return `${type}/${owner}/${description}`;
|
|
187
|
+
}
|
|
188
|
+
return `${type}/${description}`;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Convert a string to kebab-case.
|
|
192
|
+
*/
|
|
193
|
+
export function toKebabCase(str) {
|
|
194
|
+
return str
|
|
195
|
+
.toLowerCase()
|
|
196
|
+
.replace(/[^a-z0-9\s-]/g, '')
|
|
197
|
+
.replace(/\s+/g, '-')
|
|
198
|
+
.replace(/-+/g, '-')
|
|
199
|
+
.replace(/^-|-$/g, '');
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Get current branch name.
|
|
203
|
+
*/
|
|
204
|
+
export function getCurrentBranch(cwd) {
|
|
205
|
+
try {
|
|
206
|
+
return execSync('git rev-parse --abbrev-ref HEAD', {
|
|
207
|
+
cwd,
|
|
208
|
+
encoding: 'utf-8',
|
|
209
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
210
|
+
}).trim();
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* List all branches with parsed info.
|
|
218
|
+
*/
|
|
219
|
+
export function listBranches(cwd, includeRemote = false) {
|
|
220
|
+
try {
|
|
221
|
+
const args = includeRemote ? '-a' : '';
|
|
222
|
+
const output = execSync(`git branch ${args} --format="%(refname:short)|%(upstream:short)|%(HEAD)"`, {
|
|
223
|
+
cwd,
|
|
224
|
+
encoding: 'utf-8',
|
|
225
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
226
|
+
});
|
|
227
|
+
const branches = [];
|
|
228
|
+
for (const line of output.trim().split('\n')) {
|
|
229
|
+
if (!line)
|
|
230
|
+
continue;
|
|
231
|
+
const [name, tracking, head] = line.split('|');
|
|
232
|
+
const current = head === '*';
|
|
233
|
+
// Parse conventional parts
|
|
234
|
+
const validation = validateBranchName(name);
|
|
235
|
+
branches.push({
|
|
236
|
+
name,
|
|
237
|
+
current,
|
|
238
|
+
ticketId: validation.parts?.ticketId,
|
|
239
|
+
type: validation.parts?.type,
|
|
240
|
+
owner: validation.parts?.owner,
|
|
241
|
+
agent: validation.parts?.agent,
|
|
242
|
+
description: validation.parts?.description,
|
|
243
|
+
tracking: tracking || undefined,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
return branches;
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
return [];
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Check if a branch exists.
|
|
254
|
+
*/
|
|
255
|
+
export function branchExists(name, cwd) {
|
|
256
|
+
try {
|
|
257
|
+
execSync(`git rev-parse --verify ${name}`, {
|
|
258
|
+
cwd,
|
|
259
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
260
|
+
});
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Create a new branch.
|
|
269
|
+
* @param startPoint - Optional starting point (e.g., 'origin/main')
|
|
270
|
+
*/
|
|
271
|
+
export function createBranch(name, cwd, checkout = true, startPoint) {
|
|
272
|
+
const startArg = startPoint ? ` ${startPoint}` : '';
|
|
273
|
+
if (checkout) {
|
|
274
|
+
execSync(`git checkout -b ${name}${startArg}`, {
|
|
275
|
+
cwd,
|
|
276
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
execSync(`git branch ${name}${startArg}`, {
|
|
281
|
+
cwd,
|
|
282
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Fetch from origin.
|
|
288
|
+
*/
|
|
289
|
+
export function fetchOrigin(ref, cwd) {
|
|
290
|
+
try {
|
|
291
|
+
const refArg = ref ? ` ${ref}` : '';
|
|
292
|
+
execSync(`git fetch origin${refArg}`, {
|
|
293
|
+
cwd,
|
|
294
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
295
|
+
});
|
|
296
|
+
return true;
|
|
297
|
+
}
|
|
298
|
+
catch {
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Switch to an existing branch.
|
|
304
|
+
*/
|
|
305
|
+
export function checkoutBranch(name, cwd) {
|
|
306
|
+
execSync(`git checkout ${name}`, {
|
|
307
|
+
cwd,
|
|
308
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Create an empty commit.
|
|
313
|
+
*/
|
|
314
|
+
export function createEmptyCommit(message, cwd) {
|
|
315
|
+
execSync(`git commit --allow-empty -m "${message.replace(/"/g, '\\"')}"`, {
|
|
316
|
+
cwd,
|
|
317
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Check if in a git repository.
|
|
322
|
+
*/
|
|
323
|
+
export function isGitRepo(cwd) {
|
|
324
|
+
try {
|
|
325
|
+
execSync('git rev-parse --git-dir', {
|
|
326
|
+
cwd,
|
|
327
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
328
|
+
});
|
|
329
|
+
return true;
|
|
330
|
+
}
|
|
331
|
+
catch {
|
|
332
|
+
return false;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized color scheme for consistent, readable output across all commands
|
|
3
|
+
* Optimized for both light and dark terminal backgrounds
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
export declare const colors: {
|
|
7
|
+
primary: chalk.Chalk;
|
|
8
|
+
success: chalk.Chalk;
|
|
9
|
+
error: chalk.Chalk;
|
|
10
|
+
warning: chalk.Chalk;
|
|
11
|
+
text: chalk.Chalk;
|
|
12
|
+
textBold: chalk.Chalk;
|
|
13
|
+
textSecondary: chalk.Chalk;
|
|
14
|
+
textMuted: chalk.Chalk;
|
|
15
|
+
active: chalk.Chalk;
|
|
16
|
+
inactive: chalk.Chalk;
|
|
17
|
+
pending: chalk.Chalk;
|
|
18
|
+
code: chalk.Chalk;
|
|
19
|
+
path: chalk.Chalk;
|
|
20
|
+
command: chalk.Chalk;
|
|
21
|
+
agentName: chalk.Chalk;
|
|
22
|
+
repoClean: chalk.Chalk;
|
|
23
|
+
repoDirty: chalk.Chalk;
|
|
24
|
+
repoMissing: chalk.Chalk;
|
|
25
|
+
commitsAhead: chalk.Chalk;
|
|
26
|
+
selected: chalk.Chalk;
|
|
27
|
+
unselected: chalk.Chalk;
|
|
28
|
+
disabled: chalk.Chalk;
|
|
29
|
+
icon: chalk.Chalk;
|
|
30
|
+
separator: chalk.Chalk;
|
|
31
|
+
highlight: chalk.Chalk;
|
|
32
|
+
attention: chalk.Chalk;
|
|
33
|
+
};
|
|
34
|
+
export declare const format: {
|
|
35
|
+
title: (text: string) => string;
|
|
36
|
+
subtitle: (text: string) => string;
|
|
37
|
+
success: (text: string) => string;
|
|
38
|
+
error: (text: string) => string;
|
|
39
|
+
warning: (text: string) => string;
|
|
40
|
+
info: (text: string) => string;
|
|
41
|
+
agentActive: (name: string) => string;
|
|
42
|
+
agentInactive: (name: string) => string;
|
|
43
|
+
repoStatus: (name: string, status: "clean" | "dirty" | "missing", commits?: number) => string;
|
|
44
|
+
command: (text: string) => string;
|
|
45
|
+
path: (text: string) => string;
|
|
46
|
+
listItem: (text: string, indent?: number) => string;
|
|
47
|
+
listSubItem: (text: string, indent?: number) => string;
|
|
48
|
+
};
|
|
49
|
+
declare const _default: {
|
|
50
|
+
colors: {
|
|
51
|
+
primary: chalk.Chalk;
|
|
52
|
+
success: chalk.Chalk;
|
|
53
|
+
error: chalk.Chalk;
|
|
54
|
+
warning: chalk.Chalk;
|
|
55
|
+
text: chalk.Chalk;
|
|
56
|
+
textBold: chalk.Chalk;
|
|
57
|
+
textSecondary: chalk.Chalk;
|
|
58
|
+
textMuted: chalk.Chalk;
|
|
59
|
+
active: chalk.Chalk;
|
|
60
|
+
inactive: chalk.Chalk;
|
|
61
|
+
pending: chalk.Chalk;
|
|
62
|
+
code: chalk.Chalk;
|
|
63
|
+
path: chalk.Chalk;
|
|
64
|
+
command: chalk.Chalk;
|
|
65
|
+
agentName: chalk.Chalk;
|
|
66
|
+
repoClean: chalk.Chalk;
|
|
67
|
+
repoDirty: chalk.Chalk;
|
|
68
|
+
repoMissing: chalk.Chalk;
|
|
69
|
+
commitsAhead: chalk.Chalk;
|
|
70
|
+
selected: chalk.Chalk;
|
|
71
|
+
unselected: chalk.Chalk;
|
|
72
|
+
disabled: chalk.Chalk;
|
|
73
|
+
icon: chalk.Chalk;
|
|
74
|
+
separator: chalk.Chalk;
|
|
75
|
+
highlight: chalk.Chalk;
|
|
76
|
+
attention: chalk.Chalk;
|
|
77
|
+
};
|
|
78
|
+
format: {
|
|
79
|
+
title: (text: string) => string;
|
|
80
|
+
subtitle: (text: string) => string;
|
|
81
|
+
success: (text: string) => string;
|
|
82
|
+
error: (text: string) => string;
|
|
83
|
+
warning: (text: string) => string;
|
|
84
|
+
info: (text: string) => string;
|
|
85
|
+
agentActive: (name: string) => string;
|
|
86
|
+
agentInactive: (name: string) => string;
|
|
87
|
+
repoStatus: (name: string, status: "clean" | "dirty" | "missing", commits?: number) => string;
|
|
88
|
+
command: (text: string) => string;
|
|
89
|
+
path: (text: string) => string;
|
|
90
|
+
listItem: (text: string, indent?: number) => string;
|
|
91
|
+
listSubItem: (text: string, indent?: number) => string;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
export default _default;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized color scheme for consistent, readable output across all commands
|
|
3
|
+
* Optimized for both light and dark terminal backgrounds
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
export const colors = {
|
|
7
|
+
// Primary colors - highly visible
|
|
8
|
+
primary: chalk.cyan,
|
|
9
|
+
success: chalk.green,
|
|
10
|
+
error: chalk.red,
|
|
11
|
+
warning: chalk.yellow,
|
|
12
|
+
// Text colors - guaranteed readable
|
|
13
|
+
text: chalk.white,
|
|
14
|
+
textBold: chalk.bold.white,
|
|
15
|
+
textSecondary: chalk.cyan,
|
|
16
|
+
textMuted: chalk.dim,
|
|
17
|
+
// Status indicators
|
|
18
|
+
active: chalk.green,
|
|
19
|
+
inactive: chalk.red,
|
|
20
|
+
pending: chalk.yellow,
|
|
21
|
+
// Special elements
|
|
22
|
+
code: chalk.bold.white.bgBlue,
|
|
23
|
+
path: chalk.bold.cyan,
|
|
24
|
+
command: chalk.bold.white,
|
|
25
|
+
// Agent-specific
|
|
26
|
+
agentName: chalk.bold.cyan,
|
|
27
|
+
// Repository status
|
|
28
|
+
repoClean: chalk.green,
|
|
29
|
+
repoDirty: chalk.yellow,
|
|
30
|
+
repoMissing: chalk.red,
|
|
31
|
+
commitsAhead: chalk.blue,
|
|
32
|
+
// Interactive elements
|
|
33
|
+
selected: chalk.bold.cyan,
|
|
34
|
+
unselected: chalk.white,
|
|
35
|
+
disabled: chalk.dim,
|
|
36
|
+
// Icons and decorations
|
|
37
|
+
icon: chalk.white,
|
|
38
|
+
separator: chalk.dim,
|
|
39
|
+
// Background highlights
|
|
40
|
+
highlight: chalk.bgBlue.white,
|
|
41
|
+
attention: chalk.bgYellow.black
|
|
42
|
+
};
|
|
43
|
+
// Utility functions for common patterns
|
|
44
|
+
export const format = {
|
|
45
|
+
title: (text) => colors.primary.bold(`\n${text}\n`),
|
|
46
|
+
subtitle: (text) => colors.textSecondary(`${text}`),
|
|
47
|
+
success: (text) => `${colors.success('✅')} ${colors.text(text)}`,
|
|
48
|
+
error: (text) => `${colors.error('❌')} ${colors.text(text)}`,
|
|
49
|
+
warning: (text) => `${colors.warning('⚠️')} ${colors.text(text)}`,
|
|
50
|
+
info: (text) => `${colors.primary('ℹ️')} ${colors.text(text)}`,
|
|
51
|
+
// Agent-specific formatters
|
|
52
|
+
agentActive: (name) => `${colors.success('🟢')} ${colors.agentName(name)} - ${colors.active('Active')}`,
|
|
53
|
+
agentInactive: (name) => `${colors.error('🔴')} ${colors.agentName(name)} - ${colors.inactive('Inactive')}`,
|
|
54
|
+
// Repository formatters
|
|
55
|
+
repoStatus: (name, status, commits) => {
|
|
56
|
+
const statusColor = status === 'clean' ? colors.repoClean :
|
|
57
|
+
status === 'dirty' ? colors.repoDirty : colors.repoMissing;
|
|
58
|
+
const commitsText = commits ? ` ${colors.commitsAhead(`(+${commits})`)}` : '';
|
|
59
|
+
return `${colors.text(`• ${name}`)} ${statusColor(`(${status})`)}${commitsText}`;
|
|
60
|
+
},
|
|
61
|
+
// Command formatters
|
|
62
|
+
command: (text) => colors.command(` ${text}`),
|
|
63
|
+
path: (text) => colors.path(text),
|
|
64
|
+
// List item formatters
|
|
65
|
+
listItem: (text, indent = 2) => colors.text(`${' '.repeat(indent)}${text}`),
|
|
66
|
+
listSubItem: (text, indent = 4) => colors.textSecondary(`${' '.repeat(indent)}${text}`)
|
|
67
|
+
};
|
|
68
|
+
export default { colors, format };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* Base command class for commands that require Docker.
|
|
4
|
+
*
|
|
5
|
+
* Automatically checks if Docker daemon is running before the command executes.
|
|
6
|
+
* If Docker is not available, exits with a clear error message.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { DockerCommand } from '../../lib/commands/docker-command.js'
|
|
11
|
+
*
|
|
12
|
+
* export default class MyCommand extends DockerCommand {
|
|
13
|
+
* async run() {
|
|
14
|
+
* // Docker is guaranteed to be running here
|
|
15
|
+
* }
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare abstract class DockerCommand extends Command {
|
|
20
|
+
init(): Promise<void>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
import { isDockerRunning } from '../execution/runners.js';
|
|
3
|
+
/**
|
|
4
|
+
* Base command class for commands that require Docker.
|
|
5
|
+
*
|
|
6
|
+
* Automatically checks if Docker daemon is running before the command executes.
|
|
7
|
+
* If Docker is not available, exits with a clear error message.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { DockerCommand } from '../../lib/commands/docker-command.js'
|
|
12
|
+
*
|
|
13
|
+
* export default class MyCommand extends DockerCommand {
|
|
14
|
+
* async run() {
|
|
15
|
+
* // Docker is guaranteed to be running here
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export class DockerCommand extends Command {
|
|
21
|
+
async init() {
|
|
22
|
+
await super.init();
|
|
23
|
+
if (!isDockerRunning()) {
|
|
24
|
+
this.error('Docker is not running. Please start Docker Desktop and try again.');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|