monomind 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/.claude/agents/design/design-monodesign.md +121 -0
  2. package/.claude/agents/github/issue-tracker.md +12 -12
  3. package/.claude/agents/github/pr-manager.md +10 -10
  4. package/.claude/agents/github/release-manager.md +49 -105
  5. package/.claude/agents/github/repo-architect.md +73 -92
  6. package/.claude/agents/github/sync-coordinator.md +55 -123
  7. package/.claude/agents/marketing/marketing-competitive-content.md +155 -0
  8. package/.claude/agents/marketing/marketing-content-creator.md +13 -0
  9. package/.claude/agents/marketing/marketing-cro-specialist.md +147 -0
  10. package/.claude/agents/marketing/marketing-email-specialist.md +90 -0
  11. package/.claude/agents/marketing/marketing-launch-strategist.md +129 -0
  12. package/.claude/agents/marketing/marketing-pricing-strategist.md +127 -0
  13. package/.claude/agents/specialists/integration-architect.md +94 -0
  14. package/.claude/commands/agents/README.md +4 -0
  15. package/.claude/commands/agents/agent-capabilities.md +6 -2
  16. package/.claude/commands/agents/agent-coordination.md +4 -0
  17. package/.claude/commands/agents/agent-spawning.md +4 -0
  18. package/.claude/commands/agents/agent-types.md +6 -2
  19. package/.claude/commands/analysis/README.md +14 -5
  20. package/.claude/commands/analysis/bottleneck-detect.md +30 -123
  21. package/.claude/commands/analysis/performance-bottlenecks.md +14 -14
  22. package/.claude/commands/analysis/performance-report.md +38 -11
  23. package/.claude/commands/analysis/token-efficiency.md +13 -16
  24. package/.claude/commands/analysis/token-usage.md +34 -12
  25. package/.claude/commands/automation/README.md +15 -5
  26. package/.claude/commands/automation/auto-agent.md +49 -85
  27. package/.claude/commands/automation/self-healing.md +20 -18
  28. package/.claude/commands/automation/session-memory.md +28 -29
  29. package/.claude/commands/automation/smart-agents.md +17 -9
  30. package/.claude/commands/automation/smart-spawn.md +52 -11
  31. package/.claude/commands/automation/workflow-select.md +46 -11
  32. package/.claude/commands/browse.md +5 -0
  33. package/.claude/commands/coordination/README.md +9 -5
  34. package/.claude/commands/coordination/agent-spawn.md +53 -9
  35. package/.claude/commands/coordination/swarm-init.md +39 -42
  36. package/.claude/commands/coordination/task-orchestrate.md +65 -11
  37. package/.claude/commands/github/README.md +21 -8
  38. package/.claude/commands/github/github-modes.md +9 -5
  39. package/.claude/commands/github/issue-tracker.md +34 -33
  40. package/.claude/commands/github/pr-manager.md +20 -17
  41. package/.claude/commands/github/release-manager.md +37 -49
  42. package/.claude/commands/github/repo-architect.md +39 -41
  43. package/.claude/commands/github/sync-coordinator.md +45 -49
  44. package/.claude/commands/hive-mind/README.md +42 -17
  45. package/.claude/commands/hive-mind/hive-mind-consensus.md +68 -4
  46. package/.claude/commands/hive-mind/hive-mind-init.md +55 -5
  47. package/.claude/commands/hive-mind/hive-mind-memory.md +69 -4
  48. package/.claude/commands/hive-mind/hive-mind-spawn.md +71 -10
  49. package/.claude/commands/hive-mind/hive-mind-status.md +52 -4
  50. package/.claude/commands/hive-mind/hive-mind-stop.md +51 -4
  51. package/.claude/commands/hive-mind/hive-mind.md +74 -14
  52. package/.claude/commands/hooks/README.md +62 -7
  53. package/.claude/commands/hooks/overview.md +94 -35
  54. package/.claude/commands/hooks/post-edit.md +48 -87
  55. package/.claude/commands/hooks/post-task.md +37 -87
  56. package/.claude/commands/hooks/pre-edit.md +52 -84
  57. package/.claude/commands/hooks/pre-task.md +46 -81
  58. package/.claude/commands/hooks/session-end.md +49 -85
  59. package/.claude/commands/hooks/setup.md +87 -58
  60. package/.claude/commands/mastermind/_repeat.md +308 -0
  61. package/.claude/commands/mastermind/architect.md +49 -0
  62. package/.claude/commands/mastermind/brain.md +98 -0
  63. package/.claude/commands/mastermind/build.md +22 -0
  64. package/.claude/commands/mastermind/content.md +22 -0
  65. package/.claude/commands/mastermind/createorg.md +94 -0
  66. package/.claude/commands/mastermind/finance.md +22 -0
  67. package/.claude/commands/mastermind/idea.md +22 -0
  68. package/.claude/commands/mastermind/marketing.md +22 -0
  69. package/.claude/commands/mastermind/master.md +379 -0
  70. package/.claude/commands/mastermind/ops.md +22 -0
  71. package/.claude/commands/mastermind/release.md +22 -0
  72. package/.claude/commands/mastermind/research.md +22 -0
  73. package/.claude/commands/mastermind/review.md +22 -0
  74. package/.claude/commands/mastermind/runorg.md +106 -0
  75. package/.claude/commands/mastermind/sales.md +22 -0
  76. package/.claude/commands/mastermind/techport.md +17 -0
  77. package/.claude/commands/memory/README.md +75 -5
  78. package/.claude/commands/memory/memory-search.md +63 -11
  79. package/.claude/commands/monitoring/README.md +64 -4
  80. package/.claude/commands/monitoring/agent-metrics.md +50 -10
  81. package/.claude/commands/monitoring/agents.md +59 -32
  82. package/.claude/commands/monitoring/status.md +96 -34
  83. package/.claude/commands/monograph/README.md +102 -0
  84. package/.claude/commands/monograph/monograph-build.md +79 -0
  85. package/.claude/commands/monograph/monograph-search.md +96 -0
  86. package/.claude/commands/monograph/monograph-stats.md +53 -0
  87. package/.claude/commands/monograph/monograph-watch.md +63 -0
  88. package/.claude/commands/monograph/monograph-wiki.md +91 -0
  89. package/.claude/commands/monomind/createtask.md +277 -0
  90. package/.claude/commands/{monomind-do.md → monomind/do.md} +21 -8
  91. package/.claude/commands/monomind/help.md +118 -0
  92. package/.claude/commands/{monomind-idea.md → monomind/idea.md} +22 -28
  93. package/.claude/commands/{monomind-improve.md → monomind/improve.md} +21 -27
  94. package/.claude/commands/monomind/memory.md +230 -0
  95. package/.claude/commands/monomind/repeat.md +201 -0
  96. package/.claude/commands/monomind/review.md +313 -0
  97. package/.claude/commands/monomind/specialagents.md +125 -0
  98. package/.claude/commands/monomind/swarm.md +161 -0
  99. package/.claude/commands/monomind/understand.md +148 -0
  100. package/.claude/commands/optimization/README.md +69 -5
  101. package/.claude/commands/optimization/auto-topology.md +66 -43
  102. package/.claude/commands/optimization/parallel-execution.md +65 -39
  103. package/.claude/commands/optimization/performance-optimize.md +79 -0
  104. package/.claude/commands/pair/README.md +48 -230
  105. package/.claude/commands/pair/examples.md +85 -441
  106. package/.claude/commands/pair/modes.md +77 -303
  107. package/.claude/commands/pair/session.md +76 -359
  108. package/.claude/commands/sparc/analyzer.md +9 -26
  109. package/.claude/commands/sparc/architect.md +8 -25
  110. package/.claude/commands/sparc/ask.md +27 -68
  111. package/.claude/commands/sparc/batch-executor.md +8 -25
  112. package/.claude/commands/sparc/code.md +12 -53
  113. package/.claude/commands/sparc/coder.md +8 -25
  114. package/.claude/commands/sparc/debug.md +12 -53
  115. package/.claude/commands/sparc/debugger.md +8 -25
  116. package/.claude/commands/sparc/designer.md +8 -25
  117. package/.claude/commands/sparc/devops.md +16 -57
  118. package/.claude/commands/sparc/docs-writer.md +12 -53
  119. package/.claude/commands/sparc/documenter.md +8 -25
  120. package/.claude/commands/sparc/innovator.md +8 -25
  121. package/.claude/commands/sparc/integration.md +12 -53
  122. package/.claude/commands/sparc/mcp.md +12 -53
  123. package/.claude/commands/sparc/memory-manager.md +28 -25
  124. package/.claude/commands/sparc/optimizer.md +8 -25
  125. package/.claude/commands/sparc/orchestrator.md +35 -97
  126. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +13 -54
  127. package/.claude/commands/sparc/refinement-optimization-mode.md +13 -54
  128. package/.claude/commands/sparc/researcher.md +8 -25
  129. package/.claude/commands/sparc/reviewer.md +8 -25
  130. package/.claude/commands/sparc/security-review.md +13 -54
  131. package/.claude/commands/sparc/sparc-modes.md +97 -151
  132. package/.claude/commands/sparc/sparc.md +16 -56
  133. package/.claude/commands/sparc/spec-pseudocode.md +13 -54
  134. package/.claude/commands/sparc/supabase-admin.md +19 -66
  135. package/.claude/commands/sparc/swarm-coordinator.md +21 -25
  136. package/.claude/commands/sparc/tdd.md +8 -25
  137. package/.claude/commands/sparc/tester.md +8 -25
  138. package/.claude/commands/sparc/tutorial.md +12 -53
  139. package/.claude/commands/sparc/workflow-manager.md +8 -25
  140. package/.claude/commands/sparc.md +76 -130
  141. package/.claude/commands/stream-chain/pipeline.md +72 -77
  142. package/.claude/commands/stream-chain/run.md +133 -47
  143. package/.claude/commands/swarm/README.md +37 -12
  144. package/.claude/commands/swarm/analysis.md +47 -69
  145. package/.claude/commands/swarm/development.md +45 -69
  146. package/.claude/commands/swarm/examples.md +77 -142
  147. package/.claude/commands/swarm/maintenance.md +47 -74
  148. package/.claude/commands/swarm/optimization.md +54 -87
  149. package/.claude/commands/swarm/research.md +47 -107
  150. package/.claude/commands/swarm/swarm-analysis.md +58 -4
  151. package/.claude/commands/swarm/swarm-background.md +61 -4
  152. package/.claude/commands/swarm/swarm-modes.md +63 -4
  153. package/.claude/commands/swarm/swarm-monitor.md +50 -4
  154. package/.claude/commands/swarm/swarm-status.md +40 -4
  155. package/.claude/commands/swarm/swarm-strategies.md +73 -5
  156. package/.claude/commands/swarm/swarm.md +70 -18
  157. package/.claude/commands/swarm/testing.md +51 -102
  158. package/.claude/commands/tokens.md +6 -1
  159. package/.claude/commands/training/README.md +36 -6
  160. package/.claude/commands/training/model-update.md +68 -15
  161. package/.claude/commands/training/neural-patterns.md +54 -55
  162. package/.claude/commands/training/neural-train.md +70 -16
  163. package/.claude/commands/training/pattern-learn.md +60 -16
  164. package/.claude/commands/training/specialization.md +78 -49
  165. package/.claude/commands/truth/start.md +87 -109
  166. package/.claude/commands/ts.md +7 -2
  167. package/.claude/commands/verify/check.md +90 -34
  168. package/.claude/commands/verify/start.md +71 -94
  169. package/.claude/commands/workflows/README.md +62 -6
  170. package/.claude/commands/workflows/development.md +69 -61
  171. package/.claude/commands/workflows/research.md +73 -47
  172. package/.claude/commands/workflows/workflow-create.md +75 -16
  173. package/.claude/commands/workflows/workflow-execute.md +94 -16
  174. package/.claude/commands/workflows/workflow-export.md +81 -16
  175. package/.claude/helpers/control-start.cjs +91 -0
  176. package/.claude/helpers/extras-registry.json +4104 -1991
  177. package/.claude/helpers/graphify-freshen.cjs +44 -13
  178. package/.claude/helpers/hook-handler.cjs +256 -1
  179. package/.claude/helpers/learning-service.mjs +0 -0
  180. package/.claude/helpers/loop-tracker.cjs +107 -0
  181. package/.claude/helpers/metrics-db.mjs +0 -0
  182. package/.claude/helpers/router.cjs +48 -68
  183. package/.claude/helpers/skill-registry.json +89 -104
  184. package/.claude/helpers/statusline.cjs +33 -2
  185. package/.claude/helpers/swarm-hooks.sh +0 -0
  186. package/.claude/scheduled_tasks.lock +1 -0
  187. package/.claude/settings.json +15 -0
  188. package/.claude/skills/.monomind/data/ranked-context.json +5 -0
  189. package/.claude/skills/.monomind/sessions/current.json +13 -0
  190. package/.claude/skills/.monomind/sessions/session-1777829336455.json +15 -0
  191. package/.claude/skills/.monomind/sessions/session-1777831614725.json +15 -0
  192. package/.claude/skills/.monomind/sessions/session-1777832095857.json +15 -0
  193. package/.claude/skills/.monomind/sessions/session-1777839814183.json +15 -0
  194. package/.claude/skills/.monomind/sessions/session-1777841847131.json +15 -0
  195. package/.claude/skills/.monomind/sessions/session-1777843309463.json +15 -0
  196. package/.claude/skills/.monomind/sessions/session-1777880867159.json +15 -0
  197. package/.claude/skills/.monomind/sessions/session-1777881884593.json +15 -0
  198. package/.claude/skills/.monomind/sessions/session-1777884090471.json +15 -0
  199. package/.claude/skills/.monomind/sessions/session-1777884808221.json +15 -0
  200. package/.claude/skills/.monomind/sessions/session-1777885672155.json +15 -0
  201. package/.claude/skills/.monomind/sessions/session-1777886852818.json +15 -0
  202. package/.claude/skills/.monomind/sessions/session-1777896532690.json +15 -0
  203. package/.claude/skills/agentdb-advanced/SKILL.md +11 -12
  204. package/.claude/skills/agentdb-learning/SKILL.md +20 -21
  205. package/.claude/skills/agentdb-memory-patterns/SKILL.md +28 -30
  206. package/.claude/skills/agentdb-optimization/SKILL.md +11 -12
  207. package/.claude/skills/agentdb-vector-search/SKILL.md +37 -41
  208. package/.claude/skills/{v3-integration-deep → agentic-integration}/SKILL.md +20 -13
  209. package/.claude/skills/agentic-jujutsu/SKILL.md +22 -22
  210. package/.claude/skills/{v3-cli-modernization → cli-modernization}/SKILL.md +17 -8
  211. package/.claude/skills/{v3-core-implementation → core-implementation}/SKILL.md +33 -8
  212. package/.claude/skills/{v3-ddd-architecture → ddd-architecture}/SKILL.md +18 -25
  213. package/.claude/skills/github-code-review/SKILL.md +82 -83
  214. package/.claude/skills/github-multi-repo/SKILL.md +42 -46
  215. package/.claude/skills/github-project-management/SKILL.md +83 -88
  216. package/.claude/skills/github-release-management/SKILL.md +12 -18
  217. package/.claude/skills/github-workflow-automation/SKILL.md +70 -74
  218. package/.claude/skills/hooks-automation/SKILL.md +9 -13
  219. package/.claude/skills/mastermind/_intake.md +83 -0
  220. package/.claude/skills/mastermind/_protocol.md +275 -0
  221. package/.claude/skills/mastermind/architect.md +847 -0
  222. package/.claude/skills/mastermind/build.md +158 -0
  223. package/.claude/skills/mastermind/content.md +185 -0
  224. package/.claude/skills/mastermind/createorg.md +318 -0
  225. package/.claude/skills/mastermind/finance.md +154 -0
  226. package/.claude/skills/mastermind/idea.md +158 -0
  227. package/.claude/skills/mastermind/marketing.md +216 -0
  228. package/.claude/skills/mastermind/monotask.md +350 -0
  229. package/.claude/skills/mastermind/ops.md +156 -0
  230. package/.claude/skills/mastermind/references/copywriting-frameworks.md +181 -0
  231. package/.claude/skills/mastermind/references/persuasion-psychology.md +158 -0
  232. package/.claude/skills/mastermind/release.md +156 -0
  233. package/.claude/skills/mastermind/research.md +156 -0
  234. package/.claude/skills/mastermind/review.md +157 -0
  235. package/.claude/skills/mastermind/runorg.md +308 -0
  236. package/.claude/skills/mastermind/sales.md +158 -0
  237. package/.claude/skills/mastermind/techport.md +743 -0
  238. package/.claude/skills/{v3-mcp-optimization → mcp-optimization}/SKILL.md +35 -14
  239. package/.claude/skills/{v3-memory-unification → memory-unification}/SKILL.md +20 -4
  240. package/.claude/skills/monodesign/SKILL.md +302 -0
  241. package/.claude/skills/monodesign/reference/adapt.md +190 -0
  242. package/.claude/skills/monodesign/reference/animate.md +175 -0
  243. package/.claude/skills/monodesign/reference/antipatterns-catalog.md +187 -0
  244. package/.claude/skills/monodesign/reference/audit.md +133 -0
  245. package/.claude/skills/monodesign/reference/bolder.md +113 -0
  246. package/.claude/skills/monodesign/reference/brand-workflow.md +180 -0
  247. package/.claude/skills/monodesign/reference/brand.md +114 -0
  248. package/.claude/skills/monodesign/reference/clarify.md +174 -0
  249. package/.claude/skills/monodesign/reference/cognitive-load.md +106 -0
  250. package/.claude/skills/monodesign/reference/color-and-contrast.md +105 -0
  251. package/.claude/skills/monodesign/reference/colorize.md +154 -0
  252. package/.claude/skills/monodesign/reference/component-specs.md +260 -0
  253. package/.claude/skills/monodesign/reference/component-states.md +274 -0
  254. package/.claude/skills/monodesign/reference/component-system.md +358 -0
  255. package/.claude/skills/monodesign/reference/copy-formulas.md +160 -0
  256. package/.claude/skills/monodesign/reference/craft.md +193 -0
  257. package/.claude/skills/monodesign/reference/critique.md +213 -0
  258. package/.claude/skills/monodesign/reference/delight.md +302 -0
  259. package/.claude/skills/monodesign/reference/design-principles.md +246 -0
  260. package/.claude/skills/monodesign/reference/distill.md +111 -0
  261. package/.claude/skills/monodesign/reference/document.md +427 -0
  262. package/.claude/skills/monodesign/reference/extract.md +69 -0
  263. package/.claude/skills/monodesign/reference/harden.md +347 -0
  264. package/.claude/skills/monodesign/reference/heuristics-scoring.md +234 -0
  265. package/.claude/skills/monodesign/reference/image-prompts.md +118 -0
  266. package/.claude/skills/monodesign/reference/interaction-design.md +195 -0
  267. package/.claude/skills/monodesign/reference/layout.md +141 -0
  268. package/.claude/skills/monodesign/reference/live.md +622 -0
  269. package/.claude/skills/monodesign/reference/motion-design.md +109 -0
  270. package/.claude/skills/monodesign/reference/onboard.md +234 -0
  271. package/.claude/skills/monodesign/reference/optimize.md +258 -0
  272. package/.claude/skills/monodesign/reference/overdrive.md +130 -0
  273. package/.claude/skills/monodesign/reference/personas.md +179 -0
  274. package/.claude/skills/monodesign/reference/polish.md +233 -0
  275. package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +108 -0
  276. package/.claude/skills/monodesign/reference/product.md +62 -0
  277. package/.claude/skills/monodesign/reference/quieter.md +99 -0
  278. package/.claude/skills/monodesign/reference/responsive-design.md +114 -0
  279. package/.claude/skills/monodesign/reference/shape.md +151 -0
  280. package/.claude/skills/monodesign/reference/spatial-design.md +100 -0
  281. package/.claude/skills/monodesign/reference/teach.md +156 -0
  282. package/.claude/skills/monodesign/reference/token-architecture.md +222 -0
  283. package/.claude/skills/monodesign/reference/typeset.md +124 -0
  284. package/.claude/skills/monodesign/reference/typography.md +159 -0
  285. package/.claude/skills/monodesign/reference/ux-research.md +143 -0
  286. package/.claude/skills/monodesign/reference/ux-rules.md +211 -0
  287. package/.claude/skills/monodesign/reference/ux-writing.md +107 -0
  288. package/.claude/skills/monomotion/SKILL.md +145 -0
  289. package/.claude/skills/monomotion/rules/api-control.md +139 -0
  290. package/.claude/skills/monomotion/rules/effects.md +109 -0
  291. package/.claude/skills/monomotion/rules/integration.md +140 -0
  292. package/.claude/skills/monomotion/rules/scroll.md +131 -0
  293. package/.claude/skills/monomotion/rules/sequencing.md +105 -0
  294. package/.claude/skills/monomotion/rules/svg.md +101 -0
  295. package/.claude/skills/monomotion/rules/text.md +119 -0
  296. package/.claude/skills/pair-programming/SKILL.md +1 -1
  297. package/.claude/skills/performance-analysis/SKILL.md +3 -3
  298. package/.claude/skills/{v3-performance-optimization → performance-optimization}/SKILL.md +16 -8
  299. package/.claude/skills/reasoningbank-agentdb/SKILL.md +17 -19
  300. package/.claude/skills/reasoningbank-intelligence/SKILL.md +4 -6
  301. package/.claude/skills/{v3-security-overhaul → security-hardening}/SKILL.md +13 -3
  302. package/.claude/skills/skill-builder/SKILL.md +19 -19
  303. package/.claude/skills/sparc-methodology/SKILL.md +55 -211
  304. package/.claude/skills/stop-slop/SKILL.md +67 -0
  305. package/.claude/skills/stop-slop/references/examples.md +61 -0
  306. package/.claude/skills/stop-slop/references/phrases.md +130 -0
  307. package/.claude/skills/stop-slop/references/structures.md +136 -0
  308. package/.claude/skills/swarm-advanced/SKILL.md +13 -43
  309. package/.claude/skills/{v3-swarm-coordination → swarm-coordination}/SKILL.md +39 -21
  310. package/.claude/skills/swarm-orchestration/SKILL.md +12 -12
  311. package/.claude/skills/verification-quality/SKILL.md +5 -5
  312. package/.claude/statusline-command.sh +0 -0
  313. package/.claude/statusline.sh +0 -0
  314. package/.claude-plugin/scripts/install.sh +0 -0
  315. package/.claude-plugin/scripts/uninstall.sh +0 -0
  316. package/.claude-plugin/scripts/verify.sh +0 -0
  317. package/README.md +5 -5
  318. package/package.json +17 -17
  319. package/packages/@monomind/cli/README.md +441 -0
  320. package/packages/@monomind/cli/bin/cli.js +78 -13
  321. package/packages/@monomind/cli/bin/mcp-server.js +0 -0
  322. package/packages/@monomind/cli/dist/src/agents/halt-signal.js +33 -7
  323. package/packages/@monomind/cli/dist/src/agents/managed-agent.js +5 -2
  324. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.d.ts +3 -2
  325. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.js +1 -1
  326. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.d.ts +5 -2
  327. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.js +26 -4
  328. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.js +17 -9
  329. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.d.ts +5 -3
  330. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.js +58 -10
  331. package/packages/@monomind/cli/dist/src/agents/version-store.d.ts +0 -1
  332. package/packages/@monomind/cli/dist/src/agents/version-store.js +44 -21
  333. package/packages/@monomind/cli/dist/src/autopilot-state.js +79 -28
  334. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.d.ts +7 -2
  335. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.js +20 -8
  336. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.d.ts +2 -1
  337. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.js +25 -2
  338. package/packages/@monomind/cli/dist/src/commands/agent.js +6 -4
  339. package/packages/@monomind/cli/dist/src/commands/appliance-advanced.js +23 -0
  340. package/packages/@monomind/cli/dist/src/commands/autopilot.js +3 -3
  341. package/packages/@monomind/cli/dist/src/commands/benchmark.js +119 -8
  342. package/packages/@monomind/cli/dist/src/commands/claims.js +22 -14
  343. package/packages/@monomind/cli/dist/src/commands/config.js +32 -0
  344. package/packages/@monomind/cli/dist/src/commands/daemon.js +13 -11
  345. package/packages/@monomind/cli/dist/src/commands/deployment.js +21 -2
  346. package/packages/@monomind/cli/dist/src/commands/doctor.js +5 -4
  347. package/packages/@monomind/cli/dist/src/commands/embeddings.js +124 -48
  348. package/packages/@monomind/cli/dist/src/commands/hive-mind.js +15 -14
  349. package/packages/@monomind/cli/dist/src/commands/hooks.js +45 -41
  350. package/packages/@monomind/cli/dist/src/commands/index.d.ts +2 -0
  351. package/packages/@monomind/cli/dist/src/commands/index.js +20 -7
  352. package/packages/@monomind/cli/dist/src/commands/init.js +53 -19
  353. package/packages/@monomind/cli/dist/src/commands/mcp.js +31 -44
  354. package/packages/@monomind/cli/dist/src/commands/memory.js +47 -15
  355. package/packages/@monomind/cli/dist/src/commands/migrate.js +156 -108
  356. package/packages/@monomind/cli/dist/src/commands/monograph.d.ts +8 -0
  357. package/packages/@monomind/cli/dist/src/commands/monograph.js +526 -0
  358. package/packages/@monomind/cli/dist/src/commands/neural.js +96 -56
  359. package/packages/@monomind/cli/dist/src/commands/performance.js +30 -8
  360. package/packages/@monomind/cli/dist/src/commands/plugins.js +13 -37
  361. package/packages/@monomind/cli/dist/src/commands/process.js +25 -2
  362. package/packages/@monomind/cli/dist/src/commands/providers.js +37 -5
  363. package/packages/@monomind/cli/dist/src/commands/replay.js +4 -4
  364. package/packages/@monomind/cli/dist/src/commands/route.js +37 -5
  365. package/packages/@monomind/cli/dist/src/commands/ruvector/import.js +12 -2
  366. package/packages/@monomind/cli/dist/src/commands/ruvector/init.js +15 -0
  367. package/packages/@monomind/cli/dist/src/commands/ruvector/status.js +16 -3
  368. package/packages/@monomind/cli/dist/src/commands/security.js +342 -193
  369. package/packages/@monomind/cli/dist/src/commands/session.js +51 -8
  370. package/packages/@monomind/cli/dist/src/commands/start.js +18 -4
  371. package/packages/@monomind/cli/dist/src/commands/swarm.js +47 -36
  372. package/packages/@monomind/cli/dist/src/commands/tokens.js +11 -11
  373. package/packages/@monomind/cli/dist/src/commands/transfer-store.js +1 -1
  374. package/packages/@monomind/cli/dist/src/commands/workflow.js +31 -4
  375. package/packages/@monomind/cli/dist/src/config-adapter.d.ts +2 -1
  376. package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +46 -13
  377. package/packages/@monomind/cli/dist/src/consensus/vote-signer.d.ts +0 -3
  378. package/packages/@monomind/cli/dist/src/consensus/vote-signer.js +9 -1
  379. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.d.ts +4 -2
  380. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.js +25 -8
  381. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.d.ts +10 -3
  382. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.js +50 -16
  383. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.js +27 -5
  384. package/packages/@monomind/cli/dist/src/eval/dataset-manager.d.ts +2 -2
  385. package/packages/@monomind/cli/dist/src/eval/dataset-manager.js +26 -16
  386. package/packages/@monomind/cli/dist/src/eval/trace-collector.js +23 -3
  387. package/packages/@monomind/cli/dist/src/index.js +12 -10
  388. package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +8 -8
  389. package/packages/@monomind/cli/dist/src/init/executor.js +153 -70
  390. package/packages/@monomind/cli/dist/src/init/helpers-generator.js +35 -22
  391. package/packages/@monomind/cli/dist/src/init/mcp-generator.js +3 -3
  392. package/packages/@monomind/cli/dist/src/init/settings-generator.js +10 -3
  393. package/packages/@monomind/cli/dist/src/init/shared-instructions-generator.js +18 -3
  394. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +3 -1
  395. package/packages/@monomind/cli/dist/src/init/types.d.ts +35 -11
  396. package/packages/@monomind/cli/dist/src/init/types.js +5 -9
  397. package/packages/@monomind/cli/dist/src/interactive/interrupt.js +8 -3
  398. package/packages/@monomind/cli/dist/src/mcp/tool-registry.js +38 -4
  399. package/packages/@monomind/cli/dist/src/mcp-client.js +10 -4
  400. package/packages/@monomind/cli/dist/src/mcp-server.d.ts +9 -2
  401. package/packages/@monomind/cli/dist/src/mcp-server.js +182 -35
  402. package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.js +66 -34
  403. package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.js +34 -7
  404. package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.js +25 -16
  405. package/packages/@monomind/cli/dist/src/mcp-tools/auto-install.js +4 -6
  406. package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.js +12 -2
  407. package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.js +199 -20
  408. package/packages/@monomind/cli/dist/src/mcp-tools/claims-tools.js +68 -18
  409. package/packages/@monomind/cli/dist/src/mcp-tools/config-tools.js +33 -5
  410. package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.js +59 -4
  411. package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.js +46 -10
  412. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +46 -5
  413. package/packages/@monomind/cli/dist/src/mcp-tools/github-tools.js +29 -16
  414. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +38 -10
  415. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +96 -33
  416. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +70 -37
  417. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +29 -13
  418. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +5867 -56
  419. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +121 -37
  420. package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.js +21 -8
  421. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.js +10 -8
  422. package/packages/@monomind/cli/dist/src/mcp-tools/request-tracker.js +4 -1
  423. package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.js +19 -8
  424. package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.js +57 -17
  425. package/packages/@monomind/cli/dist/src/mcp-tools/swarm-tools.js +35 -17
  426. package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.js +4 -3
  427. package/packages/@monomind/cli/dist/src/mcp-tools/task-tools.js +53 -13
  428. package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.js +63 -14
  429. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.js +21 -16
  430. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +92 -23
  431. package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.js +41 -10
  432. package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +2 -2
  433. package/packages/@monomind/cli/dist/src/memory/intelligence.js +39 -13
  434. package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +1 -0
  435. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +149 -56
  436. package/packages/@monomind/cli/dist/src/memory/memory-initializer.js +107 -45
  437. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.d.ts +8 -1
  438. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.js +25 -8
  439. package/packages/@monomind/cli/dist/src/observability/replay-reader.d.ts +40 -0
  440. package/packages/@monomind/cli/dist/src/observability/replay-reader.js +138 -0
  441. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.js +35 -5
  442. package/packages/@monomind/cli/dist/src/parser.d.ts +8 -0
  443. package/packages/@monomind/cli/dist/src/parser.js +48 -14
  444. package/packages/@monomind/cli/dist/src/plugins/manager.js +112 -19
  445. package/packages/@monomind/cli/dist/src/plugins/store/discovery.d.ts +1 -1
  446. package/packages/@monomind/cli/dist/src/plugins/store/discovery.js +80 -62
  447. package/packages/@monomind/cli/dist/src/production/circuit-breaker.js +8 -1
  448. package/packages/@monomind/cli/dist/src/production/error-handler.d.ts +4 -2
  449. package/packages/@monomind/cli/dist/src/production/error-handler.js +27 -5
  450. package/packages/@monomind/cli/dist/src/production/monitoring.js +8 -4
  451. package/packages/@monomind/cli/dist/src/production/rate-limiter.js +30 -22
  452. package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.js +2 -2
  453. package/packages/@monomind/cli/dist/src/ruvector/coverage-router.js +19 -9
  454. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.d.ts +1 -0
  455. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.js +26 -6
  456. package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.js +24 -2
  457. package/packages/@monomind/cli/dist/src/ruvector/index.d.ts +1 -2
  458. package/packages/@monomind/cli/dist/src/ruvector/index.js +2 -2
  459. package/packages/@monomind/cli/dist/src/ruvector/model-router.d.ts +4 -2
  460. package/packages/@monomind/cli/dist/src/ruvector/model-router.js +30 -6
  461. package/packages/@monomind/cli/dist/src/ruvector/moe-router.d.ts +7 -0
  462. package/packages/@monomind/cli/dist/src/ruvector/moe-router.js +35 -12
  463. package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.d.ts +7 -1
  464. package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.js +40 -9
  465. package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +3 -1
  466. package/packages/@monomind/cli/dist/src/services/claim-service.js +33 -2
  467. package/packages/@monomind/cli/dist/src/services/config-file-manager.d.ts +16 -2
  468. package/packages/@monomind/cli/dist/src/services/config-file-manager.js +105 -17
  469. package/packages/@monomind/cli/dist/src/services/container-worker-pool.js +51 -11
  470. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.d.ts +7 -0
  471. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +188 -45
  472. package/packages/@monomind/cli/dist/src/services/registry-api.js +62 -9
  473. package/packages/@monomind/cli/dist/src/services/ruvector-training.js +8 -0
  474. package/packages/@monomind/cli/dist/src/services/worker-daemon.d.ts +4 -1
  475. package/packages/@monomind/cli/dist/src/services/worker-daemon.js +112 -28
  476. package/packages/@monomind/cli/dist/src/services/worker-queue.d.ts +9 -2
  477. package/packages/@monomind/cli/dist/src/services/worker-queue.js +86 -5
  478. package/packages/@monomind/cli/dist/src/suggest.js +9 -0
  479. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.d.ts +5 -3
  480. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.js +17 -5
  481. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.d.ts +3 -0
  482. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.js +30 -6
  483. package/packages/@monomind/cli/dist/src/transfer/anonymization/index.js +5 -3
  484. package/packages/@monomind/cli/dist/src/transfer/export.js +5 -3
  485. package/packages/@monomind/cli/dist/src/transfer/ipfs/client.js +84 -7
  486. package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.js +13 -4
  487. package/packages/@monomind/cli/dist/src/transfer/storage/gcs.js +19 -10
  488. package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +9 -2
  489. package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +68 -13
  490. package/packages/@monomind/cli/dist/src/transfer/store/download.d.ts +15 -6
  491. package/packages/@monomind/cli/dist/src/transfer/store/download.js +113 -24
  492. package/packages/@monomind/cli/dist/src/transfer/store/publish.d.ts +1 -1
  493. package/packages/@monomind/cli/dist/src/transfer/store/publish.js +13 -14
  494. package/packages/@monomind/cli/dist/src/transfer/store/registry.d.ts +3 -3
  495. package/packages/@monomind/cli/dist/src/transfer/store/registry.js +32 -16
  496. package/packages/@monomind/cli/dist/src/update/checker.js +17 -4
  497. package/packages/@monomind/cli/dist/src/update/executor.js +25 -20
  498. package/packages/@monomind/cli/dist/src/update/rate-limiter.d.ts +11 -0
  499. package/packages/@monomind/cli/dist/src/update/rate-limiter.js +23 -3
  500. package/packages/@monomind/cli/dist/src/utils/parse-jsonl.d.ts +6 -0
  501. package/packages/@monomind/cli/dist/src/utils/parse-jsonl.js +22 -0
  502. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.js +37 -3
  503. package/packages/@monomind/cli/dist/src/workflow/dag-builder.js +27 -11
  504. package/packages/@monomind/cli/dist/src/workflow/dag-executor.js +51 -13
  505. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.d.ts +3 -0
  506. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.js +6 -2
  507. package/packages/@monomind/cli/dist/src/workflow/template-engine.js +7 -0
  508. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.js +95 -14
  509. package/packages/@monomind/cli/package.json +5 -3
  510. package/packages/@monomind/guidance/README.md +1192 -0
  511. package/packages/@monomind/shared/README.md +322 -0
  512. package/packages/@monomind/shared/dist/types/consensus-audit.d.ts +3 -1
  513. package/packages/README.md +513 -0
  514. package/.claude/agents/design/design-brand-guardian.md +0 -323
  515. package/.claude/agents/design/design-image-prompt-engineer.md +0 -237
  516. package/.claude/agents/design/design-inclusive-visuals-specialist.md +0 -72
  517. package/.claude/agents/design/design-ui-designer.md +0 -384
  518. package/.claude/agents/design/design-ux-architect.md +0 -470
  519. package/.claude/agents/design/design-ux-researcher.md +0 -330
  520. package/.claude/agents/design/design-visual-storyteller.md +0 -150
  521. package/.claude/agents/design/design-whimsy-injector.md +0 -439
  522. package/.claude/agents/v3/integration-architect.md +0 -338
  523. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  524. package/.claude/commands/coordination/init.md +0 -44
  525. package/.claude/commands/coordination/orchestrate.md +0 -43
  526. package/.claude/commands/coordination/spawn.md +0 -45
  527. package/.claude/commands/github/code-review-swarm.md +0 -550
  528. package/.claude/commands/github/code-review.md +0 -25
  529. package/.claude/commands/github/github-swarm.md +0 -121
  530. package/.claude/commands/github/issue-triage.md +0 -25
  531. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  532. package/.claude/commands/github/pr-enhance.md +0 -26
  533. package/.claude/commands/github/project-board-sync.md +0 -471
  534. package/.claude/commands/github/release-swarm.md +0 -590
  535. package/.claude/commands/github/repo-analyze.md +0 -25
  536. package/.claude/commands/github/swarm-issue.md +0 -482
  537. package/.claude/commands/github/swarm-pr.md +0 -310
  538. package/.claude/commands/github/workflow-automation.md +0 -468
  539. package/.claude/commands/hive-mind/hive-mind-metrics.md +0 -8
  540. package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
  541. package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
  542. package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
  543. package/.claude/commands/list-agents.md +0 -17
  544. package/.claude/commands/memory/memory-persist.md +0 -25
  545. package/.claude/commands/memory/memory-usage.md +0 -25
  546. package/.claude/commands/memory/neural.md +0 -47
  547. package/.claude/commands/metrics.md +0 -11
  548. package/.claude/commands/monitoring/real-time-view.md +0 -25
  549. package/.claude/commands/monitoring/swarm-monitor.md +0 -25
  550. package/.claude/commands/monomind-createtask.md +0 -302
  551. package/.claude/commands/monomind-help.md +0 -103
  552. package/.claude/commands/monomind-memory.md +0 -107
  553. package/.claude/commands/monomind-repeat.md +0 -149
  554. package/.claude/commands/monomind-swarm.md +0 -205
  555. package/.claude/commands/optimization/cache-manage.md +0 -25
  556. package/.claude/commands/optimization/topology-optimize.md +0 -25
  557. package/.claude/commands/pair/commands.md +0 -546
  558. package/.claude/commands/pair/config.md +0 -510
  559. package/.claude/commands/pair/start.md +0 -209
  560. package/.claude/commands/use-agent.md +0 -67
  561. package/.claude/skills/monomind-createtask/SKILL.md +0 -269
  562. package/.claude/skills/monomind-task-engine/SKILL.md +0 -358
  563. /package/.claude/agents/{v3 → specialists}/memory-specialist.md +0 -0
  564. /package/.claude/agents/{v3 → specialists}/performance-engineer.md +0 -0
  565. /package/.claude/agents/{v3 → specialists}/queen-coordinator.md +0 -0
  566. /package/.claude/agents/{v3 → specialists}/security-architect.md +0 -0
