pi-lens 4.4.1 → 4.4.2

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 (138) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/config/dependency-cruiser-eager-allowlist.json +3 -1
  3. package/dist/{chunk-BJF25SUG.js → chunk-23WOO7TX.js} +11 -10
  4. package/dist/{chunk-WATC3IQR.js → chunk-2B73ZPOK.js} +3 -3
  5. package/dist/{chunk-N2IRDBZI.js → chunk-2BBLFX75.js} +101 -11
  6. package/dist/{chunk-TA5L5KWQ.js → chunk-2CD5RS6M.js} +2 -2
  7. package/dist/{chunk-3TTPKMEF.js → chunk-2ZGIZPDG.js} +38 -37
  8. package/dist/{chunk-LNOMA3MP.js → chunk-34WSVGEM.js} +29 -3
  9. package/dist/chunk-3JNKMP3B.js +17 -0
  10. package/dist/{chunk-H2W2AXD3.js → chunk-3UUPUE3O.js} +41 -35
  11. package/dist/{chunk-6P54TMWL.js → chunk-3VPVG5SU.js} +6 -6
  12. package/dist/chunk-3WA4HP4I.js +55 -0
  13. package/dist/chunk-466Z26MG.js +30 -0
  14. package/dist/{chunk-PCHDGUKT.js → chunk-4UNXBNE2.js} +12 -11
  15. package/dist/{chunk-J7WJZ6W7.js → chunk-4W4VLAPJ.js} +12 -11
  16. package/dist/{chunk-F5VLZHUW.js → chunk-52FUZI6K.js} +4 -2
  17. package/dist/chunk-5JM2524W.js +84 -0
  18. package/dist/{chunk-H5EV3VMF.js → chunk-5NGR67U5.js} +2 -2
  19. package/dist/{chunk-YLN4K6WD.js → chunk-66SXUJCA.js} +6 -6
  20. package/dist/{chunk-LD7WFTRX.js → chunk-66VMUL7Q.js} +16 -16
  21. package/dist/{chunk-BHWHXMQ2.js → chunk-67WMNWEE.js} +9 -8
  22. package/dist/{chunk-USHG4DLH.js → chunk-6C7JWPCP.js} +7 -7
  23. package/dist/{chunk-VPWKF3GN.js → chunk-6GFRNVYR.js} +11 -10
  24. package/dist/{chunk-3JL6IFD7.js → chunk-6SDEP3AJ.js} +9 -8
  25. package/dist/{chunk-KJCWXUUS.js → chunk-724UL2TJ.js} +6 -4
  26. package/dist/{chunk-MQA2YBAH.js → chunk-76MWC2K6.js} +3 -3
  27. package/dist/{chunk-XHSCVSOL.js → chunk-7DYBLXYA.js} +3 -3
  28. package/dist/{chunk-AFZYMAIV.js → chunk-7ULNCDCO.js} +37 -35
  29. package/dist/{chunk-VSMJK3ZJ.js → chunk-AOHZU2BM.js} +1 -1
  30. package/dist/{chunk-ZETYB3XG.js → chunk-ARJ6PLFH.js} +44 -28
  31. package/dist/{chunk-T4QZ6FEH.js → chunk-AW7R2GWG.js} +65 -8
  32. package/dist/{chunk-GAYGGICG.js → chunk-BKE7E7TC.js} +10 -9
  33. package/dist/{chunk-EUT3B22Y.js → chunk-BRGDSBJE.js} +13 -12
  34. package/dist/{chunk-T54VJRAD.js → chunk-C34ZXZ7O.js} +55 -11
  35. package/dist/{chunk-CBD2B5CP.js → chunk-CF24OIYI.js} +21 -20
  36. package/dist/{chunk-UGSMCQ4D.js → chunk-CHOW74WE.js} +1 -1
  37. package/dist/{chunk-OZJINN4O.js → chunk-CO2G5PHH.js} +2 -2
  38. package/dist/{chunk-OC7LYAU5.js → chunk-EETY4LF7.js} +24 -10
  39. package/dist/{chunk-KJN4IOEJ.js → chunk-EJIUXPBX.js} +1 -1
  40. package/dist/{chunk-IQZXOZ7S.js → chunk-ESBQHFMJ.js} +549 -271
  41. package/dist/{chunk-CFYISHUW.js → chunk-FLKWCIZH.js} +8 -5
  42. package/dist/{chunk-IUKPRZER.js → chunk-GAEGEPOC.js} +2 -2
  43. package/dist/{chunk-6XX5HCLK.js → chunk-GBPP5P7X.js} +4 -4
  44. package/dist/{chunk-3FERWMCH.js → chunk-GHB6AYCP.js} +27 -26
  45. package/dist/{chunk-NFXP47RV.js → chunk-GOYRYZ2R.js} +26 -24
  46. package/dist/{chunk-TQFBZVCG.js → chunk-GXW6K4YJ.js} +1 -1
  47. package/dist/{chunk-N7YNJE5R.js → chunk-GZYBXISR.js} +9 -9
  48. package/dist/{chunk-3JSEWUWI.js → chunk-IBGIOBEE.js} +3 -3
  49. package/dist/{chunk-OYTMZXRF.js → chunk-IBRALRBR.js} +15 -14
  50. package/dist/{chunk-5JHXUETW.js → chunk-IXXDFY73.js} +3 -3
  51. package/dist/chunk-IZSHAIJ7.js +26 -0
  52. package/dist/{chunk-7ELY2CSM.js → chunk-JAU72XNY.js} +16 -14
  53. package/dist/chunk-JMYYOTQG.js +77 -0
  54. package/dist/{chunk-ELVWJYRV.js → chunk-JSQFTSC6.js} +12 -11
  55. package/dist/{chunk-3P4PF2BX.js → chunk-JWA5I3SR.js} +34 -20
  56. package/dist/{chunk-J6DFZDFA.js → chunk-KBG47GHP.js} +4 -4
  57. package/dist/{chunk-XGUL4SLQ.js → chunk-L3BLXZG7.js} +2 -2
  58. package/dist/chunk-LOP6GRPH.js +31 -0
  59. package/dist/chunk-MQLUAEOC.js +162 -0
  60. package/dist/{chunk-3MRXIJ6I.js → chunk-MRXKYPCS.js} +2 -2
  61. package/dist/{chunk-G3RLJYA2.js → chunk-N2H3ZPZY.js} +47 -1
  62. package/dist/{chunk-HREZQCT3.js → chunk-N3X6Q4YT.js} +3 -3
  63. package/dist/{chunk-NJF2X5XF.js → chunk-NW7BOILN.js} +19 -17
  64. package/dist/{chunk-ZZUFZUQZ.js → chunk-ODBNXWT4.js} +275 -90
  65. package/dist/{chunk-HSIRMK2D.js → chunk-OG5UUPN7.js} +13 -13
  66. package/dist/{chunk-ZOEYVXSV.js → chunk-OXXKQCSV.js} +6 -6
  67. package/dist/{chunk-S6AMWKPC.js → chunk-P7266HLM.js} +2 -2
  68. package/dist/{chunk-JONGANYH.js → chunk-PFNSLWU5.js} +31 -30
  69. package/dist/{chunk-64LU2OVH.js → chunk-PHDMFAKM.js} +12 -2
  70. package/dist/{chunk-IMSQR4WO.js → chunk-PNQDPDRC.js} +1 -1
  71. package/dist/{chunk-MTDRLSI7.js → chunk-PV6LR5P5.js} +5398 -1156
  72. package/dist/{chunk-N77WFUL7.js → chunk-Q6ZWTCLY.js} +24 -22
  73. package/dist/{chunk-IUR76K6A.js → chunk-Q7DUK4LX.js} +5 -5
  74. package/dist/{chunk-CULQYFLU.js → chunk-QGQ5CCCG.js} +2 -2
  75. package/dist/{chunk-UEAHAMEI.js → chunk-QHJ6DQ2R.js} +11 -11
  76. package/dist/{chunk-BNKLYOOO.js → chunk-QILIYSJF.js} +1 -1
  77. package/dist/{chunk-VYKKMYVT.js → chunk-QOBUHWHX.js} +11 -6
  78. package/dist/{chunk-3PNFWVHT.js → chunk-QQNQ7SJW.js} +2 -75
  79. package/dist/{chunk-OEX24ECI.js → chunk-QZVW3AAK.js} +50 -41
  80. package/dist/{chunk-7M4T5N3V.js → chunk-R3PCY3YS.js} +14 -13
  81. package/dist/{chunk-MGIWSROG.js → chunk-RPLINGVB.js} +7 -7
  82. package/dist/{chunk-CMU4RMJB.js → chunk-RWWYJ623.js} +10 -1
  83. package/dist/{chunk-7BX5DWSA.js → chunk-SAEFPSB6.js} +11 -11
  84. package/dist/{chunk-6UYA642J.js → chunk-TYM6OUIT.js} +13 -12
  85. package/dist/{chunk-ALQRYH6O.js → chunk-UXGETRP4.js} +13 -12
  86. package/dist/{chunk-FGALODG3.js → chunk-UZ3TUTRV.js} +1 -1
  87. package/dist/{chunk-J3FZR3YY.js → chunk-VCHXCQFG.js} +3 -3
  88. package/dist/{chunk-DMS52BEP.js → chunk-VITUCP5A.js} +5 -5
  89. package/dist/{chunk-O7HZX7CA.js → chunk-VRZP76YM.js} +1 -1
  90. package/dist/{chunk-VZHJS6DR.js → chunk-VSSBEUFT.js} +16 -15
  91. package/dist/{chunk-U52SAGRM.js → chunk-VWCXW2E7.js} +1 -1
  92. package/dist/{chunk-WW5BLB74.js → chunk-WOA4LN2R.js} +2 -2
  93. package/dist/{chunk-IR6XFA5P.js → chunk-WOKKRCJ5.js} +15 -14
  94. package/dist/{chunk-ZMOMPX2Z.js → chunk-WU567RSC.js} +11 -10
  95. package/dist/{chunk-WSEWKCXU.js → chunk-XCJN5IJU.js} +4 -4
  96. package/dist/{chunk-D65GOCJB.js → chunk-XKIZ2HNN.js} +15 -14
  97. package/dist/{chunk-OYOB3ZFG.js → chunk-XMSXXAHW.js} +2 -2
  98. package/dist/chunk-XPZPXCBV.js +28 -0
  99. package/dist/{chunk-34OCDWOS.js → chunk-XTMJ7XDT.js} +1 -1
  100. package/dist/{chunk-Z6BB4JLQ.js → chunk-XVF2VVXP.js} +5 -3
  101. package/dist/chunk-Z527N6YQ.js +28 -0
  102. package/dist/{chunk-D6YF5HKX.js → chunk-ZANLILYD.js} +22 -2
  103. package/dist/{chunk-2UMYMRI3.js → chunk-ZGDGW2V3.js} +2 -2
  104. package/dist/{chunk-6B5I6ICN.js → chunk-ZHFZWTZV.js} +12 -11
  105. package/dist/{chunk-AXKPQ6ZI.js → chunk-ZXYDQ3TZ.js} +5 -5
  106. package/dist/index.js +72740 -70136
  107. package/dist/mcp/analyze-cli.js +18 -8
  108. package/dist/mcp/cli.js +48 -37
  109. package/dist/mcp/server.js +564 -394
  110. package/dist/mcp/worker.js +66 -55
  111. package/dist/probes/installer.js +20 -19
  112. package/docs/astplayground.md +1 -1
  113. package/docs/configuration.md +29 -0
  114. package/docs/dependencies.md +3 -0
  115. package/docs/features.md +2 -2
  116. package/docs/globalconfig.md +2 -0
  117. package/docs/language-coverage.md +2 -1
  118. package/docs/lsp-capability-matrix.md +29 -7
  119. package/docs/lsp-idle-eviction.md +38 -47
  120. package/docs/pi-lens-fixer.md +4 -0
  121. package/docs/pi-lens-merge-policy.md +5 -0
  122. package/docs/pi-lens-retro.md +2 -1
  123. package/docs/pi-lens-reviewer.md +15 -0
  124. package/docs/pi-lens-subagent.md +2 -0
  125. package/docs/real-harness.md +17 -0
  126. package/docs/schema/pi-lens-config-v1.json +37 -2
  127. package/docs/servercapabilities.md +15 -4
  128. package/docs/settings.md +2 -1
  129. package/package.json +1 -1
  130. package/dist/chunk-2FQ62SPM.js +0 -83
  131. package/dist/chunk-7AXO3ZDF.js +0 -30
  132. package/dist/chunk-KMGPUKFD.js +0 -25
  133. package/dist/chunk-RJFED73B.js +0 -79
  134. package/dist/chunk-RTQNRM5X.js +0 -27
  135. package/dist/chunk-V5MEBST3.js +0 -4139
  136. package/dist/chunk-VGEVL5EQ.js +0 -29
  137. package/dist/chunk-WPE5FPGR.js +0 -54
  138. package/dist/chunk-Z7QQA2KT.js +0 -27
