monomind 1.10.47 → 1.10.55

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 (414) hide show
  1. package/.claude/agents/optimization/benchmark-suite.md +2 -0
  2. package/.claude/agents/optimization/load-balancer.md +2 -0
  3. package/.claude/agents/optimization/performance-monitor.md +2 -0
  4. package/.claude/agents/optimization/resource-allocator.md +3 -1
  5. package/.claude/agents/optimization/topology-optimizer.md +2 -0
  6. package/.claude/commands/mastermind/_repeat.md +21 -0
  7. package/.claude/commands/mastermind/_taskfile.md +235 -0
  8. package/.claude/commands/mastermind/adr.md +11 -0
  9. package/.claude/commands/mastermind/approve.md +94 -0
  10. package/.claude/commands/mastermind/autodev.md +32 -0
  11. package/.claude/commands/mastermind/budget.md +7 -0
  12. package/.claude/commands/mastermind/code-review.md +317 -0
  13. package/.claude/commands/mastermind/createorg.md +40 -1
  14. package/.claude/commands/mastermind/createtask.md +383 -0
  15. package/.claude/commands/mastermind/debug.md +22 -0
  16. package/.claude/commands/mastermind/design.md +20 -0
  17. package/.claude/commands/mastermind/do.md +526 -0
  18. package/.claude/commands/mastermind/execute.md +20 -0
  19. package/.claude/commands/mastermind/finish.md +20 -0
  20. package/.claude/commands/mastermind/graph-status.md +7 -0
  21. package/.claude/commands/mastermind/help.md +118 -0
  22. package/.claude/commands/mastermind/ideate.md +261 -0
  23. package/.claude/commands/mastermind/improve.md +345 -0
  24. package/.claude/commands/mastermind/loops.md +7 -0
  25. package/.claude/commands/mastermind/master.md +186 -6
  26. package/.claude/commands/mastermind/memory.md +230 -0
  27. package/.claude/commands/mastermind/plan.md +26 -0
  28. package/.claude/commands/mastermind/receive-review.md +20 -0
  29. package/.claude/commands/mastermind/repeat.md +257 -0
  30. package/.claude/commands/mastermind/runorg.md +3 -0
  31. package/.claude/commands/mastermind/skill-builder.md +20 -0
  32. package/.claude/commands/mastermind/specialagents.md +125 -0
  33. package/.claude/commands/mastermind/swarm.md +161 -0
  34. package/.claude/commands/mastermind/taskdev.md +26 -0
  35. package/.claude/commands/mastermind/tdd.md +22 -0
  36. package/.claude/commands/mastermind/techport.md +4 -0
  37. package/.claude/commands/mastermind/understand.md +139 -0
  38. package/.claude/commands/mastermind/verify.md +22 -0
  39. package/.claude/commands/mastermind/worktree.md +20 -0
  40. package/.claude/commands/monomind/do.md +52 -0
  41. package/.claude/commands/monomind/improve.md +2 -0
  42. package/.claude/helpers/handlers/graph-status-handler.cjs +2 -1
  43. package/.claude/helpers/handlers/route-handler.cjs +61 -11
  44. package/.claude/helpers/hook-handler.cjs +19 -0
  45. package/.claude/helpers/skill-registry.json +122 -51
  46. package/.claude/helpers/statusline.cjs +1 -1
  47. package/.claude/scheduled_tasks.lock +1 -0
  48. package/.claude/skills/agent-browser-testing/SKILL.md +522 -152
  49. package/.claude/skills/github-issue-triage/SKILL.md +354 -0
  50. package/.claude/skills/github-repo-recap/SKILL.md +207 -0
  51. package/.claude/skills/mastermind/_delegation.md +83 -0
  52. package/.claude/skills/mastermind/_protocol.md +14 -0
  53. package/.claude/skills/mastermind/approve.md +15 -7
  54. package/.claude/skills/mastermind/autodev.md +534 -0
  55. package/.claude/skills/mastermind/createorg.md +21 -5
  56. package/.claude/skills/mastermind/debug.md +232 -0
  57. package/.claude/skills/mastermind/design.md +187 -0
  58. package/.claude/skills/mastermind/execute.md +104 -0
  59. package/.claude/skills/mastermind/finish.md +251 -0
  60. package/.claude/skills/mastermind/plan.md +180 -0
  61. package/.claude/skills/mastermind/receive-review.md +213 -0
  62. package/.claude/skills/mastermind/runorg.md +23 -8
  63. package/.claude/skills/mastermind/skill-builder.md +274 -0
  64. package/.claude/skills/mastermind/taskdev.md +307 -0
  65. package/.claude/skills/mastermind/tdd.md +394 -0
  66. package/.claude/skills/mastermind/verify.md +196 -0
  67. package/.claude/skills/mastermind/worktree.md +160 -132
  68. package/.claude-plugin/docs/QUICKSTART.md +0 -3
  69. package/.claude-plugin/docs/STRUCTURE.md +1 -5
  70. package/.claude-plugin/scripts/verify.sh +0 -6
  71. package/README.md +320 -253
  72. package/package.json +1 -1
  73. package/packages/@monomind/cli/README.md +320 -253
  74. package/packages/@monomind/cli/dist/src/commands/analyze.js +9 -2
  75. package/packages/@monomind/cli/dist/src/commands/completions.js +1 -1
  76. package/packages/@monomind/cli/dist/src/commands/guidance.js +7 -7
  77. package/packages/@monomind/cli/dist/src/commands/hooks.js +16 -3
  78. package/packages/@monomind/cli/dist/src/commands/index.d.ts +3 -2
  79. package/packages/@monomind/cli/dist/src/commands/index.js +7 -0
  80. package/packages/@monomind/cli/dist/src/commands/init.js +47 -13
  81. package/packages/@monomind/cli/dist/src/commands/neural.js +100 -14
  82. package/packages/@monomind/cli/dist/src/commands/platforms.d.ts +11 -0
  83. package/packages/@monomind/cli/dist/src/commands/platforms.js +195 -0
  84. package/packages/@monomind/cli/dist/src/commands/update.js +6 -6
  85. package/packages/@monomind/cli/dist/src/init/executor.js +28 -0
  86. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +1 -1
  87. package/packages/@monomind/cli/dist/src/init/types.d.ts +1 -0
  88. package/packages/@monomind/cli/dist/src/mcp-server.js +92 -0
  89. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +52 -0
  90. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +106 -5
  91. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -5
  92. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -5
  93. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +507 -5587
  94. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +64 -4
  95. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.js +4 -4
  96. package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +2 -2
  97. package/packages/@monomind/cli/dist/src/memory/intelligence.js +108 -3
  98. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +1 -1
  99. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.d.ts +1 -10
  100. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.js +0 -46
  101. package/packages/@monomind/cli/dist/src/runtime/headless.js +3 -3
  102. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.d.ts +0 -2
  103. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.js +2 -14
  104. package/packages/@monomind/cli/dist/src/ruvector/index.d.ts +26 -9
  105. package/packages/@monomind/cli/dist/src/ruvector/index.js +3 -21
  106. package/packages/@monomind/cli/dist/src/ruvector/ruvllm-wasm.js +2 -2
  107. package/packages/@monomind/cli/dist/src/types.d.ts +0 -15
  108. package/packages/@monomind/cli/dist/src/types.js +0 -18
  109. package/packages/@monomind/cli/dist/src/update/index.js +1 -1
  110. package/packages/@monomind/cli/dist/src/update/validator.js +8 -8
  111. package/packages/@monomind/cli/package.json +2 -2
  112. package/scripts/generate-agent-avatars.mjs +500 -0
  113. package/.claude/agents/academic/academic-anthropologist.md +0 -126
  114. package/.claude/agents/academic/academic-geographer.md +0 -128
  115. package/.claude/agents/academic/academic-historian.md +0 -124
  116. package/.claude/agents/academic/academic-narratologist.md +0 -119
  117. package/.claude/agents/academic/academic-psychologist.md +0 -119
  118. package/.claude/agents/analysis/analyze-code-quality.md +0 -58
  119. package/.claude/agents/analysis/code-analyzer.md +0 -189
  120. package/.claude/agents/analysis/code-review/analyze-code-quality.md +0 -58
  121. package/.claude/agents/consensus/performance-benchmarker.md +0 -831
  122. package/.claude/agents/data/ml/data-ml-model.md +0 -76
  123. package/.claude/agents/development/dev-backend-api.md +0 -178
  124. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +0 -52
  125. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -63
  126. package/.claude/agents/game-development/blender/blender-addon-engineer.md +0 -235
  127. package/.claude/agents/game-development/game-audio-engineer.md +0 -265
  128. package/.claude/agents/game-development/game-designer.md +0 -168
  129. package/.claude/agents/game-development/godot/godot-gameplay-scripter.md +0 -335
  130. package/.claude/agents/game-development/godot/godot-multiplayer-engineer.md +0 -298
  131. package/.claude/agents/game-development/godot/godot-shader-developer.md +0 -267
  132. package/.claude/agents/game-development/level-designer.md +0 -209
  133. package/.claude/agents/game-development/narrative-designer.md +0 -244
  134. package/.claude/agents/game-development/roblox-studio/roblox-avatar-creator.md +0 -298
  135. package/.claude/agents/game-development/roblox-studio/roblox-experience-designer.md +0 -306
  136. package/.claude/agents/game-development/roblox-studio/roblox-systems-scripter.md +0 -326
  137. package/.claude/agents/game-development/technical-artist.md +0 -230
  138. package/.claude/agents/game-development/unity/unity-architect.md +0 -272
  139. package/.claude/agents/game-development/unity/unity-editor-tool-developer.md +0 -311
  140. package/.claude/agents/game-development/unity/unity-multiplayer-engineer.md +0 -322
  141. package/.claude/agents/game-development/unity/unity-shader-graph-artist.md +0 -270
  142. package/.claude/agents/game-development/unreal-engine/unreal-multiplayer-architect.md +0 -314
  143. package/.claude/agents/game-development/unreal-engine/unreal-systems-engineer.md +0 -311
  144. package/.claude/agents/game-development/unreal-engine/unreal-technical-artist.md +0 -257
  145. package/.claude/agents/game-development/unreal-engine/unreal-world-builder.md +0 -274
  146. package/.claude/agents/github/release-swarm.md +0 -597
  147. package/.claude/agents/goal/agent.md +0 -804
  148. package/.claude/agents/goal/code-goal-planner.md +0 -445
  149. package/.claude/agents/marketing/marketing-ai-citation-strategist.md +0 -171
  150. package/.claude/agents/marketing/marketing-app-store-optimizer.md +0 -322
  151. package/.claude/agents/marketing/marketing-baidu-seo-specialist.md +0 -227
  152. package/.claude/agents/marketing/marketing-bilibili-content-strategist.md +0 -200
  153. package/.claude/agents/marketing/marketing-book-co-author.md +0 -111
  154. package/.claude/agents/marketing/marketing-carousel-growth-engine.md +0 -200
  155. package/.claude/agents/marketing/marketing-china-ecommerce-operator.md +0 -284
  156. package/.claude/agents/marketing/marketing-content-creator.md +0 -67
  157. package/.claude/agents/marketing/marketing-cross-border-ecommerce.md +0 -260
  158. package/.claude/agents/marketing/marketing-douyin-strategist.md +0 -150
  159. package/.claude/agents/marketing/marketing-growth-hacker.md +0 -54
  160. package/.claude/agents/marketing/marketing-instagram-curator.md +0 -114
  161. package/.claude/agents/marketing/marketing-kuaishou-strategist.md +0 -224
  162. package/.claude/agents/marketing/marketing-linkedin-content-creator.md +0 -215
  163. package/.claude/agents/marketing/marketing-livestream-commerce-coach.md +0 -306
  164. package/.claude/agents/marketing/marketing-podcast-strategist.md +0 -278
  165. package/.claude/agents/marketing/marketing-private-domain-operator.md +0 -309
  166. package/.claude/agents/marketing/marketing-reddit-community-builder.md +0 -124
  167. package/.claude/agents/marketing/marketing-seo-specialist.md +0 -279
  168. package/.claude/agents/marketing/marketing-short-video-editing-coach.md +0 -413
  169. package/.claude/agents/marketing/marketing-social-media-strategist.md +0 -125
  170. package/.claude/agents/marketing/marketing-tiktok-strategist.md +0 -126
  171. package/.claude/agents/marketing/marketing-twitter-engager.md +0 -127
  172. package/.claude/agents/marketing/marketing-wechat-official-account.md +0 -146
  173. package/.claude/agents/marketing/marketing-weibo-strategist.md +0 -241
  174. package/.claude/agents/marketing/marketing-xiaohongshu-specialist.md +0 -139
  175. package/.claude/agents/marketing/marketing-zhihu-strategist.md +0 -163
  176. package/.claude/agents/neural/safla-neural.md +0 -74
  177. package/.claude/agents/paid-media/paid-media-auditor.md +0 -71
  178. package/.claude/agents/paid-media/paid-media-creative-strategist.md +0 -71
  179. package/.claude/agents/paid-media/paid-media-paid-social-strategist.md +0 -71
  180. package/.claude/agents/paid-media/paid-media-ppc-strategist.md +0 -71
  181. package/.claude/agents/paid-media/paid-media-programmatic-buyer.md +0 -71
  182. package/.claude/agents/paid-media/paid-media-search-query-analyst.md +0 -71
  183. package/.claude/agents/paid-media/paid-media-tracking-specialist.md +0 -71
  184. package/.claude/agents/payments/agentic-payments.md +0 -126
  185. package/.claude/agents/product/product-behavioral-nudge-engine.md +0 -81
  186. package/.claude/agents/product/product-feedback-synthesizer.md +0 -119
  187. package/.claude/agents/product/product-manager.md +0 -469
  188. package/.claude/agents/product/product-sprint-prioritizer.md +0 -154
  189. package/.claude/agents/product/product-trend-researcher.md +0 -159
  190. package/.claude/agents/project-management/project-management-experiment-tracker.md +0 -199
  191. package/.claude/agents/project-management/project-management-jira-workflow-steward.md +0 -231
  192. package/.claude/agents/project-management/project-management-project-shepherd.md +0 -195
  193. package/.claude/agents/project-management/project-management-studio-operations.md +0 -201
  194. package/.claude/agents/project-management/project-management-studio-producer.md +0 -204
  195. package/.claude/agents/project-management/project-manager-senior.md +0 -136
  196. package/.claude/agents/reasoning/agent.md +0 -804
  197. package/.claude/agents/reasoning/goal-planner.md +0 -73
  198. package/.claude/agents/sales/sales-account-strategist.md +0 -228
  199. package/.claude/agents/sales/sales-coach.md +0 -272
  200. package/.claude/agents/sales/sales-deal-strategist.md +0 -181
  201. package/.claude/agents/sales/sales-discovery-coach.md +0 -226
  202. package/.claude/agents/sales/sales-engineer.md +0 -183
  203. package/.claude/agents/sales/sales-outbound-strategist.md +0 -202
  204. package/.claude/agents/sales/sales-pipeline-analyst.md +0 -268
  205. package/.claude/agents/sales/sales-proposal-strategist.md +0 -218
  206. package/.claude/agents/sona/sona-learning-optimizer.md +0 -65
  207. package/.claude/agents/spatial-computing/macos-spatial-metal-engineer.md +0 -338
  208. package/.claude/agents/spatial-computing/terminal-integration-specialist.md +0 -71
  209. package/.claude/agents/spatial-computing/visionos-spatial-engineer.md +0 -55
  210. package/.claude/agents/specialists/memory-specialist.md +0 -298
  211. package/.claude/agents/specialists/performance-engineer.md +0 -387
  212. package/.claude/agents/specialists/queen-coordinator.md +0 -67
  213. package/.claude/agents/specialists/security-architect.md +0 -154
  214. package/.claude/agents/specialized/accounts-payable-agent.md +0 -186
  215. package/.claude/agents/specialized/corporate-training-designer.md +0 -193
  216. package/.claude/agents/specialized/data-consolidation-agent.md +0 -61
  217. package/.claude/agents/specialized/government-digital-presales-consultant.md +0 -364
  218. package/.claude/agents/specialized/healthcare-marketing-compliance.md +0 -396
  219. package/.claude/agents/specialized/recruitment-specialist.md +0 -510
  220. package/.claude/agents/specialized/report-distribution-agent.md +0 -66
  221. package/.claude/agents/specialized/sales-data-extraction-agent.md +0 -68
  222. package/.claude/agents/specialized/specialized-french-consulting-market.md +0 -193
  223. package/.claude/agents/specialized/specialized-korean-business-navigator.md +0 -217
  224. package/.claude/agents/specialized/specialized-salesforce-architect.md +0 -181
  225. package/.claude/agents/specialized/study-abroad-advisor.md +0 -283
  226. package/.claude/agents/specialized/supply-chain-strategist.md +0 -583
  227. package/.claude/agents/sublinear/consensus-coordinator.md +0 -333
  228. package/.claude/agents/sublinear/matrix-optimizer.md +0 -180
  229. package/.claude/agents/sublinear/pagerank-analyzer.md +0 -295
  230. package/.claude/agents/sublinear/performance-optimizer.md +0 -363
  231. package/.claude/agents/sublinear/trading-predictor.md +0 -242
  232. package/.claude/agents/support/support-analytics-reporter.md +0 -366
  233. package/.claude/agents/support/support-executive-summary-generator.md +0 -213
  234. package/.claude/agents/support/support-finance-tracker.md +0 -443
  235. package/.claude/agents/support/support-infrastructure-maintainer.md +0 -619
  236. package/.claude/agents/support/support-legal-compliance-checker.md +0 -589
  237. package/.claude/agents/support/support-support-responder.md +0 -586
  238. package/.claude/agents/swarm/adaptive-coordinator.md +0 -364
  239. package/.claude/agents/swarm/hierarchical-coordinator.md +0 -318
  240. package/.claude/agents/templates/github-pr-manager.md +0 -155
  241. package/.claude/agents/templates/memory-coordinator.md +0 -163
  242. package/.claude/agents/templates/migration-plan.md +0 -724
  243. package/.claude/agents/templates/orchestrator-task.md +0 -120
  244. package/.claude/agents/templates/performance-analyzer.md +0 -179
  245. package/.claude/agents/templates/sparc-coordinator.md +0 -163
  246. package/.claude/agents/testing/testing-reality-checker.md +0 -237
  247. package/.claude/checkpoints/1767754460.json +0 -8
  248. package/.claude/commands/analysis/token-efficiency.md +0 -42
  249. package/.claude/commands/optimization/README.md +0 -73
  250. package/.claude/commands/optimization/parallel-execution.md +0 -76
  251. package/.claude/commands/swarm/swarm-analysis.md +0 -62
  252. package/.claude/commands/swarm/swarm-background.md +0 -65
  253. package/.claude/commands/swarm/swarm-modes.md +0 -67
  254. package/.claude/commands/swarm/swarm-monitor.md +0 -54
  255. package/.claude/commands/swarm/swarm-status.md +0 -44
  256. package/.claude/commands/swarm/swarm-strategies.md +0 -76
  257. package/.claude/commands/training/model-update.md +0 -78
  258. package/.claude/commands/training/pattern-learn.md +0 -69
  259. package/.claude/commands/training/specialization.md +0 -92
  260. package/.claude/commands/verify/check.md +0 -106
  261. package/.claude/commands/verify/start.md +0 -105
  262. package/.claude/config/v1-dependency-optimization.json +0 -266
  263. package/.claude/config/v1-performance-targets.json +0 -251
  264. package/.claude/helpers/README.md +0 -105
  265. package/.claude/helpers/context-persistence-hook.mjs +0 -1988
  266. package/.claude/helpers/intelligence.cjs +0 -247
  267. package/.claude/helpers/learning-service.mjs +0 -1302
  268. package/.claude/helpers/memory-palace.cjs +0 -461
  269. package/.claude/helpers/memory.cjs +0 -84
  270. package/.claude/helpers/metrics-db.mjs +0 -488
  271. package/.claude/helpers/router.cjs +0 -559
  272. package/.claude/helpers/session.cjs +0 -126
  273. package/.claude/helpers/swarm-hooks.sh +0 -761
  274. package/.claude/helpers/toggle-statusline.cjs +0 -58
  275. package/.claude/helpers/token-tracker.cjs +0 -934
  276. package/.claude/skills/agentdb-advanced/SKILL.md +0 -549
  277. package/.claude/skills/agentdb-learning/SKILL.md +0 -544
  278. package/.claude/skills/agentdb-memory-patterns/SKILL.md +0 -337
  279. package/.claude/skills/agentdb-optimization/SKILL.md +0 -508
  280. package/.claude/skills/agentdb-vector-search/SKILL.md +0 -335
  281. package/.claude/skills/agentic-integration/SKILL.md +0 -265
  282. package/.claude/skills/cli-modernization/SKILL.md +0 -950
  283. package/.claude/skills/core-implementation/SKILL.md +0 -892
  284. package/.claude/skills/ddd-architecture/SKILL.md +0 -444
  285. package/.claude/skills/github-code-review/SKILL.md +0 -1147
  286. package/.claude/skills/github-multi-repo/SKILL.md +0 -912
  287. package/.claude/skills/github-project-management/SKILL.md +0 -1245
  288. package/.claude/skills/github-release-management/SKILL.md +0 -1118
  289. package/.claude/skills/github-workflow-automation/SKILL.md +0 -1107
  290. package/.claude/skills/mcp-optimization/SKILL.md +0 -837
  291. package/.claude/skills/memory-unification/SKILL.md +0 -196
  292. package/.claude/skills/performance-optimization/SKILL.md +0 -416
  293. package/.claude/skills/reasoningbank-agentdb/SKILL.md +0 -444
  294. package/.claude/skills/reasoningbank-intelligence/SKILL.md +0 -199
  295. package/.claude/skills/security-hardening/SKILL.md +0 -101
  296. package/.claude/skills/stream-chain/SKILL.md +0 -560
  297. package/.claude/skills/swarm-coordination/SKILL.md +0 -451
  298. package/.claude/statusline-command.sh +0 -176
  299. package/.claude/statusline.mjs +0 -109
  300. package/.claude/statusline.sh +0 -431
  301. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.d.ts +0 -32
  302. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.d.ts.map +0 -1
  303. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.js +0 -297
  304. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.js.map +0 -1
  305. package/packages/@monomind/cli/bundled-graph/dist/src/build.d.ts +0 -8
  306. package/packages/@monomind/cli/bundled-graph/dist/src/build.d.ts.map +0 -1
  307. package/packages/@monomind/cli/bundled-graph/dist/src/build.js.map +0 -1
  308. package/packages/@monomind/cli/bundled-graph/dist/src/cache.d.ts +0 -12
  309. package/packages/@monomind/cli/bundled-graph/dist/src/cache.d.ts.map +0 -1
  310. package/packages/@monomind/cli/bundled-graph/dist/src/cache.js +0 -43
  311. package/packages/@monomind/cli/bundled-graph/dist/src/cache.js.map +0 -1
  312. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.d.ts +0 -5
  313. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.d.ts.map +0 -1
  314. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.js.map +0 -1
  315. package/packages/@monomind/cli/bundled-graph/dist/src/detect.d.ts +0 -21
  316. package/packages/@monomind/cli/bundled-graph/dist/src/detect.d.ts.map +0 -1
  317. package/packages/@monomind/cli/bundled-graph/dist/src/detect.js +0 -195
  318. package/packages/@monomind/cli/bundled-graph/dist/src/detect.js.map +0 -1
  319. package/packages/@monomind/cli/bundled-graph/dist/src/export.d.ts +0 -21
  320. package/packages/@monomind/cli/bundled-graph/dist/src/export.d.ts.map +0 -1
  321. package/packages/@monomind/cli/bundled-graph/dist/src/export.js +0 -68
  322. package/packages/@monomind/cli/bundled-graph/dist/src/export.js.map +0 -1
  323. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.d.ts +0 -20
  324. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.d.ts.map +0 -1
  325. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.js +0 -158
  326. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.js.map +0 -1
  327. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.d.ts +0 -3
  328. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.d.ts.map +0 -1
  329. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.js +0 -88
  330. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.js.map +0 -1
  331. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.d.ts +0 -3
  332. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.d.ts.map +0 -1
  333. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.js +0 -121
  334. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.js.map +0 -1
  335. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.d.ts +0 -3
  336. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.d.ts.map +0 -1
  337. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.js +0 -121
  338. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.js.map +0 -1
  339. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.d.ts +0 -3
  340. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.d.ts.map +0 -1
  341. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.js +0 -181
  342. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.js.map +0 -1
  343. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.d.ts +0 -3
  344. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.d.ts.map +0 -1
  345. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.js +0 -117
  346. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.js.map +0 -1
  347. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.d.ts +0 -3
  348. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.d.ts.map +0 -1
  349. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.js +0 -112
  350. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.js.map +0 -1
  351. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.d.ts +0 -3
  352. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.d.ts.map +0 -1
  353. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.js +0 -130
  354. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.js.map +0 -1
  355. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.d.ts +0 -3
  356. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.d.ts.map +0 -1
  357. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.js +0 -230
  358. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.js.map +0 -1
  359. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.d.ts +0 -3
  360. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.d.ts.map +0 -1
  361. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.js +0 -120
  362. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.js.map +0 -1
  363. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.d.ts +0 -3
  364. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.d.ts.map +0 -1
  365. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.js +0 -195
  366. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.js.map +0 -1
  367. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.d.ts +0 -3
  368. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.d.ts.map +0 -1
  369. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.js +0 -110
  370. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.js.map +0 -1
  371. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.d.ts +0 -3
  372. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.d.ts.map +0 -1
  373. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.js +0 -122
  374. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.js.map +0 -1
  375. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.d.ts +0 -3
  376. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.d.ts.map +0 -1
  377. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.js +0 -295
  378. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.js.map +0 -1
  379. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.d.ts +0 -38
  380. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.d.ts.map +0 -1
  381. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.js +0 -242
  382. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.js.map +0 -1
  383. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts +0 -48
  384. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts.map +0 -1
  385. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.js +0 -137
  386. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.js.map +0 -1
  387. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.d.ts +0 -7
  388. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.d.ts.map +0 -1
  389. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.js +0 -2
  390. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.js.map +0 -1
  391. package/packages/@monomind/cli/bundled-graph/dist/src/index.d.ts +0 -28
  392. package/packages/@monomind/cli/bundled-graph/dist/src/index.d.ts.map +0 -1
  393. package/packages/@monomind/cli/bundled-graph/dist/src/index.js +0 -26
  394. package/packages/@monomind/cli/bundled-graph/dist/src/index.js.map +0 -1
  395. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.d.ts +0 -27
  396. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.d.ts.map +0 -1
  397. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.js +0 -269
  398. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.js.map +0 -1
  399. package/packages/@monomind/cli/bundled-graph/dist/src/report.d.ts +0 -26
  400. package/packages/@monomind/cli/bundled-graph/dist/src/report.d.ts.map +0 -1
  401. package/packages/@monomind/cli/bundled-graph/dist/src/report.js +0 -214
  402. package/packages/@monomind/cli/bundled-graph/dist/src/report.js.map +0 -1
  403. package/packages/@monomind/cli/bundled-graph/dist/src/types.d.ts +0 -124
  404. package/packages/@monomind/cli/bundled-graph/dist/src/types.d.ts.map +0 -1
  405. package/packages/@monomind/cli/bundled-graph/dist/src/types.js +0 -2
  406. package/packages/@monomind/cli/bundled-graph/dist/src/types.js.map +0 -1
  407. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.d.ts +0 -4
  408. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.d.ts.map +0 -1
  409. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.js +0 -574
  410. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.js.map +0 -1
  411. package/packages/@monomind/cli/bundled-graph/dist/tsconfig.tsbuildinfo +0 -1
  412. package/packages/@monomind/shared/README.md +0 -322
  413. package/packages/@monomind/shared/package.json +0 -42
  414. package/packages/README.md +0 -513
