codesift-mcp 0.8.10 → 0.8.12

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 (78) hide show
  1. package/dist/cli/hooks.d.ts.map +1 -1
  2. package/dist/cli/hooks.js +2 -1
  3. package/dist/cli/hooks.js.map +1 -1
  4. package/dist/cli/setup.d.ts.map +1 -1
  5. package/dist/cli/setup.js +52 -9
  6. package/dist/cli/setup.js.map +1 -1
  7. package/dist/config.d.ts +1 -0
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +1 -0
  10. package/dist/config.js.map +1 -1
  11. package/dist/register-tools.d.ts.map +1 -1
  12. package/dist/register-tools.js +126 -1
  13. package/dist/register-tools.js.map +1 -1
  14. package/dist/search/model2vec-tokenize.d.ts +22 -0
  15. package/dist/search/model2vec-tokenize.d.ts.map +1 -0
  16. package/dist/search/model2vec-tokenize.js +140 -0
  17. package/dist/search/model2vec-tokenize.js.map +1 -0
  18. package/dist/search/semantic.d.ts.map +1 -1
  19. package/dist/search/semantic.js +7 -0
  20. package/dist/search/semantic.js.map +1 -1
  21. package/dist/search/static-embedding-provider.d.ts +24 -0
  22. package/dist/search/static-embedding-provider.d.ts.map +1 -0
  23. package/dist/search/static-embedding-provider.js +157 -0
  24. package/dist/search/static-embedding-provider.js.map +1 -0
  25. package/dist/storage/_shared.d.ts.map +1 -1
  26. package/dist/storage/_shared.js +4 -1
  27. package/dist/storage/_shared.js.map +1 -1
  28. package/dist/storage/group-registry.d.ts +51 -0
  29. package/dist/storage/group-registry.d.ts.map +1 -0
  30. package/dist/storage/group-registry.js +263 -0
  31. package/dist/storage/group-registry.js.map +1 -0
  32. package/dist/storage/hash-snapshot.d.ts +36 -0
  33. package/dist/storage/hash-snapshot.d.ts.map +1 -0
  34. package/dist/storage/hash-snapshot.js +101 -0
  35. package/dist/storage/hash-snapshot.js.map +1 -0
  36. package/dist/storage/usage-stats.d.ts +8 -0
  37. package/dist/storage/usage-stats.d.ts.map +1 -1
  38. package/dist/storage/usage-stats.js +74 -24
  39. package/dist/storage/usage-stats.js.map +1 -1
  40. package/dist/storage/usage-tracker.d.ts +16 -0
  41. package/dist/storage/usage-tracker.d.ts.map +1 -1
  42. package/dist/storage/usage-tracker.js +23 -3
  43. package/dist/storage/usage-tracker.js.map +1 -1
  44. package/dist/tools/cross-repo-contract-tools.d.ts +137 -0
  45. package/dist/tools/cross-repo-contract-tools.d.ts.map +1 -0
  46. package/dist/tools/cross-repo-contract-tools.js +593 -0
  47. package/dist/tools/cross-repo-contract-tools.js.map +1 -0
  48. package/dist/tools/cross-repo-outbound-lexer.d.ts +35 -0
  49. package/dist/tools/cross-repo-outbound-lexer.d.ts.map +1 -0
  50. package/dist/tools/cross-repo-outbound-lexer.js +594 -0
  51. package/dist/tools/cross-repo-outbound-lexer.js.map +1 -0
  52. package/dist/tools/index-tools.d.ts +31 -2
  53. package/dist/tools/index-tools.d.ts.map +1 -1
  54. package/dist/tools/index-tools.js +463 -33
  55. package/dist/tools/index-tools.js.map +1 -1
  56. package/dist/tools/pg-introspect-tools.d.ts +147 -0
  57. package/dist/tools/pg-introspect-tools.d.ts.map +1 -0
  58. package/dist/tools/pg-introspect-tools.js +396 -0
  59. package/dist/tools/pg-introspect-tools.js.map +1 -0
  60. package/dist/types.d.ts +27 -0
  61. package/dist/types.d.ts.map +1 -1
  62. package/dist/utils/hf-download-stream.d.ts +21 -0
  63. package/dist/utils/hf-download-stream.d.ts.map +1 -0
  64. package/dist/utils/hf-download-stream.js +101 -0
  65. package/dist/utils/hf-download-stream.js.map +1 -0
  66. package/dist/utils/hf-hub-download.d.ts +8 -0
  67. package/dist/utils/hf-hub-download.d.ts.map +1 -0
  68. package/dist/utils/hf-hub-download.js +149 -0
  69. package/dist/utils/hf-hub-download.js.map +1 -0
  70. package/dist/utils/safetensors-loader.d.ts +9 -0
  71. package/dist/utils/safetensors-loader.d.ts.map +1 -0
  72. package/dist/utils/safetensors-loader.js +95 -0
  73. package/dist/utils/safetensors-loader.js.map +1 -0
  74. package/dist/utils/safetensors-meta-guard.d.ts +7 -0
  75. package/dist/utils/safetensors-meta-guard.d.ts.map +1 -0
  76. package/dist/utils/safetensors-meta-guard.js +50 -0
  77. package/dist/utils/safetensors-meta-guard.js.map +1 -0
  78. package/package.json +3 -1