@@ -4,6 +4,7 @@ import {
4
4
  DOTNET_CSHARP_ROOT_MARKERS,
5
5
  DOTNET_FSHARP_ROOT_MARKERS,
6
6
  KIND_EXTENSIONS,
7
+ LEAN_ROOT_MARKERS,
7
8
  NON_CODE_KINDS,
8
9
  SPECIAL_FILENAMES,
9
10
  TERRAGRUNT_FILENAMES,
@@ -16,17 +17,19 @@ import {
16
17
  isHelmYamlTemplatePath,
17
18
  isJstsFactFile,
18
19
  isReadableSourceFile
19
- } from "./chunk-64LU2OVH.js";
20
- import "./chunk-Z6BB4JLQ.js";
21
- import "./chunk-3PNFWVHT.js";
22
- import "./chunk-VSMJK3ZJ.js";
23
- import "./chunk-G3RLJYA2.js";
20
+ } from "./chunk-PHDMFAKM.js";
21
+ import "./chunk-XVF2VVXP.js";
22
+ import "./chunk-JMYYOTQG.js";
23
+ import "./chunk-QQNQ7SJW.js";
24
+ import "./chunk-AOHZU2BM.js";
25
+ import "./chunk-N2H3ZPZY.js";
24
26
  import "./chunk-NXL4FFQQ.js";
