@context-forge/cli 0.6.21 → 0.6.23

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.
Files changed (46) hide show
  1. package/commands/cf/arch.md +9 -0
  2. package/commands/cf/build.md +1 -1
  3. package/commands/cf/concept.md +8 -0
  4. package/commands/cf/implement.md +9 -0
  5. package/commands/cf/initiatives.md +8 -0
  6. package/commands/cf/plan.md +9 -0
  7. package/commands/cf/slice.md +9 -0
  8. package/commands/cf/tasks.md +9 -0
  9. package/dist/commands/arch.d.ts +6 -2
  10. package/dist/commands/arch.d.ts.map +1 -1
  11. package/dist/commands/arch.js +76 -91
  12. package/dist/commands/arch.js.map +1 -1
  13. package/dist/commands/build.d.ts +22 -0
  14. package/dist/commands/build.d.ts.map +1 -1
  15. package/dist/commands/build.js +77 -3
  16. package/dist/commands/build.js.map +1 -1
  17. package/dist/commands/commandInstaller.d.ts.map +1 -1
  18. package/dist/commands/commandInstaller.js +4 -1
  19. package/dist/commands/commandInstaller.js.map +1 -1
  20. package/dist/commands/list.d.ts +3 -0
  21. package/dist/commands/list.d.ts.map +1 -0
  22. package/dist/commands/list.js +106 -0
  23. package/dist/commands/list.js.map +1 -0
  24. package/dist/commands/plan.d.ts +6 -2
  25. package/dist/commands/plan.d.ts.map +1 -1
  26. package/dist/commands/plan.js +86 -101
  27. package/dist/commands/plan.js.map +1 -1
  28. package/dist/commands/project.d.ts +4 -0
  29. package/dist/commands/project.d.ts.map +1 -1
  30. package/dist/commands/project.js +44 -33
  31. package/dist/commands/project.js.map +1 -1
  32. package/dist/commands/slice.d.ts +5 -2
  33. package/dist/commands/slice.d.ts.map +1 -1
  34. package/dist/commands/slice.js +80 -94
  35. package/dist/commands/slice.js.map +1 -1
  36. package/dist/commands/task.d.ts +11 -2
  37. package/dist/commands/task.d.ts.map +1 -1
  38. package/dist/commands/task.js +39 -63
  39. package/dist/commands/task.js.map +1 -1
  40. package/dist/commands/workflow.d.ts +3 -0
  41. package/dist/commands/workflow.d.ts.map +1 -0
  42. package/dist/commands/workflow.js +205 -0
  43. package/dist/commands/workflow.js.map +1 -0
  44. package/dist/index.js +7 -9
  45. package/dist/index.js.map +1 -1
  46. package/package.json +2 -2
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: Set architecture initiative and build prompt
3
+ argument-hint: <index>
4
+ allowed-tools: Bash(cf:*)
5
+ ---
6
+
7
+ Use the following as your working context. Confirm receipt with a one-line summary: "Context loaded: {project} | {phase} | {arch}" — then follow the instruction prompt. If the instruction prompt contains a STOP condition, STOP — do not begin work.
8
+
9
+ !`cf arch $ARGUMENTS --json`
@@ -6,4 +6,4 @@ allowed-tools: Bash(cf:*)
6
6
 
7
7
  Use the following as your working context. Confirm receipt with a one-line summary: "Context loaded: {project} | {phase} | {slice}" — then follow the instruction prompt. If the instruction prompt contains a STOP condition, STOP — do not begin work.
8
8
 
