pi-lens 4.4.2 → 4.4.4

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 (143) hide show
  1. package/CHANGELOG.md +306 -0
  2. package/README.md +13 -1
  3. package/dist/{chunk-VITUCP5A.js → chunk-24AKHFGP.js} +9 -7
  4. package/dist/{chunk-JSQFTSC6.js → chunk-2FN63LPV.js} +11 -11
  5. package/dist/{chunk-CF24OIYI.js → chunk-2KXTHF3M.js} +20 -20
  6. package/dist/{chunk-ESBQHFMJ.js → chunk-3DA2JDOL.js} +543 -349
  7. package/dist/{chunk-RWWYJ623.js → chunk-3KAZU3VR.js} +1 -1
  8. package/dist/chunk-3PTHXJXR.js +28 -0
  9. package/dist/chunk-3QED2P4V.js +31 -0
  10. package/dist/{chunk-N2H3ZPZY.js → chunk-3RKP3FMS.js} +1 -0
  11. package/dist/{chunk-XVF2VVXP.js → chunk-5HSRT26B.js} +2 -2
  12. package/dist/{chunk-XKIZ2HNN.js → chunk-5IUSNGOC.js} +18 -16
  13. package/dist/{chunk-EJIUXPBX.js → chunk-5OFV52AM.js} +1 -1
  14. package/dist/{chunk-AW7R2GWG.js → chunk-5VSF4UUQ.js} +12 -7
  15. package/dist/{chunk-NW7BOILN.js → chunk-5WRPDP2A.js} +18 -18
  16. package/dist/{chunk-7ULNCDCO.js → chunk-6DLWKFEX.js} +35 -34
  17. package/dist/{chunk-WOA4LN2R.js → chunk-7D6L4MTX.js} +2 -2
  18. package/dist/{chunk-GAEGEPOC.js → chunk-7HXE67BN.js} +2 -2
  19. package/dist/chunk-AGSS7277.js +84 -0
  20. package/dist/{chunk-R3PCY3YS.js → chunk-AMERCH6V.js} +13 -13
  21. package/dist/{chunk-WU567RSC.js → chunk-ATKJFDQN.js} +14 -10
  22. package/dist/{chunk-VSSBEUFT.js → chunk-AWSCPCN2.js} +16 -16
  23. package/dist/{chunk-VCHXCQFG.js → chunk-BWD5EPKO.js} +3 -3
  24. package/dist/{chunk-ODBNXWT4.js → chunk-CT4MN5IU.js} +1271 -262
  25. package/dist/{chunk-34WSVGEM.js → chunk-CUHSHSB6.js} +83 -5
  26. package/dist/{chunk-CHOW74WE.js → chunk-CYRKQRPM.js} +7 -10
  27. package/dist/{chunk-Q7DUK4LX.js → chunk-DEL2U6CM.js} +5 -5
  28. package/dist/{chunk-6C7JWPCP.js → chunk-DGUKIYSI.js} +26 -23
  29. package/dist/{chunk-PHDMFAKM.js → chunk-DUO2TU77.js} +2 -2
  30. package/dist/{chunk-MRXKYPCS.js → chunk-EBC36LNN.js} +2 -2
  31. package/dist/chunk-ED36RF6Y.js +17 -0
  32. package/dist/{chunk-76MWC2K6.js → chunk-EUXZEFTV.js} +90 -97
  33. package/dist/{chunk-QOZXJ4NA.js → chunk-FM4RDMKT.js} +11 -8
  34. package/dist/{chunk-66VMUL7Q.js → chunk-GAQ7OQG6.js} +31 -28
  35. package/dist/{chunk-Q6ZWTCLY.js → chunk-GL5LUMZE.js} +23 -24
  36. package/dist/{chunk-BKE7E7TC.js → chunk-GMX5OS7B.js} +9 -9
  37. package/dist/{chunk-ZHFZWTZV.js → chunk-GSLNCYGG.js} +11 -11
  38. package/dist/{chunk-ARJ6PLFH.js → chunk-GSM5UU7A.js} +26 -34
  39. package/dist/{chunk-724UL2TJ.js → chunk-GXFV6MYU.js} +3 -3
  40. package/dist/chunk-HAD7QRQI.js +30 -0
  41. package/dist/{chunk-QOBUHWHX.js → chunk-HRNHZA3N.js} +6 -6
  42. package/dist/{chunk-VWCXW2E7.js → chunk-HWCCCQNX.js} +1 -1
  43. package/dist/{chunk-7DYBLXYA.js → chunk-HYGZEMX6.js} +3 -3
  44. package/dist/chunk-IJYGIDF4.js +186 -0
  45. package/dist/{chunk-4W4VLAPJ.js → chunk-IQWN5JCP.js} +11 -11
  46. package/dist/{chunk-GZYBXISR.js → chunk-IUE7SSKV.js} +9 -9
  47. package/dist/{chunk-IBGIOBEE.js → chunk-IWDLU6K3.js} +68 -5
  48. package/dist/{chunk-XCJN5IJU.js → chunk-IYNJ6YPZ.js} +4 -4
  49. package/dist/{chunk-JAU72XNY.js → chunk-J64T55EI.js} +3 -3
  50. package/dist/{chunk-2BBLFX75.js → chunk-J6MPGQTS.js} +5 -5
  51. package/dist/chunk-JORED7EX.js +44 -0
  52. package/dist/{chunk-6SDEP3AJ.js → chunk-JUKMK5Y4.js} +8 -8
  53. package/dist/{chunk-IBRALRBR.js → chunk-JW3YWBVB.js} +15 -14
  54. package/dist/{chunk-L3BLXZG7.js → chunk-KAPJINKN.js} +30 -69
  55. package/dist/{chunk-2B73ZPOK.js → chunk-KN35K52N.js} +3 -3
  56. package/dist/{chunk-C34ZXZ7O.js → chunk-KUA4OJ5Y.js} +24 -11
  57. package/dist/chunk-KYUB6QDC.js +72 -0
  58. package/dist/{chunk-67WMNWEE.js → chunk-LLJNQKQW.js} +12 -10
  59. package/dist/chunk-LZSEQW6A.js +57 -0
  60. package/dist/{chunk-ZANLILYD.js → chunk-M2IFVFWU.js} +2 -2
  61. package/dist/chunk-M2UD3LPU.js +88 -0
  62. package/dist/{chunk-WOKKRCJ5.js → chunk-MBKQHGA7.js} +15 -14
  63. package/dist/{chunk-P7266HLM.js → chunk-MPNJLASA.js} +2 -2
  64. package/dist/{chunk-6GFRNVYR.js → chunk-MZGQNL3Y.js} +10 -10
  65. package/dist/{chunk-QZVW3AAK.js → chunk-N5FLEO7W.js} +33 -31
  66. package/dist/{chunk-3JNKMP3B.js → chunk-O4NWQT6I.js} +4 -4
  67. package/dist/{chunk-PFNSLWU5.js → chunk-OHKJ7PQF.js} +33 -31
  68. package/dist/{chunk-VRZP76YM.js → chunk-P63GXC37.js} +4 -1
  69. package/dist/{chunk-XTMJ7XDT.js → chunk-POMLXPMY.js} +1 -1
  70. package/dist/{chunk-QQNQ7SJW.js → chunk-QBFBRV2B.js} +10 -4
  71. package/dist/{chunk-3UUPUE3O.js → chunk-R3T7CLQ2.js} +84 -60
  72. package/dist/{chunk-23WOO7TX.js → chunk-R7YOCSNV.js} +10 -10
  73. package/dist/{chunk-2CD5RS6M.js → chunk-RKBXZN3A.js} +23 -2
  74. package/dist/{chunk-OG5UUPN7.js → chunk-RKKOYPRA.js} +14 -14
  75. package/dist/{chunk-52FUZI6K.js → chunk-RMLC67LF.js} +1 -1
  76. package/dist/{chunk-XMSXXAHW.js → chunk-ROYSX2S5.js} +2 -2
  77. package/dist/{chunk-PV6LR5P5.js → chunk-RVK72CZX.js} +9605 -14776
  78. package/dist/{chunk-FLKWCIZH.js → chunk-S2HEXIWI.js} +5 -5
  79. package/dist/{chunk-UZ3TUTRV.js → chunk-S67KYG37.js} +1 -1
  80. package/dist/{chunk-JWA5I3SR.js → chunk-SD4I7ZO4.js} +16 -18
  81. package/dist/{chunk-Z527N6YQ.js → chunk-SKAMFC7A.js} +12 -12
  82. package/dist/{chunk-MQLUAEOC.js → chunk-SRYEJNES.js} +2 -2
  83. package/dist/{chunk-BRGDSBJE.js → chunk-SYE6T2EB.js} +12 -12
  84. package/dist/{chunk-GXW6K4YJ.js → chunk-T57LYLZT.js} +1 -1
  85. package/dist/{chunk-ZXYDQ3TZ.js → chunk-T7FEBKXN.js} +48 -15
  86. package/dist/{chunk-IXXDFY73.js → chunk-TIQ2PKDW.js} +3 -3
  87. package/dist/{chunk-QILIYSJF.js → chunk-TLX72JTG.js} +1 -1
  88. package/dist/{chunk-TYM6OUIT.js → chunk-TOY6QKOH.js} +12 -12
  89. package/dist/{chunk-IZSHAIJ7.js → chunk-TRETHTQO.js} +12 -12
  90. package/dist/{chunk-3VPVG5SU.js → chunk-U44DJXQP.js} +10 -6
  91. package/dist/{chunk-PNQDPDRC.js → chunk-UA7ZXYDR.js} +1 -1
  92. package/dist/{chunk-OXXKQCSV.js → chunk-UBOQLVT2.js} +4 -4
  93. package/dist/{chunk-QGQ5CCCG.js → chunk-UMS2MFPZ.js} +2 -2
  94. package/dist/{chunk-QHJ6DQ2R.js → chunk-US7ECLD7.js} +55 -13
  95. package/dist/{chunk-EETY4LF7.js → chunk-UZ2XCLYS.js} +8 -8
  96. package/dist/chunk-V35JG4JB.js +2667 -0
  97. package/dist/{chunk-N3X6Q4YT.js → chunk-VOOAPROD.js} +3 -3
  98. package/dist/{chunk-SAEFPSB6.js → chunk-W66O5E25.js} +21 -11
  99. package/dist/{chunk-KBG47GHP.js → chunk-WMYE35PX.js} +15 -11
  100. package/dist/{chunk-5NGR67U5.js → chunk-XBJVAEEO.js} +32 -5
  101. package/dist/chunk-XHJBS436.js +4217 -0
  102. package/dist/{chunk-GBPP5P7X.js → chunk-XTBDCR27.js} +4 -4
  103. package/dist/{chunk-4UNXBNE2.js → chunk-XTFDJI3T.js} +11 -11
  104. package/dist/{chunk-UXGETRP4.js → chunk-XYURS6EN.js} +13 -12
  105. package/dist/{chunk-RPLINGVB.js → chunk-Y6GZHWSJ.js} +6 -6
  106. package/dist/{chunk-2ZGIZPDG.js → chunk-YCWYO6TQ.js} +41 -38
  107. package/dist/{chunk-66SXUJCA.js → chunk-YH5MVY2U.js} +10 -8
  108. package/dist/{chunk-AOHZU2BM.js → chunk-YNE3RP52.js} +1 -1
  109. package/dist/{chunk-GOYRYZ2R.js → chunk-ZHH37KZL.js} +72 -20
  110. package/dist/{chunk-ZGDGW2V3.js → chunk-ZIVJBOO3.js} +2 -2
  111. package/dist/{chunk-GHB6AYCP.js → chunk-ZVUL7QYY.js} +29 -28
  112. package/dist/index.js +11559 -6213
  113. package/dist/mcp/analyze-cli.js +10 -9
  114. package/dist/mcp/cli.js +41 -38
  115. package/dist/mcp/server.js +1142 -495
  116. package/dist/mcp/worker.js +61 -57
  117. package/dist/probes/installer.js +19 -19
  118. package/dist/workers/project-snapshot-persist-worker.js +28 -9
  119. package/dist/workers/review-graph-persist-worker.js +1 -1
  120. package/docs/configuration.md +11 -0
  121. package/docs/engineering-principles.md +32 -0
  122. package/docs/lsp-capability-matrix.md +1 -1
  123. package/docs/lsp-idle-eviction.md +15 -26
  124. package/docs/pi-lens-fixer.md +117 -13
  125. package/docs/pi-lens-merge-policy.md +109 -11
  126. package/docs/pi-lens-monitor.md +8 -2
  127. package/docs/pi-lens-retro.md +4 -1
  128. package/docs/pi-lens-reviewer.md +114 -3
  129. package/docs/pi-lens-subagent.md +27 -14
  130. package/docs/release-qa-baseline.md +3 -1
  131. package/docs/servercapabilities.md +9 -19
  132. package/package.json +7 -5
  133. package/scripts/download-grammars.js +40 -7
  134. package/scripts/lib/latency-log-phases.mjs +95 -0
  135. package/scripts/rpc-load-check.mjs +570 -81
  136. package/dist/chunk-3WA4HP4I.js +0 -55
  137. package/dist/chunk-466Z26MG.js +0 -30
  138. package/dist/chunk-5JM2524W.js +0 -84
  139. package/dist/chunk-CO2G5PHH.js +0 -84
  140. package/dist/chunk-LOP6GRPH.js +0 -31
  141. package/dist/chunk-UOPVJQ4N.js +0 -103
  142. package/dist/chunk-XPZPXCBV.js +0 -28
  143. /package/dist/{chunk-FC4RP4I2.js → chunk-6HWVI6MI.js} +0 -0