25
27
  export {
26
28
  CODE_KINDS,
27
29
  DOTNET_CSHARP_ROOT_MARKERS,
28
30
  DOTNET_FSHARP_ROOT_MARKERS,
29
31
  KIND_EXTENSIONS,
32
+ LEAN_ROOT_MARKERS,
30
33
  NON_CODE_KINDS,
31
34
  SPECIAL_FILENAMES,
32
35
  TERRAGRUNT_FILENAMES,
@@ -1,11 +1,11 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  loadPiLensProjectConfig
4
- } from "./chunk-N2IRDBZI.js";
4
+ } from "./chunk-2BBLFX75.js";
5
5
  import {
6
6
  lazyEnvNumber,
7
7
  toPositiveFinite
8
- } from "./chunk-VSMJK3ZJ.js";
8
+ } from "./chunk-AOHZU2BM.js";
9
9
 
10
10
  // dist/clients/project-scale.js
11
11
  var DEFAULT_PROJECT_SCALE_BASE = 2e3;
@@ -4,17 +4,17 @@ import {
4
4
  readCargoDependencyNames,
5
5
  readCargoPackageName,
6
6
  readCargoWorkspaceMembers
7
- } from "./chunk-S6AMWKPC.js";
7
+ } from "./chunk-P7266HLM.js";
8
8
  import {
9
9
  getProjectIgnoreMatcher,
10
10
  isExcludedDirName
11
- } from "./chunk-T54VJRAD.js";
11
+ } from "./chunk-C34ZXZ7O.js";
12
12
  import {
13
13
  getWorkspaceManifestMarkers
14
- } from "./chunk-Z6BB4JLQ.js";
14
+ } from "./chunk-XVF2VVXP.js";
15
15
  import {
16
16
  normalizeMapKey
17
- } from "./chunk-G3RLJYA2.js";
17
+ } from "./chunk-N2H3ZPZY.js";
18
18
 