@@ -2,6 +2,11 @@
2
2
  * DLQ Replayer (Task 37)
3
3
  *
4
4
  * Replays dead-letter queue entries by re-invoking the original tool call.
5
+ *
6
+ * CONCURRENCY: Uses append-only status records to avoid racing with DLQWriter.enqueue().
7
+ * A status record `{ _statusFor, status, replayedAt, replayResult }` is appended after
8
+ * replay. readAll() merges status records into the base entries — the last status wins.
9
+ * Compaction rewrites the file when status records exceed 20% of total lines.
5
10
  */
6
11
  import type { DLQReplayResult } from '../../../shared/src/types/dlq.js';
7
12
  /** A function that attempts to call a tool with the original payload */
@@ -10,10 +15,12 @@ export declare class DLQReplayer {
10
15
  private readonly filePath;
11
16
  private readonly toolCaller;
12
17
  constructor(filePath: string, toolCaller: ToolCaller);
13
- /** Read all entries */
18
+ /** Read all lines, merge status records into entries. Last status wins. */
14
19
  private readAll;
15
- /** Write all entries back */
16
- private writeAll;
20
+ /** Append a status-change record — never touches existing lines, safe alongside DLQWriter. */
21
+ private appendStatus;
22
+ /** Compact: rewrite file with merged entries only, removing status records. */
23
+ private compact;
17
24
  /** Replay a single DLQ entry by messageId */
18
25
  replay(messageId: string): Promise<DLQReplayResult>;
19
26
  }