@@ -1,831 +0,0 @@
1
- ---
2
- name: performance-benchmarker
3
- description: Implements comprehensive performance benchmarking for distributed consensus protocols
4
- ---
5
-
6
- # Performance Benchmarker
7
-
8
- Implements comprehensive performance benchmarking and optimization analysis for distributed consensus protocols.
9
-
10
- ## Core Responsibilities
11
-
12
- 1. **Protocol Benchmarking**: Measure throughput, latency, and scalability across consensus algorithms
13
- 2. **Resource Monitoring**: Track CPU, memory, network, and storage utilization patterns
14
- 3. **Comparative Analysis**: Compare Byzantine, Raft, and Gossip protocol performance
15
- 4. **Adaptive Tuning**: Implement real-time parameter optimization and load balancing
16
- 5. **Performance Reporting**: Generate actionable insights and optimization recommendations
17
-
18
- ## Technical Implementation
19
-
20
- ### Core Benchmarking Framework
21
- ```javascript
22
- class ConsensusPerformanceBenchmarker {
23
- constructor() {
24
- this.benchmarkSuites = new Map();
25
- this.performanceMetrics = new Map();
26
- this.historicalData = new TimeSeriesDatabase();
27
- this.currentBenchmarks = new Set();
28
- this.adaptiveOptimizer = new AdaptiveOptimizer();
29
- this.alertSystem = new PerformanceAlertSystem();
30
- }
31
-
32
- // Register benchmark suite for specific consensus protocol
33
- registerBenchmarkSuite(protocolName, benchmarkConfig) {
34
- const suite = new BenchmarkSuite(protocolName, benchmarkConfig);
35
- this.benchmarkSuites.set(protocolName, suite);
36
-
37
- return suite;
38
- }
39
-
40
- // Execute comprehensive performance benchmarks
41
- async runComprehensiveBenchmarks(protocols, scenarios) {
42
- const results = new Map();
43
-
44
- for (const protocol of protocols) {
45
- const protocolResults = new Map();
46
-
47
- for (const scenario of scenarios) {
48
- console.log(`Running ${scenario.name} benchmark for ${protocol}`);
49
-
50
- const benchmarkResult = await this.executeBenchmarkScenario(
51
- protocol, scenario
52
- );
53
-
54
- protocolResults.set(scenario.name, benchmarkResult);
55
-
56
- // Store in historical database
57
- await this.historicalData.store({
58
- protocol: protocol,
59
- scenario: scenario.name,
60
- timestamp: Date.now(),
61
- metrics: benchmarkResult
62
- });
63
- }
64
-
65
- results.set(protocol, protocolResults);
66
- }
67
-
68
- // Generate comparative analysis
69
- const analysis = await this.generateComparativeAnalysis(results);
70
-
71
- // Trigger adaptive optimizations
72
- await this.adaptiveOptimizer.optimizeBasedOnResults(results);
73
-
74
- return {
75
- benchmarkResults: results,
76
- comparativeAnalysis: analysis,
77
- recommendations: await this.generateOptimizationRecommendations(results)
78
- };
79
- }
80
-
81
- async executeBenchmarkScenario(protocol, scenario) {
82
- const benchmark = this.benchmarkSuites.get(protocol);
83
- if (!benchmark) {
84
- throw new Error(`No benchmark suite found for protocol: ${protocol}`);
85
- }
86
-
87
- // Initialize benchmark environment
88
- const environment = await this.setupBenchmarkEnvironment(scenario);
89
-
90
- try {
91
- // Pre-benchmark setup
92
- await benchmark.setup(environment);
93
-
94
- // Execute benchmark phases
95
- const results = {
96
- throughput: await this.measureThroughput(benchmark, scenario),
97
- latency: await this.measureLatency(benchmark, scenario),
98
- resourceUsage: await this.measureResourceUsage(benchmark, scenario),
99
- scalability: await this.measureScalability(benchmark, scenario),
100
- faultTolerance: await this.measureFaultTolerance(benchmark, scenario)
101
- };
102
-
103
- // Post-benchmark analysis
104
- results.analysis = await this.analyzeBenchmarkResults(results);
105
-
106
- return results;
107
-
108
- } finally {
109
- // Cleanup benchmark environment
110
- await this.cleanupBenchmarkEnvironment(environment);
111
- }
112
- }
113
- }
114
- ```
115
-
116
- ### Throughput Measurement System
117
- ```javascript
118
- class ThroughputBenchmark {
119
- constructor(protocol, configuration) {
120
- this.protocol = protocol;
121
- this.config = configuration;
122
- this.metrics = new MetricsCollector();
123
- this.loadGenerator = new LoadGenerator();
124
- }
125
-
126
- async measureThroughput(scenario) {
127
- const measurements = [];
128
- const duration = scenario.duration || 60000; // 1 minute default
129
- const startTime = Date.now();
130
-
131
- // Initialize load generator
132
- await this.loadGenerator.initialize({
133
- requestRate: scenario.initialRate || 10,
134
- rampUp: scenario.rampUp || false,
135
- pattern: scenario.pattern || 'constant'
136
- });
137
-
138
- // Start metrics collection
139
- this.metrics.startCollection(['transactions_per_second', 'success_rate']);
140
-
141
- let currentRate = scenario.initialRate || 10;
142
- const rateIncrement = scenario.rateIncrement || 5;
143
- const measurementInterval = 5000; // 5 seconds
144
-
145
- while (Date.now() - startTime < duration) {
146
- const intervalStart = Date.now();
147
-
148
- // Generate load for this interval
149
- const transactions = await this.generateTransactionLoad(
150
- currentRate, measurementInterval
151
- );
152
-
153
- // Measure throughput for this interval
154
- const intervalMetrics = await this.measureIntervalThroughput(
155
- transactions, measurementInterval
156
- );
157
-
158
- measurements.push({
159
- timestamp: intervalStart,
160
- requestRate: currentRate,
161
- actualThroughput: intervalMetrics.throughput,
162
- successRate: intervalMetrics.successRate,
163
- averageLatency: intervalMetrics.averageLatency,
164
- p95Latency: intervalMetrics.p95Latency,
165
- p99Latency: intervalMetrics.p99Latency
166
- });
167
-
168
- // Adaptive rate adjustment
169
- if (scenario.rampUp && intervalMetrics.successRate > 0.95) {
170
- currentRate += rateIncrement;
171
- } else if (intervalMetrics.successRate < 0.8) {
172
- currentRate = Math.max(1, currentRate - rateIncrement);
173
- }
174
-
175
- // Wait for next interval
176
- const elapsed = Date.now() - intervalStart;
177
- if (elapsed < measurementInterval) {
178
- await this.sleep(measurementInterval - elapsed);
179
- }
180
- }
181
-
182
- // Stop metrics collection
183
- this.metrics.stopCollection();
184
-
185
- // Analyze throughput results
186
- return this.analyzeThroughputMeasurements(measurements);
187
- }
188
-
189
- async generateTransactionLoad(rate, duration) {
190
- const transactions = [];
191
- const interval = 1000 / rate; // Interval between transactions in ms
192
- const endTime = Date.now() + duration;
193
-
194
- while (Date.now() < endTime) {
195
- const transactionStart = Date.now();
196
-
197
- const transaction = {
198
- id: `tx_${Date.now()}_${Math.random()}`,
199
- type: this.getRandomTransactionType(),
200
- data: this.generateTransactionData(),
201
- timestamp: transactionStart
202
- };
203
-
204
- // Submit transaction to consensus protocol
205
- const promise = this.protocol.submitTransaction(transaction)
206
- .then(result => ({
207
- ...transaction,
208
- result: result,
209
- latency: Date.now() - transactionStart,
210
- success: result.committed === true
211
- }))
212
- .catch(error => ({
213
- ...transaction,
214
- error: error,
215
- latency: Date.now() - transactionStart,
216
- success: false
217
- }));
218
-
219
- transactions.push(promise);
220
-
221
- // Wait for next transaction interval
222
- await this.sleep(interval);
223
- }
224
-
225
- // Wait for all transactions to complete
226
- return await Promise.all(transactions);
227
- }
228
-
229
- analyzeThroughputMeasurements(measurements) {
230
- const totalMeasurements = measurements.length;
231
- const avgThroughput = measurements.reduce((sum, m) => sum + m.actualThroughput, 0) / totalMeasurements;
232
- const maxThroughput = Math.max(...measurements.map(m => m.actualThroughput));
233
- const avgSuccessRate = measurements.reduce((sum, m) => sum + m.successRate, 0) / totalMeasurements;
234
-
235
- // Find optimal operating point (highest throughput with >95% success rate)
236
- const optimalPoints = measurements.filter(m => m.successRate >= 0.95);
237
- const optimalThroughput = optimalPoints.length > 0 ?
238
- Math.max(...optimalPoints.map(m => m.actualThroughput)) : 0;
239
-
240
- return {
241
- averageThroughput: avgThroughput,
242
- maxThroughput: maxThroughput,
243
- optimalThroughput: optimalThroughput,
244
- averageSuccessRate: avgSuccessRate,
245
- measurements: measurements,
246
- sustainableThroughput: this.calculateSustainableThroughput(measurements),
247
- throughputVariability: this.calculateThroughputVariability(measurements)
248
- };
249
- }
250
-
251
- calculateSustainableThroughput(measurements) {
252
- // Find the highest throughput that can be sustained for >80% of the time
253
- const sortedThroughputs = measurements.map(m => m.actualThroughput).sort((a, b) => b - a);
254
- const p80Index = Math.floor(sortedThroughputs.length * 0.2);
255
- return sortedThroughputs[p80Index];
256
- }
257
- }
258
- ```
259
-
260
- ### Latency Analysis System
261
- ```javascript
262
- class LatencyBenchmark {
263
- constructor(protocol, configuration) {
264
- this.protocol = protocol;
265
- this.config = configuration;
266
- this.latencyHistogram = new LatencyHistogram();
267
- this.percentileCalculator = new PercentileCalculator();
268
- }
269
-
270
- async measureLatency(scenario) {
271
- const measurements = [];
272
- const sampleSize = scenario.sampleSize || 10000;
273
- const warmupSize = scenario.warmupSize || 1000;
274
-
275
- console.log(`Measuring latency with ${sampleSize} samples (${warmupSize} warmup)`);
276
-
277
- // Warmup phase
278
- await this.performWarmup(warmupSize);
279
-
280
- // Measurement phase
281
- for (let i = 0; i < sampleSize; i++) {
282
- const latencyMeasurement = await this.measureSingleTransactionLatency();
283
- measurements.push(latencyMeasurement);
284
-
285
- // Progress reporting
286
- if (i % 1000 === 0) {
287
- console.log(`Completed ${i}/${sampleSize} latency measurements`);
288
- }
289
- }
290
-
291
- // Analyze latency distribution
292
- return this.analyzeLatencyDistribution(measurements);
293
- }
294
-
295
- async measureSingleTransactionLatency() {
296
- const transaction = {
297
- id: `latency_tx_${Date.now()}_${Math.random()}`,
298
- type: 'benchmark',
299
- data: { value: Math.random() },
300
- phases: {}
301
- };
302
-
303
- // Phase 1: Submission
304
- const submissionStart = performance.now();
305
- const submissionPromise = this.protocol.submitTransaction(transaction);
306
- transaction.phases.submission = performance.now() - submissionStart;
307
-
308
- // Phase 2: Consensus
309
- const consensusStart = performance.now();
310
- const result = await submissionPromise;
311
- transaction.phases.consensus = performance.now() - consensusStart;
312
-
313
- // Phase 3: Application (if applicable)
314
- let applicationLatency = 0;
315
- if (result.applicationTime) {
316
- applicationLatency = result.applicationTime;
317
- }
318
- transaction.phases.application = applicationLatency;
319
-
320
- // Total end-to-end latency
321
- const totalLatency = transaction.phases.submission +
322
- transaction.phases.consensus +
323
- transaction.phases.application;
324
-
325
- return {
326
- transactionId: transaction.id,
327
- totalLatency: totalLatency,
328
- phases: transaction.phases,
329
- success: result.committed === true,
330
- timestamp: Date.now()
331
- };
332
- }
333
-
334
- analyzeLatencyDistribution(measurements) {
335
- const successfulMeasurements = measurements.filter(m => m.success);
336
- const latencies = successfulMeasurements.map(m => m.totalLatency);
337
-
338
- if (latencies.length === 0) {
339
- throw new Error('No successful latency measurements');
340
- }
341
-
342
- // Calculate percentiles
343
- const percentiles = this.percentileCalculator.calculate(latencies, [
344
- 50, 75, 90, 95, 99, 99.9, 99.99
345
- ]);
346
-
347
- // Phase-specific analysis
348
- const phaseAnalysis = this.analyzePhaseLatencies(successfulMeasurements);
349
-
350
- // Latency distribution analysis
351
- const distribution = this.analyzeLatencyHistogram(latencies);
352
-
353
- return {
354
- sampleSize: successfulMeasurements.length,
355
- mean: latencies.reduce((sum, l) => sum + l, 0) / latencies.length,
356
- median: percentiles[50],
357
- standardDeviation: this.calculateStandardDeviation(latencies),
358
- percentiles: percentiles,
359
- phaseAnalysis: phaseAnalysis,
360
- distribution: distribution,
361
- outliers: this.identifyLatencyOutliers(latencies)
362
- };
363
- }
364
-
365
- analyzePhaseLatencies(measurements) {
366
- const phases = ['submission', 'consensus', 'application'];
367
- const phaseAnalysis = {};
368
-
369
- for (const phase of phases) {
370
- const phaseLatencies = measurements.map(m => m.phases[phase]);
371
- const validLatencies = phaseLatencies.filter(l => l > 0);
372
-
373
- if (validLatencies.length > 0) {
374
- phaseAnalysis[phase] = {
375
- mean: validLatencies.reduce((sum, l) => sum + l, 0) / validLatencies.length,
376
- p50: this.percentileCalculator.calculate(validLatencies, [50])[50],
377
- p95: this.percentileCalculator.calculate(validLatencies, [95])[95],
378
- p99: this.percentileCalculator.calculate(validLatencies, [99])[99],
379
- max: Math.max(...validLatencies),
380
- contributionPercent: (validLatencies.reduce((sum, l) => sum + l, 0) /
381
- measurements.reduce((sum, m) => sum + m.totalLatency, 0)) * 100
382
- };
383
- }
384
- }
385
-
386
- return phaseAnalysis;
387
- }
388
- }
389
- ```
390
-
391
- ### Resource Usage Monitor
392
- ```javascript
393
- class ResourceUsageMonitor {
394
- constructor() {
395
- this.monitoringActive = false;
396
- this.samplingInterval = 1000; // 1 second
397
- this.measurements = [];
398
- this.systemMonitor = new SystemMonitor();
399
- }
400
-
401
- async measureResourceUsage(protocol, scenario) {
402
- console.log('Starting resource usage monitoring');
403
-
404
- this.monitoringActive = true;
405
- this.measurements = [];
406
-
407
- // Start monitoring in background
408
- const monitoringPromise = this.startContinuousMonitoring();
409
-
410
- try {
411
- // Execute the benchmark scenario
412
- const benchmarkResult = await this.executeBenchmarkWithMonitoring(
413
- protocol, scenario
414
- );
415
-
416
- // Stop monitoring
417
- this.monitoringActive = false;
418
- await monitoringPromise;
419
-
420
- // Analyze resource usage
421
- const resourceAnalysis = this.analyzeResourceUsage();
422
-
423
- return {
424
- benchmarkResult: benchmarkResult,
425
- resourceUsage: resourceAnalysis
426
- };
427
-
428
- } catch (error) {
429
- this.monitoringActive = false;
430
- throw error;
431
- }
432
- }
433
-
434
- async startContinuousMonitoring() {
435
- while (this.monitoringActive) {
436
- const measurement = await this.collectResourceMeasurement();
437
- this.measurements.push(measurement);
438
-
439
- await this.sleep(this.samplingInterval);
440
- }
441
- }
442
-
443
- async collectResourceMeasurement() {
444
- const timestamp = Date.now();
445
-
446
- // CPU usage
447
- const cpuUsage = await this.systemMonitor.getCPUUsage();
448
-
449
- // Memory usage
450
- const memoryUsage = await this.systemMonitor.getMemoryUsage();
451
-
452
- // Network I/O
453
- const networkIO = await this.systemMonitor.getNetworkIO();
454
-
455
- // Disk I/O
456
- const diskIO = await this.systemMonitor.getDiskIO();
457
-
458
- // Process-specific metrics
459
- const processMetrics = await this.systemMonitor.getProcessMetrics();
460
-
461
- return {
462
- timestamp: timestamp,
463
- cpu: {
464
- totalUsage: cpuUsage.total,
465
- consensusUsage: cpuUsage.process,
466
- loadAverage: cpuUsage.loadAverage,
467
- coreUsage: cpuUsage.cores
468
- },
469
- memory: {
470
- totalUsed: memoryUsage.used,
471
- totalAvailable: memoryUsage.available,
472
- processRSS: memoryUsage.processRSS,
473
- processHeap: memoryUsage.processHeap,
474
- gcStats: memoryUsage.gcStats
475
- },
476
- network: {
477
- bytesIn: networkIO.bytesIn,
478
- bytesOut: networkIO.bytesOut,
479
- packetsIn: networkIO.packetsIn,
480
- packetsOut: networkIO.packetsOut,
481
- connectionsActive: networkIO.connectionsActive
482
- },
483
- disk: {
484
- bytesRead: diskIO.bytesRead,
485
- bytesWritten: diskIO.bytesWritten,
486
- operationsRead: diskIO.operationsRead,
487
- operationsWrite: diskIO.operationsWrite,
488
- queueLength: diskIO.queueLength
489
- },
490
- process: {
491
- consensusThreads: processMetrics.consensusThreads,
492
- fileDescriptors: processMetrics.fileDescriptors,
493
- uptime: processMetrics.uptime
494
- }
495
- };
496
- }
497
-
498
- analyzeResourceUsage() {
499
- if (this.measurements.length === 0) {
500
- return null;
501
- }
502
-
503
- const cpuAnalysis = this.analyzeCPUUsage();
504
- const memoryAnalysis = this.analyzeMemoryUsage();
505
- const networkAnalysis = this.analyzeNetworkUsage();
506
- const diskAnalysis = this.analyzeDiskUsage();
507
-
508
- return {
509
- duration: this.measurements[this.measurements.length - 1].timestamp -
510
- this.measurements[0].timestamp,
511
- sampleCount: this.measurements.length,
512
- cpu: cpuAnalysis,
513
- memory: memoryAnalysis,
514
- network: networkAnalysis,
515
- disk: diskAnalysis,
516
- efficiency: this.calculateResourceEfficiency(),
517
- bottlenecks: this.identifyResourceBottlenecks()
518
- };
519
- }
520
-
521
- analyzeCPUUsage() {
522
- const cpuUsages = this.measurements.map(m => m.cpu.consensusUsage);
523
-
524
- return {
525
- average: cpuUsages.reduce((sum, usage) => sum + usage, 0) / cpuUsages.length,
526
- peak: Math.max(...cpuUsages),
527
- p95: this.calculatePercentile(cpuUsages, 95),
528
- variability: this.calculateStandardDeviation(cpuUsages),
529
- coreUtilization: this.analyzeCoreUtilization(),
530
- trends: this.analyzeCPUTrends()
531
- };
532
- }
533
-
534
- analyzeMemoryUsage() {
535
- const memoryUsages = this.measurements.map(m => m.memory.processRSS);
536
- const heapUsages = this.measurements.map(m => m.memory.processHeap);
537
-
538
- return {
539
- averageRSS: memoryUsages.reduce((sum, usage) => sum + usage, 0) / memoryUsages.length,
540
- peakRSS: Math.max(...memoryUsages),
541
- averageHeap: heapUsages.reduce((sum, usage) => sum + usage, 0) / heapUsages.length,
542
- peakHeap: Math.max(...heapUsages),
543
- memoryLeaks: this.detectMemoryLeaks(),
544
- gcImpact: this.analyzeGCImpact(),
545
- growth: this.calculateMemoryGrowth()
546
- };
547
- }
548
-
549
- identifyResourceBottlenecks() {
550
- const bottlenecks = [];
551
-
552
- // CPU bottleneck detection
553
- const avgCPU = this.measurements.reduce((sum, m) => sum + m.cpu.consensusUsage, 0) /
554
- this.measurements.length;
555
- if (avgCPU > 80) {
556
- bottlenecks.push({
557
- type: 'CPU',
558
- severity: 'HIGH',
559
- description: `High CPU usage (${avgCPU.toFixed(1)}%)`
560
- });
561
- }
562
-
563
- // Memory bottleneck detection
564
- const memoryGrowth = this.calculateMemoryGrowth();
565
- if (memoryGrowth.rate > 1024 * 1024) { // 1MB/s growth
566
- bottlenecks.push({
567
- type: 'MEMORY',
568
- severity: 'MEDIUM',
569
- description: `High memory growth rate (${(memoryGrowth.rate / 1024 / 1024).toFixed(2)} MB/s)`
570
- });
571
- }
572
-
573
- // Network bottleneck detection
574
- const avgNetworkOut = this.measurements.reduce((sum, m) => sum + m.network.bytesOut, 0) /
575
- this.measurements.length;
576
- if (avgNetworkOut > 100 * 1024 * 1024) { // 100 MB/s
577
- bottlenecks.push({
578
- type: 'NETWORK',
579
- severity: 'MEDIUM',
580
- description: `High network output (${(avgNetworkOut / 1024 / 1024).toFixed(2)} MB/s)`
581
- });
582
- }
583
-
584
- return bottlenecks;
585
- }
586
- }
587
- ```
588
-
589
- ### Adaptive Performance Optimizer
590
- ```javascript
591
- class AdaptiveOptimizer {
592
- constructor() {
593
- this.optimizationHistory = new Map();
594
- this.performanceModel = new PerformanceModel();
595
- this.parameterTuner = new ParameterTuner();
596
- this.currentOptimizations = new Map();
597
- }
598
-
599
- async optimizeBasedOnResults(benchmarkResults) {
600
- const optimizations = [];
601
-
602
- for (const [protocol, results] of benchmarkResults) {
603
- const protocolOptimizations = await this.optimizeProtocol(protocol, results);
604
- optimizations.push(...protocolOptimizations);
605
- }
606
-
607
- // Apply optimizations gradually
608
- await this.applyOptimizations(optimizations);
609
-
610
- return optimizations;
611
- }
612
-
613
- async optimizeProtocol(protocol, results) {
614
- const optimizations = [];
615
-
616
- // Analyze performance bottlenecks
617
- const bottlenecks = this.identifyPerformanceBottlenecks(results);
618
-
619
- for (const bottleneck of bottlenecks) {
620
- const optimization = await this.generateOptimization(protocol, bottleneck);
621
- if (optimization) {
622
- optimizations.push(optimization);
623
- }
624
- }
625
-
626
- // Parameter tuning based on performance characteristics
627
- const parameterOptimizations = await this.tuneParameters(protocol, results);
628
- optimizations.push(...parameterOptimizations);
629
-
630
- return optimizations;
631
- }
632
-
633
- identifyPerformanceBottlenecks(results) {
634
- const bottlenecks = [];
635
-
636
- // Throughput bottlenecks
637
- for (const [scenario, result] of results) {
638
- if (result.throughput && result.throughput.optimalThroughput < result.throughput.maxThroughput * 0.8) {
639
- bottlenecks.push({
640
- type: 'THROUGHPUT_DEGRADATION',
641
- scenario: scenario,
642
- severity: 'HIGH',
643
- impact: (result.throughput.maxThroughput - result.throughput.optimalThroughput) /
644
- result.throughput.maxThroughput,
645
- details: result.throughput
646
- });
647
- }
648
-
649
- // Latency bottlenecks
650
- if (result.latency && result.latency.p99 > result.latency.p50 * 10) {
651
- bottlenecks.push({
652
- type: 'LATENCY_TAIL',
653
- scenario: scenario,
654
- severity: 'MEDIUM',
655
- impact: result.latency.p99 / result.latency.p50,
656
- details: result.latency
657
- });
658
- }
659
-
660
- // Resource bottlenecks
661
- if (result.resourceUsage && result.resourceUsage.bottlenecks.length > 0) {
662
- bottlenecks.push({
663
- type: 'RESOURCE_CONSTRAINT',
664
- scenario: scenario,
665
- severity: 'HIGH',
666
- details: result.resourceUsage.bottlenecks
667
- });
668
- }
669
- }
670
-
671
- return bottlenecks;
672
- }
673
-
674
- async generateOptimization(protocol, bottleneck) {
675
- switch (bottleneck.type) {
676
- case 'THROUGHPUT_DEGRADATION':
677
- return await this.optimizeThroughput(protocol, bottleneck);
678
- case 'LATENCY_TAIL':
679
- return await this.optimizeLatency(protocol, bottleneck);
680
- case 'RESOURCE_CONSTRAINT':
681
- return await this.optimizeResourceUsage(protocol, bottleneck);
682
- default:
683
- return null;
684
- }
685
- }
686
-
687
- async optimizeThroughput(protocol, bottleneck) {
688
- const optimizations = [];
689
-
690
- // Batch size optimization
691
- if (protocol === 'raft') {
692
- optimizations.push({
693
- type: 'PARAMETER_ADJUSTMENT',
694
- parameter: 'max_batch_size',
695
- currentValue: await this.getCurrentParameter(protocol, 'max_batch_size'),
696
- recommendedValue: this.calculateOptimalBatchSize(bottleneck.details),
697
- expectedImprovement: '15-25% throughput increase',
698
- confidence: 0.8
699
- });
700
- }
701
-
702
- // Pipelining optimization
703
- if (protocol === 'byzantine') {
704
- optimizations.push({
705
- type: 'FEATURE_ENABLE',
706
- feature: 'request_pipelining',
707
- description: 'Enable request pipelining to improve throughput',
708
- expectedImprovement: '20-30% throughput increase',
709
- confidence: 0.7
710
- });
711
- }
712
-
713
- return optimizations.length > 0 ? optimizations[0] : null;
714
- }
715
-
716
- async tuneParameters(protocol, results) {
717
- const optimizations = [];
718
-
719
- // Use machine learning model to suggest parameter values
720
- const parameterSuggestions = await this.performanceModel.suggestParameters(
721
- protocol, results
722
- );
723
-
724
- for (const suggestion of parameterSuggestions) {
725
- if (suggestion.confidence > 0.6) {
726
- optimizations.push({
727
- type: 'PARAMETER_TUNING',
728
- parameter: suggestion.parameter,
729
- currentValue: suggestion.currentValue,
730
- recommendedValue: suggestion.recommendedValue,
731
- expectedImprovement: suggestion.expectedImprovement,
732
- confidence: suggestion.confidence,
733
- rationale: suggestion.rationale
734
- });
735
- }
736
- }
737
-
738
- return optimizations;
739
- }
740
-
741
- async applyOptimizations(optimizations) {
742
- // Sort by confidence and expected impact
743
- const sortedOptimizations = optimizations.sort((a, b) =>
744
- (b.confidence * parseFloat(b.expectedImprovement)) -
745
- (a.confidence * parseFloat(a.expectedImprovement))
746
- );
747
-
748
- // Apply optimizations gradually
749
- for (const optimization of sortedOptimizations) {
750
- try {
751
- await this.applyOptimization(optimization);
752
-
753
- // Wait and measure impact
754
- await this.sleep(30000); // 30 seconds
755
- const impact = await this.measureOptimizationImpact(optimization);
756
-
757
- if (impact.improvement < 0.05) {
758
- // Revert if improvement is less than 5%
759
- await this.revertOptimization(optimization);
760
- } else {
761
- // Keep optimization and record success
762
- this.recordOptimizationSuccess(optimization, impact);
763
- }
764
-
765
- } catch (error) {
766
- console.error(`Failed to apply optimization:`, error);
767
- await this.revertOptimization(optimization);
768
- }
769
- }
770
- }
771
- }
772
- ```
773
-
774
- ## MCP Integration Hooks
775
-
776
- ### Performance Metrics Storage
777
- ```javascript
778
- // Store comprehensive benchmark results
779
- await this.mcpTools.memory_usage({
780
- action: 'store',
781
- key: `benchmark_results_${protocol}_${Date.now()}`,
782
- value: JSON.stringify({
783
- protocol: protocol,
784
- timestamp: Date.now(),
785
- throughput: throughputResults,
786
- latency: latencyResults,
787
- resourceUsage: resourceResults,
788
- optimizations: appliedOptimizations
789
- }),
790
- namespace: 'performance_benchmarks',
791
- ttl: 604800000 // 7 days
792
- });
793
-
794
- // Real-time performance monitoring
795
- await this.mcpTools.metrics_collect({
796
- components: [
797
- 'consensus_throughput',
798
- 'consensus_latency_p99',
799
- 'cpu_utilization',
800
- 'memory_usage',
801
- 'network_io_rate'
802
- ]
803
- });
804
- ```
805
-
806
- ### Neural Performance Learning
807
- ```javascript
808
- // Learn performance optimization patterns
809
- await this.mcpTools.neural_patterns({
810
- action: 'learn',
811
- operation: 'performance_optimization',
812
- outcome: JSON.stringify({
813
- optimizationType: optimization.type,
814
- performanceGain: measurementResults.improvement,
815
- resourceImpact: measurementResults.resourceDelta,
816
- networkConditions: currentNetworkState
817
- })
818
- });
819
-
820
- // Predict optimal configurations
821
- const configPrediction = await this.mcpTools.neural_predict({
822
- modelId: 'consensus_performance_model',
823
- input: JSON.stringify({
824
- workloadPattern: currentWorkload,
825
- networkTopology: networkState,
826
- resourceConstraints: systemResources
827
- })
828
- });
829
- ```
830
-
831
- This Performance Benchmarker provides comprehensive performance analysis, optimization recommendations, and adaptive tuning capabilities for distributed consensus protocols.