@ginkoai/cli 2.0.5 → 2.1.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.
Files changed (91) hide show
  1. package/dist/commands/epic/index.d.ts +29 -0
  2. package/dist/commands/epic/index.d.ts.map +1 -0
  3. package/dist/commands/epic/index.js +94 -0
  4. package/dist/commands/epic/index.js.map +1 -0
  5. package/dist/commands/epic/status.d.ts +40 -0
  6. package/dist/commands/epic/status.d.ts.map +1 -0
  7. package/dist/commands/epic/status.js +244 -0
  8. package/dist/commands/epic/status.js.map +1 -0
  9. package/dist/commands/graph/api-client.d.ts +209 -0
  10. package/dist/commands/graph/api-client.d.ts.map +1 -1
  11. package/dist/commands/graph/api-client.js +125 -0
  12. package/dist/commands/graph/api-client.js.map +1 -1
  13. package/dist/commands/graph/load.d.ts.map +1 -1
  14. package/dist/commands/graph/load.js +40 -2
  15. package/dist/commands/graph/load.js.map +1 -1
  16. package/dist/commands/migrate/index.d.ts +27 -0
  17. package/dist/commands/migrate/index.d.ts.map +1 -0
  18. package/dist/commands/migrate/index.js +76 -0
  19. package/dist/commands/migrate/index.js.map +1 -0
  20. package/dist/commands/migrate/status-migration.d.ts +58 -0
  21. package/dist/commands/migrate/status-migration.d.ts.map +1 -0
  22. package/dist/commands/migrate/status-migration.js +323 -0
  23. package/dist/commands/migrate/status-migration.js.map +1 -0
  24. package/dist/commands/sprint/index.d.ts.map +1 -1
  25. package/dist/commands/sprint/index.js +4 -0
  26. package/dist/commands/sprint/index.js.map +1 -1
  27. package/dist/commands/sprint/status.d.ts +42 -0
  28. package/dist/commands/sprint/status.d.ts.map +1 -0
  29. package/dist/commands/sprint/status.js +278 -0
  30. package/dist/commands/sprint/status.js.map +1 -0
  31. package/dist/commands/start/start-reflection.d.ts +39 -0
  32. package/dist/commands/start/start-reflection.d.ts.map +1 -1
  33. package/dist/commands/start/start-reflection.js +311 -91
  34. package/dist/commands/start/start-reflection.js.map +1 -1
  35. package/dist/commands/sync/sprint-syncer.d.ts +19 -12
  36. package/dist/commands/sync/sprint-syncer.d.ts.map +1 -1
  37. package/dist/commands/sync/sprint-syncer.js +58 -140
  38. package/dist/commands/sync/sprint-syncer.js.map +1 -1
  39. package/dist/commands/sync/sync-command.d.ts.map +1 -1
  40. package/dist/commands/sync/sync-command.js +6 -18
  41. package/dist/commands/sync/sync-command.js.map +1 -1
  42. package/dist/commands/task/index.d.ts +25 -0
  43. package/dist/commands/task/index.d.ts.map +1 -0
  44. package/dist/commands/task/index.js +100 -0
  45. package/dist/commands/task/index.js.map +1 -0
  46. package/dist/commands/task/status.d.ts +43 -0
  47. package/dist/commands/task/status.d.ts.map +1 -0
  48. package/dist/commands/task/status.js +301 -0
  49. package/dist/commands/task/status.js.map +1 -0
  50. package/dist/index.js +12 -29
  51. package/dist/index.js.map +1 -1
  52. package/dist/lib/context-loader-events.d.ts +1 -0
  53. package/dist/lib/context-loader-events.d.ts.map +1 -1
  54. package/dist/lib/context-loader-events.js +28 -41
  55. package/dist/lib/context-loader-events.js.map +1 -1
  56. package/dist/lib/output-formatter.d.ts +12 -4
  57. package/dist/lib/output-formatter.d.ts.map +1 -1
  58. package/dist/lib/output-formatter.js +186 -14
  59. package/dist/lib/output-formatter.js.map +1 -1
  60. package/dist/lib/pending-updates.d.ts +148 -0
  61. package/dist/lib/pending-updates.d.ts.map +1 -0
  62. package/dist/lib/pending-updates.js +301 -0
  63. package/dist/lib/pending-updates.js.map +1 -0
  64. package/dist/lib/sprint-loader.d.ts +86 -14
  65. package/dist/lib/sprint-loader.d.ts.map +1 -1
  66. package/dist/lib/sprint-loader.js +293 -98
  67. package/dist/lib/sprint-loader.js.map +1 -1
  68. package/dist/lib/state-cache.d.ts +142 -0
  69. package/dist/lib/state-cache.d.ts.map +1 -0
  70. package/dist/lib/state-cache.js +259 -0
  71. package/dist/lib/state-cache.js.map +1 -0
  72. package/dist/lib/task-graph-sync.d.ts +105 -0
  73. package/dist/lib/task-graph-sync.d.ts.map +1 -0
  74. package/dist/lib/task-graph-sync.js +178 -0
  75. package/dist/lib/task-graph-sync.js.map +1 -0
  76. package/dist/lib/task-parser.d.ts +107 -0
  77. package/dist/lib/task-parser.d.ts.map +1 -0
  78. package/dist/lib/task-parser.js +384 -0
  79. package/dist/lib/task-parser.js.map +1 -0
  80. package/dist/templates/ai-instructions-template.d.ts.map +1 -1
  81. package/dist/templates/ai-instructions-template.js +7 -5
  82. package/dist/templates/ai-instructions-template.js.map +1 -1
  83. package/dist/templates/epic-template.md +0 -2
  84. package/dist/types/config.d.ts.map +1 -1
  85. package/dist/types/config.js +7 -5
  86. package/dist/types/config.js.map +1 -1
  87. package/dist/utils/synthesis.d.ts +4 -0
  88. package/dist/utils/synthesis.d.ts.map +1 -1
  89. package/dist/utils/synthesis.js +12 -18
  90. package/dist/utils/synthesis.js.map +1 -1
  91. package/package.json +1 -1
@@ -0,0 +1,323 @@
1
+ /**
2
+ * @fileType: utility
3
+ * @status: current
4
+ * @updated: 2026-01-20
5
+ * @tags: [migrate, status, sprint-to-graph, epic-015, sprint-3]
6
+ * @related: [../sync/sprint-syncer.ts, ../graph/api-client.ts, ../task/status.ts]
7
+ * @priority: high
8
+ * @complexity: medium
9
+ * @dependencies: [glob, chalk, fs]
10
+ */
11
+ /**
12
+ * Status Migration (EPIC-015 Sprint 3 Task 1)
13
+ *
14
+ * Migrates task status from sprint markdown files to the knowledge graph.
15
+ * This is a one-way migration: markdown -> graph.
16
+ *
17
+ * Checkbox mapping:
18
+ * [x] -> complete
19
+ * [@] -> in_progress
20
+ * [Z] -> not_started (paused)
21
+ * [ ] -> not_started
22
+ */
23
+ import * as fs from 'fs/promises';
24
+ import * as path from 'path';
25
+ import glob from 'glob';
26
+ import { promisify } from 'util';
27
+ import chalk from 'chalk';
28
+ import { GraphApiClient } from '../graph/api-client.js';
29
+ import { getGraphId } from '../graph/config.js';
30
+ const globAsync = promisify(glob);
31
+ // =============================================================================
32
+ // Checkbox Parsing
33
+ // =============================================================================
34
+ /**
35
+ * Map markdown checkbox to graph task status
36
+ */
37
+ function checkboxToStatus(checkbox) {
38
+ switch (checkbox.toLowerCase()) {
39
+ case 'x':
40
+ return 'complete';
41
+ case '@':
42
+ return 'in_progress';
43
+ case 'z':
44
+ // [Z] is "paused" in markdown, maps to not_started in graph
45
+ return 'not_started';
46
+ case ' ':
47
+ default:
48
+ return 'not_started';
49
+ }
50
+ }
51
+ /**
52
+ * Get display name for checkbox character
53
+ */
54
+ function checkboxDisplay(checkbox) {
55
+ switch (checkbox.toLowerCase()) {
56
+ case 'x':
57
+ return '[x] complete';
58
+ case '@':
59
+ return '[@] in_progress';
60
+ case 'z':
61
+ return '[Z] paused';
62
+ case ' ':
63
+ default:
64
+ return '[ ] not_started';
65
+ }
66
+ }
67
+ // =============================================================================
68
+ // Sprint File Parsing
69
+ // =============================================================================
70
+ /**
71
+ * Find all sprint files in the project
72
+ */
73
+ export async function findSprintFiles(projectRoot) {
74
+ const pattern = path.join(projectRoot, 'docs/sprints/SPRINT-*.md');
75
+ const files = await globAsync(pattern);
76
+ // Filter out CURRENT-SPRINT.md as it's a symlink/copy
77
+ return files.filter(f => !f.includes('CURRENT-SPRINT.md'));
78
+ }
79
+ /**
80
+ * Extract sprint ID from file content
81
+ * Looks for patterns like e006_s02 or adhoc_251209_s01 in task IDs or sprint declarations
82
+ */
83
+ function extractSprintIdFromContent(content) {
84
+ // Try to find sprint ID from task IDs in content
85
+ // Pattern: **ID:** e015_s03_t01 -> extract e015_s03
86
+ const taskIdMatch = content.match(/\*\*ID:\*\*\s*`?(e\d{3}_s\d{2}|adhoc_\d{6}_s\d{2})_t\d{2}/);
87
+ if (taskIdMatch) {
88
+ return taskIdMatch[1];
89
+ }
90
+ // Try to find sprint ID directly declared
91
+ // Pattern: **ID:** `adhoc_260117_s01` or **ID:** e015_s03
92
+ const sprintIdMatch = content.match(/\*\*ID:\*\*\s*`?(e\d{3}_s\d{2}|adhoc_\d{6}_s\d{2})`?/);
93
+ if (sprintIdMatch) {
94
+ return sprintIdMatch[1];
95
+ }
96
+ // Fallback: look for standalone sprint reference
97
+ const sprintMatch = content.match(/Sprint[:\s]+`?(e\d{3}_s\d{2}|adhoc_\d{6}_s\d{2})`?/i);
98
+ if (sprintMatch) {
99
+ return sprintMatch[1];
100
+ }
101
+ return null;
102
+ }
103
+ /**
104
+ * Extract sprint ID from filename as fallback
105
+ * e.g., SPRINT-2025-12-epic006-sprint2.md -> e006_s02
106
+ */
107
+ function extractSprintIdFromFilename(filePath) {
108
+ const filename = path.basename(filePath);
109
+ // Pattern: e015-s03 format
110
+ const directMatch = filename.match(/e(\d{3})-s(\d{2})/i);
111
+ if (directMatch) {
112
+ return `e${directMatch[1]}_s${directMatch[2]}`;
113
+ }
114
+ // Pattern: epic006-sprint2 format
115
+ const legacyMatch = filename.match(/epic(\d{1,3})-sprint(\d+)/i);
116
+ if (legacyMatch) {
117
+ const epicNum = legacyMatch[1].padStart(3, '0');
118
+ const sprintNum = legacyMatch[2].padStart(2, '0');
119
+ return `e${epicNum}_s${sprintNum}`;
120
+ }
121
+ return null;
122
+ }
123
+ /**
124
+ * Parse tasks from sprint markdown content
125
+ * Supports two formats:
126
+ * 1. Block format with **ID:** and **Status:** lines
127
+ * 2. Simple list format: - [x] e015_s03_t01 - Description
128
+ */
129
+ export function parseTasksFromMarkdown(content, sprintFile, sprintId) {
130
+ const tasks = [];
131
+ const lines = content.split('\n');
132
+ let currentTaskId = null;
133
+ for (let i = 0; i < lines.length; i++) {
134
+ const line = lines[i];
135
+ // Format 1: Block format with **ID:** line
136
+ const idMatch = line.match(/\*\*ID:\*\*\s*(\w+)/);
137
+ if (idMatch) {
138
+ currentTaskId = idMatch[1];
139
+ continue;
140
+ }
141
+ // Format 1: Block format **Status:** line
142
+ const blockStatusMatch = line.match(/\*\*Status:\*\*\s*\[([ xX@Z])\]/);
143
+ if (blockStatusMatch && currentTaskId) {
144
+ const checkbox = blockStatusMatch[1];
145
+ tasks.push({
146
+ id: currentTaskId,
147
+ currentStatus: checkboxDisplay(checkbox),
148
+ targetStatus: checkboxToStatus(checkbox),
149
+ sprintId,
150
+ sprintFile,
151
+ lineNumber: i + 1,
152
+ });
153
+ currentTaskId = null;
154
+ continue;
155
+ }
156
+ // Format 2: Simple list format - [x] task_id - Description
157
+ // Matches: - [x] e015_s03_t01 - Description
158
+ // Also matches: - [x] TASK-1 - Description
159
+ const listMatch = line.match(/^[-*]\s*\[([ xX@Z])\]\s*(e\d{3}_s\d{2}_t\d{2}|TASK-\d+)/);
160
+ if (listMatch) {
161
+ const checkbox = listMatch[1];
162
+ const taskId = listMatch[2];
163
+ tasks.push({
164
+ id: taskId,
165
+ currentStatus: checkboxDisplay(checkbox),
166
+ targetStatus: checkboxToStatus(checkbox),
167
+ sprintId,
168
+ sprintFile,
169
+ lineNumber: i + 1,
170
+ });
171
+ }
172
+ }
173
+ return tasks;
174
+ }
175
+ // =============================================================================
176
+ // Migration Logic
177
+ // =============================================================================
178
+ /**
179
+ * Scan all sprint files and build migration plan
180
+ */
181
+ export async function buildMigrationPlan(projectRoot) {
182
+ const sprintFiles = await findSprintFiles(projectRoot);
183
+ const allTasks = [];
184
+ for (const filePath of sprintFiles) {
185
+ const content = await fs.readFile(filePath, 'utf-8');
186
+ // Extract sprint ID
187
+ const sprintId = extractSprintIdFromContent(content) || extractSprintIdFromFilename(filePath);
188
+ if (!sprintId) {
189
+ console.warn(chalk.yellow(` Warning: Could not determine sprint ID for ${path.basename(filePath)}`));
190
+ continue;
191
+ }
192
+ const tasks = parseTasksFromMarkdown(content, filePath, sprintId);
193
+ allTasks.push(...tasks);
194
+ }
195
+ return allTasks;
196
+ }
197
+ /**
198
+ * Execute the migration
199
+ */
200
+ export async function executeMigration(tasks, options = {}) {
201
+ const report = {
202
+ totalTasks: tasks.length,
203
+ toUpdate: [],
204
+ noChange: [],
205
+ errors: [],
206
+ updated: [],
207
+ skipped: [],
208
+ };
209
+ // Get graph ID
210
+ const graphId = process.env.GINKO_GRAPH_ID || (await getGraphId());
211
+ if (!graphId) {
212
+ console.error(chalk.red('Error: Graph not initialized. Run `ginko graph init` first.'));
213
+ process.exit(1);
214
+ }
215
+ const client = new GraphApiClient();
216
+ // Check current status for each task and categorize
217
+ console.log(chalk.dim('Checking current graph status...'));
218
+ for (const task of tasks) {
219
+ try {
220
+ const currentGraphStatus = await client.getTaskStatus(graphId, task.id);
221
+ if (currentGraphStatus.status === task.targetStatus) {
222
+ report.noChange.push(task);
223
+ }
224
+ else {
225
+ report.toUpdate.push(task);
226
+ }
227
+ }
228
+ catch (error) {
229
+ // Task might not exist in graph - treat as needing update
230
+ if (error instanceof Error && error.message.includes('not found')) {
231
+ report.toUpdate.push(task);
232
+ }
233
+ else {
234
+ // Other errors - still try to update
235
+ report.toUpdate.push(task);
236
+ }
237
+ }
238
+ }
239
+ // If dry run, just return the plan
240
+ if (options.dryRun) {
241
+ return report;
242
+ }
243
+ // Execute updates
244
+ console.log(chalk.cyan('\nMigrating task statuses...'));
245
+ for (const task of report.toUpdate) {
246
+ try {
247
+ await client.updateTaskStatus(graphId, task.id, task.targetStatus);
248
+ report.updated.push(task);
249
+ if (options.verbose) {
250
+ console.log(chalk.green(` ✓ ${task.id}: ${task.currentStatus} -> ${task.targetStatus}`));
251
+ }
252
+ }
253
+ catch (error) {
254
+ const errorMsg = error instanceof Error ? error.message : String(error);
255
+ report.errors.push({ task, error: errorMsg });
256
+ if (options.verbose) {
257
+ console.log(chalk.red(` ✗ ${task.id}: ${errorMsg}`));
258
+ }
259
+ }
260
+ }
261
+ return report;
262
+ }
263
+ /**
264
+ * Main migration command entry point
265
+ */
266
+ export async function runStatusMigration(options = {}) {
267
+ const projectRoot = process.cwd();
268
+ const { dryRun = false, verbose = false } = options;
269
+ console.log(chalk.bold('\nStatus Migration: Markdown -> Graph\n'));
270
+ // Build migration plan
271
+ console.log(chalk.dim('Scanning sprint files...'));
272
+ const tasks = await buildMigrationPlan(projectRoot);
273
+ if (tasks.length === 0) {
274
+ console.log(chalk.yellow('No tasks found in sprint files.'));
275
+ console.log(chalk.dim(' Expected files in: docs/sprints/SPRINT-*.md'));
276
+ return;
277
+ }
278
+ console.log(chalk.dim(`Found ${tasks.length} tasks in sprint files.\n`));
279
+ // Execute migration
280
+ const report = await executeMigration(tasks, { dryRun, verbose });
281
+ // Display report
282
+ console.log(chalk.bold('\n--- Migration Report ---\n'));
283
+ if (dryRun) {
284
+ console.log(chalk.cyan('DRY RUN - No changes made\n'));
285
+ console.log(chalk.bold('Migration Plan:'));
286
+ console.log(` Tasks to update: ${chalk.cyan(report.toUpdate.length)}`);
287
+ console.log(` Already in sync: ${chalk.dim(report.noChange.length)}`);
288
+ console.log(` Total tasks: ${report.totalTasks}`);
289
+ // Show tasks to update in verbose mode
290
+ if (verbose) {
291
+ if (report.toUpdate.length > 0) {
292
+ console.log(chalk.bold('\nTasks to update:'));
293
+ for (const task of report.toUpdate) {
294
+ console.log(` ${chalk.cyan(task.id)}: ${chalk.yellow(task.currentStatus)} -> ${chalk.green(task.targetStatus)}`);
295
+ }
296
+ }
297
+ else {
298
+ console.log(chalk.dim('\nAll tasks already in sync with graph.'));
299
+ }
300
+ }
301
+ console.log(chalk.dim('\nRun without --dry-run to apply changes.'));
302
+ }
303
+ else {
304
+ console.log(chalk.bold('Results:'));
305
+ console.log(` Updated: ${chalk.green(report.updated.length)}`);
306
+ console.log(` No change: ${chalk.dim(report.noChange.length)}`);
307
+ console.log(` Errors: ${report.errors.length > 0 ? chalk.red(report.errors.length) : chalk.dim('0')}`);
308
+ console.log(` Total: ${report.totalTasks}`);
309
+ if (report.errors.length > 0) {
310
+ console.log(chalk.bold('\nErrors:'));
311
+ for (const { task, error } of report.errors) {
312
+ console.log(chalk.red(` ${task.id}: ${error}`));
313
+ }
314
+ }
315
+ if (report.updated.length > 0) {
316
+ console.log(chalk.green('\n✓ Migration complete'));
317
+ }
318
+ else if (report.errors.length === 0) {
319
+ console.log(chalk.dim('\nNo updates needed - already in sync'));
320
+ }
321
+ }
322
+ }
323
+ //# sourceMappingURL=status-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-migration.js","sourceRoot":"","sources":["../../../src/commands/migrate/status-migration.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/sprint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGtF;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,GAAE,MAAW,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB/F;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAiBvC;AAGD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/sprint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAItF;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,GAAE,MAAW,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB/F;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAqBvC;AAGD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,eAAe,aAAa,CAAC"}
@@ -12,6 +12,7 @@ import { Command } from 'commander';
12
12
  import { SprintPipeline } from './sprint-pipeline.js';
13
13
  import { EnhancedSprintPipeline } from './sprint-pipeline-enhanced.js';
14
14
  import { createDepsCommand } from './deps.js';
15
+ import { createSprintStatusCommands, addSprintStatusShortcuts } from './status.js';
15
16
  /**
16
17
  * Sprint command router
17
18
  * Routes to enhanced pipeline by default (ADR-014 Safe Defaults)
@@ -52,6 +53,9 @@ export function sprintCommand() {
52
53
  .action((intent, options) => sprintCommandAction(intent, options));
53
54
  // Add subcommands (EPIC-004 Sprint 4)
54
55
  sprint.addCommand(createDepsCommand());
56
+ // Add status commands (EPIC-015 Sprint 1)
57
+ sprint.addCommand(createSprintStatusCommands());
58
+ addSprintStatusShortcuts(sprint);
55
59
  return sprint;
56
60
  }
57
61
  // Export both for direct usage
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/sprint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAiB,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,SAAiB,EAAE,EAAE,UAAe,EAAE;IAC9E,6CAA6C;IAC7C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,6CAA6C;IAC7C,MAAM,aAAa,GAAkB;QACnC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;KAChC,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnE,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;SACjC,WAAW,CAAC,yCAAyC,CAAC;SACtD,QAAQ,CAAC,UAAU,EAAE,8BAA8B,CAAC;SACpD,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC;SACvC,MAAM,CAAC,OAAO,EAAE,iCAAiC,CAAC;SAClD,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC;SACnC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;SAClC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC;SACjC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACpC,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC;SACvC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAErE,sCAAsC;IACtC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+BAA+B;AAC/B,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,CAAC;AAGlD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/sprint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAiB,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEnF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,SAAiB,EAAE,EAAE,UAAe,EAAE;IAC9E,6CAA6C;IAC7C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,6CAA6C;IAC7C,MAAM,aAAa,GAAkB;QACnC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;KAChC,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnE,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;SACjC,WAAW,CAAC,yCAAyC,CAAC;SACtD,QAAQ,CAAC,UAAU,EAAE,8BAA8B,CAAC;SACpD,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC;SACvC,MAAM,CAAC,OAAO,EAAE,iCAAiC,CAAC;SAClD,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC;SACnC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;SAClC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC;SACjC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC;SACpC,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC;SACvC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAErE,sCAAsC;IACtC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEvC,0CAA0C;IAC1C,MAAM,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAChD,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+BAA+B;AAC/B,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,CAAC;AAGlD,eAAe,aAAa,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @fileType: command
3
+ * @status: current
4
+ * @updated: 2026-01-19
5
+ * @tags: [cli, sprint, status, graph-authoritative, epic-015]
6
+ * @related: [../graph/api-client.ts, index.ts]
7
+ * @priority: high
8
+ * @complexity: medium
9
+ * @dependencies: [chalk, commander]
10
+ */
11
+ import { Command } from 'commander';
12
+ interface SprintStatusOptions {
13
+ cascade?: boolean;
14
+ yes?: boolean;
15
+ verbose?: boolean;
16
+ }
17
+ /**
18
+ * Start sprint (planned -> active)
19
+ */
20
+ declare function startSprintCommand(sprintId: string, options?: SprintStatusOptions): Promise<void>;
21
+ /**
22
+ * Complete sprint (active -> complete)
23
+ */
24
+ declare function completeSprintCommand(sprintId: string, options?: SprintStatusOptions): Promise<void>;
25
+ /**
26
+ * Pause sprint (active -> paused)
27
+ */
28
+ declare function pauseSprintCommand(sprintId: string, options?: SprintStatusOptions): Promise<void>;
29
+ /**
30
+ * Show sprint status
31
+ */
32
+ declare function showSprintCommand(sprintId: string, options?: SprintStatusOptions): Promise<void>;
33
+ /**
34
+ * Create sprint status subcommand group
35
+ */
36
+ export declare function createSprintStatusCommands(): Command;
37
+ /**
38
+ * Create shortcut commands for sprint status (without "status" prefix)
39
+ */
40
+ export declare function addSprintStatusShortcuts(sprint: Command): void;
41
+ export { startSprintCommand, completeSprintCommand, pauseSprintCommand, showSprintCommand, };
42
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/sprint/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqHpC,UAAU,mBAAmB;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,iBAAe,kBAAkB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;GAEG;AACH,iBAAe,qBAAqB,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;GAEG;AACH,iBAAe,kBAAkB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;GAEG;AACH,iBAAe,iBAAiB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAWf;AAMD;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAoDpD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAoB9D;AAED,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC"}