@monoes/monomindcli 2.16.12 → 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-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 +5 -247
- 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/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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-memory-checks.js","sourceRoot":"","sources":["../../../src/commands/doctor-memory-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor — monograph checks: installed monograph/memory packages and graph
|
|
3
|
+
* freshness. Extracted from doctor-project-checks.ts.
|
|
4
|
+
*/
|
|
5
|
+
import { type HealthCheck } from './doctor-env-checks.js';
|
|
6
|
+
export declare function checkMonograph(): Promise<HealthCheck>;
|
|
7
|
+
export declare function checkMonographFreshness(): Promise<HealthCheck>;
|
|
8
|
+
export declare function checkMonoesMemory(): Promise<HealthCheck>;
|
|
9
|
+
//# sourceMappingURL=doctor-monograph-checks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-monograph-checks.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor-monograph-checks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,wBAAwB,CAAC;AAwChC,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAe3D;AAmDD,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,WAAW,CAAC,CA4LpE;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAkB9D"}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor — monograph checks: installed monograph/memory packages and graph
|
|
3
|
+
* freshness. Extracted from doctor-project-checks.ts.
|
|
4
|
+
*/
|
|
5
|
+
import { execSync } from 'node:child_process';
|
|
6
|
+
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
|
|
7
|
+
import { createRequire } from 'node:module';
|
|
8
|
+
import { dirname, join } from 'node:path';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
10
|
+
import { classifyNativeModuleError, extractNativeModulePackageName, } from '../utils/native-error.js';
|
|
11
|
+
import { MAX_DOCTOR_BUILD_LOG_SCAN_BYTES, MAX_DOCTOR_PKG_BYTES, } from './doctor-env-checks.js';
|
|
12
|
+
// Resolve an installed package's package.json through Node's real ESM
|
|
13
|
+
// resolution algorithm instead of guessing relative node_modules layouts.
|
|
14
|
+
// The old candidate-path approach assumed a nested install shape that never
|
|
15
|
+
// matches how npm actually hoists dependencies (flat local installs, npx's
|
|
16
|
+
// isolated cache dir, and global installs all put @monoes/* packages as
|
|
17
|
+
// siblings, not nested under this package's dist/ output) — so it always
|
|
18
|
+
// reported "not found" even when the package was present and importable.
|
|
19
|
+
// import.meta.resolve() is used (rather than createRequire().resolve()())
|
|
20
|
+
// because @monoes/monograph and @monoes/memory are ESM-only (no "require"
|
|
21
|
+
// export condition), so a CJS require.resolve() fails outright even when the
|
|
22
|
+
// package is installed. Their exports maps also don't expose a "./package.json"
|
|
23
|
+
// subpath, so the entry file is resolved first and package.json is found by
|
|
24
|
+
// walking up from it.
|
|
25
|
+
function _findInstalledPackageJson(specifier) {
|
|
26
|
+
try {
|
|
27
|
+
const entryUrl = import.meta.resolve(specifier);
|
|
28
|
+
let dir = dirname(fileURLToPath(entryUrl));
|
|
29
|
+
for (;;) {
|
|
30
|
+
const candidate = join(dir, 'package.json');
|
|
31
|
+
if (existsSync(candidate) && statSync(candidate).size <= MAX_DOCTOR_PKG_BYTES) {
|
|
32
|
+
try {
|
|
33
|
+
const pkg = JSON.parse(readFileSync(candidate, 'utf-8'));
|
|
34
|
+
if (pkg.name === specifier)
|
|
35
|
+
return { path: candidate, pkg };
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
/* keep walking */
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const parent = dirname(dir);
|
|
42
|
+
if (parent === dir)
|
|
43
|
+
return null;
|
|
44
|
+
dir = parent;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export async function checkMonograph() {
|
|
52
|
+
const found = _findInstalledPackageJson('@monoes/monograph');
|
|
53
|
+
if (found) {
|
|
54
|
+
return {
|
|
55
|
+
name: 'Monograph',
|
|
56
|
+
status: 'pass',
|
|
57
|
+
message: `v${found.pkg.version || '?'} available (knowledge graph engine)`,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
name: 'Monograph',
|
|
62
|
+
status: 'warn',
|
|
63
|
+
message: 'Package not found (knowledge graph disabled)',
|
|
64
|
+
fix: 'npm install -g monomind@latest',
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function formatAge(ms) {
|
|
68
|
+
// Filesystem mtime can round to whole seconds and land a hair ahead of
|
|
69
|
+
// Date.now() for a file written moments ago — clamp so that never reads
|
|
70
|
+
// as a negative, nonsensical age.
|
|
71
|
+
const minutes = Math.floor(Math.max(0, ms) / 60000);
|
|
72
|
+
return minutes < 60 ? `${minutes}m` : `${Math.floor(minutes / 60)}h`;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Best-effort "when was this package's own install last touched" probe,
|
|
76
|
+
* used only to soften a build.log-based failure (see #244) — never to
|
|
77
|
+
* harden one, so a wrong or missing answer here is always safe. Resolves
|
|
78
|
+
* `pkgName` from `cwd` (works through pnpm's symlinked store too, since
|
|
79
|
+
* `require.resolve` follows symlinks to the real file) and returns the
|
|
80
|
+
* latest mtime among its package.json and any `build/`/`prebuilds/` binary
|
|
81
|
+
* output, or null if the package can't be resolved at all — the caller
|
|
82
|
+
* treats null as "no evidence either way," not as "confirmed still broken."
|
|
83
|
+
*/
|
|
84
|
+
function findNativeModuleLastModifiedMs(pkgName, cwd) {
|
|
85
|
+
try {
|
|
86
|
+
const require = createRequire(join(cwd, 'noop.js'));
|
|
87
|
+
const entry = require.resolve(pkgName, { paths: [cwd] });
|
|
88
|
+
let pkgDir = dirname(entry);
|
|
89
|
+
for (let i = 0; i < 12 && !existsSync(join(pkgDir, 'package.json')); i++) {
|
|
90
|
+
const parent = dirname(pkgDir);
|
|
91
|
+
if (parent === pkgDir)
|
|
92
|
+
return null;
|
|
93
|
+
pkgDir = parent;
|
|
94
|
+
}
|
|
95
|
+
let latestMs = statSync(join(pkgDir, 'package.json')).mtimeMs;
|
|
96
|
+
for (const sub of ['build', 'prebuilds']) {
|
|
97
|
+
const subDir = join(pkgDir, sub);
|
|
98
|
+
if (!existsSync(subDir))
|
|
99
|
+
continue;
|
|
100
|
+
const stack = [subDir];
|
|
101
|
+
while (stack.length > 0) {
|
|
102
|
+
const current = stack.pop();
|
|
103
|
+
for (const entryName of readdirSync(current)) {
|
|
104
|
+
const full = join(current, entryName);
|
|
105
|
+
const st = statSync(full);
|
|
106
|
+
if (st.isDirectory())
|
|
107
|
+
stack.push(full);
|
|
108
|
+
else if (st.mtimeMs > latestMs)
|
|
109
|
+
latestMs = st.mtimeMs;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return latestMs;
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export async function checkMonographFreshness() {
|
|
120
|
+
try {
|
|
121
|
+
const cwd = process.cwd();
|
|
122
|
+
const dbPath = join(cwd, '.monomind', 'monograph.db');
|
|
123
|
+
const lockPath = join(cwd, '.monomind', 'graph', 'build.lock');
|
|
124
|
+
const statsPath = join(cwd, '.monomind', 'graph', 'stats.json');
|
|
125
|
+
const logPath = join(cwd, '.monomind', 'graph', 'build.log');
|
|
126
|
+
const hasDb = existsSync(dbPath);
|
|
127
|
+
if (!hasDb && !existsSync(statsPath)) {
|
|
128
|
+
// No graph yet — but that's one of three very different situations: a
|
|
129
|
+
// build is genuinely still running, one already ran and crashed (e.g.
|
|
130
|
+
// executor.ts's initKnowledgeGraph or monograph-freshen.cjs's detached
|
|
131
|
+
// spawn hit a native-module ABI mismatch), or nothing was ever
|
|
132
|
+
// attempted. Both spawners share this same build.lock/build.log pair,
|
|
133
|
+
// so this one check covers either origin.
|
|
134
|
+
//
|
|
135
|
+
// Lock existence (not freshness) is the right signal here: both
|
|
136
|
+
// spawners write build.lock with their OWN pid (the short-lived parent
|
|
137
|
+
// that immediately exits after spawning a detached child — not the
|
|
138
|
+
// child actually doing the build, so checking that pid's liveness
|
|
139
|
+
// would be checking the wrong process) and unlink it in a `finally`
|
|
140
|
+
// that runs on both success and a thrown/rejected build — so it's only
|
|
141
|
+
// ever left behind while the child is still actually running, or in
|
|
142
|
+
// the rare case of a hard OS-level kill that bypassed the `finally`.
|
|
143
|
+
// A large monorepo's first index can legitimately run well past any
|
|
144
|
+
// fixed "freshness" window, so age must not turn a live build into a
|
|
145
|
+
// false failure report. Neither spawner passes buildAsync an
|
|
146
|
+
// onProgress callback, so a clean run writes nothing to build.log
|
|
147
|
+
// until it's done — there's no heartbeat to check the log against, so
|
|
148
|
+
// this is worded to cover both "still running" and "was killed
|
|
149
|
+
// without cleaning up" rather than asserting liveness that can't
|
|
150
|
+
// actually be confirmed from disk.
|
|
151
|
+
if (existsSync(lockPath)) {
|
|
152
|
+
const ageMs = (() => {
|
|
153
|
+
try {
|
|
154
|
+
return Date.now() - statSync(lockPath).mtimeMs;
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
return 0;
|
|
158
|
+
}
|
|
159
|
+
})();
|
|
160
|
+
return {
|
|
161
|
+
name: 'Graph freshness',
|
|
162
|
+
status: 'warn',
|
|
163
|
+
message: `Monograph build in progress, or was interrupted — started ${formatAge(ageMs)} ago`,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
if (existsSync(logPath)) {
|
|
167
|
+
let logTail = '';
|
|
168
|
+
try {
|
|
169
|
+
const raw = readFileSync(logPath, 'utf8');
|
|
170
|
+
// Bound the scan to the last MAX_BUILD_LOG_SCAN_BYTES, not the last
|
|
171
|
+
// 4000 — that window was cutting the actual "Error:"/"Exception:"
|
|
172
|
+
// text out of real Node uncaught-exception dumps. A native-module
|
|
173
|
+
// load failure (e.g. `bindings` walking a dozen candidate .node
|
|
174
|
+
// paths before giving up) prints its message and stack FIRST, then
|
|
175
|
+
// a long list of tried paths — a single such dump easily runs
|
|
176
|
+
// 7-8KB, so a 4000-char tail can land entirely inside the path
|
|
177
|
+
// list and see no error keyword at all, even though the log is
|
|
178
|
+
// nothing but a crash report. 64KB comfortably fits many realistic
|
|
179
|
+
// crash dumps (including chained causes) while still bounding this
|
|
180
|
+
// append-only, never-truncated file for a long-lived project that
|
|
181
|
+
// has failed and retried many times.
|
|
182
|
+
logTail =
|
|
183
|
+
raw.length > MAX_DOCTOR_BUILD_LOG_SCAN_BYTES
|
|
184
|
+
? raw.slice(-MAX_DOCTOR_BUILD_LOG_SCAN_BYTES)
|
|
185
|
+
: raw;
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
/* unreadable log — treat as no evidence, fall through below */
|
|
189
|
+
}
|
|
190
|
+
// build.log only proves a build ran at some point — a *successful*
|
|
191
|
+
// build also writes into it before producing monograph.db, so its
|
|
192
|
+
// mere existence isn't evidence of failure (e.g. monograph.db was
|
|
193
|
+
// deleted afterward, leaving a clean run's log behind). Only treat
|
|
194
|
+
// this as a failure when the tail actually looks error-shaped;
|
|
195
|
+
// otherwise this isn't distinguishable from "never built" and
|
|
196
|
+
// should read that way rather than as an unsupported "fail".
|
|
197
|
+
const classified = logTail ? classifyNativeModuleError(logTail) : null;
|
|
198
|
+
const looksLikeFailure = classified !== null || /error|exception|traceback/i.test(logTail);
|
|
199
|
+
if (looksLikeFailure) {
|
|
200
|
+
let logMtimeMs = 0;
|
|
201
|
+
let logAgeStr = '';
|
|
202
|
+
try {
|
|
203
|
+
logMtimeMs = statSync(logPath).mtimeMs;
|
|
204
|
+
logAgeStr = ` (${formatAge(Date.now() - logMtimeMs)} ago)`;
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
/* ignore */
|
|
208
|
+
}
|
|
209
|
+
if (classified) {
|
|
210
|
+
// build.log is append-only (see the comment above), so this
|
|
211
|
+
// failure might be historical — already fixed by a `npm
|
|
212
|
+
// rebuild` that ran after this log entry, just not yet
|
|
213
|
+
// confirmed by a fresh `monograph build`. When the implicated
|
|
214
|
+
// module's own files are demonstrably newer than the log entry,
|
|
215
|
+
// that's concrete on-disk evidence it was touched since, so
|
|
216
|
+
// soften to a warning instead of asserting it's still broken.
|
|
217
|
+
// No evidence either way (can't resolve the module, or its
|
|
218
|
+
// files are no newer) falls through to the unchanged 'fail'.
|
|
219
|
+
const pkgName = extractNativeModulePackageName(logTail);
|
|
220
|
+
const moduleMs = pkgName ? findNativeModuleLastModifiedMs(pkgName, cwd) : null;
|
|
221
|
+
if (pkgName && moduleMs !== null && moduleMs > logMtimeMs) {
|
|
222
|
+
return {
|
|
223
|
+
name: 'Graph freshness',
|
|
224
|
+
status: 'warn',
|
|
225
|
+
message: `${classified}${logAgeStr} — but \`${pkgName}\` was modified more recently ` +
|
|
226
|
+
`(${formatAge(Date.now() - moduleMs)} ago) than this log entry, so it may ` +
|
|
227
|
+
'already be fixed. Run monograph build to confirm.',
|
|
228
|
+
fix: 'mcp__monomind__monograph_build codeOnly:true',
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return classified
|
|
233
|
+
? { name: 'Graph freshness', status: 'fail', message: `${classified}${logAgeStr}` }
|
|
234
|
+
: {
|
|
235
|
+
name: 'Graph freshness',
|
|
236
|
+
status: 'fail',
|
|
237
|
+
message: `Monograph build failed${logAgeStr} — see .monomind/graph/build.log for details`,
|
|
238
|
+
fix: 'cat .monomind/graph/build.log',
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return {
|
|
243
|
+
name: 'Graph freshness',
|
|
244
|
+
status: 'warn',
|
|
245
|
+
message: 'No monograph graph built yet',
|
|
246
|
+
fix: 'mcp__monomind__monograph_build codeOnly:true',
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
// Deliberately NOT folding build.lock's mtime into this — a lock only
|
|
250
|
+
// means "a build started," not "the graph was built at this time," and
|
|
251
|
+
// counting it here would report a stale graph as freshly-built the
|
|
252
|
+
// moment a rebuild kicks off, before it's actually produced anything.
|
|
253
|
+
let buildMs = 0;
|
|
254
|
+
if (hasDb) {
|
|
255
|
+
try {
|
|
256
|
+
buildMs = Math.max(buildMs, statSync(dbPath).mtimeMs);
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
/* ignore */
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
try {
|
|
263
|
+
buildMs = Math.max(buildMs, statSync(statsPath).mtimeMs);
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
/* ignore */
|
|
267
|
+
}
|
|
268
|
+
if (buildMs === 0)
|
|
269
|
+
return {
|
|
270
|
+
name: 'Graph freshness',
|
|
271
|
+
status: 'warn',
|
|
272
|
+
message: 'Graph exists but build time unknown',
|
|
273
|
+
};
|
|
274
|
+
const buildIso = new Date(buildMs).toISOString();
|
|
275
|
+
let commitsBehind = 0;
|
|
276
|
+
try {
|
|
277
|
+
const out = execSync(`git rev-list --count --since='${buildIso}' HEAD 2>/dev/null`, {
|
|
278
|
+
encoding: 'utf8',
|
|
279
|
+
timeout: 2000,
|
|
280
|
+
cwd,
|
|
281
|
+
}).trim();
|
|
282
|
+
commitsBehind = parseInt(out, 10) || 0;
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
/* git unavailable */
|
|
286
|
+
}
|
|
287
|
+
const ageStr = `${formatAge(Date.now() - buildMs)} ago`;
|
|
288
|
+
if (commitsBehind === 0)
|
|
289
|
+
return {
|
|
290
|
+
name: 'Graph freshness',
|
|
291
|
+
status: 'pass',
|
|
292
|
+
message: `FRESH — built ${ageStr}, 0 commits behind`,
|
|
293
|
+
};
|
|
294
|
+
if (commitsBehind <= 5)
|
|
295
|
+
return {
|
|
296
|
+
name: 'Graph freshness',
|
|
297
|
+
status: 'warn',
|
|
298
|
+
message: `${commitsBehind} commit(s) behind — built ${ageStr}`,
|
|
299
|
+
fix: 'mcp__monomind__monograph_build codeOnly:true',
|
|
300
|
+
};
|
|
301
|
+
return {
|
|
302
|
+
name: 'Graph freshness',
|
|
303
|
+
status: 'fail',
|
|
304
|
+
message: `STALE — ${commitsBehind} commits behind (built ${ageStr})`,
|
|
305
|
+
fix: 'mcp__monomind__monograph_build codeOnly:true',
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
catch {
|
|
309
|
+
return { name: 'Graph freshness', status: 'warn', message: 'Could not check graph freshness' };
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
export async function checkMonoesMemory() {
|
|
313
|
+
// See _findInstalledPackageJson() above checkMonograph(): resolve through
|
|
314
|
+
// Node's ESM module resolution instead of guessing a node_modules layout
|
|
315
|
+
// that doesn't match how npm actually hoists dependencies.
|
|
316
|
+
const found = _findInstalledPackageJson('@monoes/memory');
|
|
317
|
+
if (found) {
|
|
318
|
+
return {
|
|
319
|
+
name: 'Vector Memory',
|
|
320
|
+
status: 'pass',
|
|
321
|
+
message: `@monoes/memory v${found.pkg.version || '?'} (HNSW search enabled)`,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
return {
|
|
325
|
+
name: 'Vector Memory',
|
|
326
|
+
status: 'warn',
|
|
327
|
+
message: '@monoes/memory not installed (vector search disabled)',
|
|
328
|
+
fix: 'npm install @monoes/memory',
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=doctor-monograph-checks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-monograph-checks.js","sourceRoot":"","sources":["../../../src/commands/doctor-monograph-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,38 +2,15 @@
|
|
|
2
2
|
* Doctor — project/monomind health checks
|
|
3
3
|
* Config, memory, API keys, MCP, monograph, helpers, routing, gates, gitignore, worker metrics
|
|
4
4
|
*/
|
|
5
|
-
import type
|
|
5
|
+
import { type HealthCheck } from './doctor-env-checks.js';
|
|
6
|
+
export { checkGitignoreCoverage, fixGitignoreCoverage } from './doctor-gitignore-checks.js';
|
|
7
|
+
export { checkGuidanceGates, checkHelpersFresh, fixStaleHelpers } from './doctor-helpers-checks.js';
|
|
8
|
+
export { checkDocumentExtractors, checkMemoryDatabase, checkMemoryKnowledgeGraph, checkMemoryProficiency, checkProjectRoot, checkSecondBrainModel, } from './doctor-memory-checks.js';
|
|
9
|
+
export { checkMonoesMemory, checkMonograph, checkMonographFreshness, } from './doctor-monograph-checks.js';
|
|
10
|
+
export { checkAgentRegistry, checkMonoesIntegration } from './doctor-routing-checks.js';
|
|
11
|
+
export { checkMetricsFreshness, checkSecurityAuditFindings } from './doctor-worker-checks.js';
|
|
6
12
|
export type { HealthCheck };
|
|
7
13
|
export declare function checkConfigFile(): Promise<HealthCheck>;
|
|
8
|
-
/** o-16 (AC-6): the marker walk that resolves "this project" for the Memory
|
|
9
|
-
* & Knowledge store can silently adopt a wrong ancestor — the incident that
|
|
10
|
-
* motivated this check was a shared scratch parent's bare `.monomind`
|
|
11
|
-
* capturing an unrelated fixture, with no visible symptom until a search
|
|
12
|
-
* came back empty. Disclose the resolved root and why it was chosen, so a
|
|
13
|
-
* user can see which directory their brain is keyed to without reading code
|
|
14
|
-
* or debug logs. Always 'info': the resolution itself is never a health
|
|
15
|
-
* problem, only the failure to see it was.
|
|
16
|
-
*
|
|
17
|
-
* Named/scoped to "Memory Project Root", not a bare "Project Root" (o-16
|
|
18
|
-
* revision 1, reviewer MAJOR 2): `MONOMIND_PROJECT_ROOT` has a SECOND,
|
|
19
|
-
* independent consumer — `mcp-tools/guidance-tools.ts:findProjectRoot()`,
|
|
20
|
-
* which uses a different marker (`.claude`) and can legitimately resolve a
|
|
21
|
-
* different directory (see the divergence explained at
|
|
22
|
-
* `memory-bridge.ts`'s `getProjectRoot()` doc comment). A generic "Project
|
|
23
|
-
* Root" label would claim there is one true answer when this commit is
|
|
24
|
-
* what creates a state where two resolvers can disagree — this check must
|
|
25
|
-
* not be the thing that misleads about that. */
|
|
26
|
-
export declare function checkProjectRoot(): Promise<HealthCheck>;
|
|
27
|
-
export declare function checkMemoryDatabase(): Promise<HealthCheck>;
|
|
28
|
-
/** Memory knowledge graph (cognee port): entities/relations/rules distilled
|
|
29
|
-
* from sessions and org runs. Informational — an empty graph on a fresh
|
|
30
|
-
* project is normal, so it never fails. */
|
|
31
|
-
export declare function checkMemoryKnowledgeGraph(): Promise<HealthCheck>;
|
|
32
|
-
/** Second Brain: when there is any indexed knowledge — ingested docs in this
|
|
33
|
-
* project, the personal global brain, or the monograph god-node chunk —
|
|
34
|
-
* semantic search needs the local embedding model. Its absence is silent
|
|
35
|
-
* (search degrades to keyword matching), so surface it here instead. */
|
|
36
|
-
export declare function checkSecondBrainModel(): Promise<HealthCheck>;
|
|
37
14
|
export declare function checkApiKeys(): Promise<HealthCheck>;
|
|
38
15
|
export interface McpCheckOptions {
|
|
39
16
|
/**
|
|
@@ -47,35 +24,6 @@ export interface McpCheckOptions {
|
|
|
47
24
|
timeoutMs?: number;
|
|
48
25
|
}
|
|
49
26
|
export declare function checkMcpServers(options?: McpCheckOptions): Promise<HealthCheck>;
|
|
50
|
-
export declare function checkMonograph(): Promise<HealthCheck>;
|
|
51
|
-
export declare function checkMonographFreshness(): Promise<HealthCheck>;
|
|
52
|
-
export declare function checkMonoesMemory(): Promise<HealthCheck>;
|
|
53
|
-
export declare function fixStaleHelpers(): Promise<boolean>;
|
|
54
|
-
export declare function checkHelpersFresh(): Promise<HealthCheck>;
|
|
55
|
-
export declare function checkMonoesIntegration(): Promise<HealthCheck>;
|
|
56
|
-
export declare function checkGitignoreCoverage(root?: string): Promise<HealthCheck>;
|
|
57
|
-
/** Creates or appends the missing gitignore entries. Returns true if it wrote.
|
|
58
|
-
* Append-only and idempotent: never rewrites lines the user already has. */
|
|
59
|
-
export declare function fixGitignoreCoverage(root?: string): Promise<boolean>;
|
|
60
|
-
export declare function checkAgentRegistry(opts?: {
|
|
61
|
-
readOnly?: boolean;
|
|
62
|
-
}): Promise<HealthCheck>;
|
|
63
|
-
export declare function checkGuidanceGates(): Promise<HealthCheck>;
|
|
64
|
-
/**
|
|
65
|
-
* Worker metrics freshness — reports the age of the @monoes/hooks worker
|
|
66
|
-
* output files (written at session start with a 6h staleness gate, or on
|
|
67
|
-
* demand via `monomind hooks worker run <name>`), so missing/stale worker
|
|
68
|
-
* output is visible without digging through .monomind/metrics.
|
|
69
|
-
*/
|
|
70
|
-
export declare function checkMetricsFreshness(): Promise<HealthCheck>;
|
|
71
|
-
/**
|
|
72
|
-
* Surfaces critical findings from the security-audit worker output.
|
|
73
|
-
*/
|
|
74
|
-
export declare function checkSecurityAuditFindings(): Promise<HealthCheck>;
|
|
75
|
-
/**
|
|
76
|
-
* AutoMem proficiency check — reports memory learning health
|
|
77
|
-
*/
|
|
78
|
-
export declare function checkMemoryProficiency(): Promise<HealthCheck>;
|
|
79
27
|
/** AppleDouble sidecars (`._name`) under `.claude/`.
|
|
80
28
|
*
|
|
81
29
|
* macOS writes these whenever a file carrying extended attributes is copied to
|
|
@@ -97,11 +45,4 @@ export declare function checkAppleDoubleSidecars(): Promise<HealthCheck>;
|
|
|
97
45
|
export declare function findAppleDoubleSidecars(cwd: string): string[];
|
|
98
46
|
/** Delete every AppleDouble sidecar found. Returns how many were removed. */
|
|
99
47
|
export declare function fixAppleDoubleSidecars(cwd: string): number;
|
|
100
|
-
/** Per-extractor health for Second Brain document ingestion (MEM-8/MEM-9):
|
|
101
|
-
* one check per format family (PDF, DOCX, XLSX/XLS/ODS, PPTX/ODT/ODP/EPUB,
|
|
102
|
-
* legacy DOC/PPT/Pages) instead of a single blanket "documents" check, so
|
|
103
|
-
* `doctor` can report exactly which formats are functional vs broken.
|
|
104
|
-
* No-op (empty array) when the documents capability isn't active — nothing
|
|
105
|
-
* to report if this project doesn't ingest documents. */
|
|
106
|
-
export declare function checkDocumentExtractors(): Promise<HealthCheck[]>;
|
|
107
48
|
//# sourceMappingURL=doctor-project-checks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-project-checks.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor-project-checks.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"doctor-project-checks.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor-project-checks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAE9F,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CA4B5D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAiDzD;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CA+CzF;AA4DD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,WAAW,CAAC,CAcrE;AAED;;sBAEsB;AACtB,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAyB7D;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAW1D"}
|