@mnemonik/shared 6.2.9 → 6.4.0
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/dist/FileSystemReader.d.ts.map +1 -1
- package/dist/FileSystemReader.js +5 -0
- package/dist/FileSystemReader.js.map +1 -1
- package/dist/codeScanner.d.ts +45 -0
- package/dist/codeScanner.d.ts.map +1 -1
- package/dist/codeScanner.js +245 -67
- package/dist/codeScanner.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -1
- package/src/FileSystemReader.ts +5 -0
- package/src/codeScanner.ts +268 -67
- package/src/index.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystemReader.d.ts","sourceRoot":"","sources":["../src/FileSystemReader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"FileSystemReader.d.ts","sourceRoot":"","sources":["../src/FileSystemReader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAqE1D,MAAM,WAAW,QAAQ;IACvB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,gBAAgB;IAC3B;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAM1D;;;OAGG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiC1D;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAoBlE;;;OAGG;IACG,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,kBAAkB,CAAC;IA0C9B;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAY/D;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;YAejE,iBAAiB;IAqC/B,OAAO,CAAC,UAAU;CAKnB;AAID,wBAAgB,mBAAmB,IAAI,gBAAgB,CAGtD"}
|
package/dist/FileSystemReader.js
CHANGED
|
@@ -14,6 +14,11 @@ import { withTimeout } from './asyncUtils.js';
|
|
|
14
14
|
import { CodeScanner } from './codeScanner.js';
|
|
15
15
|
const FILE_OP_TIMEOUT_MS = 5000;
|
|
16
16
|
const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10 MB
|
|
17
|
+
// NOTE: this SKIP_DIRS is NOT an index gate — FileSystemReader's walk methods
|
|
18
|
+
// (scanDirectory/detectChangedFiles) have no live caller; only readFileContent
|
|
19
|
+
// (single file, no ignore) is used, for JIT citation verification. The
|
|
20
|
+
// authoritative built-in list is BUILT_IN_IGNORE_DIRS in codeScanner.ts. Left
|
|
21
|
+
// as-is (dead) rather than rewired to avoid churn on unused code.
|
|
17
22
|
const SKIP_DIRS = new Set([
|
|
18
23
|
'node_modules',
|
|
19
24
|
'.git',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystemReader.js","sourceRoot":"","sources":["../src/FileSystemReader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileSystemReader.js","sourceRoot":"","sources":["../src/FileSystemReader.ts"],"names":[],"mappings":"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"}
|
package/dist/codeScanner.d.ts
CHANGED
|
@@ -23,6 +23,17 @@ export interface ScanOptions {
|
|
|
23
23
|
ignorePatterns?: string[];
|
|
24
24
|
includeExtensions?: string[];
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Directory basenames the scanner never indexes, across every ecosystem —
|
|
28
|
+
* generated output, package-manager/build caches, and vendored deps. SINGLE
|
|
29
|
+
* SOURCE OF TRUTH: the scanner package's discovery + watch walks import this
|
|
30
|
+
* (`packages/scanner/src/{discovery,watcher}.ts`) and `src/core/utils.ts`
|
|
31
|
+
* derives from it, so every ignore surface agrees instead of drifting (the
|
|
32
|
+
* pre-2026-07 state had four divergent copies). Add only UNAMBIGUOUS names —
|
|
33
|
+
* a project's own `.gitignore` / `.mnemonikignore` covers the ambiguous,
|
|
34
|
+
* project-specific cases (`vendor/`, custom dirs) hierarchically.
|
|
35
|
+
*/
|
|
36
|
+
export declare const BUILT_IN_IGNORE_DIRS: readonly string[];
|
|
26
37
|
/**
|
|
27
38
|
* Matchers for authority manifest / config / CI files whose verbatim content
|
|
28
39
|
* is collected by `collectAuthorityFiles` and pushed to the server for
|
|
@@ -39,6 +50,17 @@ export declare const AUTHORITY_FILE_MATCHERS: Array<(relPath: string) => boolean
|
|
|
39
50
|
*/
|
|
40
51
|
export declare const FIXTURE_PATH_RE: RegExp;
|
|
41
52
|
export declare function isFixturePath(path: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Server-side ignore matcher for defense-in-depth path dropping on /scan/push,
|
|
55
|
+
* /scan/reconcile, and file_push. Combines the universal BUILT_IN_IGNORE_DIRS
|
|
56
|
+
* (segment-exact) with a project's uploaded .gitignore/.mnemonikignore patterns
|
|
57
|
+
* (gitignore syntax via the `ignore` package). Built once per request and reused
|
|
58
|
+
* across all pushed paths (root-relative, forward-slash). This does NOT replace
|
|
59
|
+
* the daemon's precise hierarchical walk — it backstops it so a buggy, stale, or
|
|
60
|
+
* malicious client cannot index a path the project ignores, making .mnemonikignore
|
|
61
|
+
* a hard guarantee rather than best-effort.
|
|
62
|
+
*/
|
|
63
|
+
export declare function makeIgnoreMatcher(extraPatterns?: readonly string[]): (relPath: string) => boolean;
|
|
42
64
|
/**
|
|
43
65
|
* True when `dirPath` is the root of a DIFFERENT repository than the one
|
|
44
66
|
* being scanned: it carries its own `.git` entry. A `.git` FILE marks a
|
|
@@ -54,6 +76,29 @@ export declare function isGitBoundary(dirPath: string): Promise<boolean>;
|
|
|
54
76
|
export declare class CodeScanner {
|
|
55
77
|
private options;
|
|
56
78
|
constructor(options?: ScanOptions);
|
|
79
|
+
/**
|
|
80
|
+
* Read `.gitignore` + `.mnemonikignore` in `absDir` and compile them into one
|
|
81
|
+
* ignore layer (the two files are unioned — `.mnemonikignore` is just an
|
|
82
|
+
* additional gitignore-syntax exclusion list). Returns null when neither file
|
|
83
|
+
* exists. FAIL-CLOSED: a non-ENOENT read error (EISDIR, EACCES, timeout)
|
|
84
|
+
* latches `walk.complete = false` so callers deriving *removals* from the walk
|
|
85
|
+
* treat it as untrustworthy rather than silently ignoring nothing.
|
|
86
|
+
*/
|
|
87
|
+
private loadIgnoreLayer;
|
|
88
|
+
/**
|
|
89
|
+
* True when `entryRel` (relative to the scan root) is excluded by any ignore
|
|
90
|
+
* layer in `stack`. Tested deepest-first: the first layer that explicitly
|
|
91
|
+
* ignores OR re-includes (via a `!negation`) wins, matching git's rule that a
|
|
92
|
+
* deeper `.gitignore` overrides a shallower one. Directories are tested with a
|
|
93
|
+
* trailing slash so `foo/` dir-only rules match the directory itself.
|
|
94
|
+
*/
|
|
95
|
+
private ignoredByStack;
|
|
96
|
+
/**
|
|
97
|
+
* Reconstruct the root→parent ignore-layer stack for a single file, for the
|
|
98
|
+
* incremental `scanFiles` path (which has a flat file list, not a recursive
|
|
99
|
+
* walk). Layers are memoized per directory in `cache` across a batch.
|
|
100
|
+
*/
|
|
101
|
+
private buildIgnoreStackForFile;
|
|
57
102
|
/**
|
|
58
103
|
* True when any directory strictly between `rootPath` and `filePath`
|
|
59
104
|
* carries its own `.git` entry (see isGitBoundary). Paths that don't
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeScanner.d.ts","sourceRoot":"","sources":["../src/codeScanner.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"codeScanner.d.ts","sourceRoot":"","sources":["../src/codeScanner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAcD;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EA2CjD,CAAC;AA8DF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAiBvE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,QAA4B,CAAC;AACzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAID;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,GAAE,SAAS,MAAM,EAAO,GACpC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAkB9B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWrE;AAcD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,GAAE,WAAgB;IAIrC;;;;;;;OAOG;YACW,eAAe;IA4B7B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAmBtB;;;;OAIG;YACW,uBAAuB;IAwBrC;;;;;OAKG;YACW,uBAAuB;IAarC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAM;IAEvC;;;;;;OAMG;YACW,cAAc;IAM5B;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK3D;;;;;;;OAOG;IACG,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAOtD;;;;;;;;;;;;;;;OAeG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKpD;;;;;;OAMG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;YAU9E,aAAa;IA+D3B;;;OAGG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAyC5E;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW;IAYnB;;;OAGG;YACW,iBAAiB;IAiF/B;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAyBpB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAoB;YAE3C,SAAS;IAoGvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAwBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoFrB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA0GzB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAoE/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqD3B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,QAAQ;IA2FhB;;OAEG;IACH,OAAO,CAAC,IAAI;IAIZ;;;;OAIG;IACG,qBAAqB,CACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAKlE;;;;;;OAMG;IACG,+BAA+B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAClE,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9D,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;CA0EH"}
|
package/dist/codeScanner.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { readdir, readFile, stat, lstat, realpath } from 'fs/promises';
|
|
5
5
|
import { join, relative, extname, sep } from 'path';
|
|
6
6
|
import { createHash } from 'crypto';
|
|
7
|
+
import ignore from 'ignore';
|
|
7
8
|
import { debug as logDebug } from './logger.js';
|
|
8
9
|
import { withTimeout } from './asyncUtils.js';
|
|
9
10
|
import { scrubSecrets } from './secretPatterns.js';
|
|
@@ -11,69 +12,97 @@ import { scrubSecrets } from './secretPatterns.js';
|
|
|
11
12
|
* File operation timeout (5 seconds) to prevent hanging on slow/unresponsive filesystems
|
|
12
13
|
*/
|
|
13
14
|
const FILE_OP_TIMEOUT_MS = 5000;
|
|
15
|
+
/**
|
|
16
|
+
* Directory basenames the scanner never indexes, across every ecosystem —
|
|
17
|
+
* generated output, package-manager/build caches, and vendored deps. SINGLE
|
|
18
|
+
* SOURCE OF TRUTH: the scanner package's discovery + watch walks import this
|
|
19
|
+
* (`packages/scanner/src/{discovery,watcher}.ts`) and `src/core/utils.ts`
|
|
20
|
+
* derives from it, so every ignore surface agrees instead of drifting (the
|
|
21
|
+
* pre-2026-07 state had four divergent copies). Add only UNAMBIGUOUS names —
|
|
22
|
+
* a project's own `.gitignore` / `.mnemonikignore` covers the ambiguous,
|
|
23
|
+
* project-specific cases (`vendor/`, custom dirs) hierarchically.
|
|
24
|
+
*/
|
|
25
|
+
export const BUILT_IN_IGNORE_DIRS = [
|
|
26
|
+
// JS / web
|
|
27
|
+
'node_modules',
|
|
28
|
+
'.next',
|
|
29
|
+
'.nuxt',
|
|
30
|
+
'.output',
|
|
31
|
+
'dist',
|
|
32
|
+
'build',
|
|
33
|
+
'coverage',
|
|
34
|
+
'.turbo',
|
|
35
|
+
'.vercel',
|
|
36
|
+
'.svelte-kit',
|
|
37
|
+
'.angular',
|
|
38
|
+
'.astro',
|
|
39
|
+
'.parcel-cache',
|
|
40
|
+
'bower_components',
|
|
41
|
+
// Python
|
|
42
|
+
'venv',
|
|
43
|
+
'.venv',
|
|
44
|
+
'env',
|
|
45
|
+
'__pycache__',
|
|
46
|
+
'.tox',
|
|
47
|
+
'.mypy_cache',
|
|
48
|
+
'.pytest_cache',
|
|
49
|
+
'.ruff_cache',
|
|
50
|
+
// Native mobile — iOS / Android / React Native / Flutter (2026-07-11 Pods incident)
|
|
51
|
+
'Pods',
|
|
52
|
+
'DerivedData',
|
|
53
|
+
'.gradle',
|
|
54
|
+
'.expo',
|
|
55
|
+
'.dart_tool',
|
|
56
|
+
// Infra / cloud
|
|
57
|
+
'.terraform',
|
|
58
|
+
'cdk.out',
|
|
59
|
+
'.serverless',
|
|
60
|
+
// Build systems, caches, VCS
|
|
61
|
+
'target',
|
|
62
|
+
'bin',
|
|
63
|
+
'obj',
|
|
64
|
+
'.cache',
|
|
65
|
+
'.git',
|
|
66
|
+
'.svn',
|
|
67
|
+
'.hg',
|
|
68
|
+
];
|
|
69
|
+
/**
|
|
70
|
+
* Non-directory built-in ignore patterns (files, globs, and the segment-
|
|
71
|
+
* anchored fixture rule), combined with BUILT_IN_IGNORE_DIRS to form
|
|
72
|
+
* DEFAULT_OPTIONS.ignorePatterns. See `shouldIgnore` for match semantics.
|
|
73
|
+
*
|
|
74
|
+
* `/tests/fixtures/*`: leading '/' = segment-anchored — matches tests/fixtures/
|
|
75
|
+
* at the path root or immediately after a '/', so nested packages/x/tests/
|
|
76
|
+
* fixtures/ are excluded but integration-tests/fixtures/ is NOT. Fixture
|
|
77
|
+
* snapshot dirs were being indexed as real source and outranking the genuine
|
|
78
|
+
* file in code_search. (Nested clones/worktrees/submodules are excluded
|
|
79
|
+
* generically by the isGitBoundary rule below, not a path convention.)
|
|
80
|
+
*/
|
|
81
|
+
const BUILT_IN_IGNORE_FILE_PATTERNS = [
|
|
82
|
+
'.env',
|
|
83
|
+
'.DS_Store',
|
|
84
|
+
'*.log',
|
|
85
|
+
'*.lock',
|
|
86
|
+
'package-lock.json',
|
|
87
|
+
'yarn.lock',
|
|
88
|
+
'*.min.js',
|
|
89
|
+
'*.min.css',
|
|
90
|
+
'*.bundle.js',
|
|
91
|
+
'*.legacy.js',
|
|
92
|
+
'*.map',
|
|
93
|
+
'/tests/fixtures/*',
|
|
94
|
+
];
|
|
95
|
+
/**
|
|
96
|
+
* Per-directory ignore files the walkers honor, unioned. `.gitignore` is the
|
|
97
|
+
* project's own declaration of generated/vendored paths; `.mnemonikignore`
|
|
98
|
+
* (same gitignore syntax) is the user's Mnemonik-specific "never index this"
|
|
99
|
+
* list (e.g. `secrets/`). Matched hierarchically via the `ignore` package.
|
|
100
|
+
*/
|
|
101
|
+
const IGNORE_FILE_NAMES = ['.gitignore', '.mnemonikignore'];
|
|
14
102
|
const DEFAULT_OPTIONS = {
|
|
15
103
|
maxChunkSize: 8000, // ~2000 tokens
|
|
16
104
|
minChunkSize: 100,
|
|
17
|
-
ignorePatterns: [
|
|
18
|
-
// JavaScript/Node
|
|
19
|
-
'node_modules',
|
|
20
|
-
'.next',
|
|
21
|
-
// Python virtual environments
|
|
22
|
-
'venv',
|
|
23
|
-
'.venv',
|
|
24
|
-
'env',
|
|
25
|
-
'.env',
|
|
26
|
-
'__pycache__',
|
|
27
|
-
'.tox',
|
|
28
|
-
'.mypy_cache',
|
|
29
|
-
'.pytest_cache',
|
|
30
|
-
// Build outputs
|
|
31
|
-
'dist',
|
|
32
|
-
'build',
|
|
33
|
-
'target',
|
|
34
|
-
'bin',
|
|
35
|
-
'obj',
|
|
36
|
-
'coverage',
|
|
37
|
-
// Version control & cache
|
|
38
|
-
'.git',
|
|
39
|
-
'.cache',
|
|
40
|
-
'.DS_Store',
|
|
41
|
-
// Lock files
|
|
42
|
-
'*.log',
|
|
43
|
-
'*.lock',
|
|
44
|
-
'package-lock.json',
|
|
45
|
-
'yarn.lock',
|
|
46
|
-
// Minified/bundled files - too large and not useful for context
|
|
47
|
-
'*.min.js',
|
|
48
|
-
'*.min.css',
|
|
49
|
-
'*.bundle.js',
|
|
50
|
-
'*.legacy.js',
|
|
51
|
-
'*.map',
|
|
52
|
-
// Test fixture snapshot directories — historical before/after doc-truth
|
|
53
|
-
// dogfood copies (e.g. tests/fixtures/docTruth/*/before/src/...) were
|
|
54
|
-
// getting indexed as if they were real source, and a stale snapshot
|
|
55
|
-
// chunk could outrank the genuine file it duplicates in code_search
|
|
56
|
-
// (MemoryManager.searchCodePointers has a matching interim query-time
|
|
57
|
-
// exclusion for already-indexed rows; this is the scanner-level fix so
|
|
58
|
-
// new scans never pick them up in the first place). Retroactive cleanup
|
|
59
|
-
// of already-indexed fixture chunks happens on the next inventory diff —
|
|
60
|
-
// the daemon picks this up at its next package release, the in-process
|
|
61
|
-
// refresh tool gets it immediately.
|
|
62
|
-
//
|
|
63
|
-
// Leading '/' = segment-anchored (see shouldIgnore): matches tests/fixtures/
|
|
64
|
-
// at the path root or immediately after a '/' — so nested dirs like
|
|
65
|
-
// packages/x/tests/fixtures/ are also excluded, but integration-tests/fixtures/
|
|
66
|
-
// is NOT. The previous unanchored 'tests/fixtures/*' compiled to a bare
|
|
67
|
-
// substring regex and wrongly excluded any directory merely ENDING in "tests".
|
|
68
|
-
'/tests/fixtures/*',
|
|
69
|
-
// NOTE: transient agent worktrees (previously `.claude/worktrees/*`
|
|
70
|
-
// here) are no longer excluded by path convention. Linked worktrees,
|
|
71
|
-
// nested clones, and submodules are all excluded generically by the
|
|
72
|
-
// nested-git-boundary rule (isGitBoundary below) — git's own `.git`
|
|
73
|
-
// marker, so no host or codebase layout is baked in. Original incident:
|
|
74
|
-
// a worktree mirror was indexed as canonical source and polluted the
|
|
75
|
-
// corpus with 376 stale couplings.
|
|
76
|
-
],
|
|
105
|
+
ignorePatterns: [...BUILT_IN_IGNORE_DIRS, ...BUILT_IN_IGNORE_FILE_PATTERNS],
|
|
77
106
|
includeExtensions: [
|
|
78
107
|
'.ts',
|
|
79
108
|
'.tsx',
|
|
@@ -129,6 +158,39 @@ export const FIXTURE_PATH_RE = /(^|\/)tests\/fixtures\//;
|
|
|
129
158
|
export function isFixturePath(path) {
|
|
130
159
|
return FIXTURE_PATH_RE.test(path);
|
|
131
160
|
}
|
|
161
|
+
const BUILT_IN_IGNORE_DIR_SET = new Set(BUILT_IN_IGNORE_DIRS);
|
|
162
|
+
/**
|
|
163
|
+
* Server-side ignore matcher for defense-in-depth path dropping on /scan/push,
|
|
164
|
+
* /scan/reconcile, and file_push. Combines the universal BUILT_IN_IGNORE_DIRS
|
|
165
|
+
* (segment-exact) with a project's uploaded .gitignore/.mnemonikignore patterns
|
|
166
|
+
* (gitignore syntax via the `ignore` package). Built once per request and reused
|
|
167
|
+
* across all pushed paths (root-relative, forward-slash). This does NOT replace
|
|
168
|
+
* the daemon's precise hierarchical walk — it backstops it so a buggy, stale, or
|
|
169
|
+
* malicious client cannot index a path the project ignores, making .mnemonikignore
|
|
170
|
+
* a hard guarantee rather than best-effort.
|
|
171
|
+
*/
|
|
172
|
+
export function makeIgnoreMatcher(extraPatterns = []) {
|
|
173
|
+
const cleaned = extraPatterns.filter((p) => typeof p === 'string' && p.trim().length > 0);
|
|
174
|
+
const ig = cleaned.length > 0 ? ignore().add([...cleaned]) : null;
|
|
175
|
+
return (relPath) => {
|
|
176
|
+
if (!relPath)
|
|
177
|
+
return false;
|
|
178
|
+
const norm = relPath.split(sep).join('/');
|
|
179
|
+
if (norm.split('/').some((s) => BUILT_IN_IGNORE_DIR_SET.has(s)))
|
|
180
|
+
return true;
|
|
181
|
+
if (ig) {
|
|
182
|
+
try {
|
|
183
|
+
return ig.ignores(norm);
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
// `ignore` throws on absolute/`..` paths (safeScanPath already rejects
|
|
187
|
+
// those upstream); built-ins were already checked, so fail open here.
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return false;
|
|
192
|
+
};
|
|
193
|
+
}
|
|
132
194
|
/**
|
|
133
195
|
* True when `dirPath` is the root of a DIFFERENT repository than the one
|
|
134
196
|
* being scanned: it carries its own `.git` entry. A `.git` FILE marks a
|
|
@@ -154,6 +216,90 @@ export class CodeScanner {
|
|
|
154
216
|
constructor(options = {}) {
|
|
155
217
|
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
156
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Read `.gitignore` + `.mnemonikignore` in `absDir` and compile them into one
|
|
221
|
+
* ignore layer (the two files are unioned — `.mnemonikignore` is just an
|
|
222
|
+
* additional gitignore-syntax exclusion list). Returns null when neither file
|
|
223
|
+
* exists. FAIL-CLOSED: a non-ENOENT read error (EISDIR, EACCES, timeout)
|
|
224
|
+
* latches `walk.complete = false` so callers deriving *removals* from the walk
|
|
225
|
+
* treat it as untrustworthy rather than silently ignoring nothing.
|
|
226
|
+
*/
|
|
227
|
+
async loadIgnoreLayer(absDir, baseRel, walk) {
|
|
228
|
+
const patterns = [];
|
|
229
|
+
for (const name of IGNORE_FILE_NAMES) {
|
|
230
|
+
const filePath = join(absDir, name);
|
|
231
|
+
try {
|
|
232
|
+
const content = await withTimeout(readFile(filePath, 'utf-8'), FILE_OP_TIMEOUT_MS, `readFile timed out: ${filePath}`);
|
|
233
|
+
for (const line of content.split(/\r?\n/))
|
|
234
|
+
patterns.push(line);
|
|
235
|
+
}
|
|
236
|
+
catch (err) {
|
|
237
|
+
if (err?.code !== 'ENOENT') {
|
|
238
|
+
walk.complete = false;
|
|
239
|
+
logDebug('Ignore-file read failed (fail-closed)', { path: filePath, err });
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// `ignore` tolerates blank/comment lines; null when nothing meaningful.
|
|
244
|
+
if (patterns.length === 0)
|
|
245
|
+
return null;
|
|
246
|
+
const ig = ignore().add(patterns);
|
|
247
|
+
return { baseRel, ig };
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* True when `entryRel` (relative to the scan root) is excluded by any ignore
|
|
251
|
+
* layer in `stack`. Tested deepest-first: the first layer that explicitly
|
|
252
|
+
* ignores OR re-includes (via a `!negation`) wins, matching git's rule that a
|
|
253
|
+
* deeper `.gitignore` overrides a shallower one. Directories are tested with a
|
|
254
|
+
* trailing slash so `foo/` dir-only rules match the directory itself.
|
|
255
|
+
*/
|
|
256
|
+
ignoredByStack(entryRel, isDir, stack) {
|
|
257
|
+
for (let i = stack.length - 1; i >= 0; i--) {
|
|
258
|
+
const { baseRel, ig } = stack[i];
|
|
259
|
+
let sub;
|
|
260
|
+
if (baseRel === '') {
|
|
261
|
+
sub = entryRel;
|
|
262
|
+
}
|
|
263
|
+
else if (entryRel === baseRel || !entryRel.startsWith(baseRel + '/')) {
|
|
264
|
+
continue; // this layer does not cover entryRel
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
sub = entryRel.slice(baseRel.length + 1);
|
|
268
|
+
}
|
|
269
|
+
if (!sub)
|
|
270
|
+
continue;
|
|
271
|
+
const res = ig.test(isDir ? sub + '/' : sub);
|
|
272
|
+
if (res.ignored)
|
|
273
|
+
return true;
|
|
274
|
+
if (res.unignored)
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
|
+
return false;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Reconstruct the root→parent ignore-layer stack for a single file, for the
|
|
281
|
+
* incremental `scanFiles` path (which has a flat file list, not a recursive
|
|
282
|
+
* walk). Layers are memoized per directory in `cache` across a batch.
|
|
283
|
+
*/
|
|
284
|
+
async buildIgnoreStackForFile(fileRel, rootPath, cache, walk) {
|
|
285
|
+
const dirs = [''];
|
|
286
|
+
let acc = '';
|
|
287
|
+
for (const seg of fileRel.split('/').slice(0, -1)) {
|
|
288
|
+
acc = acc === '' ? seg : `${acc}/${seg}`;
|
|
289
|
+
dirs.push(acc);
|
|
290
|
+
}
|
|
291
|
+
const stack = [];
|
|
292
|
+
for (const dir of dirs) {
|
|
293
|
+
let layer = cache.get(dir);
|
|
294
|
+
if (layer === undefined) {
|
|
295
|
+
layer = await this.loadIgnoreLayer(dir === '' ? rootPath : join(rootPath, dir), dir, walk);
|
|
296
|
+
cache.set(dir, layer);
|
|
297
|
+
}
|
|
298
|
+
if (layer)
|
|
299
|
+
stack.push(layer);
|
|
300
|
+
}
|
|
301
|
+
return stack;
|
|
302
|
+
}
|
|
157
303
|
/**
|
|
158
304
|
* True when any directory strictly between `rootPath` and `filePath`
|
|
159
305
|
* carries its own `.git` entry (see isGitBoundary). Paths that don't
|
|
@@ -249,7 +395,7 @@ export class CodeScanner {
|
|
|
249
395
|
complete: walk.complete,
|
|
250
396
|
};
|
|
251
397
|
}
|
|
252
|
-
async traversePaths(currentPath, rootPath, out, depth, walk) {
|
|
398
|
+
async traversePaths(currentPath, rootPath, out, depth, walk, stack = []) {
|
|
253
399
|
if (depth >= CodeScanner.MAX_DEPTH)
|
|
254
400
|
return;
|
|
255
401
|
let entries;
|
|
@@ -261,6 +407,9 @@ export class CodeScanner {
|
|
|
261
407
|
logDebug('Error traversing directory (listFiles)', { path: currentPath, error });
|
|
262
408
|
return;
|
|
263
409
|
}
|
|
410
|
+
const dirRel = currentPath === rootPath ? '' : relative(rootPath, currentPath).split(sep).join('/');
|
|
411
|
+
const localLayer = await this.loadIgnoreLayer(currentPath, dirRel, walk);
|
|
412
|
+
const localStack = localLayer ? [...stack, localLayer] : stack;
|
|
264
413
|
for (const entry of entries) {
|
|
265
414
|
const fullPath = join(currentPath, entry);
|
|
266
415
|
const relativePath = relative(rootPath, fullPath);
|
|
@@ -278,11 +427,15 @@ export class CodeScanner {
|
|
|
278
427
|
? await withTimeout(stat(fullPath), FILE_OP_TIMEOUT_MS, `stat timed out: ${fullPath}`)
|
|
279
428
|
: lstats;
|
|
280
429
|
if (stats.isDirectory()) {
|
|
430
|
+
if (this.ignoredByStack(relativePath, true, localStack))
|
|
431
|
+
continue; // .gitignore/.mnemonikignore
|
|
281
432
|
if (await isGitBoundary(fullPath))
|
|
282
433
|
continue; // another repo's subtree
|
|
283
|
-
await this.traversePaths(fullPath, rootPath, out, depth + 1, walk);
|
|
434
|
+
await this.traversePaths(fullPath, rootPath, out, depth + 1, walk, localStack);
|
|
284
435
|
}
|
|
285
436
|
else if (stats.isFile()) {
|
|
437
|
+
if (this.ignoredByStack(relativePath, false, localStack))
|
|
438
|
+
continue;
|
|
286
439
|
if (this.options.includeExtensions.includes(extname(fullPath))) {
|
|
287
440
|
out.push(relativePath);
|
|
288
441
|
}
|
|
@@ -300,11 +453,23 @@ export class CodeScanner {
|
|
|
300
453
|
*/
|
|
301
454
|
async scanFiles(filePaths, rootPath) {
|
|
302
455
|
const chunks = [];
|
|
456
|
+
const ignoreCache = new Map();
|
|
457
|
+
const walk = { complete: true };
|
|
303
458
|
for (const filePath of filePaths) {
|
|
304
459
|
try {
|
|
305
|
-
|
|
460
|
+
const fileRel = rootPath ? relative(rootPath, filePath).split(sep).join('/') : filePath;
|
|
461
|
+
if (this.shouldIgnore(fileRel)) {
|
|
306
462
|
continue;
|
|
307
463
|
}
|
|
464
|
+
// Honor .gitignore/.mnemonikignore on the incremental path too, by
|
|
465
|
+
// reconstructing this file's ancestor ignore-layer stack (memoized
|
|
466
|
+
// per directory across the batch).
|
|
467
|
+
if (rootPath && !fileRel.startsWith('..')) {
|
|
468
|
+
const stack = await this.buildIgnoreStackForFile(fileRel, rootPath, ignoreCache, walk);
|
|
469
|
+
if (this.ignoredByStack(fileRel, false, stack)) {
|
|
470
|
+
continue;
|
|
471
|
+
}
|
|
472
|
+
}
|
|
308
473
|
// Explicit file lists arrive from watcher events, which can race a
|
|
309
474
|
// worktree/nested-clone appearing — apply the same nested-git-boundary
|
|
310
475
|
// rule the walks use (an ancestor between root and the file carrying
|
|
@@ -350,7 +515,7 @@ export class CodeScanner {
|
|
|
350
515
|
* Recursively traverse directory
|
|
351
516
|
* Added depth parameter with max limit
|
|
352
517
|
*/
|
|
353
|
-
async traverseDirectory(currentPath, rootPath, chunks, depth, walk) {
|
|
518
|
+
async traverseDirectory(currentPath, rootPath, chunks, depth, walk, stack = []) {
|
|
354
519
|
// Prevent infinite recursion
|
|
355
520
|
if (depth >= CodeScanner.MAX_DEPTH) {
|
|
356
521
|
logDebug('Max directory depth reached, skipping', { path: currentPath, depth });
|
|
@@ -366,6 +531,10 @@ export class CodeScanner {
|
|
|
366
531
|
logDebug('Error traversing directory', { path: currentPath, error });
|
|
367
532
|
return;
|
|
368
533
|
}
|
|
534
|
+
// Layer this directory's .gitignore/.mnemonikignore onto the inherited stack.
|
|
535
|
+
const dirRel = currentPath === rootPath ? '' : relative(rootPath, currentPath).split(sep).join('/');
|
|
536
|
+
const localLayer = await this.loadIgnoreLayer(currentPath, dirRel, walk);
|
|
537
|
+
const localStack = localLayer ? [...stack, localLayer] : stack;
|
|
369
538
|
for (const entry of entries) {
|
|
370
539
|
const fullPath = join(currentPath, entry);
|
|
371
540
|
const relativePath = relative(rootPath, fullPath);
|
|
@@ -386,11 +555,15 @@ export class CodeScanner {
|
|
|
386
555
|
? await withTimeout(stat(fullPath), FILE_OP_TIMEOUT_MS, `stat timed out: ${fullPath}`)
|
|
387
556
|
: lstats;
|
|
388
557
|
if (stats.isDirectory()) {
|
|
558
|
+
if (this.ignoredByStack(relativePath, true, localStack))
|
|
559
|
+
continue; // .gitignore/.mnemonikignore
|
|
389
560
|
if (await isGitBoundary(fullPath))
|
|
390
561
|
continue; // another repo's subtree
|
|
391
|
-
await this.traverseDirectory(fullPath, rootPath, chunks, depth + 1, walk);
|
|
562
|
+
await this.traverseDirectory(fullPath, rootPath, chunks, depth + 1, walk, localStack);
|
|
392
563
|
}
|
|
393
564
|
else if (stats.isFile()) {
|
|
565
|
+
if (this.ignoredByStack(relativePath, false, localStack))
|
|
566
|
+
continue;
|
|
394
567
|
const ext = extname(fullPath);
|
|
395
568
|
if (this.options.includeExtensions.includes(ext)) {
|
|
396
569
|
const fileChunks = await this.parseFile(fullPath, rootPath);
|
|
@@ -970,7 +1143,7 @@ export class CodeScanner {
|
|
|
970
1143
|
const out = [];
|
|
971
1144
|
const walkState = { complete: true };
|
|
972
1145
|
// M2: cap walk depth to match the scanner's MAX_DEPTH (10)
|
|
973
|
-
const walk = async (dir, depth) => {
|
|
1146
|
+
const walk = async (dir, depth, stack = []) => {
|
|
974
1147
|
if (depth >= CodeScanner.MAX_DEPTH)
|
|
975
1148
|
return;
|
|
976
1149
|
let entries;
|
|
@@ -981,6 +1154,9 @@ export class CodeScanner {
|
|
|
981
1154
|
walkState.complete = false;
|
|
982
1155
|
return;
|
|
983
1156
|
}
|
|
1157
|
+
const dirRel = dir === projectRoot ? '' : relative(projectRoot, dir).split(sep).join('/');
|
|
1158
|
+
const localLayer = await this.loadIgnoreLayer(dir, dirRel, walkState);
|
|
1159
|
+
const localStack = localLayer ? [...stack, localLayer] : stack;
|
|
984
1160
|
for (const ent of entries) {
|
|
985
1161
|
const full = join(dir, ent.name);
|
|
986
1162
|
const rel = relative(projectRoot, full).split(sep).join('/');
|
|
@@ -1009,10 +1185,12 @@ export class CodeScanner {
|
|
|
1009
1185
|
continue;
|
|
1010
1186
|
}
|
|
1011
1187
|
}
|
|
1188
|
+
if (this.ignoredByStack(rel, isDir, localStack))
|
|
1189
|
+
continue; // .gitignore/.mnemonikignore
|
|
1012
1190
|
if (isDir) {
|
|
1013
1191
|
if (await isGitBoundary(full))
|
|
1014
1192
|
continue; // another repo's subtree
|
|
1015
|
-
await walk(full, depth + 1);
|
|
1193
|
+
await walk(full, depth + 1, localStack);
|
|
1016
1194
|
}
|
|
1017
1195
|
else if (isFile && AUTHORITY_FILE_MATCHERS.some((m) => m(rel))) {
|
|
1018
1196
|
try {
|
package/dist/codeScanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeScanner.js","sourceRoot":"","sources":["../src/codeScanner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codeScanner.js","sourceRoot":"","sources":["../src/codeScanner.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { MCP_INSTRUCTIONS, MCP_INSTRUCTIONS_RAW, getMcpInstructions } from './instructions.js';
|
|
8
8
|
export { USAGE_GUIDE } from './usageGuide.js';
|
|
9
|
-
export { CodeScanner, AUTHORITY_FILE_MATCHERS, isGitBoundary, FIXTURE_PATH_RE, isFixturePath, type CodeChunk, type ScanOptions, } from './codeScanner.js';
|
|
9
|
+
export { CodeScanner, AUTHORITY_FILE_MATCHERS, BUILT_IN_IGNORE_DIRS, makeIgnoreMatcher, isGitBoundary, FIXTURE_PATH_RE, isFixturePath, type CodeChunk, type ScanOptions, } from './codeScanner.js';
|
|
10
10
|
export { FileSystemReader, getFileSystemReader, type ScanFilesResult, type ChangedFilesResult, type FileData, } from './FileSystemReader.js';
|
|
11
11
|
export { SECRET_PATTERNS, SECRET_REDACTION_PLACEHOLDER, scrubSecrets } from './secretPatterns.js';
|
|
12
12
|
export { FETCH_TIMEOUT_MS, TELEMETRY_TIMEOUT_MS, POST_TOOL_TIMEOUT_MS, MCP_PRECHECK_TIMEOUT_MS, withHookTimeout, } from './hookTimeouts.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,aAAa,EACb,KAAK,SAAS,EACd,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,aAAa,EACb,KAAK,SAAS,EACd,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { MCP_INSTRUCTIONS, MCP_INSTRUCTIONS_RAW, getMcpInstructions } from './instructions.js';
|
|
8
8
|
export { USAGE_GUIDE } from './usageGuide.js';
|
|
9
|
-
export { CodeScanner, AUTHORITY_FILE_MATCHERS, isGitBoundary, FIXTURE_PATH_RE, isFixturePath, } from './codeScanner.js';
|
|
9
|
+
export { CodeScanner, AUTHORITY_FILE_MATCHERS, BUILT_IN_IGNORE_DIRS, makeIgnoreMatcher, isGitBoundary, FIXTURE_PATH_RE, isFixturePath, } from './codeScanner.js';
|
|
10
10
|
export { FileSystemReader, getFileSystemReader, } from './FileSystemReader.js';
|
|
11
11
|
export { SECRET_PATTERNS, SECRET_REDACTION_PLACEHOLDER, scrubSecrets } from './secretPatterns.js';
|
|
12
12
|
export { FETCH_TIMEOUT_MS, TELEMETRY_TIMEOUT_MS, POST_TOOL_TIMEOUT_MS, MCP_PRECHECK_TIMEOUT_MS, withHookTimeout, } from './hookTimeouts.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,aAAa,GAGd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAIpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,aAAa,GAGd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAIpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnemonik/shared",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.4.0",
|
|
4
4
|
"description": "Shared constants and utilities for Mnemonik packages",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -23,6 +23,9 @@
|
|
|
23
23
|
],
|
|
24
24
|
"author": "Anthony",
|
|
25
25
|
"license": "MIT",
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"ignore": "^7.0.5"
|
|
28
|
+
},
|
|
26
29
|
"devDependencies": {
|
|
27
30
|
"typescript": "^5.3.3"
|
|
28
31
|
}
|
package/src/FileSystemReader.ts
CHANGED
|
@@ -17,6 +17,11 @@ import { CodeScanner, CodeChunk } from './codeScanner.js';
|
|
|
17
17
|
const FILE_OP_TIMEOUT_MS = 5000;
|
|
18
18
|
const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10 MB
|
|
19
19
|
|
|
20
|
+
// NOTE: this SKIP_DIRS is NOT an index gate — FileSystemReader's walk methods
|
|
21
|
+
// (scanDirectory/detectChangedFiles) have no live caller; only readFileContent
|
|
22
|
+
// (single file, no ignore) is used, for JIT citation verification. The
|
|
23
|
+
// authoritative built-in list is BUILT_IN_IGNORE_DIRS in codeScanner.ts. Left
|
|
24
|
+
// as-is (dead) rather than rewired to avoid churn on unused code.
|
|
20
25
|
const SKIP_DIRS = new Set([
|
|
21
26
|
'node_modules',
|
|
22
27
|
'.git',
|
package/src/codeScanner.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { readdir, readFile, stat, lstat, realpath } from 'fs/promises';
|
|
6
6
|
import { join, relative, extname, sep } from 'path';
|
|
7
7
|
import { createHash } from 'crypto';
|
|
8
|
+
import ignore, { type Ignore } from 'ignore';
|
|
8
9
|
import { debug as logDebug } from './logger.js';
|
|
9
10
|
import { withTimeout } from './asyncUtils.js';
|
|
10
11
|
import { scrubSecrets } from './secretPatterns.js';
|
|
@@ -50,69 +51,100 @@ interface WalkState {
|
|
|
50
51
|
complete: boolean;
|
|
51
52
|
}
|
|
52
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Directory basenames the scanner never indexes, across every ecosystem —
|
|
56
|
+
* generated output, package-manager/build caches, and vendored deps. SINGLE
|
|
57
|
+
* SOURCE OF TRUTH: the scanner package's discovery + watch walks import this
|
|
58
|
+
* (`packages/scanner/src/{discovery,watcher}.ts`) and `src/core/utils.ts`
|
|
59
|
+
* derives from it, so every ignore surface agrees instead of drifting (the
|
|
60
|
+
* pre-2026-07 state had four divergent copies). Add only UNAMBIGUOUS names —
|
|
61
|
+
* a project's own `.gitignore` / `.mnemonikignore` covers the ambiguous,
|
|
62
|
+
* project-specific cases (`vendor/`, custom dirs) hierarchically.
|
|
63
|
+
*/
|
|
64
|
+
export const BUILT_IN_IGNORE_DIRS: readonly string[] = [
|
|
65
|
+
// JS / web
|
|
66
|
+
'node_modules',
|
|
67
|
+
'.next',
|
|
68
|
+
'.nuxt',
|
|
69
|
+
'.output',
|
|
70
|
+
'dist',
|
|
71
|
+
'build',
|
|
72
|
+
'coverage',
|
|
73
|
+
'.turbo',
|
|
74
|
+
'.vercel',
|
|
75
|
+
'.svelte-kit',
|
|
76
|
+
'.angular',
|
|
77
|
+
'.astro',
|
|
78
|
+
'.parcel-cache',
|
|
79
|
+
'bower_components',
|
|
80
|
+
// Python
|
|
81
|
+
'venv',
|
|
82
|
+
'.venv',
|
|
83
|
+
'env',
|
|
84
|
+
'__pycache__',
|
|
85
|
+
'.tox',
|
|
86
|
+
'.mypy_cache',
|
|
87
|
+
'.pytest_cache',
|
|
88
|
+
'.ruff_cache',
|
|
89
|
+
// Native mobile — iOS / Android / React Native / Flutter (2026-07-11 Pods incident)
|
|
90
|
+
'Pods',
|
|
91
|
+
'DerivedData',
|
|
92
|
+
'.gradle',
|
|
93
|
+
'.expo',
|
|
94
|
+
'.dart_tool',
|
|
95
|
+
// Infra / cloud
|
|
96
|
+
'.terraform',
|
|
97
|
+
'cdk.out',
|
|
98
|
+
'.serverless',
|
|
99
|
+
// Build systems, caches, VCS
|
|
100
|
+
'target',
|
|
101
|
+
'bin',
|
|
102
|
+
'obj',
|
|
103
|
+
'.cache',
|
|
104
|
+
'.git',
|
|
105
|
+
'.svn',
|
|
106
|
+
'.hg',
|
|
107
|
+
];
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Non-directory built-in ignore patterns (files, globs, and the segment-
|
|
111
|
+
* anchored fixture rule), combined with BUILT_IN_IGNORE_DIRS to form
|
|
112
|
+
* DEFAULT_OPTIONS.ignorePatterns. See `shouldIgnore` for match semantics.
|
|
113
|
+
*
|
|
114
|
+
* `/tests/fixtures/*`: leading '/' = segment-anchored — matches tests/fixtures/
|
|
115
|
+
* at the path root or immediately after a '/', so nested packages/x/tests/
|
|
116
|
+
* fixtures/ are excluded but integration-tests/fixtures/ is NOT. Fixture
|
|
117
|
+
* snapshot dirs were being indexed as real source and outranking the genuine
|
|
118
|
+
* file in code_search. (Nested clones/worktrees/submodules are excluded
|
|
119
|
+
* generically by the isGitBoundary rule below, not a path convention.)
|
|
120
|
+
*/
|
|
121
|
+
const BUILT_IN_IGNORE_FILE_PATTERNS: readonly string[] = [
|
|
122
|
+
'.env',
|
|
123
|
+
'.DS_Store',
|
|
124
|
+
'*.log',
|
|
125
|
+
'*.lock',
|
|
126
|
+
'package-lock.json',
|
|
127
|
+
'yarn.lock',
|
|
128
|
+
'*.min.js',
|
|
129
|
+
'*.min.css',
|
|
130
|
+
'*.bundle.js',
|
|
131
|
+
'*.legacy.js',
|
|
132
|
+
'*.map',
|
|
133
|
+
'/tests/fixtures/*',
|
|
134
|
+
];
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Per-directory ignore files the walkers honor, unioned. `.gitignore` is the
|
|
138
|
+
* project's own declaration of generated/vendored paths; `.mnemonikignore`
|
|
139
|
+
* (same gitignore syntax) is the user's Mnemonik-specific "never index this"
|
|
140
|
+
* list (e.g. `secrets/`). Matched hierarchically via the `ignore` package.
|
|
141
|
+
*/
|
|
142
|
+
const IGNORE_FILE_NAMES = ['.gitignore', '.mnemonikignore'] as const;
|
|
143
|
+
|
|
53
144
|
const DEFAULT_OPTIONS: Required<ScanOptions> = {
|
|
54
145
|
maxChunkSize: 8000, // ~2000 tokens
|
|
55
146
|
minChunkSize: 100,
|
|
56
|
-
ignorePatterns: [
|
|
57
|
-
// JavaScript/Node
|
|
58
|
-
'node_modules',
|
|
59
|
-
'.next',
|
|
60
|
-
// Python virtual environments
|
|
61
|
-
'venv',
|
|
62
|
-
'.venv',
|
|
63
|
-
'env',
|
|
64
|
-
'.env',
|
|
65
|
-
'__pycache__',
|
|
66
|
-
'.tox',
|
|
67
|
-
'.mypy_cache',
|
|
68
|
-
'.pytest_cache',
|
|
69
|
-
// Build outputs
|
|
70
|
-
'dist',
|
|
71
|
-
'build',
|
|
72
|
-
'target',
|
|
73
|
-
'bin',
|
|
74
|
-
'obj',
|
|
75
|
-
'coverage',
|
|
76
|
-
// Version control & cache
|
|
77
|
-
'.git',
|
|
78
|
-
'.cache',
|
|
79
|
-
'.DS_Store',
|
|
80
|
-
// Lock files
|
|
81
|
-
'*.log',
|
|
82
|
-
'*.lock',
|
|
83
|
-
'package-lock.json',
|
|
84
|
-
'yarn.lock',
|
|
85
|
-
// Minified/bundled files - too large and not useful for context
|
|
86
|
-
'*.min.js',
|
|
87
|
-
'*.min.css',
|
|
88
|
-
'*.bundle.js',
|
|
89
|
-
'*.legacy.js',
|
|
90
|
-
'*.map',
|
|
91
|
-
// Test fixture snapshot directories — historical before/after doc-truth
|
|
92
|
-
// dogfood copies (e.g. tests/fixtures/docTruth/*/before/src/...) were
|
|
93
|
-
// getting indexed as if they were real source, and a stale snapshot
|
|
94
|
-
// chunk could outrank the genuine file it duplicates in code_search
|
|
95
|
-
// (MemoryManager.searchCodePointers has a matching interim query-time
|
|
96
|
-
// exclusion for already-indexed rows; this is the scanner-level fix so
|
|
97
|
-
// new scans never pick them up in the first place). Retroactive cleanup
|
|
98
|
-
// of already-indexed fixture chunks happens on the next inventory diff —
|
|
99
|
-
// the daemon picks this up at its next package release, the in-process
|
|
100
|
-
// refresh tool gets it immediately.
|
|
101
|
-
//
|
|
102
|
-
// Leading '/' = segment-anchored (see shouldIgnore): matches tests/fixtures/
|
|
103
|
-
// at the path root or immediately after a '/' — so nested dirs like
|
|
104
|
-
// packages/x/tests/fixtures/ are also excluded, but integration-tests/fixtures/
|
|
105
|
-
// is NOT. The previous unanchored 'tests/fixtures/*' compiled to a bare
|
|
106
|
-
// substring regex and wrongly excluded any directory merely ENDING in "tests".
|
|
107
|
-
'/tests/fixtures/*',
|
|
108
|
-
// NOTE: transient agent worktrees (previously `.claude/worktrees/*`
|
|
109
|
-
// here) are no longer excluded by path convention. Linked worktrees,
|
|
110
|
-
// nested clones, and submodules are all excluded generically by the
|
|
111
|
-
// nested-git-boundary rule (isGitBoundary below) — git's own `.git`
|
|
112
|
-
// marker, so no host or codebase layout is baked in. Original incident:
|
|
113
|
-
// a worktree mirror was indexed as canonical source and polluted the
|
|
114
|
-
// corpus with 376 stale couplings.
|
|
115
|
-
],
|
|
147
|
+
ignorePatterns: [...BUILT_IN_IGNORE_DIRS, ...BUILT_IN_IGNORE_FILE_PATTERNS],
|
|
116
148
|
includeExtensions: [
|
|
117
149
|
'.ts',
|
|
118
150
|
'.tsx',
|
|
@@ -171,6 +203,40 @@ export function isFixturePath(path: string): boolean {
|
|
|
171
203
|
return FIXTURE_PATH_RE.test(path);
|
|
172
204
|
}
|
|
173
205
|
|
|
206
|
+
const BUILT_IN_IGNORE_DIR_SET = new Set<string>(BUILT_IN_IGNORE_DIRS);
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Server-side ignore matcher for defense-in-depth path dropping on /scan/push,
|
|
210
|
+
* /scan/reconcile, and file_push. Combines the universal BUILT_IN_IGNORE_DIRS
|
|
211
|
+
* (segment-exact) with a project's uploaded .gitignore/.mnemonikignore patterns
|
|
212
|
+
* (gitignore syntax via the `ignore` package). Built once per request and reused
|
|
213
|
+
* across all pushed paths (root-relative, forward-slash). This does NOT replace
|
|
214
|
+
* the daemon's precise hierarchical walk — it backstops it so a buggy, stale, or
|
|
215
|
+
* malicious client cannot index a path the project ignores, making .mnemonikignore
|
|
216
|
+
* a hard guarantee rather than best-effort.
|
|
217
|
+
*/
|
|
218
|
+
export function makeIgnoreMatcher(
|
|
219
|
+
extraPatterns: readonly string[] = []
|
|
220
|
+
): (relPath: string) => boolean {
|
|
221
|
+
const cleaned = extraPatterns.filter((p) => typeof p === 'string' && p.trim().length > 0);
|
|
222
|
+
const ig = cleaned.length > 0 ? ignore().add([...cleaned]) : null;
|
|
223
|
+
return (relPath: string): boolean => {
|
|
224
|
+
if (!relPath) return false;
|
|
225
|
+
const norm = relPath.split(sep).join('/');
|
|
226
|
+
if (norm.split('/').some((s) => BUILT_IN_IGNORE_DIR_SET.has(s))) return true;
|
|
227
|
+
if (ig) {
|
|
228
|
+
try {
|
|
229
|
+
return ig.ignores(norm);
|
|
230
|
+
} catch {
|
|
231
|
+
// `ignore` throws on absolute/`..` paths (safeScanPath already rejects
|
|
232
|
+
// those upstream); built-ins were already checked, so fail open here.
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return false;
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
|
|
174
240
|
/**
|
|
175
241
|
* True when `dirPath` is the root of a DIFFERENT repository than the one
|
|
176
242
|
* being scanned: it carries its own `.git` entry. A `.git` FILE marks a
|
|
@@ -195,6 +261,18 @@ export async function isGitBoundary(dirPath: string): Promise<boolean> {
|
|
|
195
261
|
}
|
|
196
262
|
}
|
|
197
263
|
|
|
264
|
+
/**
|
|
265
|
+
* One directory's compiled ignore-file rules, keyed by its path relative to
|
|
266
|
+
* the scan root (`''` = root). A stack of these, root→leaf, is threaded
|
|
267
|
+
* through the walkers; `ignoredByStack` tests deepest-first so a nested
|
|
268
|
+
* `.gitignore` overrides a shallower one (git precedence).
|
|
269
|
+
*/
|
|
270
|
+
interface IgnoreLayer {
|
|
271
|
+
baseRel: string;
|
|
272
|
+
ig: Ignore;
|
|
273
|
+
}
|
|
274
|
+
type IgnoreStack = IgnoreLayer[];
|
|
275
|
+
|
|
198
276
|
export class CodeScanner {
|
|
199
277
|
private options: Required<ScanOptions>;
|
|
200
278
|
|
|
@@ -202,6 +280,97 @@ export class CodeScanner {
|
|
|
202
280
|
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
203
281
|
}
|
|
204
282
|
|
|
283
|
+
/**
|
|
284
|
+
* Read `.gitignore` + `.mnemonikignore` in `absDir` and compile them into one
|
|
285
|
+
* ignore layer (the two files are unioned — `.mnemonikignore` is just an
|
|
286
|
+
* additional gitignore-syntax exclusion list). Returns null when neither file
|
|
287
|
+
* exists. FAIL-CLOSED: a non-ENOENT read error (EISDIR, EACCES, timeout)
|
|
288
|
+
* latches `walk.complete = false` so callers deriving *removals* from the walk
|
|
289
|
+
* treat it as untrustworthy rather than silently ignoring nothing.
|
|
290
|
+
*/
|
|
291
|
+
private async loadIgnoreLayer(
|
|
292
|
+
absDir: string,
|
|
293
|
+
baseRel: string,
|
|
294
|
+
walk: WalkState
|
|
295
|
+
): Promise<IgnoreLayer | null> {
|
|
296
|
+
const patterns: string[] = [];
|
|
297
|
+
for (const name of IGNORE_FILE_NAMES) {
|
|
298
|
+
const filePath = join(absDir, name);
|
|
299
|
+
try {
|
|
300
|
+
const content = await withTimeout(
|
|
301
|
+
readFile(filePath, 'utf-8'),
|
|
302
|
+
FILE_OP_TIMEOUT_MS,
|
|
303
|
+
`readFile timed out: ${filePath}`
|
|
304
|
+
);
|
|
305
|
+
for (const line of content.split(/\r?\n/)) patterns.push(line);
|
|
306
|
+
} catch (err) {
|
|
307
|
+
if ((err as NodeJS.ErrnoException)?.code !== 'ENOENT') {
|
|
308
|
+
walk.complete = false;
|
|
309
|
+
logDebug('Ignore-file read failed (fail-closed)', { path: filePath, err });
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// `ignore` tolerates blank/comment lines; null when nothing meaningful.
|
|
314
|
+
if (patterns.length === 0) return null;
|
|
315
|
+
const ig = ignore().add(patterns);
|
|
316
|
+
return { baseRel, ig };
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* True when `entryRel` (relative to the scan root) is excluded by any ignore
|
|
321
|
+
* layer in `stack`. Tested deepest-first: the first layer that explicitly
|
|
322
|
+
* ignores OR re-includes (via a `!negation`) wins, matching git's rule that a
|
|
323
|
+
* deeper `.gitignore` overrides a shallower one. Directories are tested with a
|
|
324
|
+
* trailing slash so `foo/` dir-only rules match the directory itself.
|
|
325
|
+
*/
|
|
326
|
+
private ignoredByStack(entryRel: string, isDir: boolean, stack: IgnoreStack): boolean {
|
|
327
|
+
for (let i = stack.length - 1; i >= 0; i--) {
|
|
328
|
+
const { baseRel, ig } = stack[i];
|
|
329
|
+
let sub: string;
|
|
330
|
+
if (baseRel === '') {
|
|
331
|
+
sub = entryRel;
|
|
332
|
+
} else if (entryRel === baseRel || !entryRel.startsWith(baseRel + '/')) {
|
|
333
|
+
continue; // this layer does not cover entryRel
|
|
334
|
+
} else {
|
|
335
|
+
sub = entryRel.slice(baseRel.length + 1);
|
|
336
|
+
}
|
|
337
|
+
if (!sub) continue;
|
|
338
|
+
const res = ig.test(isDir ? sub + '/' : sub);
|
|
339
|
+
if (res.ignored) return true;
|
|
340
|
+
if (res.unignored) return false;
|
|
341
|
+
}
|
|
342
|
+
return false;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* Reconstruct the root→parent ignore-layer stack for a single file, for the
|
|
347
|
+
* incremental `scanFiles` path (which has a flat file list, not a recursive
|
|
348
|
+
* walk). Layers are memoized per directory in `cache` across a batch.
|
|
349
|
+
*/
|
|
350
|
+
private async buildIgnoreStackForFile(
|
|
351
|
+
fileRel: string,
|
|
352
|
+
rootPath: string,
|
|
353
|
+
cache: Map<string, IgnoreLayer | null>,
|
|
354
|
+
walk: WalkState
|
|
355
|
+
): Promise<IgnoreStack> {
|
|
356
|
+
const dirs = [''];
|
|
357
|
+
let acc = '';
|
|
358
|
+
for (const seg of fileRel.split('/').slice(0, -1)) {
|
|
359
|
+
acc = acc === '' ? seg : `${acc}/${seg}`;
|
|
360
|
+
dirs.push(acc);
|
|
361
|
+
}
|
|
362
|
+
const stack: IgnoreStack = [];
|
|
363
|
+
for (const dir of dirs) {
|
|
364
|
+
let layer = cache.get(dir);
|
|
365
|
+
if (layer === undefined) {
|
|
366
|
+
layer = await this.loadIgnoreLayer(dir === '' ? rootPath : join(rootPath, dir), dir, walk);
|
|
367
|
+
cache.set(dir, layer);
|
|
368
|
+
}
|
|
369
|
+
if (layer) stack.push(layer);
|
|
370
|
+
}
|
|
371
|
+
return stack;
|
|
372
|
+
}
|
|
373
|
+
|
|
205
374
|
/**
|
|
206
375
|
* True when any directory strictly between `rootPath` and `filePath`
|
|
207
376
|
* carries its own `.git` entry (see isGitBoundary). Paths that don't
|
|
@@ -309,7 +478,8 @@ export class CodeScanner {
|
|
|
309
478
|
rootPath: string,
|
|
310
479
|
out: string[],
|
|
311
480
|
depth: number,
|
|
312
|
-
walk: WalkState
|
|
481
|
+
walk: WalkState,
|
|
482
|
+
stack: IgnoreStack = []
|
|
313
483
|
): Promise<void> {
|
|
314
484
|
if (depth >= CodeScanner.MAX_DEPTH) return;
|
|
315
485
|
let entries: string[];
|
|
@@ -324,6 +494,10 @@ export class CodeScanner {
|
|
|
324
494
|
logDebug('Error traversing directory (listFiles)', { path: currentPath, error });
|
|
325
495
|
return;
|
|
326
496
|
}
|
|
497
|
+
const dirRel =
|
|
498
|
+
currentPath === rootPath ? '' : relative(rootPath, currentPath).split(sep).join('/');
|
|
499
|
+
const localLayer = await this.loadIgnoreLayer(currentPath, dirRel, walk);
|
|
500
|
+
const localStack = localLayer ? [...stack, localLayer] : stack;
|
|
327
501
|
for (const entry of entries) {
|
|
328
502
|
const fullPath = join(currentPath, entry);
|
|
329
503
|
const relativePath = relative(rootPath, fullPath);
|
|
@@ -346,9 +520,11 @@ export class CodeScanner {
|
|
|
346
520
|
: lstats;
|
|
347
521
|
|
|
348
522
|
if (stats.isDirectory()) {
|
|
523
|
+
if (this.ignoredByStack(relativePath, true, localStack)) continue; // .gitignore/.mnemonikignore
|
|
349
524
|
if (await isGitBoundary(fullPath)) continue; // another repo's subtree
|
|
350
|
-
await this.traversePaths(fullPath, rootPath, out, depth + 1, walk);
|
|
525
|
+
await this.traversePaths(fullPath, rootPath, out, depth + 1, walk, localStack);
|
|
351
526
|
} else if (stats.isFile()) {
|
|
527
|
+
if (this.ignoredByStack(relativePath, false, localStack)) continue;
|
|
352
528
|
if (this.options.includeExtensions.includes(extname(fullPath))) {
|
|
353
529
|
out.push(relativePath);
|
|
354
530
|
}
|
|
@@ -366,12 +542,24 @@ export class CodeScanner {
|
|
|
366
542
|
*/
|
|
367
543
|
async scanFiles(filePaths: string[], rootPath: string): Promise<CodeChunk[]> {
|
|
368
544
|
const chunks: CodeChunk[] = [];
|
|
545
|
+
const ignoreCache = new Map<string, IgnoreLayer | null>();
|
|
546
|
+
const walk: WalkState = { complete: true };
|
|
369
547
|
|
|
370
548
|
for (const filePath of filePaths) {
|
|
371
549
|
try {
|
|
372
|
-
|
|
550
|
+
const fileRel = rootPath ? relative(rootPath, filePath).split(sep).join('/') : filePath;
|
|
551
|
+
if (this.shouldIgnore(fileRel)) {
|
|
373
552
|
continue;
|
|
374
553
|
}
|
|
554
|
+
// Honor .gitignore/.mnemonikignore on the incremental path too, by
|
|
555
|
+
// reconstructing this file's ancestor ignore-layer stack (memoized
|
|
556
|
+
// per directory across the batch).
|
|
557
|
+
if (rootPath && !fileRel.startsWith('..')) {
|
|
558
|
+
const stack = await this.buildIgnoreStackForFile(fileRel, rootPath, ignoreCache, walk);
|
|
559
|
+
if (this.ignoredByStack(fileRel, false, stack)) {
|
|
560
|
+
continue;
|
|
561
|
+
}
|
|
562
|
+
}
|
|
375
563
|
// Explicit file lists arrive from watcher events, which can race a
|
|
376
564
|
// worktree/nested-clone appearing — apply the same nested-git-boundary
|
|
377
565
|
// rule the walks use (an ancestor between root and the file carrying
|
|
@@ -424,7 +612,8 @@ export class CodeScanner {
|
|
|
424
612
|
rootPath: string,
|
|
425
613
|
chunks: CodeChunk[],
|
|
426
614
|
depth: number,
|
|
427
|
-
walk: WalkState
|
|
615
|
+
walk: WalkState,
|
|
616
|
+
stack: IgnoreStack = []
|
|
428
617
|
): Promise<void> {
|
|
429
618
|
// Prevent infinite recursion
|
|
430
619
|
if (depth >= CodeScanner.MAX_DEPTH) {
|
|
@@ -446,6 +635,12 @@ export class CodeScanner {
|
|
|
446
635
|
return;
|
|
447
636
|
}
|
|
448
637
|
|
|
638
|
+
// Layer this directory's .gitignore/.mnemonikignore onto the inherited stack.
|
|
639
|
+
const dirRel =
|
|
640
|
+
currentPath === rootPath ? '' : relative(rootPath, currentPath).split(sep).join('/');
|
|
641
|
+
const localLayer = await this.loadIgnoreLayer(currentPath, dirRel, walk);
|
|
642
|
+
const localStack = localLayer ? [...stack, localLayer] : stack;
|
|
643
|
+
|
|
449
644
|
for (const entry of entries) {
|
|
450
645
|
const fullPath = join(currentPath, entry);
|
|
451
646
|
const relativePath = relative(rootPath, fullPath);
|
|
@@ -475,9 +670,11 @@ export class CodeScanner {
|
|
|
475
670
|
: lstats;
|
|
476
671
|
|
|
477
672
|
if (stats.isDirectory()) {
|
|
673
|
+
if (this.ignoredByStack(relativePath, true, localStack)) continue; // .gitignore/.mnemonikignore
|
|
478
674
|
if (await isGitBoundary(fullPath)) continue; // another repo's subtree
|
|
479
|
-
await this.traverseDirectory(fullPath, rootPath, chunks, depth + 1, walk);
|
|
675
|
+
await this.traverseDirectory(fullPath, rootPath, chunks, depth + 1, walk, localStack);
|
|
480
676
|
} else if (stats.isFile()) {
|
|
677
|
+
if (this.ignoredByStack(relativePath, false, localStack)) continue;
|
|
481
678
|
const ext = extname(fullPath);
|
|
482
679
|
if (this.options.includeExtensions.includes(ext)) {
|
|
483
680
|
const fileChunks = await this.parseFile(fullPath, rootPath);
|
|
@@ -1123,7 +1320,7 @@ export class CodeScanner {
|
|
|
1123
1320
|
const walkState: WalkState = { complete: true };
|
|
1124
1321
|
|
|
1125
1322
|
// M2: cap walk depth to match the scanner's MAX_DEPTH (10)
|
|
1126
|
-
const walk = async (dir: string, depth: number): Promise<void> => {
|
|
1323
|
+
const walk = async (dir: string, depth: number, stack: IgnoreStack = []): Promise<void> => {
|
|
1127
1324
|
if (depth >= CodeScanner.MAX_DEPTH) return;
|
|
1128
1325
|
let entries;
|
|
1129
1326
|
try {
|
|
@@ -1132,6 +1329,9 @@ export class CodeScanner {
|
|
|
1132
1329
|
walkState.complete = false;
|
|
1133
1330
|
return;
|
|
1134
1331
|
}
|
|
1332
|
+
const dirRel = dir === projectRoot ? '' : relative(projectRoot, dir).split(sep).join('/');
|
|
1333
|
+
const localLayer = await this.loadIgnoreLayer(dir, dirRel, walkState);
|
|
1334
|
+
const localStack = localLayer ? [...stack, localLayer] : stack;
|
|
1135
1335
|
for (const ent of entries) {
|
|
1136
1336
|
const full = join(dir, ent.name);
|
|
1137
1337
|
const rel = relative(projectRoot, full).split(sep).join('/');
|
|
@@ -1159,9 +1359,10 @@ export class CodeScanner {
|
|
|
1159
1359
|
}
|
|
1160
1360
|
}
|
|
1161
1361
|
|
|
1362
|
+
if (this.ignoredByStack(rel, isDir, localStack)) continue; // .gitignore/.mnemonikignore
|
|
1162
1363
|
if (isDir) {
|
|
1163
1364
|
if (await isGitBoundary(full)) continue; // another repo's subtree
|
|
1164
|
-
await walk(full, depth + 1);
|
|
1365
|
+
await walk(full, depth + 1, localStack);
|
|
1165
1366
|
} else if (isFile && AUTHORITY_FILE_MATCHERS.some((m) => m(rel))) {
|
|
1166
1367
|
try {
|
|
1167
1368
|
let content = await readFile(full, 'utf-8');
|