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,543 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * GitHub init command - Initialize GitHub-specific hooks and checkpoint system
4
+ */
5
+
6
+ import { existsSync } from 'fs';
7
+ import { access, constants, mkdir, readFile, writeFile } from 'fs/promises';
8
+ import { join, dirname } from 'path';
9
+ import { printSuccess, printError, printWarning, printInfo } from '../../utils.js';
10
+ import { spawn } from 'child_process';
11
+ import { promisify } from 'util';
12
+ const exec = promisify(spawn);
13
+
14
+ /**
15
+ * Create GitHub-specific checkpoint hooks
16
+ */
17
+ async function createGitHubCheckpointHooks() {
18
+ const helpersDir = join(process.cwd(), '.claude', 'helpers');
19
+ const checkpointHooksPath = join(helpersDir, 'github-checkpoint-hooks.sh');
20
+
21
+ const content = `#!/bin/bash
22
+ # GitHub-specific checkpoint hook functions for Claude settings.json
23
+
24
+ # Function to handle pre-edit checkpoints
25
+ pre_edit_checkpoint() {
26
+ local tool_input="$1"
27
+ local file=$(echo "$tool_input" | jq -r '.file_path // empty')
28
+
29
+ if [ -n "$file" ]; then
30
+ local checkpoint_branch="checkpoint/pre-edit-$(date +%Y%m%d-%H%M%S)"
31
+ local current_branch=$(git branch --show-current)
32
+
33
+ # Create checkpoint
34
+ git add -A
35
+ git stash push -m "Pre-edit checkpoint for $file" >/dev/null 2>&1
36
+ git branch "$checkpoint_branch"
37
+
38
+ # Store metadata
39
+ mkdir -p .claude/checkpoints
40
+ cat > ".claude/checkpoints/$(date +%s).json" <<EOF
41
+ {
42
+ "branch": "$checkpoint_branch",
43
+ "file": "$file",
44
+ "timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
45
+ "type": "pre-edit",
46
+ "original_branch": "$current_branch"
47
+ }
48
+ EOF
49
+
50
+ # Restore working directory
51
+ git stash pop --quiet >/dev/null 2>&1 || true
52
+
53
+ echo "āœ… Created checkpoint: $checkpoint_branch for $file"
54
+ fi
55
+ }
56
+
57
+ # Function to handle post-edit checkpoints with GitHub release
58
+ post_edit_checkpoint() {
59
+ local tool_input="$1"
60
+ local file=$(echo "$tool_input" | jq -r '.file_path // empty')
61
+
62
+ if [ -n "$file" ] && [ -f "$file" ]; then
63
+ # Check if file was modified - first check if file is tracked
64
+ if ! git ls-files --error-unmatch "$file" >/dev/null 2>&1; then
65
+ # File is not tracked, add it first
66
+ git add "$file"
67
+ fi
68
+
69
+ # Now check if there are changes
70
+ if git diff --cached --quiet "$file" 2>/dev/null && git diff --quiet "$file" 2>/dev/null; then
71
+ echo "ā„¹ļø No changes to checkpoint for $file"
72
+ else
73
+ local tag_name="checkpoint-$(date +%Y%m%d-%H%M%S)"
74
+ local current_branch=$(git branch --show-current)
75
+
76
+ # Create commit
77
+ git add "$file"
78
+ if git commit -m "šŸ”– Checkpoint: Edit $file
79
+
80
+ Automatic checkpoint created by Claude
81
+ - File: $file
82
+ - Branch: $current_branch
83
+ - Timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)
84
+
85
+ [Auto-checkpoint]" --quiet; then
86
+ # Create tag only if commit succeeded
87
+ git tag -a "$tag_name" -m "Checkpoint after editing $file"
88
+
89
+ # Store metadata
90
+ mkdir -p .claude/checkpoints
91
+ local diff_stats=$(git diff HEAD~1 --stat | tr '\\n' ' ' | sed 's/"/\\\\"/g')
92
+ cat > ".claude/checkpoints/$(date +%s).json" <<EOF
93
+ {
94
+ "tag": "$tag_name",
95
+ "file": "$file",
96
+ "timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
97
+ "type": "post-edit",
98
+ "branch": "$current_branch",
99
+ "diff_summary": "$diff_stats"
100
+ }
101
+ EOF
102
+
103
+ echo "āœ… Created checkpoint: $tag_name for $file"
104
+ else
105
+ echo "ā„¹ļø No commit created (no changes or commit failed)"
106
+ fi
107
+ fi
108
+ fi
109
+ }
110
+
111
+ # Function to handle task checkpoints with GitHub release
112
+ task_checkpoint() {
113
+ local user_prompt="$1"
114
+ local task=$(echo "$user_prompt" | head -c 100 | tr '\\n' ' ')
115
+
116
+ if [ -n "$task" ]; then
117
+ local checkpoint_name="task-$(date +%Y%m%d-%H%M%S)"
118
+
119
+ # Commit current state
120
+ git add -A
121
+ git commit -m "šŸ”– Task checkpoint: $task..." --quiet || true
122
+
123
+ # Create GitHub release if gh CLI is available
124
+ if command -v gh &> /dev/null; then
125
+ echo "šŸš€ Creating GitHub release for checkpoint..."
126
+ gh release create "$checkpoint_name" \\
127
+ --title "Checkpoint: $(date +'%Y-%m-%d %H:%M')" \\
128
+ --notes "Task: $task
129
+
130
+ ## Checkpoint Details
131
+ - Branch: $(git branch --show-current)
132
+ - Commit: $(git rev-parse HEAD)
133
+ - Files changed: $(git diff HEAD~1 --stat | wc -l) files
134
+
135
+ ## Rollback Instructions
136
+ \`\`\`bash
137
+ # To rollback to this checkpoint:
138
+ git checkout $checkpoint_name
139
+ \`\`\`" \\
140
+ --prerelease || echo "āš ļø Failed to create GitHub release"
141
+ fi
142
+
143
+ # Store metadata
144
+ mkdir -p .claude/checkpoints
145
+ cat > ".claude/checkpoints/task-$(date +%s).json" <<EOF
146
+ {
147
+ "checkpoint": "$checkpoint_name",
148
+ "task": "$task",
149
+ "timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
150
+ "commit": "$(git rev-parse HEAD)",
151
+ "github_release": "$(command -v gh &> /dev/null && echo 'true' || echo 'false')"
152
+ }
153
+ EOF
154
+
155
+ echo "āœ… Created task checkpoint: $checkpoint_name"
156
+ fi
157
+ }
158
+
159
+ # Function to handle session end with GitHub summary
160
+ session_end_checkpoint() {
161
+ local session_id="session-$(date +%Y%m%d-%H%M%S)"
162
+ local summary_file=".claude/checkpoints/summary-$session_id.md"
163
+
164
+ mkdir -p .claude/checkpoints
165
+
166
+ # Create detailed summary
167
+ cat > "$summary_file" <<EOF
168
+ # Session Summary - $(date +'%Y-%m-%d %H:%M:%S')
169
+
170
+ ## Checkpoints Created
171
+ $(find .claude/checkpoints -name '*.json' -mtime -1 -exec basename {} \\; | sort)
172
+
173
+ ## Files Modified
174
+ $(git diff --name-only $(git log --format=%H -n 1 --before="1 hour ago" 2>/dev/null) 2>/dev/null || echo "No files tracked")
175
+
176
+ ## Recent Commits
177
+ $(git log --oneline -10 --grep="Checkpoint" || echo "No checkpoint commits")
178
+
179
+ ## GitHub Releases Created
180
+ $(gh release list --limit 10 | grep "checkpoint-" || echo "No GitHub releases")
181
+
182
+ ## Rollback Instructions
183
+ To rollback to a specific checkpoint:
184
+ \`\`\`bash
185
+ # List all checkpoints
186
+ git tag -l 'checkpoint-*' | sort -r
187
+
188
+ # List GitHub releases
189
+ gh release list
190
+
191
+ # Rollback to a checkpoint
192
+ git checkout checkpoint-YYYYMMDD-HHMMSS
193
+
194
+ # Or download release
195
+ gh release download checkpoint-YYYYMMDD-HHMMSS
196
+
197
+ # Or reset to a checkpoint (destructive)
198
+ git reset --hard checkpoint-YYYYMMDD-HHMMSS
199
+ \`\`\`
200
+ EOF
201
+
202
+ # Create final checkpoint
203
+ git add -A
204
+ git commit -m "šŸ Session end checkpoint: $session_id" --quiet || true
205
+ git tag -a "session-end-$session_id" -m "End of Claude session"
206
+
207
+ # Create GitHub session summary if gh is available
208
+ if command -v gh &> /dev/null; then
209
+ echo "šŸ“Š Creating GitHub session summary..."
210
+ gh release create "session-$session_id" \\
211
+ --title "Session Summary: $(date +'%Y-%m-%d %H:%M')" \\
212
+ --notes-file "$summary_file" \\
213
+ --prerelease || echo "āš ļø Failed to create GitHub session summary"
214
+ fi
215
+
216
+ echo "āœ… Session summary saved to: $summary_file"
217
+ echo "šŸ“Œ Final checkpoint: session-end-$session_id"
218
+ }
219
+
220
+ # Main entry point
221
+ case "$1" in
222
+ pre-edit)
223
+ pre_edit_checkpoint "$2"
224
+ ;;
225
+ post-edit)
226
+ post_edit_checkpoint "$2"
227
+ ;;
228
+ task)
229
+ task_checkpoint "$2"
230
+ ;;
231
+ session-end)
232
+ session_end_checkpoint
233
+ ;;
234
+ *)
235
+ echo "Usage: $0 {pre-edit|post-edit|task|session-end} [input]"
236
+ exit 1
237
+ ;;
238
+ esac
239
+ `;
240
+
241
+ await writeFile(checkpointHooksPath, content, { mode: 0o755 });
242
+ return checkpointHooksPath;
243
+ }
244
+
245
+ /**
246
+ * Create GitHub-specific settings.json
247
+ */
248
+ async function createGitHubSettingsJson() {
249
+ const settingsPath = join(process.cwd(), '.claude', 'settings.json');
250
+
251
+ const settings = {
252
+ env: {
253
+ CLAUDE_FLOW_AUTO_COMMIT: 'false',
254
+ CLAUDE_FLOW_AUTO_PUSH: 'false',
255
+ CLAUDE_FLOW_HOOKS_ENABLED: 'true',
256
+ CLAUDE_FLOW_TELEMETRY_ENABLED: 'true',
257
+ CLAUDE_FLOW_REMOTE_EXECUTION: 'true',
258
+ CLAUDE_FLOW_GITHUB_INTEGRATION: 'true',
259
+ CLAUDE_FLOW_CHECKPOINTS_ENABLED: 'true',
260
+ CREATE_GH_RELEASE: 'true',
261
+ },
262
+ permissions: {
263
+ allow: [
264
+ 'Bash(npx claude-flow *)',
265
+ 'Bash(npm run lint)',
266
+ 'Bash(npm run test:*)',
267
+ 'Bash(npm test *)',
268
+ 'Bash(git status)',
269
+ 'Bash(git diff *)',
270
+ 'Bash(git log *)',
271
+ 'Bash(git add *)',
272
+ 'Bash(git commit *)',
273
+ 'Bash(git push)',
274
+ 'Bash(git config *)',
275
+ 'Bash(git tag *)',
276
+ 'Bash(git branch *)',
277
+ 'Bash(git checkout *)',
278
+ 'Bash(git stash *)',
279
+ 'Bash(git reset *)',
280
+ 'Bash(git rev-parse *)',
281
+ 'Bash(git ls-files *)',
282
+ 'Bash(gh *)',
283
+ 'Bash(node *)',
284
+ 'Bash(which *)',
285
+ 'Bash(pwd)',
286
+ 'Bash(ls *)',
287
+ 'Bash(jq *)',
288
+ 'Bash(test *)',
289
+ 'Bash(find *)',
290
+ 'Bash(grep *)',
291
+ 'Bash(sed *)',
292
+ 'Bash(awk *)',
293
+ 'Bash(curl *)',
294
+ 'Bash(mkdir *)',
295
+ 'Bash(cd *)',
296
+ 'Bash(cat *)',
297
+ 'Bash(echo *)',
298
+ 'Bash(npx claude-flow@alpha *)',
299
+ 'Bash(./claude-flow *)',
300
+ 'Bash(./.claude/helpers/*)',
301
+ ],
302
+ deny: ['Bash(rm -rf /)', 'Bash(curl * | bash)', 'Bash(wget * | sh)', 'Bash(eval *)'],
303
+ },
304
+ hooks: {
305
+ PreToolUse: [
306
+ {
307
+ matcher: 'Bash',
308
+ hooks: [
309
+ {
310
+ type: 'command',
311
+ command:
312
+ "cat | jq -r '.tool_input.command // empty' | tr '\\n' '\\0' | xargs -0 -I {} npx claude-flow@alpha hooks pre-command --command '{}' --validate-safety true --prepare-resources true",
313
+ },
314
+ ],
315
+ },
316
+ {
317
+ matcher: 'Write|Edit|MultiEdit',
318
+ hooks: [
319
+ {
320
+ type: 'command',
321
+ command:
322
+ "cat | jq -r '.tool_input.file_path // .tool_input.path // empty' | tr '\\n' '\\0' | xargs -0 -I {} npx claude-flow@alpha hooks pre-edit --file '{}' --auto-assign-agents true --load-context true",
323
+ },
324
+ {
325
+ type: 'command',
326
+ command: 'bash .claude/helpers/github-checkpoint-hooks.sh pre-edit "{{tool_input}}"',
327
+ },
328
+ ],
329
+ },
330
+ ],
331
+ PostToolUse: [
332
+ {
333
+ matcher: 'Bash',
334
+ hooks: [
335
+ {
336
+ type: 'command',
337
+ command:
338
+ "cat | jq -r '.tool_input.command // empty' | tr '\\n' '\\0' | xargs -0 -I {} npx claude-flow@alpha hooks post-command --command '{}' --track-metrics true --store-results true",
339
+ },
340
+ ],
341
+ },
342
+ {
343
+ matcher: 'Write|Edit|MultiEdit',
344
+ hooks: [
345
+ {
346
+ type: 'command',
347
+ command:
348
+ "cat | jq -r '.tool_input.file_path // .tool_input.path // empty' | tr '\\n' '\\0' | xargs -0 -I {} npx claude-flow@alpha hooks post-edit --file '{}' --format true --update-memory true",
349
+ },
350
+ {
351
+ type: 'command',
352
+ command: 'bash .claude/helpers/github-checkpoint-hooks.sh post-edit "{{tool_input}}"',
353
+ },
354
+ ],
355
+ },
356
+ ],
357
+ UserPromptSubmit: [
358
+ {
359
+ hooks: [
360
+ {
361
+ type: 'command',
362
+ command: 'bash .claude/helpers/github-checkpoint-hooks.sh task "{{user_prompt}}"',
363
+ },
364
+ ],
365
+ },
366
+ ],
367
+ Stop: [
368
+ {
369
+ hooks: [
370
+ {
371
+ type: 'command',
372
+ command:
373
+ 'npx claude-flow@alpha hooks session-end --generate-summary true --persist-state true --export-metrics true',
374
+ },
375
+ {
376
+ type: 'command',
377
+ command: 'bash .claude/helpers/github-checkpoint-hooks.sh session-end',
378
+ },
379
+ ],
380
+ },
381
+ ],
382
+ PreCompact: [
383
+ {
384
+ matcher: 'manual',
385
+ hooks: [
386
+ {
387
+ type: 'command',
388
+ command:
389
+ '/bin/bash -c \'INPUT=$(cat); CUSTOM=$(echo "$INPUT" | jq -r ".custom_instructions // \"\""); echo "šŸ”„ PreCompact Guidance:"; echo "šŸ“‹ IMPORTANT: Review CLAUDE.md in project root for:"; echo " • 54 available agents and concurrent usage patterns"; echo " • Swarm coordination strategies (hierarchical, mesh, adaptive)"; echo " • SPARC methodology workflows with batchtools optimization"; echo " • Critical concurrent execution rules (GOLDEN RULE: 1 MESSAGE = ALL OPERATIONS)"; if [ -n "$CUSTOM" ]; then echo "šŸŽÆ Custom compact instructions: $CUSTOM"; fi; echo "āœ… Ready for compact operation"\'',
390
+ },
391
+ ],
392
+ },
393
+ {
394
+ matcher: 'auto',
395
+ hooks: [
396
+ {
397
+ type: 'command',
398
+ command:
399
+ '/bin/bash -c \'echo "šŸ”„ Auto-Compact Guidance (Context Window Full):"; echo "šŸ“‹ CRITICAL: Before compacting, ensure you understand:"; echo " • All 54 agents available in .claude/agents/ directory"; echo " • Concurrent execution patterns from CLAUDE.md"; echo " • Batchtools optimization for 300% performance gains"; echo " • Swarm coordination strategies for complex tasks"; echo "⚔ Apply GOLDEN RULE: Always batch operations in single messages"; echo "āœ… Auto-compact proceeding with full agent context"\'',
400
+ },
401
+ ],
402
+ },
403
+ ],
404
+ },
405
+ includeCoAuthoredBy: true,
406
+ enabledMcpjsonServers: ['claude-flow', 'ruv-swarm'],
407
+ };
408
+
409
+ await writeFile(settingsPath, JSON.stringify(settings, null, 2));
410
+ return settingsPath;
411
+ }
412
+
413
+ /**
414
+ * Initialize GitHub-specific hooks and checkpoint system
415
+ */
416
+ export async function githubInitCommand(flags = {}) {
417
+ try {
418
+ console.log('šŸ™ Initializing GitHub-specific hooks and checkpoint system...\n');
419
+
420
+ // Check if we're in a git repository
421
+ try {
422
+ const { execSync } = await import('child_process');
423
+ execSync('git rev-parse --git-dir', { stdio: 'ignore' });
424
+ } catch (error) {
425
+ printError('āŒ Not in a git repository. Please initialize git first.');
426
+ return;
427
+ }
428
+
429
+ // Check if gh CLI is available
430
+ let ghAvailable = false;
431
+ try {
432
+ const { execSync } = await import('child_process');
433
+ execSync('gh --version', { stdio: 'ignore' });
434
+ ghAvailable = true;
435
+ printSuccess('āœ… GitHub CLI detected');
436
+ } catch (error) {
437
+ printWarning('āš ļø GitHub CLI not found. Some features will be limited.');
438
+ console.log(' Install gh: https://cli.github.com/');
439
+ }
440
+
441
+ // Create .claude directory structure
442
+ const claudeDir = join(process.cwd(), '.claude');
443
+ const helpersDir = join(claudeDir, 'helpers');
444
+ const checkpointsDir = join(claudeDir, 'checkpoints');
445
+
446
+ await mkdir(claudeDir, { recursive: true });
447
+ await mkdir(helpersDir, { recursive: true });
448
+ await mkdir(checkpointsDir, { recursive: true });
449
+
450
+ // Check if settings.json already exists
451
+ const settingsPath = join(claudeDir, 'settings.json');
452
+ if (existsSync(settingsPath) && !flags.force) {
453
+ printWarning('āš ļø settings.json already exists. Use --force to overwrite.');
454
+ return;
455
+ }
456
+
457
+ // Create GitHub checkpoint hooks
458
+ const hooksPath = await createGitHubCheckpointHooks();
459
+ printSuccess(`āœ… Created GitHub checkpoint hooks: ${hooksPath}`);
460
+
461
+ // Copy standard checkpoint manager
462
+ const checkpointManagerPath = join(helpersDir, 'checkpoint-manager.sh');
463
+ const checkpointManagerContent = await readFile(
464
+ join(
465
+ dirname(import.meta.url).replace('file://', ''),
466
+ '..',
467
+ 'init',
468
+ 'templates',
469
+ 'commands',
470
+ 'helpers',
471
+ 'checkpoint-manager.sh',
472
+ ),
473
+ 'utf8',
474
+ ).catch(() => {
475
+ // Fallback content if template not found
476
+ return `#!/bin/bash
477
+ # Checkpoint manager for Claude Flow
478
+ # Use github-checkpoint-hooks.sh for checkpoint operations
479
+ `;
480
+ });
481
+
482
+ await writeFile(checkpointManagerPath, checkpointManagerContent, { mode: 0o755 });
483
+ printSuccess(`āœ… Created checkpoint manager: ${checkpointManagerPath}`);
484
+
485
+ // Create GitHub-specific settings.json
486
+ await createGitHubSettingsJson();
487
+ printSuccess(`āœ… Created GitHub settings: ${settingsPath}`);
488
+
489
+ // Initialize first checkpoint
490
+ try {
491
+ const { execSync } = await import('child_process');
492
+ execSync(`bash ${hooksPath} task "Initialize GitHub checkpoint system"`, {
493
+ stdio: 'inherit',
494
+ });
495
+ printSuccess('āœ… Created initial checkpoint');
496
+ } catch (error) {
497
+ printWarning('āš ļø Could not create initial checkpoint: ' + error.message);
498
+ }
499
+
500
+ // Show completion message
501
+ console.log('\n' + '='.repeat(60));
502
+ printSuccess('šŸŽ‰ GitHub hooks initialized successfully!');
503
+ console.log('='.repeat(60) + '\n');
504
+
505
+ console.log("šŸ“‹ What's been set up:\n");
506
+ console.log(' 1. GitHub-specific checkpoint hooks in .claude/helpers/');
507
+ console.log(
508
+ ' 2. Automatic GitHub releases for checkpoints' +
509
+ (ghAvailable ? ' āœ…' : ' (requires gh CLI)'),
510
+ );
511
+ console.log(' 3. Enhanced rollback with GitHub integration');
512
+ console.log(' 4. Session summaries with GitHub releases');
513
+ console.log(' 5. Full GitHub CLI permissions in settings.json');
514
+
515
+ console.log('\nšŸš€ Quick Start:\n');
516
+ console.log(' 1. Edit any file - automatic checkpoint created');
517
+ console.log(' 2. Start new tasks - task checkpoints with GitHub releases');
518
+ console.log(' 3. End sessions - comprehensive GitHub summary');
519
+
520
+ console.log('\nšŸ“š Checkpoint Management:\n');
521
+ console.log(' # List all checkpoints');
522
+ console.log(' .claude/helpers/checkpoint-manager.sh list');
523
+ console.log('');
524
+ console.log(' # View GitHub releases');
525
+ console.log(' gh release list');
526
+ console.log('');
527
+ console.log(' # Rollback to checkpoint');
528
+ console.log(' .claude/helpers/checkpoint-manager.sh rollback checkpoint-YYYYMMDD-HHMMSS');
529
+ console.log('');
530
+ console.log(' # Download release');
531
+ console.log(' gh release download checkpoint-YYYYMMDD-HHMMSS');
532
+
533
+ if (!ghAvailable) {
534
+ console.log('\nāš ļø Note: Install GitHub CLI for full features:');
535
+ console.log(' https://cli.github.com/');
536
+ }
537
+
538
+ console.log('\nšŸ’” Pro tip: GitHub releases make it easy to share checkpoints with your team!');
539
+ } catch (error) {
540
+ printError(`āŒ Failed to initialize GitHub hooks: ${error.message}`);
541
+ console.error(error);
542
+ }
543
+ }