@lzehrung/codegraph 3.1.0 → 3.1.1

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 (101) hide show
  1. package/codegraph-skill/codegraph/SKILL.md +3 -2
  2. package/dist/agent/explain.d.ts.map +1 -1
  3. package/dist/agent/explain.js +12 -7
  4. package/dist/agent/explain.js.map +1 -1
  5. package/dist/agent/search.d.ts +13 -0
  6. package/dist/agent/search.d.ts.map +1 -1
  7. package/dist/agent/search.js +10 -4
  8. package/dist/agent/search.js.map +1 -1
  9. package/dist/bin/cli.js +1644 -675
  10. package/dist/cli/command-table.d.ts.map +1 -1
  11. package/dist/cli/command-table.js +4 -0
  12. package/dist/cli/command-table.js.map +1 -1
  13. package/dist/cli/duplicates.d.ts +5 -0
  14. package/dist/cli/duplicates.d.ts.map +1 -1
  15. package/dist/cli/duplicates.js +15 -2
  16. package/dist/cli/duplicates.js.map +1 -1
  17. package/dist/cli/help.d.ts +4 -4
  18. package/dist/cli/help.d.ts.map +1 -1
  19. package/dist/cli/help.js +15 -9
  20. package/dist/cli/help.js.map +1 -1
  21. package/dist/cli/mcp.d.ts.map +1 -1
  22. package/dist/cli/mcp.js +4 -0
  23. package/dist/cli/mcp.js.map +1 -1
  24. package/dist/cli/options.d.ts.map +1 -1
  25. package/dist/cli/options.js +5 -1
  26. package/dist/cli/options.js.map +1 -1
  27. package/dist/cli/progress.d.ts.map +1 -1
  28. package/dist/cli/progress.js +42 -16
  29. package/dist/cli/progress.js.map +1 -1
  30. package/dist/cli/server.d.ts.map +1 -1
  31. package/dist/cli/server.js +2 -0
  32. package/dist/cli/server.js.map +1 -1
  33. package/dist/cli/viewer.js +1 -1
  34. package/dist/cli/viewer.js.map +1 -1
  35. package/dist/drift/git.d.ts.map +1 -1
  36. package/dist/drift/git.js +10 -2
  37. package/dist/drift/git.js.map +1 -1
  38. package/dist/duplicates/candidates.d.ts +61 -0
  39. package/dist/duplicates/candidates.d.ts.map +1 -0
  40. package/dist/duplicates/candidates.js +873 -0
  41. package/dist/duplicates/candidates.js.map +1 -0
  42. package/dist/duplicates/progress.d.ts +17 -0
  43. package/dist/duplicates/progress.d.ts.map +1 -0
  44. package/dist/duplicates/progress.js +57 -0
  45. package/dist/duplicates/progress.js.map +1 -0
  46. package/dist/duplicates/scoring.d.ts +9 -40
  47. package/dist/duplicates/scoring.d.ts.map +1 -1
  48. package/dist/duplicates/scoring.js +34 -414
  49. package/dist/duplicates/scoring.js.map +1 -1
  50. package/dist/duplicates/types.d.ts +30 -1
  51. package/dist/duplicates/types.d.ts.map +1 -1
  52. package/dist/duplicates/units.d.ts +2 -1
  53. package/dist/duplicates/units.d.ts.map +1 -1
  54. package/dist/duplicates/units.js +24 -3
  55. package/dist/duplicates/units.js.map +1 -1
  56. package/dist/duplicates.d.ts +1 -0
  57. package/dist/duplicates.d.ts.map +1 -1
  58. package/dist/duplicates.js +116 -62
  59. package/dist/duplicates.js.map +1 -1
  60. package/dist/impact/providers/base.js +1 -1
  61. package/dist/impact/providers/base.js.map +1 -1
  62. package/dist/mcp/cancellation.d.ts +6 -0
  63. package/dist/mcp/cancellation.d.ts.map +1 -0
  64. package/dist/mcp/cancellation.js +11 -0
  65. package/dist/mcp/cancellation.js.map +1 -0
  66. package/dist/mcp/handlers.d.ts +33 -3
  67. package/dist/mcp/handlers.d.ts.map +1 -1
  68. package/dist/mcp/handlers.js +128 -30
  69. package/dist/mcp/handlers.js.map +1 -1
  70. package/dist/mcp/http-transport.d.ts.map +1 -1
  71. package/dist/mcp/http-transport.js +7 -4
  72. package/dist/mcp/http-transport.js.map +1 -1
  73. package/dist/mcp/index-readiness.d.ts +114 -0
  74. package/dist/mcp/index-readiness.d.ts.map +1 -0
  75. package/dist/mcp/index-readiness.js +264 -0
  76. package/dist/mcp/index-readiness.js.map +1 -0
  77. package/dist/mcp/protocol.d.ts.map +1 -1
  78. package/dist/mcp/protocol.js +23 -10
  79. package/dist/mcp/protocol.js.map +1 -1
  80. package/dist/mcp/server.d.ts +2 -0
  81. package/dist/mcp/server.d.ts.map +1 -1
  82. package/dist/mcp/server.js +9 -4
  83. package/dist/mcp/server.js.map +1 -1
  84. package/dist/mcp/stale-install.d.ts +13 -0
  85. package/dist/mcp/stale-install.d.ts.map +1 -0
  86. package/dist/mcp/stale-install.js +30 -0
  87. package/dist/mcp/stale-install.js.map +1 -0
  88. package/dist/review/deleted.js +1 -1
  89. package/dist/review/deleted.js.map +1 -1
  90. package/dist/review.d.ts +6 -0
  91. package/dist/review.d.ts.map +1 -1
  92. package/dist/review.js +1 -1
  93. package/dist/review.js.map +1 -1
  94. package/dist/types.d.ts +2 -0
  95. package/dist/types.d.ts.map +1 -1
  96. package/dist/util/concurrency.d.ts +7 -0
  97. package/dist/util/concurrency.d.ts.map +1 -1
  98. package/dist/util/concurrency.js +11 -0
  99. package/dist/util/concurrency.js.map +1 -1
  100. package/docs/mcp.md +56 -7
  101. package/package.json +3 -3
