@monoes/monomindcli 2.15.5 → 2.15.7

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 (226) hide show
  1. package/dist/src/commands/cleanup-plan.d.ts +57 -0
  2. package/dist/src/commands/cleanup-plan.d.ts.map +1 -0
  3. package/dist/src/commands/cleanup-plan.js +379 -0
  4. package/dist/src/commands/cleanup-plan.js.map +1 -0
  5. package/dist/src/commands/cleanup.d.ts.map +1 -1
  6. package/dist/src/commands/cleanup.js +87 -160
  7. package/dist/src/commands/cleanup.js.map +1 -1
  8. package/dist/src/commands/search-universal.d.ts +8 -0
  9. package/dist/src/commands/search-universal.d.ts.map +1 -1
  10. package/dist/src/commands/search-universal.js +14 -0
  11. package/dist/src/commands/search-universal.js.map +1 -1
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +11 -2
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/orgrt/completion-gate.d.ts +40 -0
  16. package/dist/src/orgrt/completion-gate.d.ts.map +1 -1
  17. package/dist/src/orgrt/completion-gate.js +90 -9
  18. package/dist/src/orgrt/completion-gate.js.map +1 -1
  19. package/dist/src/orgrt/daemon.d.ts +4 -0
  20. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  21. package/dist/src/orgrt/daemon.js +15 -2
  22. package/dist/src/orgrt/daemon.js.map +1 -1
  23. package/dist/src/orgrt/decisions.d.ts +24 -1
  24. package/dist/src/orgrt/decisions.d.ts.map +1 -1
  25. package/dist/src/orgrt/decisions.js +171 -11
  26. package/dist/src/orgrt/decisions.js.map +1 -1
  27. package/dist/src/orgrt/idle-deadline.d.ts +10 -0
  28. package/dist/src/orgrt/idle-deadline.d.ts.map +1 -1
  29. package/dist/src/orgrt/idle-deadline.js +8 -0
  30. package/dist/src/orgrt/idle-deadline.js.map +1 -1
  31. package/dist/src/orgrt/mailbox.d.ts +7 -0
  32. package/dist/src/orgrt/mailbox.d.ts.map +1 -1
  33. package/dist/src/orgrt/mailbox.js +14 -0
  34. package/dist/src/orgrt/mailbox.js.map +1 -1
  35. package/dist/src/orgrt/review-packet.d.ts +1 -1
  36. package/dist/src/orgrt/review-packet.d.ts.map +1 -1
  37. package/dist/src/orgrt/review-packet.js +2 -1
  38. package/dist/src/orgrt/review-packet.js.map +1 -1
  39. package/dist/src/orgrt/role-sandbox.d.ts +1 -0
  40. package/dist/src/orgrt/role-sandbox.d.ts.map +1 -1
  41. package/dist/src/orgrt/role-sandbox.js +6 -1
  42. package/dist/src/orgrt/role-sandbox.js.map +1 -1
  43. package/dist/src/orgrt/session.d.ts +3 -0
  44. package/dist/src/orgrt/session.d.ts.map +1 -1
  45. package/dist/src/orgrt/session.js +8 -1
  46. package/dist/src/orgrt/session.js.map +1 -1
  47. package/dist/src/orgrt/task-dag.d.ts +3 -0
  48. package/dist/src/orgrt/task-dag.d.ts.map +1 -1
  49. package/dist/src/orgrt/task-dag.js +7 -0
  50. package/dist/src/orgrt/task-dag.js.map +1 -1
  51. package/dist/src/orgrt/types.d.ts +3 -0
  52. package/dist/src/orgrt/types.d.ts.map +1 -1
  53. package/dist/src/orgrt/types.js +6 -2
  54. package/dist/src/orgrt/types.js.map +1 -1
  55. package/dist/src/update/checker.d.ts +3 -1
  56. package/dist/src/update/checker.d.ts.map +1 -1
  57. package/dist/src/update/checker.js +7 -3
  58. package/dist/src/update/checker.js.map +1 -1
  59. package/dist/src/update/index.d.ts +16 -0
  60. package/dist/src/update/index.d.ts.map +1 -1
  61. package/dist/src/update/index.js +37 -1
  62. package/dist/src/update/index.js.map +1 -1
  63. package/dist/src/update/refresh-worker.d.ts +9 -0
  64. package/dist/src/update/refresh-worker.d.ts.map +1 -0
  65. package/dist/src/update/refresh-worker.js +17 -0
  66. package/dist/src/update/refresh-worker.js.map +1 -0
  67. package/dist/src/utils/resource-governor.d.ts +44 -2
  68. package/dist/src/utils/resource-governor.d.ts.map +1 -1
  69. package/dist/src/utils/resource-governor.js +157 -40
  70. package/dist/src/utils/resource-governor.js.map +1 -1
  71. package/dist/tsconfig.tsbuildinfo +1 -1
  72. package/package.json +4 -4
  73. package/.claude/skills/monodesign/SKILL.md +0 -257
  74. package/.claude/skills/monodesign/adapt.md +0 -53
  75. package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +0 -100
  76. package/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +0 -103
  77. package/.claude/skills/monodesign/animate.md +0 -65
  78. package/.claude/skills/monodesign/audit.md +0 -89
  79. package/.claude/skills/monodesign/bolder.md +0 -50
  80. package/.claude/skills/monodesign/clarify.md +0 -64
  81. package/.claude/skills/monodesign/colorize.md +0 -68
  82. package/.claude/skills/monodesign/craft.md +0 -51
  83. package/.claude/skills/monodesign/critique.md +0 -66
  84. package/.claude/skills/monodesign/delight.md +0 -47
  85. package/.claude/skills/monodesign/distill.md +0 -56
  86. package/.claude/skills/monodesign/document.md +0 -83
  87. package/.claude/skills/monodesign/extract.md +0 -74
  88. package/.claude/skills/monodesign/harden.md +0 -65
  89. package/.claude/skills/monodesign/init.md +0 -30
  90. package/.claude/skills/monodesign/layout.md +0 -36
  91. package/.claude/skills/monodesign/live.md +0 -34
  92. package/.claude/skills/monodesign/onboard.md +0 -50
  93. package/.claude/skills/monodesign/optimize.md +0 -64
  94. package/.claude/skills/monodesign/overdrive.md +0 -56
  95. package/.claude/skills/monodesign/polish.md +0 -68
  96. package/.claude/skills/monodesign/quieter.md +0 -57
  97. package/.claude/skills/monodesign/reference/adapt.md +0 -312
  98. package/.claude/skills/monodesign/reference/adapt.native.md +0 -58
  99. package/.claude/skills/monodesign/reference/android.md +0 -40
  100. package/.claude/skills/monodesign/reference/animate.md +0 -203
  101. package/.claude/skills/monodesign/reference/antipatterns-catalog.md +0 -410
  102. package/.claude/skills/monodesign/reference/audit.md +0 -135
  103. package/.claude/skills/monodesign/reference/audit.native.md +0 -139
  104. package/.claude/skills/monodesign/reference/bolder.md +0 -120
  105. package/.claude/skills/monodesign/reference/brand-workflow.md +0 -180
  106. package/.claude/skills/monodesign/reference/brand.md +0 -108
  107. package/.claude/skills/monodesign/reference/clarify.md +0 -288
  108. package/.claude/skills/monodesign/reference/codex.md +0 -105
  109. package/.claude/skills/monodesign/reference/cognitive-load.md +0 -106
  110. package/.claude/skills/monodesign/reference/color-and-contrast.md +0 -105
  111. package/.claude/skills/monodesign/reference/colorize.md +0 -257
  112. package/.claude/skills/monodesign/reference/component-specs.md +0 -260
  113. package/.claude/skills/monodesign/reference/component-states.md +0 -274
  114. package/.claude/skills/monodesign/reference/component-system.md +0 -358
  115. package/.claude/skills/monodesign/reference/copy-formulas.md +0 -160
  116. package/.claude/skills/monodesign/reference/craft.md +0 -123
  117. package/.claude/skills/monodesign/reference/critique.md +0 -780
  118. package/.claude/skills/monodesign/reference/delight.md +0 -302
  119. package/.claude/skills/monodesign/reference/design-principles.md +0 -246
  120. package/.claude/skills/monodesign/reference/distill.md +0 -111
  121. package/.claude/skills/monodesign/reference/document.md +0 -429
  122. package/.claude/skills/monodesign/reference/extract.md +0 -69
  123. package/.claude/skills/monodesign/reference/harden.md +0 -347
  124. package/.claude/skills/monodesign/reference/heuristics-scoring.md +0 -234
  125. package/.claude/skills/monodesign/reference/hooks.md +0 -92
  126. package/.claude/skills/monodesign/reference/image-prompts.md +0 -130
  127. package/.claude/skills/monodesign/reference/init.md +0 -221
  128. package/.claude/skills/monodesign/reference/interaction-design.md +0 -189
  129. package/.claude/skills/monodesign/reference/ios.md +0 -45
  130. package/.claude/skills/monodesign/reference/layout.md +0 -185
  131. package/.claude/skills/monodesign/reference/live.md +0 -710
  132. package/.claude/skills/monodesign/reference/motion-design.md +0 -109
  133. package/.claude/skills/monodesign/reference/onboard.md +0 -234
  134. package/.claude/skills/monodesign/reference/optimize.md +0 -258
  135. package/.claude/skills/monodesign/reference/overdrive.md +0 -130
  136. package/.claude/skills/monodesign/reference/personas.md +0 -179
  137. package/.claude/skills/monodesign/reference/polish.md +0 -241
  138. package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +0 -108
  139. package/.claude/skills/monodesign/reference/product.md +0 -60
  140. package/.claude/skills/monodesign/reference/quieter.md +0 -99
  141. package/.claude/skills/monodesign/reference/responsive-design.md +0 -114
  142. package/.claude/skills/monodesign/reference/shape.md +0 -165
  143. package/.claude/skills/monodesign/reference/spatial-design.md +0 -100
  144. package/.claude/skills/monodesign/reference/teach.md +0 -10
  145. package/.claude/skills/monodesign/reference/token-architecture.md +0 -222
  146. package/.claude/skills/monodesign/reference/typeset.md +0 -301
  147. package/.claude/skills/monodesign/reference/typography.md +0 -159
  148. package/.claude/skills/monodesign/reference/ux-research.md +0 -143
  149. package/.claude/skills/monodesign/reference/ux-rules.md +0 -211
  150. package/.claude/skills/monodesign/reference/ux-writing.md +0 -107
  151. package/.claude/skills/monodesign/scripts/command-metadata.json +0 -94
  152. package/.claude/skills/monodesign/scripts/context-signals.mjs +0 -260
  153. package/.claude/skills/monodesign/scripts/context.mjs +0 -1065
  154. package/.claude/skills/monodesign/scripts/critique-storage.mjs +0 -416
  155. package/.claude/skills/monodesign/scripts/detect-csp.mjs +0 -193
  156. package/.claude/skills/monodesign/scripts/detect.mjs +0 -33
  157. package/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +0 -1960
  158. package/.claude/skills/monodesign/scripts/detector/cli/main.mjs +0 -321
  159. package/.claude/skills/monodesign/scripts/detector/design-system.mjs +0 -814
  160. package/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +0 -5628
  161. package/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +0 -50
  162. package/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +0 -259
  163. package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +0 -349
  164. package/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +0 -636
  165. package/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +0 -1016
  166. package/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +0 -253
  167. package/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +0 -198
  168. package/.claude/skills/monodesign/scripts/detector/findings.mjs +0 -12
  169. package/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +0 -181
  170. package/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +0 -373
  171. package/.claude/skills/monodesign/scripts/detector/fix/index.mjs +0 -426
  172. package/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +0 -198
  173. package/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +0 -166
  174. package/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +0 -563
  175. package/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +0 -3024
  176. package/.claude/skills/monodesign/scripts/detector/shared/color.mjs +0 -124
  177. package/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +0 -101
  178. package/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +0 -30
  179. package/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +0 -148
  180. package/.claude/skills/monodesign/scripts/detector/shared/page.mjs +0 -7
  181. package/.claude/skills/monodesign/scripts/hook-admin.mjs +0 -694
  182. package/.claude/skills/monodesign/scripts/hook-before-edit.mjs +0 -516
  183. package/.claude/skills/monodesign/scripts/hook-lib.mjs +0 -1785
  184. package/.claude/skills/monodesign/scripts/hook.mjs +0 -61
  185. package/.claude/skills/monodesign/scripts/lib/design-parser.mjs +0 -809
  186. package/.claude/skills/monodesign/scripts/lib/is-generated.mjs +0 -69
  187. package/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +0 -640
  188. package/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +0 -129
  189. package/.claude/skills/monodesign/scripts/lib/provider.mjs +0 -4
  190. package/.claude/skills/monodesign/scripts/lib/target-args.mjs +0 -42
  191. package/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +0 -50
  192. package/.claude/skills/monodesign/scripts/live/completion.mjs +0 -19
  193. package/.claude/skills/monodesign/scripts/live/event-validation.mjs +0 -137
  194. package/.claude/skills/monodesign/scripts/live/insert-ui.mjs +0 -458
  195. package/.claude/skills/monodesign/scripts/live/manual-apply.mjs +0 -939
  196. package/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +0 -357
  197. package/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +0 -152
  198. package/.claude/skills/monodesign/scripts/live/session-store.mjs +0 -293
  199. package/.claude/skills/monodesign/scripts/live/svelte-component.mjs +0 -826
  200. package/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +0 -279
  201. package/.claude/skills/monodesign/scripts/live/ui-core.mjs +0 -180
  202. package/.claude/skills/monodesign/scripts/live/vocabulary.mjs +0 -36
  203. package/.claude/skills/monodesign/scripts/live-accept.mjs +0 -812
  204. package/.claude/skills/monodesign/scripts/live-browser-dom.js +0 -147
  205. package/.claude/skills/monodesign/scripts/live-browser-session.js +0 -124
  206. package/.claude/skills/monodesign/scripts/live-browser.js +0 -11213
  207. package/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +0 -1241
  208. package/.claude/skills/monodesign/scripts/live-complete.mjs +0 -75
  209. package/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +0 -683
  210. package/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +0 -51
  211. package/.claude/skills/monodesign/scripts/live-inject.mjs +0 -596
  212. package/.claude/skills/monodesign/scripts/live-insert.mjs +0 -272
  213. package/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +0 -363
  214. package/.claude/skills/monodesign/scripts/live-poll.mjs +0 -384
  215. package/.claude/skills/monodesign/scripts/live-resume.mjs +0 -94
  216. package/.claude/skills/monodesign/scripts/live-server.mjs +0 -1210
  217. package/.claude/skills/monodesign/scripts/live-status.mjs +0 -61
  218. package/.claude/skills/monodesign/scripts/live-target.mjs +0 -30
  219. package/.claude/skills/monodesign/scripts/live-wrap.mjs +0 -884
  220. package/.claude/skills/monodesign/scripts/live.mjs +0 -297
  221. package/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +0 -14
  222. package/.claude/skills/monodesign/scripts/palette.mjs +0 -635
  223. package/.claude/skills/monodesign/scripts/pin.mjs +0 -221
  224. package/.claude/skills/monodesign/shape.md +0 -71
  225. package/.claude/skills/monodesign/teach.md +0 -18
  226. package/.claude/skills/monodesign/typeset.md +0 -59
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Ownership-checked plan for `monomind cleanup`.
3
+ *
4
+ * Incident 2026-09-22: `cleanup --force` deleted a fixed list of paths
5
+ * (.agents/, .gemini/, AGENTS.md, data/, ...) wholesale. Run in a real
6
+ * repository it removed ~1000 git-tracked files and the project's memory
7
+ * store. The plan below removes a path only when monomind demonstrably owns
8
+ * it, and the same plan drives both the preview and `--force`, so the preview
9
+ * is exactly what `--force` will do.
10
+ *
11
+ * Rules, in order:
12
+ * 1. A git-tracked file, or a directory holding one, is never deleted or
13
+ * rewritten. Its untracked monomind-owned children may still be removed.
14
+ * 2. User data (memory stores, org memory, knowledge index, monograph and
15
+ * other databases, org configs, backups) is kept unless `--purge-data`.
16
+ * 3. Whole-path removal needs proof of ownership: a monomind-only namespace
17
+ * (.monomind/, monomind.config.json, legacy .swarm/.hive-mind), an entry
18
+ * listed in init's manifest, a file named `monomind*` inside a provider
19
+ * dir, or a file whose content is nothing but monomind marker blocks.
20
+ * 4. A file that mixes monomind marker blocks (or a `monomind` JSON entry)
21
+ * with other content only loses the monomind part.
22
+ * 5. Anything else is kept and reported with the reason.
23
+ */
24
+ export type CleanupAction = 'remove' | 'strip' | 'skip';
25
+ export interface CleanupPlanEntry {
26
+ /** Path relative to the project root, `/`-separated. */
27
+ path: string;
28
+ kind: 'dir' | 'file';
29
+ action: CleanupAction;
30
+ reason: string;
31
+ size: number;
32
+ /** True for user data that only `--purge-data` removes. */
33
+ data?: boolean;
34
+ /** New file content for `strip`. */
35
+ content?: string;
36
+ }
37
+ export interface CleanupPlanOptions {
38
+ keepConfig: boolean;
39
+ purgeData: boolean;
40
+ /** MONOMIND_MEMORY_PATH, if set. */
41
+ memoryPath?: string;
42
+ }
43
+ export type CleanupPlanResult = {
44
+ ok: true;
45
+ entries: CleanupPlanEntry[];
46
+ } | {
47
+ ok: false;
48
+ error: string;
49
+ };
50
+ /** Remove every monomind marker block. Returns null when there was none. */
51
+ export declare function stripMonomindBlocks(text: string): string | null;
52
+ /** Cheap, reliable signal that `cwd` is monomind's own source checkout. */
53
+ export declare function isMonomindSourceRepo(cwd: string): boolean;
54
+ export declare function buildCleanupPlan(cwd: string, opts: CleanupPlanOptions): CleanupPlanResult;
55
+ /** Apply one `remove`/`strip` entry; `skip` is a no-op. Throws on failure. */
56
+ export declare function applyCleanupEntry(cwd: string, e: CleanupPlanEntry): void;
57
+ //# sourceMappingURL=cleanup-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup-plan.d.ts","sourceRoot":"","sources":["../../../src/commands/cleanup-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAQH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAAE,GACzC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AA6CjC,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY/D;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOzD;AAmRD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,CAWzF;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAIxE"}
@@ -0,0 +1,379 @@
1
+ /**
2
+ * Ownership-checked plan for `monomind cleanup`.
3
+ *
4
+ * Incident 2026-09-22: `cleanup --force` deleted a fixed list of paths
5
+ * (.agents/, .gemini/, AGENTS.md, data/, ...) wholesale. Run in a real
6
+ * repository it removed ~1000 git-tracked files and the project's memory
7
+ * store. The plan below removes a path only when monomind demonstrably owns
8
+ * it, and the same plan drives both the preview and `--force`, so the preview
9
+ * is exactly what `--force` will do.
10
+ *
11
+ * Rules, in order:
12
+ * 1. A git-tracked file, or a directory holding one, is never deleted or
13
+ * rewritten. Its untracked monomind-owned children may still be removed.
14
+ * 2. User data (memory stores, org memory, knowledge index, monograph and
15
+ * other databases, org configs, backups) is kept unless `--purge-data`.
16
+ * 3. Whole-path removal needs proof of ownership: a monomind-only namespace
17
+ * (.monomind/, monomind.config.json, legacy .swarm/.hive-mind), an entry
18
+ * listed in init's manifest, a file named `monomind*` inside a provider
19
+ * dir, or a file whose content is nothing but monomind marker blocks.
20
+ * 4. A file that mixes monomind marker blocks (or a `monomind` JSON entry)
21
+ * with other content only loses the monomind part.
22
+ * 5. Anything else is kept and reported with the reason.
23
+ */
24
+ import { execFileSync } from 'node:child_process';
25
+ import { existsSync, lstatSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
26
+ import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
27
+ import { readInitManifest } from '../init/shared.js';
28
+ import { safeJsonRemove } from '../platform-adapters/merge.js';
29
+ /** Directories whose every untracked, non-data entry is monomind's own state. */
30
+ const NAMESPACE_DIRS = ['.monomind', '.swarm', '.hive-mind'];
31
+ /** Agent-tool directories shared with the user and other tools. */
32
+ const SHARED_DIRS = ['.claude', '.agents', '.gemini', '.opencode', '.codex', '.kimi-code'];
33
+ /** Root instruction files that may carry a monomind marker block. */
34
+ const MARKED_FILES = ['CLAUDE.md', 'AGENTS.md', 'GEMINI.md'];
35
+ /** Root JSON files where monomind registers one named entry. */
36
+ const JSON_ENTRY_FILES = [
37
+ { path: '.mcp.json', entry: ['mcpServers', 'monomind'] },
38
+ { path: 'opencode.json', entry: ['mcp', 'monomind'] },
39
+ ];
40
+ /** Data paths (relative to the project root), kept unless --purge-data. */
41
+ const DATA_PATHS = [
42
+ 'data/memory',
43
+ 'data/memory.db',
44
+ 'data/memory.db-wal',
45
+ 'data/memory.db-shm',
46
+ 'data/memory.graph',
47
+ 'memory',
48
+ '.monomind/data',
49
+ '.monomind/org-memory',
50
+ '.monomind/knowledge',
51
+ '.monomind/orgs',
52
+ '.monomind/org-skills',
53
+ '.monomind/backups',
54
+ '.monomind/episodic',
55
+ '.monomind/neural',
56
+ '.monomind/capture',
57
+ '.monomind/graph',
58
+ '.monomind/.monograph',
59
+ ];
60
+ /** Any database file is treated as data wherever it sits. */
61
+ const DATA_FILE_RE = /\.(db|sqlite|sqlite3)(-wal|-shm|-journal)?$/;
62
+ /** Generator title init writes as GEMINI.md's first line. */
63
+ const GEMINI_SIGNATURE_RE = /^# Monomind for Antigravity \(agy\) — v\S+\n/;
64
+ const MAX_MARKER_SCAN_BYTES = 2 * 1024 * 1024;
65
+ const NAMED_BLOCK_RE = /^[\t ]*(?:(?:#|\/\/)\s*|<!--\s*)?monomind:start\s+(\S+)\s*(?:-->)?[^\S\r\n]*(?:\r?\n|$)[\s\S]*?^[\t ]*(?:(?:#|\/\/)\s*|<!--\s*)?monomind:end\s+\1\s*(?:-->)?[^\S\r\n]*(?:\r?\n|$)/gm;
66
+ const TAGGED_BLOCK_RE = /^<!-- monomind-block:(\S+) -->\r?\n[\s\S]*?^<!-- \/monomind-block:\1 -->(?:\r?\n|$)/gm;
67
+ const BARE_HTML_BLOCK_RE = /<!--\s*monomind:start\s*-->[\s\S]*?<!--\s*monomind:end\s*-->\r?\n?/g;
68
+ /** Remove every monomind marker block. Returns null when there was none. */
69
+ export function stripMonomindBlocks(text) {
70
+ let count = 0;
71
+ const count1 = () => {
72
+ count++;
73
+ return '';
74
+ };
75
+ const out = text
76
+ .replace(TAGGED_BLOCK_RE, count1)
77
+ .replace(NAMED_BLOCK_RE, count1)
78
+ .replace(BARE_HTML_BLOCK_RE, count1);
79
+ if (count === 0)
80
+ return null;
81
+ return `${out.replace(/\n{3,}/g, '\n\n').trimEnd()}\n`;
82
+ }
83
+ /** Cheap, reliable signal that `cwd` is monomind's own source checkout. */
84
+ export function isMonomindSourceRepo(cwd) {
85
+ try {
86
+ const pkg = JSON.parse(readFileSync(join(cwd, 'package.json'), 'utf8'));
87
+ return pkg.name === 'monomind' && existsSync(join(cwd, 'packages', '@monomind', 'cli'));
88
+ }
89
+ catch {
90
+ return false;
91
+ }
92
+ }
93
+ /**
94
+ * Tracked paths under `cwd`, relative to it. An empty set outside a git repo;
95
+ * an error string when a repo is present but cannot be read (fail closed).
96
+ */
97
+ function readTracked(cwd) {
98
+ const files = new Set();
99
+ const dirs = new Set();
100
+ let out;
101
+ try {
102
+ out = execFileSync('git', ['-C', cwd, 'ls-files', '-z', '--cached'], {
103
+ encoding: 'utf8',
104
+ stdio: ['ignore', 'pipe', 'pipe'],
105
+ maxBuffer: 256 * 1024 * 1024,
106
+ });
107
+ }
108
+ catch (err) {
109
+ const stderr = String(err.stderr ?? '');
110
+ if (/not a git repository/i.test(stderr))
111
+ return { files, dirs };
112
+ for (let dir = resolve(cwd);; dir = dirname(dir)) {
113
+ if (existsSync(join(dir, '.git'))) {
114
+ return `cannot list git-tracked files (${err.message.split('\n')[0]}); refusing to delete anything`;
115
+ }
116
+ if (dirname(dir) === dir)
117
+ break;
118
+ }
119
+ return { files, dirs };
120
+ }
121
+ for (const f of out.split('\0')) {
122
+ if (!f)
123
+ continue;
124
+ files.add(f);
125
+ for (let d = f; d.includes('/');) {
126
+ d = d.slice(0, d.lastIndexOf('/'));
127
+ if (dirs.has(d))
128
+ break;
129
+ dirs.add(d);
130
+ }
131
+ }
132
+ return { files, dirs };
133
+ }
134
+ function sizeOf(abs, depth = 0) {
135
+ if (depth > 20)
136
+ return 0;
137
+ try {
138
+ const st = lstatSync(abs);
139
+ if (!st.isDirectory())
140
+ return st.size;
141
+ let total = 0;
142
+ for (const name of readdirSync(abs))
143
+ total += sizeOf(join(abs, name), depth + 1);
144
+ return total;
145
+ }
146
+ catch {
147
+ return 0;
148
+ }
149
+ }
150
+ class Planner {
151
+ cwd;
152
+ tracked;
153
+ opts;
154
+ entries = [];
155
+ dataPaths;
156
+ owned;
157
+ constructor(cwd, tracked, opts) {
158
+ this.cwd = cwd;
159
+ this.tracked = tracked;
160
+ this.opts = opts;
161
+ this.dataPaths = new Set(DATA_PATHS);
162
+ if (opts.memoryPath) {
163
+ const abs = resolve(cwd, opts.memoryPath);
164
+ const rel = relative(cwd, abs);
165
+ if (rel && !rel.startsWith('..') && !isAbsolute(rel))
166
+ this.dataPaths.add(rel.split(sep).join('/'));
167
+ }
168
+ const m = readInitManifest(cwd);
169
+ this.owned = new Set([
170
+ ...(m?.skills ?? []).map((n) => `.claude/skills/${n}`),
171
+ ...(m?.commands ?? []).map((n) => `.claude/commands/${n}`),
172
+ ...(m?.agents ?? []).map((n) => `.claude/agents/${n}`),
173
+ ...(m?.kimiSkills ?? []).map((n) => `.kimi-code/skills/${n}`),
174
+ ...(m?.kimiPluginCommands ?? []).map((n) => `.kimi-code/plugin/commands/${n}`),
175
+ ...(m?.opencodeSkills ?? []).map((n) => `.opencode/skills/${n}`),
176
+ ]);
177
+ }
178
+ abs(rel) {
179
+ return join(this.cwd, ...rel.split('/'));
180
+ }
181
+ isData(rel) {
182
+ return this.dataPaths.has(rel) || DATA_FILE_RE.test(rel);
183
+ }
184
+ hasTracked(rel) {
185
+ return this.tracked.files.has(rel) || this.tracked.dirs.has(rel);
186
+ }
187
+ add(rel, kind, action, reason, extra) {
188
+ this.entries.push({ path: rel, kind, action, reason, size: sizeOf(this.abs(rel)), ...extra });
189
+ }
190
+ kindOf(rel) {
191
+ try {
192
+ const st = lstatSync(this.abs(rel));
193
+ return st.isDirectory() ? 'dir' : 'file';
194
+ }
195
+ catch {
196
+ return null;
197
+ }
198
+ }
199
+ /** Protected data paths outside the directories walked below (data/, memory/, MONOMIND_MEMORY_PATH). */
200
+ planData() {
201
+ for (const rel of [...this.dataPaths].sort()) {
202
+ const top = rel.split('/')[0];
203
+ if (NAMESPACE_DIRS.includes(top) || SHARED_DIRS.includes(top))
204
+ continue; // walked
205
+ const kind = this.kindOf(rel);
206
+ if (kind)
207
+ this.dataEntry(rel, kind);
208
+ }
209
+ }
210
+ dataEntry(rel, kind) {
211
+ if (this.hasTracked(rel))
212
+ this.add(rel, kind, 'skip', 'tracked by git', { data: true });
213
+ else if (this.opts.purgeData)
214
+ this.add(rel, kind, 'remove', 'user data (--purge-data)', { data: true });
215
+ else
216
+ this.add(rel, kind, 'skip', 'user data — kept unless --purge-data', { data: true });
217
+ }
218
+ /**
219
+ * Walk a directory. `ownsUnmarked` says whether an untracked entry with no
220
+ * other evidence is ours (namespace dirs) or not (shared provider dirs).
221
+ * Returns true when every entry below was planned for removal, so the
222
+ * caller can collapse them into one removal of this directory.
223
+ */
224
+ walk(rel, ownsUnmarked) {
225
+ const kind = this.kindOf(rel);
226
+ if (!kind)
227
+ return true;
228
+ if (this.isData(rel)) {
229
+ this.dataEntry(rel, kind);
230
+ return this.opts.purgeData && !this.hasTracked(rel);
231
+ }
232
+ if (this.tracked.files.has(rel)) {
233
+ this.add(rel, kind, 'skip', 'tracked by git');
234
+ return false;
235
+ }
236
+ const owned = this.owned.has(rel) || (ownsUnmarked && kind === 'file');
237
+ if (kind === 'file' || lstatSync(this.abs(rel)).isSymbolicLink()) {
238
+ if (owned || /^monomind/i.test(rel.slice(rel.lastIndexOf('/') + 1))) {
239
+ this.add(rel, kind, 'remove', this.owned.has(rel) ? 'listed in init manifest' : 'monomind-owned');
240
+ return true;
241
+ }
242
+ return this.planMarkedFile(rel);
243
+ }
244
+ if (!this.tracked.dirs.has(rel) &&
245
+ (this.owned.has(rel) || ownsUnmarked) &&
246
+ !this.containsData(rel)) {
247
+ this.add(rel, 'dir', 'remove', this.owned.has(rel) ? 'listed in init manifest' : 'monomind-owned');
248
+ return true;
249
+ }
250
+ const start = this.entries.length;
251
+ let all = true;
252
+ for (const name of readdirSync(this.abs(rel)).sort()) {
253
+ if (!this.walk(`${rel}/${name}`, ownsUnmarked || this.owned.has(rel)))
254
+ all = false;
255
+ }
256
+ if (all && !this.tracked.dirs.has(rel)) {
257
+ // Every child is ours: remove the directory as one unit instead.
258
+ this.entries.splice(start);
259
+ this.add(rel, 'dir', 'remove', 'contains only monomind-owned content');
260
+ return true;
261
+ }
262
+ return false;
263
+ }
264
+ containsData(rel, depth = 0) {
265
+ if (this.isData(rel))
266
+ return true;
267
+ if (depth > 20 || this.kindOf(rel) !== 'dir')
268
+ return false;
269
+ try {
270
+ return readdirSync(this.abs(rel)).some((n) => this.containsData(`${rel}/${n}`, depth + 1));
271
+ }
272
+ catch {
273
+ return true; // unreadable: assume it may hold data
274
+ }
275
+ }
276
+ /** A file carrying monomind marker blocks: strip them, delete only if nothing else remains. */
277
+ planMarkedFile(rel) {
278
+ if (this.tracked.files.has(rel)) {
279
+ this.add(rel, 'file', 'skip', 'tracked by git');
280
+ return false;
281
+ }
282
+ let text;
283
+ try {
284
+ const st = lstatSync(this.abs(rel));
285
+ // Never read or rewrite through a symlink: the target may be outside the project.
286
+ if (st.isSymbolicLink() || st.size > MAX_MARKER_SCAN_BYTES)
287
+ throw new Error('not scanned');
288
+ text = readFileSync(this.abs(rel), 'utf8');
289
+ }
290
+ catch {
291
+ this.add(rel, 'file', 'skip', 'no monomind ownership evidence');
292
+ return false;
293
+ }
294
+ if (rel === 'GEMINI.md' &&
295
+ GEMINI_SIGNATURE_RE.test(text) &&
296
+ stripMonomindBlocks(text) === null) {
297
+ this.add(rel, 'file', 'remove', 'generated by monomind init (signature line)');
298
+ return true;
299
+ }
300
+ const stripped = stripMonomindBlocks(text);
301
+ if (stripped === null) {
302
+ this.add(rel, 'file', 'skip', 'no monomind ownership evidence');
303
+ return false;
304
+ }
305
+ if (stripped.trim() === '') {
306
+ this.add(rel, 'file', 'remove', 'contains only monomind blocks');
307
+ return true;
308
+ }
309
+ this.add(rel, 'file', 'strip', 'remove monomind block, keep the rest', { content: stripped });
310
+ return false;
311
+ }
312
+ planJsonEntry(rel, entryPath) {
313
+ if (this.kindOf(rel) !== 'file')
314
+ return;
315
+ if (this.tracked.files.has(rel)) {
316
+ this.add(rel, 'file', 'skip', 'tracked by git');
317
+ return;
318
+ }
319
+ const text = readFileSync(this.abs(rel), 'utf8');
320
+ const res = safeJsonRemove(text, entryPath.slice(0, -1), entryPath[entryPath.length - 1]);
321
+ if (res.diagnostics.length > 0) {
322
+ this.add(rel, 'file', 'skip', 'unparseable JSON — left alone');
323
+ return;
324
+ }
325
+ if (res.content === text) {
326
+ this.add(rel, 'file', 'skip', 'no monomind entry');
327
+ return;
328
+ }
329
+ const rest = JSON.parse(res.content);
330
+ const parent = rest[entryPath[0]];
331
+ const empty = Object.keys(rest).length === 1 &&
332
+ !!parent &&
333
+ typeof parent === 'object' &&
334
+ Object.keys(parent).length === 0;
335
+ if (empty)
336
+ this.add(rel, 'file', 'remove', 'contains only the monomind entry');
337
+ else
338
+ this.add(rel, 'file', 'strip', 'remove the monomind entry, keep the rest', {
339
+ content: res.content,
340
+ });
341
+ }
342
+ planConfigFile(rel) {
343
+ if (this.kindOf(rel) !== 'file')
344
+ return;
345
+ if (this.tracked.files.has(rel))
346
+ this.add(rel, 'file', 'skip', 'tracked by git');
347
+ else if (this.opts.keepConfig)
348
+ this.add(rel, 'file', 'skip', 'preserved (--keep-config)');
349
+ else
350
+ this.add(rel, 'file', 'remove', 'monomind-owned');
351
+ }
352
+ }
353
+ export function buildCleanupPlan(cwd, opts) {
354
+ const tracked = readTracked(cwd);
355
+ if (typeof tracked === 'string')
356
+ return { ok: false, error: tracked };
357
+ const p = new Planner(cwd, tracked, opts);
358
+ for (const d of NAMESPACE_DIRS)
359
+ p.walk(d, true);
360
+ for (const d of SHARED_DIRS)
361
+ p.walk(d, false);
362
+ p.planConfigFile('monomind.config.json');
363
+ for (const f of MARKED_FILES)
364
+ if (existsSync(join(cwd, f)))
365
+ p.planMarkedFile(f);
366
+ for (const { path, entry } of JSON_ENTRY_FILES)
367
+ p.planJsonEntry(path, entry);
368
+ p.planData();
369
+ return { ok: true, entries: p.entries };
370
+ }
371
+ /** Apply one `remove`/`strip` entry; `skip` is a no-op. Throws on failure. */
372
+ export function applyCleanupEntry(cwd, e) {
373
+ const abs = join(cwd, ...e.path.split('/'));
374
+ if (e.action === 'remove')
375
+ rmSync(abs, { recursive: e.kind === 'dir', force: true });
376
+ else if (e.action === 'strip' && e.content !== undefined)
377
+ writeFileSync(abs, e.content);
378
+ }
379
+ //# sourceMappingURL=cleanup-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup-plan.js","sourceRoot":"","sources":["../../../src/commands/cleanup-plan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/commands/cleanup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AA6B1E,6EAA6E;AAC7E,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,OAAO,GAClB,gBAAgB,EAAE,CA+EpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA6D7E;AAoGD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAiZ5B,CAAC;eAEa,cAAc"}
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/commands/cleanup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAa1E,6EAA6E;AAC7E,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,OAAO,GAClB,gBAAgB,EAAE,CA+EpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA6D7E;AAyDD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OA6V5B,CAAC;eA0Ba,cAAc"}