9
- !`cf build $ARGUMENTS`
9
+ !`cf build $ARGUMENTS --json`
@@ -0,0 +1,8 @@
1
+ ---
2
+ description: Set phase to Concept and build prompt
3
+ allowed-tools: Bash(cf:*)
4
+ ---
5
+
6
+ Use the following as your working context. Confirm receipt with a one-line summary: "Context loaded: {project} | {phase}" — then follow the instruction prompt. If the instruction prompt contains a STOP condition, STOP — do not begin work.
7
+
8
+ !`cf concept --json`
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: Set active slice for implementation and build prompt
3
+ argument-hint: <index>
4
+ allowed-tools: Bash(cf:*)
5
+ ---
6
+
7
+ Use the following as your working context. Confirm receipt with a one-line summary: "Context loaded: {project} | {phase} | {slice}" — then follow the instruction prompt. If the instruction prompt contains a STOP condition, STOP — do not begin work.
8
+
9
+ !`cf implement $ARGUMENTS --json`
@@ -0,0 +1,8 @@
1
+ ---
2
+ description: Set phase to Initiative Plan and build prompt
3
+ allowed-tools: Bash(cf:*)
4
+ ---
5
+
6
+ Use the following as your working context. Confirm receipt with a one-line summary: "Context loaded: {project} | {phase}" — then follow the instruction prompt. If the instruction prompt contains a STOP condition, STOP — do not begin work.
7
+
8
+ !`cf initiatives --json`
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: Set slice plan and build prompt
3
+ argument-hint: <index>
4
+ allowed-tools: Bash(cf:*)
5
+ ---
6
+
7
+ Use the following as your working context. Confirm receipt with a one-line summary: "Context loaded: {project} | {phase} | {plan}" — then follow the instruction prompt. If the instruction prompt contains a STOP condition, STOP — do not begin work.
8
+
9
+ !`cf plan $ARGUMENTS --json`
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: Set active slice and build prompt
3
+ argument-hint: <index>
4
+ allowed-tools: Bash(cf:*)
5
+ ---
6
+
7
+ Use the following as your working context. Confirm receipt with a one-line summary: "Context loaded: {project} | {phase} | {slice}" — then follow the instruction prompt. If the instruction prompt contains a STOP condition, STOP — do not begin work.
8
+
9
+ !`cf slice $ARGUMENTS --json`
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: Set active task file and build prompt
3
+ argument-hint: <index>
4
+ allowed-tools: Bash(cf:*)
5
+ ---
6
+
7
+ Use the following as your working context. Confirm receipt with a one-line summary: "Context loaded: {project} | {phase} | {tasks}" — then follow the instruction prompt. If the instruction prompt contains a STOP condition, STOP — do not begin work.
8
+
9
+ !`cf tasks $ARGUMENTS --json`
@@ -1,3 +1,7 @@
1
- import { Command } from 'commander';
2
- export declare function registerArchCommand(program: Command): void;
1
+ /** Shared action handler for listing architecture initiatives. */
2
+ export declare function archListAction(opts: {
3
+ json?: boolean;
4
+ all?: boolean;
5
+ project?: string;
6
+ }): Promise<void>;
3
7
  //# sourceMappingURL=arch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arch.d.ts","sourceRoot":"","sources":["../../src/commands/arch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsH1D"}
1
+ {"version":3,"file":"arch.d.ts","sourceRoot":"","sources":["../../src/commands/arch.ts"],"names":[],"mappings":"AAUA,kEAAkE;AAClE,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsG7G"}
@@ -3,100 +3,85 @@ import { extractSliceIndex } from '@context-forge/core/node';
3
3
  import { resolveProjectWorktree } from '../utils/project.js';
4
4
  import { resolveProject } from '@context-forge/core';
5
5
  import { resolveOperationPath, getWorktreeIndexRange, isInIndexRange, resolveAllOperationPaths } from '../utils/worktree-overlay.js';
6
- import { handleError, UserError } from '../utils/errors.js';
6
+ import { UserError } from '../utils/errors.js';
7
7
  import { printJson } from '../output/formatter.js';
8
8
  import { renderTable } from '../output/tables.js';
9
9
  import { label, success, dim } from '../output/styles.js';
