@monoes/monomindcli 1.10.57 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/.claude/agents/core/coordinator.md +71 -0
  2. package/.claude/agents/generated/case-analyst.md +50 -0
  3. package/.claude/agents/generated/copy-editor.md +45 -0
  4. package/.claude/agents/generated/court-reporter.md +50 -0
  5. package/.claude/agents/generated/defender.md +51 -0
  6. package/.claude/agents/generated/editor-in-chief.md +45 -0
  7. package/.claude/agents/generated/fact-checker.md +45 -0
  8. package/.claude/agents/generated/judge.md +51 -0
  9. package/.claude/agents/generated/prosecutor.md +51 -0
  10. package/.claude/agents/generated/reporter.md +45 -0
  11. package/.claude/commands/hooks/README.md +1 -1
  12. package/.claude/commands/hooks/overview.md +1 -1
  13. package/.claude/commands/mastermind/_repeat.md +1 -1
  14. package/.claude/commands/mastermind/do.md +3 -1
  15. package/.claude/commands/mastermind/help.md +2 -2
  16. package/.claude/commands/mastermind/master.md +39 -6
  17. package/.claude/commands/mastermind/memory.md +1 -1
  18. package/.claude/commands/memory/memory-search.md +2 -2
  19. package/.claude/commands/monitoring/status.md +1 -1
  20. package/.claude/commands/{browse.md → monobrowse.md} +2 -2
  21. package/.claude/commands/sparc.md +1 -1
  22. package/.claude/helpers/handlers/graph-status-handler.cjs +1 -1
  23. package/.claude/helpers/loop-tracker.cjs +1 -1
  24. package/.claude/skills/agent-browser-testing/SKILL.md +1 -1
  25. package/.claude/skills/hooks-automation/SKILL.md +0 -3
  26. package/.claude/skills/mastermind/build.md +1 -1
  27. package/.claude/skills/mastermind/code-quality-reviewer-prompt.md +60 -0
  28. package/.claude/skills/mastermind/content.md +1 -1
  29. package/.claude/skills/mastermind/createorg.md +79 -2
  30. package/.claude/skills/mastermind/design.md +3 -1
  31. package/.claude/skills/mastermind/finance.md +1 -1
  32. package/.claude/skills/mastermind/implementer-prompt.md +109 -0
  33. package/.claude/skills/mastermind/marketing.md +1 -1
  34. package/.claude/skills/mastermind/ops.md +1 -1
  35. package/.claude/skills/mastermind/plan.md +20 -2
  36. package/.claude/skills/mastermind/release.md +1 -1
  37. package/.claude/skills/mastermind/research.md +1 -1
  38. package/.claude/skills/mastermind/review.md +1 -1
  39. package/.claude/skills/mastermind/sales.md +1 -1
  40. package/.claude/skills/mastermind/spec-reviewer-prompt.md +63 -0
  41. package/.claude/skills/sparc-methodology/SKILL.md +3 -3
  42. package/.claude/skills/swarm-advanced/SKILL.md +1 -4
  43. package/README.md +18 -32
  44. package/dist/src/agents/registry-builder.d.ts +1 -7
  45. package/dist/src/agents/registry-builder.d.ts.map +1 -1
  46. package/dist/src/agents/registry-builder.js +10 -6
  47. package/dist/src/agents/registry-builder.js.map +1 -1
  48. package/dist/src/benchmarks/benchmark-runner.d.ts +59 -12
  49. package/dist/src/benchmarks/benchmark-runner.d.ts.map +1 -1
  50. package/dist/src/benchmarks/benchmark-runner.js +67 -13
  51. package/dist/src/benchmarks/benchmark-runner.js.map +1 -1
  52. package/dist/src/benchmarks/metric-evaluators.d.ts.map +1 -1
  53. package/dist/src/benchmarks/metric-evaluators.js.map +1 -1
  54. package/dist/src/benchmarks/pretrain/index.d.ts +0 -13
  55. package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -1
  56. package/dist/src/benchmarks/pretrain/index.js.map +1 -1
  57. package/dist/src/commands/agent-wasm.d.ts +2 -2
  58. package/dist/src/commands/agent-wasm.js +5 -5
  59. package/dist/src/commands/agent.d.ts.map +1 -1
  60. package/dist/src/commands/agent.js +1 -6
  61. package/dist/src/commands/agent.js.map +1 -1
  62. package/dist/src/commands/analyze.d.ts +1 -1
  63. package/dist/src/commands/analyze.d.ts.map +1 -1
  64. package/dist/src/commands/analyze.js +8 -18
  65. package/dist/src/commands/analyze.js.map +1 -1
  66. package/dist/src/commands/doctor.d.ts.map +1 -1
  67. package/dist/src/commands/doctor.js +53 -3
  68. package/dist/src/commands/doctor.js.map +1 -1
  69. package/dist/src/commands/embeddings.d.ts.map +1 -1
  70. package/dist/src/commands/embeddings.js +9 -33
  71. package/dist/src/commands/embeddings.js.map +1 -1
  72. package/dist/src/commands/hooks.d.ts.map +1 -1
  73. package/dist/src/commands/hooks.js +24 -76
  74. package/dist/src/commands/hooks.js.map +1 -1
  75. package/dist/src/commands/index.d.ts +4 -6
  76. package/dist/src/commands/index.d.ts.map +1 -1
  77. package/dist/src/commands/index.js +8 -15
  78. package/dist/src/commands/index.js.map +1 -1
  79. package/dist/src/commands/init.js +2 -2
  80. package/dist/src/commands/init.js.map +1 -1
  81. package/dist/src/commands/issues.d.ts.map +1 -1
  82. package/dist/src/commands/issues.js +16 -11
  83. package/dist/src/commands/issues.js.map +1 -1
  84. package/dist/src/commands/memory.js +6 -6
  85. package/dist/src/commands/memory.js.map +1 -1
  86. package/dist/src/commands/migrate.d.ts.map +1 -1
  87. package/dist/src/commands/migrate.js +1 -2
  88. package/dist/src/commands/migrate.js.map +1 -1
  89. package/dist/src/commands/monograph.d.ts.map +1 -1
  90. package/dist/src/commands/monograph.js +18 -11
  91. package/dist/src/commands/monograph.js.map +1 -1
  92. package/dist/src/commands/monovector/backup.d.ts +11 -0
  93. package/dist/src/commands/monovector/backup.d.ts.map +1 -0
  94. package/dist/src/commands/{ruvector → monovector}/backup.js +25 -25
  95. package/dist/src/commands/monovector/backup.js.map +1 -0
  96. package/dist/src/commands/monovector/benchmark.d.ts +11 -0
  97. package/dist/src/commands/monovector/benchmark.d.ts.map +1 -0
  98. package/dist/src/commands/{ruvector → monovector}/benchmark.js +14 -14
  99. package/dist/src/commands/monovector/benchmark.js.map +1 -0
  100. package/dist/src/commands/monovector/import.d.ts +18 -0
  101. package/dist/src/commands/monovector/import.d.ts.map +1 -0
  102. package/dist/src/commands/{ruvector → monovector}/import.js +21 -21
  103. package/dist/src/commands/monovector/import.js.map +1 -0
  104. package/dist/src/commands/{ruvector → monovector}/index.d.ts +6 -6
  105. package/dist/src/commands/monovector/index.d.ts.map +1 -0
  106. package/dist/src/commands/{ruvector → monovector}/index.js +22 -22
  107. package/dist/src/commands/monovector/index.js.map +1 -0
  108. package/dist/src/commands/monovector/init.d.ts +11 -0
  109. package/dist/src/commands/monovector/init.d.ts.map +1 -0
  110. package/dist/src/commands/{ruvector → monovector}/init.js +36 -36
  111. package/dist/src/commands/monovector/init.js.map +1 -0
  112. package/dist/src/commands/monovector/migrate.d.ts +11 -0
  113. package/dist/src/commands/monovector/migrate.d.ts.map +1 -0
  114. package/dist/src/commands/{ruvector → monovector}/migrate.js +16 -16
  115. package/dist/src/commands/monovector/migrate.js.map +1 -0
  116. package/dist/src/commands/{ruvector → monovector}/optimize.d.ts +2 -2
  117. package/dist/src/commands/monovector/optimize.d.ts.map +1 -0
  118. package/dist/src/commands/{ruvector → monovector}/optimize.js +10 -10
  119. package/dist/src/commands/monovector/optimize.js.map +1 -0
  120. package/dist/src/commands/monovector/setup.d.ts +18 -0
  121. package/dist/src/commands/monovector/setup.d.ts.map +1 -0
  122. package/dist/src/commands/{ruvector → monovector}/setup.js +77 -77
  123. package/dist/src/commands/monovector/setup.js.map +1 -0
  124. package/dist/src/commands/{ruvector → monovector}/status.d.ts +2 -2
  125. package/dist/src/commands/monovector/status.d.ts.map +1 -0
  126. package/dist/src/commands/{ruvector → monovector}/status.js +34 -34
  127. package/dist/src/commands/monovector/status.js.map +1 -0
  128. package/dist/src/commands/neural.d.ts +1 -1
  129. package/dist/src/commands/neural.d.ts.map +1 -1
  130. package/dist/src/commands/neural.js +31 -608
  131. package/dist/src/commands/neural.js.map +1 -1
  132. package/dist/src/commands/performance.d.ts.map +1 -1
  133. package/dist/src/commands/performance.js +7 -10
  134. package/dist/src/commands/performance.js.map +1 -1
  135. package/dist/src/commands/plugins.d.ts.map +1 -1
  136. package/dist/src/commands/plugins.js +3 -4
  137. package/dist/src/commands/plugins.js.map +1 -1
  138. package/dist/src/commands/process.d.ts.map +1 -1
  139. package/dist/src/commands/process.js +5 -12
  140. package/dist/src/commands/process.js.map +1 -1
  141. package/dist/src/commands/progress.d.ts.map +1 -1
  142. package/dist/src/commands/progress.js +16 -16
  143. package/dist/src/commands/progress.js.map +1 -1
  144. package/dist/src/commands/replay.d.ts.map +1 -1
  145. package/dist/src/commands/replay.js.map +1 -1
  146. package/dist/src/commands/route.d.ts +2 -2
  147. package/dist/src/commands/route.js +23 -23
  148. package/dist/src/commands/route.js.map +1 -1
  149. package/dist/src/commands/status.d.ts.map +1 -1
  150. package/dist/src/commands/status.js +0 -3
  151. package/dist/src/commands/status.js.map +1 -1
  152. package/dist/src/commands/swarm.d.ts.map +1 -1
  153. package/dist/src/commands/swarm.js +2 -3
  154. package/dist/src/commands/swarm.js.map +1 -1
  155. package/dist/src/config-adapter.d.ts.map +1 -1
  156. package/dist/src/config-adapter.js +27 -0
  157. package/dist/src/config-adapter.js.map +1 -1
  158. package/dist/src/consensus/audit-writer.d.ts +44 -17
  159. package/dist/src/consensus/audit-writer.d.ts.map +1 -1
  160. package/dist/src/consensus/audit-writer.js.map +1 -1
  161. package/dist/src/dlq/dlq-replayer.d.ts +1 -1
  162. package/dist/src/dlq/dlq-replayer.d.ts.map +1 -1
  163. package/dist/src/index.js +5 -5
  164. package/dist/src/index.js.map +1 -1
  165. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  166. package/dist/src/init/claudemd-generator.js +10 -14
  167. package/dist/src/init/claudemd-generator.js.map +1 -1
  168. package/dist/src/init/executor.d.ts.map +1 -1
  169. package/dist/src/init/executor.js +17 -27
  170. package/dist/src/init/executor.js.map +1 -1
  171. package/dist/src/init/helpers-generator.js +2 -2
  172. package/dist/src/init/types.d.ts +1 -1
  173. package/dist/src/init/types.d.ts.map +1 -1
  174. package/dist/src/mcp-client.d.ts.map +1 -1
  175. package/dist/src/mcp-client.js +1 -7
  176. package/dist/src/mcp-client.js.map +1 -1
  177. package/dist/src/mcp-server.d.ts.map +1 -1
  178. package/dist/src/mcp-server.js +9 -1
  179. package/dist/src/mcp-server.js.map +1 -1
  180. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  181. package/dist/src/mcp-tools/agent-tools.js +1 -52
  182. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  183. package/dist/src/mcp-tools/analyze-tools.js +5 -5
  184. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  185. package/dist/src/mcp-tools/browser-tools.d.ts +1 -1
  186. package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
  187. package/dist/src/mcp-tools/browser-tools.js +6 -5
  188. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  189. package/dist/src/mcp-tools/coordination-tools.d.ts +1 -1
  190. package/dist/src/mcp-tools/coordination-tools.d.ts.map +1 -1
  191. package/dist/src/mcp-tools/coordination-tools.js +51 -54
  192. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  193. package/dist/src/mcp-tools/daa-tools.d.ts +1 -1
  194. package/dist/src/mcp-tools/daa-tools.d.ts.map +1 -1
  195. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  196. package/dist/src/mcp-tools/embeddings-tools.js +10 -10
  197. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  198. package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
  199. package/dist/src/mcp-tools/guidance-tools.js +0 -24
  200. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  201. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  202. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  203. package/dist/src/mcp-tools/hooks-tools.js +189 -480
  204. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  205. package/dist/src/mcp-tools/index.d.ts +0 -2
  206. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  207. package/dist/src/mcp-tools/index.js +0 -2
  208. package/dist/src/mcp-tools/index.js.map +1 -1
  209. package/dist/src/mcp-tools/monograph-compat.d.ts +334 -0
  210. package/dist/src/mcp-tools/monograph-compat.d.ts.map +1 -0
  211. package/dist/src/mcp-tools/monograph-compat.js +1108 -0
  212. package/dist/src/mcp-tools/monograph-compat.js.map +1 -0
  213. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  214. package/dist/src/mcp-tools/monograph-tools.js +76 -34
  215. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  216. package/dist/src/mcp-tools/neural-tools.d.ts +1 -1
  217. package/dist/src/mcp-tools/neural-tools.js +2 -2
  218. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  219. package/dist/src/mcp-tools/ruvllm-tools.d.ts +2 -2
  220. package/dist/src/mcp-tools/ruvllm-tools.js +3 -3
  221. package/dist/src/mcp-tools/terminal-tools.d.ts +1 -1
  222. package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
  223. package/dist/src/mcp-tools/terminal-tools.js +29 -19
  224. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  225. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +1 -1
  226. package/dist/src/mcp-tools/wasm-agent-tools.js +2 -2
  227. package/dist/src/memory/intelligence.d.ts.map +1 -1
  228. package/dist/src/memory/intelligence.js +14 -8
  229. package/dist/src/memory/intelligence.js.map +1 -1
  230. package/dist/src/memory/memory-bridge.d.ts +17 -2
  231. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  232. package/dist/src/memory/memory-bridge.js +76 -23
  233. package/dist/src/memory/memory-bridge.js.map +1 -1
  234. package/dist/src/memory/memory-initializer.d.ts +2 -2
  235. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  236. package/dist/src/memory/memory-initializer.js +37 -39
  237. package/dist/src/memory/memory-initializer.js.map +1 -1
  238. package/dist/src/monovector/capabilities.d.ts +34 -0
  239. package/dist/src/monovector/capabilities.d.ts.map +1 -0
  240. package/dist/src/monovector/capabilities.js +37 -0
  241. package/dist/src/monovector/capabilities.js.map +1 -0
  242. package/dist/src/monovector/command-outcomes.d.ts +37 -0
  243. package/dist/src/monovector/command-outcomes.d.ts.map +1 -0
  244. package/dist/src/monovector/command-outcomes.js +87 -0
  245. package/dist/src/monovector/command-outcomes.js.map +1 -0
  246. package/dist/src/monovector/coverage-router.d.ts +103 -0
  247. package/dist/src/monovector/coverage-router.d.ts.map +1 -0
  248. package/dist/src/monovector/coverage-router.js +337 -0
  249. package/dist/src/monovector/coverage-router.js.map +1 -0
  250. package/dist/src/monovector/coverage-tools.d.ts +14 -0
  251. package/dist/src/monovector/coverage-tools.d.ts.map +1 -0
  252. package/dist/src/monovector/coverage-tools.js +112 -0
  253. package/dist/src/monovector/coverage-tools.js.map +1 -0
  254. package/dist/src/{ruvector → monovector}/diff-classifier.d.ts +2 -2
  255. package/dist/src/monovector/diff-classifier.d.ts.map +1 -0
  256. package/dist/src/monovector/diff-classifier.js.map +1 -0
  257. package/dist/src/monovector/index.d.ts +61 -0
  258. package/dist/src/monovector/index.d.ts.map +1 -0
  259. package/dist/src/monovector/index.js +67 -0
  260. package/dist/src/monovector/index.js.map +1 -0
  261. package/dist/src/monovector/init-state.d.ts +35 -0
  262. package/dist/src/monovector/init-state.d.ts.map +1 -0
  263. package/dist/src/monovector/init-state.js +36 -0
  264. package/dist/src/monovector/init-state.js.map +1 -0
  265. package/dist/src/monovector/route-outcomes.d.ts +55 -0
  266. package/dist/src/monovector/route-outcomes.d.ts.map +1 -0
  267. package/dist/src/monovector/route-outcomes.js +137 -0
  268. package/dist/src/monovector/route-outcomes.js.map +1 -0
  269. package/dist/src/parser.js +3 -3
  270. package/dist/src/parser.js.map +1 -1
  271. package/dist/src/plugins/store/discovery.d.ts.map +1 -1
  272. package/dist/src/plugins/store/discovery.js +0 -31
  273. package/dist/src/plugins/store/discovery.js.map +1 -1
  274. package/dist/src/production/circuit-breaker.d.ts +26 -6
  275. package/dist/src/production/circuit-breaker.d.ts.map +1 -1
  276. package/dist/src/production/circuit-breaker.js.map +1 -1
  277. package/dist/src/production/error-handler.d.ts +55 -30
  278. package/dist/src/production/error-handler.d.ts.map +1 -1
  279. package/dist/src/production/error-handler.js.map +1 -1
  280. package/dist/src/production/index.d.ts +3 -20
  281. package/dist/src/production/index.d.ts.map +1 -1
  282. package/dist/src/production/index.js +3 -15
  283. package/dist/src/production/index.js.map +1 -1
  284. package/dist/src/production/monitoring.d.ts +54 -34
  285. package/dist/src/production/monitoring.d.ts.map +1 -1
  286. package/dist/src/production/monitoring.js +12 -14
  287. package/dist/src/production/monitoring.js.map +1 -1
  288. package/dist/src/production/rate-limiter.d.ts +64 -19
  289. package/dist/src/production/rate-limiter.d.ts.map +1 -1
  290. package/dist/src/production/rate-limiter.js +5 -5
  291. package/dist/src/production/rate-limiter.js.map +1 -1
  292. package/dist/src/production/retry.d.ts.map +1 -1
  293. package/dist/src/production/retry.js +4 -2
  294. package/dist/src/production/retry.js.map +1 -1
  295. package/dist/src/services/claim-service.d.ts +50 -59
  296. package/dist/src/services/claim-service.d.ts.map +1 -1
  297. package/dist/src/services/claim-service.js +83 -50
  298. package/dist/src/services/claim-service.js.map +1 -1
  299. package/dist/src/services/config-file-manager.d.ts.map +1 -1
  300. package/dist/src/services/config-file-manager.js +8 -1
  301. package/dist/src/services/config-file-manager.js.map +1 -1
  302. package/dist/src/services/worker-daemon.d.ts.map +1 -1
  303. package/dist/src/services/worker-daemon.js +4 -0
  304. package/dist/src/services/worker-daemon.js.map +1 -1
  305. package/dist/src/types.d.ts +13 -0
  306. package/dist/src/types.d.ts.map +1 -1
  307. package/dist/src/types.js.map +1 -1
  308. package/dist/src/ui/collector.mjs +51 -11
  309. package/dist/src/ui/dashboard.html +313 -88
  310. package/dist/src/ui/server.mjs +163 -8
  311. package/dist/tsconfig.tsbuildinfo +1 -1
  312. package/package.json +13 -13
  313. package/scripts/publish-registry.ts +0 -1
  314. package/.claude/commands/monomind/adr.md +0 -11
  315. package/.claude/commands/monomind/budget.md +0 -7
  316. package/.claude/commands/monomind/createtask.md +0 -277
  317. package/.claude/commands/monomind/do.md +0 -498
  318. package/.claude/commands/monomind/graph-status.md +0 -7
  319. package/.claude/commands/monomind/help.md +0 -118
  320. package/.claude/commands/monomind/idea.md +0 -273
  321. package/.claude/commands/monomind/improve.md +0 -352
  322. package/.claude/commands/monomind/loops.md +0 -7
  323. package/.claude/commands/monomind/memory.md +0 -230
  324. package/.claude/commands/monomind/repeat.md +0 -257
  325. package/.claude/commands/monomind/review.md +0 -317
  326. package/.claude/commands/monomind/specialagents.md +0 -125
  327. package/.claude/commands/monomind/swarm.md +0 -161
  328. package/.claude/commands/monomind/understand.md +0 -139
  329. package/.claude/commands/training/README.md +0 -39
  330. package/.claude/commands/training/neural-patterns.md +0 -73
  331. package/.claude/commands/training/neural-train.md +0 -79
  332. package/dist/src/commands/appliance-advanced.d.ts +0 -9
  333. package/dist/src/commands/appliance-advanced.d.ts.map +0 -1
  334. package/dist/src/commands/appliance-advanced.js +0 -238
  335. package/dist/src/commands/appliance-advanced.js.map +0 -1
  336. package/dist/src/commands/appliance.d.ts +0 -8
  337. package/dist/src/commands/appliance.d.ts.map +0 -1
  338. package/dist/src/commands/appliance.js +0 -406
  339. package/dist/src/commands/appliance.js.map +0 -1
  340. package/dist/src/commands/ruvector/backup.d.ts +0 -11
  341. package/dist/src/commands/ruvector/backup.d.ts.map +0 -1
  342. package/dist/src/commands/ruvector/backup.js.map +0 -1
  343. package/dist/src/commands/ruvector/benchmark.d.ts +0 -11
  344. package/dist/src/commands/ruvector/benchmark.d.ts.map +0 -1
  345. package/dist/src/commands/ruvector/benchmark.js.map +0 -1
  346. package/dist/src/commands/ruvector/import.d.ts +0 -18
  347. package/dist/src/commands/ruvector/import.d.ts.map +0 -1
  348. package/dist/src/commands/ruvector/import.js.map +0 -1
  349. package/dist/src/commands/ruvector/index.d.ts.map +0 -1
  350. package/dist/src/commands/ruvector/index.js.map +0 -1
  351. package/dist/src/commands/ruvector/init.d.ts +0 -11
  352. package/dist/src/commands/ruvector/init.d.ts.map +0 -1
  353. package/dist/src/commands/ruvector/init.js.map +0 -1
  354. package/dist/src/commands/ruvector/migrate.d.ts +0 -11
  355. package/dist/src/commands/ruvector/migrate.d.ts.map +0 -1
  356. package/dist/src/commands/ruvector/migrate.js.map +0 -1
  357. package/dist/src/commands/ruvector/optimize.d.ts.map +0 -1
  358. package/dist/src/commands/ruvector/optimize.js.map +0 -1
  359. package/dist/src/commands/ruvector/setup.d.ts +0 -18
  360. package/dist/src/commands/ruvector/setup.d.ts.map +0 -1
  361. package/dist/src/commands/ruvector/setup.js.map +0 -1
  362. package/dist/src/commands/ruvector/status.d.ts.map +0 -1
  363. package/dist/src/commands/ruvector/status.js.map +0 -1
  364. package/dist/src/ruvector/agent-wasm.d.ts +0 -182
  365. package/dist/src/ruvector/agent-wasm.d.ts.map +0 -1
  366. package/dist/src/ruvector/agent-wasm.js +0 -316
  367. package/dist/src/ruvector/agent-wasm.js.map +0 -1
  368. package/dist/src/ruvector/ast-analyzer.d.ts +0 -67
  369. package/dist/src/ruvector/ast-analyzer.d.ts.map +0 -1
  370. package/dist/src/ruvector/ast-analyzer.js +0 -277
  371. package/dist/src/ruvector/ast-analyzer.js.map +0 -1
  372. package/dist/src/ruvector/coverage-router.d.ts +0 -160
  373. package/dist/src/ruvector/coverage-router.d.ts.map +0 -1
  374. package/dist/src/ruvector/coverage-router.js +0 -539
  375. package/dist/src/ruvector/coverage-router.js.map +0 -1
  376. package/dist/src/ruvector/coverage-tools.d.ts +0 -33
  377. package/dist/src/ruvector/coverage-tools.d.ts.map +0 -1
  378. package/dist/src/ruvector/coverage-tools.js +0 -157
  379. package/dist/src/ruvector/coverage-tools.js.map +0 -1
  380. package/dist/src/ruvector/diff-classifier.d.ts.map +0 -1
  381. package/dist/src/ruvector/diff-classifier.js.map +0 -1
  382. package/dist/src/ruvector/enhanced-model-router.d.ts +0 -146
  383. package/dist/src/ruvector/enhanced-model-router.d.ts.map +0 -1
  384. package/dist/src/ruvector/enhanced-model-router.js +0 -551
  385. package/dist/src/ruvector/enhanced-model-router.js.map +0 -1
  386. package/dist/src/ruvector/flash-attention.d.ts +0 -195
  387. package/dist/src/ruvector/flash-attention.d.ts.map +0 -1
  388. package/dist/src/ruvector/flash-attention.js +0 -643
  389. package/dist/src/ruvector/flash-attention.js.map +0 -1
  390. package/dist/src/ruvector/graph-analyzer.d.ts +0 -187
  391. package/dist/src/ruvector/graph-analyzer.d.ts.map +0 -1
  392. package/dist/src/ruvector/graph-analyzer.js +0 -929
  393. package/dist/src/ruvector/graph-analyzer.js.map +0 -1
  394. package/dist/src/ruvector/index.d.ts +0 -67
  395. package/dist/src/ruvector/index.d.ts.map +0 -1
  396. package/dist/src/ruvector/index.js +0 -88
  397. package/dist/src/ruvector/index.js.map +0 -1
  398. package/dist/src/ruvector/lora-adapter.d.ts +0 -218
  399. package/dist/src/ruvector/lora-adapter.d.ts.map +0 -1
  400. package/dist/src/ruvector/lora-adapter.js +0 -455
  401. package/dist/src/ruvector/lora-adapter.js.map +0 -1
  402. package/dist/src/ruvector/model-router.d.ts +0 -222
  403. package/dist/src/ruvector/model-router.d.ts.map +0 -1
  404. package/dist/src/ruvector/model-router.js +0 -512
  405. package/dist/src/ruvector/model-router.js.map +0 -1
  406. package/dist/src/ruvector/moe-router.d.ts +0 -213
  407. package/dist/src/ruvector/moe-router.d.ts.map +0 -1
  408. package/dist/src/ruvector/moe-router.js +0 -649
  409. package/dist/src/ruvector/moe-router.js.map +0 -1
  410. package/dist/src/ruvector/q-learning-router.d.ts +0 -217
  411. package/dist/src/ruvector/q-learning-router.d.ts.map +0 -1
  412. package/dist/src/ruvector/q-learning-router.js +0 -712
  413. package/dist/src/ruvector/q-learning-router.js.map +0 -1
  414. package/dist/src/ruvector/ruvllm-wasm.d.ts +0 -179
  415. package/dist/src/ruvector/ruvllm-wasm.d.ts.map +0 -1
  416. package/dist/src/ruvector/ruvllm-wasm.js +0 -363
  417. package/dist/src/ruvector/ruvllm-wasm.js.map +0 -1
  418. package/dist/src/ruvector/semantic-router.d.ts +0 -77
  419. package/dist/src/ruvector/semantic-router.d.ts.map +0 -1
  420. package/dist/src/ruvector/semantic-router.js +0 -178
  421. package/dist/src/ruvector/semantic-router.js.map +0 -1
  422. package/dist/src/ruvector/vector-db.d.ts +0 -69
  423. package/dist/src/ruvector/vector-db.d.ts.map +0 -1
  424. package/dist/src/ruvector/vector-db.js +0 -243
  425. package/dist/src/ruvector/vector-db.js.map +0 -1
  426. package/dist/src/services/ruvector-training.d.ts +0 -222
  427. package/dist/src/services/ruvector-training.d.ts.map +0 -1
  428. package/dist/src/services/ruvector-training.js +0 -696
  429. package/dist/src/services/ruvector-training.js.map +0 -1
  430. package/dist/src/ui/.monomind/loops/loop-1779095996252-mdjpp.json +0 -11
  431. package/dist/src/ui/data/agent-avatars.html +0 -763
  432. package/dist/src/ui/data/agent-avatars.json +0 -966
  433. package/dist/src/ui/data/avatars/account-strategist.svg +0 -58
  434. package/dist/src/ui/data/avatars/accounts-payable.svg +0 -54
  435. package/dist/src/ui/data/avatars/adaptive-coordinator.svg +0 -55
  436. package/dist/src/ui/data/avatars/adaptive-coordinator2.svg +0 -54
  437. package/dist/src/ui/data/avatars/ai-citation.svg +0 -57
  438. package/dist/src/ui/data/avatars/ai-engineer.svg +0 -61
  439. package/dist/src/ui/data/avatars/analytics-reporter.svg +0 -53
  440. package/dist/src/ui/data/avatars/api-tester.svg +0 -53
  441. package/dist/src/ui/data/avatars/architecture.svg +0 -54
  442. package/dist/src/ui/data/avatars/automation-governance.svg +0 -55
  443. package/dist/src/ui/data/avatars/backend-dev.svg +0 -53
  444. package/dist/src/ui/data/avatars/benchmarker.svg +0 -54
  445. package/dist/src/ui/data/avatars/blockchain-auditor.svg +0 -53
  446. package/dist/src/ui/data/avatars/byzantine-coord.svg +0 -57
  447. package/dist/src/ui/data/avatars/case-analyst.svg +0 -57
  448. package/dist/src/ui/data/avatars/cicd-engineer.svg +0 -55
  449. package/dist/src/ui/data/avatars/cloud-architect.svg +0 -54
  450. package/dist/src/ui/data/avatars/code-review-swarm.svg +0 -57
  451. package/dist/src/ui/data/avatars/coder-v119.svg +0 -57
  452. package/dist/src/ui/data/avatars/coder.svg +0 -58
  453. package/dist/src/ui/data/avatars/collective-coord.svg +0 -54
  454. package/dist/src/ui/data/avatars/compliance-auditor.svg +0 -58
  455. package/dist/src/ui/data/avatars/consensus-coordinator.svg +0 -54
  456. package/dist/src/ui/data/avatars/content-creator.svg +0 -54
  457. package/dist/src/ui/data/avatars/crdt-synchronizer.svg +0 -53
  458. package/dist/src/ui/data/avatars/cro-specialist.svg +0 -58
  459. package/dist/src/ui/data/avatars/data-consolidator.svg +0 -54
  460. package/dist/src/ui/data/avatars/data-engineer.svg +0 -53
  461. package/dist/src/ui/data/avatars/database-optimizer.svg +0 -61
  462. package/dist/src/ui/data/avatars/deal-strategist.svg +0 -54
  463. package/dist/src/ui/data/avatars/defender.svg +0 -53
  464. package/dist/src/ui/data/avatars/devops-automator.svg +0 -56
  465. package/dist/src/ui/data/avatars/discovery-coach.svg +0 -54
  466. package/dist/src/ui/data/avatars/email-marketing.svg +0 -57
  467. package/dist/src/ui/data/avatars/embedded-firmware.svg +0 -61
  468. package/dist/src/ui/data/avatars/evidence-collector.svg +0 -57
  469. package/dist/src/ui/data/avatars/experiment-tracker.svg +0 -53
  470. package/dist/src/ui/data/avatars/feedback-synthesizer.svg +0 -54
  471. package/dist/src/ui/data/avatars/finance-tracker.svg +0 -54
  472. package/dist/src/ui/data/avatars/frontend-developer.svg +0 -54
  473. package/dist/src/ui/data/avatars/game-audio-engineer.svg +0 -59
  474. package/dist/src/ui/data/avatars/game-designer.svg +0 -54
  475. package/dist/src/ui/data/avatars/gossip-coordinator.svg +0 -54
  476. package/dist/src/ui/data/avatars/hierarchical-coord.svg +0 -54
  477. package/dist/src/ui/data/avatars/incident-commander.svg +0 -57
  478. package/dist/src/ui/data/avatars/infrastructure.svg +0 -54
  479. package/dist/src/ui/data/avatars/input-validator.svg +0 -53
  480. package/dist/src/ui/data/avatars/ios-developer.svg +0 -54
  481. package/dist/src/ui/data/avatars/issue-tracker.svg +0 -53
  482. package/dist/src/ui/data/avatars/judge.svg +0 -55
  483. package/dist/src/ui/data/avatars/launch-strategist.svg +0 -54
  484. package/dist/src/ui/data/avatars/legal-compliance.svg +0 -53
  485. package/dist/src/ui/data/avatars/level-designer.svg +0 -53
  486. package/dist/src/ui/data/avatars/load-balancer.svg +0 -57
  487. package/dist/src/ui/data/avatars/mcp-builder.svg +0 -53
  488. package/dist/src/ui/data/avatars/memory-coordinator.svg +0 -55
  489. package/dist/src/ui/data/avatars/mesh-coordinator.svg +0 -55
  490. package/dist/src/ui/data/avatars/ml-developer.svg +0 -58
  491. package/dist/src/ui/data/avatars/mobile-app-builder.svg +0 -53
  492. package/dist/src/ui/data/avatars/mobile-dev.svg +0 -54
  493. package/dist/src/ui/data/avatars/model-qa.svg +0 -58
  494. package/dist/src/ui/data/avatars/narrative-designer.svg +0 -58
  495. package/dist/src/ui/data/avatars/outbound-strategist.svg +0 -55
  496. package/dist/src/ui/data/avatars/path-validator.svg +0 -54
  497. package/dist/src/ui/data/avatars/payment-agent.svg +0 -53
  498. package/dist/src/ui/data/avatars/perf-analyzer.svg +0 -58
  499. package/dist/src/ui/data/avatars/pipeline-analyst.svg +0 -54
  500. package/dist/src/ui/data/avatars/planner.svg +0 -55
  501. package/dist/src/ui/data/avatars/pr-manager.svg +0 -54
  502. package/dist/src/ui/data/avatars/pricing-strategist.svg +0 -54
  503. package/dist/src/ui/data/avatars/product-manager.svg +0 -54
  504. package/dist/src/ui/data/avatars/production-validator.svg +0 -54
  505. package/dist/src/ui/data/avatars/project-shepherd.svg +0 -54
  506. package/dist/src/ui/data/avatars/proposal-strategist.svg +0 -54
  507. package/dist/src/ui/data/avatars/prosecutor.svg +0 -57
  508. package/dist/src/ui/data/avatars/pseudocode.svg +0 -53
  509. package/dist/src/ui/data/avatars/queen-coordinator.svg +0 -55
  510. package/dist/src/ui/data/avatars/quorum-manager.svg +0 -53
  511. package/dist/src/ui/data/avatars/raft-manager.svg +0 -53
  512. package/dist/src/ui/data/avatars/reality-checker.svg +0 -58
  513. package/dist/src/ui/data/avatars/recruitment.svg +0 -58
  514. package/dist/src/ui/data/avatars/refinement.svg +0 -53
  515. package/dist/src/ui/data/avatars/release-manager.svg +0 -54
  516. package/dist/src/ui/data/avatars/repo-architect.svg +0 -54
  517. package/dist/src/ui/data/avatars/researcher.svg +0 -58
  518. package/dist/src/ui/data/avatars/resource-allocator.svg +0 -53
  519. package/dist/src/ui/data/avatars/reviewer.svg +0 -53
  520. package/dist/src/ui/data/avatars/safe-executor.svg +0 -53
  521. package/dist/src/ui/data/avatars/sales-coach.svg +0 -53
  522. package/dist/src/ui/data/avatars/sales-engineer.svg +0 -58
  523. package/dist/src/ui/data/avatars/scout-explorer.svg +0 -58
  524. package/dist/src/ui/data/avatars/security-architect.svg +0 -54
  525. package/dist/src/ui/data/avatars/security-auditor.svg +0 -55
  526. package/dist/src/ui/data/avatars/senior-developer.svg +0 -58
  527. package/dist/src/ui/data/avatars/senior-pm.svg +0 -58
  528. package/dist/src/ui/data/avatars/seo-specialist.svg +0 -57
  529. package/dist/src/ui/data/avatars/social-media.svg +0 -54
  530. package/dist/src/ui/data/avatars/solidity-engineer.svg +0 -58
  531. package/dist/src/ui/data/avatars/sparc-coder.svg +0 -58
  532. package/dist/src/ui/data/avatars/sparc-coord.svg +0 -56
  533. package/dist/src/ui/data/avatars/specification.svg +0 -57
  534. package/dist/src/ui/data/avatars/sprint-prioritizer.svg +0 -53
  535. package/dist/src/ui/data/avatars/sre.svg +0 -54
  536. package/dist/src/ui/data/avatars/studio-operations.svg +0 -53
  537. package/dist/src/ui/data/avatars/studio-producer.svg +0 -55
  538. package/dist/src/ui/data/avatars/support-responder.svg +0 -56
  539. package/dist/src/ui/data/avatars/system-architect.svg +0 -54
  540. package/dist/src/ui/data/avatars/task-orchestrator.svg +0 -56
  541. package/dist/src/ui/data/avatars/technical-artist.svg +0 -53
  542. package/dist/src/ui/data/avatars/technical-writer.svg +0 -59
  543. package/dist/src/ui/data/avatars/tester.svg +0 -53
  544. package/dist/src/ui/data/avatars/threat-detection.svg +0 -61
  545. package/dist/src/ui/data/avatars/trend-researcher.svg +0 -54
  546. package/dist/src/ui/data/avatars/trial-director.svg +0 -55
  547. package/dist/src/ui/data/avatars/unity-architect.svg +0 -54
  548. package/dist/src/ui/data/avatars/visionos-engineer.svg +0 -57
  549. package/dist/src/ui/data/avatars/worker-specialist.svg +0 -55
  550. package/dist/src/ui/data/avatars/workflow-architect.svg +0 -57
  551. package/dist/src/ui/data/avatars/workflow-automation.svg +0 -54
  552. package/dist/src/ui/data/avatars/zk-steward.svg +0 -54
  553. package/dist/src/ui/data/known-projects.json +0 -1
  554. /package/dist/src/{ruvector → monovector}/diff-classifier.js +0 -0
