codesift-mcp 0.8.11 → 0.8.15

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 (32) hide show
  1. package/dist/cli/hooks.d.ts.map +1 -1
  2. package/dist/cli/hooks.js +31 -2
  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 +77 -9
  6. package/dist/cli/setup.js.map +1 -1
  7. package/dist/register-tools.d.ts.map +1 -1
  8. package/dist/register-tools.js +90 -3
  9. package/dist/register-tools.js.map +1 -1
  10. package/dist/search/static-embedding-provider.d.ts.map +1 -1
  11. package/dist/search/static-embedding-provider.js +9 -1
  12. package/dist/search/static-embedding-provider.js.map +1 -1
  13. package/dist/storage/group-registry.d.ts +51 -0
  14. package/dist/storage/group-registry.d.ts.map +1 -0
  15. package/dist/storage/group-registry.js +263 -0
  16. package/dist/storage/group-registry.js.map +1 -0
  17. package/dist/tools/cross-repo-contract-tools.d.ts +137 -0
  18. package/dist/tools/cross-repo-contract-tools.d.ts.map +1 -0
  19. package/dist/tools/cross-repo-contract-tools.js +593 -0
  20. package/dist/tools/cross-repo-contract-tools.js.map +1 -0
  21. package/dist/tools/cross-repo-outbound-lexer.d.ts +35 -0
  22. package/dist/tools/cross-repo-outbound-lexer.d.ts.map +1 -0
  23. package/dist/tools/cross-repo-outbound-lexer.js +594 -0
  24. package/dist/tools/cross-repo-outbound-lexer.js.map +1 -0
  25. package/dist/tools/index-tools.d.ts.map +1 -1
  26. package/dist/tools/index-tools.js +4 -1
  27. package/dist/tools/index-tools.js.map +1 -1
  28. package/dist/tools/wiki-tools.d.ts +7 -0
  29. package/dist/tools/wiki-tools.d.ts.map +1 -1
  30. package/dist/tools/wiki-tools.js +33 -1
  31. package/dist/tools/wiki-tools.js.map +1 -1
  32. package/package.json +1 -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index-tools.d.ts","sourceRoot":"","sources":["../../src/tools/index-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-tools.d.ts","sourceRoot":"","sources":["../../src/tools/index-tools.ts"],"names":[],"mappings":"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"}
@@ -393,7 +393,10 @@ export async function drainLegacyHashQueue(queue, hashFn = sha1OfFile, statFn =
393
393
  // Mtime drifted or file gone — omit so next run re-parses.
394
394
  return;
395
395
  }
396
- result[q.relPath] = shas[j] ?? "";
396
+ // Omit on null hash — never persist an empty-string sentinel that a
397
+ // snapshot reader could mistake for a valid sha1.
398
+ if (shas[j])
399
+ result[q.relPath] = shas[j];
397
400
  });
398
401
  }
399
402
  return result;