19
19
  // dist/clients/review-graph/workspace-modules.js
20
20
  import * as fs from "node:fs";
@@ -52,41 +52,42 @@ import {
52
52
  tryLazyInstallFormatterTool,
53
53
  typstyleFormatter,
54
54
  zigFormatter
55
- } from "./chunk-ZETYB3XG.js";
56
- import "./chunk-ZOEYVXSV.js";
55
+ } from "./chunk-ARJ6PLFH.js";
56
+ import "./chunk-OXXKQCSV.js";
57
57
  import "./chunk-FC4RP4I2.js";
58
- import "./chunk-MGIWSROG.js";
58
+ import "./chunk-RPLINGVB.js";
59
+ import "./chunk-ZXYDQ3TZ.js";
59
60
  import "./chunk-QOZXJ4NA.js";
60
- import "./chunk-S6AMWKPC.js";
61
- import "./chunk-AXKPQ6ZI.js";
62
- import "./chunk-7BX5DWSA.js";
63
- import "./chunk-IUKPRZER.js";
61
+ import "./chunk-P7266HLM.js";
62
+ import "./chunk-SAEFPSB6.js";
63
+ import "./chunk-GAEGEPOC.js";
64
64
  import "./chunk-Z3CCVDUB.js";
65
65
  import "./chunk-2BEMIWEW.js";
66
- import "./chunk-LD7WFTRX.js";
67
- import "./chunk-IUR76K6A.js";
68
- import "./chunk-T4QZ6FEH.js";
69
- import "./chunk-D6YF5HKX.js";
70
- import "./chunk-CMU4RMJB.js";
71
- import "./chunk-O7HZX7CA.js";
72
- import "./chunk-VYKKMYVT.js";
73
- import "./chunk-BNKLYOOO.js";
74
- import "./chunk-USHG4DLH.js";
75
- import "./chunk-H5EV3VMF.js";
76
- import "./chunk-T54VJRAD.js";
66
+ import "./chunk-66VMUL7Q.js";
67
+ import "./chunk-Q7DUK4LX.js";
68
+ import "./chunk-AW7R2GWG.js";
69
+ import "./chunk-RWWYJ623.js";
70
+ import "./chunk-VRZP76YM.js";
71
+ import "./chunk-QOBUHWHX.js";
72
+ import "./chunk-QILIYSJF.js";
73
+ import "./chunk-6C7JWPCP.js";
74
+ import "./chunk-5NGR67U5.js";
75
+ import "./chunk-C34ZXZ7O.js";
77
76
  import "./chunk-BW5KFIQC.js";
78
77
  import "./chunk-QYF5S6P6.js";
79
- import "./chunk-64LU2OVH.js";
80
- import "./chunk-N2IRDBZI.js";
81
- import "./chunk-Z6BB4JLQ.js";
78
+ import "./chunk-PHDMFAKM.js";
79
+ import "./chunk-2BBLFX75.js";
80
+ import "./chunk-XVF2VVXP.js";
81
+ import "./chunk-ZANLILYD.js";
82
82
  import "./chunk-2EECBNC5.js";
83
- import "./chunk-7ELY2CSM.js";
84
- import "./chunk-34OCDWOS.js";
85
- import "./chunk-3PNFWVHT.js";
86
- import "./chunk-VSMJK3ZJ.js";
83
+ import "./chunk-JAU72XNY.js";
84
+ import "./chunk-XTMJ7XDT.js";
85
+ import "./chunk-JMYYOTQG.js";
86
+ import "./chunk-QQNQ7SJW.js";
87
+ import "./chunk-AOHZU2BM.js";
87
88
  import "./chunk-LJDODBBZ.js";
88
89
  import "./chunk-ABBOA7UD.js";
89
- import "./chunk-G3RLJYA2.js";
90
+ import "./chunk-N2H3ZPZY.js";
90
91
  import "./chunk-NXL4FFQQ.js";
91
92
  export {
92
93
  ALL_FORMATTERS,
@@ -2,12 +2,12 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  getToolCommandSpec,
4
4
  shouldAutoInstallTool
5
- } from "./chunk-MGIWSROG.js";
5
+ } from "./chunk-RPLINGVB.js";
6
6
  import {
7
7
  BUILTIN_SERVER_RUNNER_COVERS,
8
8
  getServersForFileWithConfig,
9
9
  isAuxiliary
10
- } from "./chunk-IQZXOZ7S.js";
10
+ } from "./chunk-ESBQHFMJ.js";
11
11
  import {
12
12
  PathKeyedMap
13
13
  } from "./chunk-Z3CCVDUB.js";