@@ -1,429 +1,51 @@
1
1
  /**
2
2
  * CLI Neural Command
3
- * Neural pattern training, MoE, Flash Attention, pattern learning
3
+ * Pattern learning, search, and prediction backed by the pure-JS intelligence layer
4
4
  *
5
5
  * github.com/nokhodian/monomind
6
6
  */
7
7
  import { output } from '../output.js';
8
- // Train subcommand - REAL WASM training with RuVector
9
- const trainCommand = {
10
- name: 'train',
11
- description: 'Train neural patterns with WASM SIMD acceleration (MicroLoRA + Flash Attention)',
12
- options: [
13
- { name: 'pattern', short: 'p', type: 'string', description: 'Pattern type: coordination, optimization, prediction, security, testing', default: 'coordination' },
14
- { name: 'epochs', short: 'e', type: 'number', description: 'Number of training epochs', default: '50' },
15
- { name: 'data', short: 'd', type: 'string', description: 'Training data file or inline JSON' },
16
- { name: 'model', short: 'm', type: 'string', description: 'Model ID to train' },
17
- { name: 'learning-rate', short: 'l', type: 'number', description: 'Learning rate', default: '0.01' },
18
- { name: 'batch-size', short: 'b', type: 'number', description: 'Batch size', default: '32' },
19
- { name: 'dim', type: 'number', description: 'Embedding dimension (max 256)', default: '256' },
20
- { name: 'wasm', short: 'w', type: 'boolean', description: 'Use RuVector WASM acceleration', default: 'true' },
21
- { name: 'flash', type: 'boolean', description: 'Enable Flash Attention (2.49x-7.47x speedup)', default: 'true' },
22
- { name: 'moe', type: 'boolean', description: 'Enable Mixture of Experts routing', default: 'false' },
23
- { name: 'hyperbolic', type: 'boolean', description: 'Enable hyperbolic attention for hierarchical patterns', default: 'false' },
24
- { name: 'contrastive', type: 'boolean', description: 'Use contrastive learning (InfoNCE)', default: 'true' },
25
- { name: 'curriculum', type: 'boolean', description: 'Enable curriculum learning', default: 'false' },
26
- ],
27
- examples: [
28
- { command: 'monomind neural train -p coordination -e 100', description: 'Train coordination patterns' },
29
- { command: 'monomind neural train -d ./training-data.json --flash', description: 'Train from file with Flash Attention' },
30
- { command: 'monomind neural train -p security --wasm --contrastive', description: 'Security patterns with contrastive learning' },
31
- ],
32
- action: async (ctx) => {
33
- const patternType = ctx.flags['pattern'] || 'coordination';
34
- const epochs = parseInt(ctx.flags.epochs || '50', 10);
35
- const learningRate = parseFloat(ctx.flags['learning-rate'] || '0.01');
36
- const batchSize = parseInt(ctx.flags['batch-size'] || '32', 10);
37
- const dim = Math.min(parseInt(ctx.flags.dim || '256', 10), 256);
38
- const useWasm = ctx.flags.wasm !== false;
39
- const useFlash = ctx.flags.flash !== false;
40
- const useMoE = ctx.flags.moe === true;
41
- const useHyperbolic = ctx.flags.hyperbolic === true;
42
- const useContrastive = ctx.flags.contrastive !== false;
43
- const useCurriculum = ctx.flags.curriculum === true;
44
- const dataFile = ctx.flags.data;
45
- output.writeln();
46
- output.writeln(output.bold('Neural Pattern Training (RuVector WASM)'));
47
- output.writeln(output.dim('─'.repeat(55)));
48
- const spinner = output.createSpinner({ text: 'Initializing RuVector training systems...', spinner: 'dots' });
49
- spinner.start();
50
- try {
51
- // Import RuVector training service
52
- const ruvector = await import('../services/ruvector-training.js');
53
- const { generateEmbedding } = await import('../memory/memory-initializer.js');
54
- const { initializeIntelligence, recordStep, recordTrajectory, getIntelligenceStats, flushPatterns, getPersistenceStatus } = await import('../memory/intelligence.js');
55
- // Initialize RuVector WASM training
56
- let wasmFeatures = [];
57
- if (useWasm) {
58
- const initResult = await ruvector.initializeTraining({
59
- dim,
60
- learningRate,
61
- alpha: 0.1,
62
- trajectoryCapacity: epochs * batchSize,
63
- useFlashAttention: useFlash,
64
- useMoE,
65
- useHyperbolic,
66
- totalSteps: useCurriculum ? epochs : undefined,
67
- warmupSteps: useCurriculum ? Math.floor(epochs * 0.1) : undefined,
68
- });
69
- if (initResult.success) {
70
- wasmFeatures = initResult.features;
71
- const backendLabel = initResult.backend === 'wasm' ? 'WASM' : 'JS fallback';
72
- spinner.setText(`RuVector initialized [${backendLabel}]: ${wasmFeatures.join(', ')}`);
73
- }
74
- else {
75
- output.writeln(output.warning(`WASM init failed: ${initResult.error} - falling back`));
76
- }
77
- }
78
- // Also initialize SONA + ReasoningBank for persistence
79
- await initializeIntelligence({
80
- loraLearningRate: learningRate,
81
- maxTrajectorySize: epochs
82
- });
83
- // Pattern type to operator mapping
84
- const operatorMap = {
85
- coordination: ruvector.OperatorType.COORDINATION,
86
- optimization: ruvector.OperatorType.OPTIMIZATION,
87
- prediction: ruvector.OperatorType.ROUTING,
88
- security: ruvector.OperatorType.SECURITY,
89
- testing: ruvector.OperatorType.TESTING,
90
- debugging: ruvector.OperatorType.DEBUGGING,
91
- memory: ruvector.OperatorType.MEMORY,
92
- reasoning: ruvector.OperatorType.REASONING,
93
- };
94
- const operatorType = operatorMap[patternType] ?? ruvector.OperatorType.GENERAL;
95
- spinner.setText(`Training ${patternType} patterns...`);
96
- // Training data - load from file or generate synthetic
97
- let trainingData = [];
98
- if (dataFile) {
99
- const fs = await import('fs');
100
- const p = await import('path');
101
- if (fs.existsSync(dataFile)) {
102
- // Path containment check
103
- const resolvedData = p.resolve(dataFile);
104
- const cwd = process.cwd();
105
- if (!resolvedData.startsWith(cwd + p.sep) && resolvedData !== cwd) {
106
- spinner.fail(`--data path escapes project directory: ${dataFile}`);
107
- return { success: false, exitCode: 1 };
108
- }
109
- // File size guard
110
- const MAX_TRAINING_BYTES = 50 * 1024 * 1024;
111
- const statResult = fs.statSync(dataFile);
112
- if (statResult.size > MAX_TRAINING_BYTES) {
113
- spinner.fail(`Training data file too large: ${statResult.size} bytes (max ${MAX_TRAINING_BYTES})`);
114
- return { success: false, exitCode: 1 };
115
- }
116
- const raw = fs.readFileSync(dataFile, 'utf8');
117
- const parsedData = JSON.parse(raw);
118
- if (parsedData && typeof parsedData === 'object' && ('__proto__' in parsedData || 'constructor' in parsedData)) {
119
- spinner.fail('Prototype pollution attempt detected in training data');
120
- return { success: false, exitCode: 1 };
121
- }
122
- trainingData = parsedData;
123
- }
124
- else {
125
- spinner.fail(`Training data file not found: ${dataFile}`);
126
- return { success: false, exitCode: 1 };
127
- }
128
- }
129
- else {
130
- // Generate synthetic training data based on pattern type
131
- const templates = {
132
- coordination: [
133
- 'Route task to coder agent for implementation',
134
- 'Coordinate researcher and architect for design phase',
135
- 'Distribute workload across mesh topology',
136
- 'Synchronize agents via gossip protocol',
137
- 'Balance load between active workers',
138
- 'Spawn hierarchical swarm for complex task',
139
- 'Assign reviewer to completed implementation'
140
- ],
141
- optimization: [
142
- 'Apply Int8 quantization for memory reduction',
143
- 'Enable HNSW indexing for faster search',
144
- 'Batch operations for throughput improvement',
145
- 'Cache frequently accessed patterns',
146
- 'Prune unused neural pathways',
147
- 'Use Flash Attention for large sequences',
148
- 'Enable SIMD for vector operations'
149
- ],
150
- prediction: [
151
- 'Predict optimal agent for task type',
152
- 'Forecast resource requirements',
153
- 'Anticipate failure modes and mitigate',
154
- 'Estimate completion time for workflow',
155
- 'Predict pattern similarity before search'
156
- ],
157
- security: [
158
- 'Validate input at system boundaries',
159
- 'Check for path traversal attempts',
160
- 'Sanitize user-provided data',
161
- 'Apply parameterized queries for SQL',
162
- 'Verify JWT token signatures',
163
- 'Audit sensitive operation access'
164
- ],
165
- testing: [
166
- 'Generate unit tests for function',
167
- 'Create integration test suite',
168
- 'Mock external dependencies',
169
- 'Assert expected outcomes',
170
- 'Coverage gap analysis'
171
- ]
172
- };
173
- const patterns = templates[patternType] || templates.coordination;
174
- for (let i = 0; i < epochs; i++) {
175
- trainingData.push({
176
- content: patterns[i % patterns.length],
177
- type: patternType
178
- });
179
- }
180
- }
181
- // Training metrics
182
- const startTime = Date.now();
183
- const epochTimes = [];
184
- let patternsRecorded = 0;
185
- let trajectoriesCompleted = 0;
186
- let totalLoss = 0;
187
- let adaptations = 0;
188
- // Generate embeddings for training data
189
- const embeddings = [];
190
- spinner.setText('Generating embeddings...');
191
- for (const item of trainingData.slice(0, Math.min(100, trainingData.length))) {
192
- const embeddingResult = await generateEmbedding(item.content);
193
- if (embeddingResult && embeddingResult.embedding) {
194
- // Convert to Float32Array and resize to dim
195
- const embeddingArray = embeddingResult.embedding;
196
- const resized = new Float32Array(dim);
197
- for (let i = 0; i < Math.min(embeddingArray.length, dim); i++) {
198
- resized[i] = embeddingArray[i];
199
- }
200
- embeddings.push(resized);
201
- }
202
- }
203
- spinner.setText(`Training with ${embeddings.length} embeddings...`);
204
- // Main training loop with WASM acceleration
205
- for (let epoch = 0; epoch < epochs; epoch++) {
206
- const epochStart = performance.now();
207
- // Get curriculum difficulty if enabled
208
- const difficulty = useCurriculum ? ruvector.getCurriculumDifficulty(epoch) : 1.0;
209
- // Process batch
210
- const batchStart = (epoch * batchSize) % embeddings.length;
211
- const batch = embeddings.slice(batchStart, batchStart + batchSize);
212
- if (batch.length === 0)
213
- continue;
214
- // Training step with contrastive learning
215
- if (useContrastive && batch.length >= 3 && useWasm && wasmFeatures.length > 0) {
216
- const anchor = batch[0];
217
- const positives = [batch[1]];
218
- const negatives = batch.slice(2);
219
- try {
220
- // Compute contrastive loss
221
- const { loss, gradient } = ruvector.computeContrastiveLoss(anchor, positives, negatives);
222
- totalLoss += loss;
223
- // Scale gradient by difficulty
224
- const scaledGradient = new Float32Array(gradient.length);
225
- for (let i = 0; i < gradient.length; i++) {
226
- scaledGradient[i] = gradient[i] * difficulty;
227
- }
228
- // Train with MicroLoRA
229
- await ruvector.trainPattern(anchor, scaledGradient, operatorType);
230
- adaptations++;
231
- // Record trajectory for learning
232
- const baselineMs = 10; // Baseline execution time
233
- const executionMs = performance.now() - epochStart;
234
- ruvector.recordTrajectory(anchor, operatorType, useFlash ? 1 : 0, executionMs, baselineMs);
235
- }
236
- catch {
237
- // WASM training failed, fall back to basic
238
- }
239
- }
240
- // Also record in SONA/ReasoningBank for persistence
241
- const item = trainingData[epoch % trainingData.length];
242
- await recordStep({
243
- type: 'action',
244
- content: item.content,
245
- metadata: { epoch, patternType, learningRate, difficulty }
246
- });
247
- patternsRecorded++;
248
- // Record trajectory every 10 epochs
249
- if ((epoch + 1) % 10 === 0 || epoch === epochs - 1) {
250
- const steps = trainingData.slice(Math.max(0, epoch - 9), epoch + 1).map(d => ({ type: 'action', content: d.content }));
251
- await recordTrajectory(steps, 'success');
252
- trajectoriesCompleted++;
253
- }
254
- const epochTime = performance.now() - epochStart;
255
- epochTimes.push(epochTime);
256
- // Update progress
257
- const progress = Math.round(((epoch + 1) / epochs) * 100);
258
- const avgEpochTime = epochTimes.reduce((a, b) => a + b, 0) / epochTimes.length;
259
- const eta = Math.round((epochs - epoch - 1) * avgEpochTime / 1000);
260
- spinner.setText(`Training ${patternType} patterns... ${progress}% (ETA: ${eta}s, loss: ${(totalLoss / Math.max(1, epoch + 1)).toFixed(4)})`);
261
- }
262
- const totalTime = Date.now() - startTime;
263
- // Get RuVector stats
264
- const ruvectorStats = useWasm && wasmFeatures.length > 0 ? ruvector.getTrainingStats() : null;
265
- const trajectoryStats = ruvectorStats?.trajectoryStats;
266
- // Benchmark if WASM was used
267
- let benchmark = null;
268
- if (useWasm && wasmFeatures.length > 0) {
269
- try {
270
- spinner.setText('Running benchmark...');
271
- benchmark = await ruvector.benchmarkTraining(dim, 100);
272
- }
273
- catch {
274
- // Benchmark failed, continue
275
- }
276
- }
277
- // Get SONA stats
278
- const stats = getIntelligenceStats();
279
- spinner.succeed(`Training complete: ${epochs} epochs in ${(totalTime / 1000).toFixed(1)}s`);
280
- // Flush patterns to disk
281
- flushPatterns();
282
- const persistence = getPersistenceStatus();
283
- output.writeln();
284
- // Display results
285
- const tableData = [
286
- { metric: 'Pattern Type', value: patternType },
287
- { metric: 'Epochs', value: String(epochs) },
288
- { metric: 'Batch Size', value: String(batchSize) },
289
- { metric: 'Embedding Dim', value: String(dim) },
290
- { metric: 'Learning Rate', value: String(learningRate) },
291
- { metric: 'Patterns Recorded', value: patternsRecorded.toLocaleString() },
292
- { metric: 'Trajectories', value: String(trajectoriesCompleted) },
293
- { metric: 'Total Time', value: `${(totalTime / 1000).toFixed(1)}s` },
294
- { metric: 'Avg Epoch Time', value: `${(epochTimes.reduce((a, b) => a + b, 0) / epochTimes.length).toFixed(2)}ms` },
295
- ];
296
- // Add WASM-specific metrics
297
- if (useWasm && wasmFeatures.length > 0) {
298
- const backendUsed = ruvectorStats?.backend || 'unknown';
299
- tableData.push({ metric: 'Backend', value: backendUsed === 'wasm' ? 'WASM (native)' : 'JS (fallback)' }, { metric: 'WASM Features', value: wasmFeatures.slice(0, 3).join(', ') }, { metric: 'LoRA Adaptations', value: String(adaptations) }, { metric: 'Avg Loss', value: (totalLoss / Math.max(1, epochs)).toFixed(4) });
300
- if (ruvectorStats?.microLoraStats) {
301
- tableData.push({ metric: 'MicroLoRA Delta Norm', value: ruvectorStats.microLoraStats.deltaNorm.toFixed(6) });
302
- }
303
- if (trajectoryStats) {
304
- tableData.push({ metric: 'Success Rate', value: `${(trajectoryStats.successRate * 100).toFixed(1)}%` }, { metric: 'Mean Improvement', value: `${(trajectoryStats.meanImprovement * 100).toFixed(1)}%` });
305
- }
306
- if (benchmark && benchmark.length > 0) {
307
- const flashBench = benchmark.find(b => b.name.includes('Flash'));
308
- if (flashBench) {
309
- tableData.push({ metric: 'Flash Attention', value: `${flashBench.opsPerSecond.toLocaleString()} ops/s` });
310
- }
311
- }
312
- }
313
- tableData.push({ metric: 'ReasoningBank Size', value: stats.reasoningBankSize.toLocaleString() }, { metric: 'Persisted To', value: output.dim(persistence.dataDir) });
314
- output.printTable({
315
- columns: [
316
- { key: 'metric', header: 'Metric', width: 26 },
317
- { key: 'value', header: 'Value', width: 32 },
318
- ],
319
- data: tableData,
320
- });
321
- output.writeln();
322
- output.writeln(output.success(`✓ ${patternsRecorded} patterns saved to ${persistence.patternsFile}`));
323
- if (useWasm && wasmFeatures.length > 0) {
324
- const backendUsed = ruvectorStats?.backend || 'unknown';
325
- const backendMsg = backendUsed === 'wasm'
326
- ? `RuVector WASM backend: ${wasmFeatures.join(', ')}`
327
- : `RuVector JS fallback (install @ruvector/learning-wasm for native speed): ${wasmFeatures.join(', ')}`;
328
- output.writeln(output.highlight(`✓ ${backendMsg}`));
329
- }
330
- return {
331
- success: true,
332
- data: {
333
- epochs,
334
- patternsRecorded,
335
- trajectoriesCompleted,
336
- totalTime,
337
- wasmFeatures,
338
- ruvectorStats,
339
- benchmark,
340
- stats,
341
- persistence
342
- }
343
- };
344
- }
345
- catch (error) {
346
- spinner.fail('Training failed');
347
- output.printError(error instanceof Error ? error.message : String(error));
348
- return { success: false, exitCode: 1 };
349
- }
350
- },
351
- };
352
- // Status subcommand - REAL measurements
8
+ // Status subcommand - reports only the surviving pure-JS pattern-learning layer
353
9
  const statusCommand = {
354
10
  name: 'status',
355
- description: 'Check neural network status and loaded models',
11
+ description: 'Check pattern-learning status (JS intelligence layer)',
356
12
  options: [
357
- { name: 'model', short: 'm', type: 'string', description: 'Specific model ID to check' },
358
13
  { name: 'verbose', short: 'v', type: 'boolean', description: 'Show detailed metrics' },
359
14
  ],
360
15
  examples: [
361
- { command: 'monomind neural status', description: 'Show all neural status' },
362
- { command: 'monomind neural status -m model-123', description: 'Check specific model' },
16
+ { command: 'monomind neural status', description: 'Show pattern-learning status' },
17
+ { command: 'monomind neural status -v', description: 'Show detailed metrics' },
363
18
  ],
364
19
  action: async (ctx) => {
365
20
  const verbose = ctx.flags.verbose === true;
366
21
  output.writeln();
367
- output.writeln(output.bold('Neural Network Status (Real)'));
22
+ output.writeln(output.bold('Pattern Learning Status'));
368
23
  output.writeln(output.dim('─'.repeat(50)));
369
- const spinner = output.createSpinner({ text: 'Checking neural systems...', spinner: 'dots' });
24
+ const spinner = output.createSpinner({ text: 'Checking pattern-learning systems...', spinner: 'dots' });
370
25
  spinner.start();
371
26
  try {
372
- // Import real implementations
373
- const { getIntelligenceStats, initializeIntelligence, benchmarkAdaptation } = await import('../memory/intelligence.js');
27
+ const { getIntelligenceStats, initializeIntelligence, getPersistenceStatus } = await import('../memory/intelligence.js');
374
28
  const { getHNSWStatus, loadEmbeddingModel } = await import('../memory/memory-initializer.js');
375
- const ruvector = await import('../services/ruvector-training.js');
376
29
  // Initialize if needed and get real stats
377
30
  await initializeIntelligence();
378
31
  const stats = getIntelligenceStats();
379
32
  const hnswStatus = getHNSWStatus();
380
- // Quick benchmark for actual adaptation time
381
- const adaptBench = benchmarkAdaptation(100);
33
+ const persistence = getPersistenceStatus();
382
34
  // Check embedding model
383
35
  const modelInfo = await loadEmbeddingModel({ verbose: false });
384
- // Check RuVector WASM status
385
- const ruvectorStats = ruvector.getTrainingStats();
386
- const sonaAvailable = ruvector.isSonaAvailable();
387
- spinner.succeed('Neural systems checked');
388
- const fs_status = await import('fs');
389
- const path_status = await import('path');
390
- const learnedStatePath = path_status.join(process.cwd(), '.monomind', 'neural', 'learned-state.json');
391
- const hasLearnedState = fs_status.existsSync(learnedStatePath);
392
- let learnedStateAge = '';
393
- if (hasLearnedState) {
394
- const stat = fs_status.statSync(learnedStatePath);
395
- const ageMs = Date.now() - stat.mtimeMs;
396
- const ageMins = Math.round(ageMs / 60000);
397
- learnedStateAge = ageMins < 60 ? `${ageMins}m ago` : `${Math.round(ageMins / 60)}h ago`;
398
- }
36
+ spinner.succeed('Pattern-learning systems checked');
399
37
  output.writeln();
400
38
  output.printTable({
401
39
  columns: [
402
40
  { key: 'component', header: 'Component', width: 22 },
403
41
  { key: 'status', header: 'Status', width: 12 },
404
- { key: 'details', header: 'Details', width: 32 },
42
+ { key: 'details', header: 'Details', width: 34 },
405
43
  ],
406
44
  data: [
407
45
  {
408
- component: 'SONA Coordinator',
46
+ component: 'Pattern Learning',
409
47
  status: stats.sonaEnabled ? output.success('Active') : output.warning('Inactive'),
410
- details: stats.sonaEnabled
411
- ? `Adaptation: ${(adaptBench.avgMs * 1000).toFixed(2)}μs avg`
412
- : 'Not initialized',
413
- },
414
- {
415
- component: 'RuVector Training',
416
- status: ruvectorStats.initialized ? output.success('Active') : output.dim('Not loaded'),
417
- details: ruvectorStats.initialized
418
- ? `${ruvectorStats.backend === 'wasm' ? 'WASM' : 'JS fallback'} | MicroLoRA: ${ruvectorStats.totalAdaptations} adapts`
419
- : 'Call neural train to initialize',
420
- },
421
- {
422
- component: 'SONA Engine',
423
- status: sonaAvailable ? output.success('Active') : output.dim('Not loaded'),
424
- details: sonaAvailable && ruvectorStats.sonaStats
425
- ? `${ruvectorStats.sonaStats.totalLearns} learns, ${ruvectorStats.sonaStats.totalSearches} searches`
426
- : 'Optional, enable with --sona',
48
+ details: stats.sonaEnabled ? 'JS pattern-learning layer initialized' : 'Not initialized',
427
49
  },
428
50
  {
429
51
  component: 'ReasoningBank',
@@ -431,58 +53,21 @@ const statusCommand = {
431
53
  details: `${stats.patternsLearned} patterns stored`,
432
54
  },
433
55
  {
434
- component: 'HNSW Index',
435
- status: hnswStatus.available ? output.success('Ready') : output.dim('Not loaded'),
56
+ component: 'Pattern Index',
57
+ status: hnswStatus.available ? output.success('Ready') : output.dim('Empty'),
436
58
  details: hnswStatus.available
437
- ? `${hnswStatus.entryCount} vectors, ${hnswStatus.dimensions}-dim [HNSW search]`
438
- : 'Brute-force linear scan (install @ruvector/core for HNSW)',
59
+ ? `${hnswStatus.entryCount} vectors, ${hnswStatus.dimensions}-dim (pure-JS HNSW via AgentDB)`
60
+ : 'No vectors indexed yet',
439
61
  },
440
62
  {
441
63
  component: 'Embedding Model',
442
64
  status: modelInfo.success ? output.success('Loaded') : output.warning('Fallback'),
443
65
  details: `${modelInfo.modelName} (${modelInfo.dimensions}-dim)`,
444
66
  },
445
- await (async () => {
446
- try {
447
- await import('@ruvector/attention');
448
- return {
449
- component: 'Flash Attention Ops',
450
- status: output.success('Available'),
451
- details: 'batchCosineSim, softmax, topK',
452
- };
453
- }
454
- catch {
455
- return {
456
- component: 'Flash Attention Ops',
457
- status: output.warning('Not installed'),
458
- details: 'npm install @ruvector/attention',
459
- };
460
- }
461
- })(),
462
- await (async () => {
463
- try {
464
- const { quantizeInt8 } = await import('../memory/memory-initializer.js');
465
- if (typeof quantizeInt8 === 'function') {
466
- return {
467
- component: 'Int8 Quantization',
468
- status: output.success('Available'),
469
- details: '~4x memory reduction',
470
- };
471
- }
472
- throw new Error('not exported');
473
- }
474
- catch {
475
- return {
476
- component: 'Int8 Quantization',
477
- status: output.warning('Not available'),
478
- details: 'quantizeInt8 not found in memory-initializer',
479
- };
480
- }
481
- })(),
482
67
  {
483
- component: 'LoRA Persistence',
484
- status: hasLearnedState ? output.success('Saved') : output.dim('None'),
485
- details: hasLearnedState ? `Weights persisted ${learnedStateAge}` : 'No prior session weights',
68
+ component: 'Persistence',
69
+ status: persistence.patternsExist ? output.success('Saved') : output.dim('None'),
70
+ details: persistence.patternsExist ? output.dim(persistence.dataDir) : 'No persisted patterns',
486
71
  },
487
72
  ],
488
73
  });
@@ -492,10 +77,9 @@ const statusCommand = {
492
77
  const detailedData = [
493
78
  { metric: 'Trajectories Recorded', value: String(stats.trajectoriesRecorded) },
494
79
  { metric: 'Patterns Learned', value: String(stats.patternsLearned) },
495
- { metric: 'HNSW Dimensions', value: String(hnswStatus.dimensions) },
496
- { metric: 'SONA Adaptation (avg)', value: `${(adaptBench.avgMs * 1000).toFixed(2)}μs` },
497
- { metric: 'SONA Adaptation (max)', value: `${(adaptBench.maxMs * 1000).toFixed(2)}μs` },
498
- { metric: 'Target Met (<0.05ms)', value: adaptBench.targetMet ? output.success('Yes') : output.warning('No') },
80
+ { metric: 'ReasoningBank Size', value: String(stats.reasoningBankSize) },
81
+ { metric: 'Index Dimensions', value: String(hnswStatus.dimensions) },
82
+ { metric: 'Avg Adaptation Time', value: `${stats.avgAdaptationTime.toFixed(3)}ms` },
499
83
  {
500
84
  metric: 'Last Adaptation',
501
85
  value: stats.lastAdaptation
@@ -503,26 +87,6 @@ const statusCommand = {
503
87
  : 'Never',
504
88
  },
505
89
  ];
506
- // Add RuVector WASM metrics if initialized
507
- if (ruvectorStats.initialized) {
508
- detailedData.push({ metric: 'RuVector Adaptations', value: String(ruvectorStats.totalAdaptations) }, { metric: 'RuVector Forwards', value: String(ruvectorStats.totalForwards) });
509
- if (ruvectorStats.microLoraStats) {
510
- detailedData.push({ metric: 'MicroLoRA Delta Norm', value: ruvectorStats.microLoraStats.deltaNorm.toFixed(6) }, { metric: 'MicroLoRA Adapt Count', value: String(ruvectorStats.microLoraStats.adaptCount) });
511
- }
512
- if (sonaAvailable && ruvectorStats.sonaStats?.stats) {
513
- const sonaStats = ruvectorStats.sonaStats.stats;
514
- detailedData.push({ metric: 'SONA Patterns Stored', value: String(sonaStats.patterns_stored || 0) }, { metric: 'SONA EWC Tasks', value: String(sonaStats.ewc_tasks || 0) });
515
- }
516
- detailedData.push({
517
- metric: 'LoRA Domains Trained',
518
- value: (ruvectorStats.microLoraStats?.adaptCount ?? 0) > 0 ? 'active' : 'none',
519
- }, {
520
- metric: 'EWC Tasks Learned',
521
- value: String(sonaAvailable && ruvectorStats.sonaStats?.stats
522
- ? (ruvectorStats.sonaStats.stats.ewc_tasks ?? 0)
523
- : 0),
524
- });
525
- }
526
90
  output.printTable({
527
91
  columns: [
528
92
  { key: 'metric', header: 'Metric', width: 28 },
@@ -531,10 +95,10 @@ const statusCommand = {
531
95
  data: detailedData,
532
96
  });
533
97
  }
534
- return { success: true, data: { stats, hnswStatus, adaptBench, modelInfo, ruvectorStats } };
98
+ return { success: true, data: { stats, hnswStatus, modelInfo, persistence } };
535
99
  }
536
100
  catch (error) {
537
- spinner.fail('Failed to check neural systems');
101
+ spinner.fail('Failed to check pattern-learning systems');
538
102
  output.printError(error instanceof Error ? error.message : String(error));
539
103
  return { success: false, exitCode: 1 };
540
104
  }
@@ -1414,161 +978,20 @@ const importCommand = {
1414
978
  }
1415
979
  },
1416
980
  };
1417
- // Benchmark subcommand - Real WASM benchmarks
1418
- const benchmarkCommand = {
1419
- name: 'benchmark',
1420
- description: 'Benchmark RuVector WASM training performance',
1421
- options: [
1422
- { name: 'dim', short: 'd', type: 'number', description: 'Embedding dimension (max 256)', default: '256' },
1423
- { name: 'iterations', short: 'i', type: 'number', description: 'Number of iterations', default: '1000' },
1424
- { name: 'keys', short: 'k', type: 'number', description: 'Number of keys for attention', default: '100' },
1425
- ],
1426
- examples: [
1427
- { command: 'monomind neural benchmark', description: 'Run default benchmark' },
1428
- { command: 'monomind neural benchmark -d 128 -i 5000', description: 'Custom benchmark' },
1429
- ],
1430
- action: async (ctx) => {
1431
- const dim = Math.min(parseInt(ctx.flags.dim || '256', 10), 256);
1432
- const iterations = parseInt(ctx.flags.iterations || '1000', 10);
1433
- const numKeys = parseInt(ctx.flags.keys || '100', 10);
1434
- output.writeln();
1435
- output.writeln(output.bold('RuVector WASM Benchmark'));
1436
- output.writeln(output.dim('─'.repeat(50)));
1437
- const spinner = output.createSpinner({ text: 'Running benchmarks...', spinner: 'dots' });
1438
- spinner.start();
1439
- try {
1440
- const attention = await import('@ruvector/attention');
1441
- // Manual benchmark since benchmarkAttention has a binding bug
1442
- const benchmarkMechanism = async (name, mechanism) => {
1443
- const query = new Float32Array(dim);
1444
- const keys = [];
1445
- const values = [];
1446
- for (let i = 0; i < dim; i++)
1447
- query[i] = Math.random();
1448
- for (let k = 0; k < numKeys; k++) {
1449
- const key = new Float32Array(dim);
1450
- const val = new Float32Array(dim);
1451
- for (let i = 0; i < dim; i++) {
1452
- key[i] = Math.random();
1453
- val[i] = Math.random();
1454
- }
1455
- keys.push(key);
1456
- values.push(val);
1457
- }
1458
- // Warmup
1459
- for (let i = 0; i < 10; i++)
1460
- mechanism.computeRaw(query, keys, values);
1461
- const start = performance.now();
1462
- for (let i = 0; i < iterations; i++) {
1463
- mechanism.computeRaw(query, keys, values);
1464
- }
1465
- const elapsed = performance.now() - start;
1466
- return {
1467
- name,
1468
- averageTimeMs: elapsed / iterations,
1469
- opsPerSecond: Math.round((iterations / elapsed) * 1000),
1470
- };
1471
- };
1472
- spinner.setText(`Benchmarking attention mechanisms (dim=${dim}, keys=${numKeys}, iter=${iterations})...`);
1473
- const results = [];
1474
- // Benchmark each mechanism
1475
- const dotProduct = new attention.DotProductAttention(dim);
1476
- results.push(await benchmarkMechanism('DotProduct', dotProduct));
1477
- const flash = new attention.FlashAttention(dim, 64);
1478
- results.push(await benchmarkMechanism('FlashAttention', flash));
1479
- const multiHead = new attention.MultiHeadAttention(dim, 4);
1480
- results.push(await benchmarkMechanism('MultiHead (4 heads)', multiHead));
1481
- const hyperbolic = new attention.HyperbolicAttention(dim, 1.0);
1482
- results.push(await benchmarkMechanism('Hyperbolic', hyperbolic));
1483
- const linear = new attention.LinearAttention(dim, dim);
1484
- results.push(await benchmarkMechanism('Linear', linear));
1485
- spinner.succeed('Benchmark complete');
1486
- output.writeln();
1487
- output.printTable({
1488
- columns: [
1489
- { key: 'name', header: 'Mechanism', width: 25 },
1490
- { key: 'avgTime', header: 'Avg Time (ms)', width: 15 },
1491
- { key: 'opsPerSec', header: 'Ops/sec', width: 15 },
1492
- ],
1493
- data: results.map(r => ({
1494
- name: r.name,
1495
- avgTime: r.averageTimeMs.toFixed(4),
1496
- opsPerSec: r.opsPerSecond.toLocaleString(),
1497
- })),
1498
- });
1499
- // Show speedup comparisons
1500
- const dotProductResult = results.find(r => r.name.includes('DotProduct'));
1501
- const flashResult = results.find(r => r.name.includes('Flash'));
1502
- const hyperbolicResult = results.find(r => r.name.includes('Hyperbolic'));
1503
- if (dotProductResult && flashResult) {
1504
- const speedup = dotProductResult.averageTimeMs / flashResult.averageTimeMs;
1505
- output.writeln();
1506
- output.writeln(output.highlight(`Flash Attention speedup: ${speedup.toFixed(2)}x faster than DotProduct`));
1507
- }
1508
- if (dotProductResult && hyperbolicResult) {
1509
- output.writeln(output.dim(`Hyperbolic overhead: ${(hyperbolicResult.averageTimeMs / dotProductResult.averageTimeMs).toFixed(2)}x (expected for manifold ops)`));
1510
- }
1511
- // Also benchmark MicroLoRA
1512
- spinner.start();
1513
- spinner.setText('Benchmarking MicroLoRA adaptation...');
1514
- // Load WASM file directly (Node.js compatible)
1515
- const fs = await import('fs');
1516
- const { createRequire } = await import('module');
1517
- const require = createRequire(import.meta.url);
1518
- const wasmPath = require.resolve('@ruvector/learning-wasm/ruvector_learning_wasm_bg.wasm');
1519
- const wasmBuffer = fs.readFileSync(wasmPath);
1520
- const learningWasm = await import('@ruvector/learning-wasm');
1521
- learningWasm.initSync({ module: wasmBuffer });
1522
- const lora = new learningWasm.WasmMicroLoRA(dim, 0.1, 0.01);
1523
- const gradient = new Float32Array(dim);
1524
- for (let i = 0; i < dim; i++)
1525
- gradient[i] = Math.random() - 0.5;
1526
- const loraStart = performance.now();
1527
- for (let i = 0; i < iterations; i++) {
1528
- lora.adapt_array(gradient);
1529
- }
1530
- const loraTime = performance.now() - loraStart;
1531
- const loraAvg = loraTime / iterations;
1532
- spinner.succeed('MicroLoRA benchmark complete');
1533
- output.writeln();
1534
- output.printTable({
1535
- columns: [
1536
- { key: 'metric', header: 'MicroLoRA Metric', width: 25 },
1537
- { key: 'value', header: 'Value', width: 25 },
1538
- ],
1539
- data: [
1540
- { metric: 'Dimension', value: String(dim) },
1541
- { metric: 'Iterations', value: iterations.toLocaleString() },
1542
- { metric: 'Total Time', value: `${loraTime.toFixed(2)}ms` },
1543
- { metric: 'Avg Adaptation', value: `${(loraAvg * 1000).toFixed(2)}μs` },
1544
- { metric: 'Adaptations/sec', value: Math.round(1000 / loraAvg).toLocaleString() },
1545
- { metric: 'Target (<100μs)', value: loraAvg * 1000 < 100 ? output.success('✓ PASS') : output.warning('✗ FAIL') },
1546
- ],
1547
- });
1548
- lora.free();
1549
- return { success: true, data: { results, loraAvg } };
1550
- }
1551
- catch (error) {
1552
- spinner.fail('Benchmark failed');
1553
- output.printError(error instanceof Error ? error.message : String(error));
1554
- return { success: false, exitCode: 1 };
1555
- }
1556
- },
1557
- };
1558
981
  // Main neural command
1559
982
  export const neuralCommand = {
1560
983
  name: 'neural',
1561
- description: 'Neural pattern training, MoE, Flash Attention, pattern learning',
1562
- subcommands: [trainCommand, statusCommand, patternsCommand, predictCommand, optimizeCommand, benchmarkCommand, listCommand, exportCommand, importCommand],
984
+ description: 'Pattern learning, search, and prediction (pure-JS intelligence layer)',
985
+ subcommands: [statusCommand, patternsCommand, predictCommand, optimizeCommand, listCommand, exportCommand, importCommand],
1563
986
  examples: [
1564
- { command: 'monomind neural status', description: 'Check neural system status' },
1565
- { command: 'monomind neural train -p coordination', description: 'Train coordination patterns' },
987
+ { command: 'monomind neural status', description: 'Check pattern-learning system status' },
1566
988
  { command: 'monomind neural patterns --action list', description: 'List learned patterns' },
989
+ { command: 'monomind neural predict -i "implement authentication"', description: 'Predict routing for a task' },
1567
990
  ],
1568
991
  action: async () => {
1569
992
  output.writeln();
1570
- output.writeln(output.bold('MonoMind Neural System'));
1571
- output.writeln(output.dim('Advanced AI pattern learning and inference'));
993
+ output.writeln(output.bold('MonoMind Pattern Learning'));
994
+ output.writeln(output.dim('Pattern learning, search, and prediction (pure-JS)'));
1572
995
  output.writeln();
1573
996
  output.writeln('Use --help with subcommands for more info');
1574
997
  output.writeln();