@proletariat/cli 0.3.16 → 0.3.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/action/create.d.ts +1 -0
- package/dist/commands/action/create.js +74 -38
- package/dist/commands/action/delete.d.ts +1 -0
- package/dist/commands/action/delete.js +23 -24
- package/dist/commands/action/index.d.ts +1 -0
- package/dist/commands/action/index.js +5 -10
- package/dist/commands/action/list.d.ts +1 -0
- package/dist/commands/action/list.js +3 -1
- package/dist/commands/action/run.d.ts +1 -0
- package/dist/commands/action/run.js +44 -32
- package/dist/commands/action/show.d.ts +2 -0
- package/dist/commands/action/update.d.ts +1 -0
- package/dist/commands/action/update.js +80 -39
- package/dist/commands/agent/auth.d.ts +2 -0
- package/dist/commands/agent/auth.js +44 -3
- package/dist/commands/agent/discover.d.ts +2 -0
- package/dist/commands/agent/discover.js +35 -3
- package/dist/commands/agent/index.d.ts +1 -0
- package/dist/commands/agent/index.js +25 -45
- package/dist/commands/agent/list.d.ts +8 -3
- package/dist/commands/agent/list.js +16 -29
- package/dist/commands/agent/login.d.ts +1 -0
- package/dist/commands/agent/login.js +14 -32
- package/dist/commands/agent/rebuild.d.ts +1 -0
- package/dist/commands/agent/rebuild.js +2 -2
- package/dist/commands/agent/remove.d.ts +17 -0
- package/dist/commands/agent/remove.js +144 -0
- package/dist/commands/agent/restart.d.ts +1 -0
- package/dist/commands/agent/restart.js +2 -2
- package/dist/commands/agent/shell.d.ts +1 -0
- package/dist/commands/agent/shell.js +63 -76
- package/dist/commands/agent/staff/add.d.ts +1 -0
- package/dist/commands/agent/staff/add.js +7 -1
- package/dist/commands/agent/staff/index.d.ts +1 -0
- package/dist/commands/agent/staff/index.js +5 -4
- package/dist/commands/agent/staff/remove.d.ts +1 -0
- package/dist/commands/agent/status.d.ts +1 -0
- package/dist/commands/agent/status.js +11 -23
- package/dist/commands/agent/temp/cleanup.d.ts +1 -0
- package/dist/commands/agent/temp/index.d.ts +1 -0
- package/dist/commands/agent/temp/index.js +4 -3
- package/dist/commands/agent/themes/index.d.ts +1 -0
- package/dist/commands/agent/themes/index.js +9 -3
- package/dist/commands/agent/themes/set.d.ts +1 -0
- package/dist/commands/agent/themes/set.js +7 -1
- package/dist/commands/agent/visit.d.ts +1 -0
- package/dist/commands/agent/visit.js +11 -23
- package/dist/commands/autocomplete/setup.d.ts +11 -0
- package/dist/commands/autocomplete/setup.js +113 -8
- package/dist/commands/board/index.d.ts +4 -0
- package/dist/commands/board/index.js +32 -30
- package/dist/commands/board/watch.d.ts +2 -0
- package/dist/commands/branch/create.d.ts +1 -0
- package/dist/commands/branch/create.js +33 -41
- package/dist/commands/branch/index.d.ts +1 -0
- package/dist/commands/branch/list.d.ts +2 -0
- package/dist/commands/branch/validate.d.ts +2 -0
- package/dist/commands/branch/where.d.ts +1 -0
- package/dist/commands/claude.d.ts +6 -0
- package/dist/commands/claude.js +166 -116
- package/dist/commands/commit.d.ts +6 -0
- package/dist/commands/commit.js +68 -73
- package/dist/commands/config/index.d.ts +13 -0
- package/dist/commands/config/index.js +142 -98
- package/dist/commands/docker/clean.d.ts +2 -1
- package/dist/commands/docker/clean.js +20 -29
- package/dist/commands/docker/index.d.ts +1 -0
- package/dist/commands/docker/index.js +37 -41
- package/dist/commands/docker/prune.d.ts +2 -1
- package/dist/commands/docker/prune.js +20 -27
- package/dist/commands/docker/restart.d.ts +2 -1
- package/dist/commands/docker/restart.js +20 -29
- package/dist/commands/docker/stop.d.ts +2 -1
- package/dist/commands/docker/stop.js +20 -29
- package/dist/commands/epic/activate.d.ts +1 -0
- package/dist/commands/epic/archive.d.ts +1 -0
- package/dist/commands/epic/create.d.ts +1 -0
- package/dist/commands/epic/index.d.ts +1 -0
- package/dist/commands/epic/link/block.d.ts +1 -0
- package/dist/commands/epic/link/duplicates.d.ts +1 -0
- package/dist/commands/epic/link/index.d.ts +1 -0
- package/dist/commands/epic/link/relates.d.ts +1 -0
- package/dist/commands/epic/link/remove.d.ts +1 -0
- package/dist/commands/epic/list.d.ts +2 -0
- package/dist/commands/epic/move.d.ts +1 -0
- package/dist/commands/epic/progress.d.ts +1 -0
- package/dist/commands/epic/project.d.ts +1 -0
- package/dist/commands/epic/reorder.d.ts +1 -0
- package/dist/commands/epic/spec.d.ts +1 -0
- package/dist/commands/epic/ticket.d.ts +1 -0
- package/dist/commands/epic/view.d.ts +1 -0
- package/dist/commands/execution/index.d.ts +1 -0
- package/dist/commands/execution/index.js +9 -25
- package/dist/commands/execution/list.d.ts +2 -0
- package/dist/commands/execution/logs.d.ts +1 -0
- package/dist/commands/execution/logs.js +6 -16
- package/dist/commands/execution/stop.d.ts +1 -0
- package/dist/commands/execution/stop.js +4 -15
- package/dist/commands/gh/index.d.ts +1 -0
- package/dist/commands/gh/index.js +27 -27
- package/dist/commands/gh/login.d.ts +4 -0
- package/dist/commands/gh/login.js +31 -0
- package/dist/commands/gh/status.d.ts +4 -0
- package/dist/commands/gh/status.js +27 -4
- package/dist/commands/gh/token.d.ts +4 -0
- package/dist/commands/gh/token.js +49 -5
- package/dist/commands/phase/create.d.ts +1 -1
- package/dist/commands/phase/create.js +116 -74
- package/dist/commands/phase/delete.d.ts +1 -0
- package/dist/commands/phase/delete.js +23 -22
- package/dist/commands/phase/list.d.ts +1 -0
- package/dist/commands/phase/list.js +3 -5
- package/dist/commands/phase/move.d.ts +1 -0
- package/dist/commands/phase/move.js +39 -39
- package/dist/commands/phase/template/apply.d.ts +1 -0
- package/dist/commands/phase/template/create.d.ts +2 -0
- package/dist/commands/phase/template/delete.d.ts +1 -0
- package/dist/commands/phase/template/index.d.ts +1 -0
- package/dist/commands/phase/template/list.d.ts +1 -0
- package/dist/commands/phase/template/update.d.ts +2 -0
- package/dist/commands/phase/update.d.ts +1 -1
- package/dist/commands/phase/update.js +89 -55
- package/dist/commands/pmo/init.d.ts +2 -0
- package/dist/commands/pmo/init.js +84 -22
- package/dist/commands/pr/create.d.ts +12 -3
- package/dist/commands/pr/create.js +130 -147
- package/dist/commands/pr/index.d.ts +6 -3
- package/dist/commands/pr/index.js +41 -39
- package/dist/commands/pr/link.d.ts +7 -3
- package/dist/commands/pr/link.js +126 -150
- package/dist/commands/pr/status.d.ts +6 -3
- package/dist/commands/pr/status.js +101 -126
- package/dist/commands/project/archive.d.ts +1 -0
- package/dist/commands/project/archive.js +15 -20
- package/dist/commands/project/create.d.ts +1 -0
- package/dist/commands/project/create.js +13 -5
- package/dist/commands/project/delete.d.ts +1 -0
- package/dist/commands/project/delete.js +14 -28
- package/dist/commands/project/index.d.ts +1 -0
- package/dist/commands/project/index.js +0 -5
- package/dist/commands/project/list.d.ts +2 -0
- package/dist/commands/project/list.js +21 -3
- package/dist/commands/project/spec.d.ts +1 -0
- package/dist/commands/project/spec.js +17 -23
- package/dist/commands/project/unarchive.d.ts +2 -0
- package/dist/commands/project/unarchive.js +21 -2
- package/dist/commands/project/view.d.ts +1 -0
- package/dist/commands/project/view.js +34 -22
- package/dist/commands/repo/add.d.ts +2 -0
- package/dist/commands/repo/add.js +44 -1
- package/dist/commands/repo/index.d.ts +1 -0
- package/dist/commands/repo/index.js +20 -38
- package/dist/commands/repo/list.d.ts +2 -0
- package/dist/commands/repo/remove.d.ts +1 -0
- package/dist/commands/repo/remove.js +45 -63
- package/dist/commands/repo/view.d.ts +2 -0
- package/dist/commands/repo/view.js +30 -5
- package/dist/commands/roadmap/add-project.d.ts +1 -0
- package/dist/commands/roadmap/create.d.ts +1 -0
- package/dist/commands/roadmap/delete.d.ts +1 -0
- package/dist/commands/roadmap/generate.d.ts +1 -0
- package/dist/commands/roadmap/index.d.ts +1 -0
- package/dist/commands/roadmap/list.d.ts +2 -0
- package/dist/commands/roadmap/remove-project.d.ts +1 -0
- package/dist/commands/roadmap/reorder.d.ts +1 -0
- package/dist/commands/roadmap/update.d.ts +1 -0
- package/dist/commands/roadmap/view.d.ts +1 -0
- package/dist/commands/session/attach.d.ts +1 -0
- package/dist/commands/session/index.d.ts +1 -0
- package/dist/commands/session/index.js +8 -25
- package/dist/commands/session/list.d.ts +2 -0
- package/dist/commands/spec/create.d.ts +1 -1
- package/dist/commands/spec/create.js +64 -65
- package/dist/commands/spec/index.d.ts +1 -0
- package/dist/commands/spec/index.js +36 -22
- package/dist/commands/spec/link/depends.d.ts +1 -0
- package/dist/commands/spec/link/depends.js +6 -6
- package/dist/commands/spec/link/duplicates.d.ts +1 -0
- package/dist/commands/spec/link/duplicates.js +6 -6
- package/dist/commands/spec/link/index.d.ts +2 -1
- package/dist/commands/spec/link/index.js +0 -4
- package/dist/commands/spec/link/relates.d.ts +1 -0
- package/dist/commands/spec/link/relates.js +6 -6
- package/dist/commands/spec/link/remove.d.ts +2 -1
- package/dist/commands/spec/link/remove.js +6 -6
- package/dist/commands/spec/list.d.ts +2 -0
- package/dist/commands/spec/list.js +25 -0
- package/dist/commands/spec/plan.d.ts +2 -1
- package/dist/commands/spec/plan.js +19 -26
- package/dist/commands/spec/ticket.d.ts +2 -1
- package/dist/commands/spec/ticket.js +48 -34
- package/dist/commands/spec/view.d.ts +2 -1
- package/dist/commands/spec/view.js +25 -16
- package/dist/commands/status/create.d.ts +1 -1
- package/dist/commands/status/create.js +80 -64
- package/dist/commands/status/delete.d.ts +2 -1
- package/dist/commands/status/delete.js +26 -22
- package/dist/commands/status/index.d.ts +1 -0
- package/dist/commands/status/index.js +26 -19
- package/dist/commands/status/list.d.ts +1 -0
- package/dist/commands/status/list.js +12 -7
- package/dist/commands/status/move.d.ts +2 -1
- package/dist/commands/status/move.js +62 -61
- package/dist/commands/status/update.d.ts +2 -2
- package/dist/commands/status/update.js +110 -77
- package/dist/commands/template/delete.d.ts +1 -0
- package/dist/commands/template/delete.js +47 -48
- package/dist/commands/template/index.d.ts +1 -0
- package/dist/commands/template/index.js +26 -33
- package/dist/commands/template/list.d.ts +1 -0
- package/dist/commands/template/phase/create.d.ts +1 -0
- package/dist/commands/template/phase/create.js +6 -0
- package/dist/commands/template/phase/index.d.ts +1 -0
- package/dist/commands/template/phase/index.js +27 -26
- package/dist/commands/template/phase/update.d.ts +1 -0
- package/dist/commands/template/phase/update.js +6 -0
- package/dist/commands/template/ticket/index.d.ts +1 -0
- package/dist/commands/template/ticket/index.js +27 -26
- package/dist/commands/template/ticket/save.d.ts +1 -0
- package/dist/commands/template/ticket/save.js +6 -0
- package/dist/commands/terminal/title.d.ts +26 -0
- package/dist/commands/terminal/title.js +37 -3
- package/dist/commands/ticket/bulk.d.ts +1 -0
- package/dist/commands/ticket/complete.d.ts +1 -0
- package/dist/commands/ticket/complete.js +18 -14
- package/dist/commands/ticket/create.d.ts +1 -0
- package/dist/commands/ticket/create.js +45 -41
- package/dist/commands/ticket/delete.d.ts +1 -0
- package/dist/commands/ticket/delete.js +1 -1
- package/dist/commands/ticket/edit.d.ts +1 -0
- package/dist/commands/ticket/edit.js +1 -1
- package/dist/commands/ticket/epic.d.ts +1 -0
- package/dist/commands/ticket/epic.js +2 -2
- package/dist/commands/ticket/index.d.ts +1 -0
- package/dist/commands/ticket/link/block.d.ts +1 -0
- package/dist/commands/ticket/link/block.js +1 -1
- package/dist/commands/ticket/link/duplicates.d.ts +1 -0
- package/dist/commands/ticket/link/duplicates.js +1 -1
- package/dist/commands/ticket/link/index.d.ts +1 -0
- package/dist/commands/ticket/link/index.js +9 -8
- package/dist/commands/ticket/link/relates.d.ts +1 -0
- package/dist/commands/ticket/link/relates.js +1 -1
- package/dist/commands/ticket/link/remove.d.ts +1 -0
- package/dist/commands/ticket/link/remove.js +1 -1
- package/dist/commands/ticket/list.d.ts +2 -0
- package/dist/commands/ticket/move.d.ts +1 -0
- package/dist/commands/ticket/move.js +27 -19
- package/dist/commands/ticket/project.d.ts +1 -0
- package/dist/commands/ticket/project.js +3 -3
- package/dist/commands/ticket/reassign.d.ts +1 -0
- package/dist/commands/ticket/reassign.js +1 -1
- package/dist/commands/ticket/spec.d.ts +1 -0
- package/dist/commands/ticket/spec.js +3 -3
- package/dist/commands/ticket/status.d.ts +1 -0
- package/dist/commands/ticket/status.js +1 -1
- package/dist/commands/ticket/template/apply.d.ts +1 -0
- package/dist/commands/ticket/template/create.d.ts +2 -0
- package/dist/commands/ticket/template/delete.d.ts +1 -0
- package/dist/commands/ticket/template/index.d.ts +1 -0
- package/dist/commands/ticket/template/list.d.ts +1 -0
- package/dist/commands/ticket/template/save.d.ts +2 -0
- package/dist/commands/ticket/update.d.ts +1 -0
- package/dist/commands/ticket/update.js +1 -1
- package/dist/commands/ticket/view.d.ts +1 -0
- package/dist/commands/ticket/view.js +1 -1
- package/dist/commands/work/complete.d.ts +1 -0
- package/dist/commands/work/index.d.ts +1 -0
- package/dist/commands/work/ready.d.ts +1 -0
- package/dist/commands/work/revise.d.ts +1 -0
- package/dist/commands/work/spawn-all.d.ts +2 -0
- package/dist/commands/work/spawn-all.js +11 -4
- package/dist/commands/work/spawn.d.ts +1 -0
- package/dist/commands/work/spawn.js +261 -166
- package/dist/commands/work/start.d.ts +1 -0
- package/dist/commands/work/start.js +270 -189
- package/dist/commands/work/watch.d.ts +1 -0
- package/dist/commands/work/watch.js +63 -58
- package/dist/commands/workflow/create.d.ts +1 -0
- package/dist/commands/workflow/create.js +2 -4
- package/dist/commands/workflow/delete.d.ts +1 -0
- package/dist/commands/workflow/delete.js +21 -33
- package/dist/commands/workflow/index.d.ts +1 -0
- package/dist/commands/workflow/list.d.ts +1 -0
- package/dist/commands/workflow/list.js +3 -6
- package/dist/commands/workflow/switch.d.ts +2 -0
- package/dist/commands/workflow/switch.js +46 -21
- package/dist/commands/workflow/view.d.ts +1 -0
- package/dist/commands/workflow/view.js +18 -27
- package/dist/commands/workspace/remove.d.ts +2 -2
- package/dist/commands/workspace/remove.js +16 -21
- package/dist/commands/workspace/use.d.ts +2 -2
- package/dist/commands/workspace/use.js +12 -18
- package/dist/lib/agents/commands.d.ts +1 -1
- package/dist/lib/agents/commands.js +4 -4
- package/dist/lib/database/drizzle-schema.d.ts +5009 -0
- package/dist/lib/database/drizzle-schema.js +699 -0
- package/dist/lib/database/drizzle.d.ts +29 -0
- package/dist/lib/database/drizzle.js +37 -0
- package/dist/lib/database/index.d.ts +1 -0
- package/dist/lib/database/index.js +1 -1
- package/dist/lib/execution/config.d.ts +6 -0
- package/dist/lib/execution/config.js +31 -13
- package/dist/lib/execution/devcontainer.js +13 -7
- package/dist/lib/execution/runners.js +24 -7
- package/dist/lib/execution/spawner.js +19 -0
- package/dist/lib/flags/index.d.ts +4 -0
- package/dist/lib/flags/index.js +4 -0
- package/dist/lib/flags/resolver.d.ts +224 -0
- package/dist/lib/flags/resolver.js +313 -0
- package/dist/lib/pmo/base-command.d.ts +53 -3
- package/dist/lib/pmo/base-command.js +92 -13
- package/dist/lib/pmo/find-pmo.d.ts +1 -1
- package/dist/lib/pmo/find-pmo.js +4 -4
- package/dist/lib/pmo/index.d.ts +1 -1
- package/dist/lib/pmo/index.js +1 -1
- package/dist/lib/pmo/storage/helpers.js +2 -1
- package/dist/lib/pmo/storage/index.d.ts +9 -0
- package/dist/lib/pmo/storage/index.js +14 -0
- package/dist/lib/pmo/storage/projects.d.ts +28 -13
- package/dist/lib/pmo/storage/projects.js +110 -34
- package/dist/lib/pmo/storage/roadmaps.d.ts +2 -0
- package/dist/lib/pmo/storage/roadmaps.js +182 -111
- package/dist/lib/pmo/storage/specs.js +13 -16
- package/dist/lib/pmo/storage/subtasks.js +17 -2
- package/dist/lib/pmo/storage/tickets.d.ts +12 -2
- package/dist/lib/pmo/storage/tickets.js +63 -5
- package/dist/lib/pmo/storage/types.d.ts +7 -3
- package/dist/lib/pmo/storage/views.d.ts +12 -1
- package/dist/lib/pmo/storage/views.js +61 -6
- package/dist/lib/prompt-command.d.ts +90 -0
- package/dist/lib/prompt-command.js +102 -0
- package/dist/lib/prompt-json.d.ts +34 -4
- package/dist/lib/prompt-json.js +35 -3
- package/dist/lib/repos/index.js +15 -15
- package/dist/lib/workspace.d.ts +4 -3
- package/dist/lib/workspace.js +3 -3
- package/oclif.manifest.json +4610 -2997
- package/package.json +13 -5
|
@@ -13,6 +13,7 @@ export default class TicketEpic extends PMOCommand {
|
|
|
13
13
|
'to-epic': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
14
|
'from-epic': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
15
|
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
17
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
18
|
};
|
|
18
19
|
execute(): Promise<void>;
|
|
@@ -102,7 +102,7 @@ export default class TicketEpic extends PMOCommand {
|
|
|
102
102
|
items: ticketChoices,
|
|
103
103
|
getName: (t) => t.name,
|
|
104
104
|
getValue: (t) => t.id,
|
|
105
|
-
getCommand: (t) => `prlt ticket epic ${t.id} --json`,
|
|
105
|
+
getCommand: (t) => `prlt ticket epic ${t.id} -P ${projectId} --json`,
|
|
106
106
|
jsonMode: jsonMode ? { flags, commandName: 'ticket epic' } : null,
|
|
107
107
|
});
|
|
108
108
|
if (!selected) {
|
|
@@ -153,7 +153,7 @@ export default class TicketEpic extends PMOCommand {
|
|
|
153
153
|
items: epicChoices,
|
|
154
154
|
getName: (e) => e.name,
|
|
155
155
|
getValue: (e) => e.id,
|
|
156
|
-
getCommand: (e) => e.id === '__none__' ? `prlt ticket epic ${ticketId} --unlink --json` : `prlt ticket epic ${ticketId} ${e.id} --json`,
|
|
156
|
+
getCommand: (e) => e.id === '__none__' ? `prlt ticket epic ${ticketId} --unlink -P ${projectId} --json` : `prlt ticket epic ${ticketId} ${e.id} -P ${projectId} --json`,
|
|
157
157
|
jsonMode: jsonMode ? { flags, commandName: 'ticket epic' } : null,
|
|
158
158
|
});
|
|
159
159
|
if (!selected) {
|
|
@@ -4,6 +4,7 @@ export default class Ticket extends PMOCommand {
|
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
6
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
8
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
9
|
};
|
|
9
10
|
protected getPMOOptions(): {
|
|
@@ -8,6 +8,7 @@ export default class TicketLinkBlock extends PMOCommand {
|
|
|
8
8
|
};
|
|
9
9
|
static flags: {
|
|
10
10
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
12
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
13
|
};
|
|
13
14
|
execute(): Promise<void>;
|
|
@@ -60,7 +60,7 @@ export default class TicketLinkBlock extends PMOCommand {
|
|
|
60
60
|
items: otherTickets,
|
|
61
61
|
getName: (t) => `${t.id} - ${t.title} (${t.statusName || t.status})`,
|
|
62
62
|
getValue: (t) => t.id,
|
|
63
|
-
getCommand: (t) => `prlt ticket link block ${args.id} ${t.id} --json`,
|
|
63
|
+
getCommand: (t) => `prlt ticket link block ${args.id} ${t.id}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
64
64
|
jsonMode: jsonMode ? { flags, commandName: 'ticket link block' } : null,
|
|
65
65
|
});
|
|
66
66
|
if (!selected) {
|
|
@@ -8,6 +8,7 @@ export default class TicketLinkDuplicates extends PMOCommand {
|
|
|
8
8
|
};
|
|
9
9
|
static flags: {
|
|
10
10
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
12
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
13
|
};
|
|
13
14
|
execute(): Promise<void>;
|
|
@@ -59,7 +59,7 @@ export default class TicketLinkDuplicates extends PMOCommand {
|
|
|
59
59
|
items: otherTickets,
|
|
60
60
|
getName: (t) => `${t.id} - ${t.title} (${t.statusName || t.status})`,
|
|
61
61
|
getValue: (t) => t.id,
|
|
62
|
-
getCommand: (t) => `prlt ticket link duplicates ${args.id} ${t.id} --json`,
|
|
62
|
+
getCommand: (t) => `prlt ticket link duplicates ${args.id} ${t.id}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
63
63
|
jsonMode: jsonMode ? { flags, commandName: 'ticket link duplicates' } : null,
|
|
64
64
|
});
|
|
65
65
|
if (!selected) {
|
|
@@ -11,6 +11,7 @@ export default class TicketLink extends PMOCommand {
|
|
|
11
11
|
relates: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
duplicates: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
13
|
all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
15
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
16
|
};
|
|
16
17
|
execute(): Promise<void>;
|
|
@@ -62,7 +62,7 @@ export default class TicketLink extends PMOCommand {
|
|
|
62
62
|
items: tickets,
|
|
63
63
|
getName: (t) => `${t.id} - ${t.title}`,
|
|
64
64
|
getValue: (t) => t.id,
|
|
65
|
-
getCommand: (t) => `prlt ticket link ${t.id} --json`,
|
|
65
|
+
getCommand: (t) => `prlt ticket link ${t.id}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
66
66
|
jsonMode: jsonMode ? { flags, commandName: 'ticket link' } : null,
|
|
67
67
|
});
|
|
68
68
|
if (!selected) {
|
|
@@ -103,12 +103,13 @@ export default class TicketLink extends PMOCommand {
|
|
|
103
103
|
getName: (c) => c.name,
|
|
104
104
|
getValue: (c) => c.id,
|
|
105
105
|
getCommand: (c) => {
|
|
106
|
+
const pFlag = projectId ? ` -P ${projectId}` : '';
|
|
106
107
|
switch (c.id) {
|
|
107
|
-
case 'view': return `prlt ticket link ${ticketId} --all`;
|
|
108
|
-
case 'blocks': return `prlt ticket link block ${ticketId} --json`;
|
|
109
|
-
case 'relates_to': return `prlt ticket link relates ${ticketId} --json`;
|
|
110
|
-
case 'duplicates': return `prlt ticket link duplicates ${ticketId} --json`;
|
|
111
|
-
case 'remove': return `prlt ticket link remove ${ticketId} --json`;
|
|
108
|
+
case 'view': return `prlt ticket link ${ticketId}${pFlag} --all`;
|
|
109
|
+
case 'blocks': return `prlt ticket link block ${ticketId}${pFlag} --json`;
|
|
110
|
+
case 'relates_to': return `prlt ticket link relates ${ticketId}${pFlag} --json`;
|
|
111
|
+
case 'duplicates': return `prlt ticket link duplicates ${ticketId}${pFlag} --json`;
|
|
112
|
+
case 'remove': return `prlt ticket link remove ${ticketId}${pFlag} --json`;
|
|
112
113
|
default: return '';
|
|
113
114
|
}
|
|
114
115
|
},
|
|
@@ -145,7 +146,7 @@ export default class TicketLink extends PMOCommand {
|
|
|
145
146
|
items: depChoices,
|
|
146
147
|
getName: (d) => d.name,
|
|
147
148
|
getValue: (d) => d.id,
|
|
148
|
-
getCommand: (d) => `prlt ticket link remove ${ticketId} ${d.id} --type ${d.type} --json`,
|
|
149
|
+
getCommand: (d) => `prlt ticket link remove ${ticketId} ${d.id} --type ${d.type}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
149
150
|
jsonMode: jsonMode ? { flags, commandName: 'ticket link' } : null,
|
|
150
151
|
});
|
|
151
152
|
if (!selected) {
|
|
@@ -172,7 +173,7 @@ export default class TicketLink extends PMOCommand {
|
|
|
172
173
|
items: otherTickets,
|
|
173
174
|
getName: (t) => `${t.id} - ${t.title}`,
|
|
174
175
|
getValue: (t) => t.id,
|
|
175
|
-
getCommand: (t) => `prlt ticket link ${action === 'blocks' ? 'block' : action} ${ticketId} ${t.id} --json`,
|
|
176
|
+
getCommand: (t) => `prlt ticket link ${action === 'blocks' ? 'block' : action} ${ticketId} ${t.id}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
176
177
|
jsonMode: jsonMode ? { flags, commandName: 'ticket link' } : null,
|
|
177
178
|
});
|
|
178
179
|
if (targetId) {
|
|
@@ -8,6 +8,7 @@ export default class TicketLinkRelates extends PMOCommand {
|
|
|
8
8
|
};
|
|
9
9
|
static flags: {
|
|
10
10
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
12
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
13
|
};
|
|
13
14
|
execute(): Promise<void>;
|
|
@@ -59,7 +59,7 @@ export default class TicketLinkRelates extends PMOCommand {
|
|
|
59
59
|
items: otherTickets,
|
|
60
60
|
getName: (t) => `${t.id} - ${t.title} (${t.statusName || t.status})`,
|
|
61
61
|
getValue: (t) => t.id,
|
|
62
|
-
getCommand: (t) => `prlt ticket link relates ${args.id} ${t.id} --json`,
|
|
62
|
+
getCommand: (t) => `prlt ticket link relates ${args.id} ${t.id}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
63
63
|
jsonMode: jsonMode ? { flags, commandName: 'ticket link relates' } : null,
|
|
64
64
|
});
|
|
65
65
|
if (!selected) {
|
|
@@ -10,6 +10,7 @@ export default class TicketLinkRemove extends PMOCommand {
|
|
|
10
10
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
11
|
type: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
14
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
15
|
};
|
|
15
16
|
execute(): Promise<void>;
|
|
@@ -105,7 +105,7 @@ export default class TicketLinkRemove extends PMOCommand {
|
|
|
105
105
|
items: depChoices,
|
|
106
106
|
getName: (d) => d.name,
|
|
107
107
|
getValue: (d) => d.id,
|
|
108
|
-
getCommand: (d) => `prlt ticket link remove ${args.id} ${d.id} --type ${d.type} --json`,
|
|
108
|
+
getCommand: (d) => `prlt ticket link remove ${args.id} ${d.id} --type ${d.type}${flags.project ? ` -P ${flags.project}` : ''} --json`,
|
|
109
109
|
jsonMode: jsonMode ? { flags, commandName: 'ticket link remove' } : null,
|
|
110
110
|
});
|
|
111
111
|
if (!selected) {
|
|
@@ -10,6 +10,8 @@ export default class TicketList extends Command {
|
|
|
10
10
|
format: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
11
|
all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
12
|
'group-by': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
15
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
16
|
};
|
|
15
17
|
run(): Promise<void>;
|
|
@@ -11,6 +11,7 @@ export default class TicketMove extends PMOCommand {
|
|
|
11
11
|
position: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
bulk: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
13
|
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
15
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
16
|
};
|
|
16
17
|
execute(): Promise<void>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import inquirer from 'inquirer';
|
|
3
2
|
import { autoExportToBoard, PMOCommand, pmoBaseFlags, } from '../../lib/pmo/index.js';
|
|
4
3
|
import { styles } from '../../lib/styles.js';
|
|
5
4
|
import { shouldOutputJson, outputErrorAsJson, createMetadata, } from '../../lib/prompt-json.js';
|
|
@@ -68,7 +67,7 @@ export default class TicketMove extends PMOCommand {
|
|
|
68
67
|
}
|
|
69
68
|
// Bulk mode
|
|
70
69
|
if (flags.bulk) {
|
|
71
|
-
await this.executeBulk(allTickets, flags
|
|
70
|
+
await this.executeBulk(allTickets, flags, projectId);
|
|
72
71
|
return;
|
|
73
72
|
}
|
|
74
73
|
// Single ticket mode
|
|
@@ -80,7 +79,7 @@ export default class TicketMove extends PMOCommand {
|
|
|
80
79
|
items: allTickets,
|
|
81
80
|
getName: (t) => `${t.id} - ${t.title} (${t.statusName})`,
|
|
82
81
|
getValue: (t) => t.id,
|
|
83
|
-
getCommand: (t) => `prlt ticket move ${t.id} --json`,
|
|
82
|
+
getCommand: (t) => `prlt ticket move ${t.id} -P ${projectId} --json`,
|
|
84
83
|
jsonMode: jsonMode ? { flags, commandName: 'ticket move' } : null,
|
|
85
84
|
});
|
|
86
85
|
if (!selected) {
|
|
@@ -107,7 +106,7 @@ export default class TicketMove extends PMOCommand {
|
|
|
107
106
|
items: project.columns,
|
|
108
107
|
getName: (col) => col.name === ticket.statusName ? `${col.name} (current)` : col.name,
|
|
109
108
|
getValue: (col) => col.name,
|
|
110
|
-
getCommand: (col) => `prlt ticket move ${ticketId} "${col.name}" --json`,
|
|
109
|
+
getCommand: (col) => `prlt ticket move ${ticketId} "${col.name}" -P ${projectId} --json`,
|
|
111
110
|
jsonMode: jsonMode ? { flags, commandName: 'ticket move' } : null,
|
|
112
111
|
});
|
|
113
112
|
if (!selected) {
|
|
@@ -134,50 +133,59 @@ export default class TicketMove extends PMOCommand {
|
|
|
134
133
|
this.log(styles.muted(` Position: ${flags.position}`));
|
|
135
134
|
}
|
|
136
135
|
}
|
|
137
|
-
async executeBulk(allTickets,
|
|
138
|
-
|
|
136
|
+
async executeBulk(allTickets, flags, projectId) {
|
|
137
|
+
// Only show header in interactive mode
|
|
138
|
+
if (!flags.json) {
|
|
139
|
+
this.log(styles.emphasis('📦 Move Multiple Tickets\n'));
|
|
140
|
+
}
|
|
139
141
|
// Get columns
|
|
140
142
|
const board = await this.storage.getBoard(projectId);
|
|
141
143
|
const columns = board.columns.map(col => col.name);
|
|
142
|
-
//
|
|
143
|
-
const {
|
|
144
|
+
// Agent mode config for prompts
|
|
145
|
+
const jsonModeConfig = flags.json ? { flags, commandName: 'ticket move --bulk' } : null;
|
|
146
|
+
// Select tickets to move (now agent-compatible!)
|
|
147
|
+
const { selectedTickets } = await this.prompt([{
|
|
144
148
|
type: 'checkbox',
|
|
145
149
|
name: 'selectedTickets',
|
|
146
150
|
message: 'Select tickets to move:',
|
|
147
151
|
choices: allTickets.map(t => ({
|
|
148
152
|
name: `${t.id} - ${t.title} (${t.statusName})`,
|
|
149
153
|
value: t.id,
|
|
154
|
+
command: `prlt ticket move ${t.id} -P ${projectId} --json`, // For agent: select single ticket
|
|
150
155
|
})),
|
|
151
|
-
}]);
|
|
156
|
+
}], jsonModeConfig);
|
|
152
157
|
if (selectedTickets.length === 0) {
|
|
153
158
|
this.log(styles.muted('No tickets selected.'));
|
|
154
159
|
return;
|
|
155
160
|
}
|
|
156
|
-
// Select target column
|
|
157
|
-
const { targetColumn } = await
|
|
161
|
+
// Select target column (now agent-compatible!)
|
|
162
|
+
const { targetColumn } = await this.prompt([{
|
|
158
163
|
type: 'list',
|
|
159
164
|
name: 'targetColumn',
|
|
160
165
|
message: 'Move selected tickets to:',
|
|
161
|
-
choices: columns
|
|
162
|
-
|
|
166
|
+
choices: columns.map(c => ({
|
|
167
|
+
name: c,
|
|
168
|
+
value: c,
|
|
169
|
+
command: `prlt ticket move ${selectedTickets.join(' ')} "${c}" -P ${projectId} --json`,
|
|
170
|
+
})),
|
|
171
|
+
}], jsonModeConfig);
|
|
163
172
|
// Confirmation
|
|
164
|
-
if (!force) {
|
|
173
|
+
if (!flags.force) {
|
|
165
174
|
this.log(styles.warning('\nThis will move:'));
|
|
166
175
|
for (const ticketId of selectedTickets) {
|
|
167
176
|
const ticket = allTickets.find(t => t.id === ticketId);
|
|
168
177
|
this.log(styles.primary(` • ${ticketId}: ${ticket?.title}`));
|
|
169
178
|
}
|
|
170
179
|
this.log(styles.primary(` → to column: ${targetColumn}\n`));
|
|
171
|
-
const { confirm } = await
|
|
180
|
+
const { confirm } = await this.prompt([{
|
|
172
181
|
type: 'list',
|
|
173
182
|
name: 'confirm',
|
|
174
183
|
message: 'Continue?',
|
|
175
184
|
choices: [
|
|
176
|
-
{ name: 'No, cancel', value: false },
|
|
177
|
-
{ name: 'Yes, move tickets', value: true }
|
|
185
|
+
{ name: 'No, cancel', value: 'false', command: '' },
|
|
186
|
+
{ name: 'Yes, move tickets', value: 'true', command: `prlt ticket move ${selectedTickets.join(' ')} "${targetColumn}" -P ${projectId} --force --json` }
|
|
178
187
|
],
|
|
179
|
-
|
|
180
|
-
}]);
|
|
188
|
+
}], jsonModeConfig);
|
|
181
189
|
if (!confirm) {
|
|
182
190
|
this.log(styles.muted('Move cancelled.'));
|
|
183
191
|
return;
|
|
@@ -11,6 +11,7 @@ export default class TicketProject extends PMOCommand {
|
|
|
11
11
|
'keep-epic': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
12
|
bulk: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
13
|
target: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
15
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
16
|
};
|
|
16
17
|
execute(): Promise<void>;
|
|
@@ -69,7 +69,7 @@ export default class TicketProject extends PMOCommand {
|
|
|
69
69
|
items: tickets,
|
|
70
70
|
getName: (t) => `${t.id} - ${t.title} (${t.statusName})`,
|
|
71
71
|
getValue: (t) => t.id,
|
|
72
|
-
getCommand: (t) => `prlt ticket project ${t.id} --json`,
|
|
72
|
+
getCommand: (t) => `prlt ticket project ${t.id} -P ${sourceProjectId} --json`,
|
|
73
73
|
jsonMode: jsonMode ? { flags, commandName: 'ticket project' } : null,
|
|
74
74
|
});
|
|
75
75
|
if (!selected) {
|
|
@@ -112,7 +112,7 @@ export default class TicketProject extends PMOCommand {
|
|
|
112
112
|
items: otherProjects,
|
|
113
113
|
getName: (p) => `${p.id} - ${p.name} (${p.status})`,
|
|
114
114
|
getValue: (p) => p.id,
|
|
115
|
-
getCommand: (p) => `prlt ticket project ${ticketId} ${p.id} --json`,
|
|
115
|
+
getCommand: (p) => `prlt ticket project ${ticketId} ${p.id} -P ${sourceProjectId} --json`,
|
|
116
116
|
jsonMode: jsonMode ? { flags, commandName: 'ticket project' } : null,
|
|
117
117
|
});
|
|
118
118
|
if (!selected) {
|
|
@@ -144,7 +144,7 @@ export default class TicketProject extends PMOCommand {
|
|
|
144
144
|
items: actionChoices,
|
|
145
145
|
getName: (a) => a.name,
|
|
146
146
|
getValue: (a) => a.id,
|
|
147
|
-
getCommand: (a) => a.id === 'unlink' ? `prlt ticket project ${ticketId} ${targetProjectId} --json` : '',
|
|
147
|
+
getCommand: (a) => a.id === 'unlink' ? `prlt ticket project ${ticketId} ${targetProjectId} -P ${sourceProjectId} --json` : '',
|
|
148
148
|
jsonMode: jsonMode ? { flags, commandName: 'ticket project' } : null,
|
|
149
149
|
});
|
|
150
150
|
if (action === 'cancel' || !action) {
|
|
@@ -12,6 +12,7 @@ export default class TicketReassign extends PMOCommand {
|
|
|
12
12
|
from: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
13
|
bulk: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
14
|
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
16
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
17
|
};
|
|
17
18
|
execute(): Promise<void>;
|
|
@@ -91,7 +91,7 @@ export default class TicketReassign extends PMOCommand {
|
|
|
91
91
|
items: allTickets,
|
|
92
92
|
getName: (t) => `${t.id} - ${t.title} (${t.statusName})`,
|
|
93
93
|
getValue: (t) => t.id,
|
|
94
|
-
getCommand: (t) => `prlt ticket reassign ${t.id} --json`,
|
|
94
|
+
getCommand: (t) => `prlt ticket reassign ${t.id}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
95
95
|
jsonMode: jsonMode ? { flags, commandName: 'ticket reassign' } : null,
|
|
96
96
|
});
|
|
97
97
|
if (!selected) {
|
|
@@ -11,6 +11,7 @@ export default class TicketSpec extends PMOCommand {
|
|
|
11
11
|
unlink: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
12
|
bulk: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
13
|
spec: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
15
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
16
|
};
|
|
16
17
|
execute(): Promise<void>;
|
|
@@ -78,7 +78,7 @@ export default class TicketSpec extends PMOCommand {
|
|
|
78
78
|
items: ticketChoices,
|
|
79
79
|
getName: (t) => t.name,
|
|
80
80
|
getValue: (t) => t.id,
|
|
81
|
-
getCommand: (t) => `prlt ticket spec ${t.id} --json`,
|
|
81
|
+
getCommand: (t) => `prlt ticket spec ${t.id}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
82
82
|
jsonMode: jsonMode ? { flags, commandName: 'ticket spec' } : null,
|
|
83
83
|
});
|
|
84
84
|
if (!selected) {
|
|
@@ -133,7 +133,7 @@ export default class TicketSpec extends PMOCommand {
|
|
|
133
133
|
items: specs,
|
|
134
134
|
getName: (s) => `${s.id} - ${s.title} (${s.status})`,
|
|
135
135
|
getValue: (s) => s.id,
|
|
136
|
-
getCommand: (s) => `prlt ticket spec ${ticketId} ${s.id} --json`,
|
|
136
|
+
getCommand: (s) => `prlt ticket spec ${ticketId} ${s.id}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
137
137
|
jsonMode: jsonMode ? { flags, commandName: 'ticket spec' } : null,
|
|
138
138
|
});
|
|
139
139
|
if (!selected) {
|
|
@@ -171,7 +171,7 @@ export default class TicketSpec extends PMOCommand {
|
|
|
171
171
|
items: actionChoices,
|
|
172
172
|
getName: (a) => a.name,
|
|
173
173
|
getValue: (a) => a.id,
|
|
174
|
-
getCommand: (a) => a.id === 'use_epic' ? `prlt ticket spec ${ticketId} ${epic.specId} --json` : `prlt ticket spec ${ticketId} ${specId} --json`,
|
|
174
|
+
getCommand: (a) => a.id === 'use_epic' ? `prlt ticket spec ${ticketId} ${epic.specId}${projectId ? ` -P ${projectId}` : ''} --json` : `prlt ticket spec ${ticketId} ${specId}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
175
175
|
jsonMode: jsonMode ? { flags, commandName: 'ticket spec' } : null,
|
|
176
176
|
});
|
|
177
177
|
if (action === 'cancel' || !action) {
|
|
@@ -7,6 +7,7 @@ export default class TicketStatus extends PMOCommand {
|
|
|
7
7
|
};
|
|
8
8
|
static flags: {
|
|
9
9
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
11
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
12
|
};
|
|
12
13
|
execute(): Promise<void>;
|
|
@@ -48,7 +48,7 @@ export default class TicketStatus extends PMOCommand {
|
|
|
48
48
|
items: allTickets,
|
|
49
49
|
getName: (t) => `${t.id} - ${t.title} (${t.statusName})`,
|
|
50
50
|
getValue: (t) => t.id,
|
|
51
|
-
getCommand: (t) => `prlt ticket status ${t.id} --json`,
|
|
51
|
+
getCommand: (t) => `prlt ticket status ${t.id}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
52
52
|
jsonMode: jsonMode ? { flags, commandName: 'ticket status' } : null,
|
|
53
53
|
});
|
|
54
54
|
if (!selected) {
|
|
@@ -19,6 +19,7 @@ export default class TicketTemplateApply extends PMOCommand {
|
|
|
19
19
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
20
20
|
'no-subtasks': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
21
21
|
epic: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
22
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
22
23
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
23
24
|
};
|
|
24
25
|
execute(): Promise<void>;
|
|
@@ -10,6 +10,8 @@ export default class TicketTemplateCreate extends PMOCommand {
|
|
|
10
10
|
'title-pattern': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
11
|
priority: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
category: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
15
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
16
|
};
|
|
15
17
|
protected getPMOOptions(): {
|
|
@@ -8,6 +8,7 @@ export default class TicketTemplateDelete extends PMOCommand {
|
|
|
8
8
|
static flags: {
|
|
9
9
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
10
|
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
12
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
13
|
};
|
|
13
14
|
protected getPMOOptions(): {
|
|
@@ -5,6 +5,7 @@ export default class TicketTemplateIndex extends PMOCommand {
|
|
|
5
5
|
static examples: string[];
|
|
6
6
|
static flags: {
|
|
7
7
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
9
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
10
|
};
|
|
10
11
|
protected getPMOOptions(): {
|
|
@@ -6,6 +6,7 @@ export default class TicketTemplateList extends PMOCommand {
|
|
|
6
6
|
builtin: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
7
|
custom: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
8
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
10
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
11
|
};
|
|
11
12
|
protected getPMOOptions(): {
|
|
@@ -8,6 +8,8 @@ export default class TicketTemplateSave extends PMOCommand {
|
|
|
8
8
|
};
|
|
9
9
|
static flags: {
|
|
10
10
|
description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
13
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
14
|
};
|
|
13
15
|
execute(): Promise<void>;
|
|
@@ -11,6 +11,7 @@ export default class TicketUpdate extends PMOCommand {
|
|
|
11
11
|
category: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
bulk: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
13
|
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
15
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
16
|
};
|
|
16
17
|
execute(): Promise<void>;
|
|
@@ -73,7 +73,7 @@ export default class TicketUpdate extends PMOCommand {
|
|
|
73
73
|
items: allTickets,
|
|
74
74
|
getName: (t) => `${t.id} - ${t.title} (${t.statusName})`,
|
|
75
75
|
getValue: (t) => t.id,
|
|
76
|
-
getCommand: (t) => `prlt ticket update ${t.id} --json`,
|
|
76
|
+
getCommand: (t) => `prlt ticket update ${t.id}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
77
77
|
jsonMode: jsonMode ? { flags, commandName: 'ticket update' } : null,
|
|
78
78
|
});
|
|
79
79
|
if (!selected) {
|
|
@@ -4,6 +4,7 @@ export default class TicketView extends PMOCommand {
|
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
6
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
8
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
9
|
};
|
|
9
10
|
static args: {
|
|
@@ -48,7 +48,7 @@ export default class TicketView extends PMOCommand {
|
|
|
48
48
|
items: allTickets,
|
|
49
49
|
getName: (t) => `${t.id} - ${t.title} (${t.statusName})`,
|
|
50
50
|
getValue: (t) => t.id,
|
|
51
|
-
getCommand: (t) => `prlt ticket view ${t.id} --json`,
|
|
51
|
+
getCommand: (t) => `prlt ticket view ${t.id}${projectId ? ` -P ${projectId}` : ''} --json`,
|
|
52
52
|
jsonMode: jsonMode ? { flags, commandName: 'ticket view' } : null,
|
|
53
53
|
});
|
|
54
54
|
if (!selected) {
|
|
@@ -7,6 +7,7 @@ export default class WorkComplete extends PMOCommand {
|
|
|
7
7
|
};
|
|
8
8
|
static flags: {
|
|
9
9
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
11
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
12
|
};
|
|
12
13
|
execute(): Promise<void>;
|
|
@@ -4,6 +4,7 @@ export default class Work extends PMOCommand {
|
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
6
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
8
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
9
|
};
|
|
9
10
|
protected getPMOOptions(): {
|
|
@@ -10,6 +10,7 @@ export default class WorkReady extends PMOCommand {
|
|
|
10
10
|
pr: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
11
|
draft: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
12
|
'no-pr': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
14
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
15
|
};
|
|
15
16
|
execute(): Promise<void>;
|
|
@@ -12,6 +12,7 @@ export default class WorkRevise extends PMOCommand {
|
|
|
12
12
|
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
13
|
'run-on-host': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
14
|
session: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
16
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
17
|
};
|
|
17
18
|
execute(): Promise<void>;
|
|
@@ -3,11 +3,13 @@ export default class WorkSpawnAll extends PMOCommand {
|
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
6
7
|
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
8
|
'run-on-host': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
9
|
'skip-permissions': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
10
|
'create-pr': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
11
|
executor: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
13
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
14
|
};
|
|
13
15
|
protected getPMOOptions(): {
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
2
|
import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
|
|
3
3
|
export default class WorkSpawnAll extends PMOCommand {
|
|
4
|
-
static description = 'Spawn work on all backlog tickets (alias for "work
|
|
4
|
+
static description = 'Spawn work on all backlog tickets (alias for "work spawn --all")';
|
|
5
5
|
static examples = [
|
|
6
6
|
'<%= config.bin %> <%= command.id %>',
|
|
7
7
|
'<%= config.bin %> <%= command.id %> --skip-permissions',
|
|
8
8
|
'<%= config.bin %> <%= command.id %> --create-pr',
|
|
9
|
+
'<%= config.bin %> <%= command.id %> --json',
|
|
9
10
|
];
|
|
10
11
|
static flags = {
|
|
11
12
|
...pmoBaseFlags,
|
|
13
|
+
json: Flags.boolean({
|
|
14
|
+
description: 'Output prompt configuration as JSON (for AI agents/scripts)',
|
|
15
|
+
default: false,
|
|
16
|
+
}),
|
|
12
17
|
force: Flags.boolean({
|
|
13
18
|
char: 'f',
|
|
14
19
|
description: 'Start even if work already in progress',
|
|
@@ -39,9 +44,11 @@ export default class WorkSpawnAll extends PMOCommand {
|
|
|
39
44
|
const { flags } = await this.parse(WorkSpawnAll);
|
|
40
45
|
// This command requires project context
|
|
41
46
|
const projectId = await this.requireProject();
|
|
42
|
-
// Build args for work
|
|
47
|
+
// Build args for work spawn --all
|
|
43
48
|
// Pass --project to avoid re-prompting for project selection
|
|
44
49
|
const args = ['--all', '--project', projectId];
|
|
50
|
+
if (flags.json)
|
|
51
|
+
args.push('--json');
|
|
45
52
|
if (flags.force)
|
|
46
53
|
args.push('--force');
|
|
47
54
|
if (flags['run-on-host'])
|
|
@@ -52,7 +59,7 @@ export default class WorkSpawnAll extends PMOCommand {
|
|
|
52
59
|
args.push('--create-pr');
|
|
53
60
|
if (flags.executor)
|
|
54
61
|
args.push('--executor', flags.executor);
|
|
55
|
-
// Use oclif's run method to invoke work
|
|
56
|
-
await this.config.runCommand('work:
|
|
62
|
+
// Use oclif's run method to invoke work spawn
|
|
63
|
+
await this.config.runCommand('work:spawn', args);
|
|
57
64
|
}
|
|
58
65
|
}
|