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,646 @@
1
+ /**
2
+ * Verification-Training Integration Module
3
+ * Connects verification results to the neural training system for continuous improvement
4
+ */
5
+
6
+ import fs from 'fs/promises';
7
+ import path from 'path';
8
+ import { execSync } from 'child_process';
9
+
10
+ /**
11
+ * Integration between Verification and Training Systems
12
+ * Feeds verification results into training to improve agent performance
13
+ */
14
+ export class VerificationTrainingIntegration {
15
+ constructor() {
16
+ this.trainingDataPath = '.claude-flow/training/verification-data.jsonl';
17
+ this.modelPath = '.claude-flow/models/verification-model.json';
18
+ this.metricsPath = '.claude-flow/metrics/agent-performance.json';
19
+ this.learningRate = 0.1;
20
+ this.initialized = false;
21
+ }
22
+
23
+ /**
24
+ * Initialize the integration
25
+ */
26
+ async initialize() {
27
+ // Ensure directories exist
28
+ const dirs = ['.claude-flow/training', '.claude-flow/models', '.claude-flow/metrics'];
29
+
30
+ for (const dir of dirs) {
31
+ await fs.mkdir(dir, { recursive: true });
32
+ }
33
+
34
+ // Load or create model
35
+ await this.loadModel();
36
+ this.initialized = true;
37
+
38
+ console.log('āœ… Verification-Training integration initialized');
39
+ }
40
+
41
+ /**
42
+ * Feed verification results to training system
43
+ */
44
+ async feedVerificationToTraining(verification) {
45
+ if (!this.initialized) await this.initialize();
46
+
47
+ // Extract training features from verification
48
+ const trainingData = {
49
+ input: {
50
+ taskId: verification.taskId,
51
+ agentType: verification.agentType,
52
+ timestamp: verification.timestamp,
53
+ mode: verification.mode || 'moderate',
54
+ checksPerformed: verification.results?.map((r) => r.name) || [],
55
+ },
56
+ output: {
57
+ score: verification.score,
58
+ passed: verification.passed,
59
+ threshold: verification.threshold,
60
+ },
61
+ metadata: {
62
+ sessionId: process.env.SESSION_ID || 'default',
63
+ timestamp: new Date().toISOString(),
64
+ },
65
+ };
66
+
67
+ // Append to training data
68
+ await this.appendTrainingData(trainingData);
69
+
70
+ // Update agent-specific model
71
+ await this.updateAgentModel(verification.agentType, verification);
72
+
73
+ // Trigger incremental learning
74
+ await this.incrementalLearn(trainingData);
75
+
76
+ // Update performance metrics
77
+ await this.updatePerformanceMetrics(verification);
78
+
79
+ return trainingData;
80
+ }
81
+
82
+ /**
83
+ * Incremental learning from new verification data
84
+ */
85
+ async incrementalLearn(trainingData) {
86
+ const model = await this.loadModel();
87
+
88
+ // Update agent reliability scores
89
+ const agentType = trainingData.input.agentType;
90
+ if (!model.agentReliability) model.agentReliability = {};
91
+
92
+ const currentReliability = model.agentReliability[agentType] || 0.5;
93
+ const newScore = trainingData.output.score;
94
+
95
+ // Exponential moving average for reliability
96
+ model.agentReliability[agentType] =
97
+ currentReliability * (1 - this.learningRate) + newScore * this.learningRate;
98
+
99
+ // Update verification patterns
100
+ if (!model.patterns) model.patterns = {};
101
+ const patternKey = `${agentType}_${trainingData.output.passed ? 'success' : 'failure'}`;
102
+
103
+ if (!model.patterns[patternKey]) {
104
+ model.patterns[patternKey] = {
105
+ count: 0,
106
+ avgScore: 0,
107
+ checks: {},
108
+ };
109
+ }
110
+
111
+ const pattern = model.patterns[patternKey];
112
+ pattern.count++;
113
+ pattern.avgScore = (pattern.avgScore * (pattern.count - 1) + newScore) / pattern.count;
114
+
115
+ // Track which checks lead to success/failure
116
+ for (const check of trainingData.input.checksPerformed) {
117
+ if (!pattern.checks[check]) {
118
+ pattern.checks[check] = { success: 0, failure: 0 };
119
+ }
120
+ pattern.checks[check][trainingData.output.passed ? 'success' : 'failure']++;
121
+ }
122
+
123
+ // Save updated model
124
+ await this.saveModel(model);
125
+
126
+ // Log learning progress
127
+ console.log(
128
+ `šŸ“Š Learning update for ${agentType}: reliability ${model.agentReliability[agentType].toFixed(3)}`,
129
+ );
130
+ }
131
+
132
+ /**
133
+ * Predict verification outcome based on historical data
134
+ */
135
+ async predictVerificationOutcome(taskType, agentType) {
136
+ const model = await this.loadModel();
137
+
138
+ // Get agent reliability
139
+ const reliability = model.agentReliability?.[agentType] || 0.5;
140
+
141
+ // Get pattern statistics
142
+ const successPattern = model.patterns?.[`${agentType}_success`];
143
+ const failurePattern = model.patterns?.[`${agentType}_failure`];
144
+
145
+ if (!successPattern && !failurePattern) {
146
+ return {
147
+ predictedScore: reliability,
148
+ confidence: 0.1,
149
+ recommendation: 'insufficient_data',
150
+ };
151
+ }
152
+
153
+ // Calculate prediction
154
+ const totalCount = (successPattern?.count || 0) + (failurePattern?.count || 0);
155
+ const successRate = (successPattern?.count || 0) / totalCount;
156
+
157
+ const predictedScore = reliability * 0.7 + successRate * 0.3;
158
+ const confidence = Math.min(totalCount / 100, 1.0); // Confidence increases with data
159
+
160
+ // Generate recommendation
161
+ let recommendation = 'proceed';
162
+ if (predictedScore < 0.5) {
163
+ recommendation = 'use_different_agent';
164
+ } else if (predictedScore < 0.75) {
165
+ recommendation = 'add_additional_checks';
166
+ } else if (confidence < 0.3) {
167
+ recommendation = 'low_confidence_proceed_with_caution';
168
+ }
169
+
170
+ return {
171
+ predictedScore,
172
+ confidence,
173
+ recommendation,
174
+ agentReliability: reliability,
175
+ historicalSuccessRate: successRate,
176
+ dataPoints: totalCount,
177
+ };
178
+ }
179
+
180
+ /**
181
+ * Get agent recommendations based on task type
182
+ */
183
+ async recommendAgent(taskType) {
184
+ const model = await this.loadModel();
185
+
186
+ if (!model.agentReliability) {
187
+ return {
188
+ recommended: 'coder', // Default
189
+ reason: 'no_historical_data',
190
+ };
191
+ }
192
+
193
+ // Sort agents by reliability
194
+ const agents = Object.entries(model.agentReliability).sort(([, a], [, b]) => b - a);
195
+
196
+ if (agents.length === 0) {
197
+ return {
198
+ recommended: 'coder',
199
+ reason: 'no_agent_data',
200
+ };
201
+ }
202
+
203
+ const [bestAgent, bestScore] = agents[0];
204
+
205
+ return {
206
+ recommended: bestAgent,
207
+ reliability: bestScore,
208
+ alternatives: agents.slice(1, 3).map(([agent, score]) => ({
209
+ agent,
210
+ reliability: score,
211
+ })),
212
+ reason: `highest_reliability_score`,
213
+ };
214
+ }
215
+
216
+ /**
217
+ * Update agent-specific model
218
+ */
219
+ async updateAgentModel(agentType, verification) {
220
+ const modelFile = `.claude-flow/models/agent-${agentType}.json`;
221
+
222
+ let agentModel = {};
223
+ try {
224
+ const data = await fs.readFile(modelFile, 'utf8');
225
+ agentModel = JSON.parse(data);
226
+ } catch {
227
+ agentModel = {
228
+ agentType,
229
+ totalTasks: 0,
230
+ successfulTasks: 0,
231
+ averageScore: 0,
232
+ scoreHistory: [],
233
+ checkPerformance: {},
234
+ };
235
+ }
236
+
237
+ // Update statistics
238
+ agentModel.totalTasks++;
239
+ if (verification.passed) agentModel.successfulTasks++;
240
+
241
+ // Update average score
242
+ agentModel.averageScore =
243
+ (agentModel.averageScore * (agentModel.totalTasks - 1) + verification.score) /
244
+ agentModel.totalTasks;
245
+
246
+ // Keep last 100 scores for trend analysis
247
+ agentModel.scoreHistory.push({
248
+ score: verification.score,
249
+ timestamp: verification.timestamp,
250
+ passed: verification.passed,
251
+ });
252
+ if (agentModel.scoreHistory.length > 100) {
253
+ agentModel.scoreHistory = agentModel.scoreHistory.slice(-100);
254
+ }
255
+
256
+ // Track performance by check type
257
+ if (verification.results) {
258
+ for (const result of verification.results) {
259
+ if (!agentModel.checkPerformance[result.name]) {
260
+ agentModel.checkPerformance[result.name] = {
261
+ total: 0,
262
+ passed: 0,
263
+ avgScore: 0,
264
+ };
265
+ }
266
+
267
+ const checkPerf = agentModel.checkPerformance[result.name];
268
+ checkPerf.total++;
269
+ if (result.passed) checkPerf.passed++;
270
+ checkPerf.avgScore =
271
+ (checkPerf.avgScore * (checkPerf.total - 1) + result.score) / checkPerf.total;
272
+ }
273
+ }
274
+
275
+ // Calculate performance trend (last 10 vs previous 10)
276
+ if (agentModel.scoreHistory.length >= 20) {
277
+ const recent10 = agentModel.scoreHistory.slice(-10);
278
+ const previous10 = agentModel.scoreHistory.slice(-20, -10);
279
+
280
+ const recentAvg = recent10.reduce((sum, h) => sum + h.score, 0) / 10;
281
+ const previousAvg = previous10.reduce((sum, h) => sum + h.score, 0) / 10;
282
+
283
+ agentModel.trend = {
284
+ direction: recentAvg > previousAvg ? 'improving' : 'declining',
285
+ change: recentAvg - previousAvg,
286
+ recentAverage: recentAvg,
287
+ previousAverage: previousAvg,
288
+ };
289
+ }
290
+
291
+ // Save agent model
292
+ await fs.writeFile(modelFile, JSON.stringify(agentModel, null, 2));
293
+
294
+ // Log if agent is improving or declining
295
+ if (agentModel.trend) {
296
+ const emoji = agentModel.trend.direction === 'improving' ? 'šŸ“ˆ' : 'šŸ“‰';
297
+ console.log(
298
+ `${emoji} Agent ${agentType} is ${agentModel.trend.direction} (${agentModel.trend.change > 0 ? '+' : ''}${agentModel.trend.change.toFixed(3)})`,
299
+ );
300
+ }
301
+
302
+ return agentModel;
303
+ }
304
+
305
+ /**
306
+ * Generate training recommendations
307
+ */
308
+ async generateTrainingRecommendations() {
309
+ const model = await this.loadModel();
310
+ const recommendations = [];
311
+
312
+ // Check agent reliability
313
+ if (model.agentReliability) {
314
+ for (const [agent, reliability] of Object.entries(model.agentReliability)) {
315
+ if (reliability < 0.7) {
316
+ recommendations.push({
317
+ type: 'retrain_agent',
318
+ agent,
319
+ currentReliability: reliability,
320
+ action: `Retrain ${agent} agent - reliability below 70%`,
321
+ });
322
+ }
323
+ }
324
+ }
325
+
326
+ // Check patterns
327
+ if (model.patterns) {
328
+ for (const [pattern, data] of Object.entries(model.patterns)) {
329
+ if (pattern.includes('failure') && data.count > 10) {
330
+ const [agentType] = pattern.split('_');
331
+
332
+ // Find most common failing checks
333
+ const failingChecks = Object.entries(data.checks || {})
334
+ .filter(([, stats]) => stats.failure > stats.success)
335
+ .map(([check]) => check);
336
+
337
+ if (failingChecks.length > 0) {
338
+ recommendations.push({
339
+ type: 'improve_checks',
340
+ agent: agentType,
341
+ checks: failingChecks,
342
+ action: `Focus training on ${failingChecks.join(', ')} for ${agentType}`,
343
+ });
344
+ }
345
+ }
346
+ }
347
+ }
348
+
349
+ // Check if we need more data
350
+ const totalDataPoints = Object.values(model.patterns || {}).reduce(
351
+ (sum, p) => sum + p.count,
352
+ 0,
353
+ );
354
+
355
+ if (totalDataPoints < 50) {
356
+ recommendations.push({
357
+ type: 'collect_more_data',
358
+ currentDataPoints: totalDataPoints,
359
+ action: 'Run more verification cycles to improve training accuracy',
360
+ });
361
+ }
362
+
363
+ return recommendations;
364
+ }
365
+
366
+ /**
367
+ * Update performance metrics
368
+ */
369
+ async updatePerformanceMetrics(verification) {
370
+ let metrics = {};
371
+
372
+ try {
373
+ const data = await fs.readFile(this.metricsPath, 'utf8');
374
+ metrics = JSON.parse(data);
375
+ } catch {
376
+ metrics = {
377
+ totalVerifications: 0,
378
+ passedVerifications: 0,
379
+ averageScore: 0,
380
+ byAgent: {},
381
+ byHour: {},
382
+ created: new Date().toISOString(),
383
+ };
384
+ }
385
+
386
+ // Update totals
387
+ metrics.totalVerifications++;
388
+ if (verification.passed) metrics.passedVerifications++;
389
+ metrics.averageScore =
390
+ (metrics.averageScore * (metrics.totalVerifications - 1) + verification.score) /
391
+ metrics.totalVerifications;
392
+
393
+ // Update by agent
394
+ if (!metrics.byAgent[verification.agentType]) {
395
+ metrics.byAgent[verification.agentType] = {
396
+ total: 0,
397
+ passed: 0,
398
+ avgScore: 0,
399
+ };
400
+ }
401
+
402
+ const agentMetrics = metrics.byAgent[verification.agentType];
403
+ agentMetrics.total++;
404
+ if (verification.passed) agentMetrics.passed++;
405
+ agentMetrics.avgScore =
406
+ (agentMetrics.avgScore * (agentMetrics.total - 1) + verification.score) / agentMetrics.total;
407
+
408
+ // Update by hour (for pattern detection)
409
+ const hour = new Date().getHours();
410
+ if (!metrics.byHour[hour]) {
411
+ metrics.byHour[hour] = {
412
+ total: 0,
413
+ avgScore: 0,
414
+ };
415
+ }
416
+
417
+ metrics.byHour[hour].total++;
418
+ metrics.byHour[hour].avgScore =
419
+ (metrics.byHour[hour].avgScore * (metrics.byHour[hour].total - 1) + verification.score) /
420
+ metrics.byHour[hour].total;
421
+
422
+ metrics.lastUpdated = new Date().toISOString();
423
+
424
+ await fs.writeFile(this.metricsPath, JSON.stringify(metrics, null, 2));
425
+ return metrics;
426
+ }
427
+
428
+ /**
429
+ * Train neural network for pattern recognition
430
+ */
431
+ async trainNeuralPatterns() {
432
+ console.log('🧠 Training neural patterns from verification data...');
433
+
434
+ try {
435
+ // Call the training command
436
+ const result = execSync(
437
+ 'npx claude-flow training neural-train --data .claude-flow/training/verification-data.jsonl --model verification-predictor --epochs 100',
438
+ { encoding: 'utf8', stdio: 'pipe' },
439
+ );
440
+
441
+ console.log('āœ… Neural training completed');
442
+ return { success: true, output: result };
443
+ } catch (error) {
444
+ console.error('āŒ Neural training failed:', error.message);
445
+ return { success: false, error: error.message };
446
+ }
447
+ }
448
+
449
+ // Helper methods
450
+
451
+ async appendTrainingData(data) {
452
+ const line = JSON.stringify(data) + '\n';
453
+ await fs.appendFile(this.trainingDataPath, line);
454
+ }
455
+
456
+ async loadModel() {
457
+ try {
458
+ const data = await fs.readFile(this.modelPath, 'utf8');
459
+ return JSON.parse(data);
460
+ } catch {
461
+ return {
462
+ version: '1.0.0',
463
+ created: new Date().toISOString(),
464
+ agentReliability: {},
465
+ patterns: {},
466
+ checkWeights: {},
467
+ };
468
+ }
469
+ }
470
+
471
+ async saveModel(model) {
472
+ model.lastUpdated = new Date().toISOString();
473
+ await fs.writeFile(this.modelPath, JSON.stringify(model, null, 2));
474
+ }
475
+
476
+ /**
477
+ * Get training status and statistics
478
+ */
479
+ async getTrainingStatus() {
480
+ const model = await this.loadModel();
481
+ const metrics = await this.loadMetrics();
482
+
483
+ // Count training data
484
+ let trainingDataCount = 0;
485
+ try {
486
+ const data = await fs.readFile(this.trainingDataPath, 'utf8');
487
+ trainingDataCount = data.split('\n').filter((line) => line.trim()).length;
488
+ } catch {
489
+ // File doesn't exist
490
+ }
491
+
492
+ return {
493
+ modelVersion: model.version,
494
+ lastUpdated: model.lastUpdated,
495
+ trainingDataPoints: trainingDataCount,
496
+ agentReliability: model.agentReliability,
497
+ totalVerifications: metrics.totalVerifications || 0,
498
+ averageScore: metrics.averageScore || 0,
499
+ passRate:
500
+ metrics.totalVerifications > 0
501
+ ? metrics.passedVerifications / metrics.totalVerifications
502
+ : 0,
503
+ agentPerformance: metrics.byAgent || {},
504
+ recommendations: await this.generateTrainingRecommendations(),
505
+ };
506
+ }
507
+
508
+ async loadMetrics() {
509
+ try {
510
+ const data = await fs.readFile(this.metricsPath, 'utf8');
511
+ return JSON.parse(data);
512
+ } catch {
513
+ return {};
514
+ }
515
+ }
516
+ }
517
+
518
+ /**
519
+ * CLI integration for verification-training
520
+ */
521
+ export async function verificationTrainingCommand(args, flags) {
522
+ const integration = new VerificationTrainingIntegration();
523
+ await integration.initialize();
524
+
525
+ const subcommand = args[0] || 'status';
526
+
527
+ switch (subcommand) {
528
+ case 'feed':
529
+ // Feed current verification data to training
530
+ const verificationFile = '.swarm/verification-memory.json';
531
+ try {
532
+ const data = await fs.readFile(verificationFile, 'utf8');
533
+ const memory = JSON.parse(data);
534
+
535
+ if (memory.history && memory.history.length > 0) {
536
+ console.log(`šŸ“Š Feeding ${memory.history.length} verification records to training...`);
537
+
538
+ for (const verification of memory.history) {
539
+ await integration.feedVerificationToTraining(verification);
540
+ }
541
+
542
+ console.log('āœ… Training data updated');
543
+ } else {
544
+ console.log('No verification history to feed');
545
+ }
546
+ } catch (error) {
547
+ console.error('Error reading verification data:', error.message);
548
+ }
549
+ break;
550
+
551
+ case 'predict':
552
+ // Predict verification outcome
553
+ const taskType = args[1] || 'default';
554
+ const agentType = args[2] || 'coder';
555
+
556
+ const prediction = await integration.predictVerificationOutcome(taskType, agentType);
557
+ console.log('\nšŸ”® Verification Prediction:');
558
+ console.log(` Predicted Score: ${prediction.predictedScore.toFixed(3)}`);
559
+ console.log(` Confidence: ${(prediction.confidence * 100).toFixed(1)}%`);
560
+ console.log(` Recommendation: ${prediction.recommendation}`);
561
+ console.log(
562
+ ` Historical Success Rate: ${(prediction.historicalSuccessRate * 100).toFixed(1)}%`,
563
+ );
564
+ console.log(` Data Points: ${prediction.dataPoints}`);
565
+ break;
566
+
567
+ case 'recommend':
568
+ // Get agent recommendation
569
+ const task = args[1] || 'default';
570
+ const recommendation = await integration.recommendAgent(task);
571
+
572
+ console.log('\nšŸ¤– Agent Recommendation:');
573
+ console.log(` Recommended: ${recommendation.recommended}`);
574
+ console.log(` Reliability: ${(recommendation.reliability * 100).toFixed(1)}%`);
575
+ console.log(` Reason: ${recommendation.reason}`);
576
+
577
+ if (recommendation.alternatives && recommendation.alternatives.length > 0) {
578
+ console.log(' Alternatives:');
579
+ for (const alt of recommendation.alternatives) {
580
+ console.log(` • ${alt.agent}: ${(alt.reliability * 100).toFixed(1)}%`);
581
+ }
582
+ }
583
+ break;
584
+
585
+ case 'train':
586
+ // Trigger neural training
587
+ await integration.trainNeuralPatterns();
588
+ break;
589
+
590
+ case 'recommendations':
591
+ // Get training recommendations
592
+ const recs = await integration.generateTrainingRecommendations();
593
+
594
+ console.log('\nšŸ’” Training Recommendations:');
595
+ if (recs.length === 0) {
596
+ console.log(' No recommendations at this time');
597
+ } else {
598
+ for (const rec of recs) {
599
+ console.log(` • ${rec.action}`);
600
+ }
601
+ }
602
+ break;
603
+
604
+ case 'status':
605
+ default:
606
+ // Show training status
607
+ const status = await integration.getTrainingStatus();
608
+
609
+ console.log('\nšŸ“Š Verification-Training Status');
610
+ console.log('━'.repeat(50));
611
+ console.log(`Model Version: ${status.modelVersion}`);
612
+ console.log(`Last Updated: ${status.lastUpdated || 'Never'}`);
613
+ console.log(`Training Data Points: ${status.trainingDataPoints}`);
614
+ console.log(`Total Verifications: ${status.totalVerifications}`);
615
+ console.log(`Average Score: ${status.averageScore.toFixed(3)}`);
616
+ console.log(`Pass Rate: ${(status.passRate * 100).toFixed(1)}%`);
617
+
618
+ if (Object.keys(status.agentReliability).length > 0) {
619
+ console.log('\nšŸ¤– Agent Reliability:');
620
+ for (const [agent, reliability] of Object.entries(status.agentReliability)) {
621
+ console.log(` ${agent}: ${(reliability * 100).toFixed(1)}%`);
622
+ }
623
+ }
624
+
625
+ if (status.recommendations.length > 0) {
626
+ console.log('\nšŸ’” Recommendations:');
627
+ for (const rec of status.recommendations) {
628
+ console.log(` • ${rec.action}`);
629
+ }
630
+ }
631
+
632
+ console.log('\nšŸ“š Commands:');
633
+ console.log(' feed - Feed verification data to training');
634
+ console.log(' predict - Predict verification outcome');
635
+ console.log(' recommend - Get agent recommendation');
636
+ console.log(' train - Trigger neural training');
637
+ console.log(' status - Show training status');
638
+ break;
639
+ }
640
+ }
641
+
642
+ // Export for use in other modules
643
+ export default {
644
+ VerificationTrainingIntegration,
645
+ verificationTrainingCommand,
646
+ };