galaxy-code 0.1.5 → 0.1.7

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 (222) hide show
  1. package/README.md +149 -600
  2. package/dist/cli.bundle.js +588 -0
  3. package/package.json +14 -12
  4. package/dist/app.d.ts +0 -7
  5. package/dist/app.js +0 -597
  6. package/dist/auto-updater.d.ts +0 -21
  7. package/dist/auto-updater.js +0 -144
  8. package/dist/cli.d.ts +0 -2
  9. package/dist/cli.js +0 -159
  10. package/dist/connections/claude.d.ts +0 -71
  11. package/dist/connections/claude.js +0 -303
  12. package/dist/connections/gemini.d.ts +0 -40
  13. package/dist/connections/gemini.js +0 -232
  14. package/dist/connections/index.d.ts +0 -11
  15. package/dist/connections/index.js +0 -11
  16. package/dist/connections/ollama.d.ts +0 -37
  17. package/dist/connections/ollama.js +0 -73
  18. package/dist/connections/types.d.ts +0 -22
  19. package/dist/connections/types.js +0 -7
  20. package/dist/env.d.ts +0 -1
  21. package/dist/env.js +0 -29
  22. package/dist/node_modules/@workspace/agent-core/connections/claude.d.ts +0 -72
  23. package/dist/node_modules/@workspace/agent-core/connections/claude.d.ts.map +0 -1
  24. package/dist/node_modules/@workspace/agent-core/connections/claude.js +0 -270
  25. package/dist/node_modules/@workspace/agent-core/connections/claude.js.map +0 -1
  26. package/dist/node_modules/@workspace/agent-core/connections/gemini.d.ts +0 -41
  27. package/dist/node_modules/@workspace/agent-core/connections/gemini.d.ts.map +0 -1
  28. package/dist/node_modules/@workspace/agent-core/connections/gemini.js +0 -203
  29. package/dist/node_modules/@workspace/agent-core/connections/gemini.js.map +0 -1
  30. package/dist/node_modules/@workspace/agent-core/connections/index.d.ts +0 -12
  31. package/dist/node_modules/@workspace/agent-core/connections/index.d.ts.map +0 -1
  32. package/dist/node_modules/@workspace/agent-core/connections/index.js +0 -12
  33. package/dist/node_modules/@workspace/agent-core/connections/index.js.map +0 -1
  34. package/dist/node_modules/@workspace/agent-core/connections/ollama.d.ts +0 -38
  35. package/dist/node_modules/@workspace/agent-core/connections/ollama.d.ts.map +0 -1
  36. package/dist/node_modules/@workspace/agent-core/connections/ollama.js +0 -64
  37. package/dist/node_modules/@workspace/agent-core/connections/ollama.js.map +0 -1
  38. package/dist/node_modules/@workspace/agent-core/connections/types.d.ts +0 -23
  39. package/dist/node_modules/@workspace/agent-core/connections/types.d.ts.map +0 -1
  40. package/dist/node_modules/@workspace/agent-core/connections/types.js +0 -8
  41. package/dist/node_modules/@workspace/agent-core/connections/types.js.map +0 -1
  42. package/dist/node_modules/@workspace/agent-core/index.d.ts +0 -13
  43. package/dist/node_modules/@workspace/agent-core/index.d.ts.map +0 -1
  44. package/dist/node_modules/@workspace/agent-core/index.js +0 -22
  45. package/dist/node_modules/@workspace/agent-core/index.js.map +0 -1
  46. package/dist/node_modules/@workspace/agent-core/package.json +0 -53
  47. package/dist/node_modules/@workspace/agent-core/prompts/ba-it-analyzer.d.ts +0 -2
  48. package/dist/node_modules/@workspace/agent-core/prompts/ba-it-analyzer.d.ts.map +0 -1
  49. package/dist/node_modules/@workspace/agent-core/prompts/ba-it-analyzer.js +0 -144
  50. package/dist/node_modules/@workspace/agent-core/prompts/ba-it-analyzer.js.map +0 -1
  51. package/dist/node_modules/@workspace/agent-core/prompts/index.d.ts +0 -12
  52. package/dist/node_modules/@workspace/agent-core/prompts/index.d.ts.map +0 -1
  53. package/dist/node_modules/@workspace/agent-core/prompts/index.js +0 -12
  54. package/dist/node_modules/@workspace/agent-core/prompts/index.js.map +0 -1
  55. package/dist/node_modules/@workspace/agent-core/prompts/orchestrator.d.ts +0 -9
  56. package/dist/node_modules/@workspace/agent-core/prompts/orchestrator.d.ts.map +0 -1
  57. package/dist/node_modules/@workspace/agent-core/prompts/orchestrator.js +0 -89
  58. package/dist/node_modules/@workspace/agent-core/prompts/orchestrator.js.map +0 -1
  59. package/dist/node_modules/@workspace/agent-core/prompts/planning-agent.d.ts +0 -9
  60. package/dist/node_modules/@workspace/agent-core/prompts/planning-agent.d.ts.map +0 -1
  61. package/dist/node_modules/@workspace/agent-core/prompts/planning-agent.js +0 -196
  62. package/dist/node_modules/@workspace/agent-core/prompts/planning-agent.js.map +0 -1
  63. package/dist/node_modules/@workspace/agent-core/prompts/universal-agent.d.ts +0 -8
  64. package/dist/node_modules/@workspace/agent-core/prompts/universal-agent.d.ts.map +0 -1
  65. package/dist/node_modules/@workspace/agent-core/prompts/universal-agent.js +0 -112
  66. package/dist/node_modules/@workspace/agent-core/prompts/universal-agent.js.map +0 -1
  67. package/dist/node_modules/@workspace/agent-core/providers/agent-selector.d.ts +0 -30
  68. package/dist/node_modules/@workspace/agent-core/providers/agent-selector.d.ts.map +0 -1
  69. package/dist/node_modules/@workspace/agent-core/providers/agent-selector.js +0 -76
  70. package/dist/node_modules/@workspace/agent-core/providers/agent-selector.js.map +0 -1
  71. package/dist/node_modules/@workspace/agent-core/providers/claude-agent.d.ts +0 -30
  72. package/dist/node_modules/@workspace/agent-core/providers/claude-agent.d.ts.map +0 -1
  73. package/dist/node_modules/@workspace/agent-core/providers/claude-agent.js +0 -107
  74. package/dist/node_modules/@workspace/agent-core/providers/claude-agent.js.map +0 -1
  75. package/dist/node_modules/@workspace/agent-core/providers/gemini-agent.d.ts +0 -37
  76. package/dist/node_modules/@workspace/agent-core/providers/gemini-agent.d.ts.map +0 -1
  77. package/dist/node_modules/@workspace/agent-core/providers/gemini-agent.js +0 -144
  78. package/dist/node_modules/@workspace/agent-core/providers/gemini-agent.js.map +0 -1
  79. package/dist/node_modules/@workspace/agent-core/providers/index.d.ts +0 -13
  80. package/dist/node_modules/@workspace/agent-core/providers/index.d.ts.map +0 -1
  81. package/dist/node_modules/@workspace/agent-core/providers/index.js +0 -13
  82. package/dist/node_modules/@workspace/agent-core/providers/index.js.map +0 -1
  83. package/dist/node_modules/@workspace/agent-core/providers/ollama-agent.d.ts +0 -54
  84. package/dist/node_modules/@workspace/agent-core/providers/ollama-agent.d.ts.map +0 -1
  85. package/dist/node_modules/@workspace/agent-core/providers/ollama-agent.js +0 -247
  86. package/dist/node_modules/@workspace/agent-core/providers/ollama-agent.js.map +0 -1
  87. package/dist/node_modules/@workspace/agent-core/providers/orchestrator.d.ts +0 -17
  88. package/dist/node_modules/@workspace/agent-core/providers/orchestrator.d.ts.map +0 -1
  89. package/dist/node_modules/@workspace/agent-core/providers/orchestrator.js +0 -62
  90. package/dist/node_modules/@workspace/agent-core/providers/orchestrator.js.map +0 -1
  91. package/dist/node_modules/@workspace/agent-core/tools/ba-it-analyzer.d.ts +0 -67
  92. package/dist/node_modules/@workspace/agent-core/tools/ba-it-analyzer.d.ts.map +0 -1
  93. package/dist/node_modules/@workspace/agent-core/tools/ba-it-analyzer.js +0 -81
  94. package/dist/node_modules/@workspace/agent-core/tools/ba-it-analyzer.js.map +0 -1
  95. package/dist/node_modules/@workspace/agent-core/tools/code-generate-agent.d.ts +0 -52
  96. package/dist/node_modules/@workspace/agent-core/tools/code-generate-agent.d.ts.map +0 -1
  97. package/dist/node_modules/@workspace/agent-core/tools/code-generate-agent.js +0 -150
  98. package/dist/node_modules/@workspace/agent-core/tools/code-generate-agent.js.map +0 -1
  99. package/dist/node_modules/@workspace/agent-core/tools/command-runner.d.ts +0 -15
  100. package/dist/node_modules/@workspace/agent-core/tools/command-runner.d.ts.map +0 -1
  101. package/dist/node_modules/@workspace/agent-core/tools/command-runner.js +0 -121
  102. package/dist/node_modules/@workspace/agent-core/tools/command-runner.js.map +0 -1
  103. package/dist/node_modules/@workspace/agent-core/tools/document-parser.d.ts +0 -12
  104. package/dist/node_modules/@workspace/agent-core/tools/document-parser.d.ts.map +0 -1
  105. package/dist/node_modules/@workspace/agent-core/tools/document-parser.js +0 -84
  106. package/dist/node_modules/@workspace/agent-core/tools/document-parser.js.map +0 -1
  107. package/dist/node_modules/@workspace/agent-core/tools/file-operations.d.ts +0 -18
  108. package/dist/node_modules/@workspace/agent-core/tools/file-operations.d.ts.map +0 -1
  109. package/dist/node_modules/@workspace/agent-core/tools/file-operations.js +0 -126
  110. package/dist/node_modules/@workspace/agent-core/tools/file-operations.js.map +0 -1
  111. package/dist/node_modules/@workspace/agent-core/tools/galaxy-ui-integration.d.ts +0 -95
  112. package/dist/node_modules/@workspace/agent-core/tools/galaxy-ui-integration.d.ts.map +0 -1
  113. package/dist/node_modules/@workspace/agent-core/tools/galaxy-ui-integration.js +0 -245
  114. package/dist/node_modules/@workspace/agent-core/tools/galaxy-ui-integration.js.map +0 -1
  115. package/dist/node_modules/@workspace/agent-core/tools/git-operations.d.ts +0 -12
  116. package/dist/node_modules/@workspace/agent-core/tools/git-operations.d.ts.map +0 -1
  117. package/dist/node_modules/@workspace/agent-core/tools/git-operations.js +0 -115
  118. package/dist/node_modules/@workspace/agent-core/tools/git-operations.js.map +0 -1
  119. package/dist/node_modules/@workspace/agent-core/tools/index.d.ts +0 -11
  120. package/dist/node_modules/@workspace/agent-core/tools/index.d.ts.map +0 -1
  121. package/dist/node_modules/@workspace/agent-core/tools/index.js +0 -11
  122. package/dist/node_modules/@workspace/agent-core/tools/index.js.map +0 -1
  123. package/dist/node_modules/@workspace/agent-core/tools/planning-agent.d.ts +0 -30
  124. package/dist/node_modules/@workspace/agent-core/tools/planning-agent.d.ts.map +0 -1
  125. package/dist/node_modules/@workspace/agent-core/tools/planning-agent.js +0 -125
  126. package/dist/node_modules/@workspace/agent-core/tools/planning-agent.js.map +0 -1
  127. package/dist/node_modules/@workspace/agent-core/tools/progress-reporter.d.ts +0 -20
  128. package/dist/node_modules/@workspace/agent-core/tools/progress-reporter.d.ts.map +0 -1
  129. package/dist/node_modules/@workspace/agent-core/tools/progress-reporter.js +0 -46
  130. package/dist/node_modules/@workspace/agent-core/tools/progress-reporter.js.map +0 -1
  131. package/dist/node_modules/@workspace/agent-core/tools/registry.d.ts +0 -22
  132. package/dist/node_modules/@workspace/agent-core/tools/registry.d.ts.map +0 -1
  133. package/dist/node_modules/@workspace/agent-core/tools/registry.js +0 -651
  134. package/dist/node_modules/@workspace/agent-core/tools/registry.js.map +0 -1
  135. package/dist/node_modules/@workspace/agent-core/tools/tool-event-emitter.d.ts +0 -25
  136. package/dist/node_modules/@workspace/agent-core/tools/tool-event-emitter.d.ts.map +0 -1
  137. package/dist/node_modules/@workspace/agent-core/tools/tool-event-emitter.js +0 -26
  138. package/dist/node_modules/@workspace/agent-core/tools/tool-event-emitter.js.map +0 -1
  139. package/dist/node_modules/@workspace/agent-core/tools/types.d.ts +0 -32
  140. package/dist/node_modules/@workspace/agent-core/tools/types.d.ts.map +0 -1
  141. package/dist/node_modules/@workspace/agent-core/tools/types.js +0 -2
  142. package/dist/node_modules/@workspace/agent-core/tools/types.js.map +0 -1
  143. package/dist/node_modules/@workspace/agent-core/types.d.ts +0 -40
  144. package/dist/node_modules/@workspace/agent-core/types.d.ts.map +0 -1
  145. package/dist/node_modules/@workspace/agent-core/types.js +0 -9
  146. package/dist/node_modules/@workspace/agent-core/types.js.map +0 -1
  147. package/dist/node_modules/@workspace/agent-core/utils/config-manager.d.ts +0 -103
  148. package/dist/node_modules/@workspace/agent-core/utils/config-manager.d.ts.map +0 -1
  149. package/dist/node_modules/@workspace/agent-core/utils/config-manager.js +0 -307
  150. package/dist/node_modules/@workspace/agent-core/utils/config-manager.js.map +0 -1
  151. package/dist/node_modules/@workspace/agent-core/utils/devtools.d.ts +0 -22
  152. package/dist/node_modules/@workspace/agent-core/utils/devtools.d.ts.map +0 -1
  153. package/dist/node_modules/@workspace/agent-core/utils/devtools.js +0 -62
  154. package/dist/node_modules/@workspace/agent-core/utils/devtools.js.map +0 -1
  155. package/dist/node_modules/@workspace/agent-core/utils/message-formatters.d.ts +0 -33
  156. package/dist/node_modules/@workspace/agent-core/utils/message-formatters.d.ts.map +0 -1
  157. package/dist/node_modules/@workspace/agent-core/utils/message-formatters.js +0 -591
  158. package/dist/node_modules/@workspace/agent-core/utils/message-formatters.js.map +0 -1
  159. package/dist/node_modules/@workspace/agent-core/utils/progress-tracker.d.ts +0 -60
  160. package/dist/node_modules/@workspace/agent-core/utils/progress-tracker.d.ts.map +0 -1
  161. package/dist/node_modules/@workspace/agent-core/utils/progress-tracker.js +0 -204
  162. package/dist/node_modules/@workspace/agent-core/utils/progress-tracker.js.map +0 -1
  163. package/dist/prompts/ba-it-analyzer.d.ts +0 -1
  164. package/dist/prompts/ba-it-analyzer.js +0 -143
  165. package/dist/prompts/index.d.ts +0 -11
  166. package/dist/prompts/index.js +0 -11
  167. package/dist/prompts/orchestrator.d.ts +0 -8
  168. package/dist/prompts/orchestrator.js +0 -88
  169. package/dist/prompts/planning-agent.d.ts +0 -8
  170. package/dist/prompts/planning-agent.js +0 -195
  171. package/dist/prompts/universal-agent.d.ts +0 -7
  172. package/dist/prompts/universal-agent.js +0 -111
  173. package/dist/providers/agent-selector.d.ts +0 -29
  174. package/dist/providers/agent-selector.js +0 -84
  175. package/dist/providers/claude-agent.d.ts +0 -29
  176. package/dist/providers/claude-agent.js +0 -121
  177. package/dist/providers/gemini-agent.d.ts +0 -36
  178. package/dist/providers/gemini-agent.js +0 -168
  179. package/dist/providers/index.d.ts +0 -12
  180. package/dist/providers/index.js +0 -12
  181. package/dist/providers/ollama-agent.d.ts +0 -53
  182. package/dist/providers/ollama-agent.js +0 -276
  183. package/dist/providers/orchestrator.d.ts +0 -16
  184. package/dist/providers/orchestrator.js +0 -76
  185. package/dist/tools/ba-it-analyzer.d.ts +0 -66
  186. package/dist/tools/ba-it-analyzer.js +0 -90
  187. package/dist/tools/code-generate-agent.d.ts +0 -51
  188. package/dist/tools/code-generate-agent.js +0 -159
  189. package/dist/tools/command-runner.d.ts +0 -14
  190. package/dist/tools/command-runner.js +0 -120
  191. package/dist/tools/document-parser.d.ts +0 -11
  192. package/dist/tools/document-parser.js +0 -83
  193. package/dist/tools/file-operations.d.ts +0 -17
  194. package/dist/tools/file-operations.js +0 -127
  195. package/dist/tools/galaxy-ui-integration.d.ts +0 -94
  196. package/dist/tools/galaxy-ui-integration.js +0 -244
  197. package/dist/tools/git-operations.d.ts +0 -11
  198. package/dist/tools/git-operations.js +0 -114
  199. package/dist/tools/index.d.ts +0 -10
  200. package/dist/tools/index.js +0 -10
  201. package/dist/tools/planning-agent.d.ts +0 -29
  202. package/dist/tools/planning-agent.js +0 -134
  203. package/dist/tools/progress-reporter.d.ts +0 -19
  204. package/dist/tools/progress-reporter.js +0 -52
  205. package/dist/tools/registry.d.ts +0 -21
  206. package/dist/tools/registry.js +0 -695
  207. package/dist/tools/tool-event-emitter.d.ts +0 -24
  208. package/dist/tools/tool-event-emitter.js +0 -25
  209. package/dist/tools/types.d.ts +0 -31
  210. package/dist/tools/types.js +0 -1
  211. package/dist/types.d.ts +0 -39
  212. package/dist/types.js +0 -8
  213. package/dist/update-checker.d.ts +0 -22
  214. package/dist/update-checker.js +0 -85
  215. package/dist/utils/config-manager.d.ts +0 -102
  216. package/dist/utils/config-manager.js +0 -326
  217. package/dist/utils/devtools.d.ts +0 -21
  218. package/dist/utils/devtools.js +0 -61
  219. package/dist/utils/message-formatters.d.ts +0 -32
  220. package/dist/utils/message-formatters.js +0 -590
  221. package/dist/utils/progress-tracker.d.ts +0 -59
  222. package/dist/utils/progress-tracker.js +0 -213
