@mnemonik/shared 6.47.0 → 6.50.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.
@@ -1,6 +1,27 @@
1
1
  /**
2
2
  * Code Scanner - Parse and chunk source files for embedding
3
3
  */
4
+ /**
5
+ * The one file-size ceiling in Mnemonik. A file at or below this is scanned,
6
+ * chunked, AND pushed verbatim; a file above it is uniformly outside the
7
+ * system — not scanned, not chunked, not citable. "Scanned ⟺ verifiable".
8
+ *
9
+ * This is deliberately a single exported constant rather than a number
10
+ * repeated per layer. Three ceilings previously existed and had drifted:
11
+ * the scan ceiling here (10 MB), a 5 MB whole-file push cap in the scanner
12
+ * daemon, and a 5 MB `content` cap in the server's scanPushSchema. Files
13
+ * between 5 and 10 MB were therefore indexed as chunks whose source content
14
+ * the server never received — chunks that could be retrieved but never
15
+ * verified against, a silent fidelity split. Every consumer now imports this:
16
+ *
17
+ * - `CodeScanner.MAX_FILE_SIZE` / `collectAuthorityFilesWithStatus` (this file)
18
+ * - `MAX_PUSH_CONTENT_BYTES` (packages/scanner/src/daemon.ts)
19
+ * - `scanFileSchema.content` (src/server/routes/schemas.ts)
20
+ *
21
+ * Raising it means widening the stored-content pipe end to end; do not raise
22
+ * one site alone.
23
+ */
24
+ export declare const MAX_SCANNED_FILE_BYTES: number;
4
25
  export interface CodeChunk {
5
26
  content: string;
6
27
  filePath: string;
@@ -34,6 +55,46 @@ export interface ScanOptions {
34
55
  * project-specific cases (`vendor/`, custom dirs) hierarchically.
35
56
  */
36
57
  export declare const BUILT_IN_IGNORE_DIRS: readonly string[];
58
+ /**
59
+ * True when `relPath` names a file whose contents are credentials. Applied
60
+ * by `shouldIgnore` (every walker: directory scan, explicit file lists, and
61
+ * the authority-file walk) and by `makeIgnoreMatcher` (server-side backstop
62
+ * for older or misbehaving daemons). Accepts OS-native or POSIX separators.
63
+ */
64
+ export declare function isSecretFile(relPath: string): boolean;
65
+ /**
66
+ * Every file type the scanner will chunk, by extension. Matched
67
+ * case-INSENSITIVELY (see `isIncludedExtension`), so lowercase spellings here
68
+ * also cover `.R`, `.SQL`, `.PS1` and the uppercase `.C`/`.H` of older trees.
69
+ *
70
+ * Exported because this list IS the product's language coverage: a project
71
+ * written in something absent from it indexes zero code, and `code_search`
72
+ * reports that as "no indexed matches" rather than "I do not read this
73
+ * language" — invisible to the developer and to us. Coverage is a separate
74
+ * dial from parse quality: a language with no structured extractor falls
75
+ * through to `chunkRaw`, which is what Go, Java and C already get in
76
+ * production, and crude chunks beat no chunks by an enormous margin.
77
+ *
78
+ * Data formats (`.json`, `.yaml`, `.toml`, `.lock`) are deliberately absent:
79
+ * the ones that carry meaning are already collected verbatim by
80
+ * `AUTHORITY_FILE_MATCHERS`, and blanket-indexing the extension would pull in
81
+ * lockfiles and generated output. `.tfvars` is absent for a different reason —
82
+ * `terraform.tfvars` is a conventional home for provider credentials and
83
+ * `isSecretFile` now excludes it outright.
84
+ */
85
+ export declare const DEFAULT_INCLUDE_EXTENSIONS: readonly string[];
86
+ /**
87
+ * Language string for a file path or a bare extension, `'unknown'` when the
88
+ * extension is unmapped. A free function rather than a method because callers
89
+ * that never scan anything (AST grammar resolution, server-side symbol
90
+ * preference) need the same answer without constructing a scanner.
91
+ */
92
+ export declare function languageForExtension(filePathOrExt: string): string;
93
+ /**
94
+ * True when `relPath` is collected verbatim as authority content and must not
95
+ * additionally be chunked. Accepts OS-native or POSIX separators.
96
+ */
97
+ export declare function isAuthorityOnlyPath(relPath: string): boolean;
37
98
  /**
38
99
  * Matchers for authority manifest / config / CI files whose verbatim content
39
100
  * is collected by `collectAuthorityFiles` and pushed to the server for
@@ -75,7 +136,21 @@ export declare function makeIgnoreMatcher(extraPatterns?: readonly string[]): (r
75
136
  export declare function isGitBoundary(dirPath: string): Promise<boolean>;
76
137
  export declare class CodeScanner {
77
138
  private options;
139
+ /**
140
+ * `includeExtensions` folded to lowercase for matching. The gate used to
141
+ * compare `extname()` verbatim while `detectLanguage` lowercased, so a
142
+ * project spelling its files the canonical way — `.R` for R, `.SQL`/`.PS1`
143
+ * on Windows, `.C`/`.H` in older C trees — indexed zero of them and nothing
144
+ * said why.
145
+ */
146
+ private readonly includeExtensionSet;
78
147
  constructor(options?: ScanOptions);
148
+ /**
149
+ * The chunkable-file gate, shared by every walker and by the explicit
150
+ * file-list path so all three agree on what exists. `relPath` is the path
151
+ * relative to the scan root (OS-native separators accepted).
152
+ */
153
+ private isChunkable;
79
154
  /**
80
155
  * Read `.gitignore` + `.mnemonikignore` in `absDir` and compile them into one
81
156
  * ignore layer (the two files are unioned — `.mnemonikignore` is just an
@@ -196,8 +271,10 @@ export declare class CodeScanner {
196
271
  */
197
272
  private shouldIgnore;
198
273
  /**
199
- * Parse a file and extract code chunks
200
- * Added 10MB file size limit
274
+ * Parse a file and extract code chunks.
275
+ * Size limit is the shared `MAX_SCANNED_FILE_BYTES` ceiling — the same
276
+ * number the daemon and the server's scanPushSchema enforce, so anything
277
+ * chunked here can always be shipped and stored verbatim.
201
278
  */
202
279
  private static readonly MAX_FILE_SIZE;
203
280
  private parseFile;
@@ -1 +1 @@
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,EAqDjD,CAAC;AAuEF;;;;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;IAEvC,YAAY,OAAO,GAAE,WAAgB,EAEpC;IAED;;;;;;;OAOG;YACW,eAAe;IA4B7B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAqBtB;;;;OAIG;YACW,uBAAuB;IAwBrC;;;;;OAKG;YACW,uBAAuB;IAerC;;;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,CAG1D;IAED;;;;;;;OAOG;IACG,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAKrD;IAED;;;;;;;;;;;;;;;OAeG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnD;IAED;;;;;;OAMG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAQ3F;YAEa,aAAa;IA+D3B;;;OAGG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAuC3E;IAED;;;;;;;;;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;IA4BtB;;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;IA8FhB;;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,CAGjE;IAED;;;;;;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,CAyED;CACF"}
1
+ {"version":3,"file":"codeScanner.d.ts","sourceRoot":"","sources":["../src/codeScanner.ts"],"names":[],"mappings":"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"}