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
@@ -8,35 +8,37 @@ import {
8
8
  isExcludedTestTarget,
9
9
  isRunnerErrorResult,
10
10
  stripWrapperArgs
11
- } from "./chunk-3P4PF2BX.js";
11
+ } from "./chunk-JWA5I3SR.js";
12
12
  import "./chunk-FC4RP4I2.js";
13
- import "./chunk-IMSQR4WO.js";
14
- import "./chunk-OZJINN4O.js";
15
- import "./chunk-LNOMA3MP.js";
16
- import "./chunk-S6AMWKPC.js";
13
+ import "./chunk-CO2G5PHH.js";
14
+ import "./chunk-PNQDPDRC.js";
15
+ import "./chunk-34WSVGEM.js";
16
+ import "./chunk-P7266HLM.js";
17
17
  import "./chunk-Z3CCVDUB.js";
18
- import "./chunk-IUR76K6A.js";
19
- import "./chunk-T4QZ6FEH.js";
20
- import "./chunk-CMU4RMJB.js";
21
- import "./chunk-O7HZX7CA.js";
22
- import "./chunk-VYKKMYVT.js";
23
- import "./chunk-BNKLYOOO.js";
24
- import "./chunk-USHG4DLH.js";
25
- import "./chunk-H5EV3VMF.js";
26
- import "./chunk-T54VJRAD.js";
18
+ import "./chunk-Q7DUK4LX.js";
19
+ import "./chunk-AW7R2GWG.js";
20
+ import "./chunk-RWWYJ623.js";
21
+ import "./chunk-VRZP76YM.js";
22
+ import "./chunk-QOBUHWHX.js";
23
+ import "./chunk-QILIYSJF.js";
24
+ import "./chunk-6C7JWPCP.js";
25
+ import "./chunk-5NGR67U5.js";
26
+ import "./chunk-C34ZXZ7O.js";
27
27
  import "./chunk-BW5KFIQC.js";
28
28
  import "./chunk-QYF5S6P6.js";
29
- import "./chunk-64LU2OVH.js";
30
- import "./chunk-N2IRDBZI.js";
31
- import "./chunk-Z6BB4JLQ.js";
29
+ import "./chunk-PHDMFAKM.js";
30
+ import "./chunk-2BBLFX75.js";
31
+ import "./chunk-XVF2VVXP.js";
32
+ import "./chunk-ZANLILYD.js";
32
33
  import "./chunk-2EECBNC5.js";
33
- import "./chunk-7ELY2CSM.js";
34
- import "./chunk-34OCDWOS.js";
35
- import "./chunk-3PNFWVHT.js";
36
- import "./chunk-VSMJK3ZJ.js";
34
+ import "./chunk-JAU72XNY.js";
35
+ import "./chunk-XTMJ7XDT.js";
36
+ import "./chunk-JMYYOTQG.js";
37
+ import "./chunk-QQNQ7SJW.js";
38
+ import "./chunk-AOHZU2BM.js";
37
39
  import "./chunk-LJDODBBZ.js";
38
40
  import "./chunk-ABBOA7UD.js";
39
- import "./chunk-G3RLJYA2.js";
41
+ import "./chunk-N2H3ZPZY.js";
40
42
  import "./chunk-NXL4FFQQ.js";
41
43
  export {
42
44
  MAX_CANONICAL_ROOT_MEMO_ENTRIES,
@@ -1,18 +1,18 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  rootMarkersForFile
4
- } from "./chunk-VYKKMYVT.js";
4
+ } from "./chunk-QOBUHWHX.js";
5
5
  import {
6
6
  createGenerationMap,
7
7
  createGenerationSource
8
- } from "./chunk-T54VJRAD.js";
8
+ } from "./chunk-C34ZXZ7O.js";
9
9
  import {
10
10
  getDegradationLedgerGeneration,
11
11
  recordDegradationOnce
12
- } from "./chunk-7ELY2CSM.js";
12
+ } from "./chunk-JAU72XNY.js";
13
13
  import {
14
14
  logExtension
15
- } from "./chunk-34OCDWOS.js";
15
+ } from "./chunk-XTMJ7XDT.js";
16
16
  import {
17
17
  isAtOrAboveHomeDir,
18
18
  isRealGitMarker,
@@ -20,7 +20,7 @@ import {
20
20
  isWindowsPath,
21
21
  nameMatchesMarkerGlob,
22
22
  normalizeEphemeralMapKey
23
- } from "./chunk-G3RLJYA2.js";
23
+ } from "./chunk-N2H3ZPZY.js";
24
24
 
