@monoes/monomindcli 2.7.12 → 2.7.14

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 (144) hide show
  1. package/.claude/commands/mastermind/createorg.md +2 -0
  2. package/.claude/commands/mastermind/okf-import.md +6 -1
  3. package/.claude/helpers/handlers/route-handler.cjs +40 -7
  4. package/.claude/helpers/handlers/session-restore-handler.cjs +24 -6
  5. package/.claude/skills/mastermind-createorg/SKILL.md +11 -4
  6. package/README.md +12 -6
  7. package/dist/src/capabilities/index.d.ts.map +1 -1
  8. package/dist/src/capabilities/index.js +17 -0
  9. package/dist/src/capabilities/index.js.map +1 -1
  10. package/dist/src/capabilities/types.d.ts +0 -11
  11. package/dist/src/capabilities/types.d.ts.map +1 -1
  12. package/dist/src/commands/doc.d.ts.map +1 -1
  13. package/dist/src/commands/doc.js +251 -8
  14. package/dist/src/commands/doc.js.map +1 -1
  15. package/dist/src/commands/doctor-project-checks.d.ts +25 -3
  16. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  17. package/dist/src/commands/doctor-project-checks.js +111 -8
  18. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  19. package/dist/src/commands/doctor.d.ts.map +1 -1
  20. package/dist/src/commands/doctor.js +18 -2
  21. package/dist/src/commands/doctor.js.map +1 -1
  22. package/dist/src/commands/init.d.ts.map +1 -1
  23. package/dist/src/commands/init.js +32 -3
  24. package/dist/src/commands/init.js.map +1 -1
  25. package/dist/src/commands/monograph.d.ts.map +1 -1
  26. package/dist/src/commands/monograph.js +26 -3
  27. package/dist/src/commands/monograph.js.map +1 -1
  28. package/dist/src/commands/org.d.ts +15 -0
  29. package/dist/src/commands/org.d.ts.map +1 -1
  30. package/dist/src/commands/org.js +251 -6
  31. package/dist/src/commands/org.js.map +1 -1
  32. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  33. package/dist/src/init/claudemd-generator.js +4 -1
  34. package/dist/src/init/claudemd-generator.js.map +1 -1
  35. package/dist/src/knowledge/document-pipeline.d.ts +77 -4
  36. package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
  37. package/dist/src/knowledge/document-pipeline.js +261 -15
  38. package/dist/src/knowledge/document-pipeline.js.map +1 -1
  39. package/dist/src/knowledge/eval/corpus.d.ts +56 -0
  40. package/dist/src/knowledge/eval/corpus.d.ts.map +1 -0
  41. package/dist/src/knowledge/eval/corpus.js +126 -0
  42. package/dist/src/knowledge/eval/corpus.js.map +1 -0
  43. package/dist/src/knowledge/eval/golden-set.d.ts +62 -0
  44. package/dist/src/knowledge/eval/golden-set.d.ts.map +1 -0
  45. package/dist/src/knowledge/eval/golden-set.js +331 -0
  46. package/dist/src/knowledge/eval/golden-set.js.map +1 -0
  47. package/dist/src/knowledge/eval/harness.d.ts +221 -0
  48. package/dist/src/knowledge/eval/harness.d.ts.map +1 -0
  49. package/dist/src/knowledge/eval/harness.js +610 -0
  50. package/dist/src/knowledge/eval/harness.js.map +1 -0
  51. package/dist/src/knowledge/eval/metrics.d.ts +120 -0
  52. package/dist/src/knowledge/eval/metrics.d.ts.map +1 -0
  53. package/dist/src/knowledge/eval/metrics.js +243 -0
  54. package/dist/src/knowledge/eval/metrics.js.map +1 -0
  55. package/dist/src/knowledge/eval/model-presence.d.ts +48 -0
  56. package/dist/src/knowledge/eval/model-presence.d.ts.map +1 -0
  57. package/dist/src/knowledge/eval/model-presence.js +128 -0
  58. package/dist/src/knowledge/eval/model-presence.js.map +1 -0
  59. package/dist/src/knowledge/eval/network-guard.d.ts +46 -0
  60. package/dist/src/knowledge/eval/network-guard.d.ts.map +1 -0
  61. package/dist/src/knowledge/eval/network-guard.js +112 -0
  62. package/dist/src/knowledge/eval/network-guard.js.map +1 -0
  63. package/dist/src/knowledge/eval/retrievers.d.ts +65 -0
  64. package/dist/src/knowledge/eval/retrievers.d.ts.map +1 -0
  65. package/dist/src/knowledge/eval/retrievers.js +180 -0
  66. package/dist/src/knowledge/eval/retrievers.js.map +1 -0
  67. package/dist/src/knowledge/eval/signals.d.ts +111 -0
  68. package/dist/src/knowledge/eval/signals.d.ts.map +1 -0
  69. package/dist/src/knowledge/eval/signals.js +232 -0
  70. package/dist/src/knowledge/eval/signals.js.map +1 -0
  71. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  72. package/dist/src/mcp-tools/agent-tools.js +7 -34
  73. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  74. package/dist/src/mcp-tools/knowledge-tools.d.ts.map +1 -1
  75. package/dist/src/mcp-tools/knowledge-tools.js +88 -6
  76. package/dist/src/mcp-tools/knowledge-tools.js.map +1 -1
  77. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts +44 -144
  78. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts.map +1 -1
  79. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts +30 -38
  80. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -1
  81. package/dist/src/mcp-tools/task-tools.d.ts +1 -0
  82. package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
  83. package/dist/src/mcp-tools/task-tools.js +76 -111
  84. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  85. package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
  86. package/dist/src/mcp-tools/terminal-tools.js +3 -28
  87. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  88. package/dist/src/memory/bm25-index.d.ts +137 -0
  89. package/dist/src/memory/bm25-index.d.ts.map +1 -0
  90. package/dist/src/memory/bm25-index.js +219 -0
  91. package/dist/src/memory/bm25-index.js.map +1 -0
  92. package/dist/src/memory/embedding-operations.d.ts.map +1 -1
  93. package/dist/src/memory/embedding-operations.js +8 -7
  94. package/dist/src/memory/embedding-operations.js.map +1 -1
  95. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -1
  96. package/dist/src/memory/ewc-consolidation.js +2 -1
  97. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  98. package/dist/src/memory/hnsw-operations.d.ts.map +1 -1
  99. package/dist/src/memory/hnsw-operations.js +4 -3
  100. package/dist/src/memory/hnsw-operations.js.map +1 -1
  101. package/dist/src/memory/intelligence.d.ts.map +1 -1
  102. package/dist/src/memory/intelligence.js +2 -1
  103. package/dist/src/memory/intelligence.js.map +1 -1
  104. package/dist/src/memory/memory-bridge.d.ts +34 -0
  105. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  106. package/dist/src/memory/memory-bridge.js +184 -26
  107. package/dist/src/memory/memory-bridge.js.map +1 -1
  108. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  109. package/dist/src/memory/memory-initializer.js +4 -3
  110. package/dist/src/memory/memory-initializer.js.map +1 -1
  111. package/dist/src/memory/memory-schema.d.ts +1 -1
  112. package/dist/src/memory/memory-schema.js +1 -1
  113. package/dist/src/memory/text-tokens.d.ts +10 -0
  114. package/dist/src/memory/text-tokens.d.ts.map +1 -0
  115. package/dist/src/memory/text-tokens.js +37 -0
  116. package/dist/src/memory/text-tokens.js.map +1 -0
  117. package/dist/src/orgrt/daemon.d.ts +16 -1
  118. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  119. package/dist/src/orgrt/daemon.js +65 -9
  120. package/dist/src/orgrt/daemon.js.map +1 -1
  121. package/dist/src/orgrt/scheduler.d.ts +14 -1
  122. package/dist/src/orgrt/scheduler.d.ts.map +1 -1
  123. package/dist/src/orgrt/scheduler.js +51 -5
  124. package/dist/src/orgrt/scheduler.js.map +1 -1
  125. package/dist/src/orgrt/session.js +12 -0
  126. package/dist/src/orgrt/session.js.map +1 -1
  127. package/dist/src/orgrt/types.d.ts +61 -831
  128. package/dist/src/orgrt/types.d.ts.map +1 -1
  129. package/dist/src/orgrt/types.js +7 -1
  130. package/dist/src/orgrt/types.js.map +1 -1
  131. package/dist/src/services/crash-reporter.d.ts.map +1 -1
  132. package/dist/src/services/crash-reporter.js +7 -0
  133. package/dist/src/services/crash-reporter.js.map +1 -1
  134. package/dist/src/ui/dashboard.html +57 -25
  135. package/dist/src/ui/orgs.html +30 -13
  136. package/dist/src/ui/routes-monograph.mjs +929 -0
  137. package/dist/src/ui/routes-org.mjs +2513 -0
  138. package/dist/src/ui/server.mjs +726 -4117
  139. package/dist/src/utils/json-file.d.ts +11 -0
  140. package/dist/src/utils/json-file.d.ts.map +1 -1
  141. package/dist/src/utils/json-file.js +27 -0
  142. package/dist/src/utils/json-file.js.map +1 -1
  143. package/dist/tsconfig.tsbuildinfo +1 -1
  144. package/package.json +8 -6
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import * as path from 'node:path';
5
5
  import { output } from '../output.js';
