claude-flow-novice 1.3.0 → 1.3.2

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 (305) hide show
  1. package/.claude-flow-novice/preferences/generation.json +147 -0
  2. package/.claude-flow-novice/preferences/language-configs/javascript.json +51 -0
  3. package/.claude-flow-novice/preferences/language-configs/python.json +50 -0
  4. package/.claude-flow-novice/preferences/language-configs/rust.json +237 -0
  5. package/.claude-flow-novice/preferences/language-configs/typescript.json +54 -0
  6. package/.claude-flow-novice/preferences/project-local.json +91 -0
  7. package/.claude-flow-novice/preferences/resource-delegation.json +120 -0
  8. package/.claude-flow-novice/preferences/team-shared.json +195 -0
  9. package/.claude-flow-novice/preferences/user-global.json +247 -0
  10. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-JAVASCRIPT.md +769 -0
  11. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-PYTHON.md +1214 -0
  12. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-RUST.md +475 -0
  13. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-TYPESCRIPT.md +851 -0
  14. package/.claude-flow-novice/templates/claude-md-templates/README.md +263 -0
  15. package/CLAUDE.md +81 -0
  16. package/README-NPM.md +0 -0
  17. package/package.json +11 -7
  18. package/scripts/build/README.md +167 -0
  19. package/scripts/build/build-config.js +27 -0
  20. package/scripts/build/build-prompt-copier.sh +30 -0
  21. package/scripts/build/performance-monitor.js +869 -0
  22. package/scripts/build/prepare-publish.js +150 -0
  23. package/scripts/build/typescript-fixer.js +621 -0
  24. package/scripts/build/unified-builder.sh +428 -0
  25. package/scripts/build/update-bin-version.js +32 -0
  26. package/scripts/dev/README.md +264 -0
  27. package/scripts/dev/claude-flow-wrapper.sh +35 -0
  28. package/scripts/dev/claude-monitor.py +419 -0
  29. package/scripts/dev/claude-sparc.sh +562 -0
  30. package/scripts/dev/claude-wrapper.sh +17 -0
  31. package/scripts/dev/demo-phase3-compliance.js +172 -0
  32. package/scripts/dev/demo-task-system.ts +224 -0
  33. package/scripts/dev/deployment-validator.js +315 -0
  34. package/scripts/dev/spawn-claude-terminal.sh +32 -0
  35. package/scripts/dev/start-portal.sh +506 -0
  36. package/scripts/dev/start-web-ui.js +15 -0
  37. package/scripts/dev/stop-portal.sh +311 -0
  38. package/scripts/dev/validate-examples.ts +288 -0
  39. package/scripts/dev/validate-phase2.cjs +451 -0
  40. package/scripts/dev/validate-phase2.js +785 -0
  41. package/scripts/dev/validate-phase3.cjs +208 -0
  42. package/scripts/dev/validate-security-remediation.js +1 -0
  43. package/scripts/legacy/README.md +272 -0
  44. package/scripts/legacy/batch-fix-ts.sh +54 -0
  45. package/scripts/legacy/build-migration.sh +105 -0
  46. package/scripts/legacy/build-monitor.js +209 -0
  47. package/scripts/legacy/build-with-filter.sh +84 -0
  48. package/scripts/legacy/build-workaround.sh +71 -0
  49. package/scripts/legacy/fix-ts-advanced.js +358 -0
  50. package/scripts/legacy/fix-ts-final.sh +50 -0
  51. package/scripts/legacy/fix-ts-targeted.sh +49 -0
  52. package/scripts/legacy/fix-typescript-errors.js +305 -0
  53. package/scripts/legacy/force-build.sh +63 -0
  54. package/scripts/legacy/optimize-performance.js +400 -0
  55. package/scripts/legacy/performance-monitor.js +263 -0
  56. package/scripts/legacy/performance-monitoring.js +532 -0
  57. package/scripts/legacy/performance-test-runner.js +645 -0
  58. package/scripts/legacy/quick-fix-ts.js +281 -0
  59. package/scripts/legacy/safe-build.sh +63 -0
  60. package/scripts/migration/README.md +434 -0
  61. package/scripts/migration/install-arm64.js +78 -0
  62. package/scripts/migration/install.js +83 -0
  63. package/scripts/migration/migrate-hooks.js +173 -0
  64. package/scripts/migration/migration-examples.ts +318 -0
  65. package/scripts/optimization/build-optimizer.js +438 -0
  66. package/scripts/optimization/config-validator.js +761 -0
  67. package/scripts/optimization/test-optimization.js +432 -0
  68. package/scripts/optimization/unified-activation.js +839 -0
  69. package/scripts/performance/ACTIVATION_COMMANDS.md +292 -0
  70. package/scripts/performance/sqlite-enhanced-activation.sh +583 -0
  71. package/scripts/performance/test-enhanced-backend.sh +504 -0
  72. package/scripts/performance-test-runner.js +698 -0
  73. package/scripts/security/README.md +339 -0
  74. package/scripts/security/install-git-hooks.sh +132 -0
  75. package/scripts/security/ruv-swarm-safe.js +74 -0
  76. package/scripts/test/README.md +236 -0
  77. package/scripts/test/check-links.ts +274 -0
  78. package/scripts/test/check-performance-regression.ts +168 -0
  79. package/scripts/test/coverage-report.ts +692 -0
  80. package/scripts/test/generate-swarm-tests.js +633 -0
  81. package/scripts/test/integration-test-validation.cjs +253 -0
  82. package/scripts/test/load-test-swarm.js +576 -0
  83. package/scripts/test/run-phase3-compliance-tests.js +427 -0
  84. package/scripts/test/test-batch-tasks.ts +29 -0
  85. package/scripts/test/test-byzantine-resolution.js +246 -0
  86. package/scripts/test/test-claude-spawn-options.sh +63 -0
  87. package/scripts/test/test-cli-wizard.js +331 -0
  88. package/scripts/test/test-comprehensive.js +401 -0
  89. package/scripts/test/test-coordination-features.ts +238 -0
  90. package/scripts/test/test-fallback-systems.js +276 -0
  91. package/scripts/test/test-init-command.ts +302 -0
  92. package/scripts/test/test-mcp.ts +251 -0
  93. package/scripts/test/test-runner.ts +568 -0
  94. package/scripts/test/test-swarm-integration.sh +92 -0
  95. package/scripts/test/test-swarm.ts +142 -0
  96. package/scripts/test/validation-summary.ts +408 -0
  97. package/scripts/utils/README.md +261 -0
  98. package/scripts/utils/clean-build-artifacts.sh +94 -0
  99. package/scripts/utils/cleanup-root.sh +69 -0
  100. package/scripts/utils/fix-cliffy-imports.js +307 -0
  101. package/scripts/utils/fix-duplicate-imports.js +114 -0
  102. package/scripts/utils/fix-error-handling.cjs +70 -0
  103. package/scripts/utils/fix-import-paths.js +104 -0
  104. package/scripts/utils/fix-imports.js +116 -0
  105. package/scripts/utils/fix-shebang.js +78 -0
  106. package/scripts/utils/fix-test-modules.js +27 -0
  107. package/scripts/utils/fix-timezone-issue-246.js +200 -0
  108. package/scripts/utils/fix-ts-comprehensive.py +182 -0
  109. package/scripts/utils/fix-ts-targeted-batch.js +250 -0
  110. package/scripts/utils/remove-benchmark-conflicts.sh +140 -0
  111. package/scripts/utils/simple-test-fixer.js +190 -0
  112. package/scripts/utils/validate-metrics-structure.cjs +144 -0
  113. package/scripts/verify-mcp-server.js +86 -0
  114. package/src/cli/simple-commands/__tests__/agent.test.js +291 -0
  115. package/src/cli/simple-commands/__tests__/memory.test.js +8 -0
  116. package/src/cli/simple-commands/__tests__/swarm.test.js +371 -0
  117. package/src/cli/simple-commands/__tests__/task.test.js +8 -0
  118. package/src/cli/simple-commands/agent.js +216 -0
  119. package/src/cli/simple-commands/analysis.js +570 -0
  120. package/src/cli/simple-commands/automation-executor.js +1603 -0
  121. package/src/cli/simple-commands/automation.js +627 -0
  122. package/src/cli/simple-commands/batch-manager.js +338 -0
  123. package/src/cli/simple-commands/claude-telemetry.js +311 -0
  124. package/src/cli/simple-commands/claude-track.js +102 -0
  125. package/src/cli/simple-commands/concurrent-display.js +348 -0
  126. package/src/cli/simple-commands/config.js +319 -0
  127. package/src/cli/simple-commands/coordination.js +307 -0
  128. package/src/cli/simple-commands/enhanced-ui-views.js +654 -0
  129. package/src/cli/simple-commands/enhanced-webui-complete.js +1038 -0
  130. package/src/cli/simple-commands/fix-hook-variables.js +363 -0
  131. package/src/cli/simple-commands/github/gh-coordinator.js +605 -0
  132. package/src/cli/simple-commands/github/github-api.js +624 -0
  133. package/src/cli/simple-commands/github/init.js +543 -0
  134. package/src/cli/simple-commands/github.js +377 -0
  135. package/src/cli/simple-commands/goal.js +145 -0
  136. package/src/cli/simple-commands/hive-mind/auto-save-middleware.js +311 -0
  137. package/src/cli/simple-commands/hive-mind/communication.js +740 -0
  138. package/src/cli/simple-commands/hive-mind/core.js +1031 -0
  139. package/src/cli/simple-commands/hive-mind/db-optimizer.js +872 -0
  140. package/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1364 -0
  141. package/src/cli/simple-commands/hive-mind/memory.js +1292 -0
  142. package/src/cli/simple-commands/hive-mind/performance-optimizer.js +618 -0
  143. package/src/cli/simple-commands/hive-mind/performance-test.js +373 -0
  144. package/src/cli/simple-commands/hive-mind/queen.js +809 -0
  145. package/src/cli/simple-commands/hive-mind/session-manager.js +1223 -0
  146. package/src/cli/simple-commands/hive-mind-optimize.js +361 -0
  147. package/src/cli/simple-commands/hive-mind-wizard.js +281 -0
  148. package/src/cli/simple-commands/hive-mind.js +3112 -0
  149. package/src/cli/simple-commands/hive.js +140 -0
  150. package/src/cli/simple-commands/hook-safety.js +671 -0
  151. package/src/cli/simple-commands/hooks.js +1268 -0
  152. package/src/cli/simple-commands/init/.claude/checkpoints/1756224542.json +7 -0
  153. package/src/cli/simple-commands/init/.claude/checkpoints/1756224544.json +8 -0
  154. package/src/cli/simple-commands/init/README.md +106 -0
  155. package/src/cli/simple-commands/init/VALIDATION_ROLLBACK.md +488 -0
  156. package/src/cli/simple-commands/init/agent-copier.js +347 -0
  157. package/src/cli/simple-commands/init/batch-init.js +663 -0
  158. package/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +438 -0
  159. package/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +876 -0
  160. package/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +356 -0
  161. package/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +501 -0
  162. package/src/cli/simple-commands/init/claude-commands/slash-commands.js +57 -0
  163. package/src/cli/simple-commands/init/claude-commands/sparc-commands.js +296 -0
  164. package/src/cli/simple-commands/init/copy-revised-templates.js +175 -0
  165. package/src/cli/simple-commands/init/executable-wrapper.js +122 -0
  166. package/src/cli/simple-commands/init/gitignore-updater.js +137 -0
  167. package/src/cli/simple-commands/init/help.js +110 -0
  168. package/src/cli/simple-commands/init/hive-mind-init.js +749 -0
  169. package/src/cli/simple-commands/init/index.js +1953 -0
  170. package/src/cli/simple-commands/init/performance-monitor.js +344 -0
  171. package/src/cli/simple-commands/init/rollback/backup-manager.js +542 -0
  172. package/src/cli/simple-commands/init/rollback/index.js +399 -0
  173. package/src/cli/simple-commands/init/rollback/recovery-manager.js +778 -0
  174. package/src/cli/simple-commands/init/rollback/rollback-executor.js +521 -0
  175. package/src/cli/simple-commands/init/rollback/state-tracker.js +486 -0
  176. package/src/cli/simple-commands/init/sparc/roo-readme.js +61 -0
  177. package/src/cli/simple-commands/init/sparc/roomodes-config.js +102 -0
  178. package/src/cli/simple-commands/init/sparc/workflows.js +40 -0
  179. package/src/cli/simple-commands/init/sparc-structure.js +68 -0
  180. package/src/cli/simple-commands/init/template-copier.js +640 -0
  181. package/src/cli/simple-commands/init/templates/CLAUDE.md +1185 -0
  182. package/src/cli/simple-commands/init/templates/CLAUDE.md.optimized +265 -0
  183. package/src/cli/simple-commands/init/templates/claude-flow-universal +81 -0
  184. package/src/cli/simple-commands/init/templates/claude-flow.bat +18 -0
  185. package/src/cli/simple-commands/init/templates/claude-flow.ps1 +24 -0
  186. package/src/cli/simple-commands/init/templates/claude-md.js +1101 -0
  187. package/src/cli/simple-commands/init/templates/commands/analysis/bottleneck-detect.md +162 -0
  188. package/src/cli/simple-commands/init/templates/commands/automation/auto-agent.md +122 -0
  189. package/src/cli/simple-commands/init/templates/commands/coordination/swarm-init.md +85 -0
  190. package/src/cli/simple-commands/init/templates/commands/github/github-swarm.md +121 -0
  191. package/src/cli/simple-commands/init/templates/commands/helpers/standard-checkpoint-hooks.sh +179 -0
  192. package/src/cli/simple-commands/init/templates/commands/hooks/notification.md +113 -0
  193. package/src/cli/simple-commands/init/templates/commands/hooks/post-command.md +116 -0
  194. package/src/cli/simple-commands/init/templates/commands/hooks/post-edit.md +117 -0
  195. package/src/cli/simple-commands/init/templates/commands/hooks/post-task.md +112 -0
  196. package/src/cli/simple-commands/init/templates/commands/hooks/pre-command.md +113 -0
  197. package/src/cli/simple-commands/init/templates/commands/hooks/pre-edit.md +113 -0
  198. package/src/cli/simple-commands/init/templates/commands/hooks/pre-search.md +112 -0
  199. package/src/cli/simple-commands/init/templates/commands/hooks/pre-task.md +111 -0
  200. package/src/cli/simple-commands/init/templates/commands/hooks/session-end.md +118 -0
  201. package/src/cli/simple-commands/init/templates/commands/hooks/session-restore.md +118 -0
  202. package/src/cli/simple-commands/init/templates/commands/hooks/session-start.md +117 -0
  203. package/src/cli/simple-commands/init/templates/coordination-md.js +340 -0
  204. package/src/cli/simple-commands/init/templates/coordination.md +16 -0
  205. package/src/cli/simple-commands/init/templates/enhanced-templates.js +2347 -0
  206. package/src/cli/simple-commands/init/templates/github-safe-enhanced.js +331 -0
  207. package/src/cli/simple-commands/init/templates/github-safe.js +106 -0
  208. package/src/cli/simple-commands/init/templates/memory-bank-md.js +259 -0
  209. package/src/cli/simple-commands/init/templates/memory-bank.md +16 -0
  210. package/src/cli/simple-commands/init/templates/readme-files.js +72 -0
  211. package/src/cli/simple-commands/init/templates/safe-hook-patterns.js +430 -0
  212. package/src/cli/simple-commands/init/templates/settings.json +109 -0
  213. package/src/cli/simple-commands/init/templates/settings.json.enhanced +35 -0
  214. package/src/cli/simple-commands/init/templates/sparc-modes.js +1401 -0
  215. package/src/cli/simple-commands/init/templates/verification-claude-md.js +432 -0
  216. package/src/cli/simple-commands/init/validation/config-validator.js +354 -0
  217. package/src/cli/simple-commands/init/validation/health-checker.js +599 -0
  218. package/src/cli/simple-commands/init/validation/index.js +388 -0
  219. package/src/cli/simple-commands/init/validation/mode-validator.js +387 -0
  220. package/src/cli/simple-commands/init/validation/post-init-validator.js +390 -0
  221. package/src/cli/simple-commands/init/validation/pre-init-validator.js +290 -0
  222. package/src/cli/simple-commands/init/validation/test-runner.js +488 -0
  223. package/src/cli/simple-commands/init.js +4 -0
  224. package/src/cli/simple-commands/mcp-health.js +163 -0
  225. package/src/cli/simple-commands/mcp-integration-layer.js +689 -0
  226. package/src/cli/simple-commands/mcp.js +420 -0
  227. package/src/cli/simple-commands/memory-consolidation.js +631 -0
  228. package/src/cli/simple-commands/memory.js +345 -0
  229. package/src/cli/simple-commands/migrate-hooks.js +63 -0
  230. package/src/cli/simple-commands/monitor.js +417 -0
  231. package/src/cli/simple-commands/neural.js +148 -0
  232. package/src/cli/simple-commands/pair-autofix-only.js +755 -0
  233. package/src/cli/simple-commands/pair-basic.js +751 -0
  234. package/src/cli/simple-commands/pair-old.js +623 -0
  235. package/src/cli/simple-commands/pair-working.js +849 -0
  236. package/src/cli/simple-commands/pair.js +849 -0
  237. package/src/cli/simple-commands/performance-hooks.js +149 -0
  238. package/src/cli/simple-commands/performance-metrics.js +601 -0
  239. package/src/cli/simple-commands/process-ui-enhanced.js +821 -0
  240. package/src/cli/simple-commands/process-ui.js +274 -0
  241. package/src/cli/simple-commands/realtime-update-system.js +659 -0
  242. package/src/cli/simple-commands/sparc/architecture.js +1750 -0
  243. package/src/cli/simple-commands/sparc/commands.js +575 -0
  244. package/src/cli/simple-commands/sparc/completion.js +1831 -0
  245. package/src/cli/simple-commands/sparc/coordinator.js +1045 -0
  246. package/src/cli/simple-commands/sparc/index.js +321 -0
  247. package/src/cli/simple-commands/sparc/phase-base.js +430 -0
  248. package/src/cli/simple-commands/sparc/pseudocode.js +984 -0
  249. package/src/cli/simple-commands/sparc/refinement.js +1856 -0
  250. package/src/cli/simple-commands/sparc/specification.js +736 -0
  251. package/src/cli/simple-commands/sparc-modes/architect.js +125 -0
  252. package/src/cli/simple-commands/sparc-modes/ask.js +126 -0
  253. package/src/cli/simple-commands/sparc-modes/code.js +148 -0
  254. package/src/cli/simple-commands/sparc-modes/debug.js +112 -0
  255. package/src/cli/simple-commands/sparc-modes/devops.js +137 -0
  256. package/src/cli/simple-commands/sparc-modes/docs-writer.js +38 -0
  257. package/src/cli/simple-commands/sparc-modes/generic.js +34 -0
  258. package/src/cli/simple-commands/sparc-modes/index.js +201 -0
  259. package/src/cli/simple-commands/sparc-modes/integration.js +55 -0
  260. package/src/cli/simple-commands/sparc-modes/mcp.js +38 -0
  261. package/src/cli/simple-commands/sparc-modes/monitoring.js +38 -0
  262. package/src/cli/simple-commands/sparc-modes/optimization.js +38 -0
  263. package/src/cli/simple-commands/sparc-modes/security-review.js +130 -0
  264. package/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +167 -0
  265. package/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +38 -0
  266. package/src/cli/simple-commands/sparc-modes/supabase-admin.js +149 -0
  267. package/src/cli/simple-commands/sparc-modes/swarm.js +436 -0
  268. package/src/cli/simple-commands/sparc-modes/tdd.js +112 -0
  269. package/src/cli/simple-commands/sparc-modes/tutorial.js +277 -0
  270. package/src/cli/simple-commands/sparc.js +530 -0
  271. package/src/cli/simple-commands/start-ui.js +147 -0
  272. package/src/cli/simple-commands/start-wrapper.js +285 -0
  273. package/src/cli/simple-commands/start.js +2 -0
  274. package/src/cli/simple-commands/status.js +303 -0
  275. package/src/cli/simple-commands/stream-chain-clean.js +221 -0
  276. package/src/cli/simple-commands/stream-chain-fixed.js +89 -0
  277. package/src/cli/simple-commands/stream-chain-real.js +408 -0
  278. package/src/cli/simple-commands/stream-chain-working.js +323 -0
  279. package/src/cli/simple-commands/stream-chain.js +491 -0
  280. package/src/cli/simple-commands/stream-processor.js +340 -0
  281. package/src/cli/simple-commands/swarm-executor.js +253 -0
  282. package/src/cli/simple-commands/swarm-metrics-integration.js +371 -0
  283. package/src/cli/simple-commands/swarm-ui.js +741 -0
  284. package/src/cli/simple-commands/swarm-webui-integration.js +311 -0
  285. package/src/cli/simple-commands/swarm.js +2277 -0
  286. package/src/cli/simple-commands/task.js +228 -0
  287. package/src/cli/simple-commands/templates/mle-star-workflow.json +294 -0
  288. package/src/cli/simple-commands/timestamp-fix.js +104 -0
  289. package/src/cli/simple-commands/token-tracker.js +372 -0
  290. package/src/cli/simple-commands/tool-execution-framework.js +555 -0
  291. package/src/cli/simple-commands/train-and-stream.js +354 -0
  292. package/src/cli/simple-commands/training-pipeline.js +874 -0
  293. package/src/cli/simple-commands/training.js +288 -0
  294. package/src/cli/simple-commands/verification-hooks.js +336 -0
  295. package/src/cli/simple-commands/verification-integration.js +464 -0
  296. package/src/cli/simple-commands/verification-training-integration.js +646 -0
  297. package/src/cli/simple-commands/verification.js +551 -0
  298. package/src/cli/simple-commands/web-server.js +929 -0
  299. package/src/cli/simple-commands/webui-validator.js +136 -0
  300. package/src/language/README.md +503 -0
  301. package/src/language/claude-md-generator.js +618 -0
  302. package/src/language/cli.js +422 -0
  303. package/src/language/example.js +347 -0
  304. package/src/language/integration-system.js +619 -0
  305. package/src/language/language-detector.js +581 -0