25
25
  // dist/clients/tool-cwd.js
26
26
  import * as os from "node:os";
@@ -3,9 +3,9 @@ import {
3
3
  FactStore,
4
4
  getFactStoreEvictionReporter,
5
5
  setFactStoreEvictionReporter
6
- } from "./chunk-UGSMCQ4D.js";
6
+ } from "./chunk-CHOW74WE.js";
7
7
  import "./chunk-ABBOA7UD.js";
8
- import "./chunk-G3RLJYA2.js";
8
+ import "./chunk-N2H3ZPZY.js";
9
9
  import "./chunk-NXL4FFQQ.js";
10
10
  export {
11
11
  FactStore,
@@ -6,26 +6,26 @@ import {
6
6
  EXTENSION_TO_GRAMMAR,
7
7
  getUserRuleRoot,
8
8
  ruleCorpusFingerprintForCycle
9
- } from "./chunk-KJCWXUUS.js";
9
+ } from "./chunk-724UL2TJ.js";
10
10
  import {
11
11
  getPackageRoot,
12
12
  js_yaml_default,
13
13
  resolvePackagePath
14
14
  } from "./chunk-QOZXJ4NA.js";
15
- import {
16
- assertInstallAllowed,
17
- getProjectTrustGeneration
18
- } from "./chunk-D6YF5HKX.js";
19
15
  import {
20
16
  transientRetryDelayMs
21
- } from "./chunk-O7HZX7CA.js";
17
+ } from "./chunk-VRZP76YM.js";
22
18
  import {
23
19
  getProjectIgnoreMatcher,
24
20
  isExcludedDirName
25
- } from "./chunk-T54VJRAD.js";
21
+ } from "./chunk-C34ZXZ7O.js";
26
22
  import {
27
23
  notifyUserDegradation
28
- } from "./chunk-N2IRDBZI.js";
24
+ } from "./chunk-2BBLFX75.js";
25
+ import {
26
+ assertInstallAllowed,
27
+ getProjectTrustGeneration
28
+ } from "./chunk-ZANLILYD.js";
29
29
  import {
30
30
  writeFileAtomic
31
31
  } from "./chunk-2EECBNC5.js";
@@ -36,20 +36,20 @@ import {
36
36
  incrementDegradationCount,
37
37
  recordDegradation,
38
38
  recordDegradationOnce
39
- } from "./chunk-7ELY2CSM.js";
39
+ } from "./chunk-JAU72XNY.js";
40
40
  import {
41
41
  createNdjsonLogger,
42
42
  getGlobalPiLensLogDir,
43
43
  getMaxLogSizeMB,
44
44
  isTestMode
45
- } from "./chunk-VSMJK3ZJ.js";
45
+ } from "./chunk-AOHZU2BM.js";
46
46
  import {
47
47
  BoundedFifoMap
48
48
  } from "./chunk-ABBOA7UD.js";
49
49
  import {
50
50
  normalizeFilePath,
51
51
  normalizeLoggedPath
52
- } from "./chunk-G3RLJYA2.js";
52
+ } from "./chunk-N2H3ZPZY.js";
53
53
 
54
54
  // dist/clients/tree-sitter-logger.js
55
55
  import * as path from "node:path";
@@ -2,7 +2,7 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  collectSourceFiles,
4
4
  collectSourceFilesAsync
5
- } from "./chunk-USHG4DLH.js";
5
+ } from "./chunk-6C7JWPCP.js";
6
6
 
7
7
  // dist/clients/scan-utils.js