@@ -20,21 +20,22 @@ import {
20
20
  isSpawnableCommand,
21
21
  logSessionStart,
22
22
  resetPathWalkMemo
23
- } from "./chunk-LD7WFTRX.js";
23
+ } from "./chunk-66VMUL7Q.js";
24
24
  import {
25
25
  resolveToolCwd
26
- } from "./chunk-IUR76K6A.js";
26
+ } from "./chunk-Q7DUK4LX.js";
27
27
  import {
28
28
  VENDOR_BIN_DIRS,
29
29
  VENV_BIN_DIRS,
30
30
  findGlobalBinary,
31
31
  findLocalBinAt,
32
- findLocalBinUpwards
33
- } from "./chunk-T4QZ6FEH.js";
32
+ findLocalBinUpwards,
33
+ localBinPath
34
+ } from "./chunk-AW7R2GWG.js";
34
35
  import {
35
36
  createAvailabilityProbeFlight,
36
37
  probeToolAsync
37
- } from "./chunk-CMU4RMJB.js";
38
+ } from "./chunk-RWWYJ623.js";
38
39
  import {
39
40
  classifyProbeFailure,
40
41
  createAvailabilityLatch,
@@ -44,21 +45,24 @@ import {
44
45
  logAvailabilityDecision,
45
46
  startHostStallSampler,
46
47
  transientRetryDelayMs
47
- } from "./chunk-O7HZX7CA.js";
48
+ } from "./chunk-VRZP76YM.js";
48
49
  import {
49
50
  createGenerationSource,
50
51
  getGlobalPiLensDir,
51
52
  isInSpawnTimeoutCooldown,
52
53
  safeSpawnAsync
53
- } from "./chunk-T54VJRAD.js";
54
+ } from "./chunk-C34ZXZ7O.js";
55
+ import {
56
+ getProjectTrustState
57
+ } from "./chunk-ZANLILYD.js";
54
58
  import {
55
59
  compareOrdinal,
56
60
  incrementDegradationCount
57
- } from "./chunk-7ELY2CSM.js";
61
+ } from "./chunk-JAU72XNY.js";
58
62
  import {
59
63
  normalizeEphemeralMapKey,
60
64
  normalizeMapKey
61
- } from "./chunk-G3RLJYA2.js";
65
+ } from "./chunk-N2H3ZPZY.js";
62
66
 
63
67
  // dist/clients/dispatch/runners/utils/runner-helpers.js
64
68
  import * as fs from "node:fs";
@@ -187,10 +191,10 @@ async function findManagedReleaseBinary(tool, verificationArgs = ["--version"])
187
191
  }
188
192
  function createVenvFinder(command, windowsExt = "", verificationArgs = ["--version"]) {
189
193
  return async (cwd) => {
190
- const venvBin = findLocalBinAt(command, cwd, {
194
+ const venvBin = localBinPath(findLocalBinAt(command, cwd, {
191
195
  windowsExt,
192
196
  binDirs: VENV_BIN_DIRS
193
- });
197
+ }));
194
198
  if (venvBin)
195
199
  return { path: venvBin, rung: "venv" };
196
200
  const managed = await findManagedNodeToolBinary(command, verificationArgs);
@@ -234,6 +238,8 @@ async function getManagedToolEnvironment(_toolId, cwd) {
234
238
  }
235
239
  if (!cwd)
236
240
  return env;
241
+ if (getProjectTrustState() !== "trusted")
242
+ return env;
237
243
  const separator = process.platform === "win32" ? ";" : ":";
238
244
  const currentPath = env.PATH || env.Path || process.env.PATH || "";
239
245
  const localBin = path.join(cwd, "node_modules", ".bin");
@@ -812,10 +818,8 @@ function createCwdCachedProbe(probe, options) {
812
818
  return cached;
813
819
  }
814
820
  function resolveNodeToolCommand(cwd, toolName, windowsExt = ".cmd") {
815
- const isWin = process.platform === "win32";
816
- const binName = isWin ? `${toolName}${windowsExt}` : toolName;
817
- const local = path.join(cwd, "node_modules", ".bin", binName);
818
- if (fs.existsSync(local))
821
+ const local = localBinPath(findLocalBinAt(toolName, cwd, { windowsExt }));
822
+ if (local)
819
823
  return local;
820
824
  return toolName;
821
825
  }
@@ -826,10 +830,10 @@ function resolveToolCommand(cwd, toolId) {
826
830
  return resolveNodeToolCommand(cwd, spec.command, spec.windowsExt ?? ".cmd");
827
831
  }
828
832
  function resolveVendorToolCommand(cwd, toolName, windowsExt = ".bat") {
829
- return findLocalBinUpwards(toolName, cwd, {
833
+ return localBinPath(findLocalBinUpwards(toolName, cwd, {
830
834
  windowsExt,
831
835
  binDirs: VENDOR_BIN_DIRS
832
- }) ?? null;
836
+ })) ?? null;
833
837
  }
834
838
  async function resolveToolCommandWithInstallFallback(cwd, toolId, timeout = 5e3) {
835
839
  const spec = getToolCommandSpec(toolId);
@@ -949,14 +953,12 @@ function getSgCommand() {
949
953
  ensureCurrentSgGeneration();
950
954
  return {
951
955
  cmd: sgCmd ?? "npx",
952
- args: sgCmdArgs.length ? sgCmdArgs : ["--no", "--", "ast-grep"]
956
+ args: sgCmdArgs.length ? sgCmdArgs : ["--no", "--package", "@ast-grep/cli", "--", "ast-grep"]
953
957
  };
954
958
  }
955
959
  async function resolveLocalFirstAsync(toolName, cwd, windowsExt = ".cmd") {
956
- const isWin = process.platform === "win32";
957
- const binName = isWin ? `${toolName}${windowsExt}` : toolName;
958
- const local = path.join(cwd, "node_modules", ".bin", binName);
959
- if (fs.existsSync(local))
960
+ const local = localBinPath(findLocalBinAt(toolName, cwd, { windowsExt }));
961
+ if (local)
960
962
  return { cmd: local, args: [] };
961
963
  const globalBin = await findGlobalBinary(toolName, windowsExt);
962
964
  if (globalBin)
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  withTreeSitterRoot
4
- } from "./chunk-UEAHAMEI.js";
4
+ } from "./chunk-QHJ6DQ2R.js";
5
5
 
6
6
  // dist/clients/dispatch/facts/tree-sitter-facts.js
7
7
  var withFactTree = withTreeSitterRoot;
@@ -1,30 +1,30 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  SecurityScanClient
4
- } from "./chunk-5JHXUETW.js";
4
+ } from "./chunk-IXXDFY73.js";
5
5
  import {
6
6
  firstOutputLine,
7
7
  spawnFailedWithNoOutput
8
- } from "./chunk-FGALODG3.js";
9
- import {
10
- assertInstallAllowed
11
- } from "./chunk-D6YF5HKX.js";
8
+ } from "./chunk-UZ3TUTRV.js";
12
9
  import {
13
10
  probeToolAsync
14
- } from "./chunk-CMU4RMJB.js";
11
+ } from "./chunk-RWWYJ623.js";
15
12
  import {
16
13
  INSTALL_TRANSIENT_MAX_ATTEMPTS,
17
14
  classifyProbeFailure,
18
15
  describeProbeEvidence,
19
16
  logAvailabilityDecision,
20
17
  startHostStallSampler
21
- } from "./chunk-O7HZX7CA.js";
18
+ } from "./chunk-VRZP76YM.js";
22
19
  import {
23
20
  safeSpawnAsync
24
- } from "./chunk-T54VJRAD.js";
21
+ } from "./chunk-C34ZXZ7O.js";
22
+ import {
23
+ assertInstallAllowed
24
+ } from "./chunk-ZANLILYD.js";
25
25
  import {
26
26
  recordDegradationOnce
27
- } from "./chunk-7ELY2CSM.js";
27
+ } from "./chunk-JAU72XNY.js";
28
28
 
