monomind 1.10.0 → 1.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/.claude/commands/monomind/understand.md +111 -70
  2. package/.claude/settings.local.json +1 -2
  3. package/package.json +1 -1
  4. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.d.ts +32 -0
  5. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.d.ts.map +1 -0
  6. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.js +297 -0
  7. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.js.map +1 -0
  8. package/packages/@monomind/cli/bundled-graph/dist/src/build.d.ts +8 -0
  9. package/packages/@monomind/cli/bundled-graph/dist/src/build.d.ts.map +1 -0
  10. package/packages/@monomind/cli/bundled-graph/dist/src/build.js +73 -0
  11. package/packages/@monomind/cli/bundled-graph/dist/src/build.js.map +1 -0
  12. package/packages/@monomind/cli/bundled-graph/dist/src/cache.d.ts +12 -0
  13. package/packages/@monomind/cli/bundled-graph/dist/src/cache.d.ts.map +1 -0
  14. package/packages/@monomind/cli/bundled-graph/dist/src/cache.js +43 -0
  15. package/packages/@monomind/cli/bundled-graph/dist/src/cache.js.map +1 -0
  16. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.d.ts +5 -0
  17. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.d.ts.map +1 -0
  18. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.js +120 -0
  19. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.js.map +1 -0
  20. package/packages/@monomind/cli/bundled-graph/dist/src/detect.d.ts +21 -0
  21. package/packages/@monomind/cli/bundled-graph/dist/src/detect.d.ts.map +1 -0
  22. package/packages/@monomind/cli/bundled-graph/dist/src/detect.js +195 -0
  23. package/packages/@monomind/cli/bundled-graph/dist/src/detect.js.map +1 -0
  24. package/packages/@monomind/cli/bundled-graph/dist/src/export.d.ts +21 -0
  25. package/packages/@monomind/cli/bundled-graph/dist/src/export.d.ts.map +1 -0
  26. package/packages/@monomind/cli/bundled-graph/dist/src/export.js +68 -0
  27. package/packages/@monomind/cli/bundled-graph/dist/src/export.js.map +1 -0
  28. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.d.ts +20 -0
  29. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.d.ts.map +1 -0
  30. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.js +158 -0
  31. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.js.map +1 -0
  32. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.d.ts +3 -0
  33. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.d.ts.map +1 -0
  34. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.js +88 -0
  35. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.js.map +1 -0
  36. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.d.ts +3 -0
  37. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.d.ts.map +1 -0
  38. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.js +121 -0
  39. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.js.map +1 -0
  40. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.d.ts +3 -0
  41. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.d.ts.map +1 -0
  42. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.js +121 -0
  43. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.js.map +1 -0
  44. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.d.ts +3 -0
  45. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.d.ts.map +1 -0
  46. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.js +181 -0
  47. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.js.map +1 -0
  48. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.d.ts +3 -0
  49. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.d.ts.map +1 -0
  50. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.js +117 -0
  51. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.js.map +1 -0
  52. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.d.ts +3 -0
  53. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.d.ts.map +1 -0
  54. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.js +112 -0
  55. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.js.map +1 -0
  56. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.d.ts +3 -0
  57. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.d.ts.map +1 -0
  58. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.js +130 -0
  59. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.js.map +1 -0
  60. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.d.ts +3 -0
  61. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.d.ts.map +1 -0
  62. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.js +230 -0
  63. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.js.map +1 -0
  64. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.d.ts +3 -0
  65. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.d.ts.map +1 -0
  66. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.js +120 -0
  67. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.js.map +1 -0
  68. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.d.ts +3 -0
  69. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.d.ts.map +1 -0
  70. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.js +195 -0
  71. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.js.map +1 -0
  72. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.d.ts +3 -0
  73. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.d.ts.map +1 -0
  74. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.js +110 -0
  75. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.js.map +1 -0
  76. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.d.ts +3 -0
  77. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.d.ts.map +1 -0
  78. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.js +122 -0
  79. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.js.map +1 -0
  80. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.d.ts +3 -0
  81. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.d.ts.map +1 -0
  82. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.js +295 -0
  83. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.js.map +1 -0
  84. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.d.ts +38 -0
  85. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.d.ts.map +1 -0
  86. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.js +242 -0
  87. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.js.map +1 -0
  88. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts +48 -0
  89. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts.map +1 -0
  90. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.js +137 -0
  91. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.js.map +1 -0
  92. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.d.ts +7 -0
  93. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.d.ts.map +1 -0
  94. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.js +2 -0
  95. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.js.map +1 -0
  96. package/packages/@monomind/cli/bundled-graph/dist/src/index.d.ts +28 -0
  97. package/packages/@monomind/cli/bundled-graph/dist/src/index.d.ts.map +1 -0
  98. package/packages/@monomind/cli/bundled-graph/dist/src/index.js +26 -0
  99. package/packages/@monomind/cli/bundled-graph/dist/src/index.js.map +1 -0
  100. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.d.ts +27 -0
  101. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.d.ts.map +1 -0
  102. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.js +269 -0
  103. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.js.map +1 -0
  104. package/packages/@monomind/cli/bundled-graph/dist/src/report.d.ts +26 -0
  105. package/packages/@monomind/cli/bundled-graph/dist/src/report.d.ts.map +1 -0
  106. package/packages/@monomind/cli/bundled-graph/dist/src/report.js +214 -0
  107. package/packages/@monomind/cli/bundled-graph/dist/src/report.js.map +1 -0
  108. package/packages/@monomind/cli/bundled-graph/dist/src/types.d.ts +124 -0
  109. package/packages/@monomind/cli/bundled-graph/dist/src/types.d.ts.map +1 -0
  110. package/packages/@monomind/cli/bundled-graph/dist/src/types.js +2 -0
  111. package/packages/@monomind/cli/bundled-graph/dist/src/types.js.map +1 -0
  112. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.d.ts +4 -0
  113. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.d.ts.map +1 -0
  114. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.js +574 -0
  115. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.js.map +1 -0
  116. package/packages/@monomind/cli/dist/src/agents/halt-signal.d.ts +25 -0
  117. package/packages/@monomind/cli/dist/src/agents/halt-signal.js +76 -0
  118. package/packages/@monomind/cli/dist/src/agents/index.d.ts +18 -0
  119. package/packages/@monomind/cli/dist/src/agents/index.js +13 -0
  120. package/packages/@monomind/cli/dist/src/agents/managed-agent.d.ts +41 -0
  121. package/packages/@monomind/cli/dist/src/agents/managed-agent.js +69 -0
  122. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.d.ts +23 -0
  123. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.js +49 -0
  124. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.d.ts +22 -0
  125. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.js +80 -0
  126. package/packages/@monomind/cli/dist/src/agents/registry-builder.d.ts +36 -0
  127. package/packages/@monomind/cli/dist/src/agents/registry-builder.js +200 -0
  128. package/packages/@monomind/cli/dist/src/agents/registry-query.d.ts +71 -0
  129. package/packages/@monomind/cli/dist/src/agents/registry-query.js +125 -0
  130. package/packages/@monomind/cli/dist/src/agents/score-decay.d.ts +19 -0
  131. package/packages/@monomind/cli/dist/src/agents/score-decay.js +22 -0
  132. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.d.ts +13 -0
  133. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.js +40 -0
  134. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.d.ts +54 -0
  135. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.js +212 -0
  136. package/packages/@monomind/cli/dist/src/agents/termination-watcher.d.ts +30 -0
  137. package/packages/@monomind/cli/dist/src/agents/termination-watcher.js +84 -0
  138. package/packages/@monomind/cli/dist/src/agents/trigger-index.d.ts +20 -0
  139. package/packages/@monomind/cli/dist/src/agents/trigger-index.js +38 -0
  140. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.d.ts +64 -0
  141. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.js +308 -0
  142. package/packages/@monomind/cli/dist/src/agents/version-diff.d.ts +18 -0
  143. package/packages/@monomind/cli/dist/src/agents/version-diff.js +64 -0
  144. package/packages/@monomind/cli/dist/src/agents/version-store.d.ts +60 -0
  145. package/packages/@monomind/cli/dist/src/agents/version-store.js +235 -0
  146. package/packages/@monomind/cli/dist/src/autopilot-state.d.ts +77 -0
  147. package/packages/@monomind/cli/dist/src/autopilot-state.js +330 -0
  148. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.d.ts +87 -0
  149. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.js +273 -0
  150. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.d.ts +36 -0
  151. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.js +114 -0
  152. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  153. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.js +404 -0
  154. package/packages/@monomind/cli/dist/src/commands/agent-wasm.d.ts +14 -0
  155. package/packages/@monomind/cli/dist/src/commands/agent-wasm.js +333 -0
  156. package/packages/@monomind/cli/dist/src/commands/agent.d.ts +8 -0
  157. package/packages/@monomind/cli/dist/src/commands/agent.js +943 -0
  158. package/packages/@monomind/cli/dist/src/commands/analyze.d.ts +19 -0
  159. package/packages/@monomind/cli/dist/src/commands/analyze.js +2048 -0
  160. package/packages/@monomind/cli/dist/src/commands/appliance-advanced.d.ts +9 -0
  161. package/packages/@monomind/cli/dist/src/commands/appliance-advanced.js +238 -0
  162. package/packages/@monomind/cli/dist/src/commands/appliance.d.ts +8 -0
  163. package/packages/@monomind/cli/dist/src/commands/appliance.js +406 -0
  164. package/packages/@monomind/cli/dist/src/commands/autopilot.d.ts +15 -0
  165. package/packages/@monomind/cli/dist/src/commands/autopilot.js +362 -0
  166. package/packages/@monomind/cli/dist/src/commands/benchmark.d.ts +10 -0
  167. package/packages/@monomind/cli/dist/src/commands/benchmark.js +571 -0
  168. package/packages/@monomind/cli/dist/src/commands/claims.d.ts +10 -0
  169. package/packages/@monomind/cli/dist/src/commands/claims.js +632 -0
  170. package/packages/@monomind/cli/dist/src/commands/cleanup.d.ts +13 -0
  171. package/packages/@monomind/cli/dist/src/commands/cleanup.js +218 -0
  172. package/packages/@monomind/cli/dist/src/commands/completions.d.ts +10 -0
  173. package/packages/@monomind/cli/dist/src/commands/completions.js +539 -0
  174. package/packages/@monomind/cli/dist/src/commands/config.d.ts +8 -0
  175. package/packages/@monomind/cli/dist/src/commands/config.js +460 -0
  176. package/packages/@monomind/cli/dist/src/commands/daemon.d.ts +8 -0
  177. package/packages/@monomind/cli/dist/src/commands/daemon.js +671 -0
  178. package/packages/@monomind/cli/dist/src/commands/deployment.d.ts +10 -0
  179. package/packages/@monomind/cli/dist/src/commands/deployment.js +691 -0
  180. package/packages/@monomind/cli/dist/src/commands/doctor.d.ts +10 -0
  181. package/packages/@monomind/cli/dist/src/commands/doctor.js +647 -0
  182. package/packages/@monomind/cli/dist/src/commands/embeddings.d.ts +18 -0
  183. package/packages/@monomind/cli/dist/src/commands/embeddings.js +1652 -0
  184. package/packages/@monomind/cli/dist/src/commands/guidance.d.ts +8 -0
  185. package/packages/@monomind/cli/dist/src/commands/guidance.js +560 -0
  186. package/packages/@monomind/cli/dist/src/commands/hive-mind.d.ts +11 -0
  187. package/packages/@monomind/cli/dist/src/commands/hive-mind.js +1238 -0
  188. package/packages/@monomind/cli/dist/src/commands/hooks.d.ts +8 -0
  189. package/packages/@monomind/cli/dist/src/commands/hooks.js +4446 -0
  190. package/packages/@monomind/cli/dist/src/commands/index.d.ts +119 -0
  191. package/packages/@monomind/cli/dist/src/commands/index.js +404 -0
  192. package/packages/@monomind/cli/dist/src/commands/init.d.ts +8 -0
  193. package/packages/@monomind/cli/dist/src/commands/init.js +853 -0
  194. package/packages/@monomind/cli/dist/src/commands/issues.d.ts +21 -0
  195. package/packages/@monomind/cli/dist/src/commands/issues.js +567 -0
  196. package/packages/@monomind/cli/dist/src/commands/mcp.d.ts +11 -0
  197. package/packages/@monomind/cli/dist/src/commands/mcp.js +705 -0
  198. package/packages/@monomind/cli/dist/src/commands/memory.d.ts +8 -0
  199. package/packages/@monomind/cli/dist/src/commands/memory.js +1596 -0
  200. package/packages/@monomind/cli/dist/src/commands/migrate.d.ts +8 -0
  201. package/packages/@monomind/cli/dist/src/commands/migrate.js +790 -0
  202. package/packages/@monomind/cli/dist/src/commands/monograph.d.ts +8 -0
  203. package/packages/@monomind/cli/dist/src/commands/monograph.js +526 -0
  204. package/packages/@monomind/cli/dist/src/commands/neural.d.ts +10 -0
  205. package/packages/@monomind/cli/dist/src/commands/neural.js +1494 -0
  206. package/packages/@monomind/cli/dist/src/commands/performance.d.ts +10 -0
  207. package/packages/@monomind/cli/dist/src/commands/performance.js +601 -0
  208. package/packages/@monomind/cli/dist/src/commands/plugins.d.ts +11 -0
  209. package/packages/@monomind/cli/dist/src/commands/plugins.js +796 -0
  210. package/packages/@monomind/cli/dist/src/commands/process.d.ts +10 -0
  211. package/packages/@monomind/cli/dist/src/commands/process.js +718 -0
  212. package/packages/@monomind/cli/dist/src/commands/progress.d.ts +11 -0
  213. package/packages/@monomind/cli/dist/src/commands/progress.js +259 -0
  214. package/packages/@monomind/cli/dist/src/commands/providers.d.ts +10 -0
  215. package/packages/@monomind/cli/dist/src/commands/providers.js +391 -0
  216. package/packages/@monomind/cli/dist/src/commands/replay.d.ts +8 -0
  217. package/packages/@monomind/cli/dist/src/commands/replay.js +60 -0
  218. package/packages/@monomind/cli/dist/src/commands/route.d.ts +16 -0
  219. package/packages/@monomind/cli/dist/src/commands/route.js +939 -0
  220. package/packages/@monomind/cli/dist/src/commands/ruvector/backup.d.ts +11 -0
  221. package/packages/@monomind/cli/dist/src/commands/ruvector/backup.js +746 -0
  222. package/packages/@monomind/cli/dist/src/commands/ruvector/benchmark.d.ts +11 -0
  223. package/packages/@monomind/cli/dist/src/commands/ruvector/benchmark.js +489 -0
  224. package/packages/@monomind/cli/dist/src/commands/ruvector/import.d.ts +18 -0
  225. package/packages/@monomind/cli/dist/src/commands/ruvector/import.js +359 -0
  226. package/packages/@monomind/cli/dist/src/commands/ruvector/index.d.ts +29 -0
  227. package/packages/@monomind/cli/dist/src/commands/ruvector/index.js +129 -0
  228. package/packages/@monomind/cli/dist/src/commands/ruvector/init.d.ts +11 -0
  229. package/packages/@monomind/cli/dist/src/commands/ruvector/init.js +481 -0
  230. package/packages/@monomind/cli/dist/src/commands/ruvector/migrate.d.ts +11 -0
  231. package/packages/@monomind/cli/dist/src/commands/ruvector/migrate.js +497 -0
  232. package/packages/@monomind/cli/dist/src/commands/ruvector/optimize.d.ts +11 -0
  233. package/packages/@monomind/cli/dist/src/commands/ruvector/optimize.js +504 -0
  234. package/packages/@monomind/cli/dist/src/commands/ruvector/setup.d.ts +18 -0
  235. package/packages/@monomind/cli/dist/src/commands/ruvector/setup.js +765 -0
  236. package/packages/@monomind/cli/dist/src/commands/ruvector/status.d.ts +11 -0
  237. package/packages/@monomind/cli/dist/src/commands/ruvector/status.js +491 -0
  238. package/packages/@monomind/cli/dist/src/commands/security.d.ts +10 -0
  239. package/packages/@monomind/cli/dist/src/commands/security.js +943 -0
  240. package/packages/@monomind/cli/dist/src/commands/session.d.ts +8 -0
  241. package/packages/@monomind/cli/dist/src/commands/session.js +793 -0
  242. package/packages/@monomind/cli/dist/src/commands/start.d.ts +8 -0
  243. package/packages/@monomind/cli/dist/src/commands/start.js +432 -0
  244. package/packages/@monomind/cli/dist/src/commands/status.d.ts +8 -0
  245. package/packages/@monomind/cli/dist/src/commands/status.js +591 -0
  246. package/packages/@monomind/cli/dist/src/commands/swarm.d.ts +8 -0
  247. package/packages/@monomind/cli/dist/src/commands/swarm.js +812 -0
  248. package/packages/@monomind/cli/dist/src/commands/task.d.ts +8 -0
  249. package/packages/@monomind/cli/dist/src/commands/task.js +671 -0
  250. package/packages/@monomind/cli/dist/src/commands/tokens.d.ts +8 -0
  251. package/packages/@monomind/cli/dist/src/commands/tokens.js +107 -0
  252. package/packages/@monomind/cli/dist/src/commands/transfer-store.d.ts +13 -0
  253. package/packages/@monomind/cli/dist/src/commands/transfer-store.js +428 -0
  254. package/packages/@monomind/cli/dist/src/commands/ui.js +68 -0
  255. package/packages/@monomind/cli/dist/src/commands/update.d.ts +8 -0
  256. package/packages/@monomind/cli/dist/src/commands/update.js +276 -0
  257. package/packages/@monomind/cli/dist/src/commands/workflow.d.ts +8 -0
  258. package/packages/@monomind/cli/dist/src/commands/workflow.js +644 -0
  259. package/packages/@monomind/cli/dist/src/config-adapter.d.ts +16 -0
  260. package/packages/@monomind/cli/dist/src/config-adapter.js +186 -0
  261. package/packages/@monomind/cli/dist/src/consensus/audit-writer.d.ts +50 -0
  262. package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +142 -0
  263. package/packages/@monomind/cli/dist/src/consensus/index.d.ts +7 -0
  264. package/packages/@monomind/cli/dist/src/consensus/index.js +6 -0
  265. package/packages/@monomind/cli/dist/src/consensus/vote-signer.d.ts +36 -0
  266. package/packages/@monomind/cli/dist/src/consensus/vote-signer.js +71 -0
  267. package/packages/@monomind/cli/dist/src/context/context-provider.d.ts +44 -0
  268. package/packages/@monomind/cli/dist/src/context/context-provider.js +25 -0
  269. package/packages/@monomind/cli/dist/src/context/git-state-provider.d.ts +12 -0
  270. package/packages/@monomind/cli/dist/src/context/git-state-provider.js +34 -0
  271. package/packages/@monomind/cli/dist/src/context/index.d.ts +12 -0
  272. package/packages/@monomind/cli/dist/src/context/index.js +12 -0
  273. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.d.ts +15 -0
  274. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.js +19 -0
  275. package/packages/@monomind/cli/dist/src/context/prompt-assembler.d.ts +26 -0
  276. package/packages/@monomind/cli/dist/src/context/prompt-assembler.js +93 -0
  277. package/packages/@monomind/cli/dist/src/context/task-history-provider.d.ts +24 -0
  278. package/packages/@monomind/cli/dist/src/context/task-history-provider.js +32 -0
  279. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.d.ts +14 -0
  280. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.js +27 -0
  281. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.d.ts +31 -0
  282. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.js +81 -0
  283. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.d.ts +27 -0
  284. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.js +90 -0
  285. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.d.ts +24 -0
  286. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.js +65 -0
  287. package/packages/@monomind/cli/dist/src/dlq/index.d.ts +10 -0
  288. package/packages/@monomind/cli/dist/src/dlq/index.js +7 -0
  289. package/packages/@monomind/cli/dist/src/eval/dataset-manager.d.ts +33 -0
  290. package/packages/@monomind/cli/dist/src/eval/dataset-manager.js +107 -0
  291. package/packages/@monomind/cli/dist/src/eval/dataset-runner.d.ts +23 -0
  292. package/packages/@monomind/cli/dist/src/eval/dataset-runner.js +59 -0
  293. package/packages/@monomind/cli/dist/src/eval/index.d.ts +10 -0
  294. package/packages/@monomind/cli/dist/src/eval/index.js +7 -0
  295. package/packages/@monomind/cli/dist/src/eval/trace-collector.d.ts +40 -0
  296. package/packages/@monomind/cli/dist/src/eval/trace-collector.js +102 -0
  297. package/packages/@monomind/cli/dist/src/index.d.ts +82 -0
  298. package/packages/@monomind/cli/dist/src/index.js +580 -0
  299. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  300. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.js +264 -0
  301. package/packages/@monomind/cli/dist/src/init/claudemd-generator.d.ts +25 -0
  302. package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +558 -0
  303. package/packages/@monomind/cli/dist/src/init/executor.d.ts +38 -0
  304. package/packages/@monomind/cli/dist/src/init/executor.js +2172 -0
  305. package/packages/@monomind/cli/dist/src/init/helpers-generator.d.ts +60 -0
  306. package/packages/@monomind/cli/dist/src/init/helpers-generator.js +1235 -0
  307. package/packages/@monomind/cli/dist/src/init/index.d.ts +13 -0
  308. package/packages/@monomind/cli/dist/src/init/index.js +15 -0
  309. package/packages/@monomind/cli/dist/src/init/mcp-generator.d.ts +26 -0
  310. package/packages/@monomind/cli/dist/src/init/mcp-generator.js +99 -0
  311. package/packages/@monomind/cli/dist/src/init/settings-generator.d.ts +14 -0
  312. package/packages/@monomind/cli/dist/src/init/settings-generator.js +417 -0
  313. package/packages/@monomind/cli/dist/src/init/shared-instructions-generator.d.ts +38 -0
  314. package/packages/@monomind/cli/dist/src/init/shared-instructions-generator.js +586 -0
  315. package/packages/@monomind/cli/dist/src/init/statusline-generator.d.ts +25 -0
  316. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +1171 -0
  317. package/packages/@monomind/cli/dist/src/init/types.d.ts +315 -0
  318. package/packages/@monomind/cli/dist/src/init/types.js +254 -0
  319. package/packages/@monomind/cli/dist/src/interactive/interrupt.d.ts +22 -0
  320. package/packages/@monomind/cli/dist/src/interactive/interrupt.js +71 -0
  321. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.d.ts +25 -0
  322. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.js +48 -0
  323. package/packages/@monomind/cli/dist/src/mcp/tool-registry.d.ts +61 -0
  324. package/packages/@monomind/cli/dist/src/mcp/tool-registry.js +246 -0
  325. package/packages/@monomind/cli/dist/src/mcp-client.d.ts +92 -0
  326. package/packages/@monomind/cli/dist/src/mcp-client.js +270 -0
  327. package/packages/@monomind/cli/dist/src/mcp-server.d.ts +170 -0
  328. package/packages/@monomind/cli/dist/src/mcp-server.js +829 -0
  329. package/packages/@monomind/cli/dist/src/mcp-tools/a2a-tools.d.ts +14 -0
  330. package/packages/@monomind/cli/dist/src/mcp-tools/a2a-tools.js +244 -0
  331. package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.d.ts +9 -0
  332. package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.js +607 -0
  333. package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.d.ts +30 -0
  334. package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.js +596 -0
  335. package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  336. package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.js +326 -0
  337. package/packages/@monomind/cli/dist/src/mcp-tools/auto-install.d.ts +83 -0
  338. package/packages/@monomind/cli/dist/src/mcp-tools/auto-install.js +129 -0
  339. package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.d.ts +12 -0
  340. package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.js +237 -0
  341. package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.d.ts +13 -0
  342. package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.js +729 -0
  343. package/packages/@monomind/cli/dist/src/mcp-tools/claims-tools.d.ts +12 -0
  344. package/packages/@monomind/cli/dist/src/mcp-tools/claims-tools.js +797 -0
  345. package/packages/@monomind/cli/dist/src/mcp-tools/config-tools.d.ts +8 -0
  346. package/packages/@monomind/cli/dist/src/mcp-tools/config-tools.js +381 -0
  347. package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
  348. package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.js +728 -0
  349. package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.d.ts +13 -0
  350. package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.js +509 -0
  351. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
  352. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +823 -0
  353. package/packages/@monomind/cli/dist/src/mcp-tools/github-tools.d.ts +9 -0
  354. package/packages/@monomind/cli/dist/src/mcp-tools/github-tools.js +485 -0
  355. package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.d.ts +10 -0
  356. package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.js +49 -0
  357. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.d.ts +15 -0
  358. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +646 -0
  359. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  360. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +957 -0
  361. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.d.ts +44 -0
  362. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +3440 -0
  363. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +39 -0
  364. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +41 -0
  365. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.d.ts +14 -0
  366. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +530 -0
  367. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.d.ts +9 -0
  368. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +6306 -0
  369. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.d.ts +16 -0
  370. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +718 -0
  371. package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.d.ts +16 -0
  372. package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.js +656 -0
  373. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.d.ts +14 -0
  374. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.js +350 -0
  375. package/packages/@monomind/cli/dist/src/mcp-tools/request-tracker.d.ts +17 -0
  376. package/packages/@monomind/cli/dist/src/mcp-tools/request-tracker.js +30 -0
  377. package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
  378. package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.js +295 -0
  379. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.d.ts +18 -0
  380. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.js +434 -0
  381. package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.d.ts +8 -0
  382. package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.js +378 -0
  383. package/packages/@monomind/cli/dist/src/mcp-tools/swarm-tools.d.ts +9 -0
  384. package/packages/@monomind/cli/dist/src/mcp-tools/swarm-tools.js +317 -0
  385. package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.d.ts +13 -0
  386. package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.js +552 -0
  387. package/packages/@monomind/cli/dist/src/mcp-tools/task-tools.d.ts +8 -0
  388. package/packages/@monomind/cli/dist/src/mcp-tools/task-tools.js +446 -0
  389. package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.d.ts +8 -0
  390. package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.js +309 -0
  391. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
  392. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.js +401 -0
  393. package/packages/@monomind/cli/dist/src/mcp-tools/types.d.ts +37 -0
  394. package/packages/@monomind/cli/dist/src/mcp-tools/types.js +14 -0
  395. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.d.ts +9 -0
  396. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.js +230 -0
  397. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  398. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +631 -0
  399. package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.d.ts +295 -0
  400. package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.js +632 -0
  401. package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +338 -0
  402. package/packages/@monomind/cli/dist/src/memory/intelligence.js +1049 -0
  403. package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +410 -0
  404. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +1654 -0
  405. package/packages/@monomind/cli/dist/src/memory/memory-initializer.d.ts +414 -0
  406. package/packages/@monomind/cli/dist/src/memory/memory-initializer.js +2284 -0
  407. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.d.ts +234 -0
  408. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.js +650 -0
  409. package/packages/@monomind/cli/dist/src/model/complexity-scorer.d.ts +21 -0
  410. package/packages/@monomind/cli/dist/src/model/complexity-scorer.js +106 -0
  411. package/packages/@monomind/cli/dist/src/model/index.d.ts +4 -0
  412. package/packages/@monomind/cli/dist/src/model/index.js +4 -0
  413. package/packages/@monomind/cli/dist/src/model/model-settings.d.ts +22 -0
  414. package/packages/@monomind/cli/dist/src/model/model-settings.js +33 -0
  415. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.d.ts +24 -0
  416. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.js +65 -0
  417. package/packages/@monomind/cli/dist/src/observability/replay-reader.d.ts +40 -0
  418. package/packages/@monomind/cli/dist/src/observability/replay-reader.js +138 -0
  419. package/packages/@monomind/cli/dist/src/orchestration/index.d.ts +7 -0
  420. package/packages/@monomind/cli/dist/src/orchestration/index.js +6 -0
  421. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.d.ts +11 -0
  422. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.js +31 -0
  423. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.d.ts +68 -0
  424. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.js +180 -0
  425. package/packages/@monomind/cli/dist/src/output.d.ts +133 -0
  426. package/packages/@monomind/cli/dist/src/output.js +514 -0
  427. package/packages/@monomind/cli/dist/src/parser.d.ts +59 -0
  428. package/packages/@monomind/cli/dist/src/parser.js +459 -0
  429. package/packages/@monomind/cli/dist/src/plugins/manager.d.ts +133 -0
  430. package/packages/@monomind/cli/dist/src/plugins/manager.js +493 -0
  431. package/packages/@monomind/cli/dist/src/plugins/store/discovery.d.ts +88 -0
  432. package/packages/@monomind/cli/dist/src/plugins/store/discovery.js +859 -0
  433. package/packages/@monomind/cli/dist/src/plugins/store/index.d.ts +76 -0
  434. package/packages/@monomind/cli/dist/src/plugins/store/index.js +141 -0
  435. package/packages/@monomind/cli/dist/src/plugins/store/search.d.ts +46 -0
  436. package/packages/@monomind/cli/dist/src/plugins/store/search.js +230 -0
  437. package/packages/@monomind/cli/dist/src/plugins/store/types.d.ts +274 -0
  438. package/packages/@monomind/cli/dist/src/plugins/store/types.js +7 -0
  439. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  440. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  441. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  442. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.js +188 -0
  443. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  444. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.js +206 -0
  445. package/packages/@monomind/cli/dist/src/production/circuit-breaker.d.ts +101 -0
  446. package/packages/@monomind/cli/dist/src/production/circuit-breaker.js +248 -0
  447. package/packages/@monomind/cli/dist/src/production/error-handler.d.ts +94 -0
  448. package/packages/@monomind/cli/dist/src/production/error-handler.js +321 -0
  449. package/packages/@monomind/cli/dist/src/production/index.d.ts +23 -0
  450. package/packages/@monomind/cli/dist/src/production/index.js +18 -0
  451. package/packages/@monomind/cli/dist/src/production/monitoring.d.ts +161 -0
  452. package/packages/@monomind/cli/dist/src/production/monitoring.js +360 -0
  453. package/packages/@monomind/cli/dist/src/production/rate-limiter.d.ts +80 -0
  454. package/packages/@monomind/cli/dist/src/production/rate-limiter.js +209 -0
  455. package/packages/@monomind/cli/dist/src/production/retry.d.ts +48 -0
  456. package/packages/@monomind/cli/dist/src/production/retry.js +179 -0
  457. package/packages/@monomind/cli/dist/src/prompt.d.ts +44 -0
  458. package/packages/@monomind/cli/dist/src/prompt.js +501 -0
  459. package/packages/@monomind/cli/dist/src/runtime/headless.d.ts +60 -0
  460. package/packages/@monomind/cli/dist/src/runtime/headless.js +284 -0
  461. package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.d.ts +182 -0
  462. package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.js +316 -0
  463. package/packages/@monomind/cli/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  464. package/packages/@monomind/cli/dist/src/ruvector/ast-analyzer.js +277 -0
  465. package/packages/@monomind/cli/dist/src/ruvector/coverage-router.d.ts +160 -0
  466. package/packages/@monomind/cli/dist/src/ruvector/coverage-router.js +539 -0
  467. package/packages/@monomind/cli/dist/src/ruvector/coverage-tools.d.ts +33 -0
  468. package/packages/@monomind/cli/dist/src/ruvector/coverage-tools.js +157 -0
  469. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.d.ts +176 -0
  470. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.js +718 -0
  471. package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  472. package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.js +551 -0
  473. package/packages/@monomind/cli/dist/src/ruvector/flash-attention.d.ts +195 -0
  474. package/packages/@monomind/cli/dist/src/ruvector/flash-attention.js +643 -0
  475. package/packages/@monomind/cli/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  476. package/packages/@monomind/cli/dist/src/ruvector/graph-analyzer.js +929 -0
  477. package/packages/@monomind/cli/dist/src/ruvector/index.d.ts +39 -0
  478. package/packages/@monomind/cli/dist/src/ruvector/index.js +76 -0
  479. package/packages/@monomind/cli/dist/src/ruvector/lora-adapter.d.ts +218 -0
  480. package/packages/@monomind/cli/dist/src/ruvector/lora-adapter.js +455 -0
  481. package/packages/@monomind/cli/dist/src/ruvector/model-router.d.ts +222 -0
  482. package/packages/@monomind/cli/dist/src/ruvector/model-router.js +512 -0
  483. package/packages/@monomind/cli/dist/src/ruvector/moe-router.d.ts +213 -0
  484. package/packages/@monomind/cli/dist/src/ruvector/moe-router.js +649 -0
  485. package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.d.ts +217 -0
  486. package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.js +712 -0
  487. package/packages/@monomind/cli/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  488. package/packages/@monomind/cli/dist/src/ruvector/ruvllm-wasm.js +363 -0
  489. package/packages/@monomind/cli/dist/src/ruvector/semantic-router.d.ts +77 -0
  490. package/packages/@monomind/cli/dist/src/ruvector/semantic-router.js +178 -0
  491. package/packages/@monomind/cli/dist/src/ruvector/vector-db.d.ts +69 -0
  492. package/packages/@monomind/cli/dist/src/ruvector/vector-db.js +243 -0
  493. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  494. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.js +95 -0
  495. package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +206 -0
  496. package/packages/@monomind/cli/dist/src/services/claim-service.js +849 -0
  497. package/packages/@monomind/cli/dist/src/services/config-file-manager.d.ts +51 -0
  498. package/packages/@monomind/cli/dist/src/services/config-file-manager.js +312 -0
  499. package/packages/@monomind/cli/dist/src/services/container-worker-pool.d.ts +197 -0
  500. package/packages/@monomind/cli/dist/src/services/container-worker-pool.js +623 -0
  501. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.d.ts +311 -0
  502. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +1167 -0
  503. package/packages/@monomind/cli/dist/src/services/index.d.ts +13 -0
  504. package/packages/@monomind/cli/dist/src/services/index.js +11 -0
  505. package/packages/@monomind/cli/dist/src/services/registry-api.d.ts +58 -0
  506. package/packages/@monomind/cli/dist/src/services/registry-api.js +199 -0
  507. package/packages/@monomind/cli/dist/src/services/ruvector-training.d.ts +222 -0
  508. package/packages/@monomind/cli/dist/src/services/ruvector-training.js +696 -0
  509. package/packages/@monomind/cli/dist/src/services/worker-daemon.d.ts +248 -0
  510. package/packages/@monomind/cli/dist/src/services/worker-daemon.js +1083 -0
  511. package/packages/@monomind/cli/dist/src/services/worker-queue.d.ts +201 -0
  512. package/packages/@monomind/cli/dist/src/services/worker-queue.js +594 -0
  513. package/packages/@monomind/cli/dist/src/suggest.d.ts +53 -0
  514. package/packages/@monomind/cli/dist/src/suggest.js +209 -0
  515. package/packages/@monomind/cli/dist/src/swarm/communication-graph.d.ts +25 -0
  516. package/packages/@monomind/cli/dist/src/swarm/communication-graph.js +77 -0
  517. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.d.ts +31 -0
  518. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.js +61 -0
  519. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.d.ts +19 -0
  520. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.js +68 -0
  521. package/packages/@monomind/cli/dist/src/transfer/anonymization/index.d.ts +25 -0
  522. package/packages/@monomind/cli/dist/src/transfer/anonymization/index.js +177 -0
  523. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  524. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.js +205 -0
  525. package/packages/@monomind/cli/dist/src/transfer/export.d.ts +25 -0
  526. package/packages/@monomind/cli/dist/src/transfer/export.js +115 -0
  527. package/packages/@monomind/cli/dist/src/transfer/index.d.ts +12 -0
  528. package/packages/@monomind/cli/dist/src/transfer/index.js +31 -0
  529. package/packages/@monomind/cli/dist/src/transfer/ipfs/client.d.ts +109 -0
  530. package/packages/@monomind/cli/dist/src/transfer/ipfs/client.js +384 -0
  531. package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.d.ts +95 -0
  532. package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.js +420 -0
  533. package/packages/@monomind/cli/dist/src/transfer/models/seraphine.d.ts +72 -0
  534. package/packages/@monomind/cli/dist/src/transfer/models/seraphine.js +373 -0
  535. package/packages/@monomind/cli/dist/src/transfer/serialization/cfp.d.ts +49 -0
  536. package/packages/@monomind/cli/dist/src/transfer/serialization/cfp.js +183 -0
  537. package/packages/@monomind/cli/dist/src/transfer/storage/gcs.d.ts +82 -0
  538. package/packages/@monomind/cli/dist/src/transfer/storage/gcs.js +281 -0
  539. package/packages/@monomind/cli/dist/src/transfer/storage/index.d.ts +6 -0
  540. package/packages/@monomind/cli/dist/src/transfer/storage/index.js +6 -0
  541. package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +91 -0
  542. package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +437 -0
  543. package/packages/@monomind/cli/dist/src/transfer/store/download.d.ts +79 -0
  544. package/packages/@monomind/cli/dist/src/transfer/store/download.js +423 -0
  545. package/packages/@monomind/cli/dist/src/transfer/store/index.d.ts +84 -0
  546. package/packages/@monomind/cli/dist/src/transfer/store/index.js +153 -0
  547. package/packages/@monomind/cli/dist/src/transfer/store/publish.d.ts +76 -0
  548. package/packages/@monomind/cli/dist/src/transfer/store/publish.js +293 -0
  549. package/packages/@monomind/cli/dist/src/transfer/store/registry.d.ts +58 -0
  550. package/packages/@monomind/cli/dist/src/transfer/store/registry.js +301 -0
  551. package/packages/@monomind/cli/dist/src/transfer/store/search.d.ts +54 -0
  552. package/packages/@monomind/cli/dist/src/transfer/store/search.js +232 -0
  553. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  554. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.js +190 -0
  555. package/packages/@monomind/cli/dist/src/transfer/store/types.d.ts +193 -0
  556. package/packages/@monomind/cli/dist/src/transfer/store/types.js +6 -0
  557. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.d.ts +6 -0
  558. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.js +105 -0
  559. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.d.ts +7 -0
  560. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.js +214 -0
  561. package/packages/@monomind/cli/dist/src/transfer/types.d.ts +245 -0
  562. package/packages/@monomind/cli/dist/src/transfer/types.js +6 -0
  563. package/packages/@monomind/cli/dist/src/types.d.ts +198 -0
  564. package/packages/@monomind/cli/dist/src/types.js +38 -0
  565. package/packages/@monomind/cli/dist/src/update/checker.d.ts +34 -0
  566. package/packages/@monomind/cli/dist/src/update/checker.js +198 -0
  567. package/packages/@monomind/cli/dist/src/update/executor.d.ts +32 -0
  568. package/packages/@monomind/cli/dist/src/update/executor.js +186 -0
  569. package/packages/@monomind/cli/dist/src/update/index.d.ts +33 -0
  570. package/packages/@monomind/cli/dist/src/update/index.js +64 -0
  571. package/packages/@monomind/cli/dist/src/update/rate-limiter.d.ts +31 -0
  572. package/packages/@monomind/cli/dist/src/update/rate-limiter.js +116 -0
  573. package/packages/@monomind/cli/dist/src/update/validator.d.ts +17 -0
  574. package/packages/@monomind/cli/dist/src/update/validator.js +118 -0
  575. package/packages/@monomind/cli/dist/src/utils/parse-jsonl.d.ts +6 -0
  576. package/packages/@monomind/cli/dist/src/utils/parse-jsonl.js +22 -0
  577. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.d.ts +10 -0
  578. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.js +82 -0
  579. package/packages/@monomind/cli/dist/src/workflow/context-resolver.d.ts +12 -0
  580. package/packages/@monomind/cli/dist/src/workflow/context-resolver.js +23 -0
  581. package/packages/@monomind/cli/dist/src/workflow/dag-builder.d.ts +17 -0
  582. package/packages/@monomind/cli/dist/src/workflow/dag-builder.js +129 -0
  583. package/packages/@monomind/cli/dist/src/workflow/dag-executor.d.ts +9 -0
  584. package/packages/@monomind/cli/dist/src/workflow/dag-executor.js +116 -0
  585. package/packages/@monomind/cli/dist/src/workflow/dag-types.d.ts +41 -0
  586. package/packages/@monomind/cli/dist/src/workflow/dag-types.js +8 -0
  587. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.d.ts +12 -0
  588. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.js +20 -0
  589. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.d.ts +165 -0
  590. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.js +82 -0
  591. package/packages/@monomind/cli/dist/src/workflow/index.d.ts +13 -0
  592. package/packages/@monomind/cli/dist/src/workflow/index.js +11 -0
  593. package/packages/@monomind/cli/dist/src/workflow/template-engine.d.ts +11 -0
  594. package/packages/@monomind/cli/dist/src/workflow/template-engine.js +40 -0
  595. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.d.ts +29 -0
  596. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.js +227 -0
  597. package/packages/@monomind/cli/package.json +2 -1