8
8
  function getSourceFiles(dir, _isTsProject) {
@@ -1,33 +1,34 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  getSourceFiles
4
- } from "./chunk-BNKLYOOO.js";
4
+ } from "./chunk-QILIYSJF.js";
5
5
  import {
6
6
  readDirEntriesSafe,
7
7
  shouldRecurseIntoDir
8
- } from "./chunk-H5EV3VMF.js";
8
+ } from "./chunk-5NGR67U5.js";
9
9
  import {
10
10
  getProjectIgnoreMatcher
11
- } from "./chunk-T54VJRAD.js";
11
+ } from "./chunk-C34ZXZ7O.js";
12
12
  import {
13
13
  CODE_KINDS,
14
14
  DOTNET_CSHARP_ROOT_MARKERS,
15
15
  DOTNET_FSHARP_ROOT_MARKERS,
16
16
  KIND_EXTENSIONS,
17
+ LEAN_ROOT_MARKERS,
17
18
  TERRAGRUNT_FILENAMES,
18
19
  detectFileKind
19
- } from "./chunk-64LU2OVH.js";
20
+ } from "./chunk-PHDMFAKM.js";
20
21
  import {
21
22
  findNearestDirWithAnyBasename,
22
23
  registerWorkspaceTopologyReset
23
- } from "./chunk-Z6BB4JLQ.js";
24
+ } from "./chunk-XVF2VVXP.js";
24
25
  import {
25
26
  BoundedLruCache
26
27
  } from "./chunk-ABBOA7UD.js";
27
28
  import {
28
29
  direntsHaveMarkerGlobMatch,
29
30
  normalizeMapKey
30
- } from "./chunk-G3RLJYA2.js";
31
+ } from "./chunk-N2H3ZPZY.js";
31
32
 
32
33
  // dist/clients/language-profile.js
33
34
  import * as fs from "node:fs";
@@ -87,6 +88,7 @@ var LANGUAGE_POLICY = {
87
88
  fsharp: { lspCapable: true },
88
89
  java: { lspCapable: true },
89
90
  kotlin: { lspCapable: true, startup: { defaults: ["ktlint"] } },
91
+ lean: { lspCapable: true },
90
92
  swift: { lspCapable: true },
91
93
  dart: { lspCapable: true },
92
94
  lua: { lspCapable: true },
@@ -205,6 +207,7 @@ var PRIMARY_DISPATCH_GROUPS = {
205
207
  runnerIds: ["lsp", "ktlint"],
206
208
  filterKinds: ["kotlin"]
207
209
  },
210
+ lean: { mode: "fallback", runnerIds: ["lsp"], filterKinds: ["lean"] },
208
211
  swift: {
209
212
  mode: "all",
210
213
  runnerIds: ["lsp", "swiftlint"],
@@ -313,6 +316,7 @@ var PROJECT_MARKERS_BY_KIND = {
313
316
  // spellings; java listed only the Groovy one.
314
317
  java: ["pom.xml", "build.gradle", "build.gradle.kts", ".classpath"],
315
318
  kotlin: ["build.gradle.kts", "build.gradle", "pom.xml"],
319
+ lean: LEAN_ROOT_MARKERS,
316
320
  swift: ["Package.swift"],
317
321
  dart: ["pubspec.yaml"],
318
322
  elixir: ["mix.exs"],
@@ -365,6 +369,7 @@ var ROOT_MARKERS_BY_KIND = {
365
369
  // workspace root.
366
370
  java: ["pom.xml", "build.gradle", "build.gradle.kts", ".classpath"],
367
371
  kotlin: ["build.gradle.kts", "build.gradle", "pom.xml"],
372
+ lean: LEAN_ROOT_MARKERS,
368
373
  swift: ["Package.swift"],
369
374
  dart: ["pubspec.yaml"],
370
375
  elixir: ["mix.exs"],
@@ -5,10 +5,10 @@ import {
5
5
  getMaxLogSizeMB,
6
6
  getTurnId,
7
7
  isTestMode
8
- } from "./chunk-VSMJK3ZJ.js";
8
+ } from "./chunk-AOHZU2BM.js";
9
9
  import {
10
10
  normalizeLoggedPath
11
- } from "./chunk-G3RLJYA2.js";
11
+ } from "./chunk-N2H3ZPZY.js";
12
12
 
13
13
  // dist/clients/latency-logger.js
14
14
  import * as path from "node:path";
@@ -118,80 +118,7 @@ function logLatency(entry) {
118
118
  });
119
119
  }
