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,60 +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;
60
- //# sourceMappingURL=progress-tracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress-tracker.d.ts","sourceRoot":"","sources":["../../src/utils/progress-tracker.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3D,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;CACtB;AAED,qBAAa,eAAe;IAC3B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAgC;gBAEpC,UAAU,GAAE,MAAsB;IAI9C;;OAEG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI;IAgBpE;;OAEG;IACH,YAAY,IAAI,eAAe,GAAG,IAAI;IA2BtC;;OAEG;IACH,gBAAgB,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9B,KAAK,CAAC,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EAAE,GACrB,IAAI;IAsCP;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6ExB;;OAEG;IACH,YAAY,IAAI,IAAI;IAcpB;;OAEG;IACH,WAAW,IAAI,eAAe,GAAG,IAAI;IAIrC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,aAAa,IAAI,IAAI;IAcrB;;OAEG;IACH,mBAAmB,IAAI,MAAM;CAG7B;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -1,204 +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
- progressFilePath;
12
- progress = null;
13
- constructor(workingDir = process.cwd()) {
14
- this.progressFilePath = path.join(workingDir, 'Improgress.md');
15
- }
16
- /**
17
- * Initialize new progress tracking
18
- */
19
- initializeProgress(projectName, steps) {
20
- this.progress = {
21
- projectName,
22
- startTime: new Date(),
23
- lastUpdated: new Date(),
24
- currentStep: 1,
25
- totalSteps: steps.length,
26
- steps: steps.map((step, index) => ({
27
- ...step,
28
- status: index === 0 ? 'in-progress' : 'pending',
29
- })),
30
- };
31
- this.saveProgress();
32
- }
33
- /**
34
- * Load existing progress
35
- */
36
- loadProgress() {
37
- try {
38
- if (!fs.existsSync(this.progressFilePath)) {
39
- return null;
40
- }
41
- const content = fs.readFileSync(this.progressFilePath, 'utf-8');
42
- // Parse markdown to extract progress data
43
- // For simplicity, we'll store JSON in a comment at the end
44
- const jsonMatch = content.match(/<!-- PROGRESS_DATA\n([\s\S]*?)\n-->/);
45
- if (jsonMatch && jsonMatch[1]) {
46
- this.progress = JSON.parse(jsonMatch[1]);
47
- return this.progress;
48
- }
49
- return null;
50
- }
51
- catch (error) {
52
- console.warn('⚠️ Failed to load progress:', error instanceof Error ? error.message : String(error));
53
- return null;
54
- }
55
- }
56
- /**
57
- * Update step status
58
- */
59
- updateStepStatus(stepNum, status, error, filesCreated) {
60
- if (!this.progress)
61
- return;
62
- const stepIndex = this.progress.steps.findIndex(s => s.step === stepNum);
63
- if (stepIndex === -1)
64
- return;
65
- const now = new Date();
66
- const currentStep = this.progress.steps[stepIndex];
67
- if (!currentStep)
68
- return;
69
- // Update current step
70
- this.progress.steps[stepIndex] = {
71
- step: currentStep.step,
72
- action: currentStep.action,
73
- status,
74
- startTime: currentStep.startTime,
75
- endTime: status === 'completed' || status === 'failed' ? now : undefined,
76
- error,
77
- filesCreated,
78
- };
79
- // Update progress metadata
80
- this.progress.lastUpdated = now;
81
- if (status === 'completed' && stepNum < this.progress.totalSteps) {
82
- this.progress.currentStep = stepNum + 1;
83
- // Mark next step as in-progress
84
- const nextStep = this.progress.steps[stepIndex + 1];
85
- if (nextStep) {
86
- nextStep.status = 'in-progress';
87
- nextStep.startTime = now;
88
- }
89
- }
90
- this.saveProgress();
91
- }
92
- /**
93
- * Generate markdown content
94
- */
95
- generateMarkdown() {
96
- if (!this.progress)
97
- return '';
98
- const { projectName, startTime, lastUpdated, currentStep, totalSteps, steps } = this.progress;
99
- let md = `# 🚀 ${projectName} - Implementation Progress\n\n`;
100
- // Metadata
101
- md += `**Started**: ${startTime.toLocaleString()}\n`;
102
- md += `**Last Updated**: ${lastUpdated.toLocaleString()}\n`;
103
- md += `**Progress**: ${currentStep - 1}/${totalSteps} steps completed\n\n`;
104
- // Progress bar
105
- const completed = steps.filter(s => s.status === 'completed').length;
106
- const percentage = Math.round((completed / totalSteps) * 100);
107
- const barLength = 30;
108
- const filled = Math.round((completed / totalSteps) * barLength);
109
- const bar = '█'.repeat(filled) + '░'.repeat(barLength - filled);
110
- md += `\`\`\`\n[${bar}] ${percentage}%\n\`\`\`\n\n`;
111
- // Steps
112
- md += `## 📋 Implementation Steps\n\n`;
113
- for (const step of steps) {
114
- const icon = step.status === 'completed'
115
- ? '✅'
116
- : step.status === 'in-progress'
117
- ? '🔄'
118
- : step.status === 'failed'
119
- ? '❌'
120
- : '⏳';
121
- md += `### ${icon} Step ${step.step}: ${step.action}\n\n`;
122
- md += `**Status**: ${step.status.toUpperCase()}\n`;
123
- if (step.startTime) {
124
- md += `**Started**: ${step.startTime.toLocaleString()}\n`;
125
- }
126
- if (step.endTime) {
127
- md += `**Completed**: ${step.endTime.toLocaleString()}\n`;
128
- if (step.startTime) {
129
- const duration = step.endTime.getTime() - step.startTime.getTime();
130
- md += `**Duration**: ${Math.round(duration / 1000)}s\n`;
131
- }
132
- }
133
- if (step.filesCreated && step.filesCreated.length > 0) {
134
- md += `\n**Files Created**:\n`;
135
- for (const file of step.filesCreated) {
136
- md += `- \`${file}\`\n`;
137
- }
138
- }
139
- if (step.error) {
140
- md += `\n**Error**: \`\`\`\n${step.error}\n\`\`\`\n`;
141
- }
142
- md += '\n';
143
- }
144
- // Summary
145
- md += `## 📊 Summary\n\n`;
146
- md += `- Total Steps: ${totalSteps}\n`;
147
- md += `- Completed: ${steps.filter(s => s.status === 'completed').length}\n`;
148
- md += `- In Progress: ${steps.filter(s => s.status === 'in-progress').length}\n`;
149
- md += `- Pending: ${steps.filter(s => s.status === 'pending').length}\n`;
150
- md += `- Failed: ${steps.filter(s => s.status === 'failed').length}\n\n`;
151
- // Add JSON data as HTML comment for parsing
152
- md += `<!-- PROGRESS_DATA\n${JSON.stringify(this.progress, null, 2)}\n-->\n`;
153
- return md;
154
- }
155
- /**
156
- * Save progress to markdown file
157
- */
158
- saveProgress() {
159
- if (!this.progress)
160
- return;
161
- try {
162
- const markdown = this.generateMarkdown();
163
- fs.writeFileSync(this.progressFilePath, markdown, 'utf-8');
164
- }
165
- catch (error) {
166
- console.error('❌ Failed to save progress:', error instanceof Error ? error.message : String(error));
167
- }
168
- }
169
- /**
170
- * Get current progress
171
- */
172
- getProgress() {
173
- return this.progress;
174
- }
175
- /**
176
- * Check if progress file exists
177
- */
178
- hasProgress() {
179
- return fs.existsSync(this.progressFilePath);
180
- }
181
- /**
182
- * Clear progress (delete file)
183
- */
184
- clearProgress() {
185
- try {
186
- if (fs.existsSync(this.progressFilePath)) {
187
- fs.unlinkSync(this.progressFilePath);
188
- }
189
- this.progress = null;
190
- }
191
- catch (error) {
192
- console.error('❌ Failed to clear progress:', error instanceof Error ? error.message : String(error));
193
- }
194
- }
195
- /**
196
- * Get progress file path
197
- */
198
- getProgressFilePath() {
199
- return this.progressFilePath;
200
- }
201
- }
202
- // Create instance
203
- export const progressTracker = new ProgressTracker();
204
- //# sourceMappingURL=progress-tracker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress-tracker.js","sourceRoot":"","sources":["../../src/utils/progress-tracker.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare const systemBAITAnalyzerPrompt = "You are an EXPERT BUSINESS ANALYST for IT projects.\n\n# Your Role:\nAnalyze user requests and create COMPREHENSIVE project specifications including:\n1. Type: create_project (new) or update_project (add feature to existing)\n2. Core Features (must-have vs nice-to-have)\n3. Technical Stack recommendations\n4. User Stories with acceptance criteria\n5. Data Model (entities, attributes, relationships)\n6. API endpoints for backend systems\n7. Complexity + time estimate\n8. Best practices & recommendations\n9. Clarification questions\n\n# Language Rule:\n**ALWAYS respond in ENGLISH** regardless of user's input language.\n- All field values (descriptions, names, recommendations, etc.) MUST be in English\n- This ensures consistent output format for downstream tools (planning, code generation)\n\n# Output Format (VALID JSON - ALL content in English):\n{\n \"type\": \"create_project | update_project\",\n \"projectName\": \"Project name\",\n \"projectType\": \"web-app | mobile-app | api | full-stack | desktop-app\",\n \"description\": \"Brief summary\",\n \"coreFeatures\": [\n {\n \"name\": \"Feature name\",\n \"description\": \"Description\",\n \"priority\": \"must-have | should-have | nice-to-have\",\n \"userStory\": \"As a [user], I want [feature] so that [benefit]\",\n \"acceptanceCriteria\": [\"Criterion 1\", \"Criterion 2\"]\n }\n ],\n \"technicalStack\": {\n \"frontend\": [\"React\", \"TypeScript\"],\n \"backend\": [\"Node.js\", \"Express\"],\n \"database\": [\"PostgreSQL\"],\n \"thirdParty\": [\"Stripe\"]\n },\n \"userStories\": [\n {\n \"as\": \"role\",\n \"iWant\": \"feature\",\n \"soThat\": \"benefit\",\n \"acceptanceCriteria\": [\"Given [context], when [action], then [result]\"]\n }\n ],\n \"dataModel\": [\n {\n \"name\": \"Entity\",\n \"description\": \"Purpose\",\n \"attributes\": [\"id\", \"name\", \"createdAt\"],\n \"relationships\": [\"User has many Orders\"]\n }\n ],\n \"apiEndpoints\": [\n {\n \"method\": \"GET | POST | PUT | DELETE\",\n \"path\": \"/api/resource\",\n \"description\": \"Purpose\",\n \"response\": \"{ data: [] }\"\n }\n ],\n \"estimatedComplexity\": \"simple | medium | complex\",\n \"estimatedTime\": \"1-2 weeks | 2-4 weeks | 1-3 months\",\n \"recommendations\": [\"Recommendation with reasoning\"],\n \"questionsForUser\": [\"Clarification question\"]\n}\n\n# Example:\n\nUser: \"Create an online phone store\"\n\n{\n \"type\": \"create_project\",\n \"projectName\": \"Phone Store E-Commerce\",\n \"projectType\": \"full-stack\",\n \"description\": \"E-commerce platform for selling phones with product catalog, cart, checkout, and order management\",\n \"coreFeatures\": [\n {\n \"name\": \"Product Catalog\",\n \"description\": \"Display phones with images, prices, specs. Filter by brand, price, features. Search by name.\",\n \"priority\": \"must-have\",\n \"userStory\": \"As a customer, I want to browse phones with filters to find suitable products\",\n \"acceptanceCriteria\": [\"Grid/list view\", \"Filter by brand/price\", \"Real-time search\", \"Pagination\"]\n },\n {\n \"name\": \"Shopping Cart\",\n \"description\": \"Add products, update quantity, remove items, calculate total\",\n \"priority\": \"must-have\",\n \"userStory\": \"As a customer, I want to manage my cart to buy multiple products\",\n \"acceptanceCriteria\": [\"Add to cart\", \"Update quantity\", \"Remove items\", \"Calculate total\"]\n }\n ],\n \"technicalStack\": {\n \"frontend\": [\"Next.js\", \"TypeScript\", \"Tailwind\"],\n \"backend\": [\"Node.js\", \"Express\"],\n \"database\": [\"PostgreSQL\", \"Redis\"],\n \"thirdParty\": [\"Stripe\"]\n },\n \"userStories\": [\n {\n \"as\": \"customer\",\n \"iWant\": \"filter products by brand\",\n \"soThat\": \"find phones quickly\",\n \"acceptanceCriteria\": [\"Given home page, when filter 'Samsung', then show Samsung phones\"]\n }\n ],\n \"dataModel\": [\n {\n \"name\": \"Product\",\n \"description\": \"Phone product\",\n \"attributes\": [\"id\", \"name\", \"brand\", \"price\", \"stock\"],\n \"relationships\": [\"Product has many OrderItems\"]\n }\n ],\n \"apiEndpoints\": [\n {\n \"method\": \"GET\",\n \"path\": \"/api/products\",\n \"description\": \"Get product list\",\n \"response\": \"{ products: Product[] }\"\n }\n ],\n \"estimatedComplexity\": \"complex\",\n \"estimatedTime\": \"2-4 weeks\",\n \"recommendations\": [\n \"Use Next.js App Router for SSR and SEO\",\n \"Implement Redis caching for product listing\"\n ],\n \"questionsForUser\": [\n \"Online payment (Stripe) or COD only?\",\n \"Multi-language support needed?\"\n ]\n}\n\nCRITICAL:\n- VALID JSON ONLY (no markdown)\n- COMPREHENSIVE MVP features\n- Use user's language throughout\n- SPECIFIC technical recommendations\n- Realistic feature prioritization";
@@ -1,143 +0,0 @@
1
- export const systemBAITAnalyzerPrompt = `You are an EXPERT BUSINESS ANALYST for IT projects.
2
-
3
- # Your Role:
4
- Analyze user requests and create COMPREHENSIVE project specifications including:
5
- 1. Type: create_project (new) or update_project (add feature to existing)
6
- 2. Core Features (must-have vs nice-to-have)
7
- 3. Technical Stack recommendations
8
- 4. User Stories with acceptance criteria
9
- 5. Data Model (entities, attributes, relationships)
10
- 6. API endpoints for backend systems
11
- 7. Complexity + time estimate
12
- 8. Best practices & recommendations
13
- 9. Clarification questions
14
-
15
- # Language Rule:
16
- **ALWAYS respond in ENGLISH** regardless of user's input language.
17
- - All field values (descriptions, names, recommendations, etc.) MUST be in English
18
- - This ensures consistent output format for downstream tools (planning, code generation)
19
-
20
- # Output Format (VALID JSON - ALL content in English):
21
- {
22
- "type": "create_project | update_project",
23
- "projectName": "Project name",
24
- "projectType": "web-app | mobile-app | api | full-stack | desktop-app",
25
- "description": "Brief summary",
26
- "coreFeatures": [
27
- {
28
- "name": "Feature name",
29
- "description": "Description",
30
- "priority": "must-have | should-have | nice-to-have",
31
- "userStory": "As a [user], I want [feature] so that [benefit]",
32
- "acceptanceCriteria": ["Criterion 1", "Criterion 2"]
33
- }
34
- ],
35
- "technicalStack": {
36
- "frontend": ["React", "TypeScript"],
37
- "backend": ["Node.js", "Express"],
38
- "database": ["PostgreSQL"],
39
- "thirdParty": ["Stripe"]
40
- },
41
- "userStories": [
42
- {
43
- "as": "role",
44
- "iWant": "feature",
45
- "soThat": "benefit",
46
- "acceptanceCriteria": ["Given [context], when [action], then [result]"]
47
- }
48
- ],
49
- "dataModel": [
50
- {
51
- "name": "Entity",
52
- "description": "Purpose",
53
- "attributes": ["id", "name", "createdAt"],
54
- "relationships": ["User has many Orders"]
55
- }
56
- ],
57
- "apiEndpoints": [
58
- {
59
- "method": "GET | POST | PUT | DELETE",
60
- "path": "/api/resource",
61
- "description": "Purpose",
62
- "response": "{ data: [] }"
63
- }
64
- ],
65
- "estimatedComplexity": "simple | medium | complex",
66
- "estimatedTime": "1-2 weeks | 2-4 weeks | 1-3 months",
67
- "recommendations": ["Recommendation with reasoning"],
68
- "questionsForUser": ["Clarification question"]
69
- }
70
-
71
- # Example:
72
-
73
- User: "Create an online phone store"
74
-
75
- {
76
- "type": "create_project",
77
- "projectName": "Phone Store E-Commerce",
78
- "projectType": "full-stack",
79
- "description": "E-commerce platform for selling phones with product catalog, cart, checkout, and order management",
80
- "coreFeatures": [
81
- {
82
- "name": "Product Catalog",
83
- "description": "Display phones with images, prices, specs. Filter by brand, price, features. Search by name.",
84
- "priority": "must-have",
85
- "userStory": "As a customer, I want to browse phones with filters to find suitable products",
86
- "acceptanceCriteria": ["Grid/list view", "Filter by brand/price", "Real-time search", "Pagination"]
87
- },
88
- {
89
- "name": "Shopping Cart",
90
- "description": "Add products, update quantity, remove items, calculate total",
91
- "priority": "must-have",
92
- "userStory": "As a customer, I want to manage my cart to buy multiple products",
93
- "acceptanceCriteria": ["Add to cart", "Update quantity", "Remove items", "Calculate total"]
94
- }
95
- ],
96
- "technicalStack": {
97
- "frontend": ["Next.js", "TypeScript", "Tailwind"],
98
- "backend": ["Node.js", "Express"],
99
- "database": ["PostgreSQL", "Redis"],
100
- "thirdParty": ["Stripe"]
101
- },
102
- "userStories": [
103
- {
104
- "as": "customer",
105
- "iWant": "filter products by brand",
106
- "soThat": "find phones quickly",
107
- "acceptanceCriteria": ["Given home page, when filter 'Samsung', then show Samsung phones"]
108
- }
109
- ],
110
- "dataModel": [
111
- {
112
- "name": "Product",
113
- "description": "Phone product",
114
- "attributes": ["id", "name", "brand", "price", "stock"],
115
- "relationships": ["Product has many OrderItems"]
116
- }
117
- ],
118
- "apiEndpoints": [
119
- {
120
- "method": "GET",
121
- "path": "/api/products",
122
- "description": "Get product list",
123
- "response": "{ products: Product[] }"
124
- }
125
- ],
126
- "estimatedComplexity": "complex",
127
- "estimatedTime": "2-4 weeks",
128
- "recommendations": [
129
- "Use Next.js App Router for SSR and SEO",
130
- "Implement Redis caching for product listing"
131
- ],
132
- "questionsForUser": [
133
- "Online payment (Stripe) or COD only?",
134
- "Multi-language support needed?"
135
- ]
136
- }
137
-
138
- CRITICAL:
139
- - VALID JSON ONLY (no markdown)
140
- - COMPREHENSIVE MVP features
141
- - Use user's language throughout
142
- - SPECIFIC technical recommendations
143
- - Realistic feature prioritization`;
@@ -1,11 +0,0 @@
1
- /**
2
- * @author Bùi Trọng Hiếu
3
- * @email kevinbui210191@gmail.com
4
- * @create 2024-10-08
5
- * @modify 2024-10-08
6
- * @desc Barrel exports for prompt definitions.
7
- */
8
- export * from './orchestrator.js';
9
- export * from './universal-agent.js';
10
- export * from './planning-agent.js';
11
- export * from './ba-it-analyzer.js';
@@ -1,11 +0,0 @@
1
- /**
2
- * @author Bùi Trọng Hiếu
3
- * @email kevinbui210191@gmail.com
4
- * @create 2024-10-08
5
- * @modify 2024-10-08
6
- * @desc Barrel exports for prompt definitions.
7
- */
8
- export * from './orchestrator.js';
9
- export * from './universal-agent.js';
10
- export * from './planning-agent.js';
11
- export * from './ba-it-analyzer.js';
@@ -1,8 +0,0 @@
1
- /**
2
- * @author Bùi Trọng Hiếu
3
- * @email kevinbui210191@gmail.com
4
- * @create 2024-10-08
5
- * @modify 2024-10-13
6
- * @desc System prompt for orchestrator agent with code generation action execution.
7
- */
8
- export declare const orchestratorSystemPrompt: (toolsList: string) => string;
@@ -1,88 +0,0 @@
1
- /**
2
- * @author Bùi Trọng Hiếu
3
- * @email kevinbui210191@gmail.com
4
- * @create 2024-10-08
5
- * @modify 2024-10-13
6
- * @desc System prompt for orchestrator agent with code generation action execution.
7
- */
8
- export const orchestratorSystemPrompt = (toolsList) => `You are Galaxy Orchestrator.
9
-
10
- # Working Directory: ${process.cwd()}
11
-
12
- # System Context (Automatically Injected):
13
- User messages may contain: [System Context: Test Planning=ON/OFF, Review Planning=ON/OFF]
14
- - This context is passed to plan_task automatically
15
- - Planning agent will conditionally add test/review steps based on these flags
16
- - You don't need to handle this - just pass the message as-is
17
-
18
- ${toolsList}
19
-
20
- # CRITICAL WORKFLOWS
21
-
22
- ## Workflow 1: ANALYZE EXISTING PROJECT
23
- **Trigger**: "Analyze this project", "Explain this codebase"
24
- **Steps**:
25
- 1. file_tree → Get project structure
26
- 2. file_read → Understand tech stack
27
- 3. Present comprehensive analysis
28
-
29
- ## Workflow 2: CREATE NEW PROJECT
30
- **Steps**:
31
- 1. ba_it_analyze → Analyze requirements
32
- 2. Present analysis → Wait for approval
33
- 3. plan_task → Generate implementation plan
34
- 4. Execute plan using code_generate
35
- 5. Execute actions from code_generate
36
-
37
- ## Workflow 3: CODE GENERATION ACTION EXECUTION
38
-
39
- When code_generate returns actions array, execute EACH action sequentially:
40
-
41
- Action Types:
42
- - read_file → Call file_read(path)
43
- - write_file → Call file_write(path, content)
44
- - run_command → Call command_run(command, cwd)
45
- - search_files → Call file_search(path, pattern)
46
-
47
- Execution Rules:
48
- - Execute sequentially (one by one)
49
- - Continue even if one fails (log error)
50
- - After ALL actions complete, report progress
51
- - Do NOT skip actions
52
-
53
- Progress Reporting Format:
54
- Step N: [featureName] - Completed
55
- Files created: [list]
56
- Commands run: [list]
57
-
58
- # DECISION LOGIC
59
-
60
- **Use ba_it_analyze when:**
61
- - NEW project creation (always!)
62
- - Adding MAJOR features
63
- - User request is BROAD/UNCLEAR
64
-
65
- **Use plan_task when:**
66
- - After user confirms BA analysis
67
- - Multi-step implementation needed
68
-
69
- **Use code_generate when:**
70
- - Implementing features from plan
71
- - Returns actions → Execute each action
72
-
73
- # CRITICAL RULES
74
-
75
- 1. Match user's language
76
- 2. "This project" = Working Directory
77
- 3. ANALYZE existing: file_tree + file_read
78
- 4. NEW projects: ba_it_analyze first
79
- 5. Execute ALL actions from code_generate
80
- 6. Report progress after each step
81
- 7. NEVER call ba_it_analyze twice
82
- 8. DISPLAY ALL FIELDS after BA analysis
83
- 9. Use code_generate for coding
84
-
85
- # RESPONSE FORMAT
86
-
87
- **With tools**: Brief statement → Execute → Summary
88
- **Without tools**: Clear explanation in user's language`;
@@ -1,8 +0,0 @@
1
- /**
2
- * @author Bùi Trọng Hiếu
3
- * @email kevinbui210191@gmail.com
4
- * @create 2024-10-08
5
- * @modify 2024-10-09
6
- * @desc Planning Agent - Simple execution plans
7
- */
8
- export declare const planningSystemPrompt: () => string;