@@ -5,10 +5,7 @@ import {
5
5
  } from "./chunk-2EECBNC5.js";
6
6
  import {
7
7
  incrementDegradationCount
8
- } from "./chunk-JAU72XNY.js";
9
- import {
10
- normalizeMapKey
11
- } from "./chunk-N2H3ZPZY.js";
8
+ } from "./chunk-J64T55EI.js";
12
9
 
13
10
  // dist/clients/mcp/ipc.js
14
11
  import * as crypto from "node:crypto";
@@ -34,7 +31,30 @@ function diagnosticsIpcPathForCwd(cwd, pid, platform = process.platform) {
34
31
  const base = ipcPathForCwd(cwd, platform);
35
32
  if (platform === "win32")
36
33
  return `${base}-diagnostics-${pid}`;
37
- return base.replace(/\.sock$/, `-diagnostics-${pid}.sock`);
34
+ const hash = workspaceHash(cwd, platform);
35
+ return path.join(path.dirname(base), `pi-lens-mcp-${pid}-diagnostics-${hash}.sock`);
36
+ }
37
+ function boundUnixSocketPath(endpoint, platform = process.platform) {
38
+ const limit = platform === "darwin" ? 104 : platform === "win32" ? 0 : 108;
39
+ const bytes = Buffer.from(endpoint);
40
+ if (limit === 0 || bytes.length <= limit)
41
+ return endpoint;
42
+ return bytes.subarray(0, limit).toString();
43
+ }
44
+ function unlinkStaleUnixSocket(endpoint, options = {}) {
45
+ if ((options.platform ?? process.platform) === "win32")
46
+ return "absent";
47
+ const bound = boundUnixSocketPath(endpoint, options.platform);
48
+ if (options.ownerPid !== void 0 && bound !== endpoint && !bound.includes(`${path.sep}pi-lens-mcp-${options.ownerPid}-`))
49
+ return "shared-name";
50
+ try {
51
+ if (!fs.lstatSync(bound).isSocket())
52
+ return "not-a-socket";
53
+ fs.unlinkSync(bound);
54
+ return "unlinked";
55
+ } catch {
56
+ return "absent";
57
+ }
38
58
  }