29
29
  // dist/clients/govulncheck-client.js
30
30
  import * as fs from "node:fs";
@@ -1,21 +1,21 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  getProjectDataDir
4
- } from "./chunk-T54VJRAD.js";
4
+ } from "./chunk-C34ZXZ7O.js";
5
5
  import {
6
6
  createNdjsonLogger,
7
7
  getGlobalPiLensLogDir,
8
8
  getProcessSingleton,
9
9
  getTurnId,
10
10
  isTestMode
11
- } from "./chunk-VSMJK3ZJ.js";
11
+ } from "./chunk-AOHZU2BM.js";
12
12
  import {
13
13
  BoundedFifoMap
14
14
  } from "./chunk-ABBOA7UD.js";
15
15
  import {
16
16
  normalizeFilePath,
17
17
  normalizeMapKey
18
- } from "./chunk-G3RLJYA2.js";
18
+ } from "./chunk-N2H3ZPZY.js";
19
19
 
20
20
  // dist/clients/hashline-anchor.js
21
21
  var HASHLINE_ANCHOR_LENGTH = 3;
@@ -9,24 +9,25 @@ import {
9
9
  resolveSeverityFloor,
10
10
  shouldScanTrivy,
11
11
  worktreeSkipDirs
12
- } from "./chunk-YLN4K6WD.js";
13
- import "./chunk-J3FZR3YY.js";
14
- import "./chunk-5JHXUETW.js";
15
- import "./chunk-IMSQR4WO.js";
16
- import "./chunk-CMU4RMJB.js";
17
- import "./chunk-O7HZX7CA.js";
18
- import "./chunk-T54VJRAD.js";
12
+ } from "./chunk-66SXUJCA.js";
13
+ import "./chunk-VCHXCQFG.js";
14
+ import "./chunk-IXXDFY73.js";
15
+ import "./chunk-PNQDPDRC.js";
16
+ import "./chunk-RWWYJ623.js";
17
+ import "./chunk-VRZP76YM.js";
18
+ import "./chunk-C34ZXZ7O.js";
19
19
  import "./chunk-BW5KFIQC.js";
20
- import "./chunk-N2IRDBZI.js";
21
- import "./chunk-Z6BB4JLQ.js";
20
+ import "./chunk-2BBLFX75.js";
21
+ import "./chunk-XVF2VVXP.js";
22
22
  import "./chunk-2EECBNC5.js";
23
- import "./chunk-7ELY2CSM.js";
24
- import "./chunk-34OCDWOS.js";
25
- import "./chunk-3PNFWVHT.js";
26
- import "./chunk-VSMJK3ZJ.js";
23
+ import "./chunk-JAU72XNY.js";
24
+ import "./chunk-XTMJ7XDT.js";
25
+ import "./chunk-JMYYOTQG.js";
26
+ import "./chunk-QQNQ7SJW.js";
27
+ import "./chunk-AOHZU2BM.js";
27
28
  import "./chunk-LJDODBBZ.js";
