burhan-mop 0.1.0

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 (382) hide show
  1. package/.agents/AGENTS.md +54 -0
  2. package/.agents/skills/auto-deploy/SKILL.md +48 -0
  3. package/.agents/skills/autosycn/SKILL.md +75 -0
  4. package/.agents/skills/mop-help/SKILL.md +35 -0
  5. package/.agents/skills/ruflo-core/SKILL.md +35 -0
  6. package/.claude/agents/analysis/analyze-code-quality.md +179 -0
  7. package/.claude/agents/analysis/code-analyzer.md +210 -0
  8. package/.claude/agents/analysis/code-review/analyze-code-quality.md +179 -0
  9. package/.claude/agents/architecture/arch-system-design.md +157 -0
  10. package/.claude/agents/architecture/system-design/arch-system-design.md +155 -0
  11. package/.claude/agents/browser/browser-agent.yaml +182 -0
  12. package/.claude/agents/consensus/byzantine-coordinator.md +63 -0
  13. package/.claude/agents/consensus/crdt-synchronizer.md +997 -0
  14. package/.claude/agents/consensus/gossip-coordinator.md +63 -0
  15. package/.claude/agents/consensus/performance-benchmarker.md +851 -0
  16. package/.claude/agents/consensus/quorum-manager.md +823 -0
  17. package/.claude/agents/consensus/raft-manager.md +63 -0
  18. package/.claude/agents/consensus/security-manager.md +622 -0
  19. package/.claude/agents/core/planner.md +375 -0
  20. package/.claude/agents/custom/test-long-runner.md +44 -0
  21. package/.claude/agents/data/data-ml-model.md +445 -0
  22. package/.claude/agents/data/ml/data-ml-model.md +193 -0
  23. package/.claude/agents/development/backend/dev-backend-api.md +142 -0
  24. package/.claude/agents/development/dev-backend-api.md +345 -0
  25. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
  26. package/.claude/agents/devops/ops-cicd-github.md +165 -0
  27. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
  28. package/.claude/agents/documentation/docs-api-openapi.md +355 -0
  29. package/.claude/agents/flow-nexus/app-store.md +88 -0
  30. package/.claude/agents/flow-nexus/authentication.md +69 -0
  31. package/.claude/agents/flow-nexus/challenges.md +81 -0
  32. package/.claude/agents/flow-nexus/neural-network.md +88 -0
  33. package/.claude/agents/flow-nexus/payments.md +83 -0
  34. package/.claude/agents/flow-nexus/sandbox.md +76 -0
  35. package/.claude/agents/flow-nexus/swarm.md +76 -0
  36. package/.claude/agents/flow-nexus/user-tools.md +96 -0
  37. package/.claude/agents/flow-nexus/workflow.md +84 -0
  38. package/.claude/agents/github/code-review-swarm.md +377 -0
  39. package/.claude/agents/github/github-modes.md +173 -0
  40. package/.claude/agents/github/issue-tracker.md +576 -0
  41. package/.claude/agents/github/multi-repo-swarm.md +553 -0
  42. package/.claude/agents/github/pr-manager.md +438 -0
  43. package/.claude/agents/github/project-board-sync.md +509 -0
  44. package/.claude/agents/github/release-manager.md +605 -0
  45. package/.claude/agents/github/release-swarm.md +583 -0
  46. package/.claude/agents/github/repo-architect.md +398 -0
  47. package/.claude/agents/github/swarm-issue.md +573 -0
  48. package/.claude/agents/github/swarm-pr.md +428 -0
  49. package/.claude/agents/github/sync-coordinator.md +452 -0
  50. package/.claude/agents/github/workflow-automation.md +903 -0
  51. package/.claude/agents/goal/agent.md +816 -0
  52. package/.claude/agents/optimization/benchmark-suite.md +665 -0
  53. package/.claude/agents/optimization/load-balancer.md +431 -0
  54. package/.claude/agents/optimization/performance-monitor.md +672 -0
  55. package/.claude/agents/optimization/resource-allocator.md +674 -0
  56. package/.claude/agents/optimization/topology-optimizer.md +808 -0
  57. package/.claude/agents/payments/agentic-payments.md +126 -0
  58. package/.claude/agents/sona/sona-learning-optimizer.md +74 -0
  59. package/.claude/agents/sparc/architecture.md +699 -0
  60. package/.claude/agents/sparc/pseudocode.md +520 -0
  61. package/.claude/agents/sparc/refinement.md +802 -0
  62. package/.claude/agents/sparc/specification.md +478 -0
  63. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +225 -0
  64. package/.claude/agents/specialized/spec-mobile-react-native.md +227 -0
  65. package/.claude/agents/sublinear/consensus-coordinator.md +338 -0
  66. package/.claude/agents/sublinear/matrix-optimizer.md +185 -0
  67. package/.claude/agents/sublinear/pagerank-analyzer.md +299 -0
  68. package/.claude/agents/sublinear/performance-optimizer.md +368 -0
  69. package/.claude/agents/sublinear/trading-predictor.md +246 -0
  70. package/.claude/agents/swarm/adaptive-coordinator.md +1127 -0
  71. package/.claude/agents/swarm/hierarchical-coordinator.md +710 -0
  72. package/.claude/agents/swarm/mesh-coordinator.md +963 -0
  73. package/.claude/agents/templates/automation-smart-agent.md +205 -0
  74. package/.claude/agents/templates/base-template-generator.md +289 -0
  75. package/.claude/agents/templates/coordinator-swarm-init.md +90 -0
  76. package/.claude/agents/templates/github-pr-manager.md +177 -0
  77. package/.claude/agents/templates/implementer-sparc-coder.md +259 -0
  78. package/.claude/agents/templates/memory-coordinator.md +187 -0
  79. package/.claude/agents/templates/orchestrator-task.md +139 -0
  80. package/.claude/agents/templates/performance-analyzer.md +199 -0
  81. package/.claude/agents/templates/sparc-coordinator.md +514 -0
  82. package/.claude/agents/testing/production-validator.md +395 -0
  83. package/.claude/agents/testing/tdd-london-swarm.md +244 -0
  84. package/.claude/agents/v3/aidefence-guardian.md +282 -0
  85. package/.claude/agents/v3/claims-authorizer.md +208 -0
  86. package/.claude/agents/v3/collective-intelligence-coordinator.md +993 -0
  87. package/.claude/agents/v3/ddd-domain-expert.md +220 -0
  88. package/.claude/agents/v3/injection-analyst.md +236 -0
  89. package/.claude/agents/v3/performance-engineer.md +1233 -0
  90. package/.claude/agents/v3/pii-detector.md +151 -0
  91. package/.claude/agents/v3/reasoningbank-learner.md +213 -0
  92. package/.claude/agents/v3/security-architect-aidefence.md +410 -0
  93. package/.claude/agents/v3/security-architect.md +867 -0
  94. package/.claude/agents/v3/swarm-memory-manager.md +157 -0
  95. package/.claude/agents/v3/v3-integration-architect.md +205 -0
  96. package/.claude/commands/agents/README.md +50 -0
  97. package/.claude/commands/agents/agent-capabilities.md +140 -0
  98. package/.claude/commands/agents/agent-coordination.md +28 -0
  99. package/.claude/commands/agents/agent-spawning.md +28 -0
  100. package/.claude/commands/agents/agent-types.md +216 -0
  101. package/.claude/commands/agents/health.md +139 -0
  102. package/.claude/commands/agents/list.md +100 -0
  103. package/.claude/commands/agents/logs.md +130 -0
  104. package/.claude/commands/agents/metrics.md +122 -0
  105. package/.claude/commands/agents/pool.md +127 -0
  106. package/.claude/commands/agents/spawn.md +140 -0
  107. package/.claude/commands/agents/status.md +115 -0
  108. package/.claude/commands/agents/stop.md +102 -0
  109. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  110. package/.claude/commands/analysis/README.md +9 -0
  111. package/.claude/commands/analysis/bottleneck-detect.md +162 -0
  112. package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
  113. package/.claude/commands/analysis/performance-report.md +25 -0
  114. package/.claude/commands/analysis/token-efficiency.md +45 -0
  115. package/.claude/commands/analysis/token-usage.md +25 -0
  116. package/.claude/commands/automation/README.md +9 -0
  117. package/.claude/commands/automation/auto-agent.md +122 -0
  118. package/.claude/commands/automation/self-healing.md +106 -0
  119. package/.claude/commands/automation/session-memory.md +90 -0
  120. package/.claude/commands/automation/smart-agents.md +73 -0
  121. package/.claude/commands/automation/smart-spawn.md +25 -0
  122. package/.claude/commands/automation/workflow-select.md +25 -0
  123. package/.claude/commands/claude-flow-help.md +103 -0
  124. package/.claude/commands/claude-flow-memory.md +107 -0
  125. package/.claude/commands/claude-flow-swarm.md +205 -0
  126. package/.claude/commands/coordination/README.md +9 -0
  127. package/.claude/commands/coordination/agent-spawn.md +25 -0
  128. package/.claude/commands/coordination/init.md +44 -0
  129. package/.claude/commands/coordination/orchestrate.md +43 -0
  130. package/.claude/commands/coordination/spawn.md +45 -0
  131. package/.claude/commands/coordination/swarm-init.md +85 -0
  132. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  133. package/.claude/commands/github/README.md +11 -0
  134. package/.claude/commands/github/code-review-swarm.md +514 -0
  135. package/.claude/commands/github/code-review.md +25 -0
  136. package/.claude/commands/github/github-modes.md +147 -0
  137. package/.claude/commands/github/github-swarm.md +121 -0
  138. package/.claude/commands/github/issue-tracker.md +292 -0
  139. package/.claude/commands/github/issue-triage.md +25 -0
  140. package/.claude/commands/github/multi-repo-swarm.md +519 -0
  141. package/.claude/commands/github/pr-enhance.md +26 -0
  142. package/.claude/commands/github/pr-manager.md +170 -0
  143. package/.claude/commands/github/project-board-sync.md +471 -0
  144. package/.claude/commands/github/release-manager.md +340 -0
  145. package/.claude/commands/github/release-swarm.md +544 -0
  146. package/.claude/commands/github/repo-analyze.md +25 -0
  147. package/.claude/commands/github/repo-architect.md +367 -0
  148. package/.claude/commands/github/swarm-issue.md +485 -0
  149. package/.claude/commands/github/swarm-pr.md +288 -0
  150. package/.claude/commands/github/sync-coordinator.md +303 -0
  151. package/.claude/commands/github/workflow-automation.md +442 -0
  152. package/.claude/commands/hive-mind/README.md +17 -0
  153. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  154. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  155. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  156. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  157. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  158. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  159. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  160. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  161. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  162. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  163. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  164. package/.claude/commands/hooks/README.md +11 -0
  165. package/.claude/commands/hooks/overview.md +58 -0
  166. package/.claude/commands/hooks/post-edit.md +117 -0
  167. package/.claude/commands/hooks/post-task.md +112 -0
  168. package/.claude/commands/hooks/pre-edit.md +113 -0
  169. package/.claude/commands/hooks/pre-task.md +111 -0
  170. package/.claude/commands/hooks/session-end.md +118 -0
  171. package/.claude/commands/hooks/setup.md +103 -0
  172. package/.claude/commands/memory/README.md +9 -0
  173. package/.claude/commands/memory/memory-persist.md +25 -0
  174. package/.claude/commands/memory/memory-search.md +25 -0
  175. package/.claude/commands/memory/memory-usage.md +25 -0
  176. package/.claude/commands/memory/neural.md +47 -0
  177. package/.claude/commands/monitoring/README.md +9 -0
  178. package/.claude/commands/monitoring/agent-metrics.md +25 -0
  179. package/.claude/commands/monitoring/agents.md +44 -0
  180. package/.claude/commands/monitoring/real-time-view.md +25 -0
  181. package/.claude/commands/monitoring/status.md +46 -0
  182. package/.claude/commands/monitoring/swarm-monitor.md +25 -0
  183. package/.claude/commands/optimization/README.md +9 -0
  184. package/.claude/commands/optimization/auto-topology.md +62 -0
  185. package/.claude/commands/optimization/cache-manage.md +25 -0
  186. package/.claude/commands/optimization/parallel-execute.md +25 -0
  187. package/.claude/commands/optimization/parallel-execution.md +50 -0
  188. package/.claude/commands/optimization/topology-optimize.md +25 -0
  189. package/.claude/commands/pair/README.md +261 -0
  190. package/.claude/commands/pair/commands.md +546 -0
  191. package/.claude/commands/pair/config.md +510 -0
  192. package/.claude/commands/pair/examples.md +512 -0
  193. package/.claude/commands/pair/modes.md +348 -0
  194. package/.claude/commands/pair/session.md +407 -0
  195. package/.claude/commands/pair/start.md +209 -0
  196. package/.claude/commands/sparc/analyzer.md +52 -0
  197. package/.claude/commands/sparc/architect.md +53 -0
  198. package/.claude/commands/sparc/ask.md +97 -0
  199. package/.claude/commands/sparc/batch-executor.md +54 -0
  200. package/.claude/commands/sparc/code.md +89 -0
  201. package/.claude/commands/sparc/coder.md +54 -0
  202. package/.claude/commands/sparc/debug.md +83 -0
  203. package/.claude/commands/sparc/debugger.md +54 -0
  204. package/.claude/commands/sparc/designer.md +53 -0
  205. package/.claude/commands/sparc/devops.md +109 -0
  206. package/.claude/commands/sparc/docs-writer.md +80 -0
  207. package/.claude/commands/sparc/documenter.md +54 -0
  208. package/.claude/commands/sparc/innovator.md +54 -0
  209. package/.claude/commands/sparc/integration.md +83 -0
  210. package/.claude/commands/sparc/mcp.md +117 -0
  211. package/.claude/commands/sparc/memory-manager.md +54 -0
  212. package/.claude/commands/sparc/optimizer.md +54 -0
  213. package/.claude/commands/sparc/orchestrator.md +132 -0
  214. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -0
  215. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -0
  216. package/.claude/commands/sparc/researcher.md +54 -0
  217. package/.claude/commands/sparc/reviewer.md +54 -0
  218. package/.claude/commands/sparc/security-review.md +80 -0
  219. package/.claude/commands/sparc/sparc-modes.md +174 -0
  220. package/.claude/commands/sparc/sparc.md +111 -0
  221. package/.claude/commands/sparc/spec-pseudocode.md +80 -0
  222. package/.claude/commands/sparc/supabase-admin.md +348 -0
  223. package/.claude/commands/sparc/swarm-coordinator.md +54 -0
  224. package/.claude/commands/sparc/tdd.md +54 -0
  225. package/.claude/commands/sparc/tester.md +54 -0
  226. package/.claude/commands/sparc/tutorial.md +79 -0
  227. package/.claude/commands/sparc/workflow-manager.md +54 -0
  228. package/.claude/commands/stream-chain/pipeline.md +121 -0
  229. package/.claude/commands/stream-chain/run.md +70 -0
  230. package/.claude/commands/swarm/README.md +15 -0
  231. package/.claude/commands/swarm/analysis.md +95 -0
  232. package/.claude/commands/swarm/development.md +96 -0
  233. package/.claude/commands/swarm/examples.md +168 -0
  234. package/.claude/commands/swarm/maintenance.md +102 -0
  235. package/.claude/commands/swarm/optimization.md +117 -0
  236. package/.claude/commands/swarm/research.md +136 -0
  237. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  238. package/.claude/commands/swarm/swarm-background.md +8 -0
  239. package/.claude/commands/swarm/swarm-init.md +19 -0
  240. package/.claude/commands/swarm/swarm-modes.md +8 -0
  241. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  242. package/.claude/commands/swarm/swarm-spawn.md +19 -0
  243. package/.claude/commands/swarm/swarm-status.md +8 -0
  244. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  245. package/.claude/commands/swarm/swarm.md +87 -0
  246. package/.claude/commands/swarm/testing.md +131 -0
  247. package/.claude/commands/training/README.md +9 -0
  248. package/.claude/commands/training/model-update.md +25 -0
  249. package/.claude/commands/training/neural-patterns.md +108 -0
  250. package/.claude/commands/training/neural-train.md +75 -0
  251. package/.claude/commands/training/pattern-learn.md +25 -0
  252. package/.claude/commands/training/specialization.md +63 -0
  253. package/.claude/commands/truth/start.md +143 -0
  254. package/.claude/commands/verify/check.md +50 -0
  255. package/.claude/commands/verify/start.md +128 -0
  256. package/.claude/commands/workflows/README.md +9 -0
  257. package/.claude/commands/workflows/development.md +78 -0
  258. package/.claude/commands/workflows/research.md +63 -0
  259. package/.claude/commands/workflows/workflow-create.md +25 -0
  260. package/.claude/commands/workflows/workflow-execute.md +25 -0
  261. package/.claude/commands/workflows/workflow-export.md +25 -0
  262. package/.claude/helpers/README.md +97 -0
  263. package/.claude/helpers/adr-compliance.sh +186 -0
  264. package/.claude/helpers/auto-commit.sh +178 -0
  265. package/.claude/helpers/auto-memory-hook.mjs +368 -0
  266. package/.claude/helpers/checkpoint-manager.sh +251 -0
  267. package/.claude/helpers/daemon-manager.sh +252 -0
  268. package/.claude/helpers/ddd-tracker.sh +144 -0
  269. package/.claude/helpers/github-safe.js +156 -0
  270. package/.claude/helpers/github-setup.sh +45 -0
  271. package/.claude/helpers/guidance-hook.sh +13 -0
  272. package/.claude/helpers/guidance-hooks.sh +102 -0
  273. package/.claude/helpers/health-monitor.sh +108 -0
  274. package/.claude/helpers/hook-handler.cjs +286 -0
  275. package/.claude/helpers/intelligence.cjs +1031 -0
  276. package/.claude/helpers/learning-hooks.sh +329 -0
  277. package/.claude/helpers/learning-optimizer.sh +127 -0
  278. package/.claude/helpers/learning-service.mjs +1144 -0
  279. package/.claude/helpers/memory.js +83 -0
  280. package/.claude/helpers/metrics-db.mjs +488 -0
  281. package/.claude/helpers/pattern-consolidator.sh +86 -0
  282. package/.claude/helpers/perf-worker.sh +160 -0
  283. package/.claude/helpers/post-commit +16 -0
  284. package/.claude/helpers/pre-commit +26 -0
  285. package/.claude/helpers/quick-start.sh +19 -0
  286. package/.claude/helpers/router.js +105 -0
  287. package/.claude/helpers/ruflo-hook.cjs +59 -0
  288. package/.claude/helpers/security-scanner.sh +127 -0
  289. package/.claude/helpers/session.js +157 -0
  290. package/.claude/helpers/setup-mcp.sh +18 -0
  291. package/.claude/helpers/standard-checkpoint-hooks.sh +189 -0
  292. package/.claude/helpers/statusline-hook.sh +21 -0
  293. package/.claude/helpers/statusline.cjs +693 -0
  294. package/.claude/helpers/statusline.js +352 -0
  295. package/.claude/helpers/swarm-comms.sh +353 -0
  296. package/.claude/helpers/swarm-hooks.sh +761 -0
  297. package/.claude/helpers/swarm-monitor.sh +211 -0
  298. package/.claude/helpers/sync-v3-metrics.sh +245 -0
  299. package/.claude/helpers/update-v3-progress.sh +166 -0
  300. package/.claude/helpers/v3-quick-status.sh +58 -0
  301. package/.claude/helpers/v3.sh +111 -0
  302. package/.claude/helpers/validate-v3-config.sh +216 -0
  303. package/.claude/helpers/worker-manager.sh +170 -0
  304. package/.claude/settings.json +285 -0
  305. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  306. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  307. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  308. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  309. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  310. package/.claude/skills/auto-deploy/SKILL.md +31 -0
  311. package/.claude/skills/autosycn/SKILL.md +30 -0
  312. package/.claude/skills/browser/SKILL.md +204 -0
  313. package/.claude/skills/dual-mode/README.md +71 -0
  314. package/.claude/skills/dual-mode/dual-collect.md +103 -0
  315. package/.claude/skills/dual-mode/dual-coordinate.md +85 -0
  316. package/.claude/skills/dual-mode/dual-spawn.md +81 -0
  317. package/.claude/skills/flow-nexus-neural/SKILL.md +727 -0
  318. package/.claude/skills/flow-nexus-platform/SKILL.md +1154 -0
  319. package/.claude/skills/flow-nexus-swarm/SKILL.md +604 -0
  320. package/.claude/skills/github-code-review/SKILL.md +1125 -0
  321. package/.claude/skills/github-multi-repo/SKILL.md +862 -0
  322. package/.claude/skills/github-project-management/SKILL.md +1262 -0
  323. package/.claude/skills/github-release-management/SKILL.md +1064 -0
  324. package/.claude/skills/github-workflow-automation/SKILL.md +1047 -0
  325. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  326. package/.claude/skills/mop-help/SKILL.md +35 -0
  327. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  328. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  329. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  330. package/.claude/skills/skill-builder/SKILL.md +910 -0
  331. package/.claude/skills/sparc-methodology/SKILL.md +1106 -0
  332. package/.claude/skills/stream-chain/SKILL.md +560 -0
  333. package/.claude/skills/swarm-advanced/SKILL.md +970 -0
  334. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  335. package/.claude/skills/v3-cli-modernization/SKILL.md +872 -0
  336. package/.claude/skills/v3-core-implementation/SKILL.md +797 -0
  337. package/.claude/skills/v3-ddd-architecture/SKILL.md +442 -0
  338. package/.claude/skills/v3-integration-deep/SKILL.md +241 -0
  339. package/.claude/skills/v3-mcp-optimization/SKILL.md +777 -0
  340. package/.claude/skills/v3-memory-unification/SKILL.md +174 -0
  341. package/.claude/skills/v3-performance-optimization/SKILL.md +390 -0
  342. package/.claude/skills/v3-security-overhaul/SKILL.md +82 -0
  343. package/.claude/skills/v3-swarm-coordination/SKILL.md +340 -0
  344. package/.claude/skills/verification-quality/SKILL.md +691 -0
  345. package/.claude-flow/CAPABILITIES.md +403 -0
  346. package/.claude-flow/config.yaml +43 -0
  347. package/.claude-flow/metrics/learning.json +17 -0
  348. package/.claude-flow/metrics/swarm-activity.json +18 -0
  349. package/.claude-flow/metrics/v3-progress.json +26 -0
  350. package/.claude-flow/security/audit-status.json +8 -0
  351. package/.codex/config.toml +39 -0
  352. package/.gemini/settings.json +49 -0
  353. package/.mcp.json +55 -0
  354. package/.memoryofplanet/PROTOCOL.md +436 -0
  355. package/.memoryofplanet/STATE.json +561 -0
  356. package/.memoryofplanet/config/defaults.json +46 -0
  357. package/.memoryofplanet/config/team.json +7 -0
  358. package/.memoryofplanet/scripts/burhan-mop.mjs +124 -0
  359. package/.memoryofplanet/scripts/mop-auto-deploy.mjs +153 -0
  360. package/.memoryofplanet/scripts/mop-autosycn.mjs +617 -0
  361. package/.memoryofplanet/scripts/mop-core.mjs +774 -0
  362. package/.memoryofplanet/scripts/mop-workflow.mjs +348 -0
  363. package/.memoryofplanet/templates/artifacts/adversarial-review.md +33 -0
  364. package/.memoryofplanet/templates/artifacts/architecture.md +28 -0
  365. package/.memoryofplanet/templates/artifacts/decision-log.md +21 -0
  366. package/.memoryofplanet/templates/artifacts/handoff.md +21 -0
  367. package/.memoryofplanet/templates/artifacts/implementation-notes.md +21 -0
  368. package/.memoryofplanet/templates/artifacts/prd.md +29 -0
  369. package/.memoryofplanet/templates/artifacts/product-brief.md +30 -0
  370. package/.memoryofplanet/templates/artifacts/readiness-report.md +25 -0
  371. package/.memoryofplanet/templates/artifacts/release-notes.md +21 -0
  372. package/.memoryofplanet/templates/artifacts/review.md +21 -0
  373. package/.memoryofplanet/templates/artifacts/story.md +25 -0
  374. package/.memoryofplanet/templates/artifacts/ux-spec.md +32 -0
  375. package/AGENTS.md +126 -0
  376. package/CLAUDE.md +235 -0
  377. package/GEMINI.md +19 -0
  378. package/README.md +1096 -0
  379. package/bin/burhan-mop.mjs +2 -0
  380. package/bin/mop-core.mjs +2 -0
  381. package/bin/mop-workflow.mjs +2 -0
  382. package/package.json +66 -0
