@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,710 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PMO Interface Types
|
|
3
|
+
*
|
|
4
|
+
* Canonical interface for the Project Management Orchestration system.
|
|
5
|
+
* All storage backends must implement the PMOStorage interface.
|
|
6
|
+
*
|
|
7
|
+
* Hierarchy:
|
|
8
|
+
* - Initiative (optional) - OKR-level grouping
|
|
9
|
+
* - Project - Discrete effort with its own board + specs
|
|
10
|
+
* - Epic (optional) - Large body of work within a project
|
|
11
|
+
* - Ticket - Individual work item
|
|
12
|
+
* - Subtask - Smallest actionable piece
|
|
13
|
+
*/
|
|
14
|
+
export interface Initiative {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
objective?: string;
|
|
18
|
+
keyResults?: string[];
|
|
19
|
+
createdAt: Date;
|
|
20
|
+
updatedAt: Date;
|
|
21
|
+
}
|
|
22
|
+
export interface Project {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
template?: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
status: ProjectStatus;
|
|
28
|
+
phaseId?: string;
|
|
29
|
+
workflowId?: string;
|
|
30
|
+
isArchived: boolean;
|
|
31
|
+
targetDate?: Date;
|
|
32
|
+
initiativeId?: string;
|
|
33
|
+
createdAt: Date;
|
|
34
|
+
updatedAt: Date;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Epic status lifecycle
|
|
38
|
+
*/
|
|
39
|
+
export type EpicStatus = 'active' | 'draft' | 'complete' | 'dropped' | 'future';
|
|
40
|
+
/**
|
|
41
|
+
* Epic represents a work container that groups related tickets
|
|
42
|
+
* and tracks progress through lifecycle statuses.
|
|
43
|
+
*/
|
|
44
|
+
export interface Epic {
|
|
45
|
+
id: string;
|
|
46
|
+
projectId: string;
|
|
47
|
+
title: string;
|
|
48
|
+
description?: string;
|
|
49
|
+
status: EpicStatus;
|
|
50
|
+
position: number;
|
|
51
|
+
filePath?: string;
|
|
52
|
+
specId?: string;
|
|
53
|
+
createdAt: Date;
|
|
54
|
+
updatedAt: Date;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated TicketStatus enum removed. Use statusId reference to WorkflowStatus instead.
|
|
58
|
+
* Kept as type alias for backward compatibility during transition.
|
|
59
|
+
*/
|
|
60
|
+
export type TicketStatus = string;
|
|
61
|
+
/**
|
|
62
|
+
* Standardized priority values: P0 (critical) through P3 (low).
|
|
63
|
+
*/
|
|
64
|
+
export type Priority = 'P0' | 'P1' | 'P2' | 'P3';
|
|
65
|
+
/**
|
|
66
|
+
* Valid priority values as a const array for validation and CLI options.
|
|
67
|
+
*/
|
|
68
|
+
export declare const PRIORITIES: readonly Priority[];
|
|
69
|
+
/**
|
|
70
|
+
* Priority display names for UI presentation.
|
|
71
|
+
*/
|
|
72
|
+
export declare const PRIORITY_LABELS: Record<Priority, string>;
|
|
73
|
+
/**
|
|
74
|
+
* Legacy priority values for backwards compatibility.
|
|
75
|
+
*/
|
|
76
|
+
export type LegacyPriority = 'URGENT' | 'HIGH' | 'MEDIUM' | 'LOW';
|
|
77
|
+
/**
|
|
78
|
+
* Mapping from legacy priority values to new P0-P3 format.
|
|
79
|
+
*/
|
|
80
|
+
export declare const LEGACY_PRIORITY_MAP: Record<LegacyPriority, Priority>;
|
|
81
|
+
/**
|
|
82
|
+
* Ticket categories for classification.
|
|
83
|
+
*/
|
|
84
|
+
export declare const TICKET_CATEGORIES: readonly ["feature", "bug", "refactor", "docs", "test", "chore", "performance", "ci", "build", "security", "database", "release"];
|
|
85
|
+
export type TicketCategory = typeof TICKET_CATEGORIES[number];
|
|
86
|
+
/**
|
|
87
|
+
* Check if a string is a valid Priority value.
|
|
88
|
+
*/
|
|
89
|
+
export declare function isValidPriority(value: string | undefined | null): value is Priority;
|
|
90
|
+
/**
|
|
91
|
+
* Check if a string is a legacy priority value.
|
|
92
|
+
*/
|
|
93
|
+
export declare function isLegacyPriority(value: string | undefined | null): value is LegacyPriority;
|
|
94
|
+
/**
|
|
95
|
+
* Normalize a priority value to the new P0-P3 format.
|
|
96
|
+
* Converts legacy values (URGENT/HIGH/MEDIUM/LOW) to P0-P3.
|
|
97
|
+
* Returns undefined for invalid values.
|
|
98
|
+
*/
|
|
99
|
+
export declare function normalizePriority(value: string | undefined | null): Priority | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* Fixed state categories - the semantic buckets that statuses belong to.
|
|
102
|
+
* These cannot be added, removed, or reordered.
|
|
103
|
+
*
|
|
104
|
+
* Order: triage < backlog < unstarted < started < completed < canceled
|
|
105
|
+
*/
|
|
106
|
+
export type StateCategory = 'triage' | 'backlog' | 'unstarted' | 'started' | 'completed' | 'canceled';
|
|
107
|
+
/**
|
|
108
|
+
* State category order for sorting columns/statuses
|
|
109
|
+
*/
|
|
110
|
+
export declare const STATE_CATEGORY_ORDER: readonly StateCategory[];
|
|
111
|
+
/**
|
|
112
|
+
* Shared workflow definition.
|
|
113
|
+
* Projects reference workflows via workflowId.
|
|
114
|
+
* Updating a workflow affects all projects using it.
|
|
115
|
+
*/
|
|
116
|
+
export interface Workflow {
|
|
117
|
+
id: string;
|
|
118
|
+
name: string;
|
|
119
|
+
description?: string;
|
|
120
|
+
isBuiltin: boolean;
|
|
121
|
+
createdAt: Date;
|
|
122
|
+
updatedAt: Date;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Status within a shared workflow.
|
|
126
|
+
* Each status belongs to exactly one StateCategory.
|
|
127
|
+
* Status names must be unique within a workflow.
|
|
128
|
+
* These are the board columns - workflows define the columns for all projects using them.
|
|
129
|
+
*/
|
|
130
|
+
export interface WorkflowStatus {
|
|
131
|
+
id: string;
|
|
132
|
+
workflowId: string;
|
|
133
|
+
name: string;
|
|
134
|
+
category: StateCategory;
|
|
135
|
+
position: number;
|
|
136
|
+
color?: string;
|
|
137
|
+
description?: string;
|
|
138
|
+
isDefault?: boolean;
|
|
139
|
+
createdAt: Date;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* @deprecated Legacy per-project status - use WorkflowStatus instead.
|
|
143
|
+
* Kept for backward compatibility during migration.
|
|
144
|
+
*/
|
|
145
|
+
export interface LegacyWorkflowStatus {
|
|
146
|
+
id: string;
|
|
147
|
+
projectId: string;
|
|
148
|
+
name: string;
|
|
149
|
+
category: StateCategory;
|
|
150
|
+
position: number;
|
|
151
|
+
color?: string;
|
|
152
|
+
description?: string;
|
|
153
|
+
isDefault?: boolean;
|
|
154
|
+
createdAt: Date;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Workflow template - a preset status configuration.
|
|
158
|
+
* Templates are copied when applied, not referenced.
|
|
159
|
+
*/
|
|
160
|
+
export interface WorkflowTemplate {
|
|
161
|
+
id: string;
|
|
162
|
+
name: string;
|
|
163
|
+
description?: string;
|
|
164
|
+
isBuiltin: boolean;
|
|
165
|
+
statuses: WorkflowTemplateStatus[];
|
|
166
|
+
createdAt: Date;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Status definition within a template (no projectId since templates are reusable)
|
|
170
|
+
*/
|
|
171
|
+
export interface WorkflowTemplateStatus {
|
|
172
|
+
name: string;
|
|
173
|
+
category: StateCategory;
|
|
174
|
+
position: number;
|
|
175
|
+
color?: string;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Project lifecycle status (fixed, not customizable)
|
|
179
|
+
* @deprecated Use phaseId reference to workspace's phase configuration instead.
|
|
180
|
+
*/
|
|
181
|
+
export type ProjectStatus = 'draft' | 'active' | 'completed' | 'archived';
|
|
182
|
+
/**
|
|
183
|
+
* Project lifecycle phase (workspace-scoped, customizable)
|
|
184
|
+
* Each phase belongs to exactly one StateCategory.
|
|
185
|
+
* Phase names must be unique within a workspace.
|
|
186
|
+
*/
|
|
187
|
+
export interface ProjectPhase {
|
|
188
|
+
id: string;
|
|
189
|
+
name: string;
|
|
190
|
+
category: StateCategory;
|
|
191
|
+
position: number;
|
|
192
|
+
color?: string;
|
|
193
|
+
description?: string;
|
|
194
|
+
isDefault?: boolean;
|
|
195
|
+
createdAt: Date;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Phase template - a preset phase configuration.
|
|
199
|
+
* Templates are copied when applied, not referenced.
|
|
200
|
+
*/
|
|
201
|
+
export interface PhaseTemplate {
|
|
202
|
+
id: string;
|
|
203
|
+
name: string;
|
|
204
|
+
description?: string;
|
|
205
|
+
isBuiltin: boolean;
|
|
206
|
+
phases: PhaseTemplatePhase[];
|
|
207
|
+
createdAt: Date;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Phase definition within a template (reusable across workspaces)
|
|
211
|
+
*/
|
|
212
|
+
export interface PhaseTemplatePhase {
|
|
213
|
+
name: string;
|
|
214
|
+
category: StateCategory;
|
|
215
|
+
position: number;
|
|
216
|
+
color?: string;
|
|
217
|
+
description?: string;
|
|
218
|
+
isDefault?: boolean;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Work action - defines what an agent should do with a ticket.
|
|
222
|
+
* Actions are reusable prompts that can be applied to any ticket.
|
|
223
|
+
*/
|
|
224
|
+
export interface WorkAction {
|
|
225
|
+
id: string;
|
|
226
|
+
name: string;
|
|
227
|
+
description?: string;
|
|
228
|
+
prompt: string;
|
|
229
|
+
endPrompt?: string;
|
|
230
|
+
suggestedForCategories?: StateCategory[];
|
|
231
|
+
defaultMoveToCategory?: StateCategory;
|
|
232
|
+
modifiesCode: boolean;
|
|
233
|
+
isBuiltin: boolean;
|
|
234
|
+
createdAt: Date;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Board represents a project's kanban board view.
|
|
238
|
+
* This is what gets rendered to board.md and displayed in the UI.
|
|
239
|
+
*/
|
|
240
|
+
export interface Board {
|
|
241
|
+
id: string;
|
|
242
|
+
name: string;
|
|
243
|
+
columns: Column[];
|
|
244
|
+
updatedAt: Date;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* BoardView represents a saved, filtered view of a project's board.
|
|
248
|
+
* Allows users to save common filter configurations like "My Tasks" or "High Priority".
|
|
249
|
+
*/
|
|
250
|
+
export interface BoardView {
|
|
251
|
+
id: string;
|
|
252
|
+
projectId: string;
|
|
253
|
+
name: string;
|
|
254
|
+
description?: string;
|
|
255
|
+
isDefault?: boolean;
|
|
256
|
+
filters: BoardViewFilters;
|
|
257
|
+
groupBy?: BoardViewGroupBy;
|
|
258
|
+
sortBy?: BoardViewSortBy;
|
|
259
|
+
createdAt: Date;
|
|
260
|
+
updatedAt: Date;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Filter configuration for a board view.
|
|
264
|
+
* All filters are optional - unset filters show all items.
|
|
265
|
+
*/
|
|
266
|
+
export interface BoardViewFilters {
|
|
267
|
+
assignee?: string;
|
|
268
|
+
owner?: string;
|
|
269
|
+
priority?: string;
|
|
270
|
+
statusCategory?: StateCategory;
|
|
271
|
+
statusId?: string;
|
|
272
|
+
columnIds?: string[];
|
|
273
|
+
epicId?: string;
|
|
274
|
+
search?: string;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Grouping options for board view
|
|
278
|
+
*/
|
|
279
|
+
export type BoardViewGroupBy = 'assignee' | 'priority' | 'epic' | 'status' | 'category';
|
|
280
|
+
/**
|
|
281
|
+
* Sorting options for board view
|
|
282
|
+
*/
|
|
283
|
+
export type BoardViewSortBy = 'priority' | 'created' | 'updated' | 'title' | 'assignee';
|
|
284
|
+
export interface Column {
|
|
285
|
+
id: string;
|
|
286
|
+
name: string;
|
|
287
|
+
position: number;
|
|
288
|
+
status?: string;
|
|
289
|
+
tickets: Ticket[];
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Ticket represents a work item (core entity - no board position here)
|
|
293
|
+
*/
|
|
294
|
+
export interface Ticket {
|
|
295
|
+
id: string;
|
|
296
|
+
title: string;
|
|
297
|
+
description?: string;
|
|
298
|
+
priority?: string;
|
|
299
|
+
category?: string;
|
|
300
|
+
projectId?: string;
|
|
301
|
+
projectName?: string;
|
|
302
|
+
statusId: string;
|
|
303
|
+
statusName?: string;
|
|
304
|
+
statusCategory?: StateCategory;
|
|
305
|
+
/**
|
|
306
|
+
* @deprecated Use statusCategory for logic, statusName for display
|
|
307
|
+
* This is a temporary alias that maps old status values to categories
|
|
308
|
+
*/
|
|
309
|
+
status?: TicketStatus;
|
|
310
|
+
owner?: string;
|
|
311
|
+
assignee?: string;
|
|
312
|
+
branch?: string;
|
|
313
|
+
specId?: string;
|
|
314
|
+
epicId?: string;
|
|
315
|
+
subtasks: Subtask[];
|
|
316
|
+
labels: string[];
|
|
317
|
+
metadata: Record<string, string>;
|
|
318
|
+
blockedBy?: string[];
|
|
319
|
+
affectedPaths?: TicketAffectedPath[];
|
|
320
|
+
acceptanceCriteria?: AcceptanceCriterion[];
|
|
321
|
+
createdAt: Date;
|
|
322
|
+
updatedAt: Date;
|
|
323
|
+
lastSyncedFromSpec?: Date;
|
|
324
|
+
lastSyncedFromBoard?: Date;
|
|
325
|
+
position?: number;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* BoardTicket represents where a ticket appears on the board (view state)
|
|
329
|
+
*/
|
|
330
|
+
export interface BoardTicket {
|
|
331
|
+
projectId: string;
|
|
332
|
+
ticketId: string;
|
|
333
|
+
columnId: string;
|
|
334
|
+
position: number;
|
|
335
|
+
}
|
|
336
|
+
export interface Subtask {
|
|
337
|
+
id: string;
|
|
338
|
+
title: string;
|
|
339
|
+
done: boolean;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Input for creating a new ticket.
|
|
343
|
+
* statusName is the status/column name to place the ticket in.
|
|
344
|
+
*/
|
|
345
|
+
export interface CreateTicketInput {
|
|
346
|
+
id?: string;
|
|
347
|
+
title: string;
|
|
348
|
+
statusName?: string;
|
|
349
|
+
description?: string;
|
|
350
|
+
priority?: string;
|
|
351
|
+
category?: string;
|
|
352
|
+
statusId?: string;
|
|
353
|
+
owner?: string;
|
|
354
|
+
assignee?: string;
|
|
355
|
+
specId?: string;
|
|
356
|
+
epicId?: string;
|
|
357
|
+
labels?: string[];
|
|
358
|
+
subtasks?: Subtask[];
|
|
359
|
+
metadata?: Record<string, string>;
|
|
360
|
+
lastSyncedFromSpec?: Date;
|
|
361
|
+
lastSyncedFromBoard?: Date;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Subtask definition within a ticket template
|
|
365
|
+
*/
|
|
366
|
+
export interface TicketTemplateSubtask {
|
|
367
|
+
title: string;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Ticket template - a reusable configuration for creating tickets.
|
|
371
|
+
* Templates can be built-in (system-provided) or custom (user-created).
|
|
372
|
+
*/
|
|
373
|
+
export interface TicketTemplate {
|
|
374
|
+
id: string;
|
|
375
|
+
name: string;
|
|
376
|
+
description?: string;
|
|
377
|
+
isBuiltin: boolean;
|
|
378
|
+
titlePattern?: string;
|
|
379
|
+
descriptionTemplate?: string;
|
|
380
|
+
defaultPriority?: string;
|
|
381
|
+
defaultCategory?: string;
|
|
382
|
+
defaultStatusId?: string;
|
|
383
|
+
defaultAssignee?: string;
|
|
384
|
+
defaultOwner?: string;
|
|
385
|
+
defaultLabels: string[];
|
|
386
|
+
suggestedSubtasks: TicketTemplateSubtask[];
|
|
387
|
+
createdAt: Date;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Filter options for listing ticket templates
|
|
391
|
+
*/
|
|
392
|
+
export interface TicketTemplateFilter {
|
|
393
|
+
isBuiltin?: boolean;
|
|
394
|
+
search?: string;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Affected path hint for agent context scoping.
|
|
398
|
+
* Tells agents which files/directories are relevant to a ticket.
|
|
399
|
+
*/
|
|
400
|
+
export interface TicketAffectedPath {
|
|
401
|
+
id?: number;
|
|
402
|
+
ticketId: string;
|
|
403
|
+
pathPattern: string;
|
|
404
|
+
pathType: 'file' | 'directory' | 'glob';
|
|
405
|
+
createdAt?: Date;
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Structured acceptance criterion for verifiable completion.
|
|
409
|
+
* Allows programmatic verification rather than markdown parsing.
|
|
410
|
+
*/
|
|
411
|
+
export interface AcceptanceCriterion {
|
|
412
|
+
id: string;
|
|
413
|
+
ticketId: string;
|
|
414
|
+
criterion: string;
|
|
415
|
+
verifiable: boolean;
|
|
416
|
+
verified: boolean;
|
|
417
|
+
verifiedAt?: Date;
|
|
418
|
+
verifiedBy?: string;
|
|
419
|
+
position: number;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Ticket dependency types for same-entity relationships
|
|
423
|
+
*/
|
|
424
|
+
export type TicketDependencyType = 'blocks' | 'relates_to' | 'duplicates';
|
|
425
|
+
/**
|
|
426
|
+
* Ticket dependency for scheduling.
|
|
427
|
+
* Represents a dependency relationship between tickets.
|
|
428
|
+
*/
|
|
429
|
+
export interface TicketDependency {
|
|
430
|
+
ticketId: string;
|
|
431
|
+
dependsOnTicketId: string;
|
|
432
|
+
dependencyType: TicketDependencyType;
|
|
433
|
+
createdAt?: Date;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Spec dependency types
|
|
437
|
+
*/
|
|
438
|
+
export type SpecDependencyType = 'depends_on' | 'relates_to' | 'duplicates';
|
|
439
|
+
/**
|
|
440
|
+
* Spec dependency for design ordering.
|
|
441
|
+
*/
|
|
442
|
+
export interface SpecDependency {
|
|
443
|
+
specId: string;
|
|
444
|
+
dependsOnSpecId: string;
|
|
445
|
+
dependencyType: SpecDependencyType;
|
|
446
|
+
createdAt?: Date;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Epic dependency types
|
|
450
|
+
*/
|
|
451
|
+
export type EpicDependencyType = 'blocks' | 'relates_to' | 'duplicates';
|
|
452
|
+
/**
|
|
453
|
+
* Epic dependency for phased work.
|
|
454
|
+
*/
|
|
455
|
+
export interface EpicDependency {
|
|
456
|
+
epicId: string;
|
|
457
|
+
dependsOnEpicId: string;
|
|
458
|
+
dependencyType: EpicDependencyType;
|
|
459
|
+
createdAt?: Date;
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Spec type - determines directory location and format
|
|
463
|
+
*/
|
|
464
|
+
export type SpecType = 'product' | 'platform' | 'infra' | 'integration';
|
|
465
|
+
/**
|
|
466
|
+
* Spec status - lifecycle state
|
|
467
|
+
*/
|
|
468
|
+
export type SpecStatus = 'draft' | 'active' | 'implemented';
|
|
469
|
+
/**
|
|
470
|
+
* Spec - a living document describing ideal state
|
|
471
|
+
*/
|
|
472
|
+
export interface Spec {
|
|
473
|
+
id: string;
|
|
474
|
+
title: string;
|
|
475
|
+
status: SpecStatus;
|
|
476
|
+
type?: SpecType;
|
|
477
|
+
tags?: string[];
|
|
478
|
+
dependsOn?: string[];
|
|
479
|
+
problem?: string;
|
|
480
|
+
solution?: string;
|
|
481
|
+
decisions?: string;
|
|
482
|
+
notNow?: string;
|
|
483
|
+
uiUx?: string;
|
|
484
|
+
acceptanceCriteria?: string;
|
|
485
|
+
openQuestions?: string;
|
|
486
|
+
requirementsFunctional?: string;
|
|
487
|
+
requirementsTechnical?: string;
|
|
488
|
+
context?: string;
|
|
489
|
+
createdAt: Date;
|
|
490
|
+
updatedAt: Date;
|
|
491
|
+
}
|
|
492
|
+
export interface BoardConfig {
|
|
493
|
+
name?: string;
|
|
494
|
+
columns?: string[];
|
|
495
|
+
mode?: 'in-repo' | 'separate-repo';
|
|
496
|
+
repo?: string;
|
|
497
|
+
branch?: string;
|
|
498
|
+
path?: string;
|
|
499
|
+
}
|
|
500
|
+
export interface SyncConfig {
|
|
501
|
+
autoPull: boolean;
|
|
502
|
+
autoPush: boolean;
|
|
503
|
+
conflictStrategy: 'manual' | 'theirs' | 'ours';
|
|
504
|
+
}
|
|
505
|
+
export interface PMOConfig {
|
|
506
|
+
version: number;
|
|
507
|
+
storage: {
|
|
508
|
+
type: 'sqlite' | 'git' | 'cloud' | 'adapter';
|
|
509
|
+
mode?: 'in-repo' | 'separate-repo';
|
|
510
|
+
repo?: string;
|
|
511
|
+
branch?: string;
|
|
512
|
+
path?: string;
|
|
513
|
+
connection?: string;
|
|
514
|
+
};
|
|
515
|
+
board: BoardConfig;
|
|
516
|
+
sync: SyncConfig;
|
|
517
|
+
}
|
|
518
|
+
export interface TicketFilter {
|
|
519
|
+
statusId?: string;
|
|
520
|
+
statusCategory?: StateCategory;
|
|
521
|
+
priority?: string;
|
|
522
|
+
category?: string;
|
|
523
|
+
owner?: string;
|
|
524
|
+
assignee?: string;
|
|
525
|
+
search?: string;
|
|
526
|
+
spec?: string;
|
|
527
|
+
epic?: string;
|
|
528
|
+
column?: string;
|
|
529
|
+
projectId?: string;
|
|
530
|
+
allProjects?: boolean;
|
|
531
|
+
}
|
|
532
|
+
export interface SpecFilter {
|
|
533
|
+
status?: SpecStatus;
|
|
534
|
+
type?: SpecType;
|
|
535
|
+
tags?: string[];
|
|
536
|
+
search?: string;
|
|
537
|
+
}
|
|
538
|
+
export interface EpicFilter {
|
|
539
|
+
status?: EpicStatus;
|
|
540
|
+
search?: string;
|
|
541
|
+
}
|
|
542
|
+
export interface StatusFilter {
|
|
543
|
+
workflowId?: string;
|
|
544
|
+
projectId?: string;
|
|
545
|
+
category?: StateCategory;
|
|
546
|
+
search?: string;
|
|
547
|
+
}
|
|
548
|
+
export interface WorkflowFilter {
|
|
549
|
+
isBuiltin?: boolean;
|
|
550
|
+
search?: string;
|
|
551
|
+
}
|
|
552
|
+
export interface TemplateFilter {
|
|
553
|
+
isBuiltin?: boolean;
|
|
554
|
+
search?: string;
|
|
555
|
+
}
|
|
556
|
+
export interface PhaseFilter {
|
|
557
|
+
category?: StateCategory;
|
|
558
|
+
search?: string;
|
|
559
|
+
}
|
|
560
|
+
export interface PhaseTemplateFilter {
|
|
561
|
+
isBuiltin?: boolean;
|
|
562
|
+
search?: string;
|
|
563
|
+
}
|
|
564
|
+
export interface WorkActionFilter {
|
|
565
|
+
isBuiltin?: boolean;
|
|
566
|
+
suggestedFor?: StateCategory;
|
|
567
|
+
search?: string;
|
|
568
|
+
}
|
|
569
|
+
export interface ProjectFilter {
|
|
570
|
+
phaseId?: string;
|
|
571
|
+
isArchived?: boolean;
|
|
572
|
+
search?: string;
|
|
573
|
+
}
|
|
574
|
+
export interface BoardViewFilter {
|
|
575
|
+
projectId?: string;
|
|
576
|
+
isDefault?: boolean;
|
|
577
|
+
search?: string;
|
|
578
|
+
}
|
|
579
|
+
export interface SyncResult {
|
|
580
|
+
success: boolean;
|
|
581
|
+
changes: number;
|
|
582
|
+
conflicts?: Conflict[];
|
|
583
|
+
}
|
|
584
|
+
export interface SyncStatus {
|
|
585
|
+
ahead: number;
|
|
586
|
+
behind: number;
|
|
587
|
+
conflicts: boolean;
|
|
588
|
+
}
|
|
589
|
+
export interface Conflict {
|
|
590
|
+
type: string;
|
|
591
|
+
ticketId?: string;
|
|
592
|
+
description?: string;
|
|
593
|
+
message?: string;
|
|
594
|
+
}
|
|
595
|
+
export type PMOErrorCode = 'NOT_FOUND' | 'CONFLICT' | 'INVALID' | 'SYNC_FAILED' | 'NO_PROJECT';
|
|
596
|
+
export declare class PMOError extends Error {
|
|
597
|
+
code: PMOErrorCode;
|
|
598
|
+
ticketId?: string | undefined;
|
|
599
|
+
constructor(code: PMOErrorCode, message: string, ticketId?: string | undefined);
|
|
600
|
+
}
|
|
601
|
+
export interface PMOStorage {
|
|
602
|
+
readonly type: 'sqlite' | 'git' | 'cloud' | 'adapter';
|
|
603
|
+
init(projectId: string, config: BoardConfig): Promise<Board>;
|
|
604
|
+
getBoard(projectId: string): Promise<Board>;
|
|
605
|
+
getBoardMarkdown(projectId: string): Promise<string>;
|
|
606
|
+
getColumnNames(projectId: string): string[];
|
|
607
|
+
createColumn(projectId: string, name: string, position?: number): Promise<Column>;
|
|
608
|
+
renameColumn(projectId: string, id: string, name: string): Promise<Column>;
|
|
609
|
+
moveColumn(projectId: string, id: string, position: number): Promise<Column>;
|
|
610
|
+
deleteColumn(projectId: string, id: string, cascade?: boolean): Promise<void>;
|
|
611
|
+
createTicket(projectId: string, ticket: CreateTicketInput): Promise<Ticket>;
|
|
612
|
+
getTicket(id: string): Promise<Ticket | null>;
|
|
613
|
+
updateTicket(id: string, changes: Partial<Ticket>): Promise<Ticket>;
|
|
614
|
+
moveTicket(projectId: string, id: string, column: string, position?: number): Promise<Ticket>;
|
|
615
|
+
moveTicketToProject(ticketId: string, newProjectId: string): Promise<Ticket>;
|
|
616
|
+
deleteTicket(id: string): Promise<void>;
|
|
617
|
+
listTickets(projectId: string | undefined, filter?: TicketFilter): Promise<Ticket[]>;
|
|
618
|
+
addSubtask(ticketId: string, title: string): Promise<Subtask>;
|
|
619
|
+
toggleSubtask(ticketId: string, subtaskId: string): Promise<Subtask>;
|
|
620
|
+
removeSubtask(ticketId: string, subtaskId: string): Promise<void>;
|
|
621
|
+
createSpec(spec: Partial<Spec>): Promise<Spec>;
|
|
622
|
+
getSpec(id: string): Promise<Spec | null>;
|
|
623
|
+
listSpecs(filter?: SpecFilter): Promise<Spec[]>;
|
|
624
|
+
updateSpec(id: string, changes: Partial<Spec>): Promise<Spec>;
|
|
625
|
+
deleteSpec(id: string): Promise<void>;
|
|
626
|
+
linkTicketToSpec(ticketId: string, specId: string): Promise<void>;
|
|
627
|
+
unlinkTicketFromSpec(ticketId: string, specId: string): Promise<void>;
|
|
628
|
+
getTicketsForSpec(projectId: string, specId: string): Promise<Ticket[]>;
|
|
629
|
+
getSpecsForTicket(ticketId: string): Promise<Spec[]>;
|
|
630
|
+
addSpecDependency(specId: string, dependsOnId: string): Promise<void>;
|
|
631
|
+
removeSpecDependency(specId: string, dependsOnId: string): Promise<void>;
|
|
632
|
+
getSpecDependencies(specId: string): Promise<Spec[]>;
|
|
633
|
+
getSpecDependents(specId: string): Promise<Spec[]>;
|
|
634
|
+
linkProjectToSpec(projectId: string, specId: string): Promise<void>;
|
|
635
|
+
unlinkProjectFromSpec(projectId: string, specId: string): Promise<void>;
|
|
636
|
+
getSpecsForProject(projectId: string): Promise<Spec[]>;
|
|
637
|
+
getProjectsForSpec(specId: string): Promise<Project[]>;
|
|
638
|
+
createEpic(projectId: string, epic: Partial<Epic>): Promise<Epic>;
|
|
639
|
+
getEpic(id: string): Promise<Epic | null>;
|
|
640
|
+
listEpics(projectId: string, filter?: EpicFilter): Promise<Epic[]>;
|
|
641
|
+
reorderEpic(projectId: string, epicId: string, newPosition: number): Promise<Epic>;
|
|
642
|
+
updateEpic(id: string, changes: Partial<Epic>): Promise<Epic>;
|
|
643
|
+
deleteEpic(id: string): Promise<void>;
|
|
644
|
+
getTicketsForEpic(projectId: string, epicId: string): Promise<Ticket[]>;
|
|
645
|
+
linkTicketToEpic(ticketId: string, epicId: string): Promise<void>;
|
|
646
|
+
unlinkTicketFromEpic(ticketId: string): Promise<void>;
|
|
647
|
+
listWorkflows(filter?: WorkflowFilter): Promise<Workflow[]>;
|
|
648
|
+
getWorkflow(id: string): Promise<Workflow | null>;
|
|
649
|
+
createWorkflow(workflow: Partial<Workflow>): Promise<Workflow>;
|
|
650
|
+
updateWorkflow(id: string, changes: Partial<Workflow>): Promise<Workflow>;
|
|
651
|
+
deleteWorkflow(id: string): Promise<void>;
|
|
652
|
+
getProjectWorkflow(projectId: string): Promise<Workflow | null>;
|
|
653
|
+
listStatuses(workflowId: string): Promise<WorkflowStatus[]>;
|
|
654
|
+
getStatus(id: string): Promise<WorkflowStatus | null>;
|
|
655
|
+
createStatus(workflowId: string, status: Partial<WorkflowStatus>): Promise<WorkflowStatus>;
|
|
656
|
+
updateStatus(id: string, changes: Partial<WorkflowStatus>): Promise<WorkflowStatus>;
|
|
657
|
+
deleteStatus(id: string): Promise<void>;
|
|
658
|
+
reorderStatus(id: string, newPosition: number): Promise<WorkflowStatus>;
|
|
659
|
+
getDefaultStatus(workflowId: string): Promise<WorkflowStatus | null>;
|
|
660
|
+
listTicketTemplates(filter?: TicketTemplateFilter): Promise<TicketTemplate[]>;
|
|
661
|
+
getTicketTemplate(id: string): Promise<TicketTemplate | null>;
|
|
662
|
+
createTicketTemplate(template: Partial<TicketTemplate> & {
|
|
663
|
+
name: string;
|
|
664
|
+
}): Promise<TicketTemplate>;
|
|
665
|
+
createTicketTemplateFromTicket(ticketId: string, name: string, description?: string): Promise<TicketTemplate>;
|
|
666
|
+
updateTicketTemplate(id: string, changes: Partial<TicketTemplate>): Promise<TicketTemplate>;
|
|
667
|
+
deleteTicketTemplate(id: string): Promise<void>;
|
|
668
|
+
listPhases(filter?: PhaseFilter): Promise<ProjectPhase[]>;
|
|
669
|
+
getPhase(id: string): Promise<ProjectPhase | null>;
|
|
670
|
+
createPhase(phase: Partial<ProjectPhase>): Promise<ProjectPhase>;
|
|
671
|
+
updatePhase(id: string, changes: Partial<ProjectPhase>): Promise<ProjectPhase>;
|
|
672
|
+
deletePhase(id: string): Promise<void>;
|
|
673
|
+
reorderPhase(id: string, newPosition: number): Promise<ProjectPhase>;
|
|
674
|
+
getDefaultPhase(): Promise<ProjectPhase | null>;
|
|
675
|
+
listPhaseTemplates(filter?: PhaseTemplateFilter): Promise<PhaseTemplate[]>;
|
|
676
|
+
getPhaseTemplate(id: string): Promise<PhaseTemplate | null>;
|
|
677
|
+
applyPhaseTemplate(templateId: string): Promise<ProjectPhase[]>;
|
|
678
|
+
savePhaseTemplate(name: string, description?: string): Promise<PhaseTemplate>;
|
|
679
|
+
updatePhaseTemplate(id: string, changes: {
|
|
680
|
+
name?: string;
|
|
681
|
+
description?: string;
|
|
682
|
+
}): Promise<PhaseTemplate>;
|
|
683
|
+
deletePhaseTemplate(id: string): Promise<void>;
|
|
684
|
+
listActions(filter?: WorkActionFilter): Promise<WorkAction[]>;
|
|
685
|
+
getAction(id: string): Promise<WorkAction | null>;
|
|
686
|
+
createAction(action: Partial<WorkAction>): Promise<WorkAction>;
|
|
687
|
+
updateAction(id: string, changes: Partial<WorkAction>): Promise<WorkAction>;
|
|
688
|
+
deleteAction(id: string): Promise<void>;
|
|
689
|
+
getSuggestedAction(category: StateCategory): Promise<WorkAction | null>;
|
|
690
|
+
getProject(id: string): Promise<Project | null>;
|
|
691
|
+
createProject(project: Partial<Project> & {
|
|
692
|
+
template?: string;
|
|
693
|
+
}): Promise<Board>;
|
|
694
|
+
updateProject(id: string, changes: Partial<Project>): Promise<Project>;
|
|
695
|
+
listProjects(filter?: ProjectFilter): Promise<Project[]>;
|
|
696
|
+
archiveProject(id: string): Promise<Project>;
|
|
697
|
+
unarchiveProject(id: string): Promise<Project>;
|
|
698
|
+
listBoardViews(filter?: BoardViewFilter): Promise<BoardView[]>;
|
|
699
|
+
getBoardView(id: string): Promise<BoardView | null>;
|
|
700
|
+
createBoardView(view: Partial<BoardView>): Promise<BoardView>;
|
|
701
|
+
updateBoardView(id: string, changes: Partial<BoardView>): Promise<BoardView>;
|
|
702
|
+
deleteBoardView(id: string): Promise<void>;
|
|
703
|
+
getDefaultBoardView(projectId: string): Promise<BoardView | null>;
|
|
704
|
+
getBoardWithView(projectId: string, viewId?: string, filters?: BoardViewFilters): Promise<Board>;
|
|
705
|
+
pull(): Promise<SyncResult>;
|
|
706
|
+
push(): Promise<SyncResult>;
|
|
707
|
+
status(): Promise<SyncStatus>;
|
|
708
|
+
close(): Promise<void>;
|
|
709
|
+
}
|
|
710
|
+
export type UpdateTicketInput = Omit<Partial<Ticket>, 'id' | 'createdAt' | 'updatedAt'>;
|