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,345 @@
1
+ // memory.js - Memory management commands
2
+ import { printSuccess, printError, printWarning, printInfo } from '../utils.js';
3
+ import { promises as fs } from 'fs';
4
+ import { cwd, exit, existsSync } from '../node-compat.js';
5
+ import { getUnifiedMemory } from '../../memory/unified-memory-manager.js';
6
+
7
+ export async function memoryCommand(subArgs, flags) {
8
+ const memorySubcommand = subArgs[0];
9
+ const memoryStore = './memory/memory-store.json';
10
+
11
+ // Extract namespace from flags or subArgs
12
+ const namespace = flags?.namespace || flags?.ns || getNamespaceFromArgs(subArgs) || 'default';
13
+
14
+ // Helper to load memory data
15
+ async function loadMemory() {
16
+ try {
17
+ const content = await fs.readFile(memoryStore, 'utf8');
18
+ return JSON.parse(content);
19
+ } catch {
20
+ return {};
21
+ }
22
+ }
23
+
24
+ // Helper to save memory data
25
+ async function saveMemory(data) {
26
+ await fs.mkdir('./memory', { recursive: true });
27
+ await fs.writeFile(memoryStore, JSON.stringify(data, null, 2, 'utf8'));
28
+ }
29
+
30
+ switch (memorySubcommand) {
31
+ case 'store':
32
+ await storeMemory(subArgs, loadMemory, saveMemory, namespace);
33
+ break;
34
+
35
+ case 'query':
36
+ await queryMemory(subArgs, loadMemory, namespace);
37
+ break;
38
+
39
+ case 'stats':
40
+ await showMemoryStats(loadMemory);
41
+ break;
42
+
43
+ case 'export':
44
+ await exportMemory(subArgs, loadMemory, namespace);
45
+ break;
46
+
47
+ case 'import':
48
+ await importMemory(subArgs, saveMemory, loadMemory);
49
+ break;
50
+
51
+ case 'clear':
52
+ await clearMemory(subArgs, saveMemory, namespace);
53
+ break;
54
+
55
+ case 'list':
56
+ await listNamespaces(loadMemory);
57
+ break;
58
+
59
+ default:
60
+ showMemoryHelp();
61
+ }
62
+ }
63
+
64
+ async function storeMemory(subArgs, loadMemory, saveMemory, namespace) {
65
+ const key = subArgs[1];
66
+ const value = subArgs.slice(2).join(' ');
67
+
68
+ if (!key || !value) {
69
+ printError('Usage: memory store <key> <value> [--namespace <ns>]');
70
+ return;
71
+ }
72
+
73
+ try {
74
+ const data = await loadMemory();
75
+
76
+ if (!data[namespace]) {
77
+ data[namespace] = [];
78
+ }
79
+
80
+ // Remove existing entry with same key
81
+ data[namespace] = data[namespace].filter((e) => e.key !== key);
82
+
83
+ // Add new entry
84
+ data[namespace].push({
85
+ key,
86
+ value,
87
+ namespace,
88
+ timestamp: Date.now(),
89
+ });
90
+
91
+ await saveMemory(data);
92
+ printSuccess('Stored successfully');
93
+ console.log(`📝 Key: ${key}`);
94
+ console.log(`📦 Namespace: ${namespace}`);
95
+ console.log(`💾 Size: ${new TextEncoder().encode(value).length} bytes`);
96
+ } catch (err) {
97
+ printError(`Failed to store: ${err.message}`);
98
+ }
99
+ }
100
+
101
+ async function queryMemory(subArgs, loadMemory, namespace) {
102
+ const search = subArgs.slice(1).join(' ');
103
+
104
+ if (!search) {
105
+ printError('Usage: memory query <search> [--namespace <ns>]');
106
+ return;
107
+ }
108
+
109
+ try {
110
+ const data = await loadMemory();
111
+ const results = [];
112
+
113
+ for (const [ns, entries] of Object.entries(data)) {
114
+ if (namespace && ns !== namespace) continue;
115
+
116
+ for (const entry of entries) {
117
+ if (entry.key.includes(search) || entry.value.includes(search)) {
118
+ results.push(entry);
119
+ }
120
+ }
121
+ }
122
+
123
+ if (results.length === 0) {
124
+ printWarning('No results found');
125
+ return;
126
+ }
127
+
128
+ printSuccess(`Found ${results.length} results:`);
129
+
130
+ // Sort by timestamp (newest first)
131
+ results.sort((a, b) => b.timestamp - a.timestamp);
132
+
133
+ for (const entry of results.slice(0, 10)) {
134
+ console.log(`\n📌 ${entry.key}`);
135
+ console.log(` Namespace: ${entry.namespace}`);
136
+ console.log(
137
+ ` Value: ${entry.value.substring(0, 100)}${entry.value.length > 100 ? '...' : ''}`,
138
+ );
139
+ console.log(` Stored: ${new Date(entry.timestamp).toLocaleString()}`);
140
+ }
141
+
142
+ if (results.length > 10) {
143
+ console.log(`\n... and ${results.length - 10} more results`);
144
+ }
145
+ } catch (err) {
146
+ printError(`Failed to query: ${err.message}`);
147
+ }
148
+ }
149
+
150
+ async function showMemoryStats(loadMemory) {
151
+ try {
152
+ const data = await loadMemory();
153
+ let totalEntries = 0;
154
+ const namespaceStats = {};
155
+
156
+ for (const [namespace, entries] of Object.entries(data)) {
157
+ namespaceStats[namespace] = entries.length;
158
+ totalEntries += entries.length;
159
+ }
160
+
161
+ printSuccess('Memory Bank Statistics:');
162
+ console.log(` Total Entries: ${totalEntries}`);
163
+ console.log(` Namespaces: ${Object.keys(data).length}`);
164
+ console.log(
165
+ ` Size: ${(new TextEncoder().encode(JSON.stringify(data)).length / 1024).toFixed(2)} KB`,
166
+ );
167
+
168
+ if (Object.keys(data).length > 0) {
169
+ console.log('\n📁 Namespace Breakdown:');
170
+ for (const [namespace, count] of Object.entries(namespaceStats)) {
171
+ console.log(` ${namespace}: ${count} entries`);
172
+ }
173
+ }
174
+ } catch (err) {
175
+ printError(`Failed to get stats: ${err.message}`);
176
+ }
177
+ }
178
+
179
+ async function exportMemory(subArgs, loadMemory, namespace) {
180
+ const filename = subArgs[1] || `memory-export-${Date.now()}.json`;
181
+
182
+ try {
183
+ const data = await loadMemory();
184
+
185
+ let exportData = data;
186
+ if (namespace) {
187
+ exportData = { [namespace]: data[namespace] || [] };
188
+ }
189
+
190
+ await fs.writeFile(filename, JSON.stringify(exportData, null, 2, 'utf8'));
191
+ printSuccess(`Memory exported to ${filename}`);
192
+
193
+ let totalEntries = 0;
194
+ for (const entries of Object.values(exportData)) {
195
+ totalEntries += entries.length;
196
+ }
197
+ console.log(
198
+ `📦 Exported ${totalEntries} entries from ${Object.keys(exportData).length} namespace(s)`,
199
+ );
200
+ } catch (err) {
201
+ printError(`Failed to export memory: ${err.message}`);
202
+ }
203
+ }
204
+
205
+ async function importMemory(subArgs, saveMemory, loadMemory) {
206
+ const filename = subArgs[1];
207
+
208
+ if (!filename) {
209
+ printError('Usage: memory import <filename>');
210
+ return;
211
+ }
212
+
213
+ try {
214
+ const importContent = await fs.readFile(filename, 'utf8');
215
+ const importData = JSON.parse(importContent);
216
+
217
+ // Load existing memory
218
+ const existingData = await loadMemory();
219
+
220
+ // Merge imported data
221
+ let totalImported = 0;
222
+ for (const [namespace, entries] of Object.entries(importData)) {
223
+ if (!existingData[namespace]) {
224
+ existingData[namespace] = [];
225
+ }
226
+
227
+ // Add entries that don't already exist (by key)
228
+ const existingKeys = new Set(existingData[namespace].map((e) => e.key));
229
+ const newEntries = entries.filter((e) => !existingKeys.has(e.key));
230
+
231
+ existingData[namespace].push(...newEntries);
232
+ totalImported += newEntries.length;
233
+ }
234
+
235
+ await saveMemory(existingData);
236
+ printSuccess(`Imported ${totalImported} new entries from ${filename}`);
237
+ } catch (err) {
238
+ printError(`Failed to import memory: ${err.message}`);
239
+ }
240
+ }
241
+
242
+ async function clearMemory(subArgs, saveMemory, namespace) {
243
+ if (!namespace || namespace === 'default') {
244
+ const nsFromArgs = getNamespaceFromArgs(subArgs);
245
+ if (!nsFromArgs) {
246
+ printError('Usage: memory clear --namespace <namespace>');
247
+ printWarning('This will clear all entries in the specified namespace');
248
+ return;
249
+ }
250
+ namespace = nsFromArgs;
251
+ }
252
+
253
+ try {
254
+ // Helper to load memory data
255
+ async function loadMemory() {
256
+ try {
257
+ const content = await fs.readFile('./memory/memory-store.json', 'utf8');
258
+ return JSON.parse(content);
259
+ } catch {
260
+ return {};
261
+ }
262
+ }
263
+
264
+ const data = await loadMemory();
265
+
266
+ if (!data[namespace]) {
267
+ printWarning(`Namespace '${namespace}' does not exist`);
268
+ return;
269
+ }
270
+
271
+ const entryCount = data[namespace].length;
272
+ delete data[namespace];
273
+
274
+ await saveMemory(data);
275
+ printSuccess(`Cleared ${entryCount} entries from namespace '${namespace}'`);
276
+ } catch (err) {
277
+ printError(`Failed to clear memory: ${err.message}`);
278
+ }
279
+ }
280
+
281
+ async function listNamespaces(loadMemory) {
282
+ try {
283
+ const data = await loadMemory();
284
+ const namespaces = Object.keys(data);
285
+
286
+ if (namespaces.length === 0) {
287
+ printWarning('No namespaces found');
288
+ return;
289
+ }
290
+
291
+ printSuccess('Available namespaces:');
292
+ for (const namespace of namespaces) {
293
+ const count = data[namespace].length;
294
+ console.log(` ${namespace} (${count} entries)`);
295
+ }
296
+ } catch (err) {
297
+ printError(`Failed to list namespaces: ${err.message}`);
298
+ }
299
+ }
300
+
301
+ function getNamespaceFromArgs(subArgs) {
302
+ const namespaceIndex = subArgs.indexOf('--namespace');
303
+ if (namespaceIndex !== -1 && namespaceIndex + 1 < subArgs.length) {
304
+ return subArgs[namespaceIndex + 1];
305
+ }
306
+
307
+ const nsIndex = subArgs.indexOf('--ns');
308
+ if (nsIndex !== -1 && nsIndex + 1 < subArgs.length) {
309
+ return subArgs[nsIndex + 1];
310
+ }
311
+
312
+ return null;
313
+ }
314
+
315
+ // Helper to load memory data (needed for import function)
316
+ async function loadMemory() {
317
+ try {
318
+ const content = await fs.readFile('./memory/memory-store.json', 'utf8');
319
+ return JSON.parse(content);
320
+ } catch {
321
+ return {};
322
+ }
323
+ }
324
+
325
+ function showMemoryHelp() {
326
+ console.log('Memory commands:');
327
+ console.log(' store <key> <value> Store a key-value pair');
328
+ console.log(' query <search> Search for entries');
329
+ console.log(' stats Show memory statistics');
330
+ console.log(' export [filename] Export memory to file');
331
+ console.log(' import <filename> Import memory from file');
332
+ console.log(' clear --namespace <ns> Clear a namespace');
333
+ console.log(' list List all namespaces');
334
+ console.log();
335
+ console.log('Options:');
336
+ console.log(' --namespace <ns> Specify namespace for operations');
337
+ console.log(' --ns <ns> Short form of --namespace');
338
+ console.log();
339
+ console.log('Examples:');
340
+ console.log(' memory store previous_work "Research findings from yesterday"');
341
+ console.log(' memory query research --namespace sparc');
342
+ console.log(' memory export backup.json --namespace default');
343
+ console.log(' memory import project-memory.json');
344
+ console.log(' memory stats');
345
+ }
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * CLI command wrapper for migrate-hooks script
5
+ */
6
+
7
+ import { execSync } from 'child_process';
8
+ import path from 'path';
9
+ import { fileURLToPath } from 'url';
10
+ import { promises as fs } from 'fs';
11
+
12
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
13
+
14
+ export async function migrateHooksCommand(flags, args) {
15
+ console.log('🔄 Claude Flow Hooks Migration\n');
16
+
17
+ try {
18
+ // Find the migration script
19
+ const scriptPath = path.join(__dirname, '../../../scripts/migrate-hooks.js');
20
+
21
+ // Check if script exists
22
+ try {
23
+ await fs.access(scriptPath);
24
+ } catch {
25
+ console.error('❌ Migration script not found. Please ensure you have the latest version.');
26
+ process.exit(1);
27
+ }
28
+
29
+ // Build command with any additional arguments
30
+ const command = ['node', scriptPath];
31
+ if (args.length > 0) {
32
+ command.push(...args);
33
+ }
34
+
35
+ // Execute the migration script
36
+ execSync(command.join(' '), {
37
+ stdio: 'inherit',
38
+ cwd: process.cwd(),
39
+ });
40
+ } catch (error) {
41
+ console.error('❌ Migration failed:', error.message);
42
+ process.exit(1);
43
+ }
44
+ }
45
+
46
+ // Export the command configuration
47
+ export const migrateHooksCommandConfig = {
48
+ handler: migrateHooksCommand,
49
+ description: 'Migrate settings.json hooks to Claude Code 1.0.51+ format',
50
+ usage: 'migrate-hooks [settings-file]',
51
+ examples: [
52
+ 'claude-flow migrate-hooks # Migrate all found settings.json files',
53
+ 'claude-flow migrate-hooks .claude/settings.json # Migrate specific file',
54
+ ],
55
+ details: `
56
+ Migrates old hooks format to new Claude Code 1.0.51+ format:
57
+ • Converts object-based hooks to array-based format
58
+ • Creates backup before making changes
59
+ • Removes unsupported fields (mcpServers, features, performance)
60
+ • Searches common locations if no file specified
61
+
62
+ The migration is safe and creates backups of original files.`,
63
+ };