120
120
 
121
- // dist/clients/config-diagnostic-codes.js
122
- var STABILITY_TIER_KEY = "x-stability";
123
- var CONFIG_SCHEMA_ID = "https://raw.githubusercontent.com/apmantza/pi-lens/master/docs/schema/pi-lens-config-v1.json";
124
- var CONFIG_SCHEMA_ANCHOR_KEY = "$schema";
125
- function configDiagnosticMarker(code) {
126
- return `[${code}]`;
127
- }
128
- function withConfigDiagnosticCode(message, code) {
129
- const marker = configDiagnosticMarker(code);
130
- return message.includes(marker) ? message : `${message} ${marker}`;
131
- }
132
- var LSP_DEPRECATION_WINDOW = {
133
- deprecatedSince: "4.1.4",
134
- removeNotBefore: "5.0.0"
135
- };
136
- var LEGACY_KEY = {
137
- kind: "key",
138
- code: "PILENS_CFG_0002",
139
- ...LSP_DEPRECATION_WINDOW
140
- };
141
- var LEGACY_FILE = {
142
- kind: "file",
143
- code: "PILENS_CFG_0003",
144
- ...LSP_DEPRECATION_WINDOW
145
- };
146
- var DEPRECATED_CONFIG_SURFACES = [
147
- {
148
- ...LEGACY_KEY,
149
- surface: "servers",
150
- reason: "custom-server definitions move to the unified catalog schema; the bare string command + args form is replaced by the trust-gated ProcessSpec (#2416)."
151
- },
152
- {
153
- ...LEGACY_KEY,
154
- surface: "serverOverrides",
155
- reason: "per-server initializationOptions overrides fold into the catalog's field-wise merge, keyed by the same public server IDs (#2416)."
156
- },
157
- {
158
- ...LEGACY_KEY,
159
- surface: "disabledServers",
160
- reason: "replaced by the catalog's per-entry `enabled: false`, which carries monotonic deny precedence (#1416/#2415)."
161
- },
162
- {
163
- ...LEGACY_KEY,
164
- surface: "warmFiles",
165
- reason: "session warm-up seeds become a per-server catalog field rather than a config-root list (#2416)."
166
- },
167
- {
168
- ...LEGACY_FILE,
169
- surface: ".pi-lens/lsp.json",
170
- reason: "project LSP settings consolidate into `.pi-lens.json` under the unified envelope (#2426)."
171
- },
172
- {
173
- ...LEGACY_FILE,
174
- surface: "pi-lsp.json",
175
- reason: "pre-rename project location; superseded by `.pi-lens.json` (#2426)."
176
- },
177
- {
178
- ...LEGACY_FILE,
179
- surface: "pi-lens.json",
180
- reason: "undotted project-config basename; superseded by `.pi-lens.json` (#2426)."
181
- },
182
- {
183
- ...LEGACY_FILE,
184
- surface: "~/.pi-lens/lsp.json",
185
- reason: "global LSP settings consolidate into `~/.pi-lens/config.json` (#2426)."
186
- }
187
- ];
188
-
189
121
  export {
190
- STABILITY_TIER_KEY,
191
- CONFIG_SCHEMA_ID,
192
- CONFIG_SCHEMA_ANCHOR_KEY,
193
- withConfigDiagnosticCode,
194
- DEPRECATED_CONFIG_SURFACES,
195
122
  phaseStarted,
196
123
  phaseFinished,
197
124
  currentSessionRecordId,
@@ -1,67 +1,71 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  resolveManagedToolClient
4
- } from "./chunk-NFXP47RV.js";
4
+ } from "./chunk-GOYRYZ2R.js";
5
5
  import {
6
6
  biomeConfigArgs
7
- } from "./chunk-MGIWSROG.js";
8
- import "./chunk-IQZXOZ7S.js";
9
- import "./chunk-LNOMA3MP.js";
10
- import "./chunk-U52SAGRM.js";
11
- import "./chunk-KJCWXUUS.js";
7
+ } from "./chunk-RPLINGVB.js";
8
+ import "./chunk-ESBQHFMJ.js";
9
+ import "./chunk-34WSVGEM.js";
10
+ import "./chunk-VWCXW2E7.js";
11
+ import "./chunk-ZXYDQ3TZ.js";
12
+ import "./chunk-724UL2TJ.js";
12
13
  import "./chunk-QOZXJ4NA.js";