28
29
  import "./chunk-ABBOA7UD.js";
29
- import "./chunk-G3RLJYA2.js";
30
+ import "./chunk-N2H3ZPZY.js";
30
31
  import "./chunk-NXL4FFQQ.js";
31
32
  export {
32
33
  TrivyClient,
@@ -2,7 +2,7 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  createAvailabilityProbeFlight,
4
4
  probeToolAsync
5
- } from "./chunk-CMU4RMJB.js";
5
+ } from "./chunk-RWWYJ623.js";
6
6
  import {
7
7
  classifyProbeFailure,
8
8
  createAvailabilityLatch,
@@ -10,13 +10,13 @@ import {
10
10
  describeProbeEvidence,
11
11
  logAvailabilityDecision,
12
12
  startHostStallSampler
13
- } from "./chunk-O7HZX7CA.js";
13
+ } from "./chunk-VRZP76YM.js";
14
14
  import {
15
15
  createSingleFlight
16
16
  } from "./chunk-BW5KFIQC.js";
17
17
  import {
18
18
  createSubsystemLogger
19
- } from "./chunk-34OCDWOS.js";
19
+ } from "./chunk-XTMJ7XDT.js";
20
20
 
21
21
  // dist/clients/security-scan-client.js
22
22
  import * as path from "node:path";
@@ -0,0 +1,26 @@
1
+ import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+ import {
3
+ getSourceFiles,
4
+ getSourceFilesAsync
5
+ } from "./chunk-QILIYSJF.js";
6
+ import "./chunk-6C7JWPCP.js";
7
+ import "./chunk-5NGR67U5.js";
8
+ import "./chunk-C34ZXZ7O.js";
9
+ import "./chunk-QYF5S6P6.js";
10
+ import "./chunk-PHDMFAKM.js";
11
+ import "./chunk-2BBLFX75.js";
12
+ import "./chunk-XVF2VVXP.js";
13
+ import "./chunk-2EECBNC5.js";
14
+ import "./chunk-JAU72XNY.js";
15
+ import "./chunk-XTMJ7XDT.js";
16
+ import "./chunk-JMYYOTQG.js";
17
+ import "./chunk-QQNQ7SJW.js";
18
+ import "./chunk-AOHZU2BM.js";
19
+ import "./chunk-LJDODBBZ.js";
20
+ import "./chunk-ABBOA7UD.js";
21
+ import "./chunk-N2H3ZPZY.js";
22
+ import "./chunk-NXL4FFQQ.js";
23
+ export {
24
+ getSourceFiles,
25
+ getSourceFilesAsync
26
+ };
@@ -1,11 +1,13 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  logExtension
4
- } from "./chunk-34OCDWOS.js";
4
+ } from "./chunk-XTMJ7XDT.js";
5
+ import {
6
+ DEPRECATED_CONFIG_SURFACES
7
+ } from "./chunk-JMYYOTQG.js";
5
8
  import {
6
- DEPRECATED_CONFIG_SURFACES,
7
9
  logLatency
8
- } from "./chunk-3PNFWVHT.js";
10
+ } from "./chunk-QQNQ7SJW.js";
9
11
  import {
10
12
  PROCESS_SINGLETON_RESET_KIND,
11
13
  getProbeHomeRedirectEvent,
@@ -16,15 +18,7 @@ import {
16
18
  getSinkWriteFailures,
17
19
  resetSinkRotations,
18
20
  resetSinkWriteFailures
19
- } from "./chunk-VSMJK3ZJ.js";
20
-
21
- // dist/clients/string-utils.js
22
- function compareOrdinal(a, b) {
23
- return a < b ? -1 : a > b ? 1 : 0;
24
- }
25
- function escapeRegExp(value) {
26
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
27
- }
21
+ } from "./chunk-AOHZU2BM.js";
28
22
 
29
23
  // dist/clients/ledger-bounds.js
30
24
  var LEDGER_FIELD_MAX = 200;
@@ -345,6 +339,14 @@ function resetDegradationLedger() {
345
339
  resetSinkRotations();
346
340
  }
347
341
 
342
+ // dist/clients/string-utils.js
343
+ function compareOrdinal(a, b) {
344
+ return a < b ? -1 : a > b ? 1 : 0;
345
+ }
346
+ function escapeRegExp(value) {
347
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
348
+ }
349
+
348
350
  // dist/clients/lens-flag-registry.js