6
- import { getGlobalBrainDir } from '../memory/memory-bridge.js';
6
+ import { getGlobalBrainDir, getProjectRoot } from '../memory/memory-bridge.js';
7
7
  const ingestCommand = {
8
8
  name: 'ingest',
9
9
  description: 'Ingest documents into the knowledge base',
@@ -25,14 +25,17 @@ const ingestCommand = {
25
25
  const fs = await import('node:fs');
26
26
  const resolved = path.resolve(target);
27
27
  // Zero-decision routing: an explicit --global wins; otherwise paths OUTSIDE
28
- // the current project belong to the personal brain (a project store keyed
29
- // to this cwd would never see them again from another project).
28
+ // this project belong to the personal brain (a project-scoped store would
29
+ // never surface them again from another project).
30
30
  let scope = String(ctx.flags.scope || 'shared');
31
31
  if (ctx.flags.global === true) {
32
32
  scope = 'global';
33
33
  }
34
34
  else if (!ctx.flags.scope) {
35
- const relToCwd = path.relative(process.cwd(), resolved);
35
+ // Against the PROJECT ROOT, not the cwd: from a package subdirectory,
36
+ // `doc ingest ../../docs` targets this very project, and routing it to
37
+ // the personal brain because it sits above the cwd is simply wrong.
38
+ const relToCwd = path.relative(getProjectRoot(ctx.cwd || process.cwd()), resolved);
36
39
  if (relToCwd.startsWith('..') || path.isAbsolute(relToCwd)) {
37
40
  scope = 'global';
38
41
  output.writeln(output.dim(` ${target} is outside this project — ingesting into the global brain (use --scope shared to force project scope)`));
@@ -44,7 +47,7 @@ const ingestCommand = {
44
47
  const stat = fs.statSync(resolved);
45
48
  if (stat.isDirectory()) {
46
49
  const result = await ingestDirectory(resolved, scope, {
47
- rootDir: ctx.cwd || process.cwd(),
50
+ rootDir: getProjectRoot(ctx.cwd || process.cwd()),
48
51
  onProgress: (file, done, total) => {
49
52
  spinner.setText(`[${done + 1}/${total}] ${path.basename(file)}`);
50
53
  },
@@ -192,7 +195,7 @@ const listDocCommand = {
192
195
  const { listDocuments } = await import('../knowledge/document-pipeline.js');
193
196
  const isGlobal = ctx.flags.global === true;
194
197
  const scope = isGlobal ? 'global' : ctx.flags.scope ? String(ctx.flags.scope) : undefined;
195
- const docs = listDocuments(isGlobal ? getGlobalBrainDir() : process.cwd(), scope);
198
+ const docs = listDocuments(isGlobal ? getGlobalBrainDir() : getProjectRoot(), scope);
196
199
  if (!docs.length) {
197
200
  output.writeln(output.dim('No documents indexed. Run: monomind doc ingest <path>'));
198
201
  return { success: true, data: [] };
@@ -226,7 +229,7 @@ const exportDocCommand = {
226
229
  const spinner = output.createSpinner({ text: 'Exporting to OKF...' });
227
230
  spinner.start();
228
231
  try {
229
- const result = await exportToOKF(outDir, isGlobal ? getGlobalBrainDir() : process.cwd(), scope);
232
+ const result = await exportToOKF(outDir, isGlobal ? getGlobalBrainDir() : getProjectRoot(), scope);
230
233
  spinner.succeed(`Exported ${result.exported} documents to ${result.outputDir}`);
231
234
  return { success: true, data: result };
232
235
  }
@@ -236,17 +239,254 @@ const exportDocCommand = {
236
239
  }
237
240
  },
238
241
  };
242
+ const removeDocCommand = {
243
+ name: 'remove',
244
+ description: 'Forget an indexed document',
245
+ aliases: ['rm', 'forget'],
246
+ options: [
247
+ { name: 'scope', short: 's', description: 'Knowledge scope (default: shared)', type: 'string', default: 'shared' },
248
+ { name: 'global', short: 'g', description: 'Remove from the personal cross-project global brain', type: 'boolean' },
249
+ ],
250
+ examples: [
251
+ { command: 'monomind doc remove ./docs/old-spec.md', description: 'Stop returning a document in search' },
252
+ { command: 'monomind doc remove ~/notes/stale.md --global', description: 'Forget it from the personal brain' },
253
+ ],
254
+ action: async (ctx) => {
255
+ const target = ctx.args[0];
256
+ if (!target) {
257
+ output.printError('Document path required: monomind doc remove <path>');
258
+ return { success: false, exitCode: 1 };
259
+ }
260
+ const { listDocuments, removeDocument } = await import('../knowledge/document-pipeline.js');
261
+ const isGlobal = ctx.flags.global === true;
262
+ const scope = isGlobal ? 'global' : String(ctx.flags.scope || 'shared');
263
+ const root = isGlobal ? getGlobalBrainDir() : getProjectRoot();
264
+ const resolved = path.resolve(target);
265
+ // The metadata log keys on the resolved path recorded at ingest, so a
266
+ // mistyped path would otherwise write a tombstone that matches nothing and
267
+ // report success. Fail like `rm` does instead.
268
+ if (!listDocuments(root, scope).some(d => path.resolve(d.filePath) === resolved)) {
269
+ output.printError(`Not indexed under scope '${scope}': ${resolved}`);
270
+ output.writeln(output.dim(` See what is indexed: monomind doc list${isGlobal ? ' --global' : ''}`));
271
+ return { success: false, exitCode: 1 };
272
+ }
273
+ await removeDocument(resolved, scope, root);
274
+ output.writeln(`Forgot ${output.highlight(path.basename(resolved))} (${scope})`);
275
+ // Honest about what happened on disk: the tombstone hides the chunks from
276
+ // every search surface, but the bridge exposes no delete-by-prefix, so the
277
+ // rows themselves go on the next full re-index.
278
+ output.writeln(output.dim(' Chunks are hidden from search immediately; storage is reclaimed on the next full re-index.'));
279
+ return { success: true, data: { filePath: resolved, scope } };
280
+ },
281
+ };
282
+ const reconcileDocCommand = {
283
+ name: 'reconcile',
284
+ description: 'Find and forget indexed documents whose source file no longer exists',
285
+ options: [
286
+ { name: 'scope', short: 's', description: 'Knowledge scope (default: shared)', type: 'string', default: 'shared' },
287
+ { name: 'global', short: 'g', description: 'Reconcile the personal cross-project global brain', type: 'boolean' },
288
+ { name: 'apply', description: 'Actually forget the stale entries (default: dry run)', type: 'boolean' },
289
+ ],
290
+ examples: [
291
+ { command: 'monomind doc reconcile', description: 'Show indexed documents whose file is gone (changes nothing)' },
292
+ { command: 'monomind doc reconcile --apply', description: 'Forget them' },
293
+ { command: 'monomind doc reconcile --global --apply', description: 'Same, for the personal brain' },
294
+ ],
295
+ action: async (ctx) => {
296
+ const { reconcileIndex } = await import('../knowledge/document-pipeline.js');
297
+ const isGlobal = ctx.flags.global === true;
298
+ const scope = isGlobal ? 'global' : String(ctx.flags.scope || 'shared');
299
+ const root = isGlobal ? getGlobalBrainDir() : getProjectRoot();
300
+ const apply = ctx.flags.apply === true;
301
+ let report;
302
+ try {
303
+ report = await reconcileIndex(root, { scope, apply });
304
+ }
305
+ catch (err) {
306
+ // reconcileIndex refuses to run against a missing root or a missing
307
+ // metadata log, because there every indexed file looks deleted. Surface
308
+ // that as a refusal, never as "0 stale entries found".
309
+ output.printError(String(err instanceof Error ? err.message : err));
310
+ return { success: false, exitCode: 1 };
311
+ }
312
+ if (report.missing.length === 0) {
313
+ output.writeln(`Index is consistent — all ${report.scanned} indexed documents still exist.`);
314
+ return { success: true, data: report };
315
+ }
316
+ output.writeln(`${output.highlight(String(report.missing.length))} of ${report.scanned} indexed documents no longer exist on disk:`);
317
+ for (const m of report.missing.slice(0, 20)) {
318
+ output.writeln(output.dim(` ${m.filePath}`));
319
+ }
320
+ if (report.missing.length > 20) {
321
+ output.writeln(output.dim(` ... and ${report.missing.length - 20} more`));
322
+ }
323
+ if (!apply) {
324
+ // Dry run is the default because "the file is missing" also describes an
325
+ // unmounted volume, a checked-out branch, and a partial clone. The user
326
+ // is the one who knows which it is.
327
+ output.writeln('');
328
+ output.writeln(output.dim('Nothing was changed. Re-run with --apply to forget these entries.'));
329
+ return { success: true, data: report };
330
+ }
331
+ output.writeln('');
332
+ output.writeln(`Forgot ${output.highlight(String(report.removed))} stale ${report.removed === 1 ? 'entry' : 'entries'}.`);
333
+ if (report.archivePath) {
334
+ output.writeln(output.dim(` Archived first, and reversible from: ${report.archivePath}`));
335
+ }
336
+ output.writeln(output.dim(' Chunks are hidden from search immediately; storage is reclaimed on the next full re-index.'));
337
+ return { success: true, data: report };
338
+ },
339
+ };
340
+ const importDocCommand = {
341
+ name: 'import',
342
+ description: 'Import an OKF bundle produced by `doc export`',
343
+ options: [
344
+ { name: 'scope', short: 's', description: 'Knowledge scope (default: shared)', type: 'string', default: 'shared' },
345
+ { name: 'global', short: 'g', description: 'Import into the personal cross-project global brain', type: 'boolean' },
346
+ ],
347
+ examples: [
348
+ { command: 'monomind doc import ./.monomind/knowledge-export', description: 'Import a bundle into this project' },
349
+ { command: 'monomind doc import ~/brain-bundle --global', description: 'Restore a personal brain on another machine' },
350
+ ],
351
+ action: async (ctx) => {
352
+ const bundle = ctx.args[0];
353
+ if (!bundle) {
354
+ output.printError('Bundle directory required: monomind doc import <bundle-dir>');
355
+ return { success: false, exitCode: 1 };
356
+ }
357
+ const { importFromOKF } = await import('../knowledge/document-pipeline.js');
358
+ const fs = await import('node:fs');
359
+ const resolved = path.resolve(bundle);
360
+ if (!fs.existsSync(resolved) || !fs.statSync(resolved).isDirectory()) {
361
+ output.printError(`Not a directory: ${resolved}`);
362
+ return { success: false, exitCode: 1 };
363
+ }
364
+ const isGlobal = ctx.flags.global === true;
365
+ const scope = isGlobal ? 'global' : String(ctx.flags.scope || 'shared');
366
+ const spinner = output.createSpinner({ text: 'Importing OKF bundle...' });
367
+ spinner.start();
368
+ try {
369
+ // importFromOKF, not ingestDirectory: the bundle's own index.md is a
370
+ // manifest, not knowledge, and plain ingest would index it as a document.
371
+ const result = await importFromOKF(resolved, scope, isGlobal ? getGlobalBrainDir() : getProjectRoot());
372
+ spinner.succeed(`Imported ${result.totalChunks} chunks from ${result.filesProcessed} documents (${result.filesSkipped} already indexed)`);
373
+ if (result.errors.length) {
374
+ output.writeln(output.dim(` Errors: ${result.errors.length}`));
375
+ for (const err of result.errors.slice(0, 5))
376
+ output.writeln(output.dim(` ${err}`));
377
+ }
378
+ return { success: true, data: result };
379
+ }
380
+ catch (err) {
381
+ spinner.fail(String(err));
382
+ return { success: false, exitCode: 1 };
383
+ }
384
+ },
385
+ };
386
+ const evalCommand = {
387
+ name: 'eval',
388
+ description: 'Measure retrieval quality (Recall@1/5/10, MRR@10) on the local golden set',
389
+ aliases: ['benchmark', 'scoreboard'],
390
+ options: [
391
+ { name: 'split', description: "Golden-set split: dev (tunable) | test (sealed, stop-condition only) | all", type: 'string', default: 'dev' },
392
+ { name: 'k', description: 'Retrieval cutoff (default: 10)', type: 'number', default: 10 },
393
+ { name: 'json', description: 'Emit the machine-readable report only', type: 'boolean' },
394
+ { name: 'out', short: 'o', description: 'Write the JSON report to this path', type: 'string' },
395
+ { name: 'rebuild', description: 'Rebuild the isolated eval store from scratch', type: 'boolean' },
396
+ { name: 'screen', description: 'Screen a JSON file of candidate golden pairs for lexical overlap before adding them', type: 'string' },
397
+ { name: 'provision-model', description: 'Download the embedding weights (the ONLY networked step; run once before evaluating)', type: 'boolean' },
398
+ { name: 'store-root', description: 'Where the isolated eval store lives (default: <repo>/.monomind/eval)', type: 'string' },
399
+ ],
400
+ examples: [
401
+ { command: 'monomind doc eval', description: 'Score the dev split and print the table' },
402
+ { command: 'monomind doc eval --split test --json', description: 'Sealed run — aggregates only, appended to the exposure ledger' },
403
+ { command: 'monomind doc eval --provision-model', description: 'One-off: fetch the embedding weights (the only networked step)' },
404
+ { command: 'monomind doc eval --out scoreboard.json', description: 'Persist the machine-readable report' },
405
+ ],
406
+ action: async (ctx) => {
407
+ const { runEval, renderReport } = await import('../knowledge/eval/harness.js');
408
+ // Authoring-time screening: reject high-overlap candidates BEFORE they
409
+ // enter the set, rather than discovering the distribution afterwards.
410
+ if (ctx.flags.screen) {
411
+ const fs = await import('node:fs');
412
+ const { screenCandidates } = await import('../knowledge/eval/harness.js');
413
+ const cands = JSON.parse(fs.readFileSync(String(ctx.flags.screen), 'utf8'));
414
+ const rep = await screenCandidates(getProjectRoot(ctx.cwd || process.cwd()), cands);
415
+ if (ctx.flags.out)
416
+ fs.writeFileSync(String(ctx.flags.out), JSON.stringify(rep, null, 2));
417
+ if (ctx.flags.json === true) {
418
+ output.writeln(JSON.stringify(rep, null, 2));
419
+ return { success: true, data: rep };
420
+ }
421
+ output.writeln(`\nscreened ${rep.total}: ${rep.accepted} accepted, ${rep.rejected} rejected (corpus ${rep.corpusHash})`);
422
+ output.writeln(`overlap bands of accepted: low ${rep.bands.low} mid ${rep.bands.mid} high ${rep.bands.high}`);
423
+ for (const c of rep.candidates.filter(x => !x.accepted))
424
+ output.writeln(` REJECT ${c.id}: ${c.reason}`);
425
+ return { success: true, data: rep };
426
+ }
427
+ // The explicit, non-query-time provisioning step. Separating this from
428
+ // measurement is what makes "clean checkout" and "zero network at query
429
+ // time" jointly satisfiable — `doc eval` itself never fetches.
430
+ if (ctx.flags['provision-model'] === true) {
431
+ const { provisionModel } = await import('../knowledge/eval/model-presence.js');
432
+ try {
433
+ const p = await provisionModel(m => output.writeln(output.dim(' ' + m)));
434
+ output.printSuccess(`Embedding model provisioned (${(p.bytes / 1e6).toFixed(0)}MB).`);
435
+ return { success: true, data: p };
436
+ }
437
+ catch (err) {
438
+ output.printError(String(err instanceof Error ? err.message : err));
439
+ return { success: false, exitCode: 1 };
440
+ }
441
+ }
442
+ const split = String(ctx.flags.split || 'dev');
443
+ if (!['dev', 'test', 'all'].includes(split)) {
444
+ output.printError(`--split must be dev, test or all (got "${split}")`);
445
+ return { success: false, exitCode: 1 };
446
+ }
447
+ const asJson = ctx.flags.json === true;
448
+ const repoRoot = getProjectRoot(ctx.cwd || process.cwd());
449
+ try {
450
+ const report = await runEval({
451
+ repoRoot,
452
+ k: Number(ctx.flags.k || 10),
453
+ rebuild: ctx.flags.rebuild === true,
454
+ storeRoot: ctx.flags['store-root'] ? String(ctx.flags['store-root']) : undefined,
455
+ split: split,
456
+ onProgress: (msg) => { if (!asJson)
457
+ output.writeln(output.dim(' ' + msg)); },
458
+ });
459
+ if (ctx.flags.out) {
460
+ const fs = await import('node:fs');
461
+ fs.writeFileSync(String(ctx.flags.out), JSON.stringify(report, null, 2));
462
+ }
463
+ if (asJson)
464
+ output.writeln(JSON.stringify(report, null, 2));
465
+ else
466
+ output.writeln(renderReport(report));
467
+ // A network attempt during the query phase invalidates the run outright.
468
+ return { success: report.networkFree.verdict === 'proven-blocked', data: report };
469
+ }
470
+ catch (err) {
471
+ output.printError(String(err instanceof Error ? err.message : err));
472
+ return { success: false, exitCode: 1 };
473
+ }
474
+ },
475
+ };
239
476
  export const docCommand = {
240
477
  name: 'doc',
241
478
  description: 'Second Brain — document knowledge management',
242
479
  aliases: ['docs', 'knowledge'],
243
- subcommands: [ingestCommand, searchDocCommand, listDocCommand, exportDocCommand],
480
+ subcommands: [ingestCommand, searchDocCommand, listDocCommand, exportDocCommand, importDocCommand, removeDocCommand, reconcileDocCommand, evalCommand],
244
481
  options: [],
245
482
  examples: [
246
483
  { command: 'monomind doc ingest ./docs', description: 'Index documents' },
247
484
  { command: 'monomind doc search -q "auth flow"', description: 'Semantic search' },
248
485
  { command: 'monomind doc list', description: 'List indexed docs' },
249
486
  { command: 'monomind doc export', description: 'Export as OKF bundle' },
487
+ { command: 'monomind doc import ./bundle', description: 'Import an OKF bundle' },
488
+ { command: 'monomind doc remove ./docs/old.md', description: 'Forget an indexed document' },
489
+ { command: 'monomind doc eval', description: 'Score retrieval quality on the golden set' },
250
490
  ],
251
491
  action: async () => {
252
492
  output.writeln();
@@ -260,6 +500,9 @@ export const docCommand = {
260
500
  `${output.highlight('search')} - Semantic search over indexed documents`,
261
501
  `${output.highlight('list')} - List indexed documents`,
262
502
  `${output.highlight('export')} - Export as OKF bundle (markdown + frontmatter)`,
503
+ `${output.highlight('import')} - Import an OKF bundle produced by export`,
504
+ `${output.highlight('remove')} - Forget an indexed document (aliases: rm, forget)`,
505
+ `${output.highlight('eval')} - Retrieval-quality scoreboard: Recall@1/5/10, MRR@10`,
263
506
  ]);
264
507
  return { success: true };
265
508
  },
@@ -1 +1 @@
1
- {"version":3,"file":"doc.js","sourceRoot":"","sources":["../../../src/commands/doc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,aAAa,GAAY;IAC7B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,0CAA0C;IACvD,OAAO,EAAE;QACP,uEAAuE;QACvE,uEAAuE;QACvE,wDAAwD;QACxD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,wFAAwF,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpJ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,gFAAgF,EAAE,IAAI,EAAE,SAAS,EAAE;KAC/I;IACD,QAAQ,EAAE;QACR,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,gCAAgC,EAAE;QACxF,EAAE,OAAO,EAAE,sCAAsC,EAAE,WAAW,EAAE,4EAA4E,EAAE;QAC9I,EAAE,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE,sBAAsB,EAAE;KACnF;IACD,MAAM,EAAE,KAAK,EAAE,GAAmB,EAA0B,EAAE;QAC5D,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAElC,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QAC9F,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEtC,4EAA4E;QAC5E,0EAA0E;QAC1E,gEAAgE;QAChE,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC;QAChD,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9B,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;YACxD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,KAAK,GAAG,QAAQ,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,wGAAwG,CAAC,CAAC,CAAC;YAClJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEnC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE;oBACpD,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;oBACjC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;wBAChC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnE,CAAC;iBACF,CAAC,CAAC;gBACH,OAAO,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,WAAW,gBAAgB,MAAM,CAAC,cAAc,WAAW,MAAM,CAAC,YAAY,WAAW,CAAC,CAAC;gBAC7H,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACzB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBAChE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;wBAC5C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACrD,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACpC,OAAO,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,aAAa,UAAU,CAAC,CAAC;gBAClG,CAAC;qBAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,aAAa,gBAAgB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC5F,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAY;IAChC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,wCAAwC;IACrD,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1F,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,2BAA2B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACpG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,mCAAmC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;QAClH,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,mCAAmC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;QACrG,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,kFAAkF,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAClJ,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,2FAA2F,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC/I;IACD,QAAQ,EAAE;QACR,EAAE,OAAO,EAAE,8CAA8C,EAAE,WAAW,EAAE,+BAA+B,EAAE;QACzG,EAAE,OAAO,EAAE,uDAAuD,EAAE,WAAW,EAAE,uCAAuC,EAAE;KAC3H;IACD,MAAM,EAAE,KAAK,EAAE,GAAmB,EAA0B,EAAE;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,UAAU,CAAC,qDAAqD,CAAC,CAAC;YACzE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QAC9E,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAC/F,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAE5C,qEAAqE;QACrE,oEAAoE;QACpE,mEAAmE;QACnE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnG,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/H,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEnG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAClD,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3D,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACzB,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE;oBACrB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC;oBAC1C,KAAK;oBACL,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;oBAC/C,KAAK,EAAE,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;iBAC7E,CAAC;gBACJ,CAAC,CAAC,EAAE;YACN,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACnF,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAC1I,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SAC9H,CAAC,CAAC;QAEH,uEAAuE;QACvE,yEAAyE;QACzE,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,aAAa,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1K,QAAQ,GAAG,IAAI,CAAC;YAChB,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAyC,EAAE,QAAQ,CAAC,CAAC;YACnF,aAAa,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;gBAC3C,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC;gBAC1C,KAAK;gBACL,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;gBAC/C,KAAK,EAAE,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;aAC7E,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC;YACpB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACzG,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAChI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;YACpI,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;SACzH,EAAE,KAAK,CAAC,CAAC;QAEV,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,YAAY,MAAM,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAClK,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAA4B,CAAC;YAC9C,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;YAC9F,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACjH,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC;gBAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAClC,MAAM,CAAC,OAAO,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC;CACF,CAAC;AAEF,MAAM,cAAc,GAAY;IAC9B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,wBAAwB;IACrC,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7E,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,8CAA8C,EAAE,IAAI,EAAE,SAAS,EAAE;KAC7G;IACD,MAAM,EAAE,KAAK,EAAE,GAAmB,EAA0B,EAAE;QAC5D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QAElF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAC;YACpF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,qBAAqB,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;gBACjC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBAC5C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YACxC,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,aAAa,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7H,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAY;IAChC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,8DAA8D;IAC3E,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,EAAE;QACtH,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,mCAAmC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;QAClH,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,4EAA4E,EAAE,IAAI,EAAE,SAAS,EAAE;KAC3I;IACD,MAAM,EAAE,KAAK,EAAE,GAAmB,EAA0B,EAAE;QAC5D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,4BAA4B,CAAC,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC;QAExE,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YAChG,OAAO,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,QAAQ,iBAAiB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAChF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAY;IACjC,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,8CAA8C;IAC3D,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,WAAW,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC;IAChF,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE;QACR,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,iBAAiB,EAAE;QACzE,EAAE,OAAO,EAAE,oCAAoC,EAAE,WAAW,EAAE,iBAAiB,EAAE;QACjF,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,EAAE;QAClE,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,sBAAsB,EAAE;KACxE;IACD,MAAM,EAAE,KAAK,IAA4B,EAAE;QACzC,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;QAC7D,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/B,MAAM,CAAC,SAAS,CAAC;YACf,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,8CAA8C;YAC3E,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,4CAA4C;YACzE,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,8BAA8B;YACzD,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,mDAAmD;SACjF,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"doc.js","sourceRoot":"","sources":["../../../src/commands/doc.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,10 @@ export declare function checkMemoryDatabase(): Promise<HealthCheck>;
10
10
  * from sessions and org runs. Informational — an empty graph on a fresh
11
11
  * project is normal, so it never fails. */
12
12
  export declare function checkMemoryKnowledgeGraph(): Promise<HealthCheck>;
13
- /** Second Brain: when this project has an indexed knowledge base, semantic
14
- * search needs the local embedding model. Its absence is silent (search
15
- * degrades to keyword matching) — surface it here instead. */
13
+ /** Second Brain: when there is any indexed knowledge — ingested docs in this
14
+ * project, the personal global brain, or the monograph god-node chunk —
15
+ * semantic search needs the local embedding model. Its absence is silent
16
+ * (search degrades to keyword matching), so surface it here instead. */
16
17
  export declare function checkSecondBrainModel(): Promise<HealthCheck>;
17
18
  export declare function checkApiKeys(): Promise<HealthCheck>;
18
19
  export declare function checkMcpServers(): Promise<HealthCheck>;
@@ -43,4 +44,25 @@ export declare function checkSecurityAuditFindings(): Promise<HealthCheck>;
43
44
  * AutoMem proficiency check — reports memory learning health
44
45
  */
45
46
  export declare function checkMemoryProficiency(): Promise<HealthCheck>;
47
+ /** AppleDouble sidecars (`._name`) under `.claude/`.
48
+ *
49
+ * macOS writes these whenever a file carrying extended attributes is copied to
50
+ * a filesystem that cannot store them natively — exFAT, most USB/network
51
+ * volumes. Harmless as data, but Claude Code discovers skills and commands by
52
+ * reading `.claude/skills/` and `.claude/commands/`, and a stray
53
+ * `._createorg.md` is registered as a real command: a garbage entry named
54
+ * `mastermind:._createorg` appears in the roster, and its "content" is a binary
55
+ * resource fork. They also reappear after any Finder copy, `cp`, or tar
56
+ * extract, so a one-time delete does not hold.
57
+ *
58
+ * Reported here rather than swept silently, because deleting files under
59
+ * `.claude/` should be something the operator sees. `doctor --fix` removes them.
60
+ */
61
+ export declare function checkAppleDoubleSidecars(): Promise<HealthCheck>;
62
+ /** Every `._*` file under the project's `.claude/` trees. Both the repo-root
63
+ * tree and the npm-shipped copy under packages/, since a sidecar in the latter
64
+ * ships to users. */
65
+ export declare function findAppleDoubleSidecars(cwd: string): string[];
66
+ /** Delete every AppleDouble sidecar found. Returns how many were removed. */
67
+ export declare function fixAppleDoubleSidecars(cwd: string): number;
46
68
  //# 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;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAS1D,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAiB5D;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,CAahE;AAED;;2CAE2C;AAC3C,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,WAAW,CAAC,CAkBtE;AAED;;8DAE8D;AAC9D,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAC,CA8BlE;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAyBzD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAsB5D;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CA6B3D;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,WAAW,CAAC,CA+BpE;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAwB9D;AAoED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAiBxD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAa9D;AAoDD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,WAAW,CAAC,CAWnE;AAyCD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,WAAW,CAAC,CAiBnE;AA4BD;6EAC6E;AAC7E,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAoB7D;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC,CAuC/D;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC,CA+B/D;AAkBD;;;;;GAKG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAC,CAiClE;AAED;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,WAAW,CAAC,CA6BvE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,WAAW,CAAC,CAyBnE"}
1
+ {"version":3,"file":"doctor-project-checks.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor-project-checks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAS1D,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAiB5D;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,CAahE;AAED;;2CAE2C;AAC3C,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,WAAW,CAAC,CAkBtE;AAaD;;;wEAGwE;AACxE,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAC,CA4ClE;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAyBzD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAsB5D;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CA6B3D;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,WAAW,CAAC,CA+BpE;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAwB9D;AAoED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAiBxD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAa9D;AAoDD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,WAAW,CAAC,CAWnE;AAyCD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,WAAW,CAAC,CAiBnE;AA4BD;6EAC6E;AAC7E,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAoB7D;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC,CAuC/D;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC,CA+B/D;AAkBD;;;;;GAKG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAC,CAiClE;AAED;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,WAAW,CAAC,CA6BvE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,WAAW,CAAC,CAyBnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,WAAW,CAAC,CAWrE;AAED;;sBAEsB;AACtB,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAiB7D;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM1D"}
@@ -2,7 +2,7 @@
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 { existsSync, readFileSync, readdirSync, statSync, mkdirSync, copyFileSync, writeFileSync, appendFileSync } from 'fs';
5
+ import { existsSync, readFileSync, readdirSync, statSync, mkdirSync, copyFileSync, writeFileSync, appendFileSync, rmSync } from 'fs';
6
6
  import { join, dirname } from 'path';
7
7
  import { fileURLToPath } from 'url';
8
8
  import { execSync } from 'child_process';
@@ -67,14 +67,42 @@ export async function checkMemoryKnowledgeGraph() {
67
67
  return { name, status: 'warn', message: `Check failed: ${err instanceof Error ? err.message : String(err)}` };
68
68
  }
69
69
  }
70
- /** Second Brain: when this project has an indexed knowledge base, semantic
71
- * search needs the local embedding model. Its absence is silent (search
72
- * degrades to keyword matching) — surface it here instead. */
70
+ /** Count live (non-tombstoned) ingested documents under a brain root, without
71
+ * creating the directory — `listDocuments` mkdir's its metadata dir, which
72
+ * would materialize an empty global brain just by running doctor. */
73
+ async function countBrainDocs(root) {
74
+ if (!existsSync(join(root, '.monomind', 'knowledge', 'doc-metadata.jsonl')))
75
+ return 0;
76
+ try {
77
+ const { listDocuments } = await import('../knowledge/document-pipeline.js');
78
+ return listDocuments(root).length;
79
+ }
80
+ catch {
81
+ return 0;
82
+ }
83
+ }
84
+ /** Second Brain: when there is any indexed knowledge — ingested docs in this
85
+ * project, the personal global brain, or the monograph god-node chunk —
86
+ * semantic search needs the local embedding model. Its absence is silent
87
+ * (search degrades to keyword matching), so surface it here instead. */
73
88
  export async function checkSecondBrainModel() {
74
89
  const name = 'Second Brain Model';
75
- if (!existsSync(join(process.cwd(), '.monomind', 'knowledge', 'chunks.jsonl'))) {
76
- return { name, status: 'pass', message: 'No knowledge base in this project (nothing to check)' };
77
- }
90
+ const { getGlobalBrainDir, getProjectRoot } = await import('../memory/memory-bridge.js');
91
+ const projectDocs = await countBrainDocs(getProjectRoot());
92
+ const globalDocs = await countBrainDocs(getGlobalBrainDir());
93
+ // chunks.jsonl holds the monograph god-node chunk — knowledge with no doc
94
+ // ingest. Unlike the document store it is written per-CWD by the session
95
+ // hook, not at the project root, so check both rather than assuming.
96
+ const chunksIn = (root) => existsSync(join(root, '.monomind', 'knowledge', 'chunks.jsonl'));
97
+ const hasChunks = chunksIn(getProjectRoot()) || chunksIn(process.cwd());
98
+ if (!projectDocs && !globalDocs && !hasChunks) {
99
+ return { name, status: 'pass', message: 'No knowledge indexed (nothing to check)' };
100
+ }
101
+ const indexed = [
102
+ projectDocs ? `${projectDocs} project doc${projectDocs === 1 ? '' : 's'}` : null,
103
+ globalDocs ? `${globalDocs} global doc${globalDocs === 1 ? '' : 's'}` : null,
104
+ !projectDocs && !globalDocs ? 'monograph god-nodes' : null,
105
+ ].filter(Boolean).join(' · ');
78
106
  let entryPath = null;
79
107
  try {
80
108
  // exports map blocks package.json — resolve the entry file, then walk UP
@@ -101,7 +129,7 @@ export async function checkSecondBrainModel() {
101
129
  pkgDir = dirname(pkgDir);
102
130
  const modelCache = join(pkgDir, '.cache', 'Xenova');
103
131
  if (pkgDir.endsWith('transformers') && existsSync(modelCache)) {
104
- return { name, status: 'pass', message: 'Local embedding model cached — semantic search active' };
132
+ return { name, status: 'pass', message: `Local embedding model cached — semantic search active (${indexed})` };
105
133
  }
106
134
  return { name, status: 'warn', message: 'Embedding model not downloaded yet — searches use keyword matching until it is', fix: 'run once while online: monomind doc search -q "warmup" (downloads ~90MB locally, one time)' };
107
135
  }
@@ -761,4 +789,79 @@ export async function checkMemoryProficiency() {
761
789
  return { name: 'Memory Proficiency', status: 'warn', message: 'Could not load intelligence module' };
762
790
  }
763
791
  }
792
+ /** AppleDouble sidecars (`._name`) under `.claude/`.
793
+ *
794
+ * macOS writes these whenever a file carrying extended attributes is copied to
795
+ * a filesystem that cannot store them natively — exFAT, most USB/network
796
+ * volumes. Harmless as data, but Claude Code discovers skills and commands by
797
+ * reading `.claude/skills/` and `.claude/commands/`, and a stray
798
+ * `._createorg.md` is registered as a real command: a garbage entry named
799
+ * `mastermind:._createorg` appears in the roster, and its "content" is a binary
800
+ * resource fork. They also reappear after any Finder copy, `cp`, or tar
801
+ * extract, so a one-time delete does not hold.
802
+ *
803
+ * Reported here rather than swept silently, because deleting files under
804
+ * `.claude/` should be something the operator sees. `doctor --fix` removes them.
805
+ */
806
+ export async function checkAppleDoubleSidecars() {
807
+ const name = 'AppleDouble Sidecars';
808
+ const found = findAppleDoubleSidecars(process.cwd());
809
+ if (found.length === 0)
810
+ return { name, status: 'pass', message: 'None under .claude/' };
811
+ const shown = found.slice(0, 3).map(p => p.replace(process.cwd() + '/', '')).join(', ');
812
+ return {
813
+ name,
814
+ status: 'warn',
815
+ message: `${found.length} AppleDouble file${found.length === 1 ? '' : 's'} under .claude/ (${shown}${found.length > 3 ? ', …' : ''}) — skills/commands dirs register these as real entries`,
816
+ fix: 'monomind doctor --fix (or: find .claude -name "._*" -type f -delete)',
817
+ };
818
+ }
819
+ /** Every `._*` file under the project's `.claude/` trees. Both the repo-root
820
+ * tree and the npm-shipped copy under packages/, since a sidecar in the latter
821
+ * ships to users. */
822
+ export function findAppleDoubleSidecars(cwd) {
823
+ const roots = [join(cwd, '.claude'), join(cwd, 'packages', '@monomind', 'cli', '.claude')];
824
+ const out = [];
825
+ const walk = (dir, depth = 0) => {
826
+ if (depth > 8)
827
+ return;
828
+ let entries;
829
+ try {
830
+ entries = readdirSync(dir);
831
+ }
832
+ catch {
833
+ return;
834
+ }
835
+ for (const e of entries) {
836
+ const full = join(dir, e);
837
+ let isDir;
838
+ try {
839
+ isDir = statSync(full).isDirectory();
840
+ }
841
+ catch {
842
+ continue;
843
+ }
844
+ if (isDir)
845
+ walk(full, depth + 1);
846
+ else if (e.startsWith('._'))
847
+ out.push(full);
848
+ }
849
+ };
850
+ for (const r of roots)
851
+ if (existsSync(r))
852
+ walk(r);
853
+ return out;
854
+ }
855
+ /** Delete every AppleDouble sidecar found. Returns how many were removed. */
856
+ export function fixAppleDoubleSidecars(cwd) {
857
+ let removed = 0;
858
+ for (const f of findAppleDoubleSidecars(cwd)) {
859
+ try {
860
+ rmSync(f, { force: true });
861
+ removed++;
862
+ }
863
+ catch { /* best effort */ }
864
+ }
865
+ return removed;
866
+ }
764
867
  //# sourceMappingURL=doctor-project-checks.js.map