@@ -2,8 +2,13 @@
2
2
  * DLQ Replayer (Task 37)
3
3
  *
4
4
  * Replays dead-letter queue entries by re-invoking the original tool call.
5
+ *
6
+ * CONCURRENCY: Uses append-only status records to avoid racing with DLQWriter.enqueue().
7
+ * A status record `{ _statusFor, status, replayedAt, replayResult }` is appended after
8
+ * replay. readAll() merges status records into the base entries — the last status wins.
9
+ * Compaction rewrites the file when status records exceed 20% of total lines.
5
10
  */
6
- import { readFileSync, writeFileSync, existsSync } from 'fs';
11
+ import { appendFileSync, existsSync, readFileSync, renameSync, statSync, writeFileSync } from 'fs';
7
12
  export class DLQReplayer {
8
13
  filePath;
9
14
  toolCaller;
@@ -11,23 +16,52 @@ export class DLQReplayer {
11
16
  this.filePath = filePath;
12
17
  this.toolCaller = toolCaller;
13
18
  }
14
- /** Read all entries */
19
+ /** Read all lines, merge status records into entries. Last status wins. */
15
20
  readAll() {
16
21
  if (!existsSync(this.filePath))
17
- return [];
22
+ return { entries: [], rawLineCount: 0 };
23
+ const stat = statSync(this.filePath);
24
+ if (stat.size > 256 * 1024 * 1024) {
25
+ throw new Error(`DLQ file exceeds 256MB (${stat.size} bytes). Run rotation/cleanup.`);
26
+ }
18
27
  const raw = readFileSync(this.filePath, 'utf-8').trim();
19
28
  if (!raw)
20
- return [];
21
- return raw.split('\n').map((line) => JSON.parse(line));
29
+ return { entries: [], rawLineCount: 0 };
30
+ const lines = raw.split('\n').filter(Boolean);
31
+ const statusMap = new Map();
32
+ const baseEntries = [];
33
+ for (const line of lines) {
34
+ try {
35
+ const parsed = JSON.parse(line);
36
+ if (parsed._statusFor) {
37
+ statusMap.set(parsed._statusFor, parsed);
38
+ }
39
+ else {
40
+ baseEntries.push(parsed);
41
+ }
42
+ }
43
+ catch { /* skip malformed lines */ }
44
+ }
45
+ const entries = baseEntries.map((e) => {
46
+ const s = statusMap.get(e.messageId);
47
+ return s ? { ...e, status: s.status, replayedAt: s.replayedAt, replayResult: s.replayResult } : e;
48
+ });
49
+ return { entries, rawLineCount: lines.length };
50
+ }
51
+ /** Append a status-change record — never touches existing lines, safe alongside DLQWriter. */
52
+ appendStatus(record) {
53
+ appendFileSync(this.filePath, JSON.stringify(record) + '\n', 'utf-8');
22
54
  }
23
- /** Write all entries back */
24
- writeAll(entries) {
55
+ /** Compact: rewrite file with merged entries only, removing status records. */
56
+ compact(entries) {
25
57
  const content = entries.map((e) => JSON.stringify(e)).join('\n') + (entries.length ? '\n' : '');
26
- writeFileSync(this.filePath, content, 'utf-8');
58
+ const tmp = `${this.filePath}.${process.pid}.${Date.now()}.tmp`;
59
+ writeFileSync(tmp, content, 'utf-8');
60
+ renameSync(tmp, this.filePath);
27
61
  }
28
62
  /** Replay a single DLQ entry by messageId */
29
63
  async replay(messageId) {
30
- const entries = this.readAll();
64
+ const { entries, rawLineCount } = this.readAll();
31
65
  const entry = entries.find((e) => e.messageId === messageId);
32
66
  if (!entry) {
33
67
  throw new Error(`DLQ entry not found: ${messageId}`);
@@ -38,17 +72,17 @@ export class DLQReplayer {
38
72
  const now = new Date().toISOString();
39
73
  try {
40
74
  await this.toolCaller(entry.toolName, entry.originalPayload);
41
- entry.status = 'replayed';
42
- entry.replayedAt = now;
43
- entry.replayResult = 'success';
44
- this.writeAll(entries);
75
+ this.appendStatus({ _statusFor: messageId, status: 'replayed', replayedAt: now, replayResult: 'success' });
76
+ // Compact when status records inflate file by >20%
77
+ if (rawLineCount > 0 && (rawLineCount - entries.length) / rawLineCount > 0.2) {
78
+ const merged = entries.map((e) => e.messageId === messageId ? { ...e, status: 'replayed', replayedAt: now, replayResult: 'success' } : e);
79
+ this.compact(merged);
80
+ }
45
81
  return { messageId, success: true, replayedAt: now };
46
82
  }
47
83
  catch (err) {
48
84
  const errorMessage = err instanceof Error ? err.message : String(err);
49
- entry.replayResult = 'failed_again';
50
- // status stays 'pending'
51
- this.writeAll(entries);
85
+ this.appendStatus({ _statusFor: messageId, status: 'pending', replayedAt: now, replayResult: 'failed_again' });
52
86
  return { messageId, success: false, errorMessage, replayedAt: now };
53
87
  }
54
88
  }
@@ -5,14 +5,19 @@
5
5
  */
6
6
  import { randomUUID } from 'crypto';
7
7
  import { existsSync, mkdirSync, appendFileSync } from 'fs';
8
- import { join } from 'path';
8
+ import { join, resolve, sep } from 'path';
9
9
  export class DLQWriter {
10
10
  filePath;
11
11
  constructor(dataDir) {
12
- if (!existsSync(dataDir)) {
13
- mkdirSync(dataDir, { recursive: true });
12
+ const resolvedDataDir = resolve(dataDir);
13
+ const allowedRoot = resolve(process.env.MONOMIND_DATA_DIR ?? process.cwd());
14
+ if (resolvedDataDir !== allowedRoot && !resolvedDataDir.startsWith(allowedRoot + sep)) {
15
+ throw new Error(`DLQ dataDir escapes allowed root: ${resolvedDataDir}`);
14
16
  }
15
- this.filePath = join(dataDir, 'dead-letter-queue.jsonl');
17
+ if (!existsSync(resolvedDataDir)) {
18
+ mkdirSync(resolvedDataDir, { recursive: true });
19
+ }
20
+ this.filePath = join(resolvedDataDir, 'dead-letter-queue.jsonl');
16
21
  }
17
22
  /** Enqueue a failed message into the DLQ */
18
23
  enqueue(input) {
@@ -32,7 +37,24 @@ export class DLQWriter {
32
37
  status: 'pending',
33
38
  tags: input.tags ?? [],
34
39
  };
35
- appendFileSync(this.filePath, JSON.stringify(entry) + '\n', 'utf-8');
40
+ // JSON.stringify can throw on circular references, BigInt, and non-serializable
41
+ // values. originalPayload is `unknown` (caller-controlled), so a malicious or
42
+ // malformed input could otherwise crash the writer mid-flight. Fall back to
43
+ // a sanitized record so the audit trail is preserved.
44
+ let serialized;
45
+ try {
46
+ serialized = JSON.stringify(entry);
47
+ }
48
+ catch {
49
+ serialized = JSON.stringify({
50
+ messageId: entry.messageId,
51
+ toolName: entry.toolName,
52
+ archivedAt: entry.archivedAt,
53
+ status: 'pending',
54
+ finalError: 'serialize_failed',
55
+ });
56
+ }
57
+ appendFileSync(this.filePath, serialized + '\n', 'utf-8');
36
58
  return entry;
37
59
  }
38
60
  /** Get the file path (for reader/replayer) */
@@ -26,8 +26,8 @@ export declare class DatasetManager {
26
26
  */
27
27
  addTraceToDataset(datasetId: string, traceId: string): EvalDatasetEntry;
28
28
  /**
29
- * Export a dataset to a JSON file.
29
+ * Export a dataset to a JSON file. Output path must be within `allowedRoot`.
30
30
  */
31
- exportToFile(datasetId: string, outputPath: string): void;
31
+ exportToFile(datasetId: string, outputPath: string, allowedRoot?: string): void;
32
32
  }
33
33
  //# sourceMappingURL=dataset-manager.d.ts.map
@@ -2,7 +2,9 @@
2
2
  * DatasetManager - JSONL-based eval dataset management (Task 33)
3
3
  */
4
4
  import { randomUUID } from 'crypto';
5
- import { appendFileSync, readFileSync, writeFileSync, existsSync } from 'fs';
5
+ import { appendFileSync, readFileSync, writeFileSync, renameSync, existsSync, statSync } from 'fs';
6
+ import { resolve, sep } from 'path';
7
+ import { parseJsonl } from '../utils/parse-jsonl.js';
6
8
  export class DatasetManager {
7
9
  datasetsPath;
8
10
  entriesPath;
@@ -43,10 +45,11 @@ export class DatasetManager {
43
45
  listDatasets() {
44
46
  if (!existsSync(this.datasetsPath))
45
47
  return [];
46
- const content = readFileSync(this.datasetsPath, 'utf-8').trim();
47
- if (!content)
48
- return [];
49
- return content.split('\n').map((line) => JSON.parse(line));
48
+ if (statSync(this.datasetsPath).size > 50 * 1024 * 1024) {
49
+ throw new Error('Dataset file exceeds 50MB — run cleanup');
50
+ }
51
+ const content = readFileSync(this.datasetsPath, 'utf-8');
52
+ return parseJsonl(content);
50
53
  }
51
54
  /**
52
55
  * Get entries for a specific dataset.
@@ -54,13 +57,11 @@ export class DatasetManager {
54
57
  getEntries(datasetId) {
55
58
  if (!existsSync(this.entriesPath))
56
59
  return [];
57
- const content = readFileSync(this.entriesPath, 'utf-8').trim();
58
- if (!content)
59
- return [];
60
- return content
61
- .split('\n')
62
- .map((line) => JSON.parse(line))
63
- .filter((e) => e.datasetId === datasetId);
60
+ if (statSync(this.entriesPath).size > 50 * 1024 * 1024) {
61
+ throw new Error('Entries file exceeds 50MB — run cleanup');
62
+ }
63
+ const content = readFileSync(this.entriesPath, 'utf-8');
64
+ return parseJsonl(content).filter((e) => e.datasetId === datasetId);
64
65
  }
65
66
  /**
66
67
  * Add a single trace to an existing dataset.
@@ -73,7 +74,7 @@ export class DatasetManager {
73
74
  addedAt: new Date().toISOString(),
74
75
  };
75
76
  appendFileSync(this.entriesPath, JSON.stringify(entry) + '\n', 'utf-8');
76
- // Update dataset entryCount
77
+ // Update dataset entryCount via atomic write
77
78
  const datasets = this.listDatasets();
78
79
  const updated = datasets.map((d) => {
79
80
  if (d.datasetId === datasetId) {
@@ -81,13 +82,22 @@ export class DatasetManager {
81
82
  }
82
83
  return d;
83
84
  });
84
- writeFileSync(this.datasetsPath, updated.map((d) => JSON.stringify(d)).join('\n') + '\n', 'utf-8');
85
+ const tmp = `${this.datasetsPath}.${randomUUID()}.tmp`;
86
+ writeFileSync(tmp, updated.map((d) => JSON.stringify(d)).join('\n') + '\n', 'utf-8');
87
+ renameSync(tmp, this.datasetsPath);
85
88
  return entry;
86
89
  }
87
90
  /**
88
- * Export a dataset to a JSON file.
91
+ * Export a dataset to a JSON file. Output path must be within `allowedRoot`.
89
92
  */
90
- exportToFile(datasetId, outputPath) {
93
+ exportToFile(datasetId, outputPath, allowedRoot) {
94
+ if (allowedRoot) {
95
+ const resolvedOut = resolve(outputPath);
96
+ const resolvedRoot = resolve(allowedRoot);
97
+ if (!resolvedOut.startsWith(resolvedRoot + sep) && resolvedOut !== resolvedRoot) {
98
+ throw new Error(`Export path escapes allowed root: ${resolvedOut}`);
99
+ }
100
+ }
91
101
  const datasets = this.listDatasets();
92
102
  const dataset = datasets.find((d) => d.datasetId === datasetId);
93
103
  const entries = this.getEntries(datasetId);
@@ -2,7 +2,8 @@
2
2
  * TraceCollector - JSONL-based production trace collection (Task 33)
3
3
  */
4
4
  import { randomUUID } from 'crypto';
5
- import { appendFileSync, readFileSync, existsSync } from 'fs';
5
+ import { appendFileSync, readFileSync, existsSync, statSync } from 'fs';
6
+ import { parseJsonl } from '../utils/parse-jsonl.js';
6
7
  export class TraceCollector {
7
8
  filePath;
8
9
  constructor(filePath) {
@@ -55,7 +56,22 @@ export class TraceCollector {
55
56
  correctedOutput: input.correctedOutput,
56
57
  tags: this.autoTag(input),
57
58
  };
58
- appendFileSync(this.filePath, JSON.stringify(trace) + '\n', 'utf-8');
59
+ // Defensive serialization agent outputs may contain circular references
60
+ // or BigInt; without this guard the writer crashes mid-trace.
61
+ let serialized;
62
+ try {
63
+ serialized = JSON.stringify(trace);
64
+ }
65
+ catch {
66
+ serialized = JSON.stringify({
67
+ traceId: trace.traceId,
68
+ agentSlug: trace.agentSlug,
69
+ capturedAt: trace.capturedAt,
70
+ reviewStatus: trace.reviewStatus,
71
+ outcome: 'serialize_failed',
72
+ });
73
+ }
74
+ appendFileSync(this.filePath, serialized + '\n', 'utf-8');
59
75
  return trace;
60
76
  }
61
77
  /**
@@ -64,10 +80,14 @@ export class TraceCollector {
64
80
  readAll() {
65
81
  if (!existsSync(this.filePath))
66
82
  return [];
83
+ const stat = statSync(this.filePath);
84
+ if (stat.size > 256 * 1024 * 1024) {
85
+ throw new Error(`Trace file exceeds 256MB (${stat.size} bytes). Run rotation/cleanup.`);
86
+ }
67
87
  const content = readFileSync(this.filePath, 'utf-8').trim();
68
88
  if (!content)
69
89
  return [];
70
- return content.split('\n').map((line) => JSON.parse(line));
90
+ return parseJsonl(content);
71
91
  }
72
92
  /**
73
93
  * Get traces pending review, with optional limit.
@@ -206,7 +206,7 @@ export class CLI {
206
206
  }
207
207
  else {
208
208
  // No action - show command help
209
- this.showCommandHelp(commandName);
209
+ await this.showCommandHelp(commandName);
210
210
  }
211
211
  }
212
212
  catch (error) {
@@ -386,7 +386,7 @@ export class CLI {
386
386
  async loadConfig(configPath) {
387
387
  try {
388
388
  // Import config utilities
389
- const { loadConfig: loadSystemConfig } = await import('@monoes/shared');
389
+ const { loadConfig: loadSystemConfig } = await import('@monomind/shared');
390
390
  const { systemConfigToMonomindConfig } = await import('./config-adapter.js');
391
391
  // Load configuration
392
392
  const loaded = await loadSystemConfig({
@@ -414,30 +414,32 @@ export class CLI {
414
414
  /**
415
415
  * Initialize optional subsystems at startup (non-blocking, all failures are silent).
416
416
  * Wires TierManager, ObservabilityBus + TraceCollector, and SwarmCheckpointer
417
- * so that packages/@monoes/* actually contribute to the live runtime.
417
+ * so that packages/@monomind/* actually contribute to the live runtime.
418
418
  */
419
419
  async initSubsystems() {
420
420
  // GAP-003: TierManager
421
421
  try {
422
- const { TierManager, createPersistentService } = await import('@monoes/memory');
422
+ const { TierManager, createPersistentService } = await import('@monomind/memory');
423
423
  const backend = createPersistentService('.monomind/memory');
424
- new TierManager(backend, { shortTermCapacity: 1000 });
424
+ const _tierManager = new TierManager(backend, { shortTermCapacity: 1000 });
425
+ void _tierManager;
425
426
  }
426
427
  catch { /* optional — monomind/memory may not be installed */ }
427
428
  // GAP-004/005/006: Register background workers (EntityExtractor, EpisodeBinner, TraceCollector)
428
429
  try {
429
- const { initDefaultWorkers } = await import('@monoes/hooks');
430
+ const { initDefaultWorkers } = await import('@monomind/hooks');
430
431
  await initDefaultWorkers();
431
432
  }
432
433
  catch { /* optional */ }
433
434
  // GAP-007: SwarmCheckpointer — write checkpoint files so crashed swarms can resume
434
435
  try {
435
- const { SwarmCheckpointer } = await import('@monoes/memory');
436
- new SwarmCheckpointer({
436
+ const { SwarmCheckpointer } = await import('@monomind/memory');
437
+ const _swarmCheckpointer = new SwarmCheckpointer({
437
438
  dbPath: '.monomind/checkpoints/swarm.jsonl',
438
439
  swarmId: 'default',
439
440
  sessionId: `session-${Date.now()}`,
440
441
  });
442
+ void _swarmCheckpointer;
441
443
  }
442
444
  catch { /* optional — monomind/memory may not be installed */ }
443
445
  // Task 30: Build unified agent registry — extras (canonical) first, dev copies second.
@@ -490,7 +492,7 @@ export class CLI {
490
492
  catch { /* optional */ }
491
493
  // Task 01-03: SemanticRouteLayer + LLMFallbackRouting + KeywordRouting
492
494
  try {
493
- const { RouteLayer, ALL_ROUTES } = await import('@monoes/routing');
495
+ const { RouteLayer, ALL_ROUTES } = await import('@monomind/routing');
494
496
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
495
497
  const routerConfig = { routes: ALL_ROUTES, enableKeywordFilter: true };
496
498
  // Task 02: LLMFallback — wire Anthropic Haiku when API key is present
@@ -513,7 +515,7 @@ export class CLI {
513
515
  // Expose for router.cjs via process global (router.cjs already checks __monomindRouteLayer)
514
516
  process.__monomindRouteLayer = routeLayer;
515
517
  }
516
- catch { /* optional — @monoes/routing may not be installed */ }
518
+ catch { /* optional — @monomind/routing may not be installed */ }
517
519
  }
518
520
  /**
519
521
  * Handle errors
@@ -369,18 +369,18 @@ MONOMIND_MEMORY_PATH=./data/memory
369
369
  \`\`\``;
370
370
  }
371
371
  function graphifySection() {
372
- return `## Knowledge Graph (graphify)
372
+ return `## Knowledge Graph (Monograph)
373
373
 
374
- Built into monomind since v1.3.0 — no separate install needed.
374
+ Built into monomind since v1.8.0 — no separate install needed. Pure TypeScript, no Python required.
375
375
 
376
376
  ### MCP Tools (prefix: \`mcp__monomind__\`)
377
377
 
378
378
  | Tool | Description |
379
379
  |------|-------------|
380
- | \`graphify_build\` | Build or refresh knowledge graph from codebase |
381
- | \`graphify_report\` | Generate GRAPH_REPORT.md with community breakdown |
382
- | \`graphify_suggest\` | Get refactoring/architecture suggestions from graph |
383
- | \`graphify_health\` | Check graph quality score and experiment status |
380
+ | \`monograph_build\` | Build or refresh knowledge graph from codebase |
381
+ | \`monograph_report\` | Generate GRAPH_REPORT.md with community breakdown |
382
+ | \`monograph_suggest\` | Get refactoring/architecture suggestions from graph |
383
+ | \`monograph_health\` | Check graph quality score and experiment status |
384
384
 
385
385
  ### How It Works
386
386
 
@@ -390,13 +390,13 @@ Built into monomind since v1.3.0 — no separate install needed.
390
390
  4. **Experiment loop** — tracks BASELINE/KEEP/DISCARD in \`results.tsv\`
391
391
  5. **BFD chunking** — efficient Anthropic API calls via bin-packing
392
392
 
393
- > If graphify tools are not available, run \`npx monomind@latest init --force\` then restart Claude Code.`;
393
+ > If monograph tools are not available, run \`npx monomind@latest init --force\` then restart Claude Code.`;
394
394
  }
395
395
  function setupAndBoundary() {
396
396
  return `## Quick Setup
397
397
 
398
398
  \`\`\`bash
399
- # Add MCP server — includes graphify, swarm, memory, hooks, all 200+ tools
399
+ # Add MCP server — includes monograph, swarm, memory, hooks, all 200+ tools
400
400
  claude mcp add monomind -- npx -y monomind@latest mcp start
401
401
 
402
402
  # Start background workers