@monoes/monomindcli 2.16.11 → 2.16.13
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.
- package/.claude/agents/core/coder.md +1 -1
- package/.claude/agents/engineering/engineering-devops-automator.md +1 -1
- package/.claude/agents/github/repo-architect.md +1 -1
- package/.claude/agents/testing/production-validator.md +1 -1
- package/.claude/agents/testing/testing-tool-evaluator.md +1 -1
- package/.claude/commands/github/pr-manager.md +1 -1
- package/.claude/helpers/pick-rank.cjs +34 -4
- package/.claude/skills/monolean-audit/SKILL.md +1 -1
- package/dist/src/commands/cleanup-data.d.ts +30 -0
- package/dist/src/commands/cleanup-data.d.ts.map +1 -0
- package/dist/src/commands/cleanup-data.js +138 -0
- package/dist/src/commands/cleanup-data.js.map +1 -0
- package/dist/src/commands/cleanup-origin.d.ts +24 -0
- package/dist/src/commands/cleanup-origin.d.ts.map +1 -0
- package/dist/src/commands/cleanup-origin.js +67 -0
- package/dist/src/commands/cleanup-origin.js.map +1 -0
- package/dist/src/commands/cleanup-scratch.d.ts +43 -0
- package/dist/src/commands/cleanup-scratch.d.ts.map +1 -0
- package/dist/src/commands/cleanup-scratch.js +125 -0
- package/dist/src/commands/cleanup-scratch.js.map +1 -0
- package/dist/src/commands/cleanup.d.ts +2 -39
- package/dist/src/commands/cleanup.d.ts.map +1 -1
- package/dist/src/commands/cleanup.js +9 -296
- package/dist/src/commands/cleanup.js.map +1 -1
- package/dist/src/commands/doctor-gitignore-checks.d.ts +10 -0
- package/dist/src/commands/doctor-gitignore-checks.d.ts.map +1 -0
- package/dist/src/commands/doctor-gitignore-checks.js +141 -0
- package/dist/src/commands/doctor-gitignore-checks.js.map +1 -0
- package/dist/src/commands/doctor-helpers-checks.d.ts +10 -0
- package/dist/src/commands/doctor-helpers-checks.d.ts.map +1 -0
- package/dist/src/commands/doctor-helpers-checks.js +292 -0
- package/dist/src/commands/doctor-helpers-checks.js.map +1 -0
- package/dist/src/commands/doctor-memory-checks.d.ts +47 -0
- package/dist/src/commands/doctor-memory-checks.d.ts.map +1 -0
- package/dist/src/commands/doctor-memory-checks.js +298 -0
- package/dist/src/commands/doctor-memory-checks.js.map +1 -0
- package/dist/src/commands/doctor-monograph-checks.d.ts +9 -0
- package/dist/src/commands/doctor-monograph-checks.d.ts.map +1 -0
- package/dist/src/commands/doctor-monograph-checks.js +331 -0
- package/dist/src/commands/doctor-monograph-checks.js.map +1 -0
- package/dist/src/commands/doctor-project-checks.d.ts +7 -66
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +10 -1331
- package/dist/src/commands/doctor-project-checks.js.map +1 -1
- package/dist/src/commands/doctor-routing-checks.d.ts +10 -0
- package/dist/src/commands/doctor-routing-checks.d.ts.map +1 -0
- package/dist/src/commands/doctor-routing-checks.js +194 -0
- package/dist/src/commands/doctor-routing-checks.js.map +1 -0
- package/dist/src/commands/doctor-worker-checks.d.ts +17 -0
- package/dist/src/commands/doctor-worker-checks.d.ts.map +1 -0
- package/dist/src/commands/doctor-worker-checks.js +122 -0
- package/dist/src/commands/doctor-worker-checks.js.map +1 -0
- package/dist/src/commands/hooks-routing-commands.js +1 -1
- package/dist/src/commands/hooks-routing-commands.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +6 -15
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/never-commit.d.ts +3 -3
- package/dist/src/init/types.d.ts +1 -1
- package/dist/src/init/types.js +1 -1
- package/dist/src/knowledge/document-store.js +1 -1
- package/dist/src/knowledge/document-store.js.map +1 -1
- package/dist/src/mcp-tools/hooks-edit-command.d.ts +10 -0
- package/dist/src/mcp-tools/hooks-edit-command.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-edit-command.js +247 -0
- package/dist/src/mcp-tools/hooks-edit-command.js.map +1 -0
- package/dist/src/mcp-tools/hooks-learning.d.ts +9 -0
- package/dist/src/mcp-tools/hooks-learning.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-learning.js +408 -0
- package/dist/src/mcp-tools/hooks-learning.js.map +1 -0
- package/dist/src/mcp-tools/hooks-metrics-list.d.ts +8 -0
- package/dist/src/mcp-tools/hooks-metrics-list.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-metrics-list.js +205 -0
- package/dist/src/mcp-tools/hooks-metrics-list.js.map +1 -0
- package/dist/src/mcp-tools/hooks-route.d.ts +12 -0
- package/dist/src/mcp-tools/hooks-route.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-route.js +251 -0
- package/dist/src/mcp-tools/hooks-route.js.map +1 -0
- package/dist/src/mcp-tools/hooks-routing.d.ts +6 -27
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +6 -1727
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/hooks-session.d.ts +9 -0
- package/dist/src/mcp-tools/hooks-session.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-session.js +243 -0
- package/dist/src/mcp-tools/hooks-session.js.map +1 -0
- package/dist/src/mcp-tools/hooks-task.d.ts +17 -0
- package/dist/src/mcp-tools/hooks-task.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-task.js +427 -0
- package/dist/src/mcp-tools/hooks-task.js.map +1 -0
- package/dist/src/mcp-tools/hooks-tools.d.ts +2 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +2 -1
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +1 -1
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/memory/bm25-index.d.ts +2 -2
- package/dist/src/memory/bm25-index.js +2 -2
- package/dist/src/memory/embedding-operations.js +2 -2
- package/dist/src/memory/embedding-operations.js.map +1 -1
- package/dist/src/memory/entity-name-key.d.ts +1 -1
- package/dist/src/memory/entity-name-key.js +1 -1
- package/dist/src/memory/hnsw-operations.d.ts +1 -1
- package/dist/src/memory/hnsw-operations.js +1 -1
- package/dist/src/memory/memory-bridge-backend.d.ts +43 -0
- package/dist/src/memory/memory-bridge-backend.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge-backend.js +363 -0
- package/dist/src/memory/memory-bridge-backend.js.map +1 -0
- package/dist/src/memory/memory-bridge-core.d.ts +42 -0
- package/dist/src/memory/memory-bridge-core.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge-core.js +126 -0
- package/dist/src/memory/memory-bridge-core.js.map +1 -0
- package/dist/src/memory/memory-bridge-entries.d.ts +131 -0
- package/dist/src/memory/memory-bridge-entries.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge-entries.js +227 -0
- package/dist/src/memory/memory-bridge-entries.js.map +1 -0
- package/dist/src/memory/memory-bridge-feedback.d.ts +60 -0
- package/dist/src/memory/memory-bridge-feedback.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge-feedback.js +118 -0
- package/dist/src/memory/memory-bridge-feedback.js.map +1 -0
- package/dist/src/memory/memory-bridge-paths.d.ts +123 -0
- package/dist/src/memory/memory-bridge-paths.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge-paths.js +335 -0
- package/dist/src/memory/memory-bridge-paths.js.map +1 -0
- package/dist/src/memory/memory-bridge-search.d.ts +48 -0
- package/dist/src/memory/memory-bridge-search.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge-search.js +383 -0
- package/dist/src/memory/memory-bridge-search.js.map +1 -0
- package/dist/src/memory/memory-bridge-sessions.d.ts +38 -0
- package/dist/src/memory/memory-bridge-sessions.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge-sessions.js +109 -0
- package/dist/src/memory/memory-bridge-sessions.js.map +1 -0
- package/dist/src/memory/memory-bridge-store.d.ts +58 -0
- package/dist/src/memory/memory-bridge-store.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge-store.js +201 -0
- package/dist/src/memory/memory-bridge-store.js.map +1 -0
- package/dist/src/memory/memory-bridge.d.ts +10 -438
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +14 -1787
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-kg-claims.d.ts +52 -0
- package/dist/src/memory/memory-kg-claims.d.ts.map +1 -0
- package/dist/src/memory/memory-kg-claims.js +99 -0
- package/dist/src/memory/memory-kg-claims.js.map +1 -0
- package/dist/src/memory/memory-kg-index.d.ts +86 -0
- package/dist/src/memory/memory-kg-index.d.ts.map +1 -0
- package/dist/src/memory/memory-kg-index.js +256 -0
- package/dist/src/memory/memory-kg-index.js.map +1 -0
- package/dist/src/memory/memory-kg-ingest.d.ts +44 -0
- package/dist/src/memory/memory-kg-ingest.d.ts.map +1 -0
- package/dist/src/memory/memory-kg-ingest.js +361 -0
- package/dist/src/memory/memory-kg-ingest.js.map +1 -0
- package/dist/src/memory/memory-kg-model.d.ts +168 -0
- package/dist/src/memory/memory-kg-model.d.ts.map +1 -0
- package/dist/src/memory/memory-kg-model.js +158 -0
- package/dist/src/memory/memory-kg-model.js.map +1 -0
- package/dist/src/memory/memory-kg-names.d.ts +64 -0
- package/dist/src/memory/memory-kg-names.d.ts.map +1 -0
- package/dist/src/memory/memory-kg-names.js +187 -0
- package/dist/src/memory/memory-kg-names.js.map +1 -0
- package/dist/src/memory/memory-kg-promote.d.ts +79 -0
- package/dist/src/memory/memory-kg-promote.d.ts.map +1 -0
- package/dist/src/memory/memory-kg-promote.js +248 -0
- package/dist/src/memory/memory-kg-promote.js.map +1 -0
- package/dist/src/memory/memory-kg-rebuild.d.ts +77 -0
- package/dist/src/memory/memory-kg-rebuild.d.ts.map +1 -0
- package/dist/src/memory/memory-kg-rebuild.js +299 -0
- package/dist/src/memory/memory-kg-rebuild.js.map +1 -0
- package/dist/src/memory/memory-kg-rollback.d.ts +47 -0
- package/dist/src/memory/memory-kg-rollback.d.ts.map +1 -0
- package/dist/src/memory/memory-kg-rollback.js +193 -0
- package/dist/src/memory/memory-kg-rollback.js.map +1 -0
- package/dist/src/memory/memory-kg-rules.d.ts +64 -0
- package/dist/src/memory/memory-kg-rules.d.ts.map +1 -0
- package/dist/src/memory/memory-kg-rules.js +251 -0
- package/dist/src/memory/memory-kg-rules.js.map +1 -0
- package/dist/src/memory/memory-kg-scan.d.ts +118 -0
- package/dist/src/memory/memory-kg-scan.d.ts.map +1 -0
- package/dist/src/memory/memory-kg-scan.js +209 -0
- package/dist/src/memory/memory-kg-scan.js.map +1 -0
- package/dist/src/memory/memory-kg-search.d.ts +80 -0
- package/dist/src/memory/memory-kg-search.d.ts.map +1 -0
- package/dist/src/memory/memory-kg-search.js +239 -0
- package/dist/src/memory/memory-kg-search.js.map +1 -0
- package/dist/src/memory/memory-kg.d.ts +19 -547
- package/dist/src/memory/memory-kg.d.ts.map +1 -1
- package/dist/src/memory/memory-kg.js +10 -2389
- package/dist/src/memory/memory-kg.js.map +1 -1
- package/dist/src/orgrt/sandbox-stubs.d.ts +4 -0
- package/dist/src/orgrt/sandbox-stubs.d.ts.map +1 -1
- package/dist/src/orgrt/sandbox-stubs.js +12 -2
- package/dist/src/orgrt/sandbox-stubs.js.map +1 -1
- package/dist/src/ui/org-hil.mjs +1 -1
- package/dist/src/ui/routes-org-agents.mjs +318 -0
- package/dist/src/ui/routes-org-approvals.mjs +133 -0
- package/dist/src/ui/routes-org-config.mjs +459 -0
- package/dist/src/ui/routes-org-control.mjs +300 -0
- package/dist/src/ui/routes-org-files.mjs +172 -0
- package/dist/src/ui/routes-org-helpers.mjs +84 -0
- package/dist/src/ui/routes-org-knowledge.mjs +262 -0
- package/dist/src/ui/routes-org-lifecycle.mjs +224 -0
- package/dist/src/ui/routes-org-live.mjs +278 -0
- package/dist/src/ui/routes-org-mastermind.mjs +346 -0
- package/dist/src/ui/routes-org-planning.mjs +398 -0
- package/dist/src/ui/routes-org-runs.mjs +430 -0
- package/dist/src/ui/routes-org-status.mjs +342 -0
- package/dist/src/ui/routes-org-workflows.mjs +212 -0
- package/dist/src/ui/routes-org.mjs +26 -3847
- package/dist/src/ui/server.mjs +1 -1
- package/dist/src/utils/native-error.d.ts +1 -1
- package/dist/src/utils/native-error.js +1 -1
- package/dist/src/utils/paths.d.ts +2 -1
- package/dist/src/utils/paths.d.ts.map +1 -1
- package/dist/src/utils/paths.js +2 -1
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/org-skills/adversarial-reviewer/SKILL.md +1 -1
- package/org-skills/board-deck-builder/SKILL.md +1 -1
- package/org-skills/code-reviewer/SKILL.md +1 -1
- package/org-skills/debugging-wizard/SKILL.md +1 -1
- package/org-skills/scientific-thinking-literature-review/SKILL.md +1 -1
- package/org-skills/scientific-thinking-scholar-evaluation/SKILL.md +1 -1
- package/package.json +8 -8
|
@@ -5,45 +5,8 @@
|
|
|
5
5
|
* github.com/monoes/monomind
|
|
6
6
|
*/
|
|
7
7
|
import type { Command } from '../types.js';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
path: string;
|
|
11
|
-
description: string;
|
|
12
|
-
size: number;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Entries of the project registry (~/.monomind-projects.json, written by
|
|
16
|
-
* `init` for `init upgrade --all`) whose project was deleted, by the same rule
|
|
17
|
-
* as project-data dirs. Exported for tests; unreadable registry → none.
|
|
18
|
-
*/
|
|
19
|
-
export declare function findStaleRegistryEntries(registryPath: string): string[];
|
|
20
|
-
/**
|
|
21
|
-
* Find prunable entries under the per-project data base (default
|
|
22
|
-
* ~/.monomind/projects). Exported for tests — `baseDir`/`now` injectable.
|
|
23
|
-
*
|
|
24
|
-
* Classification per dir:
|
|
25
|
-
* - `origin.json` present and its recorded path still exists → keep the dir,
|
|
26
|
-
* but flag a leftover `lancedb/` subdir (dead since the SQLite engine swap).
|
|
27
|
-
* - `origin.json` present, recorded path provably deleted (not merely on an
|
|
28
|
-
* unmounted volume, see {@link isProvablyDeleted}) → orphaned → prune.
|
|
29
|
-
* - no `origin.json` (pre-2.3.1 dirs can't prove their origin) → prune only
|
|
30
|
-
* when untouched for {@link UNKNOWN_DIR_MAX_AGE_MS} — or immediately with
|
|
31
|
-
* `--aggressive`, which treats unprovable dirs as junk (safe: every live
|
|
32
|
-
* project rewrites origin.json on its next memory access).
|
|
33
|
-
*/
|
|
34
|
-
export declare function findOrphanedProjectData(baseDir: string, now: number, aggressive: boolean): StaleScratchItem[];
|
|
35
|
-
/**
|
|
36
|
-
* Find stale mastermind scratch under `.monomind/taskdev/` and `.monomind/loops/`.
|
|
37
|
-
* Exported for tests. Never returns `progress.md` (the taskdev recovery ledger),
|
|
38
|
-
* directories, or loop JSON it cannot parse — deleting the unclassifiable loses data.
|
|
39
|
-
*
|
|
40
|
-
* A loop JSON is only ever classified as abandoned when it has a real, positive,
|
|
41
|
-
* numeric `nextRunAt` timestamp that is more than a day in the past. Live producers
|
|
42
|
-
* write `nextRunAt: 0` (real /do loops) or `nextRunAt: null` (dashboard) — those,
|
|
43
|
-
* along with missing/non-numeric values, are never eligible for deletion regardless
|
|
44
|
-
* of `status`, since a crashed daemon can leave a stale `status: 'running'` behind.
|
|
45
|
-
*/
|
|
46
|
-
export declare function findStaleScratch(cwd: string, now: number): StaleScratchItem[];
|
|
8
|
+
export { findOrphanedProjectData, findStaleRegistryEntries } from './cleanup-data.js';
|
|
9
|
+
export { findStaleScratch } from './cleanup-scratch.js';
|
|
47
10
|
/**
|
|
48
11
|
* Cleanup command definition
|
|
49
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/commands/cleanup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/commands/cleanup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAc1E,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAwX5B,CAAC;eA0Ba,cAAc"}
|
|
@@ -8,303 +8,15 @@
|
|
|
8
8
|
// here throws "require is not defined" in the built output even though it
|
|
9
9
|
// typechecks and passes tests. Guarded by no-cjs-require-in-esm.test.ts.
|
|
10
10
|
import { execSync } from 'node:child_process';
|
|
11
|
-
import { existsSync,
|
|
12
|
-
import { homedir
|
|
13
|
-
import {
|
|
11
|
+
import { existsSync, readFileSync, rmSync, statSync, unlinkSync } from 'node:fs';
|
|
12
|
+
import { homedir } from 'node:os';
|
|
13
|
+
import { join } from 'node:path';
|
|
14
14
|
import { output } from '../output.js';
|
|
15
|
+
import { findOrphanedProjectData, findStaleRegistryEntries, pruneRegistryEntries, } from './cleanup-data.js';
|
|
15
16
|
import { applyCleanupEntry, buildCleanupPlan, isMonomindSourceRepo, } from './cleanup-plan.js';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const LOOP_STALE_GRACE_MS = 24 * 60 * 60 * 1000; // a live loop reschedules every <=1h; overdue by a day = abandoned
|
|
20
|
-
/** Orphaned per-project data (--data): ~/.monomind/projects/<slug> dirs whose
|
|
21
|
-
* source project is gone, plus dead lancedb/ dirs left by the pre-2.3.1 engine. */
|
|
22
|
-
const UNKNOWN_DIR_MAX_AGE_MS = 30 * 24 * 60 * 60 * 1000;
|
|
23
|
-
/** Where removable volumes appear; a missing path under one may just be unplugged. */
|
|
24
|
-
const MEDIA_ROOTS = ['/Volumes', '/media', '/mnt', '/run/media'];
|
|
25
|
-
function isMountPoint(dir) {
|
|
26
|
-
const parent = dirname(dir);
|
|
27
|
-
if (parent === dir)
|
|
28
|
-
return true; // filesystem root
|
|
29
|
-
try {
|
|
30
|
-
return statSync(dir).dev !== statSync(parent).dev;
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
return true; // cannot tell — stay cautious
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* True when a recorded project path is gone because it was deleted, not
|
|
38
|
-
* because the volume holding it is unmounted. Walks up to the nearest existing
|
|
39
|
-
* ancestor: when that is the path's own parent (the old rule), a well-known
|
|
40
|
-
* local root (home, /tmp, /var/tmp, the OS temp dir) or an ordinary directory,
|
|
41
|
-
* the path was deleted — this covers a whole deleted test root (#347). When it
|
|
42
|
-
* is a mount point (`/`, a network share's mount) or a removable-media
|
|
43
|
-
* directory, the missing piece may be a volume that is not attached right now.
|
|
44
|
-
*/
|
|
45
|
-
function isProvablyDeleted(p) {
|
|
46
|
-
const target = resolve(p);
|
|
47
|
-
if (existsSync(target))
|
|
48
|
-
return false;
|
|
49
|
-
const parent = dirname(target);
|
|
50
|
-
let nearest = parent;
|
|
51
|
-
while (!existsSync(nearest) && dirname(nearest) !== nearest)
|
|
52
|
-
nearest = dirname(nearest);
|
|
53
|
-
if (nearest === parent)
|
|
54
|
-
return true;
|
|
55
|
-
const localRoots = new Set();
|
|
56
|
-
for (const r of [homedir(), '/tmp', '/var/tmp', tmpdir()]) {
|
|
57
|
-
localRoots.add(resolve(r));
|
|
58
|
-
try {
|
|
59
|
-
localRoots.add(realpathSync(r));
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
/* missing root — nothing to add */
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if (localRoots.has(nearest))
|
|
66
|
-
return true;
|
|
67
|
-
if (MEDIA_ROOTS.includes(nearest) || MEDIA_ROOTS.includes(dirname(nearest)))
|
|
68
|
-
return false;
|
|
69
|
-
return !isMountPoint(nearest);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Entries of the project registry (~/.monomind-projects.json, written by
|
|
73
|
-
* `init` for `init upgrade --all`) whose project was deleted, by the same rule
|
|
74
|
-
* as project-data dirs. Exported for tests; unreadable registry → none.
|
|
75
|
-
*/
|
|
76
|
-
export function findStaleRegistryEntries(registryPath) {
|
|
77
|
-
try {
|
|
78
|
-
const reg = JSON.parse(readFileSync(registryPath, 'utf-8'));
|
|
79
|
-
if (!Array.isArray(reg.projects))
|
|
80
|
-
return [];
|
|
81
|
-
return reg.projects.filter((p) => typeof p === 'string' && p.length > 0 && isProvablyDeleted(p));
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
return [];
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/** Rewrite the registry without `stale`, re-read first so a concurrent `init` registration survives. */
|
|
88
|
-
function pruneRegistryEntries(registryPath, stale) {
|
|
89
|
-
const reg = JSON.parse(readFileSync(registryPath, 'utf-8'));
|
|
90
|
-
const drop = new Set(stale);
|
|
91
|
-
const kept = reg.projects.filter((p) => !(typeof p === 'string' && drop.has(p)));
|
|
92
|
-
const removed = reg.projects.length - kept.length;
|
|
93
|
-
if (removed > 0) {
|
|
94
|
-
reg.projects = kept;
|
|
95
|
-
writeFileSync(registryPath, JSON.stringify(reg, null, 2), 'utf-8');
|
|
96
|
-
}
|
|
97
|
-
return removed;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Find prunable entries under the per-project data base (default
|
|
101
|
-
* ~/.monomind/projects). Exported for tests — `baseDir`/`now` injectable.
|
|
102
|
-
*
|
|
103
|
-
* Classification per dir:
|
|
104
|
-
* - `origin.json` present and its recorded path still exists → keep the dir,
|
|
105
|
-
* but flag a leftover `lancedb/` subdir (dead since the SQLite engine swap).
|
|
106
|
-
* - `origin.json` present, recorded path provably deleted (not merely on an
|
|
107
|
-
* unmounted volume, see {@link isProvablyDeleted}) → orphaned → prune.
|
|
108
|
-
* - no `origin.json` (pre-2.3.1 dirs can't prove their origin) → prune only
|
|
109
|
-
* when untouched for {@link UNKNOWN_DIR_MAX_AGE_MS} — or immediately with
|
|
110
|
-
* `--aggressive`, which treats unprovable dirs as junk (safe: every live
|
|
111
|
-
* project rewrites origin.json on its next memory access).
|
|
112
|
-
*/
|
|
113
|
-
export function findOrphanedProjectData(baseDir, now, aggressive) {
|
|
114
|
-
const out = [];
|
|
115
|
-
if (!existsSync(baseDir))
|
|
116
|
-
return out;
|
|
117
|
-
for (const name of readdirSync(baseDir)) {
|
|
118
|
-
if (name.startsWith('.'))
|
|
119
|
-
continue;
|
|
120
|
-
const dir = join(baseDir, name);
|
|
121
|
-
try {
|
|
122
|
-
if (!lstatSync(dir).isDirectory())
|
|
123
|
-
continue;
|
|
124
|
-
}
|
|
125
|
-
catch {
|
|
126
|
-
continue;
|
|
127
|
-
}
|
|
128
|
-
// Staleness must consider the files writes actually touch: appends to
|
|
129
|
-
// lancedb/memory.db and origin.json refreshes do NOT bump the slug dir's
|
|
130
|
-
// own mtime, so an actively-used project would otherwise look 30d stale.
|
|
131
|
-
const mtimeOf = (p) => {
|
|
132
|
-
try {
|
|
133
|
-
return lstatSync(p).mtimeMs;
|
|
134
|
-
}
|
|
135
|
-
catch {
|
|
136
|
-
return 0;
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
const mtime = Math.max(mtimeOf(dir), mtimeOf(join(dir, 'origin.json')), mtimeOf(join(dir, 'lancedb', 'memory.db')), mtimeOf(join(dir, 'memory.db')));
|
|
140
|
-
const originFile = join(dir, 'origin.json');
|
|
141
|
-
let originPath = null;
|
|
142
|
-
let hasOrigin = false;
|
|
143
|
-
try {
|
|
144
|
-
originPath = String(JSON.parse(readFileSync(originFile, 'utf-8')).path ?? '');
|
|
145
|
-
hasOrigin = originPath.length > 0;
|
|
146
|
-
}
|
|
147
|
-
catch {
|
|
148
|
-
/* no/corrupt marker */
|
|
149
|
-
}
|
|
150
|
-
if (hasOrigin && originPath && existsSync(originPath)) {
|
|
151
|
-
// NOTE: the directory is *named* lancedb for historical reasons, but the
|
|
152
|
-
// current SQLite engine keeps its LIVE memory.db inside it. Only genuine
|
|
153
|
-
// LanceDB leftovers (*.lance datasets, no memory.db) are dead weight.
|
|
154
|
-
const lance = join(dir, 'lancedb');
|
|
155
|
-
if (existsSync(lance) && !existsSync(join(lance, 'memory.db'))) {
|
|
156
|
-
let hasLanceData = false;
|
|
157
|
-
try {
|
|
158
|
-
hasLanceData = readdirSync(lance).some((f) => f.endsWith('.lance') || f === '__manifest');
|
|
159
|
-
}
|
|
160
|
-
catch {
|
|
161
|
-
/* unreadable — leave it */
|
|
162
|
-
}
|
|
163
|
-
if (hasLanceData)
|
|
164
|
-
out.push({
|
|
165
|
-
path: lance,
|
|
166
|
-
description: `dead lancedb store (project: ${originPath})`,
|
|
167
|
-
size: 0,
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
continue;
|
|
171
|
-
}
|
|
172
|
-
if (hasOrigin && originPath) {
|
|
173
|
-
// An unmounted volume / disconnected network share makes the whole
|
|
174
|
-
// subtree vanish temporarily, and that must never count as "project
|
|
175
|
-
// deleted" — see isProvablyDeleted.
|
|
176
|
-
if (isProvablyDeleted(originPath)) {
|
|
177
|
-
out.push({
|
|
178
|
-
path: dir,
|
|
179
|
-
description: `orphaned project data (origin gone: ${originPath})`,
|
|
180
|
-
size: 0,
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
else if (aggressive || now - mtime > UNKNOWN_DIR_MAX_AGE_MS) {
|
|
185
|
-
out.push({
|
|
186
|
-
path: dir,
|
|
187
|
-
description: aggressive
|
|
188
|
-
? 'unverifiable project data (no origin marker)'
|
|
189
|
-
: 'unverifiable project data (untouched >30d)',
|
|
190
|
-
size: 0,
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
return out;
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Find stale mastermind scratch under `.monomind/taskdev/` and `.monomind/loops/`.
|
|
198
|
-
* Exported for tests. Never returns `progress.md` (the taskdev recovery ledger),
|
|
199
|
-
* directories, or loop JSON it cannot parse — deleting the unclassifiable loses data.
|
|
200
|
-
*
|
|
201
|
-
* A loop JSON is only ever classified as abandoned when it has a real, positive,
|
|
202
|
-
* numeric `nextRunAt` timestamp that is more than a day in the past. Live producers
|
|
203
|
-
* write `nextRunAt: 0` (real /do loops) or `nextRunAt: null` (dashboard) — those,
|
|
204
|
-
* along with missing/non-numeric values, are never eligible for deletion regardless
|
|
205
|
-
* of `status`, since a crashed daemon can leave a stale `status: 'running'` behind.
|
|
206
|
-
*/
|
|
207
|
-
export function findStaleScratch(cwd, now) {
|
|
208
|
-
const out = [];
|
|
209
|
-
const taskdevDir = join(cwd, '.monomind', 'taskdev');
|
|
210
|
-
if (existsSync(taskdevDir)) {
|
|
211
|
-
for (const f of readdirSync(taskdevDir)) {
|
|
212
|
-
if (f === 'progress.md')
|
|
213
|
-
continue; // the ledger is the recovery map — never auto-prune
|
|
214
|
-
try {
|
|
215
|
-
const st = lstatSync(join(taskdevDir, f));
|
|
216
|
-
if (st.isFile() && now - st.mtimeMs > SCRATCH_MAX_AGE_MS) {
|
|
217
|
-
out.push({
|
|
218
|
-
path: join('.monomind', 'taskdev', f),
|
|
219
|
-
description: 'stale taskdev scratch',
|
|
220
|
-
size: st.size,
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
catch {
|
|
225
|
-
/* raced away or unreadable — leave it */
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
const loopsDir = join(cwd, '.monomind', 'loops');
|
|
230
|
-
if (existsSync(loopsDir)) {
|
|
231
|
-
const entries = readdirSync(loopsDir);
|
|
232
|
-
const jsonStems = new Set(entries.filter((f) => f.endsWith('.json')).map((f) => f.replace(/\.json$/, '')));
|
|
233
|
-
for (const f of entries) {
|
|
234
|
-
try {
|
|
235
|
-
const st = lstatSync(join(loopsDir, f));
|
|
236
|
-
if (!st.isFile())
|
|
237
|
-
continue;
|
|
238
|
-
if (f.endsWith('.json')) {
|
|
239
|
-
const parsed = JSON.parse(readFileSync(join(loopsDir, f), 'utf8'));
|
|
240
|
-
const { nextRunAt } = parsed;
|
|
241
|
-
const isStale = typeof nextRunAt === 'number' &&
|
|
242
|
-
Number.isFinite(nextRunAt) &&
|
|
243
|
-
nextRunAt > 0 &&
|
|
244
|
-
now - nextRunAt > LOOP_STALE_GRACE_MS;
|
|
245
|
-
if (isStale) {
|
|
246
|
-
out.push({
|
|
247
|
-
path: join('.monomind', 'loops', f),
|
|
248
|
-
description: 'abandoned loop state',
|
|
249
|
-
size: st.size,
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
else if (f.endsWith('.stop') && !jsonStems.has(f.replace(/\.stop$/, ''))) {
|
|
254
|
-
out.push({
|
|
255
|
-
path: join('.monomind', 'loops', f),
|
|
256
|
-
description: 'orphaned loop stopfile',
|
|
257
|
-
size: st.size,
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
catch {
|
|
262
|
-
/* unparseable or unreadable — never delete what we cannot classify */
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
return out;
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Report (dry run) or delete a batch of file/dir items, printing the same
|
|
270
|
-
* `[would remove]` / `[removed]` / `[failed]` lines used across cleanup modes.
|
|
271
|
-
* Shared by the scratch branch; the main artifact loop keeps its own copy
|
|
272
|
-
* because of the `--keep-config` `.claude/settings.json` preservation special case.
|
|
273
|
-
*/
|
|
274
|
-
function removeOrReport(cwd, items, dryRun) {
|
|
275
|
-
let removed = 0;
|
|
276
|
-
let removedSize = 0;
|
|
277
|
-
for (const item of items) {
|
|
278
|
-
const sizeStr = formatSize(item.size);
|
|
279
|
-
const typeLabel = item.type === 'dir' ? 'dir ' : 'file';
|
|
280
|
-
if (dryRun) {
|
|
281
|
-
output.writeln(output.warning(` [would remove] ${typeLabel} ${item.path} (${sizeStr}) - ${item.description}`));
|
|
282
|
-
}
|
|
283
|
-
else {
|
|
284
|
-
try {
|
|
285
|
-
rmSync(join(cwd, item.path), { recursive: item.type === 'dir', force: true });
|
|
286
|
-
output.writeln(output.success(` [removed] ${typeLabel} ${item.path} (${sizeStr}) - ${item.description}`));
|
|
287
|
-
removed++;
|
|
288
|
-
removedSize += item.size;
|
|
289
|
-
}
|
|
290
|
-
catch (err) {
|
|
291
|
-
output.writeln(output.error(` [failed] ${typeLabel} ${item.path} - ${err instanceof Error ? err.message : String(err)}`));
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
return { removed, removedSize };
|
|
296
|
-
}
|
|
297
|
-
/**
|
|
298
|
-
* Format bytes into a human-readable string
|
|
299
|
-
*/
|
|
300
|
-
function formatSize(bytes) {
|
|
301
|
-
if (bytes === 0)
|
|
302
|
-
return '0 B';
|
|
303
|
-
const units = ['B', 'KB', 'MB', 'GB'];
|
|
304
|
-
const i = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);
|
|
305
|
-
const value = bytes / 1024 ** i;
|
|
306
|
-
return `${value.toFixed(i === 0 ? 0 : 1)} ${units[i]}`;
|
|
307
|
-
}
|
|
17
|
+
import { findStaleScratch, formatSize, removeOrReport } from './cleanup-scratch.js';
|
|
18
|
+
export { findOrphanedProjectData, findStaleRegistryEntries } from './cleanup-data.js';
|
|
19
|
+
export { findStaleScratch } from './cleanup-scratch.js';
|
|
308
20
|
/**
|
|
309
21
|
* Cleanup command definition
|
|
310
22
|
*/
|
|
@@ -430,13 +142,14 @@ export const cleanupCommand = {
|
|
|
430
142
|
const total = orphans.length + staleRegistryEntries.length;
|
|
431
143
|
output.writeln();
|
|
432
144
|
if (dryRun) {
|
|
433
|
-
output.writeln(output.dim(` ${total} item(s). This was a dry run. Use --force to delete.`));
|
|
145
|
+
output.writeln(output.dim(` ${total} item(s): ${orphans.length} project-data item(s), ${staleRegistryEntries.length} registry entry(ies). This was a dry run. Use --force to delete.`));
|
|
434
146
|
return {
|
|
435
147
|
success: true,
|
|
436
148
|
message: `Dry run: ${total} orphaned item(s) found`,
|
|
437
149
|
data: { found: orphans, staleRegistryEntries, dryRun },
|
|
438
150
|
};
|
|
439
151
|
}
|
|
152
|
+
output.writeln(` Removed ${removed} project-data item(s), pruned ${registryRemoved} registry entry(ies)`);
|
|
440
153
|
return {
|
|
441
154
|
success: true,
|
|
442
155
|
message: `Removed ${removed + registryRemoved} orphaned item(s)`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/commands/cleanup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/commands/cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor — .gitignore coverage check and its --fix.
|
|
3
|
+
* Extracted from doctor-project-checks.ts.
|
|
4
|
+
*/
|
|
5
|
+
import { type HealthCheck } from './doctor-env-checks.js';
|
|
6
|
+
export declare function checkGitignoreCoverage(root?: string): Promise<HealthCheck>;
|
|
7
|
+
/** Creates or appends the missing gitignore entries. Returns true if it wrote.
|
|
8
|
+
* Append-only and idempotent: never rewrites lines the user already has. */
|
|
9
|
+
export declare function fixGitignoreCoverage(root?: string): Promise<boolean>;
|
|
10
|
+
//# sourceMappingURL=doctor-gitignore-checks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-gitignore-checks.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor-gitignore-checks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,KAAK,WAAW,EAA8B,MAAM,wBAAwB,CAAC;AAkDtF,wBAAsB,sBAAsB,CAAC,IAAI,SAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAqCvF;AAyBD;6EAC6E;AAC7E,wBAAsB,oBAAoB,CAAC,IAAI,SAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BjF"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor — .gitignore coverage check and its --fix.
|
|
3
|
+
* Extracted from doctor-project-checks.ts.
|
|
4
|
+
*/
|
|
5
|
+
import { appendFileSync, existsSync, readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import { MONOMIND_NEVER_COMMIT } from '../init/never-commit.js';
|
|
8
|
+
import { MAX_DOCTOR_GITIGNORE_BYTES } from './doctor-env-checks.js';
|
|
9
|
+
// i-052: derived from MONOMIND_NEVER_COMMIT (write-runtime-config.ts), the
|
|
10
|
+
// single source of truth for files that must never be committed — this was
|
|
11
|
+
// the THIRD independently-maintained list that omitted `dashboard-token`,
|
|
12
|
+
// and it is the one written specifically to catch gitignore gaps. Consuming
|
|
13
|
+
// the shared list here means `monomind doctor --fix` (fixGitignoreCoverage
|
|
14
|
+
// below) appends any missing entry for existing users for free.
|
|
15
|
+
const REQUIRED_GITIGNORE_PATTERNS = [
|
|
16
|
+
{ pattern: '.monomind/sessions/', reason: 'session files contain cwd and machine paths' },
|
|
17
|
+
{ pattern: '.monomind/data/', reason: 'intelligence data with edit file paths' },
|
|
18
|
+
{ pattern: '.monomind/metrics/', reason: 'metrics with file path references' },
|
|
19
|
+
{ pattern: '.monomind/knowledge/', reason: 'knowledge chunks with local file content' },
|
|
20
|
+
{ pattern: '.monomind/*.json', reason: 'root-level runtime JSON (control, registry, routing)' },
|
|
21
|
+
{ pattern: '.monomind/*.jsonl', reason: 'root-level event logs (decisions, routing-feedback)' },
|
|
22
|
+
{ pattern: '**/.monomind/sessions/', reason: 'nested session files in sub-packages' },
|
|
23
|
+
{ pattern: '**/.monomind/*.json', reason: 'nested runtime JSON in sub-packages' },
|
|
24
|
+
{ pattern: 'data/sessions/', reason: 'session files with machine paths' },
|
|
25
|
+
{ pattern: 'data/mastermind-*.json', reason: 'mastermind session data' },
|
|
26
|
+
{ pattern: 'data/mastermind-*.jsonl', reason: 'mastermind event logs' },
|
|
27
|
+
{ pattern: '**/.claude-flow/', reason: 'claude-flow runtime data with paths' },
|
|
28
|
+
{ pattern: '.monomind/monoswarm/', reason: 'monoswarm state files' },
|
|
29
|
+
...MONOMIND_NEVER_COMMIT.map(({ file, reason }) => ({ pattern: `.monomind/${file}`, reason })),
|
|
30
|
+
];
|
|
31
|
+
/** Strip the parts that don't change what a pattern matches, so `**/.monomind/`,
|
|
32
|
+
* `.monomind/` and `.monomind` all compare equal. A gitignore pattern with no
|
|
33
|
+
* leading slash already matches at every depth, so `**/` is redundant. */
|
|
34
|
+
function normalizeGitignorePattern(p) {
|
|
35
|
+
return p
|
|
36
|
+
.replace(/^\/+/, '')
|
|
37
|
+
.replace(/^\*\*\//, '')
|
|
38
|
+
.replace(/\/+$/, '');
|
|
39
|
+
}
|
|
40
|
+
/** True when ignoring `line` already protects everything `required` covers.
|
|
41
|
+
* Beyond exact matches this understands directory containment: a repo with a
|
|
42
|
+
* blanket `.monomind/` is fully covered for `.monomind/sessions/`,
|
|
43
|
+
* `.monomind/*.json` and friends, and should not be nagged to add each one. */
|
|
44
|
+
function gitignoreLineCovers(line, required) {
|
|
45
|
+
const l = normalizeGitignorePattern(line);
|
|
46
|
+
const r = normalizeGitignorePattern(required);
|
|
47
|
+
if (!l)
|
|
48
|
+
return false;
|
|
49
|
+
if (l === r)
|
|
50
|
+
return true;
|
|
51
|
+
// A bare directory entry covers every path beneath it, but only when the
|
|
52
|
+
// entry itself is literal — `.monomind/*.json` must not be treated as an
|
|
53
|
+
// ancestor of `.monomind/sessions`.
|
|
54
|
+
return !l.includes('*') && r.startsWith(`${l}/`);
|
|
55
|
+
}
|
|
56
|
+
export async function checkGitignoreCoverage(root = process.cwd()) {
|
|
57
|
+
const gitignorePath = join(root, '.gitignore');
|
|
58
|
+
if (!existsSync(gitignorePath)) {
|
|
59
|
+
// The old hint was `echo ".monomind/\n**/.monomind/" >> .gitignore`, which
|
|
60
|
+
// writes a literal backslash-n (sh/bash echo does not interpret escapes
|
|
61
|
+
// without -e) — one junk line matching nothing. `--fix` now writes the file
|
|
62
|
+
// directly, so point at that rather than at a command to copy-paste.
|
|
63
|
+
return {
|
|
64
|
+
name: 'Gitignore Coverage',
|
|
65
|
+
status: 'warn',
|
|
66
|
+
message: 'No .gitignore found — all monomind runtime paths are unprotected',
|
|
67
|
+
fix: 'monomind doctor --fix (creates .gitignore covering .monomind/ and secrets)',
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (statSync(gitignorePath).size > MAX_DOCTOR_GITIGNORE_BYTES) {
|
|
71
|
+
return { name: 'Gitignore Coverage', status: 'warn', message: '.gitignore too large to parse' };
|
|
72
|
+
}
|
|
73
|
+
const lines = readFileSync(gitignorePath, 'utf-8')
|
|
74
|
+
.split('\n')
|
|
75
|
+
.map((l) => l.trim())
|
|
76
|
+
.filter((l) => l && !l.startsWith('#'));
|
|
77
|
+
const missing = REQUIRED_GITIGNORE_PATTERNS.filter(({ pattern }) => !lines.some((l) => gitignoreLineCovers(l, pattern)));
|
|
78
|
+
if (missing.length === 0)
|
|
79
|
+
return {
|
|
80
|
+
name: 'Gitignore Coverage',
|
|
81
|
+
status: 'pass',
|
|
82
|
+
message: 'All monomind runtime paths are gitignored',
|
|
83
|
+
};
|
|
84
|
+
const missingList = missing.map((m) => m.pattern).join(', ');
|
|
85
|
+
return {
|
|
86
|
+
name: 'Gitignore Coverage',
|
|
87
|
+
status: 'warn',
|
|
88
|
+
message: `${missing.length} runtime path(s) not in .gitignore: ${missingList}`,
|
|
89
|
+
fix: 'monomind doctor --fix (appends the missing entries)',
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/** Patterns written by `doctor --fix` when there is no .gitignore at all.
|
|
93
|
+
* Covers monomind runtime state plus the standard secrets files, since a repo
|
|
94
|
+
* with no .gitignore has nothing protecting those either. The runtime paths
|
|
95
|
+
* are the specific ones the check requires, never a blanket `.monomind/`:
|
|
96
|
+
* git cannot re-include a file below an ignored directory, so a blanket line
|
|
97
|
+
* disables init's own `.monomind/.gitignore` allow-list (config.yaml,
|
|
98
|
+
* CAPABILITIES.md, org definitions). */
|
|
99
|
+
const GITIGNORE_FIX_PATTERNS = [
|
|
100
|
+
'# monomind runtime state',
|
|
101
|
+
...REQUIRED_GITIGNORE_PATTERNS.map(({ pattern }) => pattern),
|
|
102
|
+
'',
|
|
103
|
+
'# secrets / local env',
|
|
104
|
+
'.env',
|
|
105
|
+
'.env.*',
|
|
106
|
+
'!.env.example',
|
|
107
|
+
'*.pem',
|
|
108
|
+
'*.key',
|
|
109
|
+
'',
|
|
110
|
+
'# dependencies / build output',
|
|
111
|
+
'node_modules/',
|
|
112
|
+
'dist/',
|
|
113
|
+
];
|
|
114
|
+
/** Creates or appends the missing gitignore entries. Returns true if it wrote.
|
|
115
|
+
* Append-only and idempotent: never rewrites lines the user already has. */
|
|
116
|
+
export async function fixGitignoreCoverage(root = process.cwd()) {
|
|
117
|
+
const gitignorePath = join(root, '.gitignore');
|
|
118
|
+
try {
|
|
119
|
+
if (!existsSync(gitignorePath)) {
|
|
120
|
+
writeFileSync(gitignorePath, `${GITIGNORE_FIX_PATTERNS.join('\n')}\n`, 'utf-8');
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
if (statSync(gitignorePath).size > MAX_DOCTOR_GITIGNORE_BYTES)
|
|
124
|
+
return false;
|
|
125
|
+
const existing = readFileSync(gitignorePath, 'utf-8');
|
|
126
|
+
const lines = existing
|
|
127
|
+
.split('\n')
|
|
128
|
+
.map((l) => l.trim())
|
|
129
|
+
.filter((l) => l && !l.startsWith('#'));
|
|
130
|
+
const missing = REQUIRED_GITIGNORE_PATTERNS.map((m) => m.pattern).filter((pattern) => !lines.some((l) => gitignoreLineCovers(l, pattern)));
|
|
131
|
+
if (missing.length === 0)
|
|
132
|
+
return false;
|
|
133
|
+
const prefix = existing.endsWith('\n') || existing === '' ? '' : '\n';
|
|
134
|
+
appendFileSync(gitignorePath, `${prefix}\n# monomind runtime state\n${missing.join('\n')}\n`, 'utf-8');
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=doctor-gitignore-checks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-gitignore-checks.js","sourceRoot":"","sources":["../../../src/commands/doctor-gitignore-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor — hook helper checks: installed helpers vs the bundled copies
|
|
3
|
+
* (freshness and --fix) and guidance gate wiring.
|
|
4
|
+
* Extracted from doctor-project-checks.ts.
|
|
5
|
+
*/
|
|
6
|
+
import { type HealthCheck } from './doctor-env-checks.js';
|
|
7
|
+
export declare function fixStaleHelpers(): Promise<boolean>;
|
|
8
|
+
export declare function checkHelpersFresh(): Promise<HealthCheck>;
|
|
9
|
+
export declare function checkGuidanceGates(): Promise<HealthCheck>;
|
|
10
|
+
//# sourceMappingURL=doctor-helpers-checks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-helpers-checks.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor-helpers-checks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EACL,KAAK,WAAW,EAIjB,MAAM,wBAAwB,CAAC;AAsIhC,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAyBxD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CA4C9D;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC,CAoF/D"}
|