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
@@ -410,7 +410,7 @@ export const hooksRoute = {
410
410
  };
411
411
  export const hooksRouteSemantic = {
412
412
  name: 'hooks_route_semantic',
413
- description: 'Route a task using the @monomind/routing package: keyword pre-filter, then real-embedding ' +
413
+ description: 'Route a task using the @monoes/routing package: keyword pre-filter, then real-embedding ' +
414
414
  'cosine-similarity matching (isolated worker), with a headless Claude (Haiku) fallback below ' +
415
415
  'the confidence threshold. Slower and more precise than hooks_route — use for ambiguous or ' +
416
416
  'highly specialized tasks (e.g. Solidity, game engines, embedded, DevOps) where keyword matching ' +
@@ -630,7 +630,7 @@ export const hooksPreTask = {
630
630
  }
631
631
  catch { /* non-critical */ }
632
632
  // NOTE: a LATS planning pass used to be attempted here via
633
- // `import('@monomind/hooks').buildLATSPlan` — that function never existed
633
+ // `import('@monoes/hooks').buildLATSPlan` — that function never existed
634
634
  // in the package (the planning module was removed), so the import failed
635
635
  // silently on every call. The dead block was removed.
636
636
  let plan;
@@ -39,7 +39,7 @@ export const hooksTools = [
39
39
  hooksModelRoute,
40
40
  hooksModelOutcome,
41
41
  hooksModelStats,
42
- // NOTE: the "advanced" tools formerly re-exported from @monomind/hooks/mcp
42
+ // NOTE: the "advanced" tools formerly re-exported from @monoes/hooks/mcp
43
43
  // (hooks/route-advanced, hooks/evo-agentx, hooks/rlvr-outcome, hooks/statusline,
44
44
  // trace + HIL checkpoint tools) and the hooks_synthesis-* tools were removed.
45
45
  // Their backing modules (AFLOW/LATS/GEPA/ReasoningBank) had already been
@@ -71,7 +71,7 @@ const knowledgeIngest = {
71
71
  };
72
72
  const knowledgeSearch = {
73
73
  name: 'knowledge_search',
74
- description: 'Semantic search over the Second Brain knowledge base. Returns relevant document excerpts ranked by similarity.',
74
+ description: 'Search the Second Brain. A rule-based router picks the retrieval surfaces per query — document excerpts, knowledge-graph triplets, distilled rules, past memories — and fuses them by reciprocal rank. Excerpt ids can be rated via memory_feedback.',
75
75
  category: 'knowledge',
76
76
  tags: ['documents', 'search', 'second-brain', 'rag'],
77
77
  inputSchema: {
@@ -81,21 +81,52 @@ const knowledgeSearch = {
81
81
  scope: { type: 'string', description: 'Knowledge scope (default: shared)' },
82
82
  limit: { type: 'number', description: 'Max results (default: 10)' },
83
83
  minScore: { type: 'number', description: 'Minimum similarity threshold (default: 0.3)' },
84
+ surfaces: { type: 'array', items: { type: 'string' }, description: "Override routing: any of 'chunks','kg','rules','memory'" },
84
85
  },
85
86
  required: ['query'],
86
87
  },
87
88
  handler: async (input) => {
88
89
  const { searchKnowledge } = await import('../knowledge/document-pipeline.js');
90
+ const { routeQuery, rrfFuse } = await import('../memory/query-router.js');
89
91
  try {
90
- const excerpts = await searchKnowledge(String(input.query), {
91
- scope: input.scope ? String(input.scope) : undefined,
92
- limit: input.limit ? Number(input.limit) : undefined,
93
- minScore: input.minScore ? Number(input.minScore) : undefined,
94
- });
92
+ const query = String(input.query);
93
+ const limit = input.limit ? Number(input.limit) : 10;
94
+ const route = routeQuery(query);
95
+ const surfaces = Array.isArray(input.surfaces) && input.surfaces.length
96
+ ? input.surfaces
97
+ : (route.confident ? route.surfaces : ['chunks', ...route.surfaces.filter(s => s !== 'chunks')]);
98
+ const bridge = await import('../memory/memory-bridge.js');
99
+ const kg = await import('../memory/memory-kg.js');
100
+ const [excerpts, graph, rules, memories] = await Promise.all([
101
+ surfaces.includes('chunks')
102
+ ? searchKnowledge(query, {
103
+ scope: input.scope ? String(input.scope) : undefined,
104
+ limit,
105
+ minScore: input.minScore ? Number(input.minScore) : undefined,
106
+ })
107
+ : [],
108
+ surfaces.includes('kg') ? kg.kgSearch({ query, limit: 6 }) : null,
109
+ surfaces.includes('rules') ? bridge.bridgeSearchEntries({ query, namespace: 'rules', limit: 3, threshold: 0.35 }) : null,
110
+ surfaces.includes('memory') ? bridge.bridgeSearchEntries({ query, namespace: 'patterns', limit: 3 }) : null,
111
+ ]);
112
+ // Rank-fuse heterogeneous lists (raw scores aren't comparable).
113
+ const fused = rrfFuse([
114
+ excerpts.map(e => ({ id: e.id || `${e.filePath}#${e.chunkIndex}`, kind: 'excerpt', ...e })),
115
+ (graph?.triplets ?? []).map((t, i) => ({ id: `kg:${i}:${t.source}|${t.relation}|${t.target}`, kind: 'triplet', ...t })),
116
+ (rules?.results ?? []).map(r => ({ id: r.id, kind: 'rule', key: r.key, text: r.content, importance: 0.7 })),
117
+ (memories?.results ?? []).map(r => ({ id: r.id, kind: 'memory', key: r.key, text: r.content })),
118
+ ], limit);
95
119
  return {
96
120
  content: [{
97
121
  type: 'text',
98
- text: JSON.stringify({ success: true, count: excerpts.length, excerpts }),
122
+ text: JSON.stringify({
123
+ success: true,
124
+ count: fused.length,
125
+ routing: { surfaces, confident: route.confident },
126
+ results: fused,
127
+ // Back-compat: excerpt-only view for existing consumers.
128
+ excerpts,
129
+ }),
99
130
  }],
100
131
  };
101
132
  }
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Memory MCP Tools — Phase 6 of ADR-053
3
3
  *
4
- * Exposes Memory backend operations as MCP tools.
5
- * Provides direct access to ReasoningBank, CausalGraph, SkillLibrary,
6
- * AttestationLog, and bridge health through the MCP protocol.
4
+ * Exposes Memory backend operations as MCP tools: pattern store/search,
5
+ * usage-weighted feedback (EWMA), the conversation knowledge graph
6
+ * (memory_kg_*), session records, weight-aware GC, and bridge health.
7
7
  *
8
8
  * Security: All handlers validate input types, enforce length bounds,
9
9
  * and sanitize error messages before returning to MCP callers.
@@ -17,6 +17,11 @@ export declare const memoryPatternStore: MCPTool;
17
17
  export declare const memoryPatternSearch: MCPTool;
18
18
  export declare const memoryFeedback: MCPTool;
19
19
  export declare const memoryCausalEdge: MCPTool;
20
+ export declare const memoryKgIngest: MCPTool;
21
+ export declare const memoryKgSearch: MCPTool;
22
+ export declare const memoryKgRollback: MCPTool;
23
+ export declare const memoryKgConsolidate: MCPTool;
24
+ export declare const memoryKgStats: MCPTool;
20
25
  export declare const memoryRoute: MCPTool;
21
26
  export declare const memorySessionStart: MCPTool;
22
27
  export declare const memorySessionEnd: MCPTool;
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Memory MCP Tools — Phase 6 of ADR-053
3
3
  *
4
- * Exposes Memory backend operations as MCP tools.
5
- * Provides direct access to ReasoningBank, CausalGraph, SkillLibrary,
6
- * AttestationLog, and bridge health through the MCP protocol.
4
+ * Exposes Memory backend operations as MCP tools: pattern store/search,
5
+ * usage-weighted feedback (EWMA), the conversation knowledge graph
6
+ * (memory_kg_*), session records, weight-aware GC, and bridge health.
7
7
  *
8
8
  * Security: All handlers validate input types, enforce length bounds,
9
9
  * and sanitize error messages before returning to MCP callers.
@@ -107,7 +107,7 @@ export const memoryControllers = {
107
107
  // ===== memory_pattern_store — Store via ReasoningBank =====
108
108
  export const memoryPatternStore = {
109
109
  name: 'memory_pattern-store',
110
- description: 'Store a pattern directly via ReasoningBank controller',
110
+ description: 'Store a reusable pattern (embedded, semantically searchable) in the patterns namespace',
111
111
  inputSchema: {
112
112
  type: 'object',
113
113
  properties: {
@@ -149,7 +149,7 @@ export const memoryPatternStore = {
149
149
  // ===== memory_pattern_search — Search via ReasoningBank =====
150
150
  export const memoryPatternSearch = {
151
151
  name: 'memory_pattern-search',
152
- description: 'Search patterns via ReasoningBank controller with BM25+semantic hybrid',
152
+ description: 'Search stored patterns semantic when the local embedding model is available, keyword otherwise',
153
153
  inputSchema: {
154
154
  type: 'object',
155
155
  properties: {
@@ -193,13 +193,14 @@ export const memoryPatternSearch = {
193
193
  // ===== memory_feedback — Record task feedback =====
194
194
  export const memoryFeedback = {
195
195
  name: 'memory_feedback',
196
- description: 'Record task feedback for learning via LearningSystem + ReasoningBank controllers',
196
+ description: 'Rate the usefulness of memory entries that produced an answer. Pass the entryIds returned by a prior search — their feedback_weight is EWMA-updated and blended into future ranking. Idempotent per taskId.',
197
197
  inputSchema: {
198
198
  type: 'object',
199
199
  properties: {
200
- taskId: { type: 'string', description: 'Task identifier' },
200
+ taskId: { type: 'string', description: 'Task identifier (also the idempotency key — the same taskId never double-applies)' },
201
+ entryIds: { type: 'array', items: { type: 'string' }, description: 'Memory entry IDs (from search results) that were used for this task' },
201
202
  success: { type: 'boolean', description: 'Whether task succeeded' },
202
- quality: { type: 'number', description: 'Quality score (0-1)' },
203
+ quality: { type: 'number', description: 'Quality score (0-1); defaults from success (0.9/0.2)' },
203
204
  agent: { type: 'string', description: 'Agent that performed the task' },
204
205
  },
205
206
  required: ['taskId'],
@@ -210,14 +211,28 @@ export const memoryFeedback = {
210
211
  if (!taskId)
211
212
  return { success: false, error: 'taskId is required (non-empty string, max 500 chars)' };
212
213
  const bridge = await getBridge();
214
+ // Closed loop: apply the rating to the entries that were actually used.
215
+ const entryIds = Array.isArray(params.entryIds)
216
+ ? params.entryIds.filter((x) => typeof x === 'string' && x.length > 0 && x.length <= 500).slice(0, 100)
217
+ : [];
218
+ let weighting = null;
219
+ if (entryIds.length) {
220
+ const score = typeof params.quality === 'number' && Number.isFinite(params.quality)
221
+ ? Math.max(0, Math.min(1, params.quality))
222
+ : (params.success === true ? 0.9 : 0.2);
223
+ weighting = await bridge.bridgeApplyFeedback({ entryIds, score, ledgerKey: taskId });
224
+ }
225
+ // Keep the historical feedback-event record alongside the weighting.
213
226
  const result = await bridge.bridgeRecordFeedback({
214
227
  taskType: validateString(params.agent, 'agent', 200) ?? 'task',
215
228
  action: taskId,
216
229
  outcome: params.success === true ? 'success' : 'failure',
217
230
  confidence: validateScore(params.quality, 0.85),
218
- metadata: { taskId },
231
+ metadata: { taskId, entryIds },
219
232
  });
220
- return result ?? { success: false, error: 'Memory bridge not available. Use memory_store/memory_search instead.' };
233
+ if (!result)
234
+ return { success: false, error: 'Memory bridge not available. Use memory_store/memory_search instead.' };
235
+ return { ...result, weighting };
221
236
  }
222
237
  catch (error) {
223
238
  return { success: false, error: sanitizeError(error) };
@@ -227,14 +242,15 @@ export const memoryFeedback = {
227
242
  // ===== memory_causal_edge — Record causal relationships =====
228
243
  export const memoryCausalEdge = {
229
244
  name: 'memory_causal-edge',
230
- description: 'Record a causal edge between two memory entries via CausalMemoryGraph',
245
+ description: 'Record a causal relationship between two named things as a real knowledge-graph edge (traversable via memory_kg_search)',
231
246
  inputSchema: {
232
247
  type: 'object',
233
248
  properties: {
234
- sourceId: { type: 'string', description: 'Source entry ID' },
235
- targetId: { type: 'string', description: 'Target entry ID' },
236
- relation: { type: 'string', description: 'Relationship type (e.g., caused, preceded, succeeded)' },
249
+ sourceId: { type: 'string', description: 'Source entity name (or entry ID)' },
250
+ targetId: { type: 'string', description: 'Target entity name (or entry ID)' },
251
+ relation: { type: 'string', description: 'Relationship type (e.g., causes, preceded, fixed_by)' },
237
252
  weight: { type: 'number', description: 'Edge weight (0-1)' },
253
+ description: { type: 'string', description: 'One-sentence concrete fact for this edge' },
238
254
  },
239
255
  required: ['sourceId', 'targetId', 'relation'],
240
256
  },
@@ -249,14 +265,151 @@ export const memoryCausalEdge = {
249
265
  return { success: false, error: 'targetId is required (non-empty string)' };
250
266
  if (!relation)
251
267
  return { success: false, error: 'relation is required (non-empty string)' };
252
- const bridge = await getBridge();
253
- const result = await bridge.bridgeRecordCausalEdge({
254
- sourceId,
255
- targetId,
256
- relation,
257
- strength: typeof params.weight === 'number' ? validateScore(params.weight, 0.5) : undefined,
268
+ const kg = await import('../memory/memory-kg.js');
269
+ const result = await kg.kgIngest({
270
+ nodes: [{ name: sourceId }, { name: targetId }],
271
+ edges: [{ source: sourceId, target: targetId, relation, description: validateString(params.description, 'description', 2000) ?? undefined }],
272
+ originRef: 'causal-edge-tool',
258
273
  });
259
- return result ?? { success: false, error: 'Memory bridge not available. Use memory_store/memory_search instead.' };
274
+ return result;
275
+ }
276
+ catch (error) {
277
+ return { success: false, error: sanitizeError(error) };
278
+ }
279
+ },
280
+ };
281
+ // ===== memory_kg_* — Conversation/org knowledge graph =====
282
+ export const memoryKgIngest = {
283
+ name: 'memory_kg_ingest',
284
+ description: 'Merge extracted entities/relations (and optionally distilled rules) into the persistent knowledge graph. Same-name entities merge idempotently. Call with LLM-extracted nodes/edges — basic types ("Person", "Tool"), coreference-resolved fullest names, snake_case relations, one-sentence edge facts. Pass rawText instead to use the lower-trust regex extractor.',
285
+ inputSchema: {
286
+ type: 'object',
287
+ properties: {
288
+ nodes: { type: 'array', items: { type: 'object' }, description: 'Entities: [{name, type?, description?, nodeSet?}]' },
289
+ edges: { type: 'array', items: { type: 'object' }, description: 'Relations: [{source, target, relation, description?}]' },
290
+ rules: { type: 'array', items: { type: 'object' }, description: 'Distilled durable rules: [{rule, context?}] — deduped semantically against existing rules' },
291
+ rawText: { type: 'string', description: 'Fallback: raw text for regex-based extraction (no LLM)' },
292
+ originRef: { type: 'string', description: 'Provenance ref (session/run/doc id) — enables memory_kg_rollback' },
293
+ },
294
+ required: ['originRef'],
295
+ },
296
+ handler: async (params) => {
297
+ try {
298
+ const originRef = validateString(params.originRef, 'originRef', 500);
299
+ if (!originRef)
300
+ return { success: false, error: 'originRef is required' };
301
+ const kg = await import('../memory/memory-kg.js');
302
+ let nodes = Array.isArray(params.nodes) ? params.nodes : [];
303
+ let edges = Array.isArray(params.edges) ? params.edges : [];
304
+ if (!nodes.length && !edges.length && typeof params.rawText === 'string' && params.rawText.trim()) {
305
+ const extracted = kg.heuristicExtract(params.rawText, { sourceName: originRef });
306
+ nodes = extracted.nodes;
307
+ edges = extracted.edges;
308
+ }
309
+ const graph = (nodes.length || edges.length)
310
+ ? await kg.kgIngest({ nodes, edges, originRef })
311
+ : { success: true, nodesAdded: 0, nodesMerged: 0, edgesAdded: 0, edgesMerged: 0 };
312
+ const rules = Array.isArray(params.rules) && params.rules.length
313
+ ? await kg.kgIngestRules({ rules: params.rules, originRef })
314
+ : null;
315
+ return { ...graph, rules };
316
+ }
317
+ catch (error) {
318
+ return { success: false, error: sanitizeError(error) };
319
+ }
320
+ },
321
+ };
322
+ export const memoryKgSearch = {
323
+ name: 'memory_kg_search',
324
+ description: 'Search the knowledge graph: vector-seeded entities expanded to ranked relationship triplets. Returns rendered context lines plus seed entry ids (rate them via memory_feedback).',
325
+ inputSchema: {
326
+ type: 'object',
327
+ properties: {
328
+ query: { type: 'string', description: 'Natural-language query' },
329
+ limit: { type: 'number', description: 'Max triplets (default 8)' },
330
+ nodeSet: { type: 'string', description: "Filter to a node set (e.g. 'rules')" },
331
+ },
332
+ required: ['query'],
333
+ },
334
+ handler: async (params) => {
335
+ try {
336
+ const query = validateString(params.query, 'query', 2000);
337
+ if (!query)
338
+ return { success: false, error: 'query is required' };
339
+ const kg = await import('../memory/memory-kg.js');
340
+ return await kg.kgSearch({
341
+ query,
342
+ limit: validatePositiveInt(params.limit, 8, 50),
343
+ nodeSet: validateString(params.nodeSet, 'nodeSet', 100) ?? undefined,
344
+ });
345
+ }
346
+ catch (error) {
347
+ return { success: false, error: sanitizeError(error) };
348
+ }
349
+ },
350
+ };
351
+ export const memoryKgRollback = {
352
+ name: 'memory_kg_rollback',
353
+ description: 'Delete all knowledge-graph nodes/edges/rules whose only provenance is the given originRef (bad-ingest recovery). Elements shared with other origins are retained.',
354
+ inputSchema: {
355
+ type: 'object',
356
+ properties: {
357
+ originRef: { type: 'string', description: 'The provenance ref to roll back (session/run/doc id)' },
358
+ },
359
+ required: ['originRef'],
360
+ },
361
+ handler: async (params) => {
362
+ try {
363
+ const originRef = validateString(params.originRef, 'originRef', 500);
364
+ if (!originRef)
365
+ return { success: false, error: 'originRef is required' };
366
+ const kg = await import('../memory/memory-kg.js');
367
+ return await kg.kgRollback({ originRef });
368
+ }
369
+ catch (error) {
370
+ return { success: false, error: sanitizeError(error) };
371
+ }
372
+ },
373
+ };
374
+ export const memoryKgConsolidate = {
375
+ name: 'memory_kg_consolidate',
376
+ description: 'List knowledge-graph entities whose descriptions lag their connectivity, with neighborhood facts. YOU do the consolidation: rewrite each candidate\'s description as one canonical paragraph merging the facts, then resubmit via memory_kg_ingest (richer descriptions win on merge).',
377
+ inputSchema: {
378
+ type: 'object',
379
+ properties: {
380
+ minEdges: { type: 'number', description: 'Minimum relations for a candidate (default 3)' },
381
+ limit: { type: 'number', description: 'Max candidates (default 10)' },
382
+ },
383
+ },
384
+ handler: async (params) => {
385
+ try {
386
+ const kg = await import('../memory/memory-kg.js');
387
+ const candidates = await kg.kgConsolidateCandidates({
388
+ minEdges: validatePositiveInt(params.minEdges, 3, 100),
389
+ limit: validatePositiveInt(params.limit, 10, 50),
390
+ });
391
+ return { success: true, candidates };
392
+ }
393
+ catch (error) {
394
+ return { success: false, error: sanitizeError(error) };
395
+ }
396
+ },
397
+ };
398
+ export const memoryKgStats = {
399
+ name: 'memory_kg_stats',
400
+ description: 'Knowledge graph size: node, edge, and rule counts (plus the entity glossary for extraction prompts)',
401
+ inputSchema: {
402
+ type: 'object',
403
+ properties: {
404
+ glossary: { type: 'boolean', description: 'Include top entity names (default false)' },
405
+ },
406
+ },
407
+ handler: async (params) => {
408
+ try {
409
+ const kg = await import('../memory/memory-kg.js');
410
+ const stats = await kg.kgStats();
411
+ const glossary = params.glossary === true ? await kg.kgGlossary() : undefined;
412
+ return { success: true, ...stats, ...(glossary ? { glossary } : {}) };
260
413
  }
261
414
  catch (error) {
262
415
  return { success: false, error: sanitizeError(error) };
@@ -266,7 +419,7 @@ export const memoryCausalEdge = {
266
419
  // ===== memory_route — Route via SemanticRouter =====
267
420
  export const memoryRoute = {
268
421
  name: 'memory_route',
269
- description: 'Route a task via SemanticRouter or LearningSystem recommendAlgorithm',
422
+ description: 'Suggest agent routing for a task by searching past routing patterns',
270
423
  inputSchema: {
271
424
  type: 'object',
272
425
  properties: {
@@ -292,7 +445,7 @@ export const memoryRoute = {
292
445
  // ===== memory_session_start — Session with ReflexionMemory =====
293
446
  export const memorySessionStart = {
294
447
  name: 'memory_session-start',
295
- description: 'Start a session with ReflexionMemory episodic replay',
448
+ description: 'Record a session start in the sessions namespace',
296
449
  inputSchema: {
297
450
  type: 'object',
298
451
  properties: {
@@ -321,7 +474,7 @@ export const memorySessionStart = {
321
474
  // ===== memory_session_end — End session + NightlyLearner =====
322
475
  export const memorySessionEnd = {
323
476
  name: 'memory_session-end',
324
- description: 'End session, persist to ReflexionMemory, trigger NightlyLearner consolidation',
477
+ description: 'Record session end with summary and metrics in the sessions namespace',
325
478
  inputSchema: {
326
479
  type: 'object',
327
480
  properties: {
@@ -352,7 +505,7 @@ export const memorySessionEnd = {
352
505
  // ===== memory_hierarchical_store — Store to hierarchical memory =====
353
506
  export const memoryHierarchicalStore = {
354
507
  name: 'memory_hierarchical-store',
355
- description: 'Store to hierarchical memory with tier (working, episodic, semantic)',
508
+ description: 'Store into a tier-labeled namespace (tier_working/episodic/semantic). Note: tiers are labels, not automatic promotion',
356
509
  inputSchema: {
357
510
  type: 'object',
358
511
  properties: {
@@ -391,7 +544,7 @@ export const memoryHierarchicalStore = {
391
544
  // ===== memory_hierarchical_recall — Recall from hierarchical memory =====
392
545
  export const memoryHierarchicalRecall = {
393
546
  name: 'memory_hierarchical-recall',
394
- description: 'Recall from hierarchical memory with optional tier filter',
547
+ description: 'Search tier-labeled namespaces (tier_working/episodic/semantic), or all when no tier given',
395
548
  inputSchema: {
396
549
  type: 'object',
397
550
  properties: {
@@ -426,12 +579,13 @@ export const memoryHierarchicalRecall = {
426
579
  // ===== memory_consolidate — Run memory consolidation =====
427
580
  export const memoryConsolidate = {
428
581
  name: 'memory_consolidate',
429
- description: 'Run memory consolidation to promote entries across tiers and compress old data',
582
+ description: 'Garbage-collect stale, unused memory entries. Weight-aware: entries with high feedback_weight or repeated usage are never collected.',
430
583
  inputSchema: {
431
584
  type: 'object',
432
585
  properties: {
433
- minAge: { type: 'number', description: 'Minimum age in hours since store (optional)' },
434
- maxEntries: { type: 'number', description: 'Maximum entries to consolidate (optional)' },
586
+ minAge: { type: 'number', description: 'Minimum age in hours since last update (optional, default 168 = 7 days)' },
587
+ maxEntries: { type: 'number', description: 'Maximum entries to scan (optional)' },
588
+ namespace: { type: 'string', description: "Namespace to GC, or 'all' for every non-protected namespace (optional)" },
435
589
  },
436
590
  },
437
591
  handler: async (params) => {
@@ -440,14 +594,17 @@ export const memoryConsolidate = {
440
594
  // Reject NaN and Infinity. typeof === 'number' returns true for both.
441
595
  // NaN propagates through arithmetic and corrupts consolidation accounting;
442
596
  // Infinity makes `entry.age >= minAge` always false, silently no-op.
597
+ // The bridge expects MILLISECONDS; this param is documented in hours —
598
+ // convert here (previously passed through raw, so 720 hours became 720ms).
443
599
  const minAge = typeof params.minAge === 'number' && Number.isFinite(params.minAge)
444
- ? Math.max(0, Math.min(params.minAge, 24 * 365 * 10))
600
+ ? Math.max(0, Math.min(params.minAge, 24 * 365 * 10)) * 3600 * 1000
445
601
  : undefined;
446
602
  const result = await bridge.bridgeConsolidate({
447
603
  minAge,
448
604
  maxEntries: params.maxEntries !== undefined
449
605
  ? validatePositiveInt(params.maxEntries, 1000, 10_000)
450
606
  : undefined,
607
+ namespace: validateString(params.namespace, 'namespace', 128) ?? undefined,
451
608
  });
452
609
  return result ?? { success: false, error: 'Memory bridge not available. Use memory_store/memory_search instead.' };
453
610
  }
@@ -533,7 +690,7 @@ export const memoryBatch = {
533
690
  // ===== memory_context_synthesize — Synthesize context from memories =====
534
691
  export const memoryContextSynthesize = {
535
692
  name: 'memory_context-synthesize',
536
- description: 'Synthesize context from stored memories for a given query',
693
+ description: 'Concatenate top matching memories into a context block for a query (no summarization)',
537
694
  inputSchema: {
538
695
  type: 'object',
539
696
  properties: {
@@ -601,6 +758,11 @@ export const memoryTools = [
601
758
  memoryPatternSearch,
602
759
  memoryFeedback,
603
760
  memoryCausalEdge,
761
+ memoryKgIngest,
762
+ memoryKgSearch,
763
+ memoryKgRollback,
764
+ memoryKgConsolidate,
765
+ memoryKgStats,
604
766
  memoryRoute,
605
767
  memorySessionStart,
606
768
  memorySessionEnd,
@@ -26,6 +26,8 @@ export declare function bridgeStoreEntry(options: {
26
26
  ttl?: number;
27
27
  dbPath?: string;
28
28
  upsert?: boolean;
29
+ /** Structured metadata persisted on the entry (KG nodes/edges, weights, provenance). */
30
+ metadata?: Record<string, unknown>;
29
31
  }): Promise<{
30
32
  success: boolean;
31
33
  id: string;
@@ -77,6 +79,7 @@ export declare function bridgeListEntries(options: {
77
79
  updatedAt: string;
78
80
  hasEmbedding: boolean;
79
81
  tags: string[];
82
+ metadata: Record<string, unknown>;
80
83
  }[];
81
84
  total: number;
82
85
  error?: string;
@@ -99,6 +102,7 @@ export declare function bridgeGetEntry(options: {
99
102
  updatedAt: string;
100
103
  hasEmbedding: boolean;
101
104
  tags: string[];
105
+ metadata: Record<string, unknown>;
102
106
  };
103
107
  cacheHit?: boolean;
104
108
  error?: string;
@@ -199,6 +203,31 @@ export declare function bridgeSearchPatterns(options: {
199
203
  }[];
200
204
  error?: string;
201
205
  } | null>;
206
+ /** Record that these entries were actually USED (returned to and consumed by a
207
+ * caller) — increments frequency_weight, which feeds the ranking blend. */
208
+ export declare function bridgeRecordUsage(options: {
209
+ entryIds: string[];
210
+ dbPath?: string;
211
+ }): Promise<{
212
+ success: boolean;
213
+ updated: number;
214
+ } | null>;
215
+ /** Apply a usefulness rating to the entries that produced an answer:
216
+ * EWMA feedback_weight' = w + alpha*(score - w), clipped [0,1] (cognee's
217
+ * apply_feedback_weights). `ledgerKey` makes application idempotent — a
218
+ * daemon retry or duplicate MCP call must never compound the update. */
219
+ export declare function bridgeApplyFeedback(options: {
220
+ entryIds: string[];
221
+ score: number;
222
+ ledgerKey?: string;
223
+ alpha?: number;
224
+ dbPath?: string;
225
+ }): Promise<{
226
+ success: boolean;
227
+ applied: number;
228
+ alreadyApplied?: boolean;
229
+ error?: string;
230
+ } | null>;
202
231
  export declare function bridgeRecordFeedback(options: {
203
232
  taskType: string;
204
233
  action: string;
@@ -275,8 +304,12 @@ export declare function bridgeHierarchicalRecall(params: {
275
304
  topK?: number;
276
305
  }): Promise<any>;
277
306
  export declare function bridgeConsolidate(params: {
307
+ /** Minimum age in MILLISECONDS since last update (default 7 days). */
278
308
  minAge?: number;
279
309
  maxEntries?: number;
310
+ /** Namespace to GC; 'all' scans every non-protected namespace (default 'default'). */
311
+ namespace?: string;
312
+ dbPath?: string;
280
313
  }): Promise<any>;
281
314
  export declare function bridgeBatchOperation(params: {
282
315
  operation: string;