13
- import "./chunk-S6AMWKPC.js";
14
- import "./chunk-F5VLZHUW.js";
15
- import "./chunk-AXKPQ6ZI.js";
16
- import "./chunk-7BX5DWSA.js";
17
- import "./chunk-IUKPRZER.js";
14
+ import "./chunk-P7266HLM.js";
15
+ import "./chunk-52FUZI6K.js";
16
+ import "./chunk-SAEFPSB6.js";
17
+ import "./chunk-GAEGEPOC.js";
18
18
  import "./chunk-Z3CCVDUB.js";
19
19
  import "./chunk-2BEMIWEW.js";
20
- import "./chunk-LD7WFTRX.js";
20
+ import "./chunk-66VMUL7Q.js";
21
21
  import {
22
22
  resolveToolCwd
23
- } from "./chunk-IUR76K6A.js";
23
+ } from "./chunk-Q7DUK4LX.js";
24
24
  import {
25
- findGlobalBinary
26
- } from "./chunk-T4QZ6FEH.js";
27
- import "./chunk-D6YF5HKX.js";
25
+ findGlobalBinary,
26
+ findLocalBinAt,
27
+ localBinPath
28
+ } from "./chunk-AW7R2GWG.js";
28
29
  import {
30
+ getIsolatedNpxSpawnOptions,
29
31
  probeToolAsync
30
- } from "./chunk-CMU4RMJB.js";
32
+ } from "./chunk-RWWYJ623.js";
31
33
  import {
32
34
  classifyProbeFailure,
33
35
  createAvailabilityLatch,
34
36
  describeInstallAttempt,
35
37
  logAvailabilityDecision,
36
38
  startHostStallSampler
37
- } from "./chunk-O7HZX7CA.js";
38
- import "./chunk-VYKKMYVT.js";
39
- import "./chunk-BNKLYOOO.js";
40
- import "./chunk-USHG4DLH.js";
41
- import "./chunk-H5EV3VMF.js";
39
+ } from "./chunk-VRZP76YM.js";
40
+ import "./chunk-QOBUHWHX.js";
41
+ import "./chunk-QILIYSJF.js";
42
+ import "./chunk-6C7JWPCP.js";
43
+ import "./chunk-5NGR67U5.js";
42
44
  import {
43
45
  getGlobalPiLensDir,
44
46
  safeSpawnAsync
45
- } from "./chunk-T54VJRAD.js";
47
+ } from "./chunk-C34ZXZ7O.js";
46
48
  import {
47
49
  createSingleFlight
48
50
  } from "./chunk-BW5KFIQC.js";
49
51
  import "./chunk-QYF5S6P6.js";
50
52
  import {
51
53
  isFileKind
52
- } from "./chunk-64LU2OVH.js";
53
- import "./chunk-N2IRDBZI.js";
54
- import "./chunk-Z6BB4JLQ.js";
54
+ } from "./chunk-PHDMFAKM.js";
55
+ import "./chunk-2BBLFX75.js";
56
+ import "./chunk-XVF2VVXP.js";
57
+ import "./chunk-ZANLILYD.js";
55
58
  import "./chunk-2EECBNC5.js";
56
- import "./chunk-7ELY2CSM.js";
59
+ import "./chunk-JAU72XNY.js";
57
60
  import {
58
61
  createSubsystemLogger
59
- } from "./chunk-34OCDWOS.js";
60
- import "./chunk-3PNFWVHT.js";
61
- import "./chunk-VSMJK3ZJ.js";
62
+ } from "./chunk-XTMJ7XDT.js";
63
+ import "./chunk-JMYYOTQG.js";
64
+ import "./chunk-QQNQ7SJW.js";
65
+ import "./chunk-AOHZU2BM.js";
62
66
  import "./chunk-LJDODBBZ.js";
