monomind 2.5.1 → 2.5.3

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 (324) hide show
  1. package/README.md +1 -1
  2. package/package.json +2 -1
  3. package/packages/@monomind/cli/.claude/agents/design/design-monodesign.md +6 -6
  4. package/packages/@monomind/cli/.claude/agents/github/repo-architect.md +3 -3
  5. package/packages/@monomind/cli/.claude/agents/github/sync-coordinator.md +2 -2
  6. package/packages/@monomind/cli/.claude/agents/specialists/integration-architect.md +4 -4
  7. package/packages/@monomind/cli/.claude/commands/github/repo-architect.md +4 -4
  8. package/packages/@monomind/cli/.claude/commands/github/sync-coordinator.md +2 -2
  9. package/packages/@monomind/cli/.claude/commands/mastermind/_repeat.md +4 -4
  10. package/packages/@monomind/cli/.claude/commands/mastermind/approvev1.md +4 -4
  11. package/packages/@monomind/cli/.claude/commands/mastermind/architect.md +6 -6
  12. package/packages/@monomind/cli/.claude/commands/mastermind/autodev.md +5 -5
  13. package/packages/@monomind/cli/.claude/commands/mastermind/brain.md +2 -2
  14. package/packages/@monomind/cli/.claude/commands/mastermind/build.md +6 -6
  15. package/packages/@monomind/cli/.claude/commands/mastermind/code-review.md +2 -2
  16. package/packages/@monomind/cli/.claude/commands/mastermind/content.md +6 -6
  17. package/packages/@monomind/cli/.claude/commands/mastermind/createorg.md +4 -4
  18. package/packages/@monomind/cli/.claude/commands/mastermind/createtask.md +3 -3
  19. package/packages/@monomind/cli/.claude/commands/mastermind/debug.md +5 -5
  20. package/packages/@monomind/cli/.claude/commands/mastermind/design.md +5 -5
  21. package/packages/@monomind/cli/.claude/commands/mastermind/do.md +2 -2
  22. package/packages/@monomind/cli/.claude/commands/mastermind/execute.md +5 -5
  23. package/packages/@monomind/cli/.claude/commands/mastermind/finance.md +6 -6
  24. package/packages/@monomind/cli/.claude/commands/mastermind/finish.md +5 -5
  25. package/packages/@monomind/cli/.claude/commands/mastermind/idea.md +6 -6
  26. package/packages/@monomind/cli/.claude/commands/mastermind/ideate.md +5 -5
  27. package/packages/@monomind/cli/.claude/commands/mastermind/improve.md +6 -6
  28. package/packages/@monomind/cli/.claude/commands/mastermind/marketing.md +6 -6
  29. package/packages/@monomind/cli/.claude/commands/mastermind/master.md +54 -54
  30. package/packages/@monomind/cli/.claude/commands/mastermind/ops.md +6 -6
  31. package/packages/@monomind/cli/.claude/commands/mastermind/orgs.md +2 -2
  32. package/packages/@monomind/cli/.claude/commands/mastermind/orgstatus.md +2 -2
  33. package/packages/@monomind/cli/.claude/commands/mastermind/plan.md +5 -5
  34. package/packages/@monomind/cli/.claude/commands/mastermind/receive-review.md +5 -5
  35. package/packages/@monomind/cli/.claude/commands/mastermind/release.md +6 -6
  36. package/packages/@monomind/cli/.claude/commands/mastermind/research.md +6 -6
  37. package/packages/@monomind/cli/.claude/commands/mastermind/review.md +6 -6
  38. package/packages/@monomind/cli/.claude/commands/mastermind/runorg.md +4 -4
  39. package/packages/@monomind/cli/.claude/commands/mastermind/runorgv1.md +5 -5
  40. package/packages/@monomind/cli/.claude/commands/mastermind/sales.md +6 -6
  41. package/packages/@monomind/cli/.claude/commands/mastermind/skill-builder.md +5 -5
  42. package/packages/@monomind/cli/.claude/commands/mastermind/stoporg.md +3 -3
  43. package/packages/@monomind/cli/.claude/commands/mastermind/taskdev.md +5 -5
  44. package/packages/@monomind/cli/.claude/commands/mastermind/tdd.md +5 -5
  45. package/packages/@monomind/cli/.claude/commands/mastermind/techport.md +5 -5
  46. package/packages/@monomind/cli/.claude/commands/mastermind/verify.md +5 -5
  47. package/packages/@monomind/cli/.claude/commands/mastermind/worktree.md +5 -5
  48. package/packages/@monomind/cli/.claude/helpers/control-start.cjs +30 -0
  49. package/packages/@monomind/cli/.claude/helpers/event-logger.cjs +2 -2
  50. package/packages/@monomind/cli/.claude/helpers/extras-registry.json +1 -1
  51. package/packages/@monomind/cli/.claude/helpers/handlers/agent-start-handler.cjs +2 -2
  52. package/packages/@monomind/cli/.claude/helpers/handlers/edit-handler.cjs +2 -2
  53. package/packages/@monomind/cli/.claude/helpers/handlers/gates-handler.cjs +1 -1
  54. package/packages/@monomind/cli/.claude/helpers/handlers/route-handler.cjs +1 -1
  55. package/packages/@monomind/cli/.claude/helpers/handlers/session-handler.cjs +1 -1
  56. package/packages/@monomind/cli/.claude/helpers/handlers/session-restore-handler.cjs +11 -11
  57. package/packages/@monomind/cli/.claude/helpers/handlers/task-handler.cjs +2 -2
  58. package/packages/@monomind/cli/.claude/helpers/hook-handler.cjs +8 -8
  59. package/packages/@monomind/cli/.claude/helpers/utils/monograph.cjs +44 -12
  60. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/access.md → mastermind-access/SKILL.md} +2 -2
  61. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/activity.md → mastermind-activity/SKILL.md} +2 -2
  62. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/adapter-manager.md → mastermind-adapter-manager/SKILL.md} +2 -2
  63. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/adapters.md → mastermind-adapters/SKILL.md} +2 -2
  64. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/agent-detail.md → mastermind-agent-detail/SKILL.md} +2 -2
  65. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/agents.md → mastermind-agents/SKILL.md} +2 -2
  66. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/approval-detail.md → mastermind-approval-detail/SKILL.md} +2 -2
  67. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/approvev1.md → mastermind-approvev1/SKILL.md} +2 -2
  68. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/architect.md → mastermind-architect/SKILL.md} +7 -7
  69. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/autodev.md → mastermind-autodev/SKILL.md} +10 -10
  70. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/backup.md → mastermind-backup/SKILL.md} +2 -2
  71. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/bootstrap.md → mastermind-bootstrap/SKILL.md} +2 -2
  72. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/budgets.md → mastermind-budgets/SKILL.md} +2 -2
  73. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/build.md → mastermind-build/SKILL.md} +5 -5
  74. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/companies.md → mastermind-companies/SKILL.md} +2 -2
  75. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/content.md → mastermind-content/SKILL.md} +5 -5
  76. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/costs.md → mastermind-costs/SKILL.md} +2 -2
  77. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/createorg.md → mastermind-createorg/SKILL.md} +3 -3
  78. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/debug.md → mastermind-debug/SKILL.md} +4 -4
  79. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_delegation.md → mastermind-delegation/SKILL.md} +1 -1
  80. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/design.md → mastermind-design/SKILL.md} +9 -9
  81. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/diagnose.md → mastermind-diagnose/SKILL.md} +2 -2
  82. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/env.md → mastermind-env/SKILL.md} +2 -2
  83. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/environments.md → mastermind-environments/SKILL.md} +2 -2
  84. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/execute.md → mastermind-execute/SKILL.md} +10 -10
  85. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/export.md → mastermind-export/SKILL.md} +2 -2
  86. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/finance.md → mastermind-finance/SKILL.md} +5 -5
  87. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/goal-detail.md → mastermind-goal-detail/SKILL.md} +2 -2
  88. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/goals.md → mastermind-goals/SKILL.md} +2 -2
  89. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/heartbeatv1.md → mastermind-heartbeatv1/SKILL.md} +2 -2
  90. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/idea.md → mastermind-idea/SKILL.md} +7 -7
  91. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/import.md → mastermind-import/SKILL.md} +2 -2
  92. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/inbox.md → mastermind-inbox/SKILL.md} +2 -2
  93. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/instance.md → mastermind-instance/SKILL.md} +2 -2
  94. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/instance-settings.md → mastermind-instance-settings/SKILL.md} +2 -2
  95. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/invite-landing.md → mastermind-invite-landing/SKILL.md} +2 -2
  96. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/invites.md → mastermind-invites/SKILL.md} +2 -2
  97. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/issue-detail.md → mastermind-issue-detail/SKILL.md} +2 -2
  98. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/issues.md → mastermind-issues/SKILL.md} +2 -2
  99. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/join-queue.md → mastermind-join-queue/SKILL.md} +2 -2
  100. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/liveness.md → mastermind-liveness/SKILL.md} +2 -2
  101. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/marketing.md → mastermind-marketing/SKILL.md} +8 -8
  102. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/memory.md → mastermind-memory/SKILL.md} +2 -2
  103. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/monitor.md → mastermind-monitor/SKILL.md} +2 -2
  104. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/my-issues.md → mastermind-my-issues/SKILL.md} +2 -2
  105. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/new-agent.md → mastermind-new-agent/SKILL.md} +2 -2
  106. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/ops.md → mastermind-ops/SKILL.md} +5 -5
  107. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/org-chart.md → mastermind-org-chart/SKILL.md} +2 -2
  108. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/org-settings.md → mastermind-org-settings/SKILL.md} +2 -2
  109. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/orgs.md → mastermind-orgs/SKILL.md} +1 -1
  110. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/orgstatus.md → mastermind-orgstatus/SKILL.md} +2 -2
  111. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plan.md → mastermind-plan/SKILL.md} +7 -7
  112. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plan-to-tasks.md → mastermind-plan-to-tasks/SKILL.md} +2 -2
  113. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugin-manager.md → mastermind-plugin-manager/SKILL.md} +2 -2
  114. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugin-settings.md → mastermind-plugin-settings/SKILL.md} +2 -2
  115. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/plugins.md → mastermind-plugins/SKILL.md} +2 -2
  116. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/profile.md → mastermind-profile/SKILL.md} +2 -2
  117. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/project-detail.md → mastermind-project-detail/SKILL.md} +2 -2
  118. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/project-workspace.md → mastermind-project-workspace/SKILL.md} +2 -2
  119. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/projects.md → mastermind-projects/SKILL.md} +2 -2
  120. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_protocol.md → mastermind-protocol/SKILL.md} +3 -3
  121. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/release.md → mastermind-release/SKILL.md} +5 -5
  122. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_repeat.md → mastermind-repeat/SKILL.md} +2 -2
  123. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/research.md → mastermind-research/SKILL.md} +5 -5
  124. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/review.md → mastermind-review/SKILL.md} +5 -5
  125. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/routine-detail.md → mastermind-routine-detail/SKILL.md} +2 -2
  126. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/routines.md → mastermind-routines/SKILL.md} +2 -2
  127. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/runorgv1.md → mastermind-runorgv1/SKILL.md} +2 -2
  128. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/sales.md → mastermind-sales/SKILL.md} +5 -5
  129. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/search.md → mastermind-search/SKILL.md} +2 -2
  130. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/secrets.md → mastermind-secrets/SKILL.md} +2 -2
  131. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/skill-builder.md → mastermind-skill-builder/SKILL.md} +16 -14
  132. package/packages/@monomind/cli/.claude/skills/mastermind-skills/{skills.md → SKILL.md} +2 -2
  133. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/stoporg.md → mastermind-stoporg/SKILL.md} +2 -2
  134. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/taskdev.md → mastermind-taskdev/SKILL.md} +6 -6
  135. package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/implementer-prompt.md +1 -1
  136. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tasks.md → mastermind-tasks/SKILL.md} +2 -2
  137. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tdd.md → mastermind-tdd/SKILL.md} +4 -4
  138. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/techport.md → mastermind-techport/SKILL.md} +6 -6
  139. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/threads.md → mastermind-threads/SKILL.md} +2 -2
  140. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/tree-control.md → mastermind-tree-control/SKILL.md} +2 -2
  141. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/verify.md → mastermind-verify/SKILL.md} +1 -1
  142. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/wiki.md → mastermind-wiki/SKILL.md} +2 -2
  143. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/workspace-detail.md → mastermind-workspace-detail/SKILL.md} +2 -2
  144. package/packages/@monomind/cli/.claude/skills/{mastermind-skills/workspaces.md → mastermind-workspaces/SKILL.md} +2 -2
  145. package/packages/@monomind/cli/.claude/skills/monodesign/SKILL.md +114 -190
  146. package/packages/@monomind/cli/.claude/skills/monodesign/adapt.md +1 -1
  147. package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-asset-producer.md +4 -4
  148. package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +103 -0
  149. package/packages/@monomind/cli/.claude/skills/monodesign/audit.md +1 -1
  150. package/packages/@monomind/cli/.claude/skills/monodesign/craft.md +2 -2
  151. package/packages/@monomind/cli/.claude/skills/monodesign/critique.md +1 -1
  152. package/packages/@monomind/cli/.claude/skills/monodesign/init.md +30 -0
  153. package/packages/@monomind/cli/.claude/skills/monodesign/layout.md +36 -0
  154. package/packages/@monomind/cli/.claude/skills/monodesign/live.md +19 -44
  155. package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.md +122 -0
  156. package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.native.md +58 -0
  157. package/packages/@monomind/cli/.claude/skills/monodesign/reference/android.md +40 -0
  158. package/packages/@monomind/cli/.claude/skills/monodesign/reference/animate.md +39 -11
  159. package/packages/@monomind/cli/.claude/skills/monodesign/reference/antipatterns-catalog.md +67 -16
  160. package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.md +5 -3
  161. package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.native.md +139 -0
  162. package/packages/@monomind/cli/.claude/skills/monodesign/reference/bolder.md +71 -64
  163. package/packages/@monomind/cli/.claude/skills/monodesign/reference/brand.md +12 -18
  164. package/packages/@monomind/cli/.claude/skills/monodesign/reference/clarify.md +114 -0
  165. package/packages/@monomind/cli/.claude/skills/monodesign/reference/codex.md +4 -6
  166. package/packages/@monomind/cli/.claude/skills/monodesign/reference/colorize.md +108 -5
  167. package/packages/@monomind/cli/.claude/skills/monodesign/reference/craft.md +70 -143
  168. package/packages/@monomind/cli/.claude/skills/monodesign/reference/critique.md +635 -68
  169. package/packages/@monomind/cli/.claude/skills/monodesign/reference/delight.md +1 -1
  170. package/packages/@monomind/cli/.claude/skills/monodesign/reference/distill.md +1 -1
  171. package/packages/@monomind/cli/.claude/skills/monodesign/reference/document.md +24 -22
  172. package/packages/@monomind/cli/.claude/skills/monodesign/reference/extract.md +1 -1
  173. package/packages/@monomind/cli/.claude/skills/monodesign/reference/hooks.md +22 -29
  174. package/packages/@monomind/cli/.claude/skills/monodesign/reference/init.md +221 -0
  175. package/packages/@monomind/cli/.claude/skills/monodesign/reference/interaction-design.md +0 -6
  176. package/packages/@monomind/cli/.claude/skills/monodesign/reference/ios.md +45 -0
  177. package/packages/@monomind/cli/.claude/skills/monodesign/reference/layout.md +57 -13
  178. package/packages/@monomind/cli/.claude/skills/monodesign/reference/live.md +159 -71
  179. package/packages/@monomind/cli/.claude/skills/monodesign/reference/overdrive.md +1 -1
  180. package/packages/@monomind/cli/.claude/skills/monodesign/reference/personas.md +1 -1
  181. package/packages/@monomind/cli/.claude/skills/monodesign/reference/polish.md +16 -8
  182. package/packages/@monomind/cli/.claude/skills/monodesign/reference/pre-delivery-checklist.md +1 -1
  183. package/packages/@monomind/cli/.claude/skills/monodesign/reference/product.md +1 -3
  184. package/packages/@monomind/cli/.claude/skills/monodesign/reference/quieter.md +1 -1
  185. package/packages/@monomind/cli/.claude/skills/monodesign/reference/shape.md +27 -13
  186. package/packages/@monomind/cli/.claude/skills/monodesign/reference/teach.md +6 -152
  187. package/packages/@monomind/cli/.claude/skills/monodesign/reference/typeset.md +180 -3
  188. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/command-metadata.json +94 -0
  189. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context-signals.mjs +260 -0
  190. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context.mjs +1061 -0
  191. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/critique-storage.mjs +416 -0
  192. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect-csp.mjs +198 -0
  193. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect.mjs +33 -0
  194. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +1962 -0
  195. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/cli/main.mjs +321 -0
  196. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/design-system.mjs +814 -0
  197. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +5601 -0
  198. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +50 -0
  199. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +259 -0
  200. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +258 -0
  201. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +636 -0
  202. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +1015 -0
  203. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +253 -0
  204. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +198 -0
  205. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/findings.mjs +12 -0
  206. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +181 -0
  207. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +373 -0
  208. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/index.mjs +426 -0
  209. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +198 -0
  210. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +166 -0
  211. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +563 -0
  212. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +2995 -0
  213. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/color.mjs +124 -0
  214. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +101 -0
  215. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +30 -0
  216. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +148 -0
  217. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/page.mjs +7 -0
  218. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-admin.mjs +661 -0
  219. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-before-edit.mjs +516 -0
  220. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-lib.mjs +1776 -0
  221. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook.mjs +61 -0
  222. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/design-parser.mjs +842 -0
  223. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/is-generated.mjs +69 -0
  224. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +640 -0
  225. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +129 -0
  226. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/provider.mjs +4 -0
  227. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/target-args.mjs +42 -0
  228. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +50 -0
  229. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/completion.mjs +19 -0
  230. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/event-validation.mjs +137 -0
  231. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/insert-ui.mjs +458 -0
  232. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-apply.mjs +939 -0
  233. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +357 -0
  234. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +152 -0
  235. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/session-store.mjs +293 -0
  236. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/svelte-component.mjs +826 -0
  237. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +274 -0
  238. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/ui-core.mjs +180 -0
  239. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/vocabulary.mjs +36 -0
  240. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-accept.mjs +812 -0
  241. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-dom.js +146 -0
  242. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-session.js +123 -0
  243. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser.js +11240 -0
  244. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +1241 -0
  245. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-complete.mjs +75 -0
  246. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +683 -0
  247. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +51 -0
  248. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-inject.mjs +583 -0
  249. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-insert.mjs +272 -0
  250. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +363 -0
  251. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-poll.mjs +384 -0
  252. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-resume.mjs +94 -0
  253. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-server.mjs +1137 -0
  254. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-status.mjs +61 -0
  255. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-target.mjs +30 -0
  256. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-wrap.mjs +894 -0
  257. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live.mjs +297 -0
  258. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +14 -0
  259. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/palette.mjs +633 -0
  260. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/pin.mjs +221 -0
  261. package/packages/@monomind/cli/.claude/skills/monodesign/teach.md +7 -58
  262. package/packages/@monomind/cli/README.md +1 -1
  263. package/packages/@monomind/cli/dist/src/commands/design-detect.d.ts +7 -1
  264. package/packages/@monomind/cli/dist/src/commands/design-detect.js +131 -38
  265. package/packages/@monomind/cli/dist/src/commands/design-palette.d.ts +0 -1
  266. package/packages/@monomind/cli/dist/src/commands/design-palette.js +2 -3
  267. package/packages/@monomind/cli/dist/src/commands/doc.js +72 -15
  268. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.d.ts +5 -1
  269. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.js +24 -1
  270. package/packages/@monomind/cli/dist/src/commands/doctor.js +3 -3
  271. package/packages/@monomind/cli/dist/src/commands/hooks-workers.d.ts +1 -1
  272. package/packages/@monomind/cli/dist/src/commands/hooks-workers.js +8 -8
  273. package/packages/@monomind/cli/dist/src/commands/init.js +2 -2
  274. package/packages/@monomind/cli/dist/src/commands/org.js +109 -9
  275. package/packages/@monomind/cli/dist/src/index.d.ts +1 -1
  276. package/packages/@monomind/cli/dist/src/index.js +3 -3
  277. package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +5 -5
  278. package/packages/@monomind/cli/dist/src/init/executor.js +17 -6
  279. package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.d.ts +2 -0
  280. package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.js +4 -1
  281. package/packages/@monomind/cli/dist/src/mcp-server.js +2 -2
  282. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.d.ts +1 -1
  283. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.js +1 -1
  284. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.js +2 -2
  285. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +1 -1
  286. package/packages/@monomind/cli/dist/src/mcp-tools/knowledge-tools.js +38 -7
  287. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.d.ts +8 -3
  288. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +193 -31
  289. package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +33 -0
  290. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +166 -17
  291. package/packages/@monomind/cli/dist/src/memory/memory-kg.d.ts +186 -0
  292. package/packages/@monomind/cli/dist/src/memory/memory-kg.js +450 -0
  293. package/packages/@monomind/cli/dist/src/memory/query-router.d.ts +44 -0
  294. package/packages/@monomind/cli/dist/src/memory/query-router.js +113 -0
  295. package/packages/@monomind/cli/dist/src/orgrt/daemon.d.ts +18 -0
  296. package/packages/@monomind/cli/dist/src/orgrt/daemon.js +249 -12
  297. package/packages/@monomind/cli/dist/src/orgrt/migrate.js +7 -0
  298. package/packages/@monomind/cli/dist/src/orgrt/policy.js +7 -0
  299. package/packages/@monomind/cli/dist/src/orgrt/session.d.ts +24 -1
  300. package/packages/@monomind/cli/dist/src/orgrt/session.js +18 -3
  301. package/packages/@monomind/cli/dist/src/orgrt/templates.d.ts +1 -0
  302. package/packages/@monomind/cli/dist/src/orgrt/templates.js +9 -4
  303. package/packages/@monomind/cli/dist/src/orgrt/types.d.ts +15 -0
  304. package/packages/@monomind/cli/dist/src/orgrt/types.js +2 -0
  305. package/packages/@monomind/cli/dist/src/routing/embed-worker.js +1 -1
  306. package/packages/@monomind/cli/dist/src/routing/llm-caller.js +1 -1
  307. package/packages/@monomind/cli/dist/src/routing/route-layer-factory.js +1 -1
  308. package/packages/@monomind/cli/dist/src/ui/dashboard.html +176 -26
  309. package/packages/@monomind/cli/dist/src/ui/orgs.html +24 -0
  310. package/packages/@monomind/cli/dist/src/ui/server.mjs +162 -12
  311. package/packages/@monomind/cli/dist/src/update/checker.js +3 -3
  312. package/packages/@monomind/cli/package.json +8 -6
  313. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_agent-select.md → mastermind-agent-select/SKILL.md} +0 -0
  314. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/finish.md → mastermind-finish/SKILL.md} +0 -0
  315. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/_intake.md → mastermind-intake/SKILL.md} +0 -0
  316. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-marketing}/references/copywriting-frameworks.md +0 -0
  317. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-marketing}/references/persuasion-psychology.md +0 -0
  318. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/monotask.md → mastermind-monotask/SKILL.md} +0 -0
  319. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/receive-review.md → mastermind-receive-review/SKILL.md} +0 -0
  320. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/runorg.md → mastermind-runorg/SKILL.md} +0 -0
  321. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/code-quality-reviewer-prompt.md +0 -0
  322. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/final-reviewer-prompt.md +0 -0
  323. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills → mastermind-taskdev}/spec-reviewer-prompt.md +0 -0
  324. /package/packages/@monomind/cli/.claude/skills/{mastermind-skills/worktree.md → mastermind-worktree/SKILL.md} +0 -0
