claude-flow-novice 2.0.3 → 2.0.4

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 (272) hide show
  1. package/dist/src/cli/commands/guidance.js +487 -668
  2. package/dist/src/cli/commands/index-validate.js +18 -29
  3. package/dist/src/cli/commands/mcp-troubleshoot.js +230 -282
  4. package/dist/src/cli/commands/neural-goal-init.js +92 -125
  5. package/dist/src/cli/commands/swarm-exec.js +317 -393
  6. package/dist/src/cli/commands/swarm.js +1 -1
  7. package/dist/src/cli/commands/validate-framework.js +983 -1100
  8. package/dist/src/cli/commands/validate.js +144 -223
  9. package/dist/src/cli/simple-commands/__tests__/agent.test.js +265 -277
  10. package/dist/src/cli/simple-commands/__tests__/memory.test.js +6 -7
  11. package/dist/src/cli/simple-commands/__tests__/swarm.test.js +373 -356
  12. package/dist/src/cli/simple-commands/__tests__/task.test.js +6 -7
  13. package/dist/src/cli/simple-commands/agent.js +157 -193
  14. package/dist/src/cli/simple-commands/analysis.js +336 -446
  15. package/dist/src/cli/simple-commands/automation-executor.js +1095 -1339
  16. package/dist/src/cli/simple-commands/automation.js +481 -469
  17. package/dist/src/cli/simple-commands/batch-manager.js +261 -313
  18. package/dist/src/cli/simple-commands/claude-telemetry.js +241 -267
  19. package/dist/src/cli/simple-commands/claude-track.js +68 -90
  20. package/dist/src/cli/simple-commands/concurrent-display.js +266 -320
  21. package/dist/src/cli/simple-commands/config.js +245 -290
  22. package/dist/src/cli/simple-commands/coordination.js +182 -234
  23. package/dist/src/cli/simple-commands/enhanced-ui-views.js +812 -615
  24. package/dist/src/cli/simple-commands/enhanced-webui-complete.js +922 -981
  25. package/dist/src/cli/simple-commands/fix-hook-variables.js +274 -294
  26. package/dist/src/cli/simple-commands/github/gh-coordinator.js +378 -457
  27. package/dist/src/cli/simple-commands/github/github-api.js +535 -574
  28. package/dist/src/cli/simple-commands/github/init.js +276 -303
  29. package/dist/src/cli/simple-commands/github.js +222 -247
  30. package/dist/src/cli/simple-commands/goal.js +51 -63
  31. package/dist/src/cli/simple-commands/hive-mind/auto-save-middleware.js +208 -278
  32. package/dist/src/cli/simple-commands/hive-mind/communication.js +601 -696
  33. package/dist/src/cli/simple-commands/hive-mind/core.js +907 -979
  34. package/dist/src/cli/simple-commands/hive-mind/db-optimizer.js +406 -655
  35. package/dist/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1125 -1245
  36. package/dist/src/cli/simple-commands/hive-mind/memory.js +854 -1090
  37. package/dist/src/cli/simple-commands/hive-mind/performance-optimizer.js +459 -574
  38. package/dist/src/cli/simple-commands/hive-mind/performance-test.js +263 -347
  39. package/dist/src/cli/simple-commands/hive-mind/queen.js +727 -768
  40. package/dist/src/cli/simple-commands/hive-mind/session-manager.js +745 -1049
  41. package/dist/src/cli/simple-commands/hive-mind-optimize.js +227 -283
  42. package/dist/src/cli/simple-commands/hive-mind-wizard.js +174 -217
  43. package/dist/src/cli/simple-commands/hive-mind.js +1842 -2283
  44. package/dist/src/cli/simple-commands/hive.js +90 -79
  45. package/dist/src/cli/simple-commands/hook-safety.js +431 -521
  46. package/dist/src/cli/simple-commands/hooks/session-start-soul.js +203 -254
  47. package/dist/src/cli/simple-commands/hooks.js +1064 -1204
  48. package/dist/src/cli/simple-commands/init/agent-copier.js +294 -319
  49. package/dist/src/cli/simple-commands/init/batch-init.js +496 -562
  50. package/dist/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +13 -19
  51. package/dist/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +13 -19
  52. package/dist/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +61 -88
  53. package/dist/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +125 -150
  54. package/dist/src/cli/simple-commands/init/claude-commands/slash-commands.js +42 -49
  55. package/dist/src/cli/simple-commands/init/claude-commands/sparc-commands.js +43 -61
  56. package/dist/src/cli/simple-commands/init/copy-revised-templates.js +141 -147
  57. package/dist/src/cli/simple-commands/init/executable-wrapper.js +31 -44
  58. package/dist/src/cli/simple-commands/init/gitignore-updater.js +64 -90
  59. package/dist/src/cli/simple-commands/init/help.js +104 -107
  60. package/dist/src/cli/simple-commands/init/hive-mind-init.js +509 -528
  61. package/dist/src/cli/simple-commands/init/index.js +1510 -1759
  62. package/dist/src/cli/simple-commands/init/performance-monitor.js +234 -317
  63. package/dist/src/cli/simple-commands/init/rollback/backup-manager.js +441 -504
  64. package/dist/src/cli/simple-commands/init/rollback/index.js +289 -364
  65. package/dist/src/cli/simple-commands/init/rollback/recovery-manager.js +652 -728
  66. package/dist/src/cli/simple-commands/init/rollback/rollback-executor.js +416 -481
  67. package/dist/src/cli/simple-commands/init/rollback/state-tracker.js +369 -448
  68. package/dist/src/cli/simple-commands/init/sparc/roo-readme.js +1 -2
  69. package/dist/src/cli/simple-commands/init/sparc/roomodes-config.js +122 -99
  70. package/dist/src/cli/simple-commands/init/sparc/workflows.js +32 -37
  71. package/dist/src/cli/simple-commands/init/sparc-structure.js +55 -62
  72. package/dist/src/cli/simple-commands/init/template-copier.js +421 -533
  73. package/dist/src/cli/simple-commands/init/templates/coordination-md.js +3 -6
  74. package/dist/src/cli/simple-commands/init/templates/enhanced-templates.js +344 -318
  75. package/dist/src/cli/simple-commands/init/templates/github-safe-enhanced.js +173 -218
  76. package/dist/src/cli/simple-commands/init/templates/github-safe.js +65 -75
  77. package/dist/src/cli/simple-commands/init/templates/memory-bank-md.js +3 -6
  78. package/dist/src/cli/simple-commands/init/templates/readme-files.js +2 -4
  79. package/dist/src/cli/simple-commands/init/templates/safe-hook-patterns.js +187 -230
  80. package/dist/src/cli/simple-commands/init/templates/sparc-modes.js +53 -80
  81. package/dist/src/cli/simple-commands/init/templates/verification-claude-md.js +101 -85
  82. package/dist/src/cli/simple-commands/init/validation/config-validator.js +283 -330
  83. package/dist/src/cli/simple-commands/init/validation/health-checker.js +495 -561
  84. package/dist/src/cli/simple-commands/init/validation/index.js +302 -358
  85. package/dist/src/cli/simple-commands/init/validation/mode-validator.js +308 -359
  86. package/dist/src/cli/simple-commands/init/validation/post-init-validator.js +389 -366
  87. package/dist/src/cli/simple-commands/init/validation/pre-init-validator.js +270 -268
  88. package/dist/src/cli/simple-commands/init/validation/test-runner.js +427 -447
  89. package/dist/src/cli/simple-commands/init.js +1 -2
  90. package/dist/src/cli/simple-commands/mcp-health.js +131 -158
  91. package/dist/src/cli/simple-commands/mcp-integration-layer.js +533 -634
  92. package/dist/src/cli/simple-commands/mcp.js +345 -400
  93. package/dist/src/cli/simple-commands/memory-consolidation.js +426 -537
  94. package/dist/src/cli/simple-commands/memory.js +247 -311
  95. package/dist/src/cli/simple-commands/migrate-hooks.js +39 -46
  96. package/dist/src/cli/simple-commands/monitor.js +294 -363
  97. package/dist/src/cli/simple-commands/neural.js +51 -65
  98. package/dist/src/cli/simple-commands/pair-autofix-only.js +538 -662
  99. package/dist/src/cli/simple-commands/pair-basic.js +528 -656
  100. package/dist/src/cli/simple-commands/pair-old.js +430 -543
  101. package/dist/src/cli/simple-commands/pair-working.js +615 -751
  102. package/dist/src/cli/simple-commands/pair.js +615 -751
  103. package/dist/src/cli/simple-commands/performance-hooks.js +83 -111
  104. package/dist/src/cli/simple-commands/performance-metrics.js +348 -433
  105. package/dist/src/cli/simple-commands/process-ui-enhanced.js +708 -787
  106. package/dist/src/cli/simple-commands/process-ui.js +230 -254
  107. package/dist/src/cli/simple-commands/realtime-update-system.js +525 -611
  108. package/dist/src/cli/simple-commands/sparc/architecture.js +1704 -1530
  109. package/dist/src/cli/simple-commands/sparc/commands.js +438 -516
  110. package/dist/src/cli/simple-commands/sparc/completion.js +1224 -1481
  111. package/dist/src/cli/simple-commands/sparc/coordinator.js +913 -978
  112. package/dist/src/cli/simple-commands/sparc/index.js +241 -298
  113. package/dist/src/cli/simple-commands/sparc/phase-base.js +314 -390
  114. package/dist/src/cli/simple-commands/sparc/pseudocode.js +965 -869
  115. package/dist/src/cli/simple-commands/sparc/refinement.js +980 -1273
  116. package/dist/src/cli/simple-commands/sparc/specification.js +559 -645
  117. package/dist/src/cli/simple-commands/sparc-modes/architect.js +1 -1
  118. package/dist/src/cli/simple-commands/sparc-modes/ask.js +1 -1
  119. package/dist/src/cli/simple-commands/sparc-modes/code.js +1 -1
  120. package/dist/src/cli/simple-commands/sparc-modes/debug.js +1 -1
  121. package/dist/src/cli/simple-commands/sparc-modes/devops.js +1 -1
  122. package/dist/src/cli/simple-commands/sparc-modes/docs-writer.js +1 -1
  123. package/dist/src/cli/simple-commands/sparc-modes/generic.js +1 -1
  124. package/dist/src/cli/simple-commands/sparc-modes/index.js +47 -55
  125. package/dist/src/cli/simple-commands/sparc-modes/integration.js +1 -1
  126. package/dist/src/cli/simple-commands/sparc-modes/mcp.js +1 -1
  127. package/dist/src/cli/simple-commands/sparc-modes/monitoring.js +1 -1
  128. package/dist/src/cli/simple-commands/sparc-modes/optimization.js +1 -1
  129. package/dist/src/cli/simple-commands/sparc-modes/security-review.js +1 -1
  130. package/dist/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +1 -1
  131. package/dist/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +1 -1
  132. package/dist/src/cli/simple-commands/sparc-modes/supabase-admin.js +1 -1
  133. package/dist/src/cli/simple-commands/sparc-modes/swarm.js +101 -87
  134. package/dist/src/cli/simple-commands/sparc-modes/tdd.js +1 -1
  135. package/dist/src/cli/simple-commands/sparc-modes/tutorial.js +1 -1
  136. package/dist/src/cli/simple-commands/sparc.js +465 -493
  137. package/dist/src/cli/simple-commands/start-ui.js +108 -132
  138. package/dist/src/cli/simple-commands/start-wrapper.js +240 -268
  139. package/dist/src/cli/simple-commands/start.js +1 -1
  140. package/dist/src/cli/simple-commands/status.js +254 -275
  141. package/dist/src/cli/simple-commands/stream-chain-clean.js +128 -171
  142. package/dist/src/cli/simple-commands/stream-chain-fixed.js +61 -82
  143. package/dist/src/cli/simple-commands/stream-chain-real.js +267 -331
  144. package/dist/src/cli/simple-commands/stream-chain-working.js +211 -263
  145. package/dist/src/cli/simple-commands/stream-chain.js +260 -318
  146. package/dist/src/cli/simple-commands/stream-processor.js +290 -315
  147. package/dist/src/cli/simple-commands/swarm-executor.js +189 -222
  148. package/dist/src/cli/simple-commands/swarm-metrics-integration.js +208 -300
  149. package/dist/src/cli/simple-commands/swarm-ui.js +623 -703
  150. package/dist/src/cli/simple-commands/swarm-webui-integration.js +258 -286
  151. package/dist/src/cli/simple-commands/swarm.js +887 -1082
  152. package/dist/src/cli/simple-commands/task.js +161 -206
  153. package/dist/src/cli/simple-commands/timestamp-fix.js +59 -89
  154. package/dist/src/cli/simple-commands/token-tracker.js +258 -316
  155. package/dist/src/cli/simple-commands/tool-execution-framework.js +433 -519
  156. package/dist/src/cli/simple-commands/train-and-stream.js +275 -331
  157. package/dist/src/cli/simple-commands/training-pipeline.js +619 -725
  158. package/dist/src/cli/simple-commands/training.js +170 -227
  159. package/dist/src/cli/simple-commands/verification-hooks.js +261 -284
  160. package/dist/src/cli/simple-commands/verification-integration.js +389 -417
  161. package/dist/src/cli/simple-commands/verification-training-integration.js +486 -606
  162. package/dist/src/cli/simple-commands/verification.js +493 -513
  163. package/dist/src/cli/simple-commands/web-server.js +766 -836
  164. package/dist/src/cli/simple-commands/webui-validator.js +106 -124
  165. package/dist/src/coordination/event-bus/demo-wasm-integration.js +212 -251
  166. package/dist/src/coordination/event-bus/qe-event-bus.js +608 -748
  167. package/dist/src/coordination/event-bus/qe-event-bus.test.js +379 -454
  168. package/dist/src/coordination/iteration-tracker.js +363 -454
  169. package/dist/src/enterprise/analytics-manager.js +1135 -0
  170. package/dist/src/enterprise/audit-manager.js +1115 -0
  171. package/dist/src/enterprise/cloud-manager.js +891 -0
  172. package/dist/src/enterprise/deployment-manager.js +966 -0
  173. package/dist/src/enterprise/index.js +6 -0
  174. package/dist/src/enterprise/project-manager.js +584 -0
  175. package/dist/src/enterprise/security-manager.js +991 -0
  176. package/dist/src/index.js +1 -1
  177. package/dist/src/mcp/DEPRECATED.js +46 -60
  178. package/dist/src/mcp/fixes/mcp-error-fixes.js +115 -134
  179. package/dist/src/mcp/implementations/agent-tracker.js +114 -128
  180. package/dist/src/mcp/implementations/daa-tools.js +292 -350
  181. package/dist/src/mcp/implementations/workflow-tools.js +329 -361
  182. package/dist/src/mcp/mcp-config-manager.js +1183 -1331
  183. package/dist/src/mcp/mcp-server-novice-simplified.js +11 -17
  184. package/dist/src/mcp/mcp-server-novice.js +11 -17
  185. package/dist/src/mcp/mcp-server-sdk.js +11 -17
  186. package/dist/src/mcp/mcp-server.js +1620 -1484
  187. package/dist/src/mcp/ruv-swarm-wrapper.js +209 -239
  188. package/dist/src/memory/advanced-serializer.js +609 -589
  189. package/dist/src/memory/enhanced-examples.js +220 -305
  190. package/dist/src/memory/enhanced-memory.js +295 -336
  191. package/dist/src/memory/enhanced-session-serializer.js +408 -492
  192. package/dist/src/memory/fallback-memory-system.js +900 -1021
  193. package/dist/src/memory/fallback-store.js +93 -131
  194. package/dist/src/memory/high-performance-serialization.js +592 -730
  195. package/dist/src/memory/in-memory-store.js +161 -213
  196. package/dist/src/memory/index.js +123 -157
  197. package/dist/src/memory/lock-free-structures.js +578 -764
  198. package/dist/src/memory/memory-mapped-persistence.js +585 -766
  199. package/dist/src/memory/memory-pressure-manager.js +569 -707
  200. package/dist/src/memory/migration.js +358 -445
  201. package/dist/src/memory/shared-memory.js +641 -768
  202. package/dist/src/memory/sqlite-store.js +245 -325
  203. package/dist/src/memory/sqlite-wrapper.js +122 -151
  204. package/dist/src/memory/swarm-memory.js +470 -603
  205. package/dist/src/memory/test-example.js +126 -134
  206. package/dist/src/memory/ultra-fast-memory-store.js +622 -821
  207. package/dist/src/memory/unified-memory-manager.js +356 -437
  208. package/dist/src/migration/index.js +92 -0
  209. package/dist/src/migration/logger.js +121 -0
  210. package/dist/src/migration/migration-analyzer.js +268 -0
  211. package/dist/src/migration/migration-runner.js +522 -0
  212. package/dist/src/migration/migration-validator.js +285 -0
  213. package/dist/src/migration/progress-reporter.js +150 -0
  214. package/dist/src/migration/rollback-manager.js +321 -0
  215. package/dist/src/migration/tests/migration-system.test.js +7 -0
  216. package/dist/src/migration/types.js +3 -0
  217. package/dist/src/swarm/CodeRefactoringSwarm.js +777 -952
  218. package/dist/src/swarm/__tests__/integration.test.js +227 -0
  219. package/dist/src/swarm/__tests__/prompt-copier.test.js +344 -0
  220. package/dist/src/swarm/advanced-orchestrator.js +1095 -0
  221. package/dist/src/swarm/claude-code-interface.js +961 -0
  222. package/dist/src/swarm/claude-flow-executor.js +229 -0
  223. package/dist/src/swarm/consensus-coordinator.js +475 -0
  224. package/dist/src/swarm/coordinator.js +2993 -0
  225. package/dist/src/swarm/direct-executor.js +1180 -0
  226. package/dist/src/swarm/error-recovery/advanced-error-detection.js +691 -0
  227. package/dist/src/swarm/error-recovery/automated-recovery-workflows.js +998 -0
  228. package/dist/src/swarm/error-recovery/error-recovery-coordinator.js +1197 -0
  229. package/dist/src/swarm/error-recovery/recovery-monitoring.js +772 -0
  230. package/dist/src/swarm/error-recovery/resilience-architecture.js +714 -0
  231. package/dist/src/swarm/error-recovery/self-healing-mechanisms.js +1319 -0
  232. package/dist/src/swarm/error-recovery/test-error-recovery-effectiveness.js +808 -0
  233. package/dist/src/swarm/executor-v2.js +322 -0
  234. package/dist/src/swarm/executor.js +815 -0
  235. package/dist/src/swarm/hive-mind-integration.js +703 -0
  236. package/dist/src/swarm/index.js +41 -0
  237. package/dist/src/swarm/json-output-aggregator.js +267 -0
  238. package/dist/src/swarm/large-scale-coordinator.js +542 -0
  239. package/dist/src/swarm/mcp-integration-wrapper.js +628 -0
  240. package/dist/src/swarm/memory.js +1117 -0
  241. package/dist/src/swarm/optimizations/__tests__/optimization.test.js +348 -0
  242. package/dist/src/swarm/optimizations/async-file-manager.js +285 -0
  243. package/dist/src/swarm/optimizations/circular-buffer.js +162 -0
  244. package/dist/src/swarm/optimizations/connection-pool.js +244 -0
  245. package/dist/src/swarm/optimizations/index.js +28 -0
  246. package/dist/src/swarm/optimizations/optimized-executor.js +320 -0
  247. package/dist/src/swarm/optimizations/ttl-map.js +234 -0
  248. package/dist/src/swarm/prompt-cli.js +200 -0
  249. package/dist/src/swarm/prompt-copier-enhanced.js +202 -0
  250. package/dist/src/swarm/prompt-copier.js +381 -0
  251. package/dist/src/swarm/prompt-manager.js +295 -0
  252. package/dist/src/swarm/prompt-utils.js +310 -0
  253. package/dist/src/swarm/result-aggregator.js +718 -0
  254. package/dist/src/swarm/sparc-executor.js +1568 -0
  255. package/dist/src/swarm/strategies/auto.js +758 -0
  256. package/dist/src/swarm/strategies/base.js +128 -0
  257. package/dist/src/swarm/strategies/research.js +914 -0
  258. package/dist/src/swarm/strategies/strategy-metrics-patch.js +2 -0
  259. package/dist/src/swarm/types.js +52 -0
  260. package/dist/src/swarm/workers/copy-worker.js +56 -0
  261. package/dist/src/utils/__tests__/github-cli-safety-wrapper.test.js +332 -400
  262. package/dist/src/utils/github-cli-safe.js +56 -64
  263. package/dist/src/utils/github-cli-safety-wrapper.js +451 -546
  264. package/dist/src/utils/npx-isolated-cache.js +104 -119
  265. package/dist/src/utils/preference-manager.js +622 -652
  266. package/dist/src/utils/timezone-utils.js +86 -105
  267. package/dist/src/validators/epic-config-schema.js +214 -0
  268. package/dist/src/validators/index.js +10 -0
  269. package/dist/src/validators/swarm-init-validator.js +259 -0
  270. package/dist/src/validators/todowrite-batching-validator.js +215 -0
  271. package/dist/src/validators/todowrite-integration.js +187 -0
  272. package/package.json +2 -2
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env node
2
-
3
2
  /**
4
3
  * Enhanced Safe GitHub CLI Helper - Production Ready
5
4
  * Uses the comprehensive GitHubCliSafe wrapper for secure command execution
@@ -16,23 +15,13 @@
16
15
  * ./github-safe-enhanced.js pr create --title "Title" --body "Complex body with special chars"
17
16
  * ./github-safe-enhanced.js issue create --title "Bug Report" --body "Long description..." --labels "bug,urgent"
18
17
  * ./github-safe-enhanced.js release create v1.0.0 --title "Release v1.0.0" --body "Release notes..."
19
- */
20
-
21
- // Import the production-ready GitHub CLI safety wrapper
22
- import {
23
- githubCli,
24
- GitHubCliError,
25
- GitHubCliTimeoutError,
26
- GitHubCliValidationError,
27
- } from '../../../utils/github-cli-safety-wrapper.js';
28
-
18
+ */ // Import the production-ready GitHub CLI safety wrapper
19
+ import { githubCli, GitHubCliTimeoutError, GitHubCliValidationError } from "../../../utils/github-cli-safety-wrapper.js";
29
20
  const args = process.argv.slice(2);