63
67
  import "./chunk-ABBOA7UD.js";
64
- import "./chunk-G3RLJYA2.js";
68
+ import "./chunk-N2H3ZPZY.js";
65
69
  import "./chunk-NXL4FFQQ.js";
66
70
 
67
71
  // dist/clients/biome-client.js
@@ -126,15 +130,13 @@ var BiomeClient = class {
126
130
  return { cmd: cached, args: [] };
127
131
  const isWin = process.platform === "win32";
128
132
  const piLensBin = path.join(getGlobalPiLensDir(), "tools", "node_modules", ".bin");
129
- const candidates = isWin ? [
130
- path.join(resolveCwd, "node_modules", ".bin", "biome.cmd"),
131
- path.join(resolveCwd, "node_modules", ".bin", "biome")
132
- ] : [path.join(resolveCwd, "node_modules", ".bin", "biome")];
133
- for (const p of candidates) {
134
- if (fs.existsSync(p)) {
135
- this.localBinaryByCwd.set(resolveCwd, p);
136
- return { cmd: p, args: [] };
137
- }
133
+ const localBiome = localBinPath(findLocalBinAt("biome", resolveCwd, {
134
+ windowsExt: ".cmd",
135
+ isWindows: isWin
136
+ }));
137
+ if (localBiome) {
138
+ this.localBinaryByCwd.set(resolveCwd, localBiome);
139
+ return { cmd: localBiome, args: [] };
138
140
  }
139
141
  if (this.autoInstalledBinaryPath) {
140
142
  return { cmd: this.autoInstalledBinaryPath, args: [] };
@@ -155,7 +157,14 @@ var BiomeClient = class {
155
157
  }
156
158
  async spawnBiomeAsync(args, timeout = 15e3, cwd) {
157
159
  const { cmd, args: prefix } = await this.getBiomeBinary(cwd);
158
- return safeSpawnAsync(cmd, [...prefix, ...args], { timeout, cwd });
160
+ return safeSpawnAsync(cmd, [...prefix, ...args], {
161
+ timeout,
162
+ cwd,
163
+ // ONE neutral-cwd seam for npx/bunx fallbacks (#4193, #4268 acceptance 3),
164
+ // so a project `.npmrc` is never read; a resolved binary keeps the
165
+ // project cwd it was given (biome.json discovery).
166
+ ...cmd === "npx" || cmd === "bunx" ? getIsolatedNpxSpawnOptions() : {}
167
+ });
159
168
  }
160
169
  /**
161
170
  * Ensure Biome is available, auto-installing if necessary.
@@ -8,23 +8,24 @@ import {
8
8
  getDefaultStartupTools,
9
9
  resolveLanguageRootForFile,
10
10
  rootMarkersForFile
11
- } from "./chunk-VYKKMYVT.js";
12
- import "./chunk-BNKLYOOO.js";
13
- import "./chunk-USHG4DLH.js";
14
- import "./chunk-H5EV3VMF.js";
15
- import "./chunk-T54VJRAD.js";
11
+ } from "./chunk-QOBUHWHX.js";
12
+ import "./chunk-QILIYSJF.js";
13
+ import "./chunk-6C7JWPCP.js";
14
+ import "./chunk-5NGR67U5.js";
15
+ import "./chunk-C34ZXZ7O.js";
16
16
  import "./chunk-QYF5S6P6.js";
17
- import "./chunk-64LU2OVH.js";
18
- import "./chunk-N2IRDBZI.js";
19
- import "./chunk-Z6BB4JLQ.js";
17
+ import "./chunk-PHDMFAKM.js";
18
+ import "./chunk-2BBLFX75.js";
19
+ import "./chunk-XVF2VVXP.js";
20
20
  import "./chunk-2EECBNC5.js";
21
- import "./chunk-7ELY2CSM.js";
22
- import "./chunk-34OCDWOS.js";
23
- import "./chunk-3PNFWVHT.js";
24
- import "./chunk-VSMJK3ZJ.js";
21
+ import "./chunk-JAU72XNY.js";
22
+ import "./chunk-XTMJ7XDT.js";
23
+ import "./chunk-JMYYOTQG.js";
24
+ import "./chunk-QQNQ7SJW.js";
25
+ import "./chunk-AOHZU2BM.js";
25
26
  import "./chunk-LJDODBBZ.js";
26
27
  import "./chunk-ABBOA7UD.js";
27
- import "./chunk-G3RLJYA2.js";
28
+ import "./chunk-N2H3ZPZY.js";
28
29
  import "./chunk-NXL4FFQQ.js";
29
30
  export {
30
31
  SUPPORTED_FILE_KINDS,
@@ -1,24 +1,24 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+ import {
3
+ loadProjectSnapshotWithoutWordIndex
4
+ } from "./chunk-ZXYDQ3TZ.js";
2
5
  import {
3
6
  resolvePackagePath
4
7
  } from "./chunk-QOZXJ4NA.js";
5
- import {
6
- loadProjectSnapshotWithoutWordIndex
7
- } from "./chunk-AXKPQ6ZI.js";
8
8
  import {
9
9
  TERRAGRUNT_FILENAMES
10
- } from "./chunk-64LU2OVH.js";
10
+ } from "./chunk-PHDMFAKM.js";
11
11
  import {
12
12
  recordDegradationOnce
13
- } from "./chunk-7ELY2CSM.js";
13
+ } from "./chunk-JAU72XNY.js";
14
14
  import {
15
15
  logLatency
16
- } from "./chunk-3PNFWVHT.js";
16
+ } from "./chunk-QQNQ7SJW.js";
17
17
  import {
18
18
  findNearestContaining,
19
19
  normalizeMapKey,
20
20
  walkUpDirs
21
- } from "./chunk-G3RLJYA2.js";
21
+ } from "./chunk-N2H3ZPZY.js";
22
22
 
23
23
  // dist/clients/tool-policy.js
24
24
  import * as fs from "node:fs";
@@ -1,12 +1,20 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
+ getGlobalPiLensDir,
3
4
  safeSpawnAsync
4
- } from "./chunk-T54VJRAD.js";
5
+ } from "./chunk-C34ZXZ7O.js";
5
6
  import {
6
7
  createSingleFlight
7
8
  } from "./chunk-BW5KFIQC.js";
8
9
 
9
10
  // dist/clients/tool-probe.js
11
+ import * as fs from "node:fs";
12
+ import { join } from "node:path";
13
+ function getIsolatedNpxSpawnOptions() {
14
+ const cwd = join(getGlobalPiLensDir(), "tools");
15
+ fs.mkdirSync(cwd, { recursive: true });
16
+ return { cwd, stripNpmConfig: true };
17
+ }
10
18
  async function probeToolAsync(command, args, options) {
11
19
  const { cwd: _strippedCwd, ...rest } = options ?? {};
12
20
  return safeSpawnAsync(command, [...args], { ...rest });
@@ -25,6 +33,7 @@ function createAvailabilityProbeFlight(options = {}) {
25
33
  }
26
34
 
27
35
  export {
36
+ getIsolatedNpxSpawnOptions,
28
37
  probeToolAsync,
29
38
  createAvailabilityProbeFlight
30
39
  };
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  getWordIndexMaxFilesDerived
4
- } from "./chunk-IUKPRZER.js";
4
+ } from "./chunk-GAEGEPOC.js";
5
5
  import {
6
6
  PathKeyedMap
7
7
  } from "./chunk-Z3CCVDUB.js";
@@ -15,27 +15,27 @@ import {
15
15
  } from "./chunk-QYF5S6P6.js";
16
16
  import {
17
17
  KIND_EXTENSIONS
18
- } from "./chunk-64LU2OVH.js";
18
+ } from "./chunk-PHDMFAKM.js";
19
19
  import {
20
20
  isTestFileName
21
- } from "./chunk-N2IRDBZI.js";
21
+ } from "./chunk-2BBLFX75.js";
22
22
  import {
23
23
  incrementDegradationCount
24
- } from "./chunk-7ELY2CSM.js";
24
+ } from "./chunk-JAU72XNY.js";
25
25
  import {
26
26
  logLatency
27
- } from "./chunk-3PNFWVHT.js";
27
+ } from "./chunk-QQNQ7SJW.js";
28
28
  import {
29
29
  createNdjsonLogger,
30
30
  getGlobalPiLensLogDir,
31
31
  getMaxLogSizeMB,
32
32
  isTestMode
33
- } from "./chunk-VSMJK3ZJ.js";
33
+ } from "./chunk-AOHZU2BM.js";
34
34
  import {
35
35
  isAtOrAboveHomeDir,
36
36
  normalizeEphemeralMapKey,
37
37
  normalizeFilePath
38
- } from "./chunk-G3RLJYA2.js";
38
+ } from "./chunk-N2H3ZPZY.js";
39
39
 
40
40
  // dist/clients/word-index.js
41
41
  import * as fs from "node:fs";
@@ -861,7 +861,7 @@ async function updateWordIndexDocumentAsyncUnsafe(index, doc, shouldContinue) {
861
861
  }
862
862
  var WORD_INDEX_MAX_BYTES = 512 * 1024;
863
863
  async function collectWordIndexDocs(root, shouldContinue = () => true, preflightFiles) {
864
- const { collectSourceFilesAsync } = await import("./chunk-J7WJZ6W7.js");
864
+ const { collectSourceFilesAsync } = await import("./chunk-4W4VLAPJ.js");
865
865
  const maxFiles = preflightFiles?.length ?? getWordIndexMaxFilesDerived(root);
866
866
  const files = preflightFiles ? preflightFiles.map((file) => file.path) : await collectSourceFilesAsync(root, {
867
867
  maxFiles,
@@ -910,7 +910,7 @@ async function refreshWordIndexIncrementally(index, root, shouldContinue = () =>
910
910
  timings: { sourceWalkMs: 0, statWalkMs: 0, refreshReadsMs: 0 }
911
911
  };
912
912
  }
913
- const { collectSourceFilesAsync } = await import("./chunk-J7WJZ6W7.js");
913
+ const { collectSourceFilesAsync } = await import("./chunk-4W4VLAPJ.js");
914
914
  const maxFiles = getWordIndexMaxFilesDerived(root);
915
915
  const sourceWalkStartMs = Date.now();
916
916
  const walked = await collectSourceFilesAsync(root, {
@@ -1743,7 +1743,7 @@ function triggerBackgroundWordIndexBuild(cwd, dbg, options = {}) {
1743
1743
  void (async () => {
1744
1744
  const startMs = Date.now();
1745
1745
  try {
1746
- const { loadProjectSnapshot, saveProjectSnapshot, PROJECT_SNAPSHOT_VERSION } = await import("./chunk-ALQRYH6O.js");
1746
+ const { loadProjectSnapshot, saveProjectSnapshot, PROJECT_SNAPSHOT_VERSION } = await import("./chunk-UXGETRP4.js");
1747
1747
  const docs = await collectWordIndexDocs(key);
1748
1748
  const index = await buildWordIndexAsync(docs);
1749
1749
  const existing = loadProjectSnapshot(key);
@@ -1809,7 +1809,7 @@ function getWordIndexPersistScheduler() {
1809
1809
  async function writeWordIndexSnapshot(cwd, index, dbg) {
1810
1810
  const persistStartedAt = Date.now();
1811
1811
  try {
1812
- const { loadProjectSnapshot, saveProjectSnapshot, PROJECT_SNAPSHOT_VERSION } = await import("./chunk-ALQRYH6O.js");
1812
+ const { loadProjectSnapshot, saveProjectSnapshot, PROJECT_SNAPSHOT_VERSION } = await import("./chunk-UXGETRP4.js");
1813
1813
  const existing = loadProjectSnapshot(cwd);
1814
1814
  const snapshot = existing ?? {
1815
1815
  version: PROJECT_SNAPSHOT_VERSION,