@@ -88,6 +88,7 @@ const searchDocCommand = {
88
88
  { name: 'scope', short: 's', description: 'Knowledge scope (default: shared)', type: 'string', default: 'shared' },
89
89
  { name: 'min-score', description: 'Minimum similarity (default: 0.3)', type: 'number', default: 0.3 },
90
90
  { name: 'store', description: 'Which store(s): project | global | all (default: all — project results win ties)', type: 'string', default: 'all' },
91
+ { name: 'surfaces', description: "Override routing: comma list of chunks,kg,rules,memory (default: rule-based router picks)", type: 'string' },
91
92
  ],
92
93
  examples: [
93
94
  { command: 'monomind doc search -q "authentication flow"', description: 'Search project + global brain' },
@@ -100,28 +101,84 @@ const searchDocCommand = {
100
101
  return { success: false, exitCode: 1 };
101
102
  }
102
103
  const { searchKnowledge } = await import('../knowledge/document-pipeline.js');
104
+ const { routeQuery, rrfFuse, recordRouteOverride } = await import('../memory/query-router.js');
103
105
  const storeFlag = String(ctx.flags.store || 'all');
104
- const excerpts = await searchKnowledge(query, {
105
- scope: String(ctx.flags.scope || 'shared'),
106
- limit: Number(ctx.flags.limit || 10),
107
- minScore: Number(ctx.flags['min-score'] || 0.3),
108
- store: storeFlag === 'project' || storeFlag === 'global' ? storeFlag : 'all',
109
- });
110
- if (!excerpts.length) {
106
+ const limit = Number(ctx.flags.limit || 10);
107
+ // Same surface routing as the MCP knowledge_search tool and the warm
108
+ // /api/knowledge/search endpoint: the rule-based router picks which
109
+ // retrieval surfaces to spend queries on; --surfaces overrides it.
110
+ const route = routeQuery(query);
111
+ const VALID_SURFACES = ['chunks', 'kg', 'rules', 'memory'];
112
+ const rawSurfaces = String(ctx.flags.surfaces || '').split(',').map(s => s.trim()).filter(Boolean);
113
+ const requested = rawSurfaces.filter(s => VALID_SURFACES.includes(s));
114
+ const invalidSurfaces = rawSurfaces.filter(s => !VALID_SURFACES.includes(s));
115
+ if (invalidSurfaces.length) {
116
+ output.writeln(output.dim(`ignoring unknown surface(s): ${invalidSurfaces.join(',')} (valid: ${VALID_SURFACES.join(',')})`));
117
+ }
118
+ const surfaces = requested.length
119
+ ? requested
120
+ : (route.confident ? route.surfaces : ['chunks', ...route.surfaces.filter(s => s !== 'chunks')]);
121
+ const bridge = await import('../memory/memory-bridge.js');
122
+ const kg = await import('../memory/memory-kg.js');
123
+ const [excerpts, graph, rules, memories] = await Promise.all([
124
+ surfaces.includes('chunks')
125
+ ? searchKnowledge(query, {
126
+ scope: String(ctx.flags.scope || 'shared'),
127
+ limit,
128
+ minScore: Number(ctx.flags['min-score'] || 0.3),
129
+ store: storeFlag === 'project' || storeFlag === 'global' ? storeFlag : 'all',
130
+ })
131
+ : [],
132
+ surfaces.includes('kg') ? kg.kgSearch({ query, limit: 6 }).catch(() => null) : null,
133
+ surfaces.includes('rules') ? bridge.bridgeSearchEntries({ query, namespace: 'rules', limit: 3, threshold: 0.35 }).catch(() => null) : null,
134
+ surfaces.includes('memory') ? bridge.bridgeSearchEntries({ query, namespace: 'patterns', limit: 3 }).catch(() => null) : null,
135
+ ]);
136
+ // Confident non-chunk routing against an empty surface (e.g. a project
137
+ // with no KG yet) must not read as "no knowledge" — fall back to chunks.
138
+ let fellBack = false;
139
+ let chunkExcerpts = excerpts;
140
+ if (!requested.length && !chunkExcerpts.length && !(graph?.triplets?.length) && !(rules?.results?.length) && !(memories?.results?.length) && !surfaces.includes('chunks')) {
141
+ fellBack = true;
142
+ recordRouteOverride(surfaces[0], 'chunks');
143
+ chunkExcerpts = await searchKnowledge(query, {
144
+ scope: String(ctx.flags.scope || 'shared'),
145
+ limit,
146
+ minScore: Number(ctx.flags['min-score'] || 0.3),
147
+ store: storeFlag === 'project' || storeFlag === 'global' ? storeFlag : 'all',
148
+ });
149
+ }
150
+ const fused = rrfFuse([
151
+ chunkExcerpts.map(e => ({ id: e.id || `${e.filePath}#${e.chunkIndex}`, kind: 'excerpt', ...e })),
152
+ (graph?.triplets ?? []).map((t, i) => ({ id: `kg:${i}:${t.source}|${t.relation}|${t.target}`, kind: 'triplet', ...t })),
153
+ (rules?.results ?? []).map(r => ({ id: r.id, kind: 'rule', key: r.key, text: r.content, score: r.score, importance: 0.7 })),
154
+ (memories?.results ?? []).map(r => ({ id: r.id, kind: 'memory', key: r.key, text: r.content, score: r.score })),
155
+ ], limit);
156
+ if (!fused.length) {
111
157
  output.writeln(output.dim('No results found.'));
112
158
  return { success: true, data: [] };
113
159
  }
114
- output.writeln(output.bold(`${excerpts.length} results:`));
160
+ output.writeln(output.bold(`${fused.length} results ${output.dim(`(surfaces: ${fellBack ? surfaces.join(',') + ' → chunks fallback' : surfaces.join(',')})`)}:`));
115
161
  output.writeln();
116
- for (let i = 0; i < excerpts.length; i++) {
117
- const ex = excerpts[i];
118
- const origin = ex.scope === 'global' ? ` ${output.dim('[global]')}` : '';
119
- output.writeln(`${output.highlight(`${i + 1}.`)} ${output.dim(`(${ex.similarity.toFixed(3)})`)} ${ex.filePath || 'unknown'}${origin}`);
120
- const preview = ex.text.length > 200 ? ex.text.slice(0, 200) + '...' : ex.text;
121
- output.writeln(` ${output.dim(preview)}`);
162
+ for (let i = 0; i < fused.length; i++) {
163
+ const r = fused[i];
164
+ const n = output.highlight(`${i + 1}.`);
165
+ if (r.kind === 'triplet') {
166
+ const fact = r.fact && r.fact !== `${r.source} ${r.relation} ${r.target}` ? ` ${output.dim(`(${String(r.fact).slice(0, 160)})`)}` : '';
167
+ output.writeln(`${n} ${output.dim('[kg]')} ${r.source} —${r.relation}→ ${r.target}${fact}`);
168
+ }
169
+ else if (r.kind === 'rule' || r.kind === 'memory') {
170
+ output.writeln(`${n} ${output.dim(`[${r.kind}]`)} ${String(r.text || '').replace(/\s+/g, ' ').slice(0, 200)}`);
171
+ }
172
+ else {
173
+ const origin = r.scope === 'global' ? ` ${output.dim('[global]')}` : '';
174
+ const sim = typeof r.similarity === 'number' ? `(${r.similarity.toFixed(3)}) ` : '';
175
+ output.writeln(`${n} ${output.dim(sim)}${r.filePath || 'unknown'}${origin}`);
176
+ const text = String(r.text || '');
177
+ output.writeln(` ${output.dim(text.length > 200 ? text.slice(0, 200) + '...' : text)}`);
178
+ }
122
179
  output.writeln();
123
180
  }
124
- return { success: true, data: excerpts };
181
+ return { success: true, data: fused };
125
182
  },
126
183
  };
127
184
  const listDocCommand = {
@@ -6,6 +6,10 @@ import type { HealthCheck } from './doctor-env-checks.js';
6
6
  export type { HealthCheck };
7
7
  export declare function checkConfigFile(): Promise<HealthCheck>;
8
8
  export declare function checkMemoryDatabase(): Promise<HealthCheck>;
9
+ /** Memory knowledge graph (cognee port): entities/relations/rules distilled
10
+ * from sessions and org runs. Informational — an empty graph on a fresh
11
+ * project is normal, so it never fails. */
12
+ export declare function checkMemoryKnowledgeGraph(): Promise<HealthCheck>;
9
13
  /** Second Brain: when this project has an indexed knowledge base, semantic
10
14
  * search needs the local embedding model. Its absence is silent (search
11
15
  * degrades to keyword matching) — surface it here instead. */
@@ -22,7 +26,7 @@ export declare function checkGitignoreCoverage(): Promise<HealthCheck>;
22
26
  export declare function checkAgentRegistry(): Promise<HealthCheck>;
23
27
  export declare function checkGuidanceGates(): Promise<HealthCheck>;
24
28
  /**
25
- * Worker metrics freshness — reports the age of the @monomind/hooks worker
29
+ * Worker metrics freshness — reports the age of the @monoes/hooks worker
26
30
  * output files (written at session start with a 6h staleness gate, or on
27
31
  * demand via `monomind hooks worker run <name>`), so missing/stale worker
28
32
  * output is visible without digging through .monomind/metrics.
@@ -44,6 +44,29 @@ export async function checkMemoryDatabase() {
44
44
  }
45
45
  return { name: 'Memory Database', status: 'warn', message: 'Not initialized', fix: 'monomind memory configure --backend hybrid' };
46
46
  }
47
+ /** Memory knowledge graph (cognee port): entities/relations/rules distilled
48
+ * from sessions and org runs. Informational — an empty graph on a fresh
49
+ * project is normal, so it never fails. */
50
+ export async function checkMemoryKnowledgeGraph() {
51
+ const name = 'Memory Knowledge Graph';
52
+ try {
53
+ const kg = await import('../memory/memory-kg.js');
54
+ const bridge = await import('../memory/memory-bridge.js');
55
+ const project = await kg.kgStats();
56
+ const orgDb = join(process.cwd(), '.monomind', 'org-memory');
57
+ const org = existsSync(orgDb) ? await kg.kgStats({ dbPath: orgDb }) : null;
58
+ await bridge.shutdownBridge().catch(() => { });
59
+ const total = project.nodes + (org?.nodes ?? 0);
60
+ const fmt = (s) => `${s.nodes}n/${s.edges}e/${s.rules}r`;
61
+ if (total === 0) {
62
+ return { name, status: 'warn', message: 'Empty — sessions/org runs have not distilled knowledge yet', fix: 'org runs call org_learn automatically; sessions use memory_kg_ingest' };
63
+ }
64
+ return { name, status: 'pass', message: `project ${fmt(project)}${org ? ` · org ${fmt(org)}` : ''}` };
65
+ }
66
+ catch (err) {
67
+ return { name, status: 'warn', message: `Check failed: ${err instanceof Error ? err.message : String(err)}` };
68
+ }
69
+ }
47
70
  /** Second Brain: when this project has an indexed knowledge base, semantic
48
71
  * search needs the local embedding model. Its absence is silent (search
49
72
  * degrades to keyword matching) — surface it here instead. */
@@ -563,7 +586,7 @@ function readMetricsJSON(name) {
563
586
  }
564
587
  }
565
588
  /**
566
- * Worker metrics freshness — reports the age of the @monomind/hooks worker
589
+ * Worker metrics freshness — reports the age of the @monoes/hooks worker
567
590
  * output files (written at session start with a 6h staleness gate, or on
568
591
  * demand via `monomind hooks worker run <name>`), so missing/stale worker
569
592
  * output is visible without digging through .monomind/metrics.
@@ -7,7 +7,7 @@
7
7
  import * as path from 'path';
8
8
  import { output } from '../output.js';
9
9
  import { checkNodeVersion, checkNpmVersion, checkGit, checkGitRepo, checkDiskSpace, checkBuildTools, checkVersionFreshness, checkClaudeCode, installClaudeCode, } from './doctor-env-checks.js';
10
- import { checkConfigFile, checkMemoryDatabase, checkApiKeys, checkMcpServers, checkMonograph, checkMonographFreshness, checkMonoesMemory, checkHelpersFresh, fixStaleHelpers, checkMonoesIntegration, checkGuidanceGates, checkGitignoreCoverage, checkAgentRegistry, checkMemoryProficiency, checkMetricsFreshness, checkSecurityAuditFindings, checkSecondBrainModel, } from './doctor-project-checks.js';
10
+ import { checkConfigFile, checkMemoryDatabase, checkApiKeys, checkMcpServers, checkMonograph, checkMonographFreshness, checkMonoesMemory, checkHelpersFresh, fixStaleHelpers, checkMonoesIntegration, checkGuidanceGates, checkGitignoreCoverage, checkAgentRegistry, checkMemoryProficiency, checkMetricsFreshness, checkSecurityAuditFindings, checkSecondBrainModel, checkMemoryKnowledgeGraph, } from './doctor-project-checks.js';
11
11
  import { checkMonoesTools, fixMonoesTools } from './doctor-monoes-checks.js';
12
12
  function formatCheck(check) {
13
13
  const icon = check.status === 'pass' ? output.success('✓') :
@@ -65,7 +65,7 @@ export const doctorCommand = {
65
65
  checkMonograph, checkMonoesMemory, checkHelpersFresh, checkMonoesIntegration,
66
66
  checkGuidanceGates, checkAgentRegistry, checkGit, checkApiKeys,
67
67
  checkMemoryProficiency, checkMetricsFreshness, checkSecurityAuditFindings,
68
- checkSecondBrainModel,
68
+ checkSecondBrainModel, checkMemoryKnowledgeGraph,
69
69
  ];
70
70
  const codeOnlyChecks = [
71
71
  checkGitRepo, checkMcpServers,
@@ -79,7 +79,7 @@ export const doctorCommand = {
79
79
  node: checkNodeVersion, npm: checkNpmVersion, claude: checkClaudeCode,
80
80
  config: checkConfigFile, memory: checkMemoryDatabase,
81
81
  api: checkApiKeys, git: checkGit, mcp: checkMcpServers, disk: checkDiskSpace,
82
- 'second-brain': checkSecondBrainModel,
82
+ 'second-brain': checkSecondBrainModel, kg: checkMemoryKnowledgeGraph,
83
83
  typescript: checkBuildTools, monograph: checkMonograph,
84
84
  'graph-freshness': checkMonographFreshness, 'memory-pkg': checkMonoesMemory,
85
85
  helpers: checkHelpersFresh, monoes: checkMonoesIntegration,
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Hooks Worker Commands
3
- * Background worker management (@monomind/hooks workers) + Intelligence command
3
+ * Background worker management (@monoes/hooks workers) + Intelligence command
4
4
  * Extracted from hooks.ts to reduce file size.
5
5
  */
6
6
  import type { Command } from '../types.js';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Hooks Worker Commands
3
- * Background worker management (@monomind/hooks workers) + Intelligence command
3
+ * Background worker management (@monoes/hooks workers) + Intelligence command
4
4
  * Extracted from hooks.ts to reduce file size.
5
5
  */
6
6
  import { output } from '../output.js';
@@ -414,21 +414,21 @@ export const intelligenceCommand = {
414
414
  }
415
415
  };