10
- export function registerArchCommand(program) {
11
- const cmd = program
12
- .command('arch')
13
- .description('Manage architecture');
14
- cmd
15
- .command('list')
16
- .description('List architecture initiatives from the project')
17
- .option('--json', 'Output as JSON')
18
- .option('--all', 'Show initiatives from all worktrees')
19
- .option('--project <name|id>', 'Project name or ID (overrides default)')
20
- .action(async (opts) => {
21
- try {
22
- const store = new FileProjectStore();
23
- const { id, worktreeId } = await resolveProjectWorktree({ project: opts.project }, store);
24
- const rawProject = await store.getById(id);
25
- if (!rawProject) {
26
- throw new UserError(`Project not found: '${id}'.`);
27
- }
28
- const project = await resolveProject(store, id, worktreeId);
29
- if (!project) {
30
- throw new UserError(`Project not found: '${id}'.`);
31
- }
32
- if (!project.projectPath) {
33
- throw new UserError('No projectPath configured. Set one with: cf set projectPath /path/to/project');
34
- }
35
- let model;
36
- let indexRange;
37
- if (opts.all && rawProject.worktrees?.length) {
38
- const paths = resolveAllOperationPaths(rawProject);
39
- const models = (await Promise.all(paths.map((p) => buildModel(p).catch(() => null)))).filter((m) => m !== null);
40
- model = mergeProjectModels(models);
41
- // No index filtering in --all mode
42
- }
43
- else {
44
- const operationPath = resolveOperationPath(project, worktreeId) ?? project.projectPath;
45
- indexRange = getWorktreeIndexRange(rawProject, worktreeId);
46
- model = await buildModel(operationPath);
47
- }
48
- const initiativeKeys = Object.keys(model.initiatives)
49
- .filter((key) => isInIndexRange(parseInt(key, 10), indexRange))
50
- .sort((a, b) => parseInt(a, 10) - parseInt(b, 10));
51
- if (initiativeKeys.length === 0) {
52
- console.log(dim('No initiatives found in project.'));
53
- return;
54
- }
55
- const activeIndex = extractSliceIndex(project.fileSlice);
56
- const entries = initiativeKeys.map((key) => {
57
- const init = model.initiatives[key];
58
- const baseIndex = parseInt(key, 10);
59
- const archName = init.arch?.name ?? '—';
60
- const planName = init.slicePlan?.name ?? '—';
61
- const completedSlices = init.slices.filter((s) => s.status === 'complete').length;
62
- const totalSlices = init.slices.length;
63
- const progress = totalSlices > 0
64
- ? `${completedSlices}/${totalSlices}`
65
- : '—';
66
- // Determine if this initiative contains the active slice
67
- const isActive = activeIndex !== null && init.slices.some((s) => parseInt(s.index, 10) === activeIndex);
68
- return {
69
- index: key,
70
- baseIndex,
71
- name: init.name,
72
- archDoc: archName,
73
- slicePlan: planName,
74
- progress,
75
- completedSlices,
76
- totalSlices,
77
- isActive,
78
- };
79
- });
80
- if (opts.json) {
81
- printJson(entries);
82
- return;
83
- }
84
- console.log(label('\nArchitecture Initiatives'));
85
- const rows = entries.map((e) => {
86
- const indicator = e.isActive ? success(' ← active') : '';
87
- return [
88
- e.index,
89
- e.name,
90
- dim(e.archDoc),
91
- dim(e.slicePlan),
92
- e.progress + indicator,
93
- ];
94
- });
95
- console.log(renderTable(['Index', 'Initiative', 'Arch Doc', 'Slice Plan', 'Progress'], rows));
96
- }
97
- catch (err) {
98
- handleError(err);
99
- }
10
+ /** Shared action handler for listing architecture initiatives. */
11
+ export async function archListAction(opts) {
12
+ const store = new FileProjectStore();
13
+ const { id, worktreeId } = await resolveProjectWorktree({ project: opts.project }, store);
14
+ const rawProject = await store.getById(id);
15
+ if (!rawProject) {
16
+ throw new UserError(`Project not found: '${id}'.`);
17
+ }
18
+ const project = await resolveProject(store, id, worktreeId);
19
+ if (!project) {
20
+ throw new UserError(`Project not found: '${id}'.`);
21
+ }
22
+ if (!project.projectPath) {
23
+ throw new UserError('No projectPath configured. Set one with: cf set projectPath /path/to/project');
24
+ }
25
+ let model;
26
+ let indexRange;
27
+ if (opts.all && rawProject.worktrees?.length) {
28
+ const paths = resolveAllOperationPaths(rawProject);
29
+ const models = (await Promise.all(paths.map((p) => buildModel(p).catch(() => null)))).filter((m) => m !== null);
30
+ model = mergeProjectModels(models);
31
+ // No index filtering in --all mode
32
+ }
33
+ else {
34
+ const operationPath = resolveOperationPath(project, worktreeId) ?? project.projectPath;
35
+ indexRange = getWorktreeIndexRange(rawProject, worktreeId);
36
+ model = await buildModel(operationPath);
37
+ }
38
+ const initiativeKeys = Object.keys(model.initiatives)
39
+ .filter((key) => isInIndexRange(parseInt(key, 10), indexRange))
40
+ .sort((a, b) => parseInt(a, 10) - parseInt(b, 10));
41
+ if (initiativeKeys.length === 0) {
42
+ console.log(dim('No initiatives found in project.'));
43
+ return;
44
+ }
45
+ const activeIndex = extractSliceIndex(project.fileSlice);
46
+ const entries = initiativeKeys.map((key) => {
47
+ const init = model.initiatives[key];
48
+ const baseIndex = parseInt(key, 10);
49
+ const archName = init.arch?.name ?? '—';
50
+ const planName = init.slicePlan?.name ?? '—';
51
+ const completedSlices = init.slices.filter((s) => s.status === 'complete').length;
52
+ const totalSlices = init.slices.length;
53
+ const progress = totalSlices > 0
54
+ ? `${completedSlices}/${totalSlices}`
55
+ : '—';
56
+ // Determine if this initiative contains the active slice
57
+ const isActive = activeIndex !== null && init.slices.some((s) => parseInt(s.index, 10) === activeIndex);
58
+ return {
59
+ index: key,
60
+ baseIndex,
61
+ name: init.name,
62
+ archDoc: archName,
63
+ slicePlan: planName,
64
+ progress,
65
+ completedSlices,
66
+ totalSlices,
67
+ isActive,
68
+ };
100
69
  });
70
+ if (opts.json) {
71
+ printJson(entries);
72
+ return;
73
+ }
74
+ console.log(label('\nArchitecture Initiatives'));
75
+ const rows = entries.map((e) => {
76
+ const indicator = e.isActive ? success(' ← active') : '';
77
+ return [
78
+ e.index,
79
+ e.name,
80
+ dim(e.archDoc),
81
+ dim(e.slicePlan),
82
+ e.progress + indicator,
83
+ ];
84
+ });
85
+ console.log(renderTable(['Index', 'Initiative', 'Arch Doc', 'Slice Plan', 'Progress'], rows));
101
86
  }
102
87
  //# sourceMappingURL=arch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arch.js","sourceRoot":"","sources":["../../src/commands/arch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arch.js","sourceRoot":"","sources":["../../src/commands/arch.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,25 @@
1
1
  import { Command } from 'commander';
2
+ interface BuildAndPrintOpts {
3
+ project?: string;
4
+ phase?: string;
5
+ slice?: string;
6
+ json?: boolean;
7
+ /** Hint for the help message, e.g. "slice 208". Defaults to "build". */
8
+ commandHint?: string;
9
+ }
10
+ /**
11
+ * Core build logic: resolves project, generates context.
12
+ *
13
+ * Output modes:
14
+ * - `--json`: JSON object to stdout with project, phase, and context fields
15
+ * - bare CLI: help message to stderr, nothing to stdout
16
+ *
17
+ * Slash commands call the CLI, which outputs to stdout — the slash command
18
+ * wrapper captures and frames it as working context. Since bare CLI now shows
19
+ * a help message instead of raw prompt, slash commands use `--json` implicitly
20
+ * (the `!` backtick syntax in the .md file captures stdout).
21
+ */
22
+ export declare function buildAndPrint(opts: BuildAndPrintOpts): Promise<void>;
2
23
  export declare function registerBuildCommand(program: Command): void;
24
+ export {};
3
25
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+D3D"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD1E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+E3D"}
@@ -3,11 +3,70 @@ import { resolvePhaseValue } from '@context-forge/core';
3
3
  import { resolveProject } from '@context-forge/core';
4
4
  import { resolveProjectWorktree } from '../utils/project.js';
5
5
  import { handleError, UserError } from '../utils/errors.js';
6
- import { printRaw } from '../output/formatter.js';
6
+ import { printJson } from '../output/formatter.js';
7
+ /**
8
+ * Core build logic: resolves project, generates context.
9
+ *
10
+ * Output modes:
11
+ * - `--json`: JSON object to stdout with project, phase, and context fields
12
+ * - bare CLI: help message to stderr, nothing to stdout
13
+ *
14
+ * Slash commands call the CLI, which outputs to stdout — the slash command
15
+ * wrapper captures and frames it as working context. Since bare CLI now shows
16
+ * a help message instead of raw prompt, slash commands use `--json` implicitly
17
+ * (the `!` backtick syntax in the .md file captures stdout).
18
+ */
19
+ export async function buildAndPrint(opts) {
20
+ const store = new FileProjectStore();
21
+ const { id, worktreeId } = await resolveProjectWorktree({ project: opts.project }, store);
22
+ const project = await resolveProject(store, id, worktreeId);
23
+ if (!project) {
24
+ throw new UserError(`Project not found: '${id}'. Run cf project list to see available projects.`);
25
+ }
26
+ if (!project.projectPath) {
27
+ throw new UserError(`Project '${project.name}' has no projectPath configured.\n` +
28
+ ' cf project set projectPath /path/to/project');
29
+ }
30
+ // Status message goes to stderr so stdout stays clean for piping
31
+ process.stderr.write(`Building context for ${project.name}...\n`);
32
+ // Apply overrides to a working copy
33
+ const workingCopy = { ...project };
34
+ if (opts.phase) {
35
+ const resolved = resolvePhaseValue(opts.phase);
36
+ if (!resolved) {
37
+ process.stderr.write(`Warning: '${opts.phase}' is not a recognized phase. Use a number (0-7), name (implementation), or shorthand (P6).\n`);
38
+ }
39
+ const phaseValue = resolved ?? opts.phase;
40
+ workingCopy.developmentPhase = phaseValue;
41
+ workingCopy.instruction = phaseValue;
42
+ }
43
+ if (opts.slice)
44
+ workingCopy.fileSlice = opts.slice;
45
+ const { integrator } = createContextPipeline(workingCopy.projectPath);
46
+ const contextString = await integrator.generateContextFromProject(workingCopy, worktreeId);
47
+ if (opts.json) {
48
+ // --json mode: structured output to stdout
49
+ printJson({
50
+ project: project.name,
51
+ phase: workingCopy.developmentPhase ?? null,
52
+ context: contextString,
53
+ });
54
+ }
55
+ else {
56
+ // Bare CLI: help message to stderr, nothing to stdout
57
+ const cmd = opts.commandHint ?? 'build';
58
+ const sliceInfo = workingCopy.fileSlice ? `, slice ${workingCopy.fileSlice}` : '';
59
+ const phaseInfo = workingCopy.developmentPhase ?? 'no phase set';
60
+ process.stderr.write(`\nContext built for ${project.name} (${phaseInfo}${sliceInfo}).\n\n` +
61
+ `To use this context:\n` +
62
+ ` /cf:${cmd.split(' ')[0]} ${cmd.includes(' ') ? cmd.split(' ').slice(1).join(' ') : '$ARGUMENTS'} — load as working context in Claude Code\n` +
63
+ ` cf ${cmd} --json${cmd === 'build' ? '' : ' '} — output as JSON for pipelines\n`);
64
+ }
65
+ }
7
66
  export function registerBuildCommand(program) {
8
67
  program
9
68
  .command('build')
10
- .description('Generate and output a context prompt to stdout (--json not applicable)')
69
+ .description('Generate a context prompt')
11
70
  .option('--project <id>', 'Project ID or name (overrides default)')
12
71
  .option('--phase <phase>', 'Override development phase')
13
72
  .option('--slice <slice>', 'Override slice name')
@@ -16,6 +75,7 @@ export function registerBuildCommand(program) {
16
75
  .option('--it <type>', 'Shorthand for --instruction-type')
17
76
  .option('--tasks <tasks>', 'Override task file name')
18
77
  .option('--additional <text>', 'Additional instructions to append')
78
+ .option('--json', 'Output context as JSON to stdout')
19
79
  .action(async (opts) => {
20
80
  try {
21
81
  const store = new FileProjectStore();
@@ -55,7 +115,21 @@ export function registerBuildCommand(program) {
55
115
  if (opts.additional) {
56
116
  contextString = `${contextString}\n\n${opts.additional}`;
57
117
  }
58
- printRaw(contextString);
118
+ if (opts.json) {
119
+ printJson({
120
+ project: project.name,
121
+ phase: workingCopy.developmentPhase ?? null,
122
+ context: contextString,
123
+ });
124
+ }
125
+ else {
126
+ const sliceInfo = workingCopy.fileSlice ? `, slice ${workingCopy.fileSlice}` : '';
127
+ const phaseInfo = workingCopy.developmentPhase ?? 'no phase set';
128
+ process.stderr.write(`\nContext built for ${project.name} (${phaseInfo}${sliceInfo}).\n\n` +
129
+ `To use this context:\n` +
130
+ ` /cf:build $ARGUMENTS — load as working context in Claude Code\n` +
131
+ ` cf build --json — output as JSON for pipelines\n`);
132
+ }
59
133
  }
60
134
  catch (err) {
61
135
  handleError(err);
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commandInstaller.d.ts","sourceRoot":"","sources":["../../src/commands/commandInstaller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,kFAAkF;AAClF,wBAAgB,oBAAoB,IAAI,MAAM,CAU7C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAY3D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAqB7D;AAOD,mGAAmG;AACnG,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAO9D;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiBrE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBvE"}
1
+ {"version":3,"file":"commandInstaller.d.ts","sourceRoot":"","sources":["../../src/commands/commandInstaller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,kFAAkF;AAClF,wBAAgB,oBAAoB,IAAI,MAAM,CAU7C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAY3D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAqB7D;AAOD,mGAAmG;AACnG,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAO9D;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiBrE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBvE"}
@@ -6,7 +6,10 @@ import { success, dim } from '../output/styles.js';
6
6
  const __filename = fileURLToPath(import.meta.url);
7
7
  const __dirname = path.dirname(__filename);
8
8
  /** Known command files managed by install/uninstall. */
9
- const MANAGED_FILES = ['status.md', 'build.md', 'next.md', 'prompt.md', 'get.md', 'set.md', 'project.md', 'onboard.md', 'check.md'];
9
+ const MANAGED_FILES = [
10
+ 'status.md', 'build.md', 'next.md', 'prompt.md', 'get.md', 'set.md', 'project.md', 'onboard.md', 'check.md',
11
+ 'concept.md', 'initiatives.md', 'arch.md', 'plan.md', 'slice.md', 'tasks.md', 'implement.md',
12
+ ];
10
13
  /** Resolve the bundled commands/ directory relative to this script's location. */
11
14
  export function getSourceCommandsDir() {
12
15
  // In dist: dist/commands/commandInstaller.js → ../../commands/
@@ -1 +1 @@
1
- {"version":3,"file":"commandInstaller.js","sourceRoot":"","sources":["../../src/commands/commandInstaller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,wDAAwD;AACxD,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAEpI,kFAAkF;AAClF,MAAM,UAAU,oBAAoB;IAClC,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,+CAA+C,QAAQ,IAAI;YACzD,oDAAoD,CACvD,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE/C,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,yDAAyD;AACzD,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,qBAAqB,CAAC,SAAkB;IACtD,MAAM,MAAM,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,SAAS,CAAC,MAAM,gBAAgB,MAAM,MAAM,CAAC,CAAC,CAAC;IAChF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAAgB;IAC7D,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;SAC7D,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,SAAS,CAAC,MAAM,gBAAgB,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;YACrF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,OAAgB;IAC/D,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;SAC7D,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,MAAM,kBAAkB,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;gBACnF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"commandInstaller.js","sourceRoot":"","sources":["../../src/commands/commandInstaller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,wDAAwD;AACxD,MAAM,aAAa,GAAG;IACpB,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU;IAC3G,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc;CAC7F,CAAC;AAEF,kFAAkF;AAClF,MAAM,UAAU,oBAAoB;IAClC,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,+CAA+C,QAAQ,IAAI;YACzD,oDAAoD,CACvD,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE/C,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,yDAAyD;AACzD,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,qBAAqB,CAAC,SAAkB;IACtD,MAAM,MAAM,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,SAAS,CAAC,MAAM,gBAAgB,MAAM,MAAM,CAAC,CAAC,CAAC;IAChF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAAgB;IAC7D,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;SAC7D,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,SAAS,CAAC,MAAM,gBAAgB,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;YACrF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,OAAgB;IAC/D,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;SAC7D,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,MAAM,kBAAkB,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;gBACnF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerListCommand(program: Command): void;
3
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkG1D"}
@@ -0,0 +1,106 @@
1
+ import { projectListAction } from './project.js';
2
+ import { archListAction } from './arch.js';
3
+ import { planListAction } from './plan.js';
4
+ import { sliceListAction } from './slice.js';
5
+ import { taskListAction, taskItemsAction } from './task.js';
6
+ import { handleError } from '../utils/errors.js';
7
+ export function registerListCommand(program) {
8
+ const cmd = program
9
+ .command('list')
10
+ .description('List project artifacts');
11
+ cmd
12
+ .command('projects')
13
+ .description('List all projects')
14
+ .option('--json', 'Output as JSON')
15
+ .action(async (opts) => {
16
+ try {
17
+ await projectListAction(opts);
18
+ }
19
+ catch (err) {
20
+ handleError(err);
21
+ }
22
+ });
23
+ cmd
24
+ .command('initiatives')
25
+ .description('List architecture initiatives')
26
+ .option('--json', 'Output as JSON')
27
+ .option('--all', 'Show initiatives from all worktrees')
28
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
29
+ .action(async (opts) => {
30
+ try {
31
+ await archListAction(opts);
32
+ }
33
+ catch (err) {
34
+ handleError(err);
35
+ }
36
+ });
37
+ cmd
38
+ .command('arch')
39
+ .description('Alias for "cf list initiatives"')
40
+ .option('--json', 'Output as JSON')
41
+ .option('--all', 'Show initiatives from all worktrees')
42
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
43
+ .action(async (opts) => {
44
+ try {
45
+ await archListAction(opts);
46
+ }
47
+ catch (err) {
48
+ handleError(err);
49
+ }
50
+ });
51
+ cmd
52
+ .command('plans')
53
+ .description('List slice plan files')
54
+ .option('--json', 'Output as JSON')
55
+ .option('--all', 'Show slice plans from all worktrees')
56
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
57
+ .action(async (opts) => {
58
+ try {
59
+ await planListAction(opts);
60
+ }
61
+ catch (err) {
62
+ handleError(err);
63
+ }
64
+ });
65
+ cmd
66
+ .command('slices')
67
+ .description('List slices from active plan')
68
+ .option('--json', 'Output as JSON')
69
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
70
+ .action(async (opts) => {
71
+ try {
72
+ await sliceListAction(opts);
73
+ }
74
+ catch (err) {
75
+ handleError(err);
76
+ }
77
+ });
78
+ cmd
79
+ .command('tasks')
80
+ .description('List task files from plan')
81
+ .option('--json', 'Output as JSON')
82
+ .option('--all', 'Show task files from all worktrees')
83
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
84
+ .action(async (opts) => {
85
+ try {
86
+ await taskListAction(opts);
87
+ }
88
+ catch (err) {
89
+ handleError(err);
90
+ }
91
+ });
92
+ cmd
93
+ .command('items')
94
+ .description('Show items from active task file')
95
+ .option('--json', 'Output as JSON')
96
+ .option('--project <name|id>', 'Project name or ID (overrides default)')
97
+ .action(async (opts) => {
98
+ try {
99
+ await taskItemsAction(opts);
100
+ }
101
+ catch (err) {
102
+ handleError(err);
103
+ }
104
+ });
105
+ }
106
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}