mycontext-cli 1.0.26 → 1.0.27

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 (56) hide show
  1. package/README.md +199 -66
  2. package/dist/agents/implementations/InteractiveAgent.js +1 -1
  3. package/dist/agents/implementations/InteractiveAgent.js.map +1 -1
  4. package/dist/cli.js +18 -66
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/agent-flow.d.ts.map +1 -1
  7. package/dist/commands/agent-flow.js +1 -1
  8. package/dist/commands/agent-flow.js.map +1 -1
  9. package/dist/commands/generate-components.d.ts +0 -1
  10. package/dist/commands/generate-components.d.ts.map +1 -1
  11. package/dist/commands/generate-components.js +3 -106
  12. package/dist/commands/generate-components.js.map +1 -1
  13. package/dist/commands/generate.d.ts +0 -2
  14. package/dist/commands/generate.d.ts.map +1 -1
  15. package/dist/commands/generate.js +48 -493
  16. package/dist/commands/generate.js.map +1 -1
  17. package/dist/commands/init.d.ts +0 -2
  18. package/dist/commands/init.d.ts.map +1 -1
  19. package/dist/commands/init.js +0 -102
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/commands/migrate.d.ts.map +1 -1
  22. package/dist/commands/migrate.js +0 -4
  23. package/dist/commands/migrate.js.map +1 -1
  24. package/dist/commands/update.d.ts +0 -3
  25. package/dist/commands/update.d.ts.map +1 -1
  26. package/dist/commands/update.js +11 -83
  27. package/dist/commands/update.js.map +1 -1
  28. package/dist/config/ai-providers.json +7 -7
  29. package/dist/config/dependencies.json +2 -2
  30. package/dist/utils/fileSystem.d.ts +0 -8
  31. package/dist/utils/fileSystem.d.ts.map +1 -1
  32. package/dist/utils/fileSystem.js +0 -50
  33. package/dist/utils/fileSystem.js.map +1 -1
  34. package/dist/utils/hybridAIClient.js +1 -1
  35. package/dist/utils/hybridAIClient.js.map +1 -1
  36. package/package.json +2 -3
  37. package/dist/commands/clear.d.ts +0 -25
  38. package/dist/commands/clear.d.ts.map +0 -1
  39. package/dist/commands/clear.js +0 -73
  40. package/dist/commands/clear.js.map +0 -1
  41. package/dist/commands/history.d.ts +0 -98
  42. package/dist/commands/history.d.ts.map +0 -1
  43. package/dist/commands/history.js +0 -308
  44. package/dist/commands/history.js.map +0 -1
  45. package/dist/commands/now.d.ts +0 -34
  46. package/dist/commands/now.d.ts.map +0 -1
  47. package/dist/commands/now.js +0 -168
  48. package/dist/commands/now.js.map +0 -1
  49. package/dist/commands/timestamp.d.ts +0 -28
  50. package/dist/commands/timestamp.d.ts.map +0 -1
  51. package/dist/commands/timestamp.js +0 -105
  52. package/dist/commands/timestamp.js.map +0 -1
  53. package/dist/commands/track.d.ts +0 -29
  54. package/dist/commands/track.d.ts.map +0 -1
  55. package/dist/commands/track.js +0 -333
  56. package/dist/commands/track.js.map +0 -1