@@ -0,0 +1,430 @@
1
+ // Base class for SPARC phases
2
+ // Provides common functionality for all phases
3
+
4
+ export class SparcPhase {
5
+ constructor(phaseName, taskDescription, options = {}) {
6
+ this.phaseName = phaseName;
7
+ this.taskDescription = taskDescription;
8
+ this.options = options;
9
+ this.startTime = null;
10
+ this.endTime = null;
11
+ this.artifacts = [];
12
+ this.memory = {};
13
+ this.swarmContext = null;
14
+ this.remediationContext = null;
15
+ }
16
+
17
+ /**
18
+ * Initialize phase execution
19
+ */
20
+ async initializePhase() {
21
+ this.startTime = Date.now();
22
+ console.log(`🚀 Initializing ${this.phaseName} phase`);
23
+
24
+ // Load previous context from memory
25
+ if (this.options.swarmEnabled) {
26
+ await this.loadSwarmContext();
27
+ }
28
+
29
+ // Store phase start in memory
30
+ await this.storeInMemory(`${this.phaseName}_started`, {
31
+ timestamp: this.startTime,
32
+ taskDescription: this.taskDescription,
33
+ });
34
+ }
35
+
36
+ /**
37
+ * Finalize phase execution
38
+ */
39
+ async finalizePhase() {
40
+ this.endTime = Date.now();
41
+ const duration = this.endTime - this.startTime;
42
+
43
+ console.log(`✅ ${this.phaseName} phase completed in ${duration}ms`);
44
+
45
+ // Store phase completion in memory
46
+ await this.storeInMemory(`${this.phaseName}_completed`, {
47
+ timestamp: this.endTime,
48
+ duration: duration,
49
+ artifacts: this.artifacts,
50
+ });
51
+
52
+ // Update swarm context if enabled
53
+ if (this.options.swarmEnabled) {
54
+ await this.updateSwarmContext();
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Store data in memory system
60
+ */
61
+ async storeInMemory(key, data) {
62
+ try {
63
+ const memoryKey = `${this.options.namespace}_${key}`;
64
+ const memoryData = JSON.stringify(data);
65
+
66
+ // Store in local memory
67
+ this.memory[key] = data;
68
+
69
+ // Store in swarm memory if enabled
70
+ if (this.options.swarmEnabled) {
71
+ await this.storeInSwarmMemory(memoryKey, memoryData);
72
+ }
73
+
74
+ console.log(`💾 Stored in memory: ${memoryKey}`);
75
+ } catch (error) {
76
+ console.warn(`⚠️ Failed to store in memory: ${error.message}`);
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Retrieve data from memory system
82
+ */
83
+ async retrieveFromMemory(key) {
84
+ try {
85
+ const memoryKey = `${this.options.namespace}_${key}`;
86
+
87
+ // Try local memory first
88
+ if (this.memory[key]) {
89
+ return this.memory[key];
90
+ }
91
+
92
+ // Try swarm memory if enabled
93
+ if (this.options.swarmEnabled) {
94
+ return await this.retrieveFromSwarmMemory(memoryKey);
95
+ }
96
+
97
+ return null;
98
+ } catch (error) {
99
+ console.warn(`⚠️ Failed to retrieve from memory: ${error.message}`);
100
+ return null;
101
+ }
102
+ }
103
+
104
+ /**
105
+ * Store data in swarm memory
106
+ */
107
+ async storeInSwarmMemory(key, data) {
108
+ if (!this.options.swarmEnabled) return;
109
+
110
+ try {
111
+ // Use ruv-swarm memory hooks
112
+ const { spawn } = await import('child_process');
113
+
114
+ return new Promise((resolve, reject) => {
115
+ const process = spawn(
116
+ 'npx',
117
+ ['ruv-swarm', 'hook', 'memory-store', '--key', key, '--data', data],
118
+ {
119
+ stdio: 'pipe',
120
+ },
121
+ );
122
+
123
+ let output = '';
124
+ process.stdout.on('data', (data) => {
125
+ output += data.toString();
126
+ });
127
+
128
+ process.on('close', (code) => {
129
+ if (code === 0) {
130
+ resolve(output);
131
+ } else {
132
+ reject(new Error(`Memory store failed with code ${code}`));
133
+ }
134
+ });
135
+ });
136
+ } catch (error) {
137
+ console.warn(`⚠️ Failed to store in swarm memory: ${error.message}`);
138
+ }
139
+ }
140
+
141
+ /**
142
+ * Retrieve data from swarm memory
143
+ */
144
+ async retrieveFromSwarmMemory(key) {
145
+ if (!this.options.swarmEnabled) return null;
146
+
147
+ try {
148
+ const { spawn } = await import('child_process');
149
+
150
+ return new Promise((resolve, reject) => {
151
+ const process = spawn('npx', ['ruv-swarm', 'hook', 'memory-retrieve', '--key', key], {
152
+ stdio: 'pipe',
153
+ });
154
+
155
+ let output = '';
156
+ process.stdout.on('data', (data) => {
157
+ output += data.toString();
158
+ });
159
+
160
+ process.on('close', (code) => {
161
+ if (code === 0) {
162
+ try {
163
+ const data = JSON.parse(output);
164
+ resolve(data);
165
+ } catch (parseError) {
166
+ resolve(null);
167
+ }
168
+ } else {
169
+ resolve(null);
170
+ }
171
+ });
172
+ });
173
+ } catch (error) {
174
+ console.warn(`⚠️ Failed to retrieve from swarm memory: ${error.message}`);
175
+ return null;
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Load swarm context
181
+ */
182
+ async loadSwarmContext() {
183
+ try {
184
+ this.swarmContext = await this.retrieveFromSwarmMemory(
185
+ `${this.options.namespace}_swarm_context`,
186
+ );
187
+ if (this.swarmContext) {
188
+ console.log(`🐝 Loaded swarm context for ${this.phaseName}`);
189
+ }
190
+ } catch (error) {
191
+ console.warn(`⚠️ Failed to load swarm context: ${error.message}`);
192
+ }
193
+ }
194
+
195
+ /**
196
+ * Update swarm context
197
+ */
198
+ async updateSwarmContext() {
199
+ try {
200
+ const contextUpdate = {
201
+ phase: this.phaseName,
202
+ timestamp: Date.now(),
203
+ artifacts: this.artifacts,
204
+ memory: this.memory,
205
+ status: 'completed',
206
+ };
207
+
208
+ await this.storeInSwarmMemory(
209
+ `${this.options.namespace}_swarm_context`,
210
+ JSON.stringify(contextUpdate),
211
+ );
212
+ console.log(`🐝 Updated swarm context for ${this.phaseName}`);
213
+ } catch (error) {
214
+ console.warn(`⚠️ Failed to update swarm context: ${error.message}`);
215
+ }
216
+ }
217
+
218
+ /**
219
+ * Save artifact to file system
220
+ */
221
+ async saveArtifact(filename, content) {
222
+ try {
223
+ const fs = await import('fs/promises');
224
+ const path = await import('path');
225
+
226
+ const artifactDir = path.join(process.cwd(), 'sparc-artifacts', this.options.namespace);
227
+ await fs.mkdir(artifactDir, { recursive: true });
228
+
229
+ const filePath = path.join(artifactDir, filename);
230
+ await fs.writeFile(filePath, content, 'utf8');
231
+
232
+ this.artifacts.push({
233
+ filename,
234
+ path: filePath,
235
+ timestamp: Date.now(),
236
+ });
237
+
238
+ console.log(`📄 Saved artifact: ${filename}`);
239
+ return filePath;
240
+ } catch (error) {
241
+ console.warn(`⚠️ Failed to save artifact: ${error.message}`);
242
+ return null;
243
+ }
244
+ }
245
+
246
+ /**
247
+ * Load artifact from file system
248
+ */
249
+ async loadArtifact(filename) {
250
+ try {
251
+ const fs = await import('fs/promises');
252
+ const path = await import('path');
253
+
254
+ const artifactDir = path.join(process.cwd(), 'sparc-artifacts', this.options.namespace);
255
+ const filePath = path.join(artifactDir, filename);
256
+
257
+ const content = await fs.readFile(filePath, 'utf8');
258
+ return content;
259
+ } catch (error) {
260
+ console.warn(`⚠️ Failed to load artifact: ${error.message}`);
261
+ return null;
262
+ }
263
+ }
264
+
265
+ /**
266
+ * Set remediation context for quality gate failures
267
+ */
268
+ setRemediationContext(qualityGate) {
269
+ this.remediationContext = qualityGate;
270
+ console.log(
271
+ `🔧 Set remediation context for ${this.phaseName}: ${qualityGate.reasons.join(', ')}`,
272
+ );
273
+ }
274
+
275
+ /**
276
+ * Get phase metrics
277
+ */
278
+ getMetrics() {
279
+ return {
280
+ phaseName: this.phaseName,
281
+ duration: this.endTime ? this.endTime - this.startTime : null,
282
+ artifactsCount: this.artifacts.length,
283
+ memoryKeys: Object.keys(this.memory).length,
284
+ hasSwarmContext: !!this.swarmContext,
285
+ hasRemediationContext: !!this.remediationContext,
286
+ };
287
+ }
288
+
289
+ /**
290
+ * Validate phase prerequisites
291
+ */
292
+ async validatePrerequisites() {
293
+ // Base validation - override in subclasses
294
+ return { valid: true, reasons: [] };
295
+ }
296
+
297
+ /**
298
+ * Execute phase - must be implemented by subclasses
299
+ */
300
+ async execute() {
301
+ throw new Error(`Execute method must be implemented by ${this.phaseName} phase`);
302
+ }
303
+
304
+ /**
305
+ * Get phase status
306
+ */
307
+ getStatus() {
308
+ return {
309
+ phase: this.phaseName,
310
+ started: !!this.startTime,
311
+ completed: !!this.endTime,
312
+ duration: this.endTime ? this.endTime - this.startTime : null,
313
+ artifacts: this.artifacts.length,
314
+ hasContext: !!this.swarmContext,
315
+ hasRemediation: !!this.remediationContext,
316
+ };
317
+ }
318
+
319
+ /**
320
+ * Neural learning hook
321
+ */
322
+ async recordLearning(learningData) {
323
+ if (!this.options.neuralLearning) return;
324
+
325
+ try {
326
+ const learningRecord = {
327
+ phase: this.phaseName,
328
+ timestamp: Date.now(),
329
+ data: learningData,
330
+ context: {
331
+ task: this.taskDescription,
332
+ options: this.options,
333
+ metrics: this.getMetrics(),
334
+ },
335
+ };
336
+
337
+ await this.storeInMemory(`learning_${Date.now()}`, learningRecord);
338
+
339
+ // Store in neural learning system if available
340
+ if (this.options.swarmEnabled) {
341
+ await this.storeInSwarmMemory(
342
+ `neural_learning_${this.phaseName}`,
343
+ JSON.stringify(learningRecord),
344
+ );
345
+ }
346
+
347
+ console.log(`🧠 Recorded learning for ${this.phaseName}`);
348
+ } catch (error) {
349
+ console.warn(`⚠️ Failed to record learning: ${error.message}`);
350
+ }
351
+ }
352
+
353
+ /**
354
+ * Get learning insights
355
+ */
356
+ async getLearningInsights() {
357
+ if (!this.options.neuralLearning) return [];
358
+
359
+ try {
360
+ const insights = [];
361
+
362
+ // Analyze previous executions
363
+ const learningKeys = Object.keys(this.memory).filter((key) => key.startsWith('learning_'));
364
+
365
+ for (const key of learningKeys) {
366
+ const record = this.memory[key];
367
+ if (record && record.phase === this.phaseName) {
368
+ insights.push({
369
+ timestamp: record.timestamp,
370
+ insight: this.generateInsight(record),
371
+ confidence: this.calculateConfidence(record),
372
+ });
373
+ }
374
+ }
375
+
376
+ return insights;
377
+ } catch (error) {
378
+ console.warn(`⚠️ Failed to get learning insights: ${error.message}`);
379
+ return [];
380
+ }
381
+ }
382
+
383
+ /**
384
+ * Generate insight from learning record
385
+ */
386
+ generateInsight(record) {
387
+ // Basic insight generation - can be enhanced with ML
388
+ const patterns = this.identifyPatterns(record);
389
+ return `Pattern identified: ${patterns.join(', ')}`;
390
+ }
391
+
392
+ /**
393
+ * Calculate confidence score
394
+ */
395
+ calculateConfidence(record) {
396
+ // Simple confidence calculation based on recency and success
397
+ const age = Date.now() - record.timestamp;
398
+ const recencyScore = Math.max(0, 1 - age / (24 * 60 * 60 * 1000)); // Decay over 24 hours
399
+ const successScore = record.data.success ? 1 : 0.5;
400
+
401
+ return (recencyScore + successScore) / 2;
402
+ }
403
+
404
+ /**
405
+ * Identify patterns in learning data
406
+ */
407
+ identifyPatterns(record) {
408
+ const patterns = [];
409
+
410
+ if (record.data.duration) {
411
+ if (record.data.duration > 60000) {
412
+ patterns.push('Long execution time');
413
+ } else if (record.data.duration < 10000) {
414
+ patterns.push('Fast execution');
415
+ }
416
+ }
417
+
418
+ if (record.data.errors && record.data.errors.length > 0) {
419
+ patterns.push('Error prone');
420
+ }
421
+
422
+ if (record.data.qualityGate && !record.data.qualityGate.passed) {
423
+ patterns.push('Quality gate failures');
424
+ }
425
+
426
+ return patterns;
427
+ }
428
+ }
429
+
430
+ export default SparcPhase;