416
416
  // =============================================================================
417
- // Worker Commands (@monomind/hooks WorkerManager)
417
+ // Worker Commands (@monoes/hooks WorkerManager)
418
418
  // =============================================================================
419
419
  // The old worker subcommands (dispatch/status/detect/cancel) dispatched to a
420
420
  // simulated in-memory tracker that fronted the deleted worker daemon. The
421
- // surviving commands run the real @monomind/hooks workers in-process.
421
+ // surviving commands run the real @monoes/hooks workers in-process.
422
422
  const workerListCommand = {
423
423
  name: 'list',
424
- description: 'List all @monomind/hooks background workers',
424
+ description: 'List all @monoes/hooks background workers',
425
425
  options: [],
426
426
  examples: [
427
427
  { command: 'monomind hooks worker list', description: 'List all workers' },
428
428
  ],
429
429
  action: async () => {
430
430
  try {
431
- const hooks = await import('@monomind/hooks');
431
+ const hooks = await import('@monoes/hooks');
432
432
  const workers = Object.values(hooks.WORKER_CONFIGS).map(w => ({
433
433
  name: w.name,
434
434
  description: w.description,
@@ -478,7 +478,7 @@ const workerRunCommand = {
478
478
  const spinner = output.createSpinner({ text: `Running ${name} worker...`, spinner: 'dots' });
479
479
  spinner.start();
480
480
  try {
481
- const hooks = await import('@monomind/hooks');
481
+ const hooks = await import('@monoes/hooks');
482
482
  if (!hooks.WORKER_CONFIGS[name]) {
483
483
  spinner.fail(`Unknown worker: ${name}`);
484
484
  output.writeln(`Available workers: ${Object.keys(hooks.WORKER_CONFIGS).join(', ')}`);
@@ -516,7 +516,7 @@ const workerRunCommand = {
516
516
  // Worker parent command
517
517
  export const workerCommand = {
518
518
  name: 'worker',
519
- description: 'Background worker management (@monomind/hooks workers, run in-process)',
519
+ description: 'Background worker management (@monoes/hooks workers, run in-process)',
520
520
  subcommands: [
521
521
  workerListCommand,
522
522
  workerRunCommand,
@@ -528,7 +528,7 @@ export const workerCommand = {
528
528
  ],
529
529
  action: async () => {
530
530
  output.writeln();
531
- output.writeln(output.bold('Background Worker System (@monomind/hooks)'));
531
+ output.writeln(output.bold('Background Worker System (@monoes/hooks)'));
532
532
  output.writeln();
533
533
  output.writeln('Workers run in-process and write their results to .monomind/metrics/.');
534
534
  output.writeln('The metrics-producing workers (ddd, map, audit, optimize, consolidate)');
@@ -215,7 +215,7 @@ const initAction = async (ctx) => {
215
215
  // Audit" as unconfigured, even though nothing is actually broken.
216
216
  try {
217
217
  output.writeln(output.dim(' Seeding worker metrics...'));
218
- const hooksMod = await import('@monomind/hooks').catch(() => null);
218
+ const hooksMod = await import('@monoes/hooks').catch(() => null);
219
219
  if (hooksMod && hooksMod.createWorkerManager) {
220
220
  const manager = hooksMod.createWorkerManager(ctx.cwd);
221
221
  await manager.ensureMetricsDir();
@@ -236,7 +236,7 @@ const initAction = async (ctx) => {
236
236
  }
237
237
  }
238
238
  else {
239
- output.writeln(output.dim(' Worker metrics seeding skipped (@monomind/hooks unavailable)'));
239
+ output.writeln(output.dim(' Worker metrics seeding skipped (@monoes/hooks unavailable)'));
240
240
  }
241
241
  }
242
242
  catch (e) {
@@ -73,10 +73,21 @@ const runAction = async (ctx) => {
73
73
  const { buildRolePrompt } = await import('../orgrt/session.js');
74
74
  const roster = def.roles.map(r => r.id);
75
75
  const perRole = Math.floor((def.run_config.budget_tokens ?? 1_000_000) / def.roles.length);
76
+ // Same KG entity glossary the live daemon injects — the preview must
77
+ // match what sessions actually receive.
78
+ const glossary = await (async () => {
79
+ try {
80
+ const kg = await import('../memory/memory-kg.js');
81
+ return await kg.kgGlossary({ dbPath: join(process.cwd(), '.monomind', 'org-memory') });
82
+ }
83
+ catch {
84
+ return [];
85
+ }
86
+ })();
76
87
  log(output.info(`DRY RUN — org ${name}: ${def.roles.length} roles, ${perRole} tokens each, goal: ${taskFlag ?? def.goal}`));
77
88
  for (const role of def.roles) {
78
89
  log(output.info(`\n─── ${role.id} (${role.title || role.type})${role.adapter_config?.model ? ` [${role.adapter_config.model}]` : ''} ───`));
79
- log(buildRolePrompt(role, { name: def.name, goal: taskFlag ?? def.goal }, roster));
90
+ log(buildRolePrompt(role, { name: def.name, goal: taskFlag ?? def.goal }, roster, glossary));
80
91
  }
81
92
  return { success: true, message: 'dry run complete — no sessions started' };
82
93
  }
@@ -107,15 +118,20 @@ const runAction = async (ctx) => {
107
118
  return { success: false, message: 'org start failed' };
108
119
  }
109
120
  log(output.info(`org ${name} running (${running.def.roles.length} agents, run ${running.run}) — Ctrl-C or "monomind org stop ${name}" to stop`));
110
- // stopfile poll lets `org stop` work from another terminal;
111
- // clear any stale stopfile from a previous run before polling
121
+ // stopfile poll lets `org stop` work from another terminal; the daemon can
122
+ // also stop the org itself (boss called org_complete, or the idle watchdog
123
+ // fired) — detect that via getOrg() so the CLI exits instead of polling a
124
+ // stopfile forever after a finished run. Clear any stale stopfile from a
125
+ // previous run before polling.
112
126
  clearStopfile(ctx.cwd, name);
113
127
  const stopfile = join(ctx.cwd, ORG_DIR, name, 'stop');
114
128
  await new Promise(resolvePromise => {
115
- const iv = setInterval(() => { if (existsSync(stopfile)) {
116
- clearInterval(iv);
117
- resolvePromise();
118
- } }, 2000);
129
+ const iv = setInterval(() => {
130
+ if (existsSync(stopfile) || !daemon.getOrg(name)) {
131
+ clearInterval(iv);
132
+ resolvePromise();
133
+ }
134
+ }, 2000);
119
135
  process.once('SIGINT', () => { clearInterval(iv); resolvePromise(); });
120
136
  process.once('SIGTERM', () => { clearInterval(iv); resolvePromise(); });
121
137
  });
@@ -291,7 +307,18 @@ const listAction = async (ctx) => {
291
307
  const sched = def.schedule ? `every ${def.schedule}` : 'manual';
292
308
  let status = 'never run';
293
309
  try {
294
- status = JSON.parse(readFileSync(join(orgsDir, stem, 'runtime.json'), 'utf8')).status ?? status;
310
+ const rt = JSON.parse(readFileSync(join(orgsDir, stem, 'runtime.json'), 'utf8'));
311
+ status = rt.status ?? status;
312
+ // Same liveness rule as `org status`: a 'running' record with a dead
313
+ // pid is a crashed daemon, not a running org — list must not disagree.
314
+ if (status === 'running' && rt.pid) {
315
+ try {
316
+ process.kill(rt.pid, 0);
317
+ }
318
+ catch {
319
+ status = 'crashed';
320
+ }
321
+ }
295
322
  }
296
323
  catch { /* no runtime state yet */ }
297
324
  const goal = typeof def.goal === 'string' && def.goal
@@ -381,7 +408,16 @@ const markCompleteAction = async (ctx) => {
381
408
  }
382
409
  catch { /* default */ }
383
410
  try {
384
- const res = await fetch(`${ctrlUrl}/api/orgs/${encodeURIComponent(orgName)}/mark-complete`, { method: 'POST' });
411
+ // All dashboard /api routes are auth-gated attach the local session token.
412
+ let auth = '';
413
+ try {
414
+ auth = readFileSync(join(cwd, '.monomind', 'dashboard-token'), 'utf8').trim();
415
+ }
416
+ catch { /* server may be pre-auth */ }
417
+ const res = await fetch(`${ctrlUrl}/api/orgs/${encodeURIComponent(orgName)}/mark-complete`, {
418
+ method: 'POST',
419
+ headers: auth ? { 'x-monomind-token': auth } : {},
420
+ });
385
421
  const body = await res.json().catch(() => ({}));
386
422
  if (!res.ok) {
387
423
  log(output.error(`mark-complete failed (${res.status}): ${body.error || 'unknown error'}`));
@@ -489,6 +525,70 @@ export const orgCommand = {
489
525
  return reportAction(ctx, v.name);
490
526
  },
491
527
  },
528
+ {
529
+ name: 'memory', description: 'Inspect an org\'s cross-run memory and knowledge graph (stats | search <query> | rules | rollback <run-ref>)',
530
+ examples: [
531
+ { command: 'monomind org memory growth stats', description: 'KG size and namespaces' },
532
+ { command: 'monomind org memory growth search "launch checklist"', description: 'Search org memory + KG' },
533
+ { command: 'monomind org memory growth rollback run:m4x2', description: 'Delete everything one run wrote to the KG' },
534
+ ],
535
+ action: async (ctx) => {
536
+ const v = validateOrgName(ctx.args[0]);
537
+ if (!v.ok)
538
+ return v.result;
539
+ const sub = String(ctx.args[1] ?? 'stats');
540
+ const { join } = await import('node:path');
541
+ const dbPath = join(process.cwd(), '.monomind', 'org-memory');
542
+ const kg = await import('../memory/memory-kg.js');
543
+ const bridge = await import('../memory/memory-bridge.js');
544
+ try {
545
+ if (sub === 'stats') {
546
+ const [stats, glossary, backend] = await Promise.all([
547
+ kg.kgStats({ dbPath }), kg.kgGlossary({ dbPath, limit: 15 }), bridge.bridgeGetBackendStats(dbPath),
548
+ ]);
549
+ log(output.info(`Knowledge graph: ${stats.nodes} entities, ${stats.edges} relations, ${stats.rules} rules`));
550
+ if (glossary.length)
551
+ log(output.info(`Top entities: ${glossary.join(', ')}`));
552
+ const byNs = backend?.entriesByNamespace ?? {};
553
+ for (const [ns, count] of Object.entries(byNs))
554
+ log(output.info(` ${ns}: ${count} entries`));
555
+ return { success: true, message: 'org memory stats', data: { ...stats, namespaces: byNs } };
556
+ }
557
+ if (sub === 'search') {
558
+ const q = ctx.args.slice(2).join(' ');
559
+ if (!q)
560
+ return { success: false, message: 'usage: org memory <org> search <query>' };
561
+ const [mem, graph] = await Promise.all([
562
+ bridge.bridgeSearchEntries({ query: q, namespace: `org:${v.name}`, limit: 5, dbPath }),
563
+ kg.kgSearch({ query: q, dbPath, limit: 8 }),
564
+ ]);
565
+ for (const r of mem?.results ?? [])
566
+ log(output.info(`[${r.score.toFixed(2)}] ${r.key}: ${r.content.slice(0, 160)}`));
567
+ if (graph.context)
568
+ log(output.info(`\nKnowledge graph:\n${graph.context}`));
569
+ return { success: true, message: `${(mem?.results ?? []).length} memories, ${graph.triplets.length} triplets` };
570
+ }
571
+ if (sub === 'rules') {
572
+ const rules = await kg.kgListRules({ dbPath, limit: 50 });
573
+ for (const r of rules)
574
+ log(output.info(`- ${r.rule.slice(0, 200)}`));
575
+ return { success: true, message: `${rules.length} rules`, data: { rules } };
576
+ }
577
+ if (sub === 'rollback') {
578
+ const ref = ctx.args[2];
579
+ if (!ref)
580
+ return { success: false, message: 'usage: org memory <org> rollback <origin-ref> (e.g. run:m4x2)' };
581
+ const res = await kg.kgRollback({ originRef: ref, dbPath });
582
+ log(output.info(`Rolled back ${ref}: ${res.deleted} deleted, ${res.retained} retained (shared with other origins)`));
583
+ return { success: res.success, message: `rollback ${ref}`, data: res };
584
+ }
585
+ return { success: false, message: `unknown subcommand "${sub}" — use stats | search | rules | rollback` };
586
+ }
587
+ finally {
588
+ await bridge.shutdownBridge().catch(() => { });
589
+ }
590
+ },
591
+ },
492
592
  {
493
593
  name: 'questions', description: 'List pending ask_human questions from an org\'s agents',
494
594
  options: [{ name: 'all', description: 'Include answered questions', type: 'boolean' }],
@@ -49,7 +49,7 @@ export declare class CLI {
49
49
  private loadConfig;
50
50
  /**
51
51
  * Initialize optional subsystems at startup (non-blocking, all failures are silent).
52
- * Starts the @monomind/hooks WorkerManager, wires SwarmCheckpointer, and builds
52
+ * Starts the @monoes/hooks WorkerManager, wires SwarmCheckpointer, and builds
53
53
  * the unified agent registry so that packages/@monomind/* actually contribute
54
54
  * to the live runtime.
55
55
  */
@@ -458,12 +458,12 @@ export class CLI {
458
458
  }
459
459
  /**
460
460
  * Initialize optional subsystems at startup (non-blocking, all failures are silent).
461
- * Starts the @monomind/hooks WorkerManager, wires SwarmCheckpointer, and builds
461
+ * Starts the @monoes/hooks WorkerManager, wires SwarmCheckpointer, and builds
462
462
  * the unified agent registry so that packages/@monomind/* actually contribute
463
463
  * to the live runtime.
464
464
  */
465
465
  async initSubsystems() {
466
- // NOTE: the @monomind/hooks WorkerManager is intentionally NOT started
466
+ // NOTE: the @monoes/hooks WorkerManager is intentionally NOT started
467
467
  // here. Workers run from the session-restore hook (6h staleness gate) and
468
468
  // on demand via `monomind hooks worker run <name>`. Starting it on every
469
469
  // CLI invocation scheduled staggered 1-10s timers that usually died with
@@ -510,7 +510,7 @@ export class CLI {
510
510
  // could skip the warning even when the underlying issue was present. Doctor
511
511
  // runs it synchronously within its own check pass instead, so it's always
512
512
  // visible and itemized when you actually look for it.
513
- // NOTE: Semantic routing (@monomind/routing) is constructed on-demand by
513
+ // NOTE: Semantic routing (@monoes/routing) is constructed on-demand by
514
514
  // its consumers — `monomind route semantic` (commands/route.ts) and the
515
515
  // `hooks_route_semantic` MCP tool (mcp-tools/hooks-routing.ts), both via
516
516
  // routing/route-layer-factory.ts. `monomind agent` has no --task flag —
@@ -22,9 +22,9 @@ function detectOptionalPackages() {
22
22
  }
23
23
  };
24
24
  _availabilityCache = {
25
- hooks: resolvable('@monomind/hooks'),
26
- mcp: resolvable('@monomind/mcp'),
27
- routing: resolvable('@monomind/routing'),
25
+ hooks: resolvable('@monoes/hooks'),
26
+ mcp: resolvable('@monoes/mcp'),
27
+ routing: resolvable('@monoes/routing'),
28
28
  monofence: resolvable('monofence-ai'),
29
29
  };
30
30
  return _availabilityCache;
@@ -242,7 +242,7 @@ function hooksSystem() {
242
242
  | \`intelligence\` | Pattern-learning intelligence system |
243
243
  | \`worker\` | Background worker management |
244
244
 
245
- ### Background Workers (@monomind/hooks, run in-process)${unavailNote(avail.hooks)}
245
+ ### Background Workers (@monoes/hooks, run in-process)${unavailNote(avail.hooks)}
246
246
 
247
247
  | Worker | Priority | Description |
248
248
  |--------|----------|-------------|
@@ -255,7 +255,7 @@ function hooksSystem() {
255
255
  | \`performance\`, \`health\`, \`swarm\`, \`git\`, \`learning\`, \`adr\`, \`patterns\`, \`cache\`, \`progress\` | various | See \`hooks worker list\` for the full 15 |
256
256
 
257
257
  Metrics-producing workers refresh at session start when output is >6h old.
258
- ${avail.hooks ? '' : '\n> \\@monomind/hooks is not resolvable in this install — background workers will fail to load (see `hooks worker list`). This is an install/publish gap, not a project misconfiguration.\n'}
258
+ ${avail.hooks ? '' : '\n> \\@monoes/hooks is not resolvable in this install — background workers will fail to load (see `hooks worker list`). This is an install/publish gap, not a project misconfiguration.\n'}
259
259
  \`\`\`bash
260
260
  npx monomind@latest hooks pre-task --description "[task]"
261
261
  npx monomind@latest hooks post-task --task-id "[id]" --success true
@@ -75,9 +75,11 @@ const SKILLS_MAP = {
75
75
  'monolean-help',
76
76
  'hive-mind-advanced',
77
77
  // The mastermind command files installed by init invoke
78
- // Skill("mastermind-skills:*") at runtime — this directory must ship
79
- // with core or those references break in user projects.
80
- 'mastermind-skills',
78
+ // Skill("mastermind-<name>") at runtime — one top-level
79
+ // mastermind-<name>/SKILL.md directory per skill. The glob expands in
80
+ // copySkills against the source tree, so newly added mastermind skills
81
+ // ship automatically; without them those references break in user projects.
82
+ 'mastermind-*',
81
83
  ],
82
84
  browser: ['agent-browser-testing'],
83
85
  // NOTE: memory-toolkit and github-toolkit are single consolidated skills
@@ -981,6 +983,15 @@ async function copySkills(targetDir, options, result) {
981
983
  result.errors.push('Could not find source skills directory');
982
984
  return;
983
985
  }
986
+ // Expand glob-style entries ('mastermind-*') against the source tree.
987
+ // Only directories that actually contain a SKILL.md count — this also
988
+ // filters exFAT AppleDouble junk (._mastermind-…).
989
+ for (const entry of skillsToCopy.filter(e => e.endsWith('*'))) {
990
+ const prefix = entry.slice(0, -1);
991
+ skillsToCopy.splice(skillsToCopy.indexOf(entry), 1);
992
+ skillsToCopy.push(...fs.readdirSync(sourceSkillsDir).filter(n => n.startsWith(prefix) &&
993
+ fs.existsSync(path.join(sourceSkillsDir, n, 'SKILL.md'))));
994
+ }
984
995
  // Remove stale skill directories no longer in the current version's map
985
996
  const knownSkills = new Set([...new Set(skillsToCopy)]);
986
997
  if (fs.existsSync(targetSkillsDir)) {
@@ -1582,7 +1593,7 @@ async function writeCapabilitiesDoc(targetDir, options, result) {
1582
1593
  result.skipped.push('.monomind/CAPABILITIES.md');
1583
1594
  return;
1584
1595
  }
1585
- const hooksAvailable = _isOptionalPackageResolvable('@monomind/hooks');
1596
+ const hooksAvailable = _isOptionalPackageResolvable('@monoes/hooks');
1586
1597
  const capabilities = `# Monomind - Complete Capabilities Reference
1587
1598
  > Generated: ${new Date().toISOString()}
1588
1599
  > Full documentation: https://github.com/monoes/monomind
@@ -1743,7 +1754,7 @@ npx monomind@latest doctor --fix
1743
1754
 
1744
1755
  ## Hooks System
1745
1756
 
1746
- ### 29 Available Hook Subcommands${hooksAvailable ? '' : ' — background workers unavailable in this install (@monomind/hooks did not resolve)'}
1757
+ ### 29 Available Hook Subcommands${hooksAvailable ? '' : ' — background workers unavailable in this install (@monoes/hooks did not resolve)'}
1747
1758
 
1748
1759
  #### Core Hooks (6)
1749
1760
  | Hook | Description |
@@ -1779,7 +1790,7 @@ npx monomind@latest doctor --fix
1779
1790
  | \`coverage-suggest\` | Improvement suggestions |
1780
1791
  | \`coverage-gaps\` | Gap analysis |
1781
1792
 
1782
- ### 15 Background Workers (@monomind/hooks, run in-process)
1793
+ ### 15 Background Workers (@monoes/hooks, run in-process)
1783
1794
  | Worker | Priority | Purpose |
1784
1795
  |--------|----------|---------|
1785
1796
  | \`performance\` | normal | Benchmark performance |
@@ -19,6 +19,8 @@ export interface BatchIngestResult {
19
19
  results: IngestResult[];
20
20
  }
21
21
  export interface KnowledgeExcerpt {
22
+ /** Memory entry id — pass back to memory_feedback/bridgeApplyFeedback to rate usefulness. */
23
+ id: string;
22
24
  filePath: string;
23
25
  text: string;
24
26
  similarity: number;
@@ -312,7 +312,9 @@ export async function ingestDirectory(dirPath, scope = 'shared', opts) {
312
312
  return;
313
313
  }
314
314
  for (const entry of entries) {
315
- if (entry.name.startsWith('.') || entry.name.startsWith('._'))
315
+ // Skip dotfiles/dot-dirs (incl. exFAT `._*` junk) — except `.monodesign`,
316
+ // whose critique snapshots are markdown worth surfacing in the Second Brain.
317
+ if (entry.name.startsWith('.') && entry.name !== '.monodesign')
316
318
  continue;
317
319
  const full = path.join(dir, entry.name);
318
320
  if (entry.isDirectory()) {
@@ -390,6 +392,7 @@ export async function searchKnowledge(query, opts) {
390
392
  // content, and goes empty when a re-ingested file's hash changed.
391
393
  const srcTag = (r.tags ?? []).find((tag) => tag.startsWith('src:'));
392
394
  return {
395
+ id: r.id,
393
396
  filePath: srcTag ? srcTag.slice(4) : hashToFile.get(hash) ?? '',
394
397
  text: r.content,
395
398
  similarity: r.score + t.boost,
@@ -677,8 +677,8 @@ export class MCPServerManager extends EventEmitter {
677
677
  }
678
678
  // Dynamically import the MCP server package
679
679
  // FIX for issue #942: Use proper package import instead of broken relative path
680
- // @ts-ignore — @monomind/mcp is an optional peer resolved at runtime
681
- const { createMCPServer } = await import('@monomind/mcp');
680
+ // @ts-ignore — @monoes/mcp is an optional peer resolved at runtime
681
+ const { createMCPServer } = await import('@monoes/mcp');
682
682
  const logger = {
683
683
  debug: (msg, data) => this.emit('log', { level: 'debug', msg, data }),
684
684
  info: (msg, data) => this.emit('log', { level: 'info', msg, data }),
@@ -4,7 +4,7 @@
4
4
  * intelligence stats/learn/attention, and model routing.
5
5
  * Extracted from hooks-tools.ts.
6
6
  * The simulated worker dispatch/status/detect/cancel tools were deleted with
7
- * the worker daemon -- real workers live in @monomind/hooks (`hooks worker run`).
7
+ * the worker daemon -- real workers live in @monoes/hooks (`hooks worker run`).
8
8
  */
9
9
  import { type MCPTool } from './types.js';
10
10
  export declare const hooksIntelligenceReset: MCPTool;
@@ -4,7 +4,7 @@
4
4
  * intelligence stats/learn/attention, and model routing.
5
5
  * Extracted from hooks-tools.ts.
6
6
  * The simulated worker dispatch/status/detect/cancel tools were deleted with
7
- * the worker daemon -- real workers live in @monomind/hooks (`hooks worker run`).
7
+ * the worker daemon -- real workers live in @monoes/hooks (`hooks worker run`).
8
8
  */
9
9
  import { existsSync, readdirSync, unlinkSync } from 'fs';
10
10
  import { join } from 'path';