@@ -0,0 +1,594 @@
1
+ /**
2
+ * Lightweight state-machine lexer for outbound HTTP call detection.
3
+ *
4
+ * Performs a single forward scan over JS/TS source, classifying each position as:
5
+ * code | string | template | regex | lineComment | blockComment
6
+ *
7
+ * At code positions only, detects `fetch(`, `axios.METHOD(`, `got.METHOD(` calls,
8
+ * then reads the immediately following string/template literal as the URL argument.
9
+ *
10
+ * This approach fixes C2 (inner braces in interpolation), C3 (regex literals
11
+ * not confused with comments), C4 (multi-line templates), C5 (wide-spaced concat),
12
+ * and C6 (no false positives from string-embedded call text).
13
+ */
14
+ /**
15
+ * Classify whether the slash at `pos` (where source[pos] === '/') opens a
16
+ * regex literal. We look at the previous non-whitespace token kind:
17
+ * - After an identifier/literal/closing bracket → division operator (not regex)
18
+ * - After operator / keyword / open bracket / start → regex
19
+ *
20
+ * We scan backwards through `out` (already-processed output) for the last
21
+ * meaningful character.
22
+ */
23
+ function isRegexStart(out) {
24
+ // Scan backwards through already-emitted output for last non-space char
25
+ for (let i = out.length - 1; i >= 0; i--) {
26
+ const c = out[i];
27
+ if (c === " " || c === "\t" || c === "\n" || c === "\r")
28
+ continue;
29
+ // Closing brackets / identifier chars → division
30
+ if (c === ")" || c === "]" || /[a-zA-Z0-9_$]/.test(c))
31
+ return false;
32
+ // Everything else (operators, opening brackets, etc.) → regex
33
+ return true;
34
+ }
35
+ // Start of file → regex
36
+ return true;
37
+ }
38
+ // ---------------------------------------------------------------------------
39
+ // Main lexer
40
+ // ---------------------------------------------------------------------------
41
+ /**
42
+ * Lex `source` and return all detected outbound HTTP calls with their URL
43
+ * literal and metadata. Calls inside strings/templates/comments are skipped.
44
+ */
45
+ export function findOutboundCalls(source) {
46
+ const results = [];
47
+ const n = source.length;
48
+ // out[] mirrors source character-by-character (same length) so we can
49
+ // track state of already-processed output for regex disambiguation.
50
+ // We use it only for the isRegexStart() backwards scan.
51
+ const out = [];
52
+ let i = 0;
53
+ let state = "code";
54
+ let line = 1;
55
+ // Template literal stack for nested ${...}
56
+ // Each entry records the brace depth at which we entered a ${} expression.
57
+ const templateStack = [];
58
+ let braceDepth = 0;
59
+ // Regex literal termination: track whether we just exited a [] character class
60
+ let inRegexClass = false;
61
+ function peek(offset = 1) {
62
+ return i + offset < n ? source[i + offset] : "";
63
+ }
64
+ // ──────────────────────────────────────────────────────────────────────────
65
+ // Read a string literal starting AFTER the opening quote (pos already past
66
+ // the quote). Returns raw content (excluding quotes) and advances `i`.
67
+ // ──────────────────────────────────────────────────────────────────────────
68
+ function readStringContent(quote) {
69
+ let raw = "";
70
+ while (i < n) {
71
+ const c = source[i];
72
+ if (c === "\\") {
73
+ raw += c;
74
+ i++;
75
+ if (i < n) {
76
+ raw += source[i];
77
+ if (source[i] === "\n")
78
+ line++;
79
+ i++;
80
+ }
81
+ continue;
82
+ }
83
+ if (c === quote) {
84
+ i++; // consume closing quote
85
+ break;
86
+ }
87
+ if (c === "\n")
88
+ line++;
89
+ raw += c;
90
+ i++;
91
+ }
92
+ return raw;
93
+ }
94
+ // ──────────────────────────────────────────────────────────────────────────
95
+ // Read a template literal starting AFTER the opening backtick.
96
+ // Returns raw content (excluding backticks) including ${...} verbatim.
97
+ // Handles nested objects inside ${} via brace-depth tracking.
98
+ // ──────────────────────────────────────────────────────────────────────────
99
+ function readTemplateContent() {
100
+ let raw = "";
101
+ let depth = 0; // brace depth inside ${}
102
+ let inExpr = false;
103
+ while (i < n) {
104
+ const c = source[i];
105
+ if (!inExpr) {
106
+ if (c === "\\") {
107
+ raw += c;
108
+ i++;
109
+ if (i < n) {
110
+ raw += source[i];
111
+ if (source[i] === "\n")
112
+ line++;
113
+ i++;
114
+ }
115
+ continue;
116
+ }
117
+ if (c === "`") {
118
+ i++; // consume closing backtick
119
+ break;
120
+ }
121
+ if (c === "$" && peek() === "{") {
122
+ raw += "${";
123
+ i += 2;
124
+ inExpr = true;
125
+ depth = 1;
126
+ continue;
127
+ }
128
+ if (c === "\n")
129
+ line++;
130
+ raw += c;
131
+ i++;
132
+ continue;
133
+ }
134
+ // Inside ${...}
135
+ if (c === "{") {
136
+ depth++;
137
+ raw += c;
138
+ i++;
139
+ continue;
140
+ }
141
+ if (c === "}") {
142
+ depth--;
143
+ raw += c;
144
+ i++;
145
+ if (depth === 0) {
146
+ inExpr = false;
147
+ }
148
+ continue;
149
+ }
150
+ // Track strings inside ${} so a "}" inside a string doesn't end the expr
151
+ if (c === '"' || c === "'") {
152
+ raw += c;
153
+ i++;
154
+ while (i < n) {
155
+ const sc = source[i];
156
+ raw += sc;
157
+ i++;
158
+ if (sc === "\\") {
159
+ if (i < n) {
160
+ raw += source[i];
161
+ i++;
162
+ }
163
+ continue;
164
+ }
165
+ if (sc === c)
166
+ break;
167
+ }
168
+ continue;
169
+ }
170
+ if (c === "\n")
171
+ line++;
172
+ raw += c;
173
+ i++;
174
+ }
175
+ return raw;
176
+ }
177
+ // ──────────────────────────────────────────────────────────────────────────
178
+ // Skip whitespace (including newlines) at code level, return first non-ws
179
+ // index. Does NOT advance global `i`.
180
+ // ──────────────────────────────────────────────────────────────────────────
181
+ function skipWs(start) {
182
+ let p = start;
183
+ while (p < n) {
184
+ const c = source[p];
185
+ if (c === " " || c === "\t" || c === "\n" || c === "\r") {
186
+ p++;
187
+ continue;
188
+ }
189
+ break;
190
+ }
191
+ return p;
192
+ }
193
+ // ──────────────────────────────────────────────────────────────────────────
194
+ // After finding a callee + "(" at code level, try to read the URL argument.
195
+ // `i` should be positioned right after the "(" (already consumed).
196
+ // Returns the UrlLiteral or null if the first non-ws token is not a quote.
197
+ // ──────────────────────────────────────────────────────────────────────────
198
+ function tryReadUrlArg() {
199
+ const p = skipWs(i);
200
+ if (p >= n)
201
+ return null;
202
+ const q = source[p];
203
+ if (q === '"' || q === "'") {
204
+ i = p + 1; // advance past opening quote
205
+ const raw = readStringContent(q);
206
+ return { kind: "string", raw };
207
+ }
208
+ if (q === "`") {
209
+ i = p + 1; // advance past backtick
210
+ const raw = readTemplateContent();
211
+ return { kind: "template", raw };
212
+ }
213
+ return null;
214
+ }
215
+ // ──────────────────────────────────────────────────────────────────────────
216
+ // After reading the URL literal (i is now just past closing quote/backtick),
217
+ // peek at the next non-whitespace code token (up to 50 chars).
218
+ // ──────────────────────────────────────────────────────────────────────────
219
+ function peekNextCodeToken() {
220
+ const p = skipWs(i);
221
+ if (p >= n)
222
+ return "";
223
+ // Read until whitespace or a separator
224
+ let tok = "";
225
+ let q = p;
226
+ while (q < n && tok.length < 20) {
227
+ const c = source[q];
228
+ if (c === " " || c === "\t" || c === "\n" || c === "\r")
229
+ break;
230
+ tok += c;
231
+ q++;
232
+ }
233
+ return tok;
234
+ }
235
+ // ──────────────────────────────────────────────────────────────────────────
236
+ // Main scan loop
237
+ // ──────────────────────────────────────────────────────────────────────────
238
+ while (i < n) {
239
+ const c = source[i];
240
+ const next = peek();
241
+ // ── code state ──────────────────────────────────────────────────────────
242
+ if (state === "code") {
243
+ // Line comment
244
+ if (c === "/" && next === "/") {
245
+ state = "lineComment";
246
+ out.push(c);
247
+ i++;
248
+ out.push(next);
249
+ i++;
250
+ if (source[i - 1] === "\n")
251
+ line++;
252
+ continue;
253
+ }
254
+ // Block comment
255
+ if (c === "/" && next === "*") {
256
+ state = "blockComment";
257
+ out.push(c);
258
+ i++;
259
+ out.push(next);
260
+ i++;
261
+ continue;
262
+ }
263
+ // Regex literal — only if previous context indicates regex start
264
+ if (c === "/" && next !== "/" && next !== "*" && isRegexStart(out)) {
265
+ state = "regex";
266
+ inRegexClass = false;
267
+ out.push(c);
268
+ i++;
269
+ continue;
270
+ }
271
+ // String literals
272
+ if (c === '"') {
273
+ state = "doubleString";
274
+ out.push(c);
275
+ i++;
276
+ continue;
277
+ }
278
+ if (c === "'") {
279
+ state = "singleString";
280
+ out.push(c);
281
+ i++;
282
+ continue;
283
+ }
284
+ if (c === "`") {
285
+ state = "template";
286
+ templateStack.push(braceDepth); // push current code brace depth
287
+ out.push(c);
288
+ i++;
289
+ continue;
290
+ }
291
+ // Brace tracking (for template ${} expressions)
292
+ if (c === "{") {
293
+ braceDepth++;
294
+ out.push(c);
295
+ i++;
296
+ continue;
297
+ }
298
+ if (c === "}") {
299
+ if (templateStack.length > 0 && braceDepth === templateStack[templateStack.length - 1]) {
300
+ // Closing a ${} expression — return to template state
301
+ templateStack.pop();
302
+ braceDepth--;
303
+ state = "template";
304
+ out.push(c);
305
+ i++;
306
+ continue;
307
+ }
308
+ braceDepth--;
309
+ out.push(c);
310
+ i++;
311
+ continue;
312
+ }
313
+ // ── Call detection at code positions ──────────────────────────────────
314
+ // fetch(
315
+ if (c === "f" && source.slice(i, i + 5) === "fetch" &&
316
+ (i === 0 || !/[a-zA-Z0-9_$]/.test(source[i - 1]))) {
317
+ const callLine = line;
318
+ // skip "fetch"
319
+ for (let k = 0; k < 5; k++) {
320
+ out.push(source[i]);
321
+ i++;
322
+ }
323
+ const wp = skipWs(i);
324
+ if (wp < n && source[wp] === "(") {
325
+ // consume whitespace + "("
326
+ while (i < wp) {
327
+ out.push(source[i]);
328
+ i++;
329
+ }
330
+ out.push("(");
331
+ i++; // consume "("
332
+ const urlLit = tryReadUrlArg();
333
+ if (urlLit) {
334
+ const nextTok = peekNextCodeToken();
335
+ results.push({ callee: "fetch", urlLiteral: urlLit, nextCodeToken: nextTok, line: callLine });
336
+ }
337
+ continue;
338
+ }
339
+ continue;
340
+ }
341
+ // axios.METHOD(
342
+ if (c === "a" && source.slice(i, i + 5) === "axios" &&
343
+ (i === 0 || !/[a-zA-Z0-9_$]/.test(source[i - 1]))) {
344
+ const callLine = line;
345
+ for (let k = 0; k < 5; k++) {
346
+ out.push(source[i]);
347
+ i++;
348
+ }
349
+ if (i < n && source[i] === ".") {
350
+ out.push(".");
351
+ i++;
352
+ const methods = ["delete", "patch", "post", "put", "get"];
353
+ let matched = null;
354
+ for (const m of methods) {
355
+ if (source.slice(i, i + m.length).toLowerCase() === m &&
356
+ (i + m.length >= n || !/[a-zA-Z0-9_$]/.test(source[i + m.length]))) {
357
+ matched = m;
358
+ break;
359
+ }
360
+ }
361
+ if (matched) {
362
+ const verb = matched.toUpperCase();
363
+ for (let k = 0; k < matched.length; k++) {
364
+ out.push(source[i]);
365
+ i++;
366
+ }
367
+ const wp = skipWs(i);
368
+ if (wp < n && source[wp] === "(") {
369
+ while (i < wp) {
370
+ out.push(source[i]);
371
+ i++;
372
+ }
373
+ out.push("(");
374
+ i++;
375
+ const urlLit = tryReadUrlArg();
376
+ if (urlLit) {
377
+ const nextTok = peekNextCodeToken();
378
+ results.push({ callee: "axios", method: verb, urlLiteral: urlLit, nextCodeToken: nextTok, line: callLine });
379
+ }
380
+ continue;
381
+ }
382
+ }
383
+ }
384
+ continue;
385
+ }
386
+ // got.METHOD(
387
+ if (c === "g" && source.slice(i, i + 3) === "got" &&
388
+ (i === 0 || !/[a-zA-Z0-9_$]/.test(source[i - 1])) &&
389
+ (i + 3 >= n || !/[a-zA-Z0-9_$]/.test(source[i + 3]))) {
390
+ const callLine = line;
391
+ for (let k = 0; k < 3; k++) {
392
+ out.push(source[i]);
393
+ i++;
394
+ }
395
+ // peek for "."
396
+ const wp0 = skipWs(i);
397
+ if (wp0 < n && source[wp0] === ".") {
398
+ while (i < wp0) {
399
+ out.push(source[i]);
400
+ i++;
401
+ }
402
+ out.push(".");
403
+ i++;
404
+ const methods = ["delete", "patch", "post", "put", "get"];
405
+ let matched = null;
406
+ for (const m of methods) {
407
+ if (source.slice(i, i + m.length).toLowerCase() === m &&
408
+ (i + m.length >= n || !/[a-zA-Z0-9_$]/.test(source[i + m.length]))) {
409
+ matched = m;
410
+ break;
411
+ }
412
+ }
413
+ if (matched) {
414
+ const verb = matched.toUpperCase();
415
+ for (let k = 0; k < matched.length; k++) {
416
+ out.push(source[i]);
417
+ i++;
418
+ }
419
+ const wp = skipWs(i);
420
+ if (wp < n && source[wp] === "(") {
421
+ while (i < wp) {
422
+ out.push(source[i]);
423
+ i++;
424
+ }
425
+ out.push("(");
426
+ i++;
427
+ const urlLit = tryReadUrlArg();
428
+ if (urlLit) {
429
+ const nextTok = peekNextCodeToken();
430
+ results.push({ callee: "got", method: verb, urlLiteral: urlLit, nextCodeToken: nextTok, line: callLine });
431
+ }
432
+ continue;
433
+ }
434
+ }
435
+ }
436
+ continue;
437
+ }
438
+ // Regular character
439
+ if (c === "\n")
440
+ line++;
441
+ out.push(c);
442
+ i++;
443
+ continue;
444
+ }
445
+ // ── lineComment state ────────────────────────────────────────────────────
446
+ if (state === "lineComment") {
447
+ if (c === "\n") {
448
+ state = "code";
449
+ line++;
450
+ out.push(c);
451
+ i++;
452
+ continue;
453
+ }
454
+ out.push(" ");
455
+ i++;
456
+ continue;
457
+ }
458
+ // ── blockComment state ───────────────────────────────────────────────────
459
+ if (state === "blockComment") {
460
+ if (c === "*" && next === "/") {
461
+ state = "code";
462
+ out.push(" ");
463
+ i++;
464
+ out.push(" ");
465
+ i++;
466
+ continue;
467
+ }
468
+ if (c === "\n")
469
+ line++;
470
+ out.push(c === "\n" ? "\n" : " ");
471
+ i++;
472
+ continue;
473
+ }
474
+ // ── singleString state ────────────────────────────────────────────────────
475
+ if (state === "singleString") {
476
+ out.push(c);
477
+ if (c === "\\") {
478
+ i++;
479
+ if (i < n) {
480
+ out.push(source[i]);
481
+ if (source[i] === "\n")
482
+ line++;
483
+ i++;
484
+ }
485
+ continue;
486
+ }
487
+ if (c === "'") {
488
+ state = "code";
489
+ }
490
+ if (c === "\n")
491
+ line++;
492
+ i++;
493
+ continue;
494
+ }
495
+ // ── doubleString state ────────────────────────────────────────────────────
496
+ if (state === "doubleString") {
497
+ out.push(c);
498
+ if (c === "\\") {
499
+ i++;
500
+ if (i < n) {
501
+ out.push(source[i]);
502
+ if (source[i] === "\n")
503
+ line++;
504
+ i++;
505
+ }
506
+ continue;
507
+ }
508
+ if (c === '"') {
509
+ state = "code";
510
+ }
511
+ if (c === "\n")
512
+ line++;
513
+ i++;
514
+ continue;
515
+ }
516
+ // ── template state ────────────────────────────────────────────────────────
517
+ if (state === "template") {
518
+ out.push(c);
519
+ if (c === "\\") {
520
+ i++;
521
+ if (i < n) {
522
+ out.push(source[i]);
523
+ if (source[i] === "\n")
524
+ line++;
525
+ i++;
526
+ }
527
+ continue;
528
+ }
529
+ if (c === "`") {
530
+ templateStack.pop();
531
+ state = "code";
532
+ i++;
533
+ continue;
534
+ }
535
+ if (c === "$" && next === "{") {
536
+ out.push(next);
537
+ i += 2;
538
+ braceDepth++;
539
+ templateStack.push(braceDepth);
540
+ state = "code";
541
+ continue;
542
+ }
543
+ if (c === "\n")
544
+ line++;
545
+ i++;
546
+ continue;
547
+ }
548
+ // ── regex state ───────────────────────────────────────────────────────────
549
+ if (state === "regex") {
550
+ out.push(c);
551
+ if (c === "\\") {
552
+ i++;
553
+ if (i < n) {
554
+ out.push(source[i]);
555
+ if (source[i] === "\n")
556
+ line++;
557
+ i++;
558
+ }
559
+ continue;
560
+ }
561
+ if (c === "[" && !inRegexClass) {
562
+ inRegexClass = true;
563
+ i++;
564
+ continue;
565
+ }
566
+ if (c === "]" && inRegexClass) {
567
+ inRegexClass = false;
568
+ i++;
569
+ continue;
570
+ }
571
+ if (c === "/" && !inRegexClass) {
572
+ // End of regex — consume optional flags
573
+ i++;
574
+ while (i < n && /[gimsuy]/.test(source[i])) {
575
+ out.push(source[i]);
576
+ i++;
577
+ }
578
+ state = "code";
579
+ continue;
580
+ }
581
+ if (c === "\n")
582
+ line++;
583
+ i++;
584
+ continue;
585
+ }
586
+ // Fallback
587
+ if (c === "\n")
588
+ line++;
589
+ out.push(c);
590
+ i++;
591
+ }
592
+ return results;
593
+ }
594
+ //# sourceMappingURL=cross-repo-outbound-lexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-repo-outbound-lexer.js","sourceRoot":"","sources":["../../src/tools/cross-repo-outbound-lexer.ts"],"names":[],"mappings":"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"}
@@ -14,12 +14,41 @@ export interface IndexFolderResult {
14
14
  file_count: number;
15
15
  symbol_count: number;
16
16
  duration_ms: number;
17
- /** Set when the call short-circuited because a watcher is keeping the index live. */
18
- status?: "skipped";
17
+ /**
18
+ * Set when the call did not persist a fresh index:
19
+ * - "skipped" — short-circuited because a watcher is keeping the index live.
20
+ * - "rejected_partial" — new walk found <50% of the previous file count and
21
+ * the previous index still matches what's on disk, so the new (likely
22
+ * truncated) result was discarded. file_count/symbol_count echo the KEPT
23
+ * old index. Follow `hint` to force a rebuild if the shrink is expected.
24
+ */
25
+ status?: "skipped" | "rejected_partial";
19
26
  reason?: string;
20
27
  last_indexed?: string;
21
28
  hint?: string;
22
29
  }