349
351
  function globalOptInFlag(name, description, configKey) {
350
352
  return {
@@ -867,8 +869,6 @@ function readToolConfig(raw, warnInvalid) {
867
869
  }
868
870
 
869
871
  export {
870
- compareOrdinal,
871
- escapeRegExp,
872
872
  LEDGER_FIELD_MAX,
873
873
  DEGRADATION_ENTRIES_PER_KIND,
874
874
  truncateForLedger,
@@ -879,6 +879,8 @@ export {
879
879
  getDegradationSummary,
880
880
  renderDegradationLines,
881
881
  resetDegradationLedger,
882
+ compareOrdinal,
883
+ escapeRegExp,
882
884
  LENS_FLAGS,
883
885
  getLensFlagSpec,
884
886
  PROJECT_SCOPED_LENS_FLAGS,
@@ -0,0 +1,77 @@
1
+ import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+
3
+ // dist/clients/config-diagnostic-codes.js
4
+ var STABILITY_TIER_KEY = "x-stability";
5
+ var CONFIG_SCHEMA_ID = "https://raw.githubusercontent.com/apmantza/pi-lens/master/docs/schema/pi-lens-config-v1.json";
6
+ var CONFIG_SCHEMA_ANCHOR_KEY = "$schema";
7
+ function configDiagnosticMarker(code) {
8
+ return `[${code}]`;
9
+ }
10
+ function withConfigDiagnosticCode(message, code) {
11
+ const marker = configDiagnosticMarker(code);
12
+ return message.includes(marker) ? message : `${message} ${marker}`;
13
+ }
14
+ var LSP_DEPRECATION_WINDOW = {
15
+ deprecatedSince: "4.1.4",
16
+ removeNotBefore: "5.0.0"
17
+ };
18
+ var LEGACY_KEY = {
19
+ kind: "key",
20
+ code: "PILENS_CFG_0002",
21
+ ...LSP_DEPRECATION_WINDOW
22
+ };
23
+ var LEGACY_FILE = {
24
+ kind: "file",
25
+ code: "PILENS_CFG_0003",
26
+ ...LSP_DEPRECATION_WINDOW
27
+ };
28
+ var DEPRECATED_CONFIG_SURFACES = [
29
+ {
30
+ ...LEGACY_KEY,
31
+ surface: "servers",
32
+ reason: "custom-server definitions move to the unified catalog schema; the bare string command + args form is replaced by the trust-gated ProcessSpec (#2416)."
33
+ },
34
+ {
35
+ ...LEGACY_KEY,
36
+ surface: "serverOverrides",
37
+ reason: "per-server initializationOptions overrides fold into the catalog's field-wise merge, keyed by the same public server IDs (#2416)."
38
+ },
39
+ {
40
+ ...LEGACY_KEY,
41
+ surface: "disabledServers",
42
+ reason: "replaced by the catalog's per-entry `enabled: false`, which carries monotonic deny precedence (#1416/#2415)."
43
+ },
44
+ {
45
+ ...LEGACY_KEY,
46
+ surface: "warmFiles",
47
+ reason: "session warm-up seeds become a per-server catalog field rather than a config-root list (#2416)."
48
+ },
49
+ {
50
+ ...LEGACY_FILE,
51
+ surface: ".pi-lens/lsp.json",
52
+ reason: "project LSP settings consolidate into `.pi-lens.json` under the unified envelope (#2426)."
53
+ },
54
+ {
55
+ ...LEGACY_FILE,
56
+ surface: "pi-lsp.json",
57
+ reason: "pre-rename project location; superseded by `.pi-lens.json` (#2426)."
58
+ },
59
+ {
60
+ ...LEGACY_FILE,
61
+ surface: "pi-lens.json",
62
+ reason: "undotted project-config basename; superseded by `.pi-lens.json` (#2426)."
63
+ },
64
+ {
65
+ ...LEGACY_FILE,
66
+ surface: "~/.pi-lens/lsp.json",
67
+ reason: "global LSP settings consolidate into `~/.pi-lens/config.json` (#2426)."
68
+ }
69
+ ];
70
+
71
+ export {
72
+ STABILITY_TIER_KEY,
73
+ CONFIG_SCHEMA_ID,
74
+ CONFIG_SCHEMA_ANCHOR_KEY,
75
+ withConfigDiagnosticCode,
76
+ DEPRECATED_CONFIG_SURFACES
77
+ };
@@ -1,21 +1,22 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  collectSourceFiles
4
- } from "./chunk-USHG4DLH.js";
5
- import "./chunk-H5EV3VMF.js";
6
- import "./chunk-T54VJRAD.js";
4
+ } from "./chunk-6C7JWPCP.js";
5
+ import "./chunk-5NGR67U5.js";
6
+ import "./chunk-C34ZXZ7O.js";
7
7
  import "./chunk-QYF5S6P6.js";
8
- import "./chunk-64LU2OVH.js";
9
- import "./chunk-N2IRDBZI.js";
10
- import "./chunk-Z6BB4JLQ.js";
8
+ import "./chunk-PHDMFAKM.js";
9
+ import "./chunk-2BBLFX75.js";
10
+ import "./chunk-XVF2VVXP.js";
11
11
  import "./chunk-2EECBNC5.js";
12
- import "./chunk-7ELY2CSM.js";
13
- import "./chunk-34OCDWOS.js";
14
- import "./chunk-3PNFWVHT.js";
15
- import "./chunk-VSMJK3ZJ.js";
12
+ import "./chunk-JAU72XNY.js";
13
+ import "./chunk-XTMJ7XDT.js";
14
+ import "./chunk-JMYYOTQG.js";
15
+ import "./chunk-QQNQ7SJW.js";
16
+ import "./chunk-AOHZU2BM.js";
16
17
  import "./chunk-LJDODBBZ.js";
17
18
  import "./chunk-ABBOA7UD.js";
18
- import "./chunk-G3RLJYA2.js";
19
+ import "./chunk-N2H3ZPZY.js";
19
20
  import "./chunk-NXL4FFQQ.js";
20
21
 
21
22
  // dist/clients/todo-scanner.js