39
59
  function isNoListenerError(error) {
40
60
  const code = error?.code;
@@ -44,7 +64,7 @@ function contentHash(content) {
44
64
  return crypto.createHash("sha256").update(content).digest("hex");
45
65
  }
46
66
  function requestOverWarmIpc(endpoint, timeoutMs, buildRequest, validate) {
47
- return new Promise((resolve3) => {
67
+ return new Promise((resolve2) => {
48
68
  let settled = false;
49
69
  const finish = (value) => {
50
70
  if (settled)
@@ -52,7 +72,7 @@ function requestOverWarmIpc(endpoint, timeoutMs, buildRequest, validate) {
52
72
  settled = true;
53
73
  clearTimeout(timer);
54
74
  socket.destroy();
55
- resolve3(value);
75
+ resolve2(value);
56
76
  };
57
77
  const deadlineAt = Date.now() + timeoutMs;
58
78
  const socket = net.createConnection(endpoint);
@@ -206,14 +226,14 @@ function recordTurnEndOutcome(cwd, outcome, platform = process.platform) {
206
226
  }
207
227
  }
208
228
  function requestWarmAnalyze(cwd, file, timeoutMs = 3e4) {
209
- return new Promise((resolve3) => {
229
+ return new Promise((resolve2) => {
210
230
  let settled = false;
211
231
  const finish = (value) => {
212
232
  if (settled)
213
233
  return;
214
234
  settled = true;
215
235
  clearTimeout(timer);
216
- resolve3(value);
236
+ resolve2(value);
217
237
  };
218
238
  const socket = net.createConnection(ipcPathForCwd(cwd));
219
239
  socket.setEncoding("utf8");
@@ -329,70 +349,11 @@ function createWarmIpcRequestQueue() {
329
349
  };
330
350
  }
331
351
 
332
- // dist/clients/dispatch/runner-context.js
333
- import * as fs2 from "node:fs";
334
- import * as path2 from "node:path";
335
- function resolveAgainstAncestors(cwd, filePath) {
336
- if (path2.isAbsolute(filePath)) {
337
- return path2.resolve(filePath);
338
- }
339
- const normalizedRelative = filePath.replace(/\\/g, "/");
340
- const cwdBaseName = path2.basename(path2.resolve(cwd)).replace(/\\/g, "/");
341
- if (cwdBaseName && (normalizedRelative === cwdBaseName || normalizedRelative.startsWith(`${cwdBaseName}/`))) {
342
- const trimmedRelative = normalizedRelative === cwdBaseName ? "" : normalizedRelative.slice(cwdBaseName.length + 1);
343
- const trimmedCandidate = trimmedRelative ? path2.resolve(cwd, trimmedRelative) : path2.resolve(cwd);
344
- if (fs2.existsSync(trimmedCandidate)) {
345
- return trimmedCandidate;
346
- }
347
- }
348
- const directCandidate = path2.resolve(cwd, filePath);
349
- if (fs2.existsSync(directCandidate)) {
350
- return directCandidate;
351
- }
352
- let current = path2.resolve(cwd);
353
- const { root } = path2.parse(current);
354
- while (current !== root) {
355
- const parent = path2.dirname(current);
356
- if (parent === current)
357
- break;
358
- const candidate = path2.resolve(parent, filePath);
359
- if (fs2.existsSync(candidate)) {
360
- return candidate;
361
- }
362
- current = parent;
363
- }
364
- return directCandidate;
365
- }
366
- function resolveRunnerPath(cwd, filePath) {
367
- return normalizeMapKey(resolveAgainstAncestors(cwd, filePath));
368
- }
369
- function toRunnerDisplayPath(cwd, filePath) {
370
- const cwdKey = normalizeMapKey(path2.resolve(cwd));
371
- const fileKey = resolveRunnerPath(cwd, filePath);
372
- const relative2 = path2.relative(cwdKey, fileKey).replace(/\\/g, "/");
373
- if (relative2 && relative2 !== "." && !relative2.startsWith("../")) {
374
- return relative2;
375
- }
376
- return fileKey;
377
- }
378
-
379
- // dist/clients/freshness.js
380
- var MTIME_DRIFT_TOLERANCE_MS = 50;
381
- function freshnessFromMtime(input) {
382
- const tolerance = input.toleranceMs ?? MTIME_DRIFT_TOLERANCE_MS;
383
- if (input.mtimeMs === void 0) {
384
- return { verdict: "indeterminate", reason: "no-mtime-evidence" };
385
- }
386
- return input.mtimeMs > input.referenceMs + tolerance ? { verdict: "stale", reason: "modified-after-reference" } : { verdict: "fresh" };
387
- }
388
-
389
352
  export {
390
- resolveRunnerPath,
391
- toRunnerDisplayPath,
392
- freshnessFromMtime,
393
353
  WARM_CODE_ACTION_LOOKUP_LIMIT,
394
354
  ipcPathForCwd,
395
355
  diagnosticsIpcPathForCwd,
356
+ unlinkStaleUnixSocket,
396
357
  contentHash,
397
358
  requestWarmDiagnostics,
398
359
  requestWarmCodeActions,
@@ -3,13 +3,13 @@ import {
3
3
  findModuleForPath,
4
4
  getDownstreamModules,
5
5
  getModuleSourceFiles
6
- } from "./chunk-GBPP5P7X.js";
6
+ } from "./chunk-XTBDCR27.js";
7
7
  import {
8
8
  detectFileRole
9
- } from "./chunk-2BBLFX75.js";
9
+ } from "./chunk-J6MPGQTS.js";
10
10
  import {
11
11
  normalizeMapKey
12
- } from "./chunk-N2H3ZPZY.js";
12
+ } from "./chunk-3RKP3FMS.js";
13
13
 
14
14
  // dist/clients/review-graph/query.js
15
15
  function dedupe(items) {
@@ -12,7 +12,7 @@ import {
12
12
  reportPiLensConfigRecords,
13
13
  resolveOnePiLensConfigDocument,
14
14
  warnIgnoredConfigOnce
15
- } from "./chunk-2BBLFX75.js";
15
+ } from "./chunk-J6MPGQTS.js";
16
16
  import {
17
17
  CANONICAL_GLOBAL_CONFIG_FILE,
18
18
  FRESHNESS_CADENCE_MS,
@@ -22,7 +22,7 @@ import {
22
22
  errorClassName,
23
23
  getPiLensGlobalConfigPath,
24
24
  getProductionGlobalConfigResolution
25
- } from "./chunk-XVF2VVXP.js";
25
+ } from "./chunk-5HSRT26B.js";
26
26
  import {
27
27
  DEFAULT_MAX_OUTPUT_BYTES,
28
28
  createBoundedOutputSink,
@@ -42,16 +42,16 @@ import {
42
42
  readToolConfig,
43
43
  recordDegradation,
44
44
  recordDegradationOnce
45
- } from "./chunk-JAU72XNY.js";
45
+ } from "./chunk-J64T55EI.js";
46
46
  import {
47
47
  logExtension
48
- } from "./chunk-XTMJ7XDT.js";
48
+ } from "./chunk-POMLXPMY.js";
49
49
  import {
50
50
  logLatency
51
- } from "./chunk-QQNQ7SJW.js";
51
+ } from "./chunk-QBFBRV2B.js";
52
52
  import {
53
53
  getProcessSingleton
54
- } from "./chunk-AOHZU2BM.js";
54
+ } from "./chunk-YNE3RP52.js";
55
55
  import {
56
56
  sweepOwnStagingFiles
57
57
  } from "./chunk-LJDODBBZ.js";
@@ -71,7 +71,7 @@ import {
71
71
  normalizeLoggedPath,
72
72
  normalizeMapKey,
73
73
  toProjectRelativePath
74
- } from "./chunk-N2H3ZPZY.js";
74
+ } from "./chunk-3RKP3FMS.js";
75
75
  import {
76
76
  __commonJS,
77
77
  __require,
@@ -899,6 +899,7 @@ var require_pidusage = __commonJS({
899
899
  });
900
900
 
901
901
  // dist/clients/safe-spawn.js
902
+ import { AsyncLocalStorage } from "node:async_hooks";
902
903
  import { spawn, spawnSync } from "node:child_process";
903
904
  import * as fs8 from "node:fs";
904
905
  import * as path11 from "node:path";
@@ -4298,7 +4299,15 @@ function holdOwnChildPid(pid, site) {
4298
4299
  return owned;
4299
4300
  verifiedOwnPids.delete(pid);
4300
4301
  sweepHeldOwnPids();
4301
- heldOwnPids.add(pid);
4302
+ const evicted = heldOwnPids.add(pid);
4303
+ if (evicted.length > 0) {
4304
+ incrementDegradationCount({
4305
+ kind: "held-own-pid-evicted",
4306
+ subject: site,
4307
+ reason: `held-pid set full of live groups at ${HELD_OWN_PID_SWEEP_AT}; dropped oldest pid ${evicted.join(",")}, a group kill after its leader dies is refused`,
4308
+ metadata: { evicted: evicted.length }
4309
+ });
4310
+ }
4302
4311
  return true;
4303
4312
  }
4304
4313
  function releaseOwnChildPid(pid) {
@@ -4678,11 +4687,14 @@ function resetUtf8ConsoleCodePageStateForTests() {
4678
4687
  var EXIT_PIPE_IDLE_GRACE_MS = 100;
4679
4688
  var EXIT_PIPE_IDLE_MAX_WAIT_MS = 2e3;
4680
4689
  var SPAWN_SAMPLER_TEARDOWN_GRACE_MS = 5e3;
4690
+ var spawnAbortScope = new AsyncLocalStorage();
4681
4691
  async function safeSpawnAsync(command, args, options) {
4682
4692
  const configuredTimeout = options?.timeout !== void 0 && Number.isFinite(options.timeout) && options.timeout >= 0 ? options.timeout : 3e4;
4683
4693
  const deadlineRemaining = options?.deadlineAt !== void 0 && Number.isFinite(options.deadlineAt) ? options.deadlineAt - Date.now() : Number.POSITIVE_INFINITY;
4684
4694
  const timeout = Math.max(0, Math.min(configuredTimeout, deadlineRemaining));
4685
- const abortSignal = options?.signal ?? (options?.ignoreAmbientSignal ? void 0 : ambientAbortSignal);
4695
+ const callerSignal = options?.signal ?? (options?.ignoreAmbientSignal ? void 0 : ambientAbortSignal);
4696
+ const scopedSignal = spawnAbortScope.getStore();
4697
+ const abortSignal = scopedSignal && callerSignal ? AbortSignal.any([scopedSignal, callerSignal]) : scopedSignal ?? callerSignal;
4686
4698
  return new Promise((resolve6) => {
4687
4699
  if (abortSignal?.aborted) {
4688
4700
  const cause = new Error("Spawn aborted before start");
@@ -5310,7 +5322,7 @@ async function findCommandAsync(command) {
5310
5322
  const result = await safeSpawnAsync(finder, [command], { timeout: 5e3 });
5311
5323
  if (result.status !== 0 || result.error)
5312
5324
  return null;
5313
- return result.stdout.trim().split("\n")[0] || null;
5325
+ return result.stdout.trim().split(/\r?\n/)[0] || null;
5314
5326
  }
5315
5327
  function safeSpawn(command, args, options) {
5316
5328
  const spawnEnv = getSpawnEnvironment(options?.env, options?.stripNpmConfig);
@@ -5412,7 +5424,7 @@ function findCommand(command) {
5412
5424
  const result = safeSpawn(finder, [command], { timeout: 5e3 });
5413
5425
  if (result.status !== 0)
5414
5426
  return null;
5415
- return result.stdout.trim().split("\n")[0] || null;
5427
+ return result.stdout.trim().split(/\r?\n/)[0] || null;
5416
5428
  }
5417
5429
 
5418
5430
  export {
@@ -5463,6 +5475,7 @@ export {
5463
5475
  resetSafeSpawnWindowsCommandCache,
5464
5476
  resolveWindowsCommandForEnvironment,
5465
5477
  resetUtf8ConsoleCodePageStateForTests,
5478
+ spawnAbortScope,
5466
5479
  safeSpawnAsync,
5467
5480
  safeSpawnBatch,
5468
5481
  isCommandAvailableAsync,
@@ -0,0 +1,72 @@
1
+ import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+ import {
3
+ adaptLspService,
4
+ getLSPService,
5
+ groupFilesByPrimaryServer,
6
+ hasAuxiliaryLspPublishedForRoot,
7
+ notifyExternalFileChange,
8
+ peekLSPService,
9
+ resetLSPService,
10
+ resyncGitChangedFiles,
11
+ runPerServerGroups
12
+ } from "./chunk-RVK72CZX.js";
13
+ import "./chunk-IWDLU6K3.js";
14
+ import "./chunk-XIMYZ3JA.js";
15
+ import "./chunk-3DA2JDOL.js";
16
+ import "./chunk-HWCCCQNX.js";
17
+ import "./chunk-CUHSHSB6.js";
18
+ import "./chunk-UA7ZXYDR.js";
19
+ import "./chunk-T7FEBKXN.js";
20
+ import "./chunk-SRYEJNES.js";
21
+ import "./chunk-V35JG4JB.js";
22
+ import "./chunk-XTBDCR27.js";
23
+ import "./chunk-MPNJLASA.js";
24
+ import "./chunk-US7ECLD7.js";
25
+ import "./chunk-Z54ZSOBZ.js";
26
+ import "./chunk-GXFV6MYU.js";
27
+ import "./chunk-FM4RDMKT.js";
28
+ import "./chunk-RMLC67LF.js";
29
+ import "./chunk-W66O5E25.js";
30
+ import "./chunk-7HXE67BN.js";
31
+ import "./chunk-Z3CCVDUB.js";
32
+ import "./chunk-KAPJINKN.js";
33
+ import "./chunk-AGSS7277.js";
34
+ import "./chunk-2BEMIWEW.js";
35
+ import "./chunk-IJYGIDF4.js";
36
+ import "./chunk-GAQ7OQG6.js";
37
+ import "./chunk-DEL2U6CM.js";
38
+ import "./chunk-5VSF4UUQ.js";
39
+ import "./chunk-3KAZU3VR.js";
40
+ import "./chunk-P63GXC37.js";
41
+ import "./chunk-HRNHZA3N.js";
42
+ import "./chunk-TLX72JTG.js";
43
+ import "./chunk-DGUKIYSI.js";
44
+ import "./chunk-XBJVAEEO.js";
45
+ import "./chunk-KUA4OJ5Y.js";
46
+ import "./chunk-BW5KFIQC.js";
47
+ import "./chunk-QYF5S6P6.js";
48
+ import "./chunk-DUO2TU77.js";
49
+ import "./chunk-J6MPGQTS.js";
50
+ import "./chunk-5HSRT26B.js";
51
+ import "./chunk-M2IFVFWU.js";
52
+ import "./chunk-2EECBNC5.js";
53
+ import "./chunk-J64T55EI.js";
54
+ import "./chunk-POMLXPMY.js";
55
+ import "./chunk-JMYYOTQG.js";
56
+ import "./chunk-QBFBRV2B.js";
57
+ import "./chunk-YNE3RP52.js";
58
+ import "./chunk-LJDODBBZ.js";
59
+ import "./chunk-ABBOA7UD.js";
60
+ import "./chunk-3RKP3FMS.js";
61
+ import "./chunk-NXL4FFQQ.js";
62
+ export {
63
+ adaptLspService,
64
+ getLSPService,
65
+ groupFilesByPrimaryServer,
66
+ hasAuxiliaryLspPublishedForRoot,
67
+ notifyExternalFileChange,
68
+ peekLSPService,
69
+ resetLSPService,
70
+ resyncGitChangedFiles,
71
+ runPerServerGroups
72
+ };
@@ -22,19 +22,20 @@ import {
22
22
  safeSpawn,
23
23
  safeSpawnAsync,
24
24
  safeSpawnBatch,
25
- setAmbientAbortSignal
26
- } from "./chunk-C34ZXZ7O.js";
27
- import "./chunk-2BBLFX75.js";
28
- import "./chunk-XVF2VVXP.js";
25
+ setAmbientAbortSignal,
26
+ spawnAbortScope
27
+ } from "./chunk-KUA4OJ5Y.js";
28
+ import "./chunk-J6MPGQTS.js";
29
+ import "./chunk-5HSRT26B.js";
29
30
  import "./chunk-2EECBNC5.js";
30
- import "./chunk-JAU72XNY.js";
31
- import "./chunk-XTMJ7XDT.js";
31
+ import "./chunk-J64T55EI.js";
32
+ import "./chunk-POMLXPMY.js";
32
33
  import "./chunk-JMYYOTQG.js";
33
- import "./chunk-QQNQ7SJW.js";
34
- import "./chunk-AOHZU2BM.js";
34
+ import "./chunk-QBFBRV2B.js";
35
+ import "./chunk-YNE3RP52.js";
35
36
  import "./chunk-LJDODBBZ.js";
36
37
  import "./chunk-ABBOA7UD.js";
37
- import "./chunk-N2H3ZPZY.js";
38
+ import "./chunk-3RKP3FMS.js";
38
39
  import "./chunk-NXL4FFQQ.js";
39
40
  export {
40
41
  SpawnFailureError,
@@ -59,5 +60,6 @@ export {
59
60
  safeSpawn,
60
61
  safeSpawnAsync,
61
62
  safeSpawnBatch,
62
- setAmbientAbortSignal
63
+ setAmbientAbortSignal,
64
+ spawnAbortScope
63
65
  };
@@ -0,0 +1,57 @@
1
+ import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+ import {
3
+ DependencyChecker,
4
+ buildMadgeArgs,
5
+ resetMadgeManagedPathMemo
6
+ } from "./chunk-UZ2XCLYS.js";
7
+ import "./chunk-ZHH37KZL.js";
8
+ import "./chunk-Y6GZHWSJ.js";
9
+ import {
10
+ mapWithConcurrency
11
+ } from "./chunk-XIMYZ3JA.js";
12
+ import "./chunk-3DA2JDOL.js";
13
+ import "./chunk-HWCCCQNX.js";
14
+ import "./chunk-CUHSHSB6.js";
15
+ import "./chunk-UA7ZXYDR.js";
16
+ import "./chunk-T7FEBKXN.js";
17
+ import "./chunk-MPNJLASA.js";
18
+ import "./chunk-GXFV6MYU.js";
19
+ import "./chunk-FM4RDMKT.js";
20
+ import "./chunk-RMLC67LF.js";
21
+ import "./chunk-W66O5E25.js";
22
+ import "./chunk-7HXE67BN.js";
23
+ import "./chunk-Z3CCVDUB.js";
24
+ import "./chunk-2BEMIWEW.js";
25
+ import "./chunk-IJYGIDF4.js";
26
+ import "./chunk-GAQ7OQG6.js";
27
+ import "./chunk-DEL2U6CM.js";
28
+ import "./chunk-5VSF4UUQ.js";
29
+ import "./chunk-3KAZU3VR.js";
30
+ import "./chunk-P63GXC37.js";
31
+ import "./chunk-HRNHZA3N.js";
32
+ import "./chunk-TLX72JTG.js";
33
+ import "./chunk-DGUKIYSI.js";
34
+ import "./chunk-XBJVAEEO.js";
35
+ import "./chunk-KUA4OJ5Y.js";
36
+ import "./chunk-BW5KFIQC.js";
37
+ import "./chunk-QYF5S6P6.js";
38
+ import "./chunk-DUO2TU77.js";
39
+ import "./chunk-J6MPGQTS.js";
40
+ import "./chunk-5HSRT26B.js";
41
+ import "./chunk-M2IFVFWU.js";
42
+ import "./chunk-2EECBNC5.js";
43
+ import "./chunk-J64T55EI.js";
44
+ import "./chunk-POMLXPMY.js";
45
+ import "./chunk-JMYYOTQG.js";
46
+ import "./chunk-QBFBRV2B.js";
47
+ import "./chunk-YNE3RP52.js";
48
+ import "./chunk-LJDODBBZ.js";
49
+ import "./chunk-ABBOA7UD.js";
50
+ import "./chunk-3RKP3FMS.js";
51
+ import "./chunk-NXL4FFQQ.js";
52
+ export {
53
+ DependencyChecker,
54
+ buildMadgeArgs,
55
+ mapWithConcurrency,
56
+ resetMadgeManagedPathMemo
57
+ };
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  recordDegradation
4
- } from "./chunk-JAU72XNY.js";
4
+ } from "./chunk-J64T55EI.js";
5
5
  import {
6
6
  logExtension
7
- } from "./chunk-XTMJ7XDT.js";
7
+ } from "./chunk-POMLXPMY.js";
8
8
 
9
9
  // dist/clients/project-trust.js
10
10
  var trustState = "unknown";
@@ -0,0 +1,88 @@
1
+ import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+ import {
3
+ _getWarmWordIndexCacheStateForTests,
4
+ _resetWarmWordIndexCacheForTests,
5
+ acquireWarmWordIndex,
6
+ analyzeFile,
7
+ summarizeWarningTiers
8
+ } from "./chunk-CT4MN5IU.js";
9
+ import "./chunk-UBOQLVT2.js";
10
+ import "./chunk-5OFV52AM.js";
11
+ import "./chunk-RKBXZN3A.js";
12
+ import "./chunk-6HWVI6MI.js";
13
+ import "./chunk-S67KYG37.js";
14
+ import "./chunk-KN35K52N.js";
15
+ import "./chunk-ROYSX2S5.js";
16
+ import "./chunk-YH5MVY2U.js";
17
+ import "./chunk-ED36RF6Y.js";
18
+ import "./chunk-BWD5EPKO.js";
19
+ import "./chunk-TIQ2PKDW.js";
20
+ import "./chunk-EBC36LNN.js";
21
+ import "./chunk-HYGZEMX6.js";
22
+ import "./chunk-UZ2XCLYS.js";
23
+ import "./chunk-ZHH37KZL.js";
24
+ import "./chunk-Y6GZHWSJ.js";
25
+ import "./chunk-IYNJ6YPZ.js";
26
+ import "./chunk-EUXZEFTV.js";
27
+ import "./chunk-T57LYLZT.js";
28
+ import "./chunk-XHJBS436.js";
29
+ import "./chunk-3MED75HT.js";
30
+ import "./chunk-RVK72CZX.js";
31
+ import "./chunk-IWDLU6K3.js";
32
+ import "./chunk-XIMYZ3JA.js";
33
+ import "./chunk-3DA2JDOL.js";
34
+ import "./chunk-HWCCCQNX.js";
35
+ import "./chunk-CUHSHSB6.js";
36
+ import "./chunk-UA7ZXYDR.js";
37
+ import "./chunk-T7FEBKXN.js";
38
+ import "./chunk-SRYEJNES.js";
39
+ import "./chunk-5W3R6LFT.js";
40
+ import "./chunk-V35JG4JB.js";
41
+ import "./chunk-XTBDCR27.js";
42
+ import "./chunk-MPNJLASA.js";
43
+ import "./chunk-US7ECLD7.js";
44
+ import "./chunk-Z54ZSOBZ.js";
45
+ import "./chunk-GXFV6MYU.js";
46
+ import "./chunk-FM4RDMKT.js";
47
+ import "./chunk-RMLC67LF.js";
48
+ import "./chunk-W66O5E25.js";
49
+ import "./chunk-7HXE67BN.js";
50
+ import "./chunk-Z3CCVDUB.js";
51
+ import "./chunk-KAPJINKN.js";
52
+ import "./chunk-AGSS7277.js";
53
+ import "./chunk-2BEMIWEW.js";
54
+ import "./chunk-IJYGIDF4.js";
55
+ import "./chunk-GAQ7OQG6.js";
56
+ import "./chunk-DEL2U6CM.js";
57
+ import "./chunk-5VSF4UUQ.js";
58
+ import "./chunk-3KAZU3VR.js";
59
+ import "./chunk-P63GXC37.js";
60
+ import "./chunk-HRNHZA3N.js";
61
+ import "./chunk-TLX72JTG.js";
62
+ import "./chunk-DGUKIYSI.js";
63
+ import "./chunk-XBJVAEEO.js";
64
+ import "./chunk-KUA4OJ5Y.js";
65
+ import "./chunk-BW5KFIQC.js";
66
+ import "./chunk-QYF5S6P6.js";
67
+ import "./chunk-DUO2TU77.js";
68
+ import "./chunk-J6MPGQTS.js";
69
+ import "./chunk-5HSRT26B.js";
70
+ import "./chunk-M2IFVFWU.js";
71
+ import "./chunk-2EECBNC5.js";
72
+ import "./chunk-J64T55EI.js";
73
+ import "./chunk-POMLXPMY.js";
74
+ import "./chunk-JMYYOTQG.js";
75
+ import "./chunk-QBFBRV2B.js";
76
+ import "./chunk-YNE3RP52.js";
77
+ import "./chunk-LJDODBBZ.js";
78
+ import "./chunk-CYRKQRPM.js";
79
+ import "./chunk-ABBOA7UD.js";
80
+ import "./chunk-3RKP3FMS.js";
81
+ import "./chunk-NXL4FFQQ.js";
82
+ export {
83
+ _getWarmWordIndexCacheStateForTests,
84
+ _resetWarmWordIndexCacheForTests,
85
+ acquireWarmWordIndex,
86
+ analyzeFile,
87
+ summarizeWarningTiers
88
+ };
@@ -7,25 +7,26 @@ import {
7
7
  hasGitleaksSignal,
8
8
  parseGitleaksReport,
9
9
  writeScopedGitleaksConfig
10
- } from "./chunk-VITUCP5A.js";
11
- import "./chunk-VCHXCQFG.js";
12
- import "./chunk-IXXDFY73.js";
13
- import "./chunk-PNQDPDRC.js";
14
- import "./chunk-RWWYJ623.js";
15
- import "./chunk-VRZP76YM.js";
16
- import "./chunk-C34ZXZ7O.js";
10
+ } from "./chunk-24AKHFGP.js";
11
+ import "./chunk-ED36RF6Y.js";
12
+ import "./chunk-BWD5EPKO.js";
13
+ import "./chunk-TIQ2PKDW.js";
14
+ import "./chunk-UA7ZXYDR.js";
15
+ import "./chunk-3KAZU3VR.js";
16
+ import "./chunk-P63GXC37.js";
17
+ import "./chunk-KUA4OJ5Y.js";
17
18
  import "./chunk-BW5KFIQC.js";
18
- import "./chunk-2BBLFX75.js";
19
- import "./chunk-XVF2VVXP.js";
19
+ import "./chunk-J6MPGQTS.js";
20
+ import "./chunk-5HSRT26B.js";
20
21
  import "./chunk-2EECBNC5.js";
21
- import "./chunk-JAU72XNY.js";
22
- import "./chunk-XTMJ7XDT.js";
22
+ import "./chunk-J64T55EI.js";
23
+ import "./chunk-POMLXPMY.js";
23
24
  import "./chunk-JMYYOTQG.js";
24
- import "./chunk-QQNQ7SJW.js";
25
- import "./chunk-AOHZU2BM.js";
25
+ import "./chunk-QBFBRV2B.js";
26
+ import "./chunk-YNE3RP52.js";
26
27
  import "./chunk-LJDODBBZ.js";
27
28
  import "./chunk-ABBOA7UD.js";
28
- import "./chunk-N2H3ZPZY.js";
29
+ import "./chunk-3RKP3FMS.js";
29
30
  import "./chunk-NXL4FFQQ.js";
30
31
  export {
31
32
  GitleaksClient,
@@ -1,11 +1,11 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  logExtension
4
- } from "./chunk-XTMJ7XDT.js";
4
+ } from "./chunk-POMLXPMY.js";
5
5
  import {
6
6
  findNearestMarkerRoot,
7
7
  isAtOrAboveHomeDir
8
- } from "./chunk-N2H3ZPZY.js";
8
+ } from "./chunk-3RKP3FMS.js";
9
9
 
10
10
  // dist/clients/cargo-manifest.js
11
11
  import { readFile } from "node:fs/promises";
@@ -1,23 +1,23 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  parseSymbolKey
4
- } from "./chunk-WOA4LN2R.js";
4
+ } from "./chunk-7D6L4MTX.js";
5
5
  import {
6
6
  isTestRoleCollateral
7
- } from "./chunk-EJIUXPBX.js";
7
+ } from "./chunk-5OFV52AM.js";
8
8
  import "./chunk-3MED75HT.js";
9
- import "./chunk-C34ZXZ7O.js";
10
- import "./chunk-2BBLFX75.js";
11
- import "./chunk-XVF2VVXP.js";
9
+ import "./chunk-KUA4OJ5Y.js";
10
+ import "./chunk-J6MPGQTS.js";
11
+ import "./chunk-5HSRT26B.js";
12
12
  import "./chunk-2EECBNC5.js";
13
- import "./chunk-JAU72XNY.js";
14
- import "./chunk-XTMJ7XDT.js";
13
+ import "./chunk-J64T55EI.js";
14
+ import "./chunk-POMLXPMY.js";
15
15
  import "./chunk-JMYYOTQG.js";
16
- import "./chunk-QQNQ7SJW.js";
17
- import "./chunk-AOHZU2BM.js";
16
+ import "./chunk-QBFBRV2B.js";
17
+ import "./chunk-YNE3RP52.js";
18
18
  import "./chunk-LJDODBBZ.js";
19
19
  import "./chunk-ABBOA7UD.js";
20
- import "./chunk-N2H3ZPZY.js";
20
+ import "./chunk-3RKP3FMS.js";
21
21
  import "./chunk-NXL4FFQQ.js";
22
22
 
23
23
  // dist/clients/project-diagnostics/runner-adapters/call-graph-impact.js