30
+ /**
31
+ * Exported for unit testing only — not part of the public API.
32
+ *
33
+ * Drains a legacy-hash queue: hashes each file, then re-stats to confirm the
34
+ * mtime has not drifted since the decision-time stat. Entries whose mtime
35
+ * drifted (or whose stat fails) are omitted from the returned map so the next
36
+ * run re-parses them rather than reusing symbols against a mismatched sha.
37
+ *
38
+ * @param queue Items from the legacyHashQueue (relPath + filePath + decision-time mtimeMs).
39
+ * @param hashFn Injectable hash function (default: sha1OfFile). Tests inject a
40
+ * function that also modifies the file so they can trigger the
41
+ * TOCTOU drift-detection path without real concurrency.
42
+ * @param statFn Injectable stat function (default: fs.stat). Tests can stub this
43
+ * to return a post-modification mtime.
44
+ */
45
+ export declare function drainLegacyHashQueue(queue: Array<{
46
+ relPath: string;
47
+ filePath: string;
48
+ mtimeMs: number;
49
+ }>, hashFn?: (absPath: string) => Promise<string | null>, statFn?: (absPath: string) => Promise<{
50
+ mtimeMs: number;
51
+ }>): Promise<Record<string, string>>;
23
52
  export declare function indexFolder(folderPath: string, options?: {
24
53
  incremental?: boolean | undefined;
25
54
  include_paths?: string[] | undefined;