@@ -0,0 +1,728 @@
1
+ /**
2
+ * Coordination MCP Tools for CLI
3
+ *
4
+ * V2 Compatibility - Swarm coordination and orchestration tools
5
+ *
6
+ * ⚠️ IMPORTANT: These tools provide LOCAL STATE MANAGEMENT.
7
+ * - Topology/consensus state is tracked locally
8
+ * - No actual distributed coordination
9
+ * - Useful for single-machine workflow orchestration
10
+ */
11
+ import { getProjectCwd } from './types.js';
12
+ import { existsSync, readFileSync, writeFileSync, renameSync, mkdirSync } from 'node:fs';
13
+ import { join } from 'node:path';
14
+ // Storage paths
15
+ const STORAGE_DIR = '.monomind';
16
+ const COORD_DIR = 'coordination';
17
+ const COORD_FILE = 'store.json';
18
+ function getCoordDir() {
19
+ return join(getProjectCwd(), STORAGE_DIR, COORD_DIR);
20
+ }
21
+ function getCoordPath() {
22
+ return join(getCoordDir(), COORD_FILE);
23
+ }
24
+ function ensureCoordDir() {
25
+ const dir = getCoordDir();
26
+ if (!existsSync(dir)) {
27
+ mkdirSync(dir, { recursive: true });
28
+ }
29
+ }
30
+ function loadCoordStore() {
31
+ try {
32
+ const path = getCoordPath();
33
+ if (existsSync(path)) {
34
+ return JSON.parse(readFileSync(path, 'utf-8'));
35
+ }
36
+ }
37
+ catch {
38
+ // Return default store
39
+ }
40
+ return {
41
+ topology: {
42
+ type: 'hierarchical',
43
+ maxNodes: 15,
44
+ redundancy: 2,
45
+ consensusAlgorithm: 'raft',
46
+ },
47
+ loadBalance: {
48
+ algorithm: 'adaptive',
49
+ weights: {},
50
+ healthCheck: true,
51
+ },
52
+ sync: {
53
+ lastSync: new Date().toISOString(),
54
+ syncCount: 0,
55
+ conflicts: 0,
56
+ pendingChanges: 0,
57
+ },
58
+ nodes: {},
59
+ version: '3.0.0',
60
+ };
61
+ }
62
+ function saveCoordStore(store) {
63
+ ensureCoordDir();
64
+ const dest = getCoordPath();
65
+ const tmp = dest + '.tmp';
66
+ writeFileSync(tmp, JSON.stringify(store, null, 2), 'utf-8');
67
+ renameSync(tmp, dest);
68
+ }
69
+ export const coordinationTools = [
70
+ {
71
+ name: 'coordination_topology',
72
+ description: 'Configure swarm topology',
73
+ category: 'coordination',
74
+ inputSchema: {
75
+ type: 'object',
76
+ properties: {
77
+ action: { type: 'string', enum: ['get', 'set', 'optimize'], description: 'Action to perform' },
78
+ type: { type: 'string', enum: ['mesh', 'hierarchical', 'ring', 'star', 'hybrid', 'hierarchical-mesh'], description: 'Topology type' },
79
+ maxNodes: { type: 'number', description: 'Maximum nodes' },
80
+ redundancy: { type: 'number', description: 'Redundancy level' },
81
+ consensusAlgorithm: { type: 'string', enum: ['raft', 'byzantine', 'gossip', 'crdt'], description: 'Consensus algorithm' },
82
+ },
83
+ },
84
+ handler: async (input) => {
85
+ const store = loadCoordStore();
86
+ const action = input.action || 'get';
87
+ if (action === 'get') {
88
+ return {
89
+ success: true,
90
+ topology: store.topology,
91
+ nodes: Object.keys(store.nodes).length,
92
+ status: 'active',
93
+ };
94
+ }
95
+ if (action === 'set') {
96
+ if (input.type)
97
+ store.topology.type = input.type;
98
+ if (input.maxNodes)
99
+ store.topology.maxNodes = input.maxNodes;
100
+ if (input.redundancy)
101
+ store.topology.redundancy = input.redundancy;
102
+ if (input.consensusAlgorithm)
103
+ store.topology.consensusAlgorithm = input.consensusAlgorithm;
104
+ saveCoordStore(store);
105
+ return {
106
+ success: true,
107
+ action: 'updated',
108
+ topology: store.topology,
109
+ };
110
+ }
111
+ if (action === 'optimize') {
112
+ // Analyze current state and suggest optimal topology
113
+ const nodeCount = Object.keys(store.nodes).length;
114
+ let recommended = 'hierarchical';
115
+ if (nodeCount <= 5) {
116
+ recommended = 'mesh';
117
+ }
118
+ else if (nodeCount <= 15) {
119
+ recommended = 'hierarchical';
120
+ }
121
+ else {
122
+ recommended = 'hybrid';
123
+ }
124
+ return {
125
+ success: true,
126
+ action: 'optimize',
127
+ current: store.topology.type,
128
+ recommended,
129
+ reason: nodeCount <= 5
130
+ ? 'Small cluster benefits from full mesh connectivity'
131
+ : nodeCount <= 15
132
+ ? 'Medium cluster works well with hierarchical coordination'
133
+ : 'Large cluster needs hybrid approach for scalability',
134
+ };
135
+ }
136
+ return { success: false, error: 'Unknown action' };
137
+ },
138
+ },
139
+ {
140
+ name: 'coordination_load_balance',
141
+ description: 'Configure load balancing',
142
+ category: 'coordination',
143
+ inputSchema: {
144
+ type: 'object',
145
+ properties: {
146
+ action: { type: 'string', enum: ['get', 'set', 'distribute'], description: 'Action to perform' },
147
+ algorithm: { type: 'string', enum: ['round-robin', 'least-connections', 'weighted', 'adaptive'], description: 'Algorithm' },
148
+ weights: { type: 'object', description: 'Node weights' },
149
+ task: { type: 'string', description: 'Task to distribute' },
150
+ },
151
+ },
152
+ handler: async (input) => {
153
+ const store = loadCoordStore();
154
+ const action = input.action || 'get';
155
+ if (action === 'get') {
156
+ const nodes = Object.values(store.nodes);
157
+ const avgLoad = nodes.length > 0
158
+ ? nodes.reduce((sum, n) => sum + n.load, 0) / nodes.length
159
+ : 0;
160
+ return {
161
+ success: true,
162
+ loadBalance: store.loadBalance,
163
+ metrics: {
164
+ nodeCount: nodes.length,
165
+ avgLoad,
166
+ maxLoad: nodes.length > 0 ? Math.max(...nodes.map(n => n.load)) : 0,
167
+ minLoad: nodes.length > 0 ? Math.min(...nodes.map(n => n.load)) : 0,
168
+ },
169
+ };
170
+ }
171
+ if (action === 'set') {
172
+ if (input.algorithm)
173
+ store.loadBalance.algorithm = input.algorithm;
174
+ if (input.weights)
175
+ store.loadBalance.weights = input.weights;
176
+ saveCoordStore(store);
177
+ return {
178
+ success: true,
179
+ action: 'updated',
180
+ loadBalance: store.loadBalance,
181
+ };
182
+ }
183
+ if (action === 'distribute') {
184
+ const task = input.task;
185
+ const nodes = Object.values(store.nodes).filter(n => n.status === 'active');
186
+ if (nodes.length === 0) {
187
+ return { success: false, error: 'No active nodes available' };
188
+ }
189
+ // Select node based on algorithm
190
+ let selectedNode;
191
+ const algorithm = store.loadBalance.algorithm;
192
+ if (algorithm === 'least-connections' || algorithm === 'adaptive') {
193
+ selectedNode = nodes.reduce((min, n) => n.load < min.load ? n : min);
194
+ }
195
+ else if (algorithm === 'weighted') {
196
+ const weights = store.loadBalance.weights;
197
+ selectedNode = nodes.reduce((max, n) => (weights[n.id] || 1) > (weights[max.id] || 1) ? n : max);
198
+ }
199
+ else {
200
+ // Round robin - just pick first active
201
+ selectedNode = nodes[0];
202
+ }
203
+ // Update load
204
+ selectedNode.load += 1;
205
+ saveCoordStore(store);
206
+ return {
207
+ success: true,
208
+ action: 'distributed',
209
+ task,
210
+ assignedTo: selectedNode.id,
211
+ algorithm,
212
+ nodeLoad: selectedNode.load,
213
+ };
214
+ }
215
+ return { success: false, error: 'Unknown action' };
216
+ },
217
+ },
218
+ {
219
+ name: 'coordination_sync',
220
+ description: 'Synchronize state across nodes',
221
+ category: 'coordination',
222
+ inputSchema: {
223
+ type: 'object',
224
+ properties: {
225
+ action: { type: 'string', enum: ['status', 'trigger', 'resolve'], description: 'Action to perform' },
226
+ force: { type: 'boolean', description: 'Force synchronization' },
227
+ conflictResolution: { type: 'string', enum: ['latest', 'merge', 'manual'], description: 'Conflict resolution strategy' },
228
+ },
229
+ },
230
+ handler: async (input) => {
231
+ const store = loadCoordStore();
232
+ const action = input.action || 'status';
233
+ if (action === 'status') {
234
+ const timeSinceSync = Date.now() - new Date(store.sync.lastSync).getTime();
235
+ return {
236
+ success: true,
237
+ sync: store.sync,
238
+ timeSinceSync: `${Math.floor(timeSinceSync / 1000)}s`,
239
+ status: store.sync.conflicts > 0 ? 'conflicts' : store.sync.pendingChanges > 0 ? 'pending' : 'synced',
240
+ };
241
+ }
242
+ if (action === 'trigger') {
243
+ store.sync.syncCount++;
244
+ store.sync.lastSync = new Date().toISOString();
245
+ store.sync.pendingChanges = 0;
246
+ // Simulate sync
247
+ await new Promise(resolve => setTimeout(resolve, 50));
248
+ saveCoordStore(store);
249
+ return {
250
+ success: true,
251
+ action: 'synchronized',
252
+ syncCount: store.sync.syncCount,
253
+ syncedAt: store.sync.lastSync,
254
+ nodesSync: Object.keys(store.nodes).length,
255
+ };
256
+ }
257
+ if (action === 'resolve') {
258
+ const strategy = input.conflictResolution || 'latest';
259
+ if (store.sync.conflicts > 0) {
260
+ const resolved = store.sync.conflicts;
261
+ store.sync.conflicts = 0;
262
+ saveCoordStore(store);
263
+ return {
264
+ success: true,
265
+ action: 'resolved',
266
+ strategy,
267
+ conflictsResolved: resolved,
268
+ };
269
+ }
270
+ return {
271
+ success: true,
272
+ action: 'resolve',
273
+ message: 'No conflicts to resolve',
274
+ };
275
+ }
276
+ return { success: false, error: 'Unknown action' };
277
+ },
278
+ },
279
+ {
280
+ name: 'coordination_node',
281
+ description: 'Manage coordination nodes',
282
+ category: 'coordination',
283
+ inputSchema: {
284
+ type: 'object',
285
+ properties: {
286
+ action: { type: 'string', enum: ['list', 'add', 'remove', 'heartbeat'], description: 'Action to perform' },
287
+ nodeId: { type: 'string', description: 'Node ID' },
288
+ status: { type: 'string', description: 'Node status' },
289
+ },
290
+ },
291
+ handler: async (input) => {
292
+ const store = loadCoordStore();
293
+ const action = input.action || 'list';
294
+ if (action === 'list') {
295
+ const nodes = Object.values(store.nodes);
296
+ return {
297
+ success: true,
298
+ nodes: nodes.map(n => ({
299
+ id: n.id,
300
+ status: n.status,
301
+ load: n.load,
302
+ lastHeartbeat: n.lastHeartbeat,
303
+ })),
304
+ total: nodes.length,
305
+ active: nodes.filter(n => n.status === 'active').length,
306
+ };
307
+ }
308
+ const FORBIDDEN_NODE_IDS = new Set(['__proto__', 'constructor', 'prototype']);
309
+ const MAX_NODES = 1000;
310
+ const MAX_NODE_ID_LEN = 200;
311
+ if (action === 'add') {
312
+ const nodeId = input.nodeId || `node-${Date.now()}`;
313
+ if (typeof nodeId !== 'string' || nodeId.length === 0 || nodeId.length > MAX_NODE_ID_LEN) {
314
+ return { success: false, error: 'Invalid nodeId' };
315
+ }
316
+ if (FORBIDDEN_NODE_IDS.has(nodeId)) {
317
+ return { success: false, error: 'Forbidden node ID' };
318
+ }
319
+ // Cap to prevent unbounded growth → disk exhaustion DoS via repeated
320
+ // add calls. Allow re-add of existing node (no growth in that case).
321
+ if (Object.keys(store.nodes).length >= MAX_NODES && !Object.hasOwn(store.nodes, nodeId)) {
322
+ return { success: false, error: `Node limit reached (${MAX_NODES})` };
323
+ }
324
+ store.nodes[nodeId] = {
325
+ id: nodeId,
326
+ status: 'active',
327
+ load: 0,
328
+ lastHeartbeat: new Date().toISOString(),
329
+ };
330
+ saveCoordStore(store);
331
+ return {
332
+ success: true,
333
+ action: 'added',
334
+ nodeId,
335
+ totalNodes: Object.keys(store.nodes).length,
336
+ };
337
+ }
338
+ if (action === 'remove') {
339
+ const nodeId = input.nodeId;
340
+ // Match the `add` denylist + Object.hasOwn so a tampered store.json
341
+ // can't have its inherited Object.prototype slots exposed via remove.
342
+ if (typeof nodeId !== 'string' || nodeId.length === 0 || nodeId.length > MAX_NODE_ID_LEN ||
343
+ FORBIDDEN_NODE_IDS.has(nodeId)) {
344
+ return { success: false, error: 'Invalid nodeId' };
345
+ }
346
+ if (!Object.hasOwn(store.nodes, nodeId)) {
347
+ return { success: false, error: 'Node not found' };
348
+ }
349
+ delete store.nodes[nodeId];
350
+ saveCoordStore(store);
351
+ return {
352
+ success: true,
353
+ action: 'removed',
354
+ nodeId,
355
+ totalNodes: Object.keys(store.nodes).length,
356
+ };
357
+ }
358
+ if (action === 'heartbeat') {
359
+ const nodeId = input.nodeId;
360
+ if (!nodeId || typeof nodeId !== 'string' || ['__proto__', 'constructor', 'prototype'].includes(nodeId)) {
361
+ return {
362
+ success: false,
363
+ action: 'heartbeat',
364
+ nodeId,
365
+ error: 'Invalid node ID',
366
+ };
367
+ }
368
+ if (Object.hasOwn(store.nodes, nodeId)) {
369
+ store.nodes[nodeId].lastHeartbeat = new Date().toISOString();
370
+ store.nodes[nodeId].status = 'active';
371
+ saveCoordStore(store);
372
+ }
373
+ return {
374
+ success: true,
375
+ action: 'heartbeat',
376
+ nodeId,
377
+ timestamp: new Date().toISOString(),
378
+ };
379
+ }
380
+ return { success: false, error: 'Unknown action' };
381
+ },
382
+ },
383
+ {
384
+ name: 'coordination_consensus',
385
+ description: 'Manage consensus protocol with BFT, Raft, or Quorum strategies',
386
+ category: 'coordination',
387
+ inputSchema: {
388
+ type: 'object',
389
+ properties: {
390
+ action: { type: 'string', enum: ['status', 'propose', 'vote', 'commit'], description: 'Action to perform' },
391
+ proposal: { type: 'object', description: 'Proposal data (for propose)' },
392
+ proposalId: { type: 'string', description: 'Proposal ID (for vote/commit/status)' },
393
+ vote: { type: 'string', enum: ['accept', 'reject'], description: 'Vote' },
394
+ voterId: { type: 'string', description: 'Voter node ID' },
395
+ strategy: { type: 'string', enum: ['bft', 'raft', 'quorum'], description: 'Consensus strategy (default: raft)' },
396
+ quorumPreset: { type: 'string', enum: ['unanimous', 'majority', 'supermajority'], description: 'Quorum threshold preset (default: majority)' },
397
+ term: { type: 'number', description: 'Term number (for raft strategy)' },
398
+ },
399
+ },
400
+ handler: async (input) => {
401
+ const store = loadCoordStore();
402
+ const action = input.action || 'status';
403
+ const strategy = input.strategy || 'raft';
404
+ const nodeCount = Object.keys(store.nodes).length || 1;
405
+ // Initialize consensus storage in the coordination store if missing
406
+ if (!store.consensus) {
407
+ store.consensus = { pending: [], history: [] };
408
+ }
409
+ const consensus = store.consensus;
410
+ function calcRequired(strat, total, preset) {
411
+ if (total <= 0)
412
+ return 1;
413
+ if (strat === 'bft')
414
+ return Math.floor((total * 2) / 3) + 1;
415
+ if (strat === 'quorum') {
416
+ if (preset === 'unanimous')
417
+ return total;
418
+ if (preset === 'supermajority')
419
+ return Math.floor((total * 2) / 3) + 1;
420
+ }
421
+ return Math.floor(total / 2) + 1;
422
+ }
423
+ if (action === 'status') {
424
+ if (input.proposalId) {
425
+ // Status for specific proposal
426
+ const p = consensus.pending.find(x => x.proposalId === input.proposalId);
427
+ if (p) {
428
+ const votesFor = Object.values(p.votes).filter(v => v).length;
429
+ const votesAgainst = Object.values(p.votes).filter(v => !v).length;
430
+ return {
431
+ success: true,
432
+ proposalId: p.proposalId,
433
+ strategy: p.strategy,
434
+ status: p.status,
435
+ votesFor,
436
+ votesAgainst,
437
+ required: calcRequired(p.strategy, nodeCount, p.quorumPreset),
438
+ totalNodes: nodeCount,
439
+ resolved: false,
440
+ };
441
+ }
442
+ const h = consensus.history.find(x => x.proposalId === input.proposalId);
443
+ if (h)
444
+ return { success: true, ...h, resolved: true, historical: true };
445
+ return { success: false, error: 'Proposal not found' };
446
+ }
447
+ const quorum = calcRequired(strategy, nodeCount);
448
+ return {
449
+ success: true,
450
+ algorithm: store.topology.consensusAlgorithm,
451
+ strategy,
452
+ nodes: nodeCount,
453
+ quorum,
454
+ pendingProposals: consensus.pending.length,
455
+ resolvedProposals: consensus.history.length,
456
+ status: nodeCount >= quorum ? 'operational' : 'degraded',
457
+ };
458
+ }
459
+ if (action === 'propose') {
460
+ const proposalId = `proposal-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
461
+ const quorumPreset = input.quorumPreset || 'majority';
462
+ const term = input.term || 1;
463
+ const required = calcRequired(strategy, nodeCount, quorumPreset);
464
+ // Raft: one pending proposal per term
465
+ if (strategy === 'raft') {
466
+ const existing = consensus.pending.find(p => p.strategy === 'raft' && p.term === term);
467
+ if (existing) {
468
+ return {
469
+ success: false,
470
+ error: `Raft term ${term} already has pending proposal: ${existing.proposalId}`,
471
+ existingProposalId: existing.proposalId,
472
+ };
473
+ }
474
+ }
475
+ if (consensus.pending.length >= 200) {
476
+ return { success: false, error: 'Pending proposals limit (200) reached. Resolve existing proposals first.' };
477
+ }
478
+ // Validate proposal size and shape — schema only declares object,
479
+ // so without these checks an attacker could submit a 10MB blob 200x
480
+ // and inflate store.json to 2GB on every saveCoordStore.
481
+ if (input.proposal === null || typeof input.proposal !== 'object' || Array.isArray(input.proposal)) {
482
+ return { success: false, error: 'proposal must be a plain object' };
483
+ }
484
+ let proposalSerialized;
485
+ try {
486
+ proposalSerialized = JSON.stringify(input.proposal);
487
+ }
488
+ catch {
489
+ return { success: false, error: 'proposal contains non-serializable values' };
490
+ }
491
+ if (proposalSerialized.length > 64 * 1024) {
492
+ return { success: false, error: 'proposal exceeds 64KB limit' };
493
+ }
494
+ consensus.pending.push({
495
+ proposalId,
496
+ type: 'coordination',
497
+ proposal: input.proposal,
498
+ proposedBy: input.voterId || 'system',
499
+ proposedAt: new Date().toISOString(),
500
+ votes: {},
501
+ status: 'pending',
502
+ strategy,
503
+ term: strategy === 'raft' ? term : undefined,
504
+ quorumPreset: strategy === 'quorum' ? quorumPreset : undefined,
505
+ byzantineVoters: strategy === 'bft' ? [] : undefined,
506
+ });
507
+ saveCoordStore(store);
508
+ return {
509
+ success: true,
510
+ action: 'proposed',
511
+ proposalId,
512
+ proposal: input.proposal,
513
+ strategy,
514
+ status: 'pending',
515
+ required,
516
+ totalNodes: nodeCount,
517
+ term: strategy === 'raft' ? term : undefined,
518
+ };
519
+ }
520
+ if (action === 'vote') {
521
+ const p = consensus.pending.find(x => x.proposalId === input.proposalId);
522
+ if (!p)
523
+ return { success: false, error: 'Proposal not found or already resolved' };
524
+ const voterId = input.voterId;
525
+ if (!voterId)
526
+ return { success: false, error: 'voterId is required' };
527
+ const voteValue = input.vote === 'accept';
528
+ const pStrategy = p.strategy || 'raft';
529
+ const required = calcRequired(pStrategy, nodeCount, p.quorumPreset);
530
+ // Double-vote prevention
531
+ if (voterId in p.votes) {
532
+ if (pStrategy === 'bft' && p.votes[voterId] !== voteValue) {
533
+ if (!p.byzantineVoters)
534
+ p.byzantineVoters = [];
535
+ if (!p.byzantineVoters.includes(voterId))
536
+ p.byzantineVoters.push(voterId);
537
+ delete p.votes[voterId];
538
+ saveCoordStore(store);
539
+ return {
540
+ success: false,
541
+ byzantineDetected: true,
542
+ message: `Byzantine behavior: voter ${voterId} attempted conflicting vote. Vote invalidated.`,
543
+ byzantineVoters: p.byzantineVoters,
544
+ };
545
+ }
546
+ return { success: false, error: `Voter ${voterId} has already voted on this proposal` };
547
+ }
548
+ // BFT cross-proposal conflict check
549
+ if (pStrategy === 'bft') {
550
+ for (const other of consensus.pending) {
551
+ if (other.proposalId === p.proposalId)
552
+ continue;
553
+ if (voterId in other.votes && other.votes[voterId] !== voteValue) {
554
+ if (!p.byzantineVoters)
555
+ p.byzantineVoters = [];
556
+ if (!p.byzantineVoters.includes(voterId))
557
+ p.byzantineVoters.push(voterId);
558
+ saveCoordStore(store);
559
+ return {
560
+ success: false,
561
+ byzantineDetected: true,
562
+ message: `Byzantine behavior: voter ${voterId} cast conflicting votes across proposals.`,
563
+ byzantineVoters: p.byzantineVoters,
564
+ };
565
+ }
566
+ }
567
+ }
568
+ p.votes[voterId] = voteValue;
569
+ const votesFor = Object.values(p.votes).filter(v => v).length;
570
+ const votesAgainst = Object.values(p.votes).filter(v => !v).length;
571
+ // Resolution check
572
+ let resolved = false;
573
+ let result;
574
+ if (votesFor >= required) {
575
+ resolved = true;
576
+ result = 'approved';
577
+ }
578
+ else if (votesAgainst >= required) {
579
+ resolved = true;
580
+ result = 'rejected';
581
+ }
582
+ else if (pStrategy === 'quorum' && p.quorumPreset === 'unanimous' && votesAgainst > 0) {
583
+ resolved = true;
584
+ result = 'rejected';
585
+ }
586
+ if (resolved && result) {
587
+ p.status = result;
588
+ consensus.history.push({
589
+ proposalId: p.proposalId,
590
+ result,
591
+ votes: { for: votesFor, against: votesAgainst },
592
+ decidedAt: new Date().toISOString(),
593
+ strategy: pStrategy,
594
+ term: p.term,
595
+ byzantineDetected: p.byzantineVoters?.length ? p.byzantineVoters : undefined,
596
+ });
597
+ // Cap consensus history to prevent unbounded growth
598
+ const MAX_CONSENSUS_HISTORY = 1000;
599
+ if (consensus.history.length > MAX_CONSENSUS_HISTORY) {
600
+ consensus.history = consensus.history.slice(-MAX_CONSENSUS_HISTORY);
601
+ }
602
+ consensus.pending = consensus.pending.filter(x => x.proposalId !== p.proposalId);
603
+ }
604
+ saveCoordStore(store);
605
+ return {
606
+ success: true,
607
+ action: 'voted',
608
+ proposalId: p.proposalId,
609
+ voterId,
610
+ vote: input.vote,
611
+ strategy: pStrategy,
612
+ votesFor,
613
+ votesAgainst,
614
+ required,
615
+ totalNodes: nodeCount,
616
+ resolved,
617
+ result: resolved ? result : undefined,
618
+ status: p.status,
619
+ };
620
+ }
621
+ if (action === 'commit') {
622
+ // Commit is a no-op confirmation for already-resolved proposals
623
+ if (input.proposalId) {
624
+ const h = consensus.history.find(x => x.proposalId === input.proposalId);
625
+ if (h) {
626
+ return {
627
+ success: true,
628
+ action: 'committed',
629
+ proposalId: input.proposalId,
630
+ result: h.result,
631
+ committedAt: new Date().toISOString(),
632
+ };
633
+ }
634
+ return { success: false, error: 'Proposal not found in resolved history. Vote must reach quorum first.' };
635
+ }
636
+ return { success: false, error: 'proposalId is required for commit' };
637
+ }
638
+ return { success: false, error: 'Unknown action' };
639
+ },
640
+ },
641
+ {
642
+ name: 'coordination_orchestrate',
643
+ description: 'Orchestrate multi-agent coordination',
644
+ category: 'coordination',
645
+ inputSchema: {
646
+ type: 'object',
647
+ properties: {
648
+ task: { type: 'string', description: 'Task to orchestrate' },
649
+ agents: { type: 'array', items: { type: 'string' }, description: 'Agent IDs to coordinate' },
650
+ strategy: { type: 'string', enum: ['parallel', 'sequential', 'pipeline', 'broadcast'], description: 'Orchestration strategy' },
651
+ timeout: { type: 'number', description: 'Timeout in ms' },
652
+ },
653
+ required: ['task'],
654
+ },
655
+ handler: async (input) => {
656
+ const store = loadCoordStore();
657
+ const task = input.task;
658
+ const agents = input.agents || Object.keys(store.nodes);
659
+ const strategy = input.strategy || 'parallel';
660
+ const orchestrationId = `orch-${Date.now()}`;
661
+ return {
662
+ success: true,
663
+ orchestrationId,
664
+ task,
665
+ strategy,
666
+ agents,
667
+ status: 'initiated',
668
+ topology: store.topology.type,
669
+ estimatedCompletion: `${agents.length * (strategy === 'sequential' ? 100 : 50)}ms`,
670
+ };
671
+ },
672
+ },
673
+ {
674
+ name: 'coordination_metrics',
675
+ description: 'Get coordination metrics',
676
+ category: 'coordination',
677
+ inputSchema: {
678
+ type: 'object',
679
+ properties: {
680
+ metric: { type: 'string', enum: ['all', 'latency', 'throughput', 'availability'], description: 'Metric type' },
681
+ timeRange: { type: 'string', description: 'Time range' },
682
+ },
683
+ },
684
+ handler: async (input) => {
685
+ const store = loadCoordStore();
686
+ const metric = input.metric || 'all';
687
+ const nodes = Object.values(store.nodes);
688
+ const activeNodes = nodes.filter(n => n.status === 'active');
689
+ const metrics = {
690
+ latency: {
691
+ avg: null,
692
+ p50: null,
693
+ p95: null,
694
+ p99: null,
695
+ unit: 'ms',
696
+ _note: 'Real-time latency metrics not available — coordination is state-tracking only',
697
+ },
698
+ throughput: {
699
+ current: null,
700
+ peak: null,
701
+ avg: null,
702
+ unit: 'ops/s',
703
+ _note: 'Real-time throughput metrics not available — coordination is state-tracking only',
704
+ },
705
+ availability: {
706
+ uptime: null,
707
+ _note: 'Uptime not tracked — coordination store has no persistent start time',
708
+ activeNodes: activeNodes.length,
709
+ totalNodes: nodes.length,
710
+ syncCount: store.sync.syncCount,
711
+ lastSync: store.sync.lastSync,
712
+ conflicts: store.sync.conflicts,
713
+ pendingChanges: store.sync.pendingChanges,
714
+ syncStatus: store.sync.conflicts === 0 ? 'healthy' : 'conflicts',
715
+ },
716
+ };
717
+ if (metric === 'all') {
718
+ return { success: true, metrics };
719
+ }
720
+ return {
721
+ success: true,
722
+ metric,
723
+ data: metrics[metric],
724
+ };
725
+ },
726
+ },
727
+ ];
728
+ //# sourceMappingURL=coordination-tools.js.map