@@ -1,28 +0,0 @@
1
- import { Command } from "commander";
2
- export interface TimestampOptions {
3
- withGitHash?: boolean;
4
- format?: string;
5
- }
6
- export declare class TimestampCommand {
7
- /**
8
- * Get current timestamp in YYYYMMDDHHMMSS format
9
- */
10
- static getTimestamp(): string;
11
- /**
12
- * Get git hash if available
13
- */
14
- static getGitHash(): string | null;
15
- /**
16
- * Format timestamp based on format option
17
- */
18
- static formatTimestamp(timestamp: string, format: string): string;
19
- /**
20
- * Execute timestamp command
21
- */
22
- static execute(options: TimestampOptions): void;
23
- }
24
- /**
25
- * Register timestamp command with Commander
26
- */
27
- export declare function registerTimestampCommand(program: Command): void;
28
- //# sourceMappingURL=timestamp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../src/commands/timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,MAAM;IAY7B;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM,GAAG,IAAI;IAYlC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IA8BjE;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;CA2BhD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAS/D"}
@@ -1,105 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TimestampCommand = void 0;
7
- exports.registerTimestampCommand = registerTimestampCommand;
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const child_process_1 = require("child_process");
10
- class TimestampCommand {
11
- /**
12
- * Get current timestamp in YYYYMMDDHHMMSS format
13
- */
14
- static getTimestamp() {
15
- const now = new Date();
16
- const year = now.getFullYear();
17
- const month = String(now.getMonth() + 1).padStart(2, "0");
18
- const day = String(now.getDate()).padStart(2, "0");
19
- const hours = String(now.getHours()).padStart(2, "0");
20
- const minutes = String(now.getMinutes()).padStart(2, "0");
21
- const seconds = String(now.getSeconds()).padStart(2, "0");
22
- return `${year}${month}${day}${hours}${minutes}${seconds}`;
23
- }
24
- /**
25
- * Get git hash if available
26
- */
27
- static getGitHash() {
28
- try {
29
- const hash = (0, child_process_1.execSync)("git rev-parse --short HEAD", {
30
- encoding: "utf8",
31
- stdio: ["pipe", "pipe", "pipe"]
32
- }).trim();
33
- return hash;
34
- }
35
- catch (error) {
36
- return null;
37
- }
38
- }
39
- /**
40
- * Format timestamp based on format option
41
- */
42
- static formatTimestamp(timestamp, format) {
43
- switch (format.toLowerCase()) {
44
- case "iso":
45
- // Convert YYYYMMDDHHMMSS to ISO format
46
- const year = timestamp.substring(0, 4);
47
- const month = timestamp.substring(4, 6);
48
- const day = timestamp.substring(6, 8);
49
- const hours = timestamp.substring(8, 10);
50
- const minutes = timestamp.substring(10, 12);
51
- const seconds = timestamp.substring(12, 14);
52
- return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;
53
- case "unix":
54
- // Convert to Unix timestamp
55
- const date = new Date(parseInt(timestamp.substring(0, 4)), parseInt(timestamp.substring(4, 6)) - 1, parseInt(timestamp.substring(6, 8)), parseInt(timestamp.substring(8, 10)), parseInt(timestamp.substring(10, 12)), parseInt(timestamp.substring(12, 14)));
56
- return Math.floor(date.getTime() / 1000).toString();
57
- case "default":
58
- default:
59
- return timestamp;
60
- }
61
- }
62
- /**
63
- * Execute timestamp command
64
- */
65
- static execute(options) {
66
- try {
67
- let timestamp = this.getTimestamp();
68
- // Apply format
69
- if (options.format) {
70
- timestamp = this.formatTimestamp(timestamp, options.format);
71
- }
72
- // Add git hash if requested
73
- if (options.withGitHash) {
74
- const gitHash = this.getGitHash();
75
- if (gitHash) {
76
- timestamp = `${timestamp}_${gitHash}`;
77
- }
78
- else {
79
- console.warn(chalk_1.default.yellow("⚠️ Git repository not found, skipping git hash"));
80
- }
81
- }
82
- // Output the timestamp
83
- console.log(timestamp);
84
- }
85
- catch (error) {
86
- console.error(chalk_1.default.red("❌ Error generating timestamp:"), error);
87
- process.exit(1);
88
- }
89
- }
90
- }
91
- exports.TimestampCommand = TimestampCommand;
92
- /**
93
- * Register timestamp command with Commander
94
- */
95
- function registerTimestampCommand(program) {
96
- program
97
- .command("timestamp")
98
- .description("Get current timestamp in YYYYMMDDHHMMSS format for naming migrations and context files")
99
- .option("--with-git-hash", "Append git commit hash for unique identifiers")
100
- .option("--format <format>", "Output format (default, iso, unix)", "default")
101
- .action((options) => {
102
- TimestampCommand.execute(options);
103
- });
104
- }
105
- //# sourceMappingURL=timestamp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/commands/timestamp.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env node
2
- import { Command } from "commander";
3
- interface TrackOptions {
4
- component?: string;
5
- status?: string;
6
- progress?: number;
7
- assign?: string;
8
- note?: string;
9
- list?: boolean;
10
- dashboard?: boolean;
11
- }
12
- export declare class TrackCommand {
13
- private fs;
14
- execute(options: TrackOptions): Promise<void>;
15
- private showDashboard;
16
- private listComponents;
17
- private updateComponent;
18
- private interactiveMode;
19
- private loadComponentList;
20
- private saveComponentList;
21
- private getAllComponents;
22
- private findComponent;
23
- private calculateProgressStats;
24
- private getRecentUpdates;
25
- private getStatusIndex;
26
- }
27
- export declare function registerTrackCommand(program: Command): void;
28
- export {};
29
- //# sourceMappingURL=track.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/commands/track.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAA2B;IAE/B,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YA2BrC,aAAa;YA0Cb,cAAc;YAuBd,eAAe;YAgDf,eAAe;YAuEf,iBAAiB;YAejB,iBAAiB;IAK/B,OAAO,CAAC,gBAAgB;IA6CxB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,sBAAsB;IAiC9B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,cAAc;CAIvB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoB3D"}
@@ -1,333 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.TrackCommand = void 0;
8
- exports.registerTrackCommand = registerTrackCommand;
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const prompts_1 = __importDefault(require("prompts"));
11
- const fileSystem_1 = require("../utils/fileSystem");
12
- const spinner_1 = require("../utils/spinner");
13
- class TrackCommand {
14
- constructor() {
15
- this.fs = new fileSystem_1.FileSystemManager();
16
- }
17
- async execute(options) {
18
- const spinner = new spinner_1.EnhancedSpinner("Tracking development progress...");
19
- try {
20
- if (options.dashboard) {
21
- await this.showDashboard();
22
- return;
23
- }
24
- if (options.list) {
25
- await this.listComponents();
26
- return;
27
- }
28
- if (options.component) {
29
- await this.updateComponent(options);
30
- return;
31
- }
32
- // Interactive mode
33
- await this.interactiveMode();
34
- }
35
- catch (error) {
36
- spinner.error({ text: "Tracking failed" });
37
- throw error;
38
- }
39
- }
40
- async showDashboard() {
41
- const componentList = await this.loadComponentList();
42
- if (!componentList)
43
- return;
44
- console.log(chalk_1.default.blue.bold("\n📊 Development Dashboard\n"));
45
- // Project overview
46
- const metadata = componentList.metadata?.development || {};
47
- console.log(chalk_1.default.cyan("🎯 Project Overview:"));
48
- console.log(chalk_1.default.gray(` Status: ${metadata.projectStatus || "unknown"}`));
49
- console.log(chalk_1.default.gray(` Progress: ${metadata.overallProgress || 0}%`));
50
- console.log(chalk_1.default.gray(` Team: ${(metadata.teamMembers || []).join(", ")}`));
51
- console.log(chalk_1.default.gray(` Target: ${metadata.projectTargetDate || "TBD"}`));
52
- // Progress by type
53
- const stats = this.calculateProgressStats(componentList);
54
- console.log(chalk_1.default.cyan("\n📈 Progress by Type:"));
55
- console.log(chalk_1.default.gray(` Pages: ${stats.pages.completed}/${stats.pages.total} (${stats.pages.percentage}%)`));
56
- console.log(chalk_1.default.gray(` Composites: ${stats.composites.completed}/${stats.composites.total} (${stats.composites.percentage}%)`));
57
- console.log(chalk_1.default.gray(` Atomics: ${stats.atomics.completed}/${stats.atomics.total} (${stats.atomics.percentage}%)`));
58
- // Recent updates
59
- const recentUpdates = this.getRecentUpdates(componentList);
60
- if (recentUpdates.length > 0) {
61
- console.log(chalk_1.default.cyan("\n🕒 Recent Updates:"));
62
- recentUpdates.slice(0, 5).forEach(update => {
63
- console.log(chalk_1.default.gray(` ${update.component}: ${update.status} (${update.progress}%) - ${update.lastUpdated}`));
64
- });
65
- }
66
- // Milestones
67
- const milestones = metadata.milestones || [];
68
- if (milestones.length > 0) {
69
- console.log(chalk_1.default.cyan("\n🎯 Milestones:"));
70
- milestones.forEach((milestone) => {
71
- const status = milestone.status === "completed" ? "✅" :
72
- milestone.status === "in-progress" ? "🔄" : "⏳";
73
- console.log(chalk_1.default.gray(` ${status} ${milestone.name} - ${milestone.date}`));
74
- });
75
- }
76
- }
77
- async listComponents() {
78
- const componentList = await this.loadComponentList();
79
- if (!componentList)
80
- return;
81
- console.log(chalk_1.default.blue.bold("\n📋 Component List\n"));
82
- // List all components with their status
83
- const allComponents = this.getAllComponents(componentList);
84
- allComponents.forEach(component => {
85
- const dev = component.development || {};
86
- const status = dev.status || "unknown";
87
- const progress = dev.progress || 0;
88
- const assigned = dev.assignedTo || "unassigned";
89
- const statusIcon = status === "completed" ? "✅" :
90
- status === "in-progress" ? "🔄" :
91
- status === "testing" ? "🧪" :
92
- status === "deployed" ? "🚀" : "⏳";
93
- console.log(chalk_1.default.gray(`${statusIcon} ${component.name} (${component.type}) - ${progress}% - ${assigned}`));
94
- });
95
- }
96
- async updateComponent(options) {
97
- const componentList = await this.loadComponentList();
98
- if (!componentList)
99
- return;
100
- const component = this.findComponent(componentList, options.component);
101
- if (!component) {
102
- console.log(chalk_1.default.red(`Component '${options.component}' not found`));
103
- return;
104
- }
105
- // Update development tracking
106
- if (!component.development) {
107
- component.development = {
108
- status: "planned",
109
- progress: 0,
110
- assignedTo: "unassigned",
111
- startDate: new Date().toISOString().split('T')[0],
112
- targetDate: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString().split('T')[0],
113
- lastUpdated: new Date().toISOString(),
114
- notes: ""
115
- };
116
- }
117
- if (options.status) {
118
- component.development.status = options.status;
119
- }
120
- if (options.progress !== undefined) {
121
- component.development.progress = options.progress;
122
- }
123
- if (options.assign) {
124
- component.development.assignedTo = options.assign;
125
- }
126
- if (options.note) {
127
- component.development.notes = options.note;
128
- }
129
- component.development.lastUpdated = new Date().toISOString();
130
- // Save updated component list
131
- await this.saveComponentList(componentList);
132
- console.log(chalk_1.default.green(`✅ Updated ${component.name}:`));
133
- console.log(chalk_1.default.gray(` Status: ${component.development.status}`));
134
- console.log(chalk_1.default.gray(` Progress: ${component.development.progress}%`));
135
- console.log(chalk_1.default.gray(` Assigned: ${component.development.assignedTo}`));
136
- console.log(chalk_1.default.gray(` Notes: ${component.development.notes}`));
137
- }
138
- async interactiveMode() {
139
- const componentList = await this.loadComponentList();
140
- if (!componentList)
141
- return;
142
- const allComponents = this.getAllComponents(componentList);
143
- const response = await (0, prompts_1.default)({
144
- type: "select",
145
- name: "component",
146
- message: "Select component to update:",
147
- choices: allComponents.map(comp => ({
148
- title: `${comp.name} (${comp.type}) - ${(comp.development?.status || "unknown")} - ${(comp.development?.progress || 0)}%`,
149
- value: comp.name
150
- }))
151
- });
152
- if (!response.component)
153
- return;
154
- const component = this.findComponent(componentList, response.component);
155
- if (!component)
156
- return;
157
- // Update status
158
- const statusResponse = await (0, prompts_1.default)({
159
- type: "select",
160
- name: "status",
161
- message: "Update status:",
162
- choices: [
163
- { title: "Planned", value: "planned" },
164
- { title: "In Progress", value: "in-progress" },
165
- { title: "Testing", value: "testing" },
166
- { title: "Completed", value: "completed" },
167
- { title: "Deployed", value: "deployed" }
168
- ],
169
- initial: this.getStatusIndex(component.development?.status || "planned")
170
- });
171
- // Update progress
172
- const progressResponse = await (0, prompts_1.default)({
173
- type: "number",
174
- name: "progress",
175
- message: "Update progress (0-100):",
176
- initial: component.development?.progress || 0,
177
- validate: (value) => value >= 0 && value <= 100 ? true : "Progress must be between 0 and 100"
178
- });
179
- // Update assignment
180
- const assignResponse = await (0, prompts_1.default)({
181
- type: "text",
182
- name: "assignedTo",
183
- message: "Assign to (or 'unassigned'):",
184
- initial: component.development?.assignedTo || "unassigned"
185
- });
186
- // Update notes
187
- const notesResponse = await (0, prompts_1.default)({
188
- type: "text",
189
- name: "notes",
190
- message: "Add notes:",
191
- initial: component.development?.notes || ""
192
- });
193
- // Apply updates
194
- await this.updateComponent({
195
- component: response.component,
196
- status: statusResponse.status,
197
- progress: progressResponse.progress,
198
- assign: assignResponse.assignedTo,
199
- note: notesResponse.notes
200
- });
201
- }
202
- async loadComponentList() {
203
- const componentListPath = ".mycontext/04-component-list.json";
204
- if (!(await this.fs.exists(componentListPath))) {
205
- console.log(chalk_1.default.red("Component list not found. Run 'mycontext generate components-list' first."));
206
- return null;
207
- }
208
- try {
209
- return JSON.parse(await this.fs.readFile(componentListPath));
210
- }
211
- catch (error) {
212
- console.log(chalk_1.default.red("Failed to load component list"));
213
- return null;
214
- }
215
- }
216
- async saveComponentList(componentList) {
217
- const componentListPath = ".mycontext/04-component-list.json";
218
- await this.fs.writeFile(componentListPath, JSON.stringify(componentList, null, 2));
219
- }
220
- getAllComponents(componentList) {
221
- const components = [];
222
- // Add pages
223
- if (componentList.pages) {
224
- componentList.pages.forEach((page) => {
225
- components.push({ ...page, path: `pages.${page.name}` });
226
- if (page.composites) {
227
- page.composites.forEach((composite) => {
228
- components.push({ ...composite, path: `pages.${page.name}.composites.${composite.name}` });
229
- if (composite.atomics) {
230
- composite.atomics.forEach((atomic) => {
231
- components.push({ ...atomic, path: `pages.${page.name}.composites.${composite.name}.atomics.${atomic.name}` });
232
- });
233
- }
234
- });
235
- }
236
- });
237
- }
238
- // Add standalone composites
239
- if (componentList.standaloneComposites) {
240
- componentList.standaloneComposites.forEach((composite) => {
241
- components.push({ ...composite, path: `standaloneComposites.${composite.name}` });
242
- if (composite.atomics) {
243
- composite.atomics.forEach((atomic) => {
244
- components.push({ ...atomic, path: `standaloneComposites.${composite.name}.atomics.${atomic.name}` });
245
- });
246
- }
247
- });
248
- }
249
- // Add standalone atomics
250
- if (componentList.standaloneAtomics) {
251
- componentList.standaloneAtomics.forEach((atomic) => {
252
- components.push({ ...atomic, path: `standaloneAtomics.${atomic.name}` });
253
- });
254
- }
255
- return components;
256
- }
257
- findComponent(componentList, name) {
258
- const allComponents = this.getAllComponents(componentList);
259
- return allComponents.find(comp => comp.name === name);
260
- }
261
- calculateProgressStats(componentList) {
262
- const allComponents = this.getAllComponents(componentList);
263
- const stats = {
264
- pages: { total: 0, completed: 0, percentage: 0 },
265
- composites: { total: 0, completed: 0, percentage: 0 },
266
- atomics: { total: 0, completed: 0, percentage: 0 }
267
- };
268
- allComponents.forEach(component => {
269
- const dev = component.development || {};
270
- const isCompleted = dev.status === "completed" || dev.status === "deployed";
271
- if (component.type === "page") {
272
- stats.pages.total++;
273
- if (isCompleted)
274
- stats.pages.completed++;
275
- }
276
- else if (component.type === "composite") {
277
- stats.composites.total++;
278
- if (isCompleted)
279
- stats.composites.completed++;
280
- }
281
- else if (component.type === "atomic") {
282
- stats.atomics.total++;
283
- if (isCompleted)
284
- stats.atomics.completed++;
285
- }
286
- });
287
- // Calculate percentages
288
- stats.pages.percentage = stats.pages.total > 0 ? Math.round((stats.pages.completed / stats.pages.total) * 100) : 0;
289
- stats.composites.percentage = stats.composites.total > 0 ? Math.round((stats.composites.completed / stats.composites.total) * 100) : 0;
290
- stats.atomics.percentage = stats.atomics.total > 0 ? Math.round((stats.atomics.completed / stats.atomics.total) * 100) : 0;
291
- return stats;
292
- }
293
- getRecentUpdates(componentList) {
294
- const allComponents = this.getAllComponents(componentList);
295
- return allComponents
296
- .filter(comp => comp.development?.lastUpdated)
297
- .map(comp => ({
298
- component: comp.name,
299
- status: comp.development.status,
300
- progress: comp.development.progress,
301
- lastUpdated: comp.development.lastUpdated
302
- }))
303
- .sort((a, b) => new Date(b.lastUpdated).getTime() - new Date(a.lastUpdated).getTime());
304
- }
305
- getStatusIndex(status) {
306
- const statuses = ["planned", "in-progress", "testing", "completed", "deployed"];
307
- return statuses.indexOf(status);
308
- }
309
- }
310
- exports.TrackCommand = TrackCommand;
311
- function registerTrackCommand(program) {
312
- program
313
- .command("track")
314
- .description("Track development progress of components")
315
- .option("-c, --component <name>", "Component name to update")
316
- .option("-s, --status <status>", "Status: planned|in-progress|testing|completed|deployed")
317
- .option("-p, --progress <number>", "Progress percentage (0-100)")
318
- .option("-a, --assign <name>", "Assign to developer")
319
- .option("-n, --note <text>", "Add development note")
320
- .option("-l, --list", "List all components")
321
- .option("-d, --dashboard", "Show development dashboard")
322
- .action(async (options) => {
323
- try {
324
- const command = new TrackCommand();
325
- await command.execute(options);
326
- }
327
- catch (error) {
328
- console.error(chalk_1.default.red("❌ Track failed:"), error);
329
- process.exit(1);
330
- }
331
- });
332
- }
333
- //# sourceMappingURL=track.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/commands/track.ts"],"names":[],"mappings":"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"}