30
-
31
21
  /**
32
22
  * Show help message
33
- */
34
- function showHelp() {
35
- console.log(`
23
+ */ function showHelp() {
24
+ console.log(`
36
25
  🛡️ Enhanced Safe GitHub CLI Helper
37
26
 
38
27
  FEATURES:
@@ -94,238 +83,204 @@ SECURITY FEATURES:
94
83
  🔒 Implements proper process cleanup and timeout handling
95
84
  `);
96
85
  }
97
-
98
86
  /**
99
87
  * Parse command line arguments into structured format
100
- */
101
- function parseArguments(args) {
102
- if (args.length === 0 || args.includes('--help')) {
103
- showHelp();
104
- process.exit(0);
105
- }
106
-
107
- const [command, subcommand, ...restArgs] = args;
108
- const options = {};
109
- const positionalArgs = [];
110
-
111
- // Parse flags and options
112
- for (let i = 0; i < restArgs.length; i++) {
113
- const arg = restArgs[i];
114
-
115
- if (arg.startsWith('--')) {
116
- const flagName = arg.substring(2);
117
- const nextArg = restArgs[i + 1];
118
-
119
- if (nextArg && !nextArg.startsWith('--')) {
120
- options[flagName] = nextArg;
121
- i++; // Skip the next argument
122
- } else {
123
- options[flagName] = true;
124
- }
125
- } else {
126
- positionalArgs.push(arg);
88
+ */ function parseArguments(args) {
89
+ if (args.length === 0 || args.includes('--help')) {
90
+ showHelp();
91
+ process.exit(0);
127
92
  }
128
- }
129
-
130
- return { command, subcommand, positionalArgs, options };
93
+ const [command, subcommand, ...restArgs] = args;
94
+ const options = {};
95
+ const positionalArgs = [];
96
+ // Parse flags and options
97
+ for(let i = 0; i < restArgs.length; i++){
98
+ const arg = restArgs[i];
99
+ if (arg.startsWith('--')) {
100
+ const flagName = arg.substring(2);
101
+ const nextArg = restArgs[i + 1];
102
+ if (nextArg && !nextArg.startsWith('--')) {
103
+ options[flagName] = nextArg;
104
+ i++; // Skip the next argument
105
+ } else {
106
+ options[flagName] = true;
107
+ }
108
+ } else {
109
+ positionalArgs.push(arg);
110
+ }
111
+ }
112
+ return {
113
+ command,
114
+ subcommand,
115
+ positionalArgs,
116
+ options
117
+ };
131
118
  }
132
-
133
119
  /**
134
120
  * Execute GitHub CLI command safely
135
- */
136
- async function executeCommand(command, subcommand, positionalArgs, options) {
137
- try {
138
- // Handle dry-run mode
139
- if (options['dry-run']) {
140
- console.log('🔍 DRY RUN MODE - Would execute:');
141
- console.log(`Command: ${command} ${subcommand}`);
142
- console.log(`Arguments:`, positionalArgs);
143
- console.log(`Options:`, options);
144
- return;
145
- }
146
-
147
- // Configure GitHub CLI wrapper
148
- const cliOptions = {
149
- timeout: parseInt(options.timeout) || 30000,
150
- enableLogging: options.verbose || false,
151
- };
152
-
153
- let result;
154
-
155
- // Route to appropriate method based on command
156
- if (command === 'issue') {
157
- result = await handleIssueCommand(subcommand, positionalArgs, options, cliOptions);
158
- } else if (command === 'pr') {
159
- result = await handlePRCommand(subcommand, positionalArgs, options, cliOptions);
160
- } else if (command === 'release') {
161
- result = await handleReleaseCommand(subcommand, positionalArgs, options, cliOptions);
162
- } else {
163
- throw new Error(`Unsupported command: ${command}`);
164
- }
165
-
166
- // Output result
167
- console.log(' Command executed successfully');
168
- if (options.verbose && result.stdout) {
169
- console.log('Output:', result.stdout);
170
- }
171
- } catch (error) {
172
- console.error('❌ Command failed:', error.message);
173
-
174
- if (error instanceof GitHubCliTimeoutError) {
175
- console.error('💡 Try increasing timeout with --timeout <ms>');
176
- } else if (error instanceof GitHubCliValidationError) {
177
- console.error('💡 Input validation failed. Check for dangerous characters or patterns.');
178
- }
179
-
180
- if (options.verbose && error.details) {
181
- console.error('Details:', error.details);
121
+ */ async function executeCommand(command, subcommand, positionalArgs, options) {
122
+ try {
123
+ // Handle dry-run mode
124
+ if (options['dry-run']) {
125
+ console.log('🔍 DRY RUN MODE - Would execute:');
126
+ console.log(`Command: ${command} ${subcommand}`);
127
+ console.log(`Arguments:`, positionalArgs);
128
+ console.log(`Options:`, options);
129
+ return;
130
+ }
131
+ // Configure GitHub CLI wrapper
132
+ const cliOptions = {
133
+ timeout: parseInt(options.timeout) || 30000,
134
+ enableLogging: options.verbose || false
135
+ };
136
+ let result;
137
+ // Route to appropriate method based on command
138
+ if (command === 'issue') {
139
+ result = await handleIssueCommand(subcommand, positionalArgs, options, cliOptions);
140
+ } else if (command === 'pr') {
141
+ result = await handlePRCommand(subcommand, positionalArgs, options, cliOptions);
142
+ } else if (command === 'release') {
143
+ result = await handleReleaseCommand(subcommand, positionalArgs, options, cliOptions);
144
+ } else {
145
+ throw new Error(`Unsupported command: ${command}`);
146
+ }
147
+ // Output result
148
+ console.log('✅ Command executed successfully');
149
+ if (options.verbose && result.stdout) {
150
+ console.log('Output:', result.stdout);
151
+ }
152
+ } catch (error) {
153
+ console.error(' Command failed:', error.message);
154
+ if (error instanceof GitHubCliTimeoutError) {
155
+ console.error('💡 Try increasing timeout with --timeout <ms>');
156
+ } else if (error instanceof GitHubCliValidationError) {
157
+ console.error('💡 Input validation failed. Check for dangerous characters or patterns.');
158
+ }
159
+ if (options.verbose && error.details) {
160
+ console.error('Details:', error.details);
161
+ }
162
+ process.exit(1);
182
163
  }
183
-
184
- process.exit(1);
185
- }
186
164
  }
187
-
188
165
  /**
189
166
  * Handle issue commands
190
- */
191
- async function handleIssueCommand(subcommand, positionalArgs, options, cliOptions) {
192
- if (subcommand === 'create') {
193
- if (!options.title || !options.body) {
194
- throw new Error('Issue creation requires --title and --body options');
195
- }
196
-
197
- return await githubCli.createIssue({
198
- title: options.title,
199
- body: options.body,
200
- labels: options.labels ? options.labels.split(',') : [],
201
- assignees: options.assignees ? options.assignees.split(',') : [],
202
- ...cliOptions,
203
- });
204
- } else if (subcommand === 'comment') {
205
- const [issueNumber] = positionalArgs;
206
- const body = positionalArgs[1] || options.body;
207
-
208
- if (!issueNumber || !body) {
209
- throw new Error('Issue comment requires issue number and body');
167
+ */ async function handleIssueCommand(subcommand, positionalArgs, options, cliOptions) {
168
+ if (subcommand === 'create') {
169
+ if (!options.title || !options.body) {
170
+ throw new Error('Issue creation requires --title and --body options');
171
+ }
172
+ return await githubCli.createIssue({
173
+ title: options.title,
174
+ body: options.body,
175
+ labels: options.labels ? options.labels.split(',') : [],
176
+ assignees: options.assignees ? options.assignees.split(',') : [],
177
+ ...cliOptions
178
+ });
179
+ } else if (subcommand === 'comment') {
180
+ const [issueNumber] = positionalArgs;
181
+ const body = positionalArgs[1] || options.body;
182
+ if (!issueNumber || !body) {
183
+ throw new Error('Issue comment requires issue number and body');
184
+ }
185
+ return await githubCli.addIssueComment(parseInt(issueNumber), body, cliOptions);
186
+ } else {
187
+ throw new Error(`Unsupported issue subcommand: ${subcommand}`);
210
188
  }
211
-
212
- return await githubCli.addIssueComment(parseInt(issueNumber), body, cliOptions);
213
- } else {
214
- throw new Error(`Unsupported issue subcommand: ${subcommand}`);
215
- }
216
189
  }
217
-
218
190
  /**
219
191
  * Handle PR commands
220
- */
221
- async function handlePRCommand(subcommand, positionalArgs, options, cliOptions) {
222
- if (subcommand === 'create') {
223
- if (!options.title || !options.body) {
224
- throw new Error('PR creation requires --title and --body options');
225
- }
226
-
227
- return await githubCli.createPR({
228
- title: options.title,
229
- body: options.body,
230
- base: options.base || 'main',
231
- head: options.head,
232
- draft: options.draft || false,
233
- ...cliOptions,
234
- });
235
- } else if (subcommand === 'comment') {
236
- const [prNumber] = positionalArgs;
237
- const body = positionalArgs[1] || options.body;
238
-
239
- if (!prNumber || !body) {
240
- throw new Error('PR comment requires PR number and body');
192
+ */ async function handlePRCommand(subcommand, positionalArgs, options, cliOptions) {
193
+ if (subcommand === 'create') {
194
+ if (!options.title || !options.body) {
195
+ throw new Error('PR creation requires --title and --body options');
196
+ }
197
+ return await githubCli.createPR({
198
+ title: options.title,
199
+ body: options.body,
200
+ base: options.base || 'main',
201
+ head: options.head,
202
+ draft: options.draft || false,
203
+ ...cliOptions
204
+ });
205
+ } else if (subcommand === 'comment') {
206
+ const [prNumber] = positionalArgs;
207
+ const body = positionalArgs[1] || options.body;
208
+ if (!prNumber || !body) {
209
+ throw new Error('PR comment requires PR number and body');
210
+ }
211
+ return await githubCli.addPRComment(parseInt(prNumber), body, cliOptions);
212
+ } else {
213
+ throw new Error(`Unsupported PR subcommand: ${subcommand}`);
241
214
  }
242
-
243
- return await githubCli.addPRComment(parseInt(prNumber), body, cliOptions);
244
- } else {
245
- throw new Error(`Unsupported PR subcommand: ${subcommand}`);
246
- }
247
215
  }
248
-
249
216
  /**
250
217
  * Handle release commands
251
- */
252
- async function handleReleaseCommand(subcommand, positionalArgs, options, cliOptions) {
253
- if (subcommand === 'create') {
254
- const [tag] = positionalArgs;
255
-
256
- if (!tag || !options.title || !options.body) {
257
- throw new Error('Release creation requires tag, --title, and --body');
218
+ */ async function handleReleaseCommand(subcommand, positionalArgs, options, cliOptions) {
219
+ if (subcommand === 'create') {
220
+ const [tag] = positionalArgs;
221
+ if (!tag || !options.title || !options.body) {
222
+ throw new Error('Release creation requires tag, --title, and --body');
223
+ }
224
+ return await githubCli.createRelease({
225
+ tag,
226
+ title: options.title,
227
+ body: options.body,
228
+ prerelease: options.prerelease || false,
229
+ draft: options.draft || false,
230
+ ...cliOptions
231
+ });
232
+ } else {
233
+ throw new Error(`Unsupported release subcommand: ${subcommand}`);
258
234
  }
259
-
260
- return await githubCli.createRelease({
261
- tag,
262
- title: options.title,
263
- body: options.body,
264
- prerelease: options.prerelease || false,
265
- draft: options.draft || false,
266
- ...cliOptions,
267
- });
268
- } else {
269
- throw new Error(`Unsupported release subcommand: ${subcommand}`);
270
- }
271
235
  }
272
-
273
236
  /**
274
237
  * Main execution
275
- */
276
- async function main() {
277
- try {
278
- // Parse arguments
279
- const { command, subcommand, positionalArgs, options } = parseArguments(args);
280
-
281
- // Check GitHub CLI availability
282
- const isAvailable = await githubCli.checkGitHubCli();
283
- if (!isAvailable) {
284
- console.error('❌ GitHub CLI is not installed or not in PATH');
285
- console.error('💡 Install from: https://cli.github.com/');
286
- process.exit(1);
287
- }
288
-
289
- // Check authentication (unless dry-run)
290
- if (!options['dry-run']) {
291
- const isAuthenticated = await githubCli.checkAuthentication();
292
- if (!isAuthenticated) {
293
- console.error('❌ GitHub CLI is not authenticated');
294
- console.error('💡 Run: gh auth login');
238
+ */ async function main() {
239
+ try {
240
+ // Parse arguments
241
+ const { command, subcommand, positionalArgs, options } = parseArguments(args);
242
+ // Check GitHub CLI availability
243
+ const isAvailable = await githubCli.checkGitHubCli();
244
+ if (!isAvailable) {
245
+ console.error('❌ GitHub CLI is not installed or not in PATH');
246
+ console.error('💡 Install from: https://cli.github.com/');
247
+ process.exit(1);
248
+ }
249
+ // Check authentication (unless dry-run)
250
+ if (!options['dry-run']) {
251
+ const isAuthenticated = await githubCli.checkAuthentication();
252
+ if (!isAuthenticated) {
253
+ console.error('❌ GitHub CLI is not authenticated');
254
+ console.error('💡 Run: gh auth login');
255
+ process.exit(1);
256
+ }
257
+ }
258
+ // Execute command
259
+ await executeCommand(command, subcommand, positionalArgs, options);
260
+ } catch (error) {
261
+ console.error('❌ Unexpected error:', error.message);
262
+ if (args.includes('--verbose')) {
263
+ console.error('Stack trace:', error.stack);
264
+ }
295
265
  process.exit(1);
296
- }
297
- }
298
-
299
- // Execute command
300
- await executeCommand(command, subcommand, positionalArgs, options);
301
- } catch (error) {
302
- console.error('❌ Unexpected error:', error.message);
303
- if (args.includes('--verbose')) {
304
- console.error('Stack trace:', error.stack);
305
266
  }
306
- process.exit(1);
307
- }
308
267
  }
309
-
310
268
  // Handle process cleanup
311
- process.on('SIGINT', async () => {
312
- console.log('\n🛑 Received interrupt signal, cleaning up...');
313
- await githubCli.cleanup();
314
- process.exit(0);
269
+ process.on('SIGINT', async ()=>{
270
+ console.log('\n🛑 Received interrupt signal, cleaning up...');
271
+ await githubCli.cleanup();
272
+ process.exit(0);
315
273
  });
316
-
317
- process.on('SIGTERM', async () => {
318
- console.log('\n🛑 Received termination signal, cleaning up...');
319
- await githubCli.cleanup();
320
- process.exit(0);
274
+ process.on('SIGTERM', async ()=>{
275
+ console.log('\n🛑 Received termination signal, cleaning up...');
276
+ await githubCli.cleanup();
277
+ process.exit(0);
321
278
  });
322
-
323
279
  // Run if called directly
324
280
  if (import.meta.main || process.argv[1].endsWith('github-safe-enhanced.js')) {
325
- main().catch((error) => {
326
- console.error('💥 Fatal error:', error.message);
327
- process.exit(1);
328
- });
281
+ main().catch((error)=>{
282
+ console.error('💥 Fatal error:', error.message);
283
+ process.exit(1);
284
+ });
329
285
  }
330
-
331
286
  export { executeCommand, handleIssueCommand, handlePRCommand, handleReleaseCommand };
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env node
2
-
3
2
  /**
4
3
  * Safe GitHub CLI Helper
5
4
  * Prevents timeout issues when using gh commands with special characters
@@ -7,18 +6,14 @@
7
6
  * Usage:
8
7
  * ./github-safe.js issue comment 123 "Message with `backticks`"
9
8
  * ./github-safe.js pr create --title "Title" --body "Complex body"
10
- */
11
-
12
- import { execSync } from 'child_process';
13
- import { writeFileSync, unlinkSync } from 'fs';
14
- import { tmpdir } from 'os';
15
- import { join } from 'path';
16
- import { randomBytes } from 'crypto';
17
-
9
+ */ import { execSync } from "child_process";
10
+ import { writeFileSync, unlinkSync } from "fs";
11
+ import { tmpdir } from "os";
12
+ import { join } from "path";
13
+ import { randomBytes } from "crypto";
18
14
  const args = process.argv.slice(2);
19
-
20
15
  if (args.length < 2) {
21
- console.log(`
16
+ console.log(`
22
17
  Safe GitHub CLI Helper
23
18
 
24
19
  Usage:
@@ -33,74 +28,69 @@ This helper prevents timeout issues with special characters like:
33
28
  - Directory paths
34
29
  - Special shell characters
35
30
  `);
36
- process.exit(1);
31
+ process.exit(1);
37
32
  }
38
-
39
33
  const [command, subcommand, ...restArgs] = args;
40
-
41
34
  // Handle commands that need body content
42
- if (
43
- (command === 'issue' || command === 'pr') &&
44
- (subcommand === 'comment' || subcommand === 'create')
45
- ) {
46
- let bodyIndex = -1;
47
- let body = '';
48
-
49
- if (subcommand === 'comment' && restArgs.length >= 2) {
50
- // Simple format: github-safe.js issue comment 123 "body"
51
- body = restArgs[1];
52
- bodyIndex = 1;
53
- } else {
54
- // Flag format: --body "content"
55
- bodyIndex = restArgs.indexOf('--body');
56
- if (bodyIndex !== -1 && bodyIndex < restArgs.length - 1) {
57
- body = restArgs[bodyIndex + 1];
35
+ if ((command === 'issue' || command === 'pr') && (subcommand === 'comment' || subcommand === 'create')) {
36
+ let bodyIndex = -1;
37
+ let body = '';
38
+ if (subcommand === 'comment' && restArgs.length >= 2) {
39
+ // Simple format: github-safe.js issue comment 123 "body"
40
+ body = restArgs[1];
41
+ bodyIndex = 1;
42
+ } else {
43
+ // Flag format: --body "content"
44
+ bodyIndex = restArgs.indexOf('--body');
45
+ if (bodyIndex !== -1 && bodyIndex < restArgs.length - 1) {
46
+ body = restArgs[bodyIndex + 1];
47
+ }
58
48
  }
59
- }
60
-
61
- if (body) {
62
- // Use temporary file for body content
63
- const tmpFile = join(tmpdir(), `gh-body-${randomBytes(8).toString('hex')}.tmp`);
64
-
65
- try {
66
- writeFileSync(tmpFile, body, 'utf8');
67
-
68
- // Build new command with --body-file
69
- const newArgs = [...restArgs];
70
- if (subcommand === 'comment' && bodyIndex === 1) {
71
- // Replace body with --body-file
72
- newArgs[1] = '--body-file';
73
- newArgs.push(tmpFile);
74
- } else if (bodyIndex !== -1) {
75
- // Replace --body with --body-file
76
- newArgs[bodyIndex] = '--body-file';
77
- newArgs[bodyIndex + 1] = tmpFile;
78
- }
79
-
80
- // Execute safely
81
- const ghCommand = `gh ${command} ${subcommand} ${newArgs.join(' ')}`;
82
- console.log(`Executing: ${ghCommand}`);
83
-
84
- const result = execSync(ghCommand, {
85
- stdio: 'inherit',
86
- timeout: 30000, // 30 second timeout
87
- });
88
- } catch (error) {
89
- console.error('Error:', error.message);
90
- process.exit(1);
91
- } finally {
92
- // Clean up
93
- try {
94
- unlinkSync(tmpFile);
95
- } catch (e) {
96
- // Ignore cleanup errors
97
- }
49
+ if (body) {
50
+ // Use temporary file for body content
51
+ const tmpFile = join(tmpdir(), `gh-body-${randomBytes(8).toString('hex')}.tmp`);
52
+ try {
53
+ writeFileSync(tmpFile, body, 'utf8');
54
+ // Build new command with --body-file
55
+ const newArgs = [
56
+ ...restArgs
57
+ ];
58
+ if (subcommand === 'comment' && bodyIndex === 1) {
59
+ // Replace body with --body-file
60
+ newArgs[1] = '--body-file';
61
+ newArgs.push(tmpFile);
62
+ } else if (bodyIndex !== -1) {
63
+ // Replace --body with --body-file
64
+ newArgs[bodyIndex] = '--body-file';
65
+ newArgs[bodyIndex + 1] = tmpFile;
66
+ }
67
+ // Execute safely
68
+ const ghCommand = `gh ${command} ${subcommand} ${newArgs.join(' ')}`;
69
+ console.log(`Executing: ${ghCommand}`);
70
+ const result = execSync(ghCommand, {
71
+ stdio: 'inherit',
72
+ timeout: 30000
73
+ });
74
+ } catch (error) {
75
+ console.error('Error:', error.message);
76
+ process.exit(1);
77
+ } finally{
78
+ // Clean up
79
+ try {
80
+ unlinkSync(tmpFile);
81
+ } catch (e) {
82
+ // Ignore cleanup errors
83
+ }
84
+ }
85
+ } else {
86
+ // No body content, execute normally
87
+ execSync(`gh ${args.join(' ')}`, {
88
+ stdio: 'inherit'
89
+ });
98
90
  }
99
- } else {
100
- // No body content, execute normally
101
- execSync(`gh ${args.join(' ')}`, { stdio: 'inherit' });
102
- }
103
91
  } else {
104
- // Other commands, execute normally
105
- execSync(`gh ${args.join(' ')}`, { stdio: 'inherit' });
92
+ // Other commands, execute normally
93
+ execSync(`gh ${args.join(' ')}`, {
94
+ stdio: 'inherit'
95
+ });
106
96
  }
@@ -1,7 +1,6 @@
1
1
  // memory-bank-md.js - Memory Bank templates
2
-
3
2
  export function createMinimalMemoryBankMd() {
4
- return `# Memory Bank
3
+ return `# Memory Bank
5
4
 
6
5
  ## Quick Reference
7
6
  - Project uses SQLite for memory persistence
@@ -13,9 +12,8 @@ export function createMinimalMemoryBankMd() {
13
12
  - Sessions: \`./memory/sessions/\`
14
13
  `;
15
14
  }
16
-
17
15
  export function createFullMemoryBankMd() {
18
- return `# Memory Bank Configuration
16
+ return `# Memory Bank Configuration
19
17
 
20
18
  ## Overview
21
19
  The Claude-Flow memory system provides persistent storage and intelligent retrieval of information across agent sessions. It uses a hybrid approach combining SQL databases with semantic search capabilities.
@@ -75,10 +73,9 @@ Memory settings are configured in \`claude-flow.config.json\`:
75
73
  - No data is sent to external services without explicit commands
76
74
  `;
77
75
  }
78
-
79
76
  // Create optimized Memory Bank with batchtools support
80
77
  export async function createOptimizedMemoryBankMd() {
81
- return `# Memory Bank Configuration (Batchtools Optimized)
78
+ return `# Memory Bank Configuration (Batchtools Optimized)
82
79
 
83
80
  ## Overview
84
81
  The Claude-Flow memory system provides persistent storage and intelligent retrieval of information across agent sessions. It uses a hybrid approach combining SQL databases with semantic search capabilities.
@@ -1,7 +1,6 @@
1
1
  // readme-files.js - README templates for various directories
2
-
3
2
  export function createAgentsReadme() {
4
- return `# Agent Memory Storage
3
+ return `# Agent Memory Storage
5
4
 
6
5
  ## Purpose
7
6
  This directory stores agent-specific memory data, configurations, and persistent state information for individual Claude agents in the orchestration system.
@@ -34,9 +33,8 @@ memory/agents/
34
33
  ${new Date().toISOString()}
35
34
  `;
36
35
  }
37
-
38
36
  export function createSessionsReadme() {
39
- return `# Session Memory Storage
37
+ return `# Session Memory Storage
40
38
 
41
39
  ## Purpose
42
40
  This directory stores session-based memory data, conversation history, and contextual information for development sessions using the Claude-Flow orchestration system.