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,605 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * GitHub Coordinator Command
4
+ * Provides GitHub workflow orchestration and coordination capabilities
5
+ */
6
+
7
+ import { printSuccess, printError, printWarning, printInfo } from '../utils.js';
8
+ import { githubAPI } from './github-api.js';
9
+ import { execSync } from 'child_process';
10
+
11
+ class GitHubCoordinator {
12
+ constructor() {
13
+ this.api = githubAPI;
14
+ this.workflows = new Map();
15
+ this.activeCoordinations = new Map();
16
+ }
17
+
18
+ /**
19
+ * Initialize GitHub coordination
20
+ */
21
+ async initialize(options = {}) {
22
+ printInfo('🚀 Initializing GitHub Coordinator...');
23
+
24
+ // Authenticate with GitHub
25
+ const authenticated = await this.api.authenticate(options.token);
26
+ if (!authenticated) {
27
+ throw new Error('Failed to authenticate with GitHub');
28
+ }
29
+
30
+ // Check if we're in a git repository
31
+ try {
32
+ const remoteUrl = execSync('git config --get remote.origin.url', { encoding: 'utf8' }).trim();
33
+ const repoMatch = remoteUrl.match(/github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?$/);
34
+
35
+ if (repoMatch) {
36
+ this.currentRepo = { owner: repoMatch[1], repo: repoMatch[2] };
37
+ printSuccess(`Connected to repository: ${this.currentRepo.owner}/${this.currentRepo.repo}`);
38
+ }
39
+ } catch (error) {
40
+ printWarning('Not in a git repository or no GitHub remote found');
41
+ }
42
+
43
+ // Initialize swarm integration
44
+ await this.initializeSwarmIntegration();
45
+
46
+ printSuccess('✅ GitHub Coordinator initialized successfully');
47
+ }
48
+
49
+ /**
50
+ * Initialize swarm integration for coordination
51
+ */
52
+ async initializeSwarmIntegration() {
53
+ try {
54
+ // Check if ruv-swarm is available
55
+ execSync('npx ruv-swarm --version', { stdio: 'pipe' });
56
+
57
+ // Initialize swarm for GitHub coordination
58
+ const swarmInit = execSync(
59
+ 'npx ruv-swarm hook pre-task --description "GitHub workflow coordination"',
60
+ { encoding: 'utf8' },
61
+ );
62
+
63
+ if (swarmInit.includes('continue')) {
64
+ printSuccess('🐝 Swarm integration initialized for GitHub coordination');
65
+ this.swarmEnabled = true;
66
+ }
67
+ } catch (error) {
68
+ printWarning('Swarm integration not available - continuing without swarm features');
69
+ this.swarmEnabled = false;
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Coordinate CI/CD pipeline setup
75
+ */
76
+ async coordinateCIPipeline(options = {}) {
77
+ printInfo('🔄 Coordinating CI/CD pipeline setup...');
78
+
79
+ if (!this.currentRepo) {
80
+ throw new Error('No GitHub repository context available');
81
+ }
82
+
83
+ const { owner, repo } = this.currentRepo;
84
+ const pipeline = options.pipeline || 'nodejs';
85
+ const autoApprove = options.autoApprove || false;
86
+
87
+ // Create workflow coordination plan
88
+ const coordinationPlan = {
89
+ id: `ci-setup-${Date.now()}`,
90
+ type: 'ci_pipeline_setup',
91
+ repository: `${owner}/${repo}`,
92
+ pipeline,
93
+ steps: [
94
+ 'analyze_repository_structure',
95
+ 'create_workflow_files',
96
+ 'setup_environment_secrets',
97
+ 'configure_branch_protection',
98
+ 'test_pipeline_execution',
99
+ 'setup_notifications',
100
+ ],
101
+ status: 'planning',
102
+ };
103
+
104
+ this.activeCoordinations.set(coordinationPlan.id, coordinationPlan);
105
+
106
+ // Execute coordination with swarm if available
107
+ if (this.swarmEnabled) {
108
+ await this.executeWithSwarm(coordinationPlan);
109
+ } else {
110
+ await this.executeCoordination(coordinationPlan);
111
+ }
112
+
113
+ return coordinationPlan;
114
+ }
115
+
116
+ /**
117
+ * Execute coordination with swarm integration
118
+ */
119
+ async executeWithSwarm(coordinationPlan) {
120
+ printInfo('🐝 Executing coordination with swarm...');
121
+
122
+ // Store coordination plan in swarm memory
123
+ const memoryKey = `github-coordination/${coordinationPlan.id}`;
124
+ execSync(
125
+ `npx ruv-swarm hook notification --message "GitHub Coordination: ${coordinationPlan.type} started" --telemetry true`,
126
+ );
127
+
128
+ // Execute each step with swarm coordination
129
+ for (const step of coordinationPlan.steps) {
130
+ printInfo(`Executing step: ${step}`);
131
+
132
+ // Pre-step hook
133
+ execSync(`npx ruv-swarm hook pre-task --description "GitHub step: ${step}"`);
134
+
135
+ // Execute step
136
+ await this.executeCoordinationStep(coordinationPlan, step);
137
+
138
+ // Post-step hook
139
+ execSync(
140
+ `npx ruv-swarm hook post-edit --file "github-coordination" --memory-key "${memoryKey}/${step}"`,
141
+ );
142
+ }
143
+
144
+ // Final coordination notification
145
+ execSync(
146
+ `npx ruv-swarm hook notification --message "GitHub Coordination: ${coordinationPlan.type} completed" --telemetry true`,
147
+ );
148
+ }
149
+
150
+ /**
151
+ * Execute coordination without swarm
152
+ */
153
+ async executeCoordination(coordinationPlan) {
154
+ printInfo('⚡ Executing coordination...');
155
+
156
+ for (const step of coordinationPlan.steps) {
157
+ printInfo(`Executing step: ${step}`);
158
+ await this.executeCoordinationStep(coordinationPlan, step);
159
+ }
160
+ }
161
+
162
+ /**
163
+ * Execute individual coordination step
164
+ */
165
+ async executeCoordinationStep(coordinationPlan, step) {
166
+ const { owner, repo } = this.currentRepo;
167
+
168
+ switch (step) {
169
+ case 'analyze_repository_structure':
170
+ await this.analyzeRepositoryStructure(owner, repo);
171
+ break;
172
+ case 'create_workflow_files':
173
+ await this.createWorkflowFiles(owner, repo, coordinationPlan.pipeline);
174
+ break;
175
+ case 'setup_environment_secrets':
176
+ await this.setupEnvironmentSecrets(owner, repo);
177
+ break;
178
+ case 'configure_branch_protection':
179
+ await this.configureBranchProtection(owner, repo);
180
+ break;
181
+ case 'test_pipeline_execution':
182
+ await this.testPipelineExecution(owner, repo);
183
+ break;
184
+ case 'setup_notifications':
185
+ await this.setupNotifications(owner, repo);
186
+ break;
187
+ default:
188
+ printWarning(`Unknown coordination step: ${step}`);
189
+ }
190
+ }
191
+
192
+ /**
193
+ * Analyze repository structure
194
+ */
195
+ async analyzeRepositoryStructure(owner, repo) {
196
+ printInfo('📊 Analyzing repository structure...');
197
+
198
+ const response = await this.api.getRepository(owner, repo);
199
+ if (!response.success) {
200
+ throw new Error(`Failed to get repository info: ${response.error}`);
201
+ }
202
+
203
+ const repoData = response.data;
204
+ const analysis = {
205
+ language: repoData.language,
206
+ size: repoData.size,
207
+ defaultBranch: repoData.default_branch,
208
+ hasWorkflows: false,
209
+ hasTests: false,
210
+ hasPackageJson: false,
211
+ };
212
+
213
+ // Check for existing workflows
214
+ const workflowsResponse = await this.api.listWorkflows(owner, repo);
215
+ if (workflowsResponse.success) {
216
+ analysis.hasWorkflows = workflowsResponse.data.total_count > 0;
217
+ }
218
+
219
+ // Check for package.json (Node.js projects)
220
+ try {
221
+ const packageResponse = await this.api.request(
222
+ `/repos/${owner}/${repo}/contents/package.json`,
223
+ );
224
+ analysis.hasPackageJson = packageResponse.success;
225
+ } catch (error) {
226
+ // package.json doesn't exist
227
+ }
228
+
229
+ printSuccess(`✅ Repository analysis complete: ${analysis.language} project`);
230
+ return analysis;
231
+ }
232
+
233
+ /**
234
+ * Create workflow files
235
+ */
236
+ async createWorkflowFiles(owner, repo, pipeline) {
237
+ printInfo('📝 Creating workflow files...');
238
+
239
+ const workflowContent = this.generateWorkflowContent(pipeline);
240
+ const workflowPath = `.github/workflows/${pipeline}-ci.yml`;
241
+
242
+ // Create workflow file content
243
+ const createFileData = {
244
+ message: `Add ${pipeline} CI workflow`,
245
+ content: Buffer.from(workflowContent).toString('base64'),
246
+ path: workflowPath,
247
+ };
248
+
249
+ // Check if file exists
250
+ const existingFile = await this.api.request(`/repos/${owner}/${repo}/contents/${workflowPath}`);
251
+ if (existingFile.success) {
252
+ // Update existing file
253
+ createFileData.sha = existingFile.data.sha;
254
+ createFileData.message = `Update ${pipeline} CI workflow`;
255
+ }
256
+
257
+ const response = await this.api.request(`/repos/${owner}/${repo}/contents/${workflowPath}`, {
258
+ method: 'PUT',
259
+ body: createFileData,
260
+ });
261
+
262
+ if (response.success) {
263
+ printSuccess(`✅ Workflow file created: ${workflowPath}`);
264
+ } else {
265
+ throw new Error(`Failed to create workflow file: ${response.error}`);
266
+ }
267
+ }
268
+
269
+ /**
270
+ * Generate workflow content based on pipeline type
271
+ */
272
+ generateWorkflowContent(pipeline) {
273
+ const templates = {
274
+ nodejs: `name: Node.js CI
275
+
276
+ on:
277
+ push:
278
+ branches: [ main, develop ]
279
+ pull_request:
280
+ branches: [ main, develop ]
281
+
282
+ jobs:
283
+ test:
284
+ runs-on: ubuntu-latest
285
+
286
+ strategy:
287
+ matrix:
288
+ node-version: [16.x, 18.x, 20.x]
289
+
290
+ steps:
291
+ - uses: actions/checkout@v3
292
+
293
+ - name: Use Node.js \${{ matrix.node-version }}
294
+ uses: actions/setup-node@v3
295
+ with:
296
+ node-version: \${{ matrix.node-version }}
297
+ cache: 'npm'
298
+
299
+ - name: Install dependencies
300
+ run: npm ci
301
+
302
+ - name: Run tests
303
+ run: npm test
304
+
305
+ - name: Run linter
306
+ run: npm run lint
307
+
308
+ - name: Build project
309
+ run: npm run build
310
+
311
+ security:
312
+ runs-on: ubuntu-latest
313
+ steps:
314
+ - uses: actions/checkout@v3
315
+
316
+ - name: Run security audit
317
+ run: npm audit --audit-level moderate
318
+
319
+ - name: Check for vulnerabilities
320
+ run: npm audit --audit-level high
321
+ `,
322
+
323
+ python: `name: Python CI
324
+
325
+ on:
326
+ push:
327
+ branches: [ main, develop ]
328
+ pull_request:
329
+ branches: [ main, develop ]
330
+
331
+ jobs:
332
+ test:
333
+ runs-on: ubuntu-latest
334
+
335
+ strategy:
336
+ matrix:
337
+ python-version: [3.8, 3.9, 3.10, 3.11]
338
+
339
+ steps:
340
+ - uses: actions/checkout@v3
341
+
342
+ - name: Set up Python \${{ matrix.python-version }}
343
+ uses: actions/setup-python@v4
344
+ with:
345
+ python-version: \${{ matrix.python-version }}
346
+
347
+ - name: Install dependencies
348
+ run: |
349
+ python -m pip install --upgrade pip
350
+ pip install pytest pytest-cov
351
+ if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
352
+
353
+ - name: Run tests
354
+ run: pytest --cov=./ --cov-report=xml
355
+
356
+ - name: Upload coverage
357
+ uses: codecov/codecov-action@v3
358
+ with:
359
+ file: ./coverage.xml
360
+ `,
361
+
362
+ docker: `name: Docker CI
363
+
364
+ on:
365
+ push:
366
+ branches: [ main, develop ]
367
+ pull_request:
368
+ branches: [ main, develop ]
369
+
370
+ jobs:
371
+ build:
372
+ runs-on: ubuntu-latest
373
+
374
+ steps:
375
+ - uses: actions/checkout@v3
376
+
377
+ - name: Build Docker image
378
+ run: docker build -t app .
379
+
380
+ - name: Run container tests
381
+ run: docker run --rm app npm test
382
+
383
+ - name: Security scan
384
+ uses: aquasecurity/trivy-action@master
385
+ with:
386
+ image-ref: 'app'
387
+ format: 'sarif'
388
+ output: 'trivy-results.sarif'
389
+ `,
390
+ };
391
+
392
+ return templates[pipeline] || templates.nodejs;
393
+ }
394
+
395
+ /**
396
+ * Setup environment secrets
397
+ */
398
+ async setupEnvironmentSecrets(owner, repo) {
399
+ printInfo('🔐 Setting up environment secrets...');
400
+
401
+ const secrets = [
402
+ { name: 'NODE_ENV', description: 'Node.js environment' },
403
+ { name: 'DATABASE_URL', description: 'Database connection string' },
404
+ { name: 'API_KEY', description: 'API authentication key' },
405
+ ];
406
+
407
+ printInfo('Recommended secrets to configure:');
408
+ secrets.forEach((secret) => {
409
+ console.log(` - ${secret.name}: ${secret.description}`);
410
+ });
411
+
412
+ printWarning('Note: Secrets must be configured manually in GitHub repository settings');
413
+ printSuccess('✅ Environment secrets guidance provided');
414
+ }
415
+
416
+ /**
417
+ * Configure branch protection
418
+ */
419
+ async configureBranchProtection(owner, repo) {
420
+ printInfo('🛡️ Configuring branch protection...');
421
+
422
+ const protectionConfig = {
423
+ required_status_checks: {
424
+ strict: true,
425
+ contexts: ['test'],
426
+ },
427
+ enforce_admins: true,
428
+ required_pull_request_reviews: {
429
+ required_approving_review_count: 1,
430
+ dismiss_stale_reviews: true,
431
+ },
432
+ restrictions: null,
433
+ };
434
+
435
+ const response = await this.api.updateBranchProtection(owner, repo, 'main', protectionConfig);
436
+
437
+ if (response.success) {
438
+ printSuccess('✅ Branch protection configured for main branch');
439
+ } else {
440
+ printWarning(`⚠️ Failed to configure branch protection: ${response.error}`);
441
+ }
442
+ }
443
+
444
+ /**
445
+ * Test pipeline execution
446
+ */
447
+ async testPipelineExecution(owner, repo) {
448
+ printInfo('🧪 Testing pipeline execution...');
449
+
450
+ const workflows = await this.api.listWorkflows(owner, repo);
451
+ if (!workflows.success) {
452
+ printWarning('No workflows found to test');
453
+ return;
454
+ }
455
+
456
+ const recentRuns = await this.api.listWorkflowRuns(owner, repo, { per_page: 5 });
457
+ if (recentRuns.success) {
458
+ printInfo(`Found ${recentRuns.data.total_count} recent workflow runs`);
459
+
460
+ const latestRun = recentRuns.data.workflow_runs[0];
461
+ if (latestRun) {
462
+ printInfo(`Latest run: ${latestRun.conclusion} (${latestRun.status})`);
463
+ }
464
+ }
465
+
466
+ printSuccess('✅ Pipeline execution status checked');
467
+ }
468
+
469
+ /**
470
+ * Setup notifications
471
+ */
472
+ async setupNotifications(owner, repo) {
473
+ printInfo('📢 Setting up notifications...');
474
+
475
+ const webhookConfig = {
476
+ name: 'web',
477
+ active: true,
478
+ events: ['push', 'pull_request', 'issues', 'workflow_run'],
479
+ config: {
480
+ url: 'https://your-webhook-url.com/github',
481
+ content_type: 'json',
482
+ insecure_ssl: '0',
483
+ },
484
+ };
485
+
486
+ printInfo('Webhook configuration template:');
487
+ console.log(JSON.stringify(webhookConfig, null, 2));
488
+
489
+ printWarning('Note: Webhook URL must be configured with your actual endpoint');
490
+ printSuccess('✅ Notification setup guidance provided');
491
+ }
492
+
493
+ /**
494
+ * Coordinate release process
495
+ */
496
+ async coordinateRelease(options = {}) {
497
+ printInfo('🚀 Coordinating release process...');
498
+
499
+ if (!this.currentRepo) {
500
+ throw new Error('No GitHub repository context available');
501
+ }
502
+
503
+ const { owner, repo } = this.currentRepo;
504
+ const version = options.version || 'auto';
505
+ const prerelease = options.prerelease || false;
506
+
507
+ const coordinationPlan = {
508
+ id: `release-${Date.now()}`,
509
+ type: 'release_coordination',
510
+ repository: `${owner}/${repo}`,
511
+ version,
512
+ prerelease,
513
+ steps: [
514
+ 'prepare_release_notes',
515
+ 'create_release_branch',
516
+ 'run_release_tests',
517
+ 'create_release_tag',
518
+ 'publish_release',
519
+ 'notify_stakeholders',
520
+ ],
521
+ status: 'planning',
522
+ };
523
+
524
+ this.activeCoordinations.set(coordinationPlan.id, coordinationPlan);
525
+
526
+ if (this.swarmEnabled) {
527
+ await this.executeWithSwarm(coordinationPlan);
528
+ } else {
529
+ await this.executeCoordination(coordinationPlan);
530
+ }
531
+
532
+ return coordinationPlan;
533
+ }
534
+
535
+ /**
536
+ * Get coordination status
537
+ */
538
+ getCoordinationStatus(coordinationId) {
539
+ return this.activeCoordinations.get(coordinationId) || null;
540
+ }
541
+
542
+ /**
543
+ * List active coordinations
544
+ */
545
+ listActiveCoordinations() {
546
+ return Array.from(this.activeCoordinations.values());
547
+ }
548
+
549
+ /**
550
+ * Cancel coordination
551
+ */
552
+ cancelCoordination(coordinationId) {
553
+ const coordination = this.activeCoordinations.get(coordinationId);
554
+ if (coordination) {
555
+ coordination.status = 'cancelled';
556
+ this.activeCoordinations.delete(coordinationId);
557
+ printSuccess(`✅ Coordination ${coordinationId} cancelled`);
558
+ return true;
559
+ }
560
+ return false;
561
+ }
562
+ }
563
+
564
+ // Export coordination function
565
+ export async function coordinateGitHubWorkflow(args, flags = {}) {
566
+ const coordinator = new GitHubCoordinator();
567
+
568
+ try {
569
+ await coordinator.initialize(flags);
570
+
571
+ const objective = args.join(' ').trim();
572
+
573
+ if (objective.includes('CI/CD') || objective.includes('pipeline')) {
574
+ return await coordinator.coordinateCIPipeline(flags);
575
+ } else if (objective.includes('release')) {
576
+ return await coordinator.coordinateRelease(flags);
577
+ } else {
578
+ // General coordination
579
+ printInfo(`🎯 Coordinating: ${objective}`);
580
+
581
+ const coordinationPlan = {
582
+ id: `general-${Date.now()}`,
583
+ type: 'general_coordination',
584
+ objective,
585
+ steps: ['analyze_requirements', 'create_action_plan', 'execute_plan'],
586
+ status: 'planning',
587
+ };
588
+
589
+ coordinator.activeCoordinations.set(coordinationPlan.id, coordinationPlan);
590
+
591
+ if (coordinator.swarmEnabled) {
592
+ await coordinator.executeWithSwarm(coordinationPlan);
593
+ } else {
594
+ await coordinator.executeCoordination(coordinationPlan);
595
+ }
596
+
597
+ return coordinationPlan;
598
+ }
599
+ } catch (error) {
600
+ printError(`❌ GitHub coordination failed: ${error.message}`);
601
+ throw error;
602
+ }
603
+ }
604
+
605
+ export default GitHubCoordinator;