@@ -0,0 +1,352 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * RuFlo Statusline Generator
4
+ * Displays real-time V3 implementation progress and system status.
5
+ * Version is read from the installed @claude-flow/cli package.json at
6
+ * runtime — #1892 fix: previously hardcoded to V3.5 which drifted from
7
+ * the actual installed alpha series.
8
+ *
9
+ * Usage: node statusline.js [--json] [--compact]
10
+ */
11
+
12
+ const fs = require('fs');
13
+ const path = require('path');
14
+ const { execSync, execFileSync } = require('child_process');
15
+
16
+ // #1892 — derive RuFlo banner version from the installed cli package.json
17
+ // so the statusline never drifts from `ruflo doctor`. Falls back to a
18
+ // generic "RuFlo" label only if every resolution path fails.
19
+ function resolveBannerVersion() {
20
+ const candidates = [
21
+ // Local-checkout / monorepo case
22
+ path.join(__dirname, '..', '..', 'package.json'),
23
+ // npm-installed-as-dep case
24
+ path.join(__dirname, '..', '..', '..', '@claude-flow', 'cli', 'package.json'),
25
+ // npm-installed-globally case
26
+ path.join(__dirname, '..', '..', '..', 'cli', 'package.json'),
27
+ ];
28
+ for (const p of candidates) {
29
+ try {
30
+ const pkg = JSON.parse(fs.readFileSync(p, 'utf-8'));
31
+ if (pkg.name && pkg.name.includes('claude-flow') && typeof pkg.version === 'string') {
32
+ // Render as "V<major>.<minor>" so the banner stays compact —
33
+ // patch+pre-release detail still shows under `doctor`.
34
+ const m = pkg.version.match(/^(\d+)\.(\d+)/);
35
+ if (m) return `V${m[1]}.${m[2]}`;
36
+ return `V${pkg.version}`;
37
+ }
38
+ } catch {/* try next */}
39
+ }
40
+ return ''; // empty → header just says "RuFlo"
41
+ }
42
+ const BANNER_VERSION = resolveBannerVersion();
43
+
44
+ // Configuration
45
+ const CONFIG = {
46
+ enabled: true,
47
+ showProgress: true,
48
+ showSecurity: true,
49
+ showSwarm: true,
50
+ showHooks: true,
51
+ showPerformance: true,
52
+ refreshInterval: 30000,
53
+ maxAgents: 15,
54
+ topology: 'hierarchical-mesh',
55
+ };
56
+
57
+ // ANSI colors
58
+ const c = {
59
+ reset: '\x1b[0m',
60
+ bold: '\x1b[1m',
61
+ dim: '\x1b[2m',
62
+ red: '\x1b[0;31m',
63
+ green: '\x1b[0;32m',
64
+ yellow: '\x1b[0;33m',
65
+ blue: '\x1b[0;34m',
66
+ purple: '\x1b[0;35m',
67
+ cyan: '\x1b[0;36m',
68
+ brightRed: '\x1b[1;31m',
69
+ brightGreen: '\x1b[1;32m',
70
+ brightYellow: '\x1b[1;33m',
71
+ brightBlue: '\x1b[1;34m',
72
+ brightPurple: '\x1b[1;35m',
73
+ brightCyan: '\x1b[1;36m',
74
+ brightWhite: '\x1b[1;37m',
75
+ };
76
+
77
+ // Get user info
78
+ function getUserInfo() {
79
+ let name = 'user';
80
+ let gitBranch = '';
81
+ let modelName = 'Opus 4.6 (1M context)';
82
+
83
+ // audit_1776853149979: previously used execSync with a shell string for git
84
+ // commands. Switched to execFileSync('git', argv) so there is no shell
85
+ // interpretation — eliminates the *class* of injection regardless of whether
86
+ // user input ever reaches these args (defense in depth). Errors are caught
87
+ // and the defaults above remain.
88
+ try {
89
+ name = execFileSync('git', ['config', 'user.name'], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] }).trim() || 'user';
90
+ } catch { /* not in a repo / no name set — keep default */ }
91
+ try {
92
+ gitBranch = execFileSync('git', ['branch', '--show-current'], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
93
+ } catch { /* not in a repo — keep empty */ }
94
+
95
+ return { name, gitBranch, modelName };
96
+ }
97
+
98
+ // Get learning stats from memory database
99
+ function getLearningStats() {
100
+ const memoryPaths = [
101
+ path.join(process.cwd(), '.swarm', 'memory.db'),
102
+ path.join(process.cwd(), '.claude', 'memory.db'),
103
+ path.join(process.cwd(), 'data', 'memory.db'),
104
+ ];
105
+
106
+ let patterns = 0;
107
+ let sessions = 0;
108
+ let trajectories = 0;
109
+
110
+ // Try to read from sqlite database
111
+ for (const dbPath of memoryPaths) {
112
+ if (fs.existsSync(dbPath)) {
113
+ try {
114
+ // Count entries in memory file (rough estimate from file size)
115
+ const stats = fs.statSync(dbPath);
116
+ const sizeKB = stats.size / 1024;
117
+ // Estimate: ~2KB per pattern on average
118
+ patterns = Math.floor(sizeKB / 2);
119
+ sessions = Math.max(1, Math.floor(patterns / 10));
120
+ trajectories = Math.floor(patterns / 5);
121
+ break;
122
+ } catch (e) {
123
+ // Ignore
124
+ }
125
+ }
126
+ }
127
+
128
+ // Also check for session files
129
+ const sessionsPath = path.join(process.cwd(), '.claude', 'sessions');
130
+ if (fs.existsSync(sessionsPath)) {
131
+ try {
132
+ const sessionFiles = fs.readdirSync(sessionsPath).filter(f => f.endsWith('.json'));
133
+ sessions = Math.max(sessions, sessionFiles.length);
134
+ } catch (e) {
135
+ // Ignore
136
+ }
137
+ }
138
+
139
+ return { patterns, sessions, trajectories };
140
+ }
141
+
142
+ // Get V3 progress from learning state (grows as system learns)
143
+ function getV3Progress() {
144
+ const learning = getLearningStats();
145
+
146
+ // DDD progress based on actual learned patterns
147
+ // New install: 0 patterns = 0/5 domains, 0% DDD
148
+ // As patterns grow: 10+ patterns = 1 domain, 50+ = 2, 100+ = 3, 200+ = 4, 500+ = 5
149
+ let domainsCompleted = 0;
150
+ if (learning.patterns >= 500) domainsCompleted = 5;
151
+ else if (learning.patterns >= 200) domainsCompleted = 4;
152
+ else if (learning.patterns >= 100) domainsCompleted = 3;
153
+ else if (learning.patterns >= 50) domainsCompleted = 2;
154
+ else if (learning.patterns >= 10) domainsCompleted = 1;
155
+
156
+ const totalDomains = 5;
157
+ const dddProgress = Math.min(100, Math.floor((domainsCompleted / totalDomains) * 100));
158
+
159
+ return {
160
+ domainsCompleted,
161
+ totalDomains,
162
+ dddProgress,
163
+ patternsLearned: learning.patterns,
164
+ sessionsCompleted: learning.sessions
165
+ };
166
+ }
167
+
168
+ // Get security status based on actual scans
169
+ function getSecurityStatus() {
170
+ // Check for security scan results in memory
171
+ const scanResultsPath = path.join(process.cwd(), '.claude', 'security-scans');
172
+ let cvesFixed = 0;
173
+ const totalCves = 3;
174
+
175
+ if (fs.existsSync(scanResultsPath)) {
176
+ try {
177
+ const scans = fs.readdirSync(scanResultsPath).filter(f => f.endsWith('.json'));
178
+ // Each successful scan file = 1 CVE addressed
179
+ cvesFixed = Math.min(totalCves, scans.length);
180
+ } catch (e) {
181
+ // Ignore
182
+ }
183
+ }
184
+
185
+ // Also check .swarm/security for audit results
186
+ const auditPath = path.join(process.cwd(), '.swarm', 'security');
187
+ if (fs.existsSync(auditPath)) {
188
+ try {
189
+ const audits = fs.readdirSync(auditPath).filter(f => f.includes('audit'));
190
+ cvesFixed = Math.min(totalCves, Math.max(cvesFixed, audits.length));
191
+ } catch (e) {
192
+ // Ignore
193
+ }
194
+ }
195
+
196
+ const status = cvesFixed >= totalCves ? 'CLEAN' : cvesFixed > 0 ? 'IN_PROGRESS' : 'PENDING';
197
+
198
+ return {
199
+ status,
200
+ cvesFixed,
201
+ totalCves,
202
+ };
203
+ }
204
+
205
+ // Get swarm status
206
+ function getSwarmStatus() {
207
+ let activeAgents = 0;
208
+ let coordinationActive = false;
209
+
210
+ try {
211
+ const ps = execSync('ps aux 2>/dev/null | grep -c agentic-flow || echo "0"', { encoding: 'utf-8' });
212
+ activeAgents = Math.max(0, parseInt(ps.trim()) - 1);
213
+ coordinationActive = activeAgents > 0;
214
+ } catch (e) {
215
+ // Ignore errors
216
+ }
217
+
218
+ return {
219
+ activeAgents,
220
+ maxAgents: CONFIG.maxAgents,
221
+ coordinationActive,
222
+ };
223
+ }
224
+
225
+ // Get system metrics (dynamic based on actual state)
226
+ function getSystemMetrics() {
227
+ let memoryMB = 0;
228
+ let subAgents = 0;
229
+
230
+ try {
231
+ const mem = execSync('ps aux | grep -E "(node|agentic|claude)" | grep -v grep | awk \'{sum += \$6} END {print int(sum/1024)}\'', { encoding: 'utf-8' });
232
+ memoryMB = parseInt(mem.trim()) || 0;
233
+ } catch (e) {
234
+ // Fallback
235
+ memoryMB = Math.floor(process.memoryUsage().heapUsed / 1024 / 1024);
236
+ }
237
+
238
+ // Get learning stats for intelligence %
239
+ const learning = getLearningStats();
240
+
241
+ // Intelligence % based on learned patterns (0 patterns = 0%, 1000+ = 100%)
242
+ const intelligencePct = Math.min(100, Math.floor((learning.patterns / 10) * 1));
243
+
244
+ // Context % based on session history (0 sessions = 0%, grows with usage)
245
+ const contextPct = Math.min(100, Math.floor(learning.sessions * 5));
246
+
247
+ // Count active sub-agents from process list
248
+ try {
249
+ const agents = execSync('ps aux 2>/dev/null | grep -c "claude-flow.*agent" || echo "0"', { encoding: 'utf-8' });
250
+ subAgents = Math.max(0, parseInt(agents.trim()) - 1);
251
+ } catch (e) {
252
+ // Ignore
253
+ }
254
+
255
+ return {
256
+ memoryMB,
257
+ contextPct,
258
+ intelligencePct,
259
+ subAgents,
260
+ };
261
+ }
262
+
263
+ // Generate progress bar
264
+ function progressBar(current, total) {
265
+ const width = 5;
266
+ const filled = Math.round((current / total) * width);
267
+ const empty = width - filled;
268
+ return '[' + '\u25CF'.repeat(filled) + '\u25CB'.repeat(empty) + ']';
269
+ }
270
+
271
+ // Generate full statusline
272
+ function generateStatusline() {
273
+ const user = getUserInfo();
274
+ const progress = getV3Progress();
275
+ const security = getSecurityStatus();
276
+ const swarm = getSwarmStatus();
277
+ const system = getSystemMetrics();
278
+ const lines = [];
279
+
280
+ // Header Line — #1892: BANNER_VERSION resolved at module load from package.json
281
+ let header = `${c.bold}${c.brightPurple}▊ RuFlo${BANNER_VERSION ? ' ' + BANNER_VERSION : ''} ${c.reset}`;
282
+ header += `${swarm.coordinationActive ? c.brightCyan : c.dim}● ${c.brightCyan}${user.name}${c.reset}`;
283
+ if (user.gitBranch) {
284
+ header += ` ${c.dim}│${c.reset} ${c.brightBlue}⎇ ${user.gitBranch}${c.reset}`;
285
+ }
286
+ header += ` ${c.dim}│${c.reset} ${c.purple}${user.modelName}${c.reset}`;
287
+ lines.push(header);
288
+
289
+ // Separator
290
+ lines.push(`${c.dim}─────────────────────────────────────────────────────${c.reset}`);
291
+
292
+ // Line 1: DDD Domain Progress
293
+ const domainsColor = progress.domainsCompleted >= 3 ? c.brightGreen : progress.domainsCompleted > 0 ? c.yellow : c.red;
294
+ lines.push(
295
+ `${c.brightCyan}🏗️ DDD Domains${c.reset} ${progressBar(progress.domainsCompleted, progress.totalDomains)} ` +
296
+ `${domainsColor}${progress.domainsCompleted}${c.reset}/${c.brightWhite}${progress.totalDomains}${c.reset} ` +
297
+ `${c.brightYellow}⚡ 1.0x${c.reset} ${c.dim}→${c.reset} ${c.brightYellow}2.49x-7.47x${c.reset}`
298
+ );
299
+
300
+ // Line 2: Swarm + CVE + Memory + Context + Intelligence
301
+ const swarmIndicator = swarm.coordinationActive ? `${c.brightGreen}◉${c.reset}` : `${c.dim}○${c.reset}`;
302
+ const agentsColor = swarm.activeAgents > 0 ? c.brightGreen : c.red;
303
+ let securityIcon = security.status === 'CLEAN' ? '🟢' : security.status === 'IN_PROGRESS' ? '🟡' : '🔴';
304
+ let securityColor = security.status === 'CLEAN' ? c.brightGreen : security.status === 'IN_PROGRESS' ? c.brightYellow : c.brightRed;
305
+
306
+ lines.push(
307
+ `${c.brightYellow}🤖 Swarm${c.reset} ${swarmIndicator} [${agentsColor}${String(swarm.activeAgents).padStart(2)}${c.reset}/${c.brightWhite}${swarm.maxAgents}${c.reset}] ` +
308
+ `${c.brightPurple}👥 ${system.subAgents}${c.reset} ` +
309
+ `${securityIcon} ${securityColor}CVE ${security.cvesFixed}${c.reset}/${c.brightWhite}${security.totalCves}${c.reset} ` +
310
+ `${c.brightCyan}💾 ${system.memoryMB}MB${c.reset} ` +
311
+ `${c.brightGreen}📂 ${String(system.contextPct).padStart(3)}%${c.reset} ` +
312
+ `${c.dim}🧠 ${String(system.intelligencePct).padStart(3)}%${c.reset}`
313
+ );
314
+
315
+ // Line 3: Architecture status
316
+ const dddColor = progress.dddProgress >= 50 ? c.brightGreen : progress.dddProgress > 0 ? c.yellow : c.red;
317
+ lines.push(
318
+ `${c.brightPurple}🔧 Architecture${c.reset} ` +
319
+ `${c.cyan}DDD${c.reset} ${dddColor}●${String(progress.dddProgress).padStart(3)}%${c.reset} ${c.dim}│${c.reset} ` +
320
+ `${c.cyan}Security${c.reset} ${securityColor}●${security.status}${c.reset} ${c.dim}│${c.reset} ` +
321
+ `${c.cyan}Memory${c.reset} ${c.brightGreen}●AgentDB${c.reset} ${c.dim}│${c.reset} ` +
322
+ `${c.cyan}Integration${c.reset} ${swarm.coordinationActive ? c.brightCyan : c.dim}●${c.reset}`
323
+ );
324
+
325
+ return lines.join('\n');
326
+ }
327
+
328
+ // Generate JSON data
329
+ function generateJSON() {
330
+ return {
331
+ user: getUserInfo(),
332
+ v3Progress: getV3Progress(),
333
+ security: getSecurityStatus(),
334
+ swarm: getSwarmStatus(),
335
+ system: getSystemMetrics(),
336
+ performance: {
337
+ flashAttentionTarget: '2.49x-7.47x',
338
+ searchImprovement: '150x-12,500x',
339
+ memoryReduction: '50-75%',
340
+ },
341
+ lastUpdated: new Date().toISOString(),
342
+ };
343
+ }
344
+
345
+ // Main
346
+ if (process.argv.includes('--json')) {
347
+ console.log(JSON.stringify(generateJSON(), null, 2));
348
+ } else if (process.argv.includes('--compact')) {
349
+ console.log(JSON.stringify(generateJSON()));
350
+ } else {
351
+ console.log(generateStatusline());
352
+ }
@@ -0,0 +1,353 @@
1
+ #!/bin/bash
2
+ # Claude Flow V3 - Optimized Swarm Communications
3
+ # Non-blocking, batched, priority-based inter-agent messaging
4
+
5
+ set -euo pipefail
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
9
+ SWARM_DIR="$PROJECT_ROOT/.claude-flow/swarm"
10
+ QUEUE_DIR="$SWARM_DIR/queue"
11
+ BATCH_DIR="$SWARM_DIR/batch"
12
+ POOL_FILE="$SWARM_DIR/connection-pool.json"
13
+
14
+ mkdir -p "$QUEUE_DIR" "$BATCH_DIR"
15
+
16
+ # Priority levels
17
+ PRIORITY_CRITICAL=0
18
+ PRIORITY_HIGH=1
19
+ PRIORITY_NORMAL=2
20
+ PRIORITY_LOW=3
21
+
22
+ # Batch settings
23
+ BATCH_SIZE=10
24
+ BATCH_TIMEOUT_MS=100
25
+
26
+ # =============================================================================
27
+ # NON-BLOCKING MESSAGE QUEUE
28
+ # =============================================================================
29
+
30
+ # Enqueue message (instant return, async processing)
31
+ enqueue() {
32
+ local to="${1:-*}"
33
+ local content="${2:-}"
34
+ local priority="${3:-$PRIORITY_NORMAL}"
35
+ local msg_type="${4:-context}"
36
+
37
+ local msg_id="msg_$(date +%s%N)"
38
+ local timestamp=$(date +%s)
39
+
40
+ # Write to priority queue (non-blocking)
41
+ cat > "$QUEUE_DIR/${priority}_${msg_id}.json" << EOF
42
+ {"id":"$msg_id","to":"$to","content":"$content","type":"$msg_type","priority":$priority,"timestamp":$timestamp}
43
+ EOF
44
+
45
+ echo "$msg_id"
46
+ }
47
+
48
+ # Process queue in background
49
+ process_queue() {
50
+ local processed=0
51
+
52
+ # Process by priority (0=critical first)
53
+ for priority in 0 1 2 3; do
54
+ shopt -s nullglob
55
+ for msg_file in "$QUEUE_DIR"/${priority}_*.json; do
56
+ [ -f "$msg_file" ] || continue
57
+
58
+ # Process message
59
+ local msg=$(cat "$msg_file")
60
+ local to=$(echo "$msg" | jq -r '.to' 2>/dev/null)
61
+
62
+ # Route to agent mailbox
63
+ if [ "$to" != "*" ]; then
64
+ mkdir -p "$SWARM_DIR/mailbox/$to"
65
+ mv "$msg_file" "$SWARM_DIR/mailbox/$to/"
66
+ else
67
+ # Broadcast - copy to all agent mailboxes
68
+ for agent_dir in "$SWARM_DIR/mailbox"/*; do
69
+ [ -d "$agent_dir" ] && cp "$msg_file" "$agent_dir/"
70
+ done
71
+ rm "$msg_file"
72
+ fi
73
+
74
+ processed=$((processed + 1))
75
+ done
76
+ done
77
+
78
+ echo "$processed"
79
+ }
80
+
81
+ # =============================================================================
82
+ # MESSAGE BATCHING
83
+ # =============================================================================
84
+
85
+ # Add to batch (collects messages, flushes when full or timeout)
86
+ batch_add() {
87
+ local agent_id="${1:-}"
88
+ local content="${2:-}"
89
+ local batch_file="$BATCH_DIR/${agent_id}.batch"
90
+
91
+ # Append to batch
92
+ echo "$content" >> "$batch_file"
93
+
94
+ # Check batch size
95
+ local count=$(wc -l < "$batch_file" 2>/dev/null || echo "0")
96
+
97
+ if [ "$count" -ge "$BATCH_SIZE" ]; then
98
+ batch_flush "$agent_id"
99
+ fi
100
+ }
101
+
102
+ # Flush batch (send all at once)
103
+ batch_flush() {
104
+ local agent_id="${1:-}"
105
+ local batch_file="$BATCH_DIR/${agent_id}.batch"
106
+
107
+ if [ -f "$batch_file" ]; then
108
+ local content=$(cat "$batch_file")
109
+ rm "$batch_file"
110
+
111
+ # Send as single batched message
112
+ enqueue "$agent_id" "$content" "$PRIORITY_NORMAL" "batch"
113
+ fi
114
+ }
115
+
116
+ # Flush all pending batches
117
+ batch_flush_all() {
118
+ shopt -s nullglob
119
+ for batch_file in "$BATCH_DIR"/*.batch; do
120
+ [ -f "$batch_file" ] || continue
121
+ local agent_id=$(basename "$batch_file" .batch)
122
+ batch_flush "$agent_id"
123
+ done
124
+ }
125
+
126
+ # =============================================================================
127
+ # CONNECTION POOLING
128
+ # =============================================================================
129
+
130
+ # Initialize connection pool
131
+ pool_init() {
132
+ cat > "$POOL_FILE" << EOF
133
+ {
134
+ "maxConnections": 10,
135
+ "activeConnections": 0,
136
+ "available": [],
137
+ "inUse": [],
138
+ "lastUpdated": "$(date -Iseconds)"
139
+ }
140
+ EOF
141
+ }
142
+
143
+ # Get connection from pool (or create new)
144
+ pool_acquire() {
145
+ local agent_id="${1:-}"
146
+
147
+ if [ ! -f "$POOL_FILE" ]; then
148
+ pool_init
149
+ fi
150
+
151
+ # Check for available connection
152
+ local available=$(jq -r '.available[0] // ""' "$POOL_FILE" 2>/dev/null)
153
+
154
+ if [ -n "$available" ]; then
155
+ # Reuse existing connection
156
+ jq ".available = .available[1:] | .inUse += [\"$available\"]" "$POOL_FILE" > "$POOL_FILE.tmp" && mv "$POOL_FILE.tmp" "$POOL_FILE"
157
+ echo "$available"
158
+ else
159
+ # Create new connection ID
160
+ local conn_id="conn_$(date +%s%N | tail -c 8)"
161
+ jq ".inUse += [\"$conn_id\"] | .activeConnections += 1" "$POOL_FILE" > "$POOL_FILE.tmp" && mv "$POOL_FILE.tmp" "$POOL_FILE"
162
+ echo "$conn_id"
163
+ fi
164
+ }
165
+
166
+ # Release connection back to pool
167
+ pool_release() {
168
+ local conn_id="${1:-}"
169
+
170
+ if [ -f "$POOL_FILE" ]; then
171
+ jq ".inUse = (.inUse | map(select(. != \"$conn_id\"))) | .available += [\"$conn_id\"]" "$POOL_FILE" > "$POOL_FILE.tmp" && mv "$POOL_FILE.tmp" "$POOL_FILE"
172
+ fi
173
+ }
174
+
175
+ # =============================================================================
176
+ # ASYNC PATTERN BROADCAST
177
+ # =============================================================================
178
+
179
+ # Broadcast pattern to swarm (non-blocking)
180
+ broadcast_pattern_async() {
181
+ local strategy="${1:-}"
182
+ local domain="${2:-general}"
183
+ local quality="${3:-0.7}"
184
+
185
+ # Fire and forget
186
+ (
187
+ local broadcast_id="pattern_$(date +%s%N)"
188
+
189
+ # Write pattern broadcast
190
+ mkdir -p "$SWARM_DIR/patterns"
191
+ cat > "$SWARM_DIR/patterns/$broadcast_id.json" << EOF
192
+ {"id":"$broadcast_id","strategy":"$strategy","domain":"$domain","quality":$quality,"timestamp":$(date +%s),"status":"pending"}
193
+ EOF
194
+
195
+ # Notify all agents via queue
196
+ enqueue "*" "{\"type\":\"pattern_broadcast\",\"id\":\"$broadcast_id\"}" "$PRIORITY_HIGH" "event"
197
+
198
+ ) &
199
+
200
+ echo "pattern_broadcast_queued"
201
+ }
202
+
203
+ # =============================================================================
204
+ # OPTIMIZED CONSENSUS
205
+ # =============================================================================
206
+
207
+ # Start consensus (non-blocking)
208
+ start_consensus_async() {
209
+ local question="${1:-}"
210
+ local options="${2:-}"
211
+ local timeout="${3:-30}"
212
+
213
+ (
214
+ local consensus_id="consensus_$(date +%s%N)"
215
+ mkdir -p "$SWARM_DIR/consensus"
216
+
217
+ cat > "$SWARM_DIR/consensus/$consensus_id.json" << EOF
218
+ {"id":"$consensus_id","question":"$question","options":"$options","votes":{},"timeout":$timeout,"created":$(date +%s),"status":"open"}
219
+ EOF
220
+
221
+ # Notify agents
222
+ enqueue "*" "{\"type\":\"consensus_request\",\"id\":\"$consensus_id\"}" "$PRIORITY_HIGH" "event"
223
+
224
+ # Auto-resolve after timeout (background)
225
+ (
226
+ sleep "$timeout"
227
+ if [ -f "$SWARM_DIR/consensus/$consensus_id.json" ]; then
228
+ jq '.status = "resolved"' "$SWARM_DIR/consensus/$consensus_id.json" > "$SWARM_DIR/consensus/$consensus_id.json.tmp" && mv "$SWARM_DIR/consensus/$consensus_id.json.tmp" "$SWARM_DIR/consensus/$consensus_id.json"
229
+ fi
230
+ ) &
231
+
232
+ echo "$consensus_id"
233
+ ) &
234
+ }
235
+
236
+ # Vote on consensus (non-blocking)
237
+ vote_async() {
238
+ local consensus_id="${1:-}"
239
+ local vote="${2:-}"
240
+ local agent_id="${AGENTIC_FLOW_AGENT_ID:-anonymous}"
241
+
242
+ (
243
+ local file="$SWARM_DIR/consensus/$consensus_id.json"
244
+ if [ -f "$file" ]; then
245
+ jq ".votes[\"$agent_id\"] = \"$vote\"" "$file" > "$file.tmp" && mv "$file.tmp" "$file"
246
+ fi
247
+ ) &
248
+ }
249
+
250
+ # =============================================================================
251
+ # PERFORMANCE METRICS
252
+ # =============================================================================
253
+
254
+ get_comms_stats() {
255
+ local queued=$(ls "$QUEUE_DIR"/*.json 2>/dev/null | wc -l | tr -d '[:space:]')
256
+ queued=${queued:-0}
257
+ local batched=$(ls "$BATCH_DIR"/*.batch 2>/dev/null | wc -l | tr -d '[:space:]')
258
+ batched=${batched:-0}
259
+ local patterns=$(ls "$SWARM_DIR/patterns"/*.json 2>/dev/null | wc -l | tr -d '[:space:]')
260
+ patterns=${patterns:-0}
261
+ local consensus=$(ls "$SWARM_DIR/consensus"/*.json 2>/dev/null | wc -l | tr -d '[:space:]')
262
+ consensus=${consensus:-0}
263
+
264
+ local pool_active=0
265
+ if [ -f "$POOL_FILE" ]; then
266
+ pool_active=$(jq '.activeConnections // 0' "$POOL_FILE" 2>/dev/null | tr -d '[:space:]')
267
+ pool_active=${pool_active:-0}
268
+ fi
269
+
270
+ echo "{\"queue\":$queued,\"batch\":$batched,\"patterns\":$patterns,\"consensus\":$consensus,\"pool\":$pool_active}"
271
+ }
272
+
273
+ # =============================================================================
274
+ # MAIN DISPATCHER
275
+ # =============================================================================
276
+
277
+ case "${1:-help}" in
278
+ # Queue operations
279
+ "enqueue"|"send")
280
+ enqueue "${2:-*}" "${3:-}" "${4:-2}" "${5:-context}"
281
+ ;;
282
+ "process")
283
+ process_queue
284
+ ;;
285
+
286
+ # Batch operations
287
+ "batch")
288
+ batch_add "${2:-}" "${3:-}"
289
+ ;;
290
+ "flush")
291
+ batch_flush_all
292
+ ;;
293
+
294
+ # Pool operations
295
+ "acquire")
296
+ pool_acquire "${2:-}"
297
+ ;;
298
+ "release")
299
+ pool_release "${2:-}"
300
+ ;;
301
+
302
+ # Async operations
303
+ "broadcast-pattern")
304
+ broadcast_pattern_async "${2:-}" "${3:-general}" "${4:-0.7}"
305
+ ;;
306
+ "consensus")
307
+ start_consensus_async "${2:-}" "${3:-}" "${4:-30}"
308
+ ;;
309
+ "vote")
310
+ vote_async "${2:-}" "${3:-}"
311
+ ;;
312
+
313
+ # Stats
314
+ "stats")
315
+ get_comms_stats
316
+ ;;
317
+
318
+ "help"|*)
319
+ cat << 'EOF'
320
+ Claude Flow V3 - Optimized Swarm Communications
321
+
322
+ Non-blocking, batched, priority-based inter-agent messaging.
323
+
324
+ Usage: swarm-comms.sh <command> [args]
325
+
326
+ Queue (Non-blocking):
327
+ enqueue <to> <content> [priority] [type] Add to queue (instant return)
328
+ process Process pending queue
329
+
330
+ Batching:
331
+ batch <agent> <content> Add to batch
332
+ flush Flush all batches
333
+
334
+ Connection Pool:
335
+ acquire [agent] Get connection from pool
336
+ release <conn_id> Return connection to pool
337
+
338
+ Async Operations:
339
+ broadcast-pattern <strategy> [domain] [quality] Async pattern broadcast
340
+ consensus <question> <options> [timeout] Start async consensus
341
+ vote <consensus_id> <vote> Vote (non-blocking)
342
+
343
+ Stats:
344
+ stats Get communication stats
345
+
346
+ Priority Levels:
347
+ 0 = Critical (processed first)
348
+ 1 = High
349
+ 2 = Normal (default)
350
+ 3 = Low
351
+ EOF
352
+ ;;
353
+ esac