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,1235 @@
1
+ /**
2
+ * Helpers Generator
3
+ * Creates utility scripts in .claude/helpers/
4
+ */
5
+ import { generateStatuslineScript, generateStatuslineHook } from './statusline-generator.js';
6
+ /**
7
+ * Generate pre-commit hook script
8
+ */
9
+ export function generatePreCommitHook() {
10
+ return `#!/bin/bash
11
+ # Monomind Pre-Commit Hook
12
+ # Validates code quality before commit
13
+
14
+ set -e
15
+
16
+ echo "🔍 Running Monomind pre-commit checks..."
17
+
18
+ # Get staged files
19
+ STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM)
20
+
21
+ # Run validation for each staged file
22
+ for FILE in $STAGED_FILES; do
23
+ if [[ "$FILE" =~ \\.(ts|js|tsx|jsx)$ ]]; then
24
+ echo " Validating: $FILE"
25
+ npx @monomind/cli hooks pre-edit --file "$FILE" --validate-syntax 2>/dev/null || true
26
+ fi
27
+ done
28
+
29
+ # Run tests if available
30
+ if [ -f "package.json" ] && grep -q '"test"' package.json; then
31
+ echo "🧪 Running tests..."
32
+ npm test --if-present 2>/dev/null || echo " Tests skipped or failed"
33
+ fi
34
+
35
+ echo "✅ Pre-commit checks complete"
36
+ `;
37
+ }
38
+ /**
39
+ * Generate post-commit hook script
40
+ */
41
+ export function generatePostCommitHook() {
42
+ return `#!/bin/bash
43
+ # Monomind Post-Commit Hook
44
+ # Records commit metrics and trains patterns
45
+
46
+ COMMIT_HASH=$(git rev-parse HEAD)
47
+ COMMIT_MSG=$(git log -1 --pretty=%B)
48
+
49
+ echo "📊 Recording commit metrics..."
50
+
51
+ # Notify monomind of commit
52
+ npx monomind@latest hooks notify \\
53
+ --message "Commit: $COMMIT_MSG" \\
54
+ --level info \\
55
+ --metadata '{"hash": "'$COMMIT_HASH'"}' 2>/dev/null || true
56
+
57
+ echo "✅ Commit recorded"
58
+ `;
59
+ }
60
+ /**
61
+ * Generate session manager script
62
+ */
63
+ export function generateSessionManager() {
64
+ return `#!/usr/bin/env node
65
+ /**
66
+ * Monomind Session Manager
67
+ * Handles session lifecycle: start, restore, end
68
+ */
69
+
70
+ const fs = require('fs');
71
+ const path = require('path');
72
+
73
+ const SESSION_DIR = path.join(process.cwd(), '.monomind', 'sessions');
74
+ const SESSION_FILE = path.join(SESSION_DIR, 'current.json');
75
+
76
+ const commands = {
77
+ start: () => {
78
+ const sessionId = \`session-\${Date.now()}\`;
79
+ const session = {
80
+ id: sessionId,
81
+ startedAt: new Date().toISOString(),
82
+ cwd: process.cwd(),
83
+ context: {},
84
+ metrics: {
85
+ edits: 0,
86
+ commands: 0,
87
+ tasks: 0,
88
+ errors: 0,
89
+ },
90
+ };
91
+
92
+ fs.mkdirSync(SESSION_DIR, { recursive: true });
93
+ fs.writeFileSync(SESSION_FILE, JSON.stringify(session, null, 2));
94
+
95
+ console.log(\`Session started: \${sessionId}\`);
96
+ return session;
97
+ },
98
+
99
+ restore: () => {
100
+ if (!fs.existsSync(SESSION_FILE)) {
101
+ console.log('No session to restore');
102
+ return null;
103
+ }
104
+
105
+ const session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
106
+ session.restoredAt = new Date().toISOString();
107
+ fs.writeFileSync(SESSION_FILE, JSON.stringify(session, null, 2));
108
+
109
+ console.log(\`Session restored: \${session.id}\`);
110
+ return session;
111
+ },
112
+
113
+ end: () => {
114
+ if (!fs.existsSync(SESSION_FILE)) {
115
+ console.log('No active session');
116
+ return null;
117
+ }
118
+
119
+ const session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
120
+ session.endedAt = new Date().toISOString();
121
+ session.duration = Date.now() - new Date(session.startedAt).getTime();
122
+
123
+ // Archive session
124
+ const archivePath = path.join(SESSION_DIR, \`\${session.id}.json\`);
125
+ fs.writeFileSync(archivePath, JSON.stringify(session, null, 2));
126
+ fs.unlinkSync(SESSION_FILE);
127
+
128
+ console.log(\`Session ended: \${session.id}\`);
129
+ console.log(\`Duration: \${Math.round(session.duration / 1000 / 60)} minutes\`);
130
+ console.log(\`Metrics: \${JSON.stringify(session.metrics)}\`);
131
+
132
+ return session;
133
+ },
134
+
135
+ status: () => {
136
+ if (!fs.existsSync(SESSION_FILE)) {
137
+ console.log('No active session');
138
+ return null;
139
+ }
140
+
141
+ const session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
142
+ const duration = Date.now() - new Date(session.startedAt).getTime();
143
+
144
+ console.log(\`Session: \${session.id}\`);
145
+ console.log(\`Started: \${session.startedAt}\`);
146
+ console.log(\`Duration: \${Math.round(duration / 1000 / 60)} minutes\`);
147
+ console.log(\`Metrics: \${JSON.stringify(session.metrics)}\`);
148
+
149
+ return session;
150
+ },
151
+
152
+ update: (key, value) => {
153
+ if (!fs.existsSync(SESSION_FILE)) {
154
+ console.log('No active session');
155
+ return null;
156
+ }
157
+
158
+ const session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
159
+ session.context[key] = value;
160
+ session.updatedAt = new Date().toISOString();
161
+ fs.writeFileSync(SESSION_FILE, JSON.stringify(session, null, 2));
162
+
163
+ return session;
164
+ },
165
+
166
+ metric: (name) => {
167
+ if (!fs.existsSync(SESSION_FILE)) {
168
+ return null;
169
+ }
170
+
171
+ const session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
172
+ if (session.metrics[name] !== undefined) {
173
+ session.metrics[name]++;
174
+ fs.writeFileSync(SESSION_FILE, JSON.stringify(session, null, 2));
175
+ }
176
+
177
+ return session;
178
+ },
179
+ };
180
+
181
+ // CLI
182
+ const [,, command, ...args] = process.argv;
183
+
184
+ if (command && commands[command]) {
185
+ commands[command](...args);
186
+ } else {
187
+ console.log('Usage: session.js <start|restore|end|status|update|metric> [args]');
188
+ }
189
+
190
+ module.exports = commands;
191
+ `;
192
+ }
193
+ /**
194
+ * Generate agent router script
195
+ */
196
+ export function generateAgentRouter() {
197
+ return `#!/usr/bin/env node
198
+ /**
199
+ * Monomind Agent Router
200
+ * Routes tasks to optimal agents based on learned patterns
201
+ */
202
+
203
+ const AGENT_CAPABILITIES = {
204
+ coder: ['code-generation', 'refactoring', 'debugging', 'implementation'],
205
+ tester: ['unit-testing', 'integration-testing', 'coverage', 'test-generation'],
206
+ reviewer: ['code-review', 'security-audit', 'quality-check', 'best-practices'],
207
+ researcher: ['web-search', 'documentation', 'analysis', 'summarization'],
208
+ architect: ['system-design', 'architecture', 'patterns', 'scalability'],
209
+ 'backend-dev': ['api', 'database', 'server', 'authentication'],
210
+ 'frontend-dev': ['ui', 'react', 'css', 'components'],
211
+ devops: ['ci-cd', 'docker', 'deployment', 'infrastructure'],
212
+ };
213
+
214
+ const TASK_PATTERNS = {
215
+ // Code patterns
216
+ 'implement|create|build|add|write code': 'coder',
217
+ 'test|spec|coverage|unit test|integration': 'tester',
218
+ 'review|audit|check|validate|security': 'reviewer',
219
+ 'research|find|search|documentation|explore': 'researcher',
220
+ 'design|architect|structure|plan': 'architect',
221
+
222
+ // Domain patterns
223
+ 'api|endpoint|server|backend|database': 'backend-dev',
224
+ 'ui|frontend|component|react|css|style': 'frontend-dev',
225
+ 'deploy|docker|ci|cd|pipeline|infrastructure': 'devops',
226
+ };
227
+
228
+ function routeTask(task) {
229
+ const taskLower = task.toLowerCase();
230
+
231
+ // Check patterns
232
+ for (const [pattern, agent] of Object.entries(TASK_PATTERNS)) {
233
+ const regex = new RegExp(pattern, 'i');
234
+ if (regex.test(taskLower)) {
235
+ return {
236
+ agent,
237
+ confidence: 0.8,
238
+ reason: \`Matched pattern: \${pattern}\`,
239
+ };
240
+ }
241
+ }
242
+
243
+ // Default to coder for unknown tasks
244
+ return {
245
+ agent: 'coder',
246
+ confidence: 0.5,
247
+ reason: 'Default routing - no specific pattern matched',
248
+ };
249
+ }
250
+
251
+ // CLI
252
+ const task = process.argv.slice(2).join(' ');
253
+
254
+ if (task) {
255
+ const result = routeTask(task);
256
+ console.log(JSON.stringify(result, null, 2));
257
+ } else {
258
+ console.log('Usage: router.js <task description>');
259
+ console.log('\\nAvailable agents:', Object.keys(AGENT_CAPABILITIES).join(', '));
260
+ }
261
+
262
+ module.exports = { routeTask, AGENT_CAPABILITIES, TASK_PATTERNS };
263
+ `;
264
+ }
265
+ /**
266
+ * Generate memory helper script
267
+ */
268
+ export function generateMemoryHelper() {
269
+ return `#!/usr/bin/env node
270
+ /**
271
+ * Monomind Memory Helper
272
+ * Simple key-value memory for cross-session context
273
+ */
274
+
275
+ const fs = require('fs');
276
+ const path = require('path');
277
+
278
+ const MEMORY_DIR = path.join(process.cwd(), '.monomind', 'data');
279
+ const MEMORY_FILE = path.join(MEMORY_DIR, 'memory.json');
280
+
281
+ function loadMemory() {
282
+ try {
283
+ if (fs.existsSync(MEMORY_FILE)) {
284
+ return JSON.parse(fs.readFileSync(MEMORY_FILE, 'utf-8'));
285
+ }
286
+ } catch (e) {
287
+ // Ignore
288
+ }
289
+ return {};
290
+ }
291
+
292
+ function saveMemory(memory) {
293
+ fs.mkdirSync(MEMORY_DIR, { recursive: true });
294
+ fs.writeFileSync(MEMORY_FILE, JSON.stringify(memory, null, 2));
295
+ }
296
+
297
+ const commands = {
298
+ get: (key) => {
299
+ const memory = loadMemory();
300
+ const value = key ? memory[key] : memory;
301
+ console.log(JSON.stringify(value, null, 2));
302
+ return value;
303
+ },
304
+
305
+ set: (key, value) => {
306
+ if (!key) {
307
+ console.error('Key required');
308
+ return;
309
+ }
310
+ // Reject prototype-pollution keys: \`memory[key] = value\` with key='__proto__'
311
+ // performs a prototype-set, polluting Object.prototype for the process.
312
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
313
+ console.error('Forbidden key');
314
+ process.exit(2);
315
+ }
316
+ const memory = loadMemory();
317
+ Object.defineProperty(memory, key, { value, enumerable: true, configurable: true, writable: true });
318
+ memory._updated = new Date().toISOString();
319
+ saveMemory(memory);
320
+ console.log(\`Set: \${key}\`);
321
+ },
322
+
323
+ delete: (key) => {
324
+ if (!key) {
325
+ console.error('Key required');
326
+ return;
327
+ }
328
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
329
+ console.error('Forbidden key');
330
+ process.exit(2);
331
+ }
332
+ const memory = loadMemory();
333
+ delete memory[key];
334
+ saveMemory(memory);
335
+ console.log(\`Deleted: \${key}\`);
336
+ },
337
+
338
+ clear: () => {
339
+ saveMemory({});
340
+ console.log('Memory cleared');
341
+ },
342
+
343
+ keys: () => {
344
+ const memory = loadMemory();
345
+ const keys = Object.keys(memory).filter(k => !k.startsWith('_'));
346
+ console.log(keys.join('\\n'));
347
+ return keys;
348
+ },
349
+ };
350
+
351
+ // CLI
352
+ const [,, command, key, ...valueParts] = process.argv;
353
+ const value = valueParts.join(' ');
354
+
355
+ if (command && commands[command]) {
356
+ commands[command](key, value);
357
+ } else {
358
+ console.log('Usage: memory.js <get|set|delete|clear|keys> [key] [value]');
359
+ }
360
+
361
+ module.exports = commands;
362
+ `;
363
+ }
364
+ /**
365
+ * Generate hook-handler.cjs (cross-platform hook dispatcher)
366
+ * This is the inline fallback when file copy from the package fails.
367
+ * Uses string concatenation instead of template literals to avoid escaping issues.
368
+ */
369
+ export function generateHookHandler() {
370
+ // Build as array of lines to avoid template-in-template escaping nightmares
371
+ const lines = [
372
+ '#!/usr/bin/env node',
373
+ '/**',
374
+ ' * Monomind Hook Handler (Cross-Platform)',
375
+ ' * Dispatches hook events to the appropriate helper modules.',
376
+ ' */',
377
+ '',
378
+ "const path = require('path');",
379
+ "const fs = require('fs');",
380
+ '',
381
+ 'const helpersDir = __dirname;',
382
+ '',
383
+ 'function safeRequire(modulePath) {',
384
+ ' try {',
385
+ ' if (fs.existsSync(modulePath)) {',
386
+ ' const origLog = console.log;',
387
+ ' const origError = console.error;',
388
+ ' console.log = () => {};',
389
+ ' console.error = () => {};',
390
+ ' try {',
391
+ ' const mod = require(modulePath);',
392
+ ' return mod;',
393
+ ' } finally {',
394
+ ' console.log = origLog;',
395
+ ' console.error = origError;',
396
+ ' }',
397
+ ' }',
398
+ ' } catch (e) {',
399
+ ' // silently fail',
400
+ ' }',
401
+ ' return null;',
402
+ '}',
403
+ '',
404
+ "const router = safeRequire(path.join(helpersDir, 'router.js'));",
405
+ "const session = safeRequire(path.join(helpersDir, 'session.js'));",
406
+ "const memory = safeRequire(path.join(helpersDir, 'memory.js'));",
407
+ "const intelligence = safeRequire(path.join(helpersDir, 'intelligence.cjs'));",
408
+ '',
409
+ 'const [,, command, ...args] = process.argv;',
410
+ '',
411
+ '// Read stdin with timeout — Claude Code sends hook data as JSON via stdin.',
412
+ '// Timeout prevents hanging when stdin is in an ambiguous state (not TTY, not pipe).',
413
+ 'async function readStdin() {',
414
+ ' if (process.stdin.isTTY) return "";',
415
+ ' return new Promise((resolve) => {',
416
+ ' let data = "";',
417
+ ' const timer = setTimeout(() => {',
418
+ ' process.stdin.removeAllListeners();',
419
+ ' process.stdin.pause();',
420
+ ' resolve(data);',
421
+ ' }, 500);',
422
+ ' process.stdin.setEncoding("utf8");',
423
+ ' process.stdin.on("data", (chunk) => { data += chunk; });',
424
+ ' process.stdin.on("end", () => { clearTimeout(timer); resolve(data); });',
425
+ ' process.stdin.on("error", () => { clearTimeout(timer); resolve(data); });',
426
+ ' process.stdin.resume();',
427
+ ' });',
428
+ '}',
429
+ '',
430
+ 'async function main() {',
431
+ ' let stdinData = "";',
432
+ ' try { stdinData = await readStdin(); } catch (e) { /* ignore */ }',
433
+ ' let hookInput = {};',
434
+ ' if (stdinData.trim()) {',
435
+ ' try { hookInput = JSON.parse(stdinData); } catch (e) { /* ignore */ }',
436
+ ' }',
437
+ ' // Prefer stdin fields, then env, then argv',
438
+ " var prompt = hookInput.prompt || hookInput.command || hookInput.toolInput || process.env.PROMPT || process.env.TOOL_INPUT_command || args.join(' ') || '';",
439
+ '',
440
+ 'const handlers = {',
441
+ " 'route': () => {",
442
+ ' if (intelligence && intelligence.getContext) {',
443
+ ' try {',
444
+ ' const ctx = intelligence.getContext(prompt);',
445
+ ' if (ctx) console.log(ctx);',
446
+ ' } catch (e) { /* non-fatal */ }',
447
+ ' }',
448
+ ' if (router && router.routeTask) {',
449
+ ' const result = router.routeTask(prompt);',
450
+ ' var output = [];',
451
+ " output.push('[INFO] Routing task: ' + (prompt.substring(0, 80) || '(no prompt)'));",
452
+ " output.push('');",
453
+ " output.push('+------------ monomind | Primary Recommendation -------------+');",
454
+ " output.push('| Agent: ' + result.agent.padEnd(53) + '|');",
455
+ " output.push('| Confidence: ' + (result.confidence * 100).toFixed(1) + '%' + ' '.repeat(44) + '|');",
456
+ " output.push('| Reason: ' + result.reason.substring(0, 53).padEnd(53) + '|');",
457
+ " output.push('+--------------------------------------------------------------+');",
458
+ " console.log(output.join('\\n'));",
459
+ ' // Graphify knowledge graph suggestion for architecture/understanding tasks',
460
+ ' try {',
461
+ " var archKeywords = ['understand', 'architecture', 'how does', 'what calls', 'dependency', 'depends on', 'flow', 'how is', 'explain codebase', 'project structure', 'what is the relationship', 'graph', 'knowledge'];",
462
+ ' var promptLower = prompt.toLowerCase();',
463
+ ' var isArchQuery = archKeywords.some(function(k) { return promptLower.includes(k); });',
464
+ " var graphJson = require('path').join(process.cwd(), '.monomind', 'monograph.db');",
465
+ " var hasGraph = require('fs').existsSync(graphJson);",
466
+ ' if (isArchQuery) {',
467
+ " var gfOutput = [];",
468
+ " gfOutput.push('');",
469
+ " gfOutput.push('+------- monograph | Knowledge Graph Available ---------------+');",
470
+ ' if (hasGraph) {',
471
+ " gfOutput.push('| Graph: .monomind/monograph.db |');",
472
+ " gfOutput.push('| Use: mcp__monomind__monograph_god_nodes |');",
473
+ " gfOutput.push('| mcp__monomind__monograph_query |');",
474
+ " gfOutput.push('| mcp__monomind__monograph_shortest_path |');",
475
+ " gfOutput.push('| Tip: Call monograph_god_nodes first for architecture overview|');",
476
+ ' } else {',
477
+ " gfOutput.push('| No graph found. Build with: |');",
478
+ " gfOutput.push('| mcp__monomind__monograph_build |');",
479
+ ' }',
480
+ " gfOutput.push('+--------------------------------------------------------------+');",
481
+ " console.log(gfOutput.join('\\n'));",
482
+ ' }',
483
+ ' } catch (e) { /* non-fatal */ }',
484
+ ' } else {',
485
+ " console.log('[INFO] Router not available, using default routing');",
486
+ ' }',
487
+ ' },',
488
+ '',
489
+ " 'pre-bash': () => {",
490
+ " // NOTE: This hook is intentionally NOT a security filter. A 4-substring",
491
+ " // check is trivially bypassed (extra spaces, find -delete, dd, bash -c, etc.)",
492
+ " // and shipping a fake check creates false confidence. Real safety lives in",
493
+ " // Claude Code's permission prompt and sandboxing. Hook is observability-only.",
494
+ " console.log('[OK] Command validation delegated to Claude Code permissions');",
495
+ ' },',
496
+ '',
497
+ " 'post-edit': () => {",
498
+ ' if (session && session.metric) {',
499
+ " try { session.metric('edits'); } catch (e) { /* no active session */ }",
500
+ ' }',
501
+ ' if (intelligence && intelligence.recordEdit) {',
502
+ ' try {',
503
+ " var file = process.env.TOOL_INPUT_file_path || args[0] || '';",
504
+ ' intelligence.recordEdit(file);',
505
+ ' } catch (e) { /* non-fatal */ }',
506
+ ' }',
507
+ ' // Auto-rebuild monograph knowledge graph for code file changes',
508
+ ' try {',
509
+ " var editedFile = process.env.TOOL_INPUT_file_path || args[0] || '';",
510
+ " var isCode = /\\.(ts|js|tsx|jsx|py|go|rs|java|c|cpp|h|cs|rb|php|swift|kt|scala)$/.test(editedFile);",
511
+ " var dbFile = require('path').join(process.cwd(), '.monomind', 'monograph.db');",
512
+ " if (isCode && require('fs').existsSync(dbFile)) {",
513
+ " var s = `import { buildAsync } from '@monoes/monograph'; buildAsync(${JSON.stringify(process.cwd())}).catch(()=>{});`;",
514
+ " require('child_process').spawn(process.execPath, ['--input-type=module', '--eval', s], {",
515
+ " detached: true, stdio: 'ignore'",
516
+ ' }).unref();',
517
+ " console.log('[MONOGRAPH] Queued graph rebuild for: ' + require('path').basename(editedFile));",
518
+ ' }',
519
+ ' } catch (e) { /* non-fatal — monograph may not be installed */ }',
520
+ " console.log('[OK] Edit recorded');",
521
+ ' },',
522
+ '',
523
+ " 'session-restore': () => {",
524
+ ' if (session) {',
525
+ ' var existing = session.restore && session.restore();',
526
+ ' if (!existing) {',
527
+ ' session.start && session.start();',
528
+ ' }',
529
+ ' } else {',
530
+ " console.log('[OK] Session restored: session-' + Date.now());",
531
+ ' }',
532
+ ' if (intelligence && intelligence.init) {',
533
+ ' try {',
534
+ ' var result = intelligence.init();',
535
+ ' if (result && result.nodes > 0) {',
536
+ " console.log('[INTELLIGENCE] Loaded ' + result.nodes + ' patterns, ' + result.edges + ' edges');",
537
+ ' }',
538
+ ' } catch (e) { /* non-fatal */ }',
539
+ ' }',
540
+ ' },',
541
+ '',
542
+ " 'session-end': () => {",
543
+ ' if (intelligence && intelligence.consolidate) {',
544
+ ' try {',
545
+ ' var result = intelligence.consolidate();',
546
+ ' if (result && result.entries > 0) {',
547
+ " var msg = '[INTELLIGENCE] Consolidated: ' + result.entries + ' entries, ' + result.edges + ' edges';",
548
+ " if (result.newEntries > 0) msg += ', ' + result.newEntries + ' new';",
549
+ " msg += ', PageRank recomputed';",
550
+ ' console.log(msg);',
551
+ ' }',
552
+ ' } catch (e) { /* non-fatal */ }',
553
+ ' }',
554
+ ' if (session && session.end) {',
555
+ ' session.end();',
556
+ ' } else {',
557
+ " console.log('[OK] Session ended');",
558
+ ' }',
559
+ ' },',
560
+ '',
561
+ " 'pre-task': () => {",
562
+ ' if (session && session.metric) {',
563
+ " try { session.metric('tasks'); } catch (e) { /* no active session */ }",
564
+ ' }',
565
+ ' if (router && router.routeTask && prompt) {',
566
+ ' var result = router.routeTask(prompt);',
567
+ " console.log('[INFO] Task routed to: ' + result.agent + ' (confidence: ' + result.confidence + ')');",
568
+ ' } else {',
569
+ " console.log('[OK] Task started');",
570
+ ' }',
571
+ ' },',
572
+ '',
573
+ " 'post-task': () => {",
574
+ ' if (intelligence && intelligence.feedback) {',
575
+ ' try {',
576
+ ' intelligence.feedback(true);',
577
+ ' } catch (e) { /* non-fatal */ }',
578
+ ' }',
579
+ " console.log('[OK] Task completed');",
580
+ ' },',
581
+ '',
582
+ " 'compact-manual': () => {",
583
+ " console.log('PreCompact Guidance:');",
584
+ " console.log('IMPORTANT: Review CLAUDE.md in project root for:');",
585
+ " console.log(' - Available agents and concurrent usage patterns');",
586
+ " console.log(' - Swarm coordination strategies (hierarchical, mesh, adaptive)');",
587
+ " console.log(' - Critical concurrent execution rules (1 MESSAGE = ALL OPERATIONS)');",
588
+ " console.log('Ready for compact operation');",
589
+ ' },',
590
+ '',
591
+ " 'compact-auto': () => {",
592
+ " console.log('Auto-Compact Guidance (Context Window Full):');",
593
+ " console.log('CRITICAL: Before compacting, ensure you understand:');",
594
+ " console.log(' - All agents available in .claude/agents/ directory');",
595
+ " console.log(' - Concurrent execution patterns from CLAUDE.md');",
596
+ " console.log(' - Swarm coordination strategies for complex tasks');",
597
+ " console.log('Apply GOLDEN RULE: Always batch operations in single messages');",
598
+ " console.log('Auto-compact proceeding with full agent context');",
599
+ ' },',
600
+ '',
601
+ " 'status': () => {",
602
+ " console.log('[OK] Status check');",
603
+ ' },',
604
+ '',
605
+ " 'stats': () => {",
606
+ ' if (intelligence && intelligence.stats) {',
607
+ " intelligence.stats(args.includes('--json'));",
608
+ ' } else {',
609
+ " console.log('[WARN] Intelligence module not available. Run session-restore first.');",
610
+ ' }',
611
+ ' },',
612
+ '};',
613
+ '',
614
+ 'if (command && handlers[command]) {',
615
+ ' try {',
616
+ ' handlers[command]();',
617
+ ' } catch (e) {',
618
+ " console.log('[WARN] Hook ' + command + ' encountered an error: ' + e.message);",
619
+ ' }',
620
+ '} else if (command) {',
621
+ " console.log('[OK] Hook: ' + command);",
622
+ '} else {',
623
+ " console.log('Usage: hook-handler.cjs <route|pre-bash|post-edit|session-restore|session-end|pre-task|post-task|compact-manual|compact-auto|status|stats>');",
624
+ '}',
625
+ '} // end main',
626
+ '',
627
+ 'process.exitCode = 0;',
628
+ 'main().catch(() => {}).finally(() => { process.exit(0); });',
629
+ ];
630
+ return lines.join('\n') + '\n';
631
+ }
632
+ /**
633
+ * Generate a minimal intelligence.cjs stub for fallback installs.
634
+ * Provides the same API as the full intelligence.cjs but with simplified logic.
635
+ * Gets overwritten when source copy succeeds (full version has PageRank, Jaccard, etc.)
636
+ */
637
+ export function generateIntelligenceStub() {
638
+ const lines = [
639
+ '#!/usr/bin/env node',
640
+ '/**',
641
+ ' * Intelligence Layer Stub (ADR-050)',
642
+ ' * Minimal fallback — full version is copied from package source.',
643
+ ' * Provides: init, getContext, recordEdit, feedback, consolidate',
644
+ ' */',
645
+ "'use strict';",
646
+ '',
647
+ "const fs = require('fs');",
648
+ "const path = require('path');",
649
+ "const os = require('os');",
650
+ '',
651
+ "const DATA_DIR = path.join(process.cwd(), '.monomind', 'data');",
652
+ "const STORE_PATH = path.join(DATA_DIR, 'auto-memory-store.json');",
653
+ "const RANKED_PATH = path.join(DATA_DIR, 'ranked-context.json');",
654
+ "const PENDING_PATH = path.join(DATA_DIR, 'pending-insights.jsonl');",
655
+ "const SESSION_DIR = path.join(process.cwd(), '.monomind', 'sessions');",
656
+ "const SESSION_FILE = path.join(SESSION_DIR, 'current.json');",
657
+ '',
658
+ 'function ensureDir(dir) {',
659
+ ' if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });',
660
+ '}',
661
+ '',
662
+ 'function readJSON(p) {',
663
+ ' try { return fs.existsSync(p) ? JSON.parse(fs.readFileSync(p, "utf-8")) : null; }',
664
+ ' catch { return null; }',
665
+ '}',
666
+ '',
667
+ 'function writeJSON(p, data) {',
668
+ ' ensureDir(path.dirname(p));',
669
+ ' fs.writeFileSync(p, JSON.stringify(data, null, 2), "utf-8");',
670
+ '}',
671
+ '',
672
+ '// Read session context key',
673
+ 'function sessionGet(key) {',
674
+ ' var session = readJSON(SESSION_FILE);',
675
+ ' if (!session) return null;',
676
+ ' return key ? (session.context || {})[key] : session.context;',
677
+ '}',
678
+ '',
679
+ '// Write session context key',
680
+ 'function sessionSet(key, value) {',
681
+ ' var session = readJSON(SESSION_FILE);',
682
+ ' if (!session) return;',
683
+ ' if (!session.context) session.context = {};',
684
+ ' session.context[key] = value;',
685
+ ' writeJSON(SESSION_FILE, session);',
686
+ '}',
687
+ '',
688
+ '// Tokenize text into words',
689
+ 'function tokenize(text) {',
690
+ ' if (!text) return [];',
691
+ ' return text.toLowerCase().replace(/[^a-z0-9\\s]/g, " ").split(/\\s+/).filter(function(w) { return w.length > 2; });',
692
+ '}',
693
+ '',
694
+ '// Bootstrap entries from MEMORY.md files when store is empty.',
695
+ '// SECURITY: ONLY walk the current project. Walking ~/.claude/projects',
696
+ '// previously caused cross-project memory leakage — entries from project A',
697
+ '// (potentially containing secrets) would surface in prompts in project B.',
698
+ 'function bootstrapFromMemoryFiles() {',
699
+ ' var entries = [];',
700
+ ' var candidates = [',
701
+ ' path.join(process.cwd(), ".monomind", "memory"),',
702
+ ' path.join(process.cwd(), ".claude", "memory"),',
703
+ ' ];',
704
+ ' for (var i = 0; i < candidates.length; i++) {',
705
+ ' try {',
706
+ ' if (!fs.existsSync(candidates[i])) continue;',
707
+ ' var files = [];',
708
+ ' try {',
709
+ ' var items = fs.readdirSync(candidates[i], { withFileTypes: true, recursive: true });',
710
+ ' for (var j = 0; j < items.length; j++) {',
711
+ ' if (items[j].name === "MEMORY.md") {',
712
+ ' var parentDir = items[j].parentPath || items[j].path || candidates[i];',
713
+ ' var fp = path.join(parentDir, items[j].name);',
714
+ ' files.push(fp);',
715
+ ' }',
716
+ ' }',
717
+ ' } catch (e) { continue; }',
718
+ ' for (var k = 0; k < files.length; k++) {',
719
+ ' try {',
720
+ ' var content = fs.readFileSync(files[k], "utf-8");',
721
+ ' var sections = content.split(/^##\\s+/m).filter(function(s) { return s.trim().length > 20; });',
722
+ ' for (var s = 0; s < sections.length; s++) {',
723
+ ' var lines2 = sections[s].split("\\n");',
724
+ ' var title = lines2[0] ? lines2[0].trim() : "section-" + s;',
725
+ ' entries.push({',
726
+ ' id: "mem-" + entries.length,',
727
+ ' content: sections[s].substring(0, 500),',
728
+ ' summary: title.substring(0, 100),',
729
+ ' category: "memory",',
730
+ ' confidence: 0.5,',
731
+ ' sourceFile: files[k],',
732
+ ' words: tokenize(sections[s].substring(0, 500)),',
733
+ ' });',
734
+ ' }',
735
+ ' } catch (e) { /* skip */ }',
736
+ ' }',
737
+ ' } catch (e) { /* skip */ }',
738
+ ' }',
739
+ ' return entries;',
740
+ '}',
741
+ '',
742
+ '// Load entries from auto-memory-store or bootstrap from MEMORY.md',
743
+ 'function loadEntries() {',
744
+ ' var store = readJSON(STORE_PATH);',
745
+ ' // Support both formats: flat array or { entries: [...] }',
746
+ ' var entries = null;',
747
+ ' if (store) {',
748
+ ' if (Array.isArray(store) && store.length > 0) {',
749
+ ' entries = store;',
750
+ ' } else if (store.entries && store.entries.length > 0) {',
751
+ ' entries = store.entries;',
752
+ ' }',
753
+ ' }',
754
+ ' if (entries) {',
755
+ ' return entries.map(function(e, i) {',
756
+ ' return {',
757
+ ' id: e.id || ("entry-" + i),',
758
+ ' content: e.content || e.value || "",',
759
+ ' summary: e.summary || e.key || "",',
760
+ ' category: e.category || e.namespace || "default",',
761
+ ' confidence: e.confidence || 0.5,',
762
+ ' sourceFile: e.sourceFile || (e.metadata && e.metadata.sourceFile) || "",',
763
+ ' words: tokenize((e.content || e.value || "") + " " + (e.summary || e.key || "")),',
764
+ ' };',
765
+ ' });',
766
+ ' }',
767
+ ' return bootstrapFromMemoryFiles();',
768
+ '}',
769
+ '',
770
+ '// Simple keyword match score',
771
+ 'function matchScore(promptWords, entryWords) {',
772
+ ' if (!promptWords.length || !entryWords.length) return 0;',
773
+ ' var entrySet = {};',
774
+ ' for (var i = 0; i < entryWords.length; i++) entrySet[entryWords[i]] = true;',
775
+ ' var overlap = 0;',
776
+ ' for (var j = 0; j < promptWords.length; j++) {',
777
+ ' if (entrySet[promptWords[j]]) overlap++;',
778
+ ' }',
779
+ ' var union = Object.keys(entrySet).length + promptWords.length - overlap;',
780
+ ' return union > 0 ? overlap / union : 0;',
781
+ '}',
782
+ '',
783
+ 'var cachedEntries = null;',
784
+ '',
785
+ 'module.exports = {',
786
+ ' init: function() {',
787
+ ' cachedEntries = loadEntries();',
788
+ ' var ranked = cachedEntries.map(function(e) {',
789
+ ' return { id: e.id, content: e.content, summary: e.summary, category: e.category, confidence: e.confidence, words: e.words };',
790
+ ' });',
791
+ ' writeJSON(RANKED_PATH, { version: 1, computedAt: Date.now(), entries: ranked });',
792
+ ' return { nodes: cachedEntries.length, edges: 0 };',
793
+ ' },',
794
+ '',
795
+ ' getContext: function(prompt) {',
796
+ ' if (!prompt) return null;',
797
+ ' var ranked = readJSON(RANKED_PATH);',
798
+ ' var entries = (ranked && ranked.entries) || (cachedEntries || []);',
799
+ ' if (!entries.length) return null;',
800
+ ' var promptWords = tokenize(prompt);',
801
+ ' if (!promptWords.length) return null;',
802
+ ' var scored = entries.map(function(e) {',
803
+ ' return { entry: e, score: matchScore(promptWords, e.words || tokenize(e.content + " " + e.summary)) };',
804
+ ' }).filter(function(s) { return s.score > 0.05; });',
805
+ ' scored.sort(function(a, b) { return b.score - a.score; });',
806
+ ' var top = scored.slice(0, 5);',
807
+ ' if (!top.length) return null;',
808
+ ' var prevMatched = sessionGet("lastMatchedPatterns");',
809
+ ' var matchedIds = top.map(function(s) { return s.entry.id; });',
810
+ ' sessionSet("lastMatchedPatterns", matchedIds);',
811
+ ' if (prevMatched && Array.isArray(prevMatched)) {',
812
+ ' var newSet = {};',
813
+ ' for (var i = 0; i < matchedIds.length; i++) newSet[matchedIds[i]] = true;',
814
+ ' }',
815
+ ' var lines2 = ["[INTELLIGENCE] Relevant patterns for this task:"];',
816
+ ' for (var j = 0; j < top.length; j++) {',
817
+ ' var e = top[j];',
818
+ ' var conf = e.entry.confidence || 0.5;',
819
+ ' var summary = (e.entry.summary || e.entry.content || "").substring(0, 80);',
820
+ ' lines2.push(" * (" + conf.toFixed(2) + ") " + summary);',
821
+ ' }',
822
+ ' return lines2.join("\\n");',
823
+ ' },',
824
+ '',
825
+ ' recordEdit: function(file) {',
826
+ ' if (!file) return;',
827
+ ' ensureDir(DATA_DIR);',
828
+ ' var line = JSON.stringify({ type: "edit", file: file, timestamp: Date.now() }) + "\\n";',
829
+ ' fs.appendFileSync(PENDING_PATH, line, "utf-8");',
830
+ ' },',
831
+ '',
832
+ ' feedback: function(success) {',
833
+ ' // Stub: no-op in minimal version',
834
+ ' },',
835
+ '',
836
+ ' consolidate: function() {',
837
+ ' var count = 0;',
838
+ ' if (fs.existsSync(PENDING_PATH)) {',
839
+ ' try {',
840
+ ' var content = fs.readFileSync(PENDING_PATH, "utf-8").trim();',
841
+ ' count = content ? content.split("\\n").length : 0;',
842
+ ' fs.writeFileSync(PENDING_PATH, "", "utf-8");',
843
+ ' } catch (e) { /* skip */ }',
844
+ ' }',
845
+ ' return { entries: count, edges: 0, newEntries: 0 };',
846
+ ' },',
847
+ '};',
848
+ ];
849
+ return lines.join('\n') + '\n';
850
+ }
851
+ /**
852
+ * Generate a minimal auto-memory-hook.mjs fallback for fresh installs.
853
+ * This ESM script handles import/sync/status commands gracefully when
854
+ * @monomind/memory is not installed. Gets overwritten when source copy succeeds.
855
+ */
856
+ export function generateAutoMemoryHook() {
857
+ return `#!/usr/bin/env node
858
+ /**
859
+ * Auto Memory Bridge Hook (ADR-048/049) — Minimal Fallback
860
+ * Full version is copied from package source when available.
861
+ *
862
+ * Usage:
863
+ * node auto-memory-hook.mjs import # SessionStart
864
+ * node auto-memory-hook.mjs sync # SessionEnd / Stop
865
+ * node auto-memory-hook.mjs status # Show bridge status
866
+ */
867
+
868
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
869
+ import { join, dirname } from 'path';
870
+ import { fileURLToPath } from 'url';
871
+
872
+ const __filename = fileURLToPath(import.meta.url);
873
+ const __dirname = dirname(__filename);
874
+ const PROJECT_ROOT = join(__dirname, '../..');
875
+ const DATA_DIR = join(PROJECT_ROOT, '.monomind', 'data');
876
+ const STORE_PATH = join(DATA_DIR, 'auto-memory-store.json');
877
+
878
+ const DIM = '\\x1b[2m';
879
+ const RESET = '\\x1b[0m';
880
+ const dim = (msg) => console.log(\` \${DIM}\${msg}\${RESET}\`);
881
+
882
+ // Ensure data dir
883
+ if (!existsSync(DATA_DIR)) mkdirSync(DATA_DIR, { recursive: true });
884
+
885
+ async function loadMemoryPackage() {
886
+ // Strategy 1: Use createRequire for CJS-style resolution (handles nested node_modules
887
+ // when installed as a transitive dependency via npx monomind / npx monomind)
888
+ try {
889
+ const { createRequire } = await import('module');
890
+ const require = createRequire(join(PROJECT_ROOT, 'package.json'));
891
+ return require('@monomind/memory');
892
+ } catch { /* fall through */ }
893
+
894
+ // Strategy 2: ESM import (works when @monomind/memory is a direct dependency)
895
+ try { return await import('@monomind/memory'); } catch { /* fall through */ }
896
+
897
+ // Strategy 3: Walk up from PROJECT_ROOT looking for the package in any node_modules
898
+ let searchDir = PROJECT_ROOT;
899
+ const { parse } = await import('path');
900
+ while (searchDir !== parse(searchDir).root) {
901
+ const candidate = join(searchDir, 'node_modules', '@monomind', 'memory', 'dist', 'index.js');
902
+ if (existsSync(candidate)) {
903
+ try { return await import(\`file://\${candidate}\`); } catch { /* fall through */ }
904
+ }
905
+ searchDir = dirname(searchDir);
906
+ }
907
+
908
+ return null;
909
+ }
910
+
911
+ async function doImport() {
912
+ const memPkg = await loadMemoryPackage();
913
+
914
+ if (!memPkg || !memPkg.AutoMemoryBridge) {
915
+ dim('Memory package not available — auto memory import skipped (non-critical)');
916
+ return;
917
+ }
918
+
919
+ // Full implementation deferred to copied version
920
+ dim('Auto memory import available — run init --upgrade for full support');
921
+ }
922
+
923
+ async function doSync() {
924
+ if (!existsSync(STORE_PATH)) {
925
+ dim('No entries to sync');
926
+ return;
927
+ }
928
+
929
+ const memPkg = await loadMemoryPackage();
930
+
931
+ if (!memPkg || !memPkg.AutoMemoryBridge) {
932
+ dim('Memory package not available — sync skipped (non-critical)');
933
+ return;
934
+ }
935
+
936
+ dim('Auto memory sync available — run init --upgrade for full support');
937
+ }
938
+
939
+ function doStatus() {
940
+ console.log('\\n=== Auto Memory Bridge Status ===\\n');
941
+ console.log(' Package: Fallback mode (run init --upgrade for full)');
942
+ console.log(\` Store: \${existsSync(STORE_PATH) ? 'Initialized' : 'Not initialized'}\`);
943
+ console.log('');
944
+ }
945
+
946
+ // Suppress unhandled rejection warnings ONLY for genuine module-not-found from
947
+ // optional dynamic imports. Previously this swallowed any error whose message
948
+ // contained "Cannot find" (e.g. "Cannot find user with id ..."), masking real
949
+ // failures and security regressions.
950
+ process.on('unhandledRejection', (reason) => {
951
+ const code = reason && typeof reason === 'object' ? reason.code : undefined;
952
+ if (code === 'ERR_MODULE_NOT_FOUND' || code === 'MODULE_NOT_FOUND') return;
953
+ if (reason instanceof Error) throw reason;
954
+ throw new Error(String(reason));
955
+ });
956
+
957
+ const command = process.argv[2] || 'status';
958
+
959
+ try {
960
+ switch (command) {
961
+ case 'import': await doImport(); break;
962
+ case 'sync': await doSync(); break;
963
+ case 'status': doStatus(); break;
964
+ default:
965
+ console.log('Usage: auto-memory-hook.mjs <import|sync|status>');
966
+ process.exit(1);
967
+ }
968
+ } catch (err) {
969
+ // Hooks must never crash Claude Code - fail silently
970
+ dim(\`Error (non-critical): \${err.message}\`);
971
+ }
972
+ // Ensure clean exit for Claude Code hooks (exit 0 = success)
973
+ process.exit(0);
974
+ `;
975
+ }
976
+ /**
977
+ * Generate Windows PowerShell daemon manager
978
+ */
979
+ export function generateWindowsDaemonManager() {
980
+ return `# Monomind Daemon Manager for Windows
981
+ # PowerShell script for managing background processes
982
+
983
+ param(
984
+ [Parameter(Position=0)]
985
+ [ValidateSet('start', 'stop', 'status', 'restart')]
986
+ [string]$Action = 'status'
987
+ )
988
+
989
+ $ErrorActionPreference = 'SilentlyContinue'
990
+ $MonomindDir = Join-Path $PWD '.monomind'
991
+ $PidDir = Join-Path $MonomindDir 'pids'
992
+
993
+ # Ensure directories exist
994
+ if (-not (Test-Path $PidDir)) {
995
+ New-Item -ItemType Directory -Path $PidDir -Force | Out-Null
996
+ }
997
+
998
+ function Get-DaemonStatus {
999
+ param([string]$Name, [string]$PidFile)
1000
+
1001
+ if (Test-Path $PidFile) {
1002
+ $pid = Get-Content $PidFile
1003
+ $process = Get-Process -Id $pid -ErrorAction SilentlyContinue
1004
+ if ($process) {
1005
+ return @{ Running = $true; Pid = $pid }
1006
+ }
1007
+ }
1008
+ return @{ Running = $false; Pid = $null }
1009
+ }
1010
+
1011
+ function Start-SwarmMonitor {
1012
+ $pidFile = Join-Path $PidDir 'swarm-monitor.pid'
1013
+ $status = Get-DaemonStatus -Name 'swarm-monitor' -PidFile $pidFile
1014
+
1015
+ if ($status.Running) {
1016
+ Write-Host "Swarm monitor already running (PID: $($status.Pid))" -ForegroundColor Yellow
1017
+ return
1018
+ }
1019
+
1020
+ Write-Host "Starting swarm monitor..." -ForegroundColor Cyan
1021
+ $process = Start-Process -FilePath 'node' -ArgumentList @(
1022
+ '-e',
1023
+ 'setInterval(() => { require("fs").writeFileSync(".monomind/metrics/swarm-activity.json", JSON.stringify({swarm:{active:true,agent_count:0},timestamp:Date.now()})) }, 5000)'
1024
+ ) -PassThru -WindowStyle Hidden
1025
+
1026
+ $process.Id | Out-File $pidFile
1027
+ Write-Host "Swarm monitor started (PID: $($process.Id))" -ForegroundColor Green
1028
+ }
1029
+
1030
+ function Stop-SwarmMonitor {
1031
+ $pidFile = Join-Path $PidDir 'swarm-monitor.pid'
1032
+ $status = Get-DaemonStatus -Name 'swarm-monitor' -PidFile $pidFile
1033
+
1034
+ if (-not $status.Running) {
1035
+ Write-Host "Swarm monitor not running" -ForegroundColor Yellow
1036
+ return
1037
+ }
1038
+
1039
+ Stop-Process -Id $status.Pid -Force
1040
+ Remove-Item $pidFile -Force
1041
+ Write-Host "Swarm monitor stopped" -ForegroundColor Green
1042
+ }
1043
+
1044
+ function Show-Status {
1045
+ Write-Host ""
1046
+ Write-Host "Monomind Daemon Status" -ForegroundColor Cyan
1047
+ Write-Host "=============================" -ForegroundColor Cyan
1048
+
1049
+ $swarmPid = Join-Path $PidDir 'swarm-monitor.pid'
1050
+ $swarmStatus = Get-DaemonStatus -Name 'swarm-monitor' -PidFile $swarmPid
1051
+
1052
+ if ($swarmStatus.Running) {
1053
+ Write-Host " Swarm Monitor: RUNNING (PID: $($swarmStatus.Pid))" -ForegroundColor Green
1054
+ } else {
1055
+ Write-Host " Swarm Monitor: STOPPED" -ForegroundColor Red
1056
+ }
1057
+ Write-Host ""
1058
+ }
1059
+
1060
+ switch ($Action) {
1061
+ 'start' {
1062
+ Start-SwarmMonitor
1063
+ Show-Status
1064
+ }
1065
+ 'stop' {
1066
+ Stop-SwarmMonitor
1067
+ Show-Status
1068
+ }
1069
+ 'restart' {
1070
+ Stop-SwarmMonitor
1071
+ Start-Sleep -Seconds 1
1072
+ Start-SwarmMonitor
1073
+ Show-Status
1074
+ }
1075
+ 'status' {
1076
+ Show-Status
1077
+ }
1078
+ }
1079
+ `;
1080
+ }
1081
+ /**
1082
+ * Generate Windows batch file wrapper
1083
+ */
1084
+ export function generateWindowsBatchWrapper() {
1085
+ return `@echo off
1086
+ REM Monomind - Windows Batch Wrapper
1087
+ REM Routes to PowerShell daemon manager
1088
+
1089
+ PowerShell -ExecutionPolicy Bypass -File "%~dp0daemon-manager.ps1" %*
1090
+ `;
1091
+ }
1092
+ /**
1093
+ * Generate cross-platform session manager
1094
+ */
1095
+ export function generateCrossPlatformSessionManager() {
1096
+ return `#!/usr/bin/env node
1097
+ /**
1098
+ * Monomind Cross-Platform Session Manager
1099
+ * Works on Windows, macOS, and Linux
1100
+ */
1101
+
1102
+ const fs = require('fs');
1103
+ const path = require('path');
1104
+ const os = require('os');
1105
+
1106
+ // Platform-specific paths
1107
+ const platform = os.platform();
1108
+ const homeDir = os.homedir();
1109
+
1110
+ // Get data directory based on platform
1111
+ function getDataDir() {
1112
+ const localDir = path.join(process.cwd(), '.monomind', 'sessions');
1113
+ if (fs.existsSync(path.dirname(localDir))) {
1114
+ return localDir;
1115
+ }
1116
+
1117
+ switch (platform) {
1118
+ case 'win32':
1119
+ return path.join(process.env.APPDATA || homeDir, 'monomind', 'sessions');
1120
+ case 'darwin':
1121
+ return path.join(homeDir, 'Library', 'Application Support', 'monomind', 'sessions');
1122
+ default:
1123
+ return path.join(homeDir, '.monomind', 'sessions');
1124
+ }
1125
+ }
1126
+
1127
+ const SESSION_DIR = getDataDir();
1128
+ const SESSION_FILE = path.join(SESSION_DIR, 'current.json');
1129
+
1130
+ // Ensure directory exists
1131
+ function ensureDir(dir) {
1132
+ if (!fs.existsSync(dir)) {
1133
+ fs.mkdirSync(dir, { recursive: true });
1134
+ }
1135
+ }
1136
+
1137
+ const commands = {
1138
+ start: () => {
1139
+ ensureDir(SESSION_DIR);
1140
+ const sessionId = \`session-\${Date.now()}\`;
1141
+ const session = {
1142
+ id: sessionId,
1143
+ startedAt: new Date().toISOString(),
1144
+ platform: platform,
1145
+ cwd: process.cwd(),
1146
+ context: {},
1147
+ metrics: { edits: 0, commands: 0, tasks: 0, errors: 0 }
1148
+ };
1149
+ fs.writeFileSync(SESSION_FILE, JSON.stringify(session, null, 2));
1150
+ console.log(\`Session started: \${sessionId}\`);
1151
+ return session;
1152
+ },
1153
+
1154
+ restore: () => {
1155
+ if (!fs.existsSync(SESSION_FILE)) {
1156
+ console.log('No session to restore');
1157
+ return null;
1158
+ }
1159
+ const session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
1160
+ session.restoredAt = new Date().toISOString();
1161
+ fs.writeFileSync(SESSION_FILE, JSON.stringify(session, null, 2));
1162
+ console.log(\`Session restored: \${session.id}\`);
1163
+ return session;
1164
+ },
1165
+
1166
+ end: () => {
1167
+ if (!fs.existsSync(SESSION_FILE)) {
1168
+ console.log('No active session');
1169
+ return null;
1170
+ }
1171
+ const session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
1172
+ session.endedAt = new Date().toISOString();
1173
+ session.duration = Date.now() - new Date(session.startedAt).getTime();
1174
+
1175
+ const archivePath = path.join(SESSION_DIR, \`\${session.id}.json\`);
1176
+ fs.writeFileSync(archivePath, JSON.stringify(session, null, 2));
1177
+ fs.unlinkSync(SESSION_FILE);
1178
+
1179
+ console.log(\`Session ended: \${session.id}\`);
1180
+ console.log(\`Duration: \${Math.round(session.duration / 1000 / 60)} minutes\`);
1181
+ return session;
1182
+ },
1183
+
1184
+ status: () => {
1185
+ if (!fs.existsSync(SESSION_FILE)) {
1186
+ console.log('No active session');
1187
+ return null;
1188
+ }
1189
+ const session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
1190
+ const duration = Date.now() - new Date(session.startedAt).getTime();
1191
+ console.log(\`Session: \${session.id}\`);
1192
+ console.log(\`Platform: \${session.platform}\`);
1193
+ console.log(\`Started: \${session.startedAt}\`);
1194
+ console.log(\`Duration: \${Math.round(duration / 1000 / 60)} minutes\`);
1195
+ return session;
1196
+ }
1197
+ };
1198
+
1199
+ // CLI
1200
+ const [,, command, ...args] = process.argv;
1201
+ if (command && commands[command]) {
1202
+ commands[command](...args);
1203
+ } else {
1204
+ console.log('Usage: session.js <start|restore|end|status>');
1205
+ console.log(\`Platform: \${platform}\`);
1206
+ console.log(\`Data dir: \${SESSION_DIR}\`);
1207
+ }
1208
+
1209
+ module.exports = commands;
1210
+ `;
1211
+ }
1212
+ /**
1213
+ * Generate all helper files
1214
+ */
1215
+ export function generateHelpers(options) {
1216
+ const helpers = {};
1217
+ if (options.components.helpers) {
1218
+ // Unix/macOS shell scripts
1219
+ helpers['pre-commit'] = generatePreCommitHook();
1220
+ helpers['post-commit'] = generatePostCommitHook();
1221
+ // Cross-platform Node.js scripts
1222
+ helpers['session.js'] = generateCrossPlatformSessionManager();
1223
+ helpers['router.js'] = generateAgentRouter();
1224
+ helpers['memory.js'] = generateMemoryHelper();
1225
+ // Windows-specific scripts
1226
+ helpers['daemon-manager.ps1'] = generateWindowsDaemonManager();
1227
+ helpers['daemon-manager.cmd'] = generateWindowsBatchWrapper();
1228
+ }
1229
+ if (options.components.statusline) {
1230
+ helpers['statusline.cjs'] = generateStatuslineScript(options); // .cjs for ES module compatibility
1231
+ helpers['statusline-hook.sh'] = generateStatuslineHook(options);
1232
+ }
1233
+ return helpers;
1234
+ }
1235
+ //# sourceMappingURL=helpers-generator.js.map