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,464 @@
1
+ /**
2
+ * Verification Integration Module
3
+ * Connects verification system to actual agent operations and task execution
4
+ */
5
+
6
+ import { exec } from 'child_process';
7
+ import { promisify } from 'util';
8
+ import fs from 'fs/promises';
9
+ import path from 'path';
10
+ import crypto from 'crypto';
11
+
12
+ const execAsync = promisify(exec);
13
+
14
+ /**
15
+ * Verification middleware for task execution
16
+ * Intercepts task results and verifies them
17
+ */
18
+ export class VerificationMiddleware {
19
+ constructor(verificationSystem) {
20
+ this.verificationSystem = verificationSystem;
21
+ this.enabled = true;
22
+ this.autoRollback = true;
23
+ }
24
+
25
+ /**
26
+ * Wrap task execution with verification
27
+ */
28
+ async executeWithVerification(taskFn, taskId, agentType, context) {
29
+ // Pre-task verification
30
+ const preCheck = await this.preTaskVerification(taskId, context);
31
+ if (!preCheck.passed && this.enabled) {
32
+ console.log(`❌ Pre-task verification failed for ${taskId}`);
33
+ return { success: false, reason: 'Pre-task verification failed', preCheck };
34
+ }
35
+
36
+ // Execute the actual task
37
+ let result;
38
+ let error;
39
+ try {
40
+ result = await taskFn();
41
+ } catch (err) {
42
+ error = err;
43
+ result = { success: false, error: err.message };
44
+ }
45
+
46
+ // Post-task verification
47
+ const postCheck = await this.postTaskVerification(taskId, agentType, result, context);
48
+
49
+ // If verification fails and auto-rollback is enabled
50
+ if (!postCheck.passed && this.autoRollback) {
51
+ await this.rollbackTask(taskId, context);
52
+ return {
53
+ success: false,
54
+ reason: 'Post-task verification failed',
55
+ result,
56
+ verification: postCheck,
57
+ rollback: true,
58
+ };
59
+ }
60
+
61
+ return {
62
+ success: postCheck.passed,
63
+ result,
64
+ verification: postCheck,
65
+ };
66
+ }
67
+
68
+ /**
69
+ * Pre-task verification checks
70
+ */
71
+ async preTaskVerification(taskId, context) {
72
+ const checks = [];
73
+
74
+ // Check if environment is clean
75
+ if (context.requiresCleanState) {
76
+ const gitStatus = await this.checkGitStatus();
77
+ checks.push({
78
+ name: 'clean-state',
79
+ passed: gitStatus.clean,
80
+ score: gitStatus.clean ? 1.0 : 0.0,
81
+ });
82
+ }
83
+
84
+ // Check dependencies
85
+ if (context.dependencies) {
86
+ for (const dep of context.dependencies) {
87
+ const exists = await this.checkDependency(dep);
88
+ checks.push({
89
+ name: `dependency-${dep}`,
90
+ passed: exists,
91
+ score: exists ? 1.0 : 0.0,
92
+ });
93
+ }
94
+ }
95
+
96
+ const score =
97
+ checks.length > 0 ? checks.reduce((sum, c) => sum + c.score, 0) / checks.length : 1.0;
98
+
99
+ return {
100
+ passed: score >= 0.95,
101
+ score,
102
+ checks,
103
+ timestamp: new Date().toISOString(),
104
+ };
105
+ }
106
+
107
+ /**
108
+ * Post-task verification checks
109
+ */
110
+ async postTaskVerification(taskId, agentType, result, context) {
111
+ const checks = [];
112
+
113
+ // Verify based on agent type
114
+ switch (agentType) {
115
+ case 'coder':
116
+ // Check if code compiles
117
+ if (context.language === 'typescript' || context.language === 'javascript') {
118
+ const typecheck = await this.runTypeCheck();
119
+ checks.push({
120
+ name: 'typecheck',
121
+ passed: typecheck.passed,
122
+ score: typecheck.score,
123
+ });
124
+ }
125
+
126
+ // Check if tests pass
127
+ if (context.hasTests) {
128
+ const tests = await this.runTests();
129
+ checks.push({
130
+ name: 'tests',
131
+ passed: tests.passed,
132
+ score: tests.score,
133
+ });
134
+ }
135
+
136
+ // Check linting
137
+ const lint = await this.runLint();
138
+ checks.push({
139
+ name: 'lint',
140
+ passed: lint.passed,
141
+ score: lint.score,
142
+ });
143
+ break;
144
+
145
+ case 'researcher':
146
+ // Verify research output has required sections
147
+ if (result && result.output) {
148
+ const hasFindings =
149
+ result.output.includes('findings') || result.output.includes('results');
150
+ checks.push({
151
+ name: 'research-completeness',
152
+ passed: hasFindings,
153
+ score: hasFindings ? 1.0 : 0.5,
154
+ });
155
+ }
156
+ break;
157
+
158
+ case 'tester':
159
+ // Verify test coverage meets threshold
160
+ if (context.requiresCoverage) {
161
+ const coverage = await this.checkTestCoverage();
162
+ checks.push({
163
+ name: 'coverage',
164
+ passed: coverage.percentage >= 80,
165
+ score: coverage.percentage / 100,
166
+ });
167
+ }
168
+ break;
169
+
170
+ case 'architect':
171
+ // Verify architecture decisions are documented
172
+ const hasDocs = await this.checkDocumentation();
173
+ checks.push({
174
+ name: 'documentation',
175
+ passed: hasDocs,
176
+ score: hasDocs ? 1.0 : 0.3,
177
+ });
178
+ break;
179
+ }
180
+
181
+ // Check result success claim
182
+ if (result && result.success !== undefined) {
183
+ checks.push({
184
+ name: 'claimed-success',
185
+ passed: result.success,
186
+ score: result.success ? 1.0 : 0.0,
187
+ });
188
+ }
189
+
190
+ const score =
191
+ checks.length > 0 ? checks.reduce((sum, c) => sum + c.score, 0) / checks.length : 0.5;
192
+
193
+ // Store verification result
194
+ await this.verificationSystem.verifyTask(taskId, agentType, {
195
+ success: result?.success,
196
+ checks,
197
+ score,
198
+ });
199
+
200
+ return {
201
+ passed: score >= this.verificationSystem.getThreshold(),
202
+ score,
203
+ checks,
204
+ timestamp: new Date().toISOString(),
205
+ };
206
+ }
207
+
208
+ /**
209
+ * Rollback task changes
210
+ */
211
+ async rollbackTask(taskId, context) {
212
+ console.log(`🔄 Rolling back task ${taskId}...`);
213
+
214
+ try {
215
+ // If we have a git checkpoint, rollback to it
216
+ if (context.gitCheckpoint) {
217
+ await execAsync(`git reset --hard ${context.gitCheckpoint}`);
218
+ console.log(`✅ Rolled back to checkpoint ${context.gitCheckpoint}`);
219
+ } else {
220
+ // Otherwise just reset to last commit
221
+ await execAsync('git reset --hard HEAD');
222
+ console.log(`✅ Rolled back to last commit`);
223
+ }
224
+ return true;
225
+ } catch (error) {
226
+ console.error(`❌ Rollback failed: ${error.message}`);
227
+ return false;
228
+ }
229
+ }
230
+
231
+ // Helper methods for actual checks
232
+
233
+ async checkGitStatus() {
234
+ try {
235
+ const { stdout } = await execAsync('git status --porcelain');
236
+ return { clean: stdout.trim() === '' };
237
+ } catch {
238
+ return { clean: false };
239
+ }
240
+ }
241
+
242
+ async checkDependency(dep) {
243
+ try {
244
+ await execAsync(`which ${dep}`);
245
+ return true;
246
+ } catch {
247
+ return false;
248
+ }
249
+ }
250
+
251
+ async runTypeCheck() {
252
+ try {
253
+ const { stdout } = await execAsync('npm run typecheck 2>&1 || true');
254
+ const hasErrors = stdout.toLowerCase().includes('error');
255
+ return {
256
+ passed: !hasErrors,
257
+ score: hasErrors ? 0.5 : 1.0,
258
+ };
259
+ } catch {
260
+ return { passed: false, score: 0.3 };
261
+ }
262
+ }
263
+
264
+ async runTests() {
265
+ try {
266
+ const { stdout } = await execAsync('npm test 2>&1 || true');
267
+ const passed = stdout.includes('PASS') || stdout.includes('passing');
268
+ const failed = stdout.includes('FAIL') || stdout.includes('failing');
269
+
270
+ if (passed && !failed) {
271
+ return { passed: true, score: 1.0 };
272
+ } else if (passed && failed) {
273
+ return { passed: false, score: 0.7 };
274
+ } else {
275
+ return { passed: false, score: 0.3 };
276
+ }
277
+ } catch {
278
+ return { passed: false, score: 0.0 };
279
+ }
280
+ }
281
+
282
+ async runLint() {
283
+ try {
284
+ const { stdout } = await execAsync('npm run lint 2>&1 || true');
285
+ const hasErrors = stdout.toLowerCase().includes('error');
286
+ const hasWarnings = stdout.toLowerCase().includes('warning');
287
+
288
+ if (!hasErrors && !hasWarnings) {
289
+ return { passed: true, score: 1.0 };
290
+ } else if (!hasErrors && hasWarnings) {
291
+ return { passed: true, score: 0.8 };
292
+ } else {
293
+ return { passed: false, score: 0.5 };
294
+ }
295
+ } catch {
296
+ return { passed: false, score: 0.3 };
297
+ }
298
+ }
299
+
300
+ async checkTestCoverage() {
301
+ try {
302
+ const { stdout } = await execAsync('npm run coverage 2>&1 || true');
303
+ const match = stdout.match(/(\d+(\.\d+)?)\s*%/);
304
+ const percentage = match ? parseFloat(match[1]) : 0;
305
+ return { percentage };
306
+ } catch {
307
+ return { percentage: 0 };
308
+ }
309
+ }
310
+
311
+ async checkDocumentation() {
312
+ try {
313
+ // Check if common documentation files exist
314
+ const docFiles = ['README.md', 'ARCHITECTURE.md', 'docs/design.md'];
315
+ for (const file of docFiles) {
316
+ try {
317
+ await fs.access(file);
318
+ return true;
319
+ } catch {
320
+ // Continue checking other files
321
+ }
322
+ }
323
+ return false;
324
+ } catch {
325
+ return false;
326
+ }
327
+ }
328
+ }
329
+
330
+ /**
331
+ * Integration with swarm command
332
+ */
333
+ export function integrateWithSwarm(swarmCommand, verificationSystem) {
334
+ const originalExecute = swarmCommand.execute;
335
+ const middleware = new VerificationMiddleware(verificationSystem);
336
+
337
+ swarmCommand.execute = async function (objective, options) {
338
+ // Create checkpoint before swarm execution
339
+ const checkpoint = await createGitCheckpoint();
340
+
341
+ // Wrap the original execution with verification
342
+ const context = {
343
+ requiresCleanState: !options.allowDirty,
344
+ dependencies: options.dependencies || [],
345
+ language: options.language || 'javascript',
346
+ hasTests: options.runTests !== false,
347
+ requiresCoverage: options.coverage === true,
348
+ gitCheckpoint: checkpoint,
349
+ };
350
+
351
+ // Execute with verification
352
+ return await middleware.executeWithVerification(
353
+ () => originalExecute.call(this, objective, options),
354
+ `swarm-${Date.now()}`,
355
+ 'swarm',
356
+ context,
357
+ );
358
+ };
359
+
360
+ return swarmCommand;
361
+ }
362
+
363
+ /**
364
+ * Integration with non-interactive mode
365
+ */
366
+ export function integrateWithNonInteractive(flags, verificationSystem) {
367
+ // Add verification flags to non-interactive mode
368
+ const verificationFlags = {
369
+ ...flags,
370
+ verify: true,
371
+ verificationThreshold: flags.threshold || 0.95,
372
+ autoRollback: flags.rollback !== false,
373
+ };
374
+
375
+ // Return a verification wrapper for non-interactive execution
376
+ return {
377
+ flags: verificationFlags,
378
+ preExecute: async (taskId) => {
379
+ await verificationSystem.initialize('strict');
380
+ console.log('✅ Verification enabled for non-interactive mode');
381
+ },
382
+ postExecute: async (taskId, result) => {
383
+ const verification = await verificationSystem.verifyTask(taskId, 'non-interactive', result);
384
+
385
+ if (!verification.passed) {
386
+ console.error('❌ Verification failed in non-interactive mode');
387
+ process.exit(1);
388
+ }
389
+ },
390
+ };
391
+ }
392
+
393
+ /**
394
+ * Integration with training system
395
+ */
396
+ export function integrateWithTraining(trainingSystem, verificationSystem) {
397
+ // Feed verification results to training system
398
+ verificationSystem.onVerification = async (verification) => {
399
+ // Convert verification to training data
400
+ const trainingData = {
401
+ input: {
402
+ taskId: verification.taskId,
403
+ agentType: verification.agentType,
404
+ context: verification.context,
405
+ },
406
+ output: {
407
+ success: verification.passed,
408
+ score: verification.score,
409
+ checks: verification.results,
410
+ },
411
+ };
412
+
413
+ // Feed to training system
414
+ await trainingSystem.learn(trainingData);
415
+
416
+ // Update agent model based on performance
417
+ if (verification.agentType) {
418
+ await trainingSystem.updateAgentModel(verification.agentType, verification.score);
419
+ }
420
+ };
421
+
422
+ return verificationSystem;
423
+ }
424
+
425
+ /**
426
+ * Create git checkpoint for rollback
427
+ */
428
+ async function createGitCheckpoint() {
429
+ try {
430
+ // Create a temporary commit as checkpoint
431
+ const { stdout } = await execAsync('git rev-parse HEAD');
432
+ return stdout.trim();
433
+ } catch {
434
+ return null;
435
+ }
436
+ }
437
+
438
+ /**
439
+ * Export verification hooks for command integration
440
+ */
441
+ export const verificationHooks = {
442
+ beforeTask: async (taskId, context) => {
443
+ // Hook called before task execution
444
+ console.log(`🔍 Pre-task verification for ${taskId}`);
445
+ },
446
+
447
+ afterTask: async (taskId, result, context) => {
448
+ // Hook called after task execution
449
+ console.log(`✅ Post-task verification for ${taskId}`);
450
+ },
451
+
452
+ onFailure: async (taskId, verification) => {
453
+ // Hook called when verification fails
454
+ console.log(`❌ Verification failed for ${taskId}: ${verification.score}`);
455
+ },
456
+ };
457
+
458
+ export default {
459
+ VerificationMiddleware,
460
+ integrateWithSwarm,
461
+ integrateWithNonInteractive,
462
+ integrateWithTraining,
463
+ verificationHooks,
464
+ };