package/dist/drift/git.js CHANGED
@@ -34,6 +34,7 @@ async function cleanupTempDir(dir) {
34
34
  async function resolveGitCommit(root, ref) {
35
35
  const rev = `${ref}^{commit}`;
36
36
  const { stdout } = await execFileAsync("git", ["rev-parse", "--verify", "--quiet", "--end-of-options", rev], {
37
+ windowsHide: true,
37
38
  cwd: root,
38
39
  env: process.env,
39
40
  });
@@ -48,9 +49,16 @@ async function materializeGitRef(root, ref, prefix) {
48
49
  return { root };
49
50
  const tempRoot = await fsp.mkdtemp(path.join(os.tmpdir(), prefix));
50
51
  try {
51
- await execFileAsync("git", ["clone", "--quiet", "--no-checkout", root, tempRoot], { env: process.env });
52
+ await execFileAsync("git", ["clone", "--quiet", "--no-checkout", root, tempRoot], {
53
+ windowsHide: true,
54
+ env: process.env,
55
+ });
52
56
  const checkoutCommit = await resolveGitCommit(root, checkoutRef);
53
- await execFileAsync("git", ["checkout", "--quiet", checkoutCommit], { cwd: tempRoot, env: process.env });
57
+ await execFileAsync("git", ["checkout", "--quiet", checkoutCommit], {
58
+ windowsHide: true,
59
+ cwd: tempRoot,
60
+ env: process.env,
61
+ });
54
62
  return { root: tempRoot, cleanup: tempRoot };
55
63
  }
56
64
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/drift/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/drift/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { DuplicateInternalUnit, DuplicateSimilarityHint, PairEvidence, PairFilter, PreparedDuplicateBuckets, UnitFilter } from "./types.js";
2
+ /**
3
+ * Targeted analysis: only pairs that touch a target unit are candidates. Both predicates depend on a unit's id alone,
4
+ * so all the units of one id are targets, or none is.
5
+ */
6
+ export type CandidateFilter = {
7
+ unit: UnitFilter;
8
+ pair: PairFilter;
9
+ };
10
+ export type CandidatePairOptions = {
11
+ maxBucketSize: number;
12
+ /**
13
+ * Upper bound on pairs kept. A pair the scorers can score that has the evidence to be a candidate but does not fit is
14
+ * skipped and counted.
15
+ */
16
+ maxCandidatePairs: number;
17
+ /** Whether the scorers skip two units of one file, which decides which pairs they can score. */
18
+ crossFileOnly: boolean;
19
+ similarityHints?: readonly DuplicateSimilarityHint[] | undefined;
20
+ projectRoot?: string | undefined;
21
+ filter?: CandidateFilter | undefined;
22
+ /** Reports how many units the fingerprint pass has paired. */
23
+ onFingerprintProgress?: ((current: number, total: number) => void) | undefined;
24
+ /** Returns a promise when a long pass should let the event loop turn. */
25
+ yieldPoint?: (() => Promise<void> | undefined) | undefined;
26
+ };
27
+ export type CandidatePairResult = {
28
+ /** Kept pairs the scorers can score, keyed by a number derived from the unit ids, in the order evidence was admitted. */
29
+ pairs: Map<number, PairEvidence>;
30
+ oversizedBuckets: number;
31
+ /**
32
+ * Candidate pairs the scorers can score that were dropped because `maxCandidatePairs` was reached. Only pairs with the
33
+ * evidence to be candidates count, and a pair that several kinds of evidence propose counts once per kind.
34
+ */
35
+ skippedPairs: number;
36
+ /**
37
+ * Pairs with the evidence to be candidates that the scorers can never score: two units of one file in a cross-file run,
38
+ * and two units that overlap. They take no slot and are never skipped. Each counts once, but only up to
39
+ * `maxCandidatePairs`, so a run with more of them reports a lower bound.
40
+ */
41
+ unscorablePairs: number;
42
+ /**
43
+ * How many of those the scorers report as overlapping. A cross-file run skips two units of one file before it compares
44
+ * their lines, so it reports none.
45
+ */
46
+ overlappingPairs: number;
47
+ };
48
+ /** Groups units by cheap fingerprints before expensive pair scoring. */
49
+ export declare function prepareDuplicateCandidateBuckets(units: readonly DuplicateInternalUnit[]): PreparedDuplicateBuckets;
50
+ export declare function filterPreparedDuplicateBuckets(preparedBuckets: PreparedDuplicateBuckets, unitFilter: UnitFilter): PreparedDuplicateBuckets;
51
+ export declare function orderedPair(left: DuplicateInternalUnit, right: DuplicateInternalUnit): [DuplicateInternalUnit, DuplicateInternalUnit];
52
+ /**
53
+ * Finds the unit pairs worth scoring from the prepared fingerprint buckets.
54
+ *
55
+ * Evidence is admitted from strongest to weakest: identical text, identical normalized tokens, identical AST shape,
56
+ * Git similarity hints, then shared fingerprints. A pair the scorers can never score takes no part in the limit and is
57
+ * only tallied. At most `maxCandidatePairs` of the others are kept; the rest are counted in `skippedPairs`, never
58
+ * dropped silently.
59
+ */
60
+ export declare function buildCandidatePairs(preparedBuckets: PreparedDuplicateBuckets, options: CandidatePairOptions): Promise<CandidatePairResult>;
61
+ //# sourceMappingURL=candidates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../src/duplicates/candidates.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACZ,UAAU,EACV,wBAAwB,EACxB,UAAU,EACX,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gGAAgG;IAChG,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACjE,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACrC,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/E,yEAAyE;IACzE,UAAU,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,yHAAyH;IACzH,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAIF,wEAAwE;AACxE,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,SAAS,qBAAqB,EAAE,GAAG,wBAAwB,CAyBlH;AAcD,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,wBAAwB,EACzC,UAAU,EAAE,UAAU,GACrB,wBAAwB,CAQ1B;AA8DD,wBAAgB,WAAW,CACzB,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,qBAAqB,GAC3B,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAKhD;AA2zBD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,wBAAwB,EACzC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAmC9B"}