@@ -1,59 +0,0 @@
1
- export interface ProgressStep {
2
- step: number;
3
- action: string;
4
- status: 'pending' | 'in-progress' | 'completed' | 'failed';
5
- startTime?: Date;
6
- endTime?: Date;
7
- error?: string;
8
- filesCreated?: string[];
9
- }
10
- export interface ProjectProgress {
11
- projectName: string;
12
- startTime: Date;
13
- lastUpdated: Date;
14
- currentStep: number;
15
- totalSteps: number;
16
- steps: ProgressStep[];
17
- }
18
- export declare class ProgressTracker {
19
- private progressFilePath;
20
- private progress;
21
- constructor(workingDir?: string);
22
- /**
23
- * Initialize new progress tracking
24
- */
25
- initializeProgress(projectName: string, steps: ProgressStep[]): void;
26
- /**
27
- * Load existing progress
28
- */
29
- loadProgress(): ProjectProgress | null;
30
- /**
31
- * Update step status
32
- */
33
- updateStepStatus(stepNum: number, status: ProgressStep['status'], error?: string, filesCreated?: string[]): void;
34
- /**
35
- * Generate markdown content
36
- */
37
- private generateMarkdown;
38
- /**
39
- * Save progress to markdown file
40
- */
41
- saveProgress(): void;
42
- /**
43
- * Get current progress
44
- */
45
- getProgress(): ProjectProgress | null;
46
- /**
47
- * Check if progress file exists
48
- */
49
- hasProgress(): boolean;
50
- /**
51
- * Clear progress (delete file)
52
- */
53
- clearProgress(): void;
54
- /**
55
- * Get progress file path
56
- */
57
- getProgressFilePath(): string;
58
- }
59
- export declare const progressTracker: ProgressTracker;
@@ -1,213 +0,0 @@
1
- /**
2
- * @author Bùi Trọng Hiếu
3
- * @email kevinbui210191@gmail.com
4
- * @create 2024-10-13
5
- * @modify 2024-10-13
6
- * @desc Progress tracker for Galaxy CLI
7
- */
8
- import fs from 'node:fs';
9
- import path from 'node:path';
10
- export class ProgressTracker {
11
- constructor(workingDir = process.cwd()) {
12
- Object.defineProperty(this, "progressFilePath", {
13
- enumerable: true,
14
- configurable: true,
15
- writable: true,
16
- value: void 0
17
- });
18
- Object.defineProperty(this, "progress", {
19
- enumerable: true,
20
- configurable: true,
21
- writable: true,
22
- value: null
23
- });
24
- this.progressFilePath = path.join(workingDir, 'Improgress.md');
25
- }
26
- /**
27
- * Initialize new progress tracking
28
- */
29
- initializeProgress(projectName, steps) {
30
- this.progress = {
31
- projectName,
32
- startTime: new Date(),
33
- lastUpdated: new Date(),
34
- currentStep: 1,
35
- totalSteps: steps.length,
36
- steps: steps.map((step, index) => ({
37
- ...step,
38
- status: index === 0 ? 'in-progress' : 'pending',
39
- })),
40
- };
41
- this.saveProgress();
42
- }
43
- /**
44
- * Load existing progress
45
- */
46
- loadProgress() {
47
- try {
48
- if (!fs.existsSync(this.progressFilePath)) {
49
- return null;
50
- }
51
- const content = fs.readFileSync(this.progressFilePath, 'utf-8');
52
- // Parse markdown to extract progress data
53
- // For simplicity, we'll store JSON in a comment at the end
54
- const jsonMatch = content.match(/<!-- PROGRESS_DATA\n([\s\S]*?)\n-->/);
55
- if (jsonMatch && jsonMatch[1]) {
56
- this.progress = JSON.parse(jsonMatch[1]);
57
- return this.progress;
58
- }
59
- return null;
60
- }
61
- catch (error) {
62
- console.warn('⚠️ Failed to load progress:', error instanceof Error ? error.message : String(error));
63
- return null;
64
- }
65
- }
66
- /**
67
- * Update step status
68
- */
69
- updateStepStatus(stepNum, status, error, filesCreated) {
70
- if (!this.progress)
71
- return;
72
- const stepIndex = this.progress.steps.findIndex(s => s.step === stepNum);
73
- if (stepIndex === -1)
74
- return;
75
- const now = new Date();
76
- const currentStep = this.progress.steps[stepIndex];
77
- if (!currentStep)
78
- return;
79
- // Update current step
80
- this.progress.steps[stepIndex] = {
81
- step: currentStep.step,
82
- action: currentStep.action,
83
- status,
84
- startTime: currentStep.startTime,
85
- endTime: status === 'completed' || status === 'failed' ? now : undefined,
86
- error,
87
- filesCreated,
88
- };
89
- // Update progress metadata
90
- this.progress.lastUpdated = now;
91
- if (status === 'completed' && stepNum < this.progress.totalSteps) {
92
- this.progress.currentStep = stepNum + 1;
93
- // Mark next step as in-progress
94
- const nextStep = this.progress.steps[stepIndex + 1];
95
- if (nextStep) {
96
- nextStep.status = 'in-progress';
97
- nextStep.startTime = now;
98
- }
99
- }
100
- this.saveProgress();
101
- }
102
- /**
103
- * Generate markdown content
104
- */
105
- generateMarkdown() {
106
- if (!this.progress)
107
- return '';
108
- const { projectName, startTime, lastUpdated, currentStep, totalSteps, steps } = this.progress;
109
- let md = `# 🚀 ${projectName} - Implementation Progress\n\n`;
110
- // Metadata
111
- md += `**Started**: ${startTime.toLocaleString()}\n`;
112
- md += `**Last Updated**: ${lastUpdated.toLocaleString()}\n`;
113
- md += `**Progress**: ${currentStep - 1}/${totalSteps} steps completed\n\n`;
114
- // Progress bar
115
- const completed = steps.filter(s => s.status === 'completed').length;
116
- const percentage = Math.round((completed / totalSteps) * 100);
117
- const barLength = 30;
118
- const filled = Math.round((completed / totalSteps) * barLength);
119
- const bar = '█'.repeat(filled) + '░'.repeat(barLength - filled);
120
- md += `\`\`\`\n[${bar}] ${percentage}%\n\`\`\`\n\n`;
121
- // Steps
122
- md += `## 📋 Implementation Steps\n\n`;
123
- for (const step of steps) {
124
- const icon = step.status === 'completed'
125
- ? '✅'
126
- : step.status === 'in-progress'
127
- ? '🔄'
128
- : step.status === 'failed'
129
- ? '❌'
130
- : '⏳';
131
- md += `### ${icon} Step ${step.step}: ${step.action}\n\n`;
132
- md += `**Status**: ${step.status.toUpperCase()}\n`;
133
- if (step.startTime) {
134
- md += `**Started**: ${step.startTime.toLocaleString()}\n`;
135
- }
136
- if (step.endTime) {
137
- md += `**Completed**: ${step.endTime.toLocaleString()}\n`;
138
- if (step.startTime) {
139
- const duration = step.endTime.getTime() - step.startTime.getTime();
140
- md += `**Duration**: ${Math.round(duration / 1000)}s\n`;
141
- }
142
- }
143
- if (step.filesCreated && step.filesCreated.length > 0) {
144
- md += `\n**Files Created**:\n`;
145
- for (const file of step.filesCreated) {
146
- md += `- \`${file}\`\n`;
147
- }
148
- }
149
- if (step.error) {
150
- md += `\n**Error**: \`\`\`\n${step.error}\n\`\`\`\n`;
151
- }
152
- md += '\n';
153
- }
154
- // Summary
155
- md += `## 📊 Summary\n\n`;
156
- md += `- Total Steps: ${totalSteps}\n`;
157
- md += `- Completed: ${steps.filter(s => s.status === 'completed').length}\n`;
158
- md += `- In Progress: ${steps.filter(s => s.status === 'in-progress').length}\n`;
159
- md += `- Pending: ${steps.filter(s => s.status === 'pending').length}\n`;
160
- md += `- Failed: ${steps.filter(s => s.status === 'failed').length}\n\n`;
161
- // Add JSON data as HTML comment for parsing
162
- md += `<!-- PROGRESS_DATA\n${JSON.stringify(this.progress, null, 2)}\n-->\n`;
163
- return md;
164
- }
165
- /**
166
- * Save progress to markdown file
167
- */
168
- saveProgress() {
169
- if (!this.progress)
170
- return;
171
- try {
172
- const markdown = this.generateMarkdown();
173
- fs.writeFileSync(this.progressFilePath, markdown, 'utf-8');
174
- }
175
- catch (error) {
176
- console.error('❌ Failed to save progress:', error instanceof Error ? error.message : String(error));
177
- }
178
- }
179
- /**
180
- * Get current progress
181
- */
182
- getProgress() {
183
- return this.progress;
184
- }
185
- /**
186
- * Check if progress file exists
187
- */
188
- hasProgress() {
189
- return fs.existsSync(this.progressFilePath);
190
- }
191
- /**
192
- * Clear progress (delete file)
193
- */
194
- clearProgress() {
195
- try {
196
- if (fs.existsSync(this.progressFilePath)) {
197
- fs.unlinkSync(this.progressFilePath);
198
- }
199
- this.progress = null;
200
- }
201
- catch (error) {
202
- console.error('❌ Failed to clear progress:', error instanceof Error ? error.message : String(error));
203
- }
204
- }
205
- /**
206
- * Get progress file path
207
- */
208
- getProgressFilePath() {
209
- return this.progressFilePath;
210
- }
211
- }
212
- // Create instance
213
- export const progressTracker = new ProgressTracker();