@ginkoai/cli 2.0.6 → 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.
- package/dist/commands/epic/index.d.ts +29 -0
- package/dist/commands/epic/index.d.ts.map +1 -0
- package/dist/commands/epic/index.js +94 -0
- package/dist/commands/epic/index.js.map +1 -0
- package/dist/commands/epic/status.d.ts +40 -0
- package/dist/commands/epic/status.d.ts.map +1 -0
- package/dist/commands/epic/status.js +244 -0
- package/dist/commands/epic/status.js.map +1 -0
- package/dist/commands/graph/api-client.d.ts +209 -0
- package/dist/commands/graph/api-client.d.ts.map +1 -1
- package/dist/commands/graph/api-client.js +125 -0
- package/dist/commands/graph/api-client.js.map +1 -1
- package/dist/commands/graph/load.d.ts.map +1 -1
- package/dist/commands/graph/load.js +40 -2
- package/dist/commands/graph/load.js.map +1 -1
- package/dist/commands/migrate/index.d.ts +27 -0
- package/dist/commands/migrate/index.d.ts.map +1 -0
- package/dist/commands/migrate/index.js +76 -0
- package/dist/commands/migrate/index.js.map +1 -0
- package/dist/commands/migrate/status-migration.d.ts +58 -0
- package/dist/commands/migrate/status-migration.d.ts.map +1 -0
- package/dist/commands/migrate/status-migration.js +323 -0
- package/dist/commands/migrate/status-migration.js.map +1 -0
- package/dist/commands/sprint/index.d.ts.map +1 -1
- package/dist/commands/sprint/index.js +4 -0
- package/dist/commands/sprint/index.js.map +1 -1
- package/dist/commands/sprint/status.d.ts +42 -0
- package/dist/commands/sprint/status.d.ts.map +1 -0
- package/dist/commands/sprint/status.js +278 -0
- package/dist/commands/sprint/status.js.map +1 -0
- package/dist/commands/start/start-reflection.d.ts +39 -0
- package/dist/commands/start/start-reflection.d.ts.map +1 -1
- package/dist/commands/start/start-reflection.js +292 -70
- package/dist/commands/start/start-reflection.js.map +1 -1
- package/dist/commands/sync/sprint-syncer.d.ts +19 -12
- package/dist/commands/sync/sprint-syncer.d.ts.map +1 -1
- package/dist/commands/sync/sprint-syncer.js +58 -140
- package/dist/commands/sync/sprint-syncer.js.map +1 -1
- package/dist/commands/sync/sync-command.d.ts.map +1 -1
- package/dist/commands/sync/sync-command.js +6 -18
- package/dist/commands/sync/sync-command.js.map +1 -1
- package/dist/commands/task/index.d.ts +25 -0
- package/dist/commands/task/index.d.ts.map +1 -0
- package/dist/commands/task/index.js +100 -0
- package/dist/commands/task/index.js.map +1 -0
- package/dist/commands/task/status.d.ts +43 -0
- package/dist/commands/task/status.d.ts.map +1 -0
- package/dist/commands/task/status.js +301 -0
- package/dist/commands/task/status.js.map +1 -0
- package/dist/index.js +11 -29
- package/dist/index.js.map +1 -1
- package/dist/lib/context-loader-events.d.ts.map +1 -1
- package/dist/lib/context-loader-events.js +7 -26
- package/dist/lib/context-loader-events.js.map +1 -1
- package/dist/lib/output-formatter.d.ts +8 -2
- package/dist/lib/output-formatter.d.ts.map +1 -1
- package/dist/lib/output-formatter.js +98 -18
- package/dist/lib/output-formatter.js.map +1 -1
- package/dist/lib/pending-updates.d.ts +148 -0
- package/dist/lib/pending-updates.d.ts.map +1 -0
- package/dist/lib/pending-updates.js +301 -0
- package/dist/lib/pending-updates.js.map +1 -0
- package/dist/lib/sprint-loader.d.ts +86 -14
- package/dist/lib/sprint-loader.d.ts.map +1 -1
- package/dist/lib/sprint-loader.js +293 -98
- package/dist/lib/sprint-loader.js.map +1 -1
- package/dist/lib/state-cache.d.ts +142 -0
- package/dist/lib/state-cache.d.ts.map +1 -0
- package/dist/lib/state-cache.js +259 -0
- package/dist/lib/state-cache.js.map +1 -0
- package/dist/lib/task-graph-sync.d.ts +105 -0
- package/dist/lib/task-graph-sync.d.ts.map +1 -0
- package/dist/lib/task-graph-sync.js +178 -0
- package/dist/lib/task-graph-sync.js.map +1 -0
- package/dist/lib/task-parser.d.ts +107 -0
- package/dist/lib/task-parser.d.ts.map +1 -0
- package/dist/lib/task-parser.js +384 -0
- package/dist/lib/task-parser.js.map +1 -0
- package/dist/templates/ai-instructions-template.d.ts.map +1 -1
- package/dist/templates/ai-instructions-template.js +7 -5
- package/dist/templates/ai-instructions-template.js.map +1 -1
- package/dist/templates/epic-template.md +0 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +7 -5
- package/dist/types/config.js.map +1 -1
- package/dist/utils/synthesis.d.ts +4 -0
- package/dist/utils/synthesis.d.ts.map +1 -1
- package/dist/utils/synthesis.js +12 -18
- package/dist/utils/synthesis.js.map +1 -1
- 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;
|
|
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;
|
|
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"}
|