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
@@ -4,17 +4,17 @@ import {
4
4
  readCargoDependencyNames,
5
5
  readCargoPackageName,
6
6
  readCargoWorkspaceMembers
7
- } from "./chunk-P7266HLM.js";
7
+ } from "./chunk-MPNJLASA.js";
8
8
  import {
9
9
  getProjectIgnoreMatcher,
10
10
  isExcludedDirName
11
- } from "./chunk-C34ZXZ7O.js";
11
+ } from "./chunk-KUA4OJ5Y.js";
12
12
  import {
13
13
  getWorkspaceManifestMarkers
14
- } from "./chunk-XVF2VVXP.js";
14
+ } from "./chunk-5HSRT26B.js";
15
15
  import {
16
16
  normalizeMapKey
17
- } from "./chunk-N2H3ZPZY.js";
17
+ } from "./chunk-3RKP3FMS.js";
18
18
 
19
19
  // dist/clients/review-graph/workspace-modules.js
20
20
  import * as fs from "node:fs";
@@ -2,21 +2,21 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  computeImpactCascade,
4
4
  computeTransitiveImpact
5
- } from "./chunk-2B73ZPOK.js";
6
- import "./chunk-GBPP5P7X.js";
7
- import "./chunk-P7266HLM.js";
8
- import "./chunk-C34ZXZ7O.js";
9
- import "./chunk-2BBLFX75.js";
10
- import "./chunk-XVF2VVXP.js";
5
+ } from "./chunk-KN35K52N.js";
6
+ import "./chunk-XTBDCR27.js";
7
+ import "./chunk-MPNJLASA.js";
8
+ import "./chunk-KUA4OJ5Y.js";
9
+ import "./chunk-J6MPGQTS.js";
10
+ import "./chunk-5HSRT26B.js";
11
11
  import "./chunk-2EECBNC5.js";
12
- import "./chunk-JAU72XNY.js";
13
- import "./chunk-XTMJ7XDT.js";
12
+ import "./chunk-J64T55EI.js";
13
+ import "./chunk-POMLXPMY.js";
14
14
  import "./chunk-JMYYOTQG.js";
15
- import "./chunk-QQNQ7SJW.js";
16
- import "./chunk-AOHZU2BM.js";
15
+ import "./chunk-QBFBRV2B.js";
16
+ import "./chunk-YNE3RP52.js";
17
17
  import "./chunk-LJDODBBZ.js";
18
18
  import "./chunk-ABBOA7UD.js";
19
- import "./chunk-N2H3ZPZY.js";
19
+ import "./chunk-3RKP3FMS.js";
20
20
  import "./chunk-NXL4FFQQ.js";
21
21
  export {
22
22
  computeImpactCascade,
@@ -44,26 +44,27 @@ import {
44
44
  setProjectSnapshotPromotionSeamForTests,
45
45
  terminateProjectSnapshotPersistWorkerForTests,
46
46
  waitForProjectSnapshotPersistsForTests
47
- } from "./chunk-ZXYDQ3TZ.js";
48
- import "./chunk-SAEFPSB6.js";
49
- import "./chunk-GAEGEPOC.js";
47
+ } from "./chunk-T7FEBKXN.js";
48
+ import "./chunk-W66O5E25.js";
49
+ import "./chunk-7HXE67BN.js";
50
50
  import "./chunk-Z3CCVDUB.js";
51
51
  import "./chunk-2BEMIWEW.js";
52
- import "./chunk-C34ZXZ7O.js";
52
+ import "./chunk-IJYGIDF4.js";
53
+ import "./chunk-KUA4OJ5Y.js";
53
54
  import "./chunk-BW5KFIQC.js";
54
55
  import "./chunk-QYF5S6P6.js";
55
- import "./chunk-PHDMFAKM.js";
56
- import "./chunk-2BBLFX75.js";
57
- import "./chunk-XVF2VVXP.js";
56
+ import "./chunk-DUO2TU77.js";
57
+ import "./chunk-J6MPGQTS.js";
58
+ import "./chunk-5HSRT26B.js";
58
59
  import "./chunk-2EECBNC5.js";
59
- import "./chunk-JAU72XNY.js";
60
- import "./chunk-XTMJ7XDT.js";
60
+ import "./chunk-J64T55EI.js";
61
+ import "./chunk-POMLXPMY.js";
61
62
  import "./chunk-JMYYOTQG.js";
62
- import "./chunk-QQNQ7SJW.js";
63
- import "./chunk-AOHZU2BM.js";
63
+ import "./chunk-QBFBRV2B.js";
64
+ import "./chunk-YNE3RP52.js";
64
65
  import "./chunk-LJDODBBZ.js";
65
66
  import "./chunk-ABBOA7UD.js";
66
- import "./chunk-N2H3ZPZY.js";
67
+ import "./chunk-3RKP3FMS.js";
67
68
  import "./chunk-NXL4FFQQ.js";
68
69
  export {
69
70
  PROJECT_SNAPSHOT_MAX_WARM_ROOTS,
@@ -1,24 +1,24 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  loadProjectSnapshotWithoutWordIndex
4
- } from "./chunk-ZXYDQ3TZ.js";
4
+ } from "./chunk-T7FEBKXN.js";
5
5
  import {
6
6
  resolvePackagePath
7
- } from "./chunk-QOZXJ4NA.js";
7
+ } from "./chunk-FM4RDMKT.js";
8
8
  import {
9
9
  TERRAGRUNT_FILENAMES
10
- } from "./chunk-PHDMFAKM.js";
10
+ } from "./chunk-DUO2TU77.js";
11
11
  import {
12
12
  recordDegradationOnce
13
- } from "./chunk-JAU72XNY.js";
13
+ } from "./chunk-J64T55EI.js";
14
14
  import {
15
15
  logLatency
16
- } from "./chunk-QQNQ7SJW.js";
16
+ } from "./chunk-QBFBRV2B.js";
17
17
  import {
18
18
  findNearestContaining,
19
19
  normalizeMapKey,
20
20
  walkUpDirs
21
- } from "./chunk-N2H3ZPZY.js";
21
+ } from "./chunk-3RKP3FMS.js";
22
22
 
23
23
  // dist/clients/tool-policy.js
24
24
  import * as fs from "node:fs";
@@ -54,56 +54,59 @@ import {
54
54
  reviewGraphCachePath,
55
55
  terminateReviewGraphPersistWorkerForTests,
56
56
  waitForReviewGraphPersistsForTests
57
- } from "./chunk-PV6LR5P5.js";
57
+ } from "./chunk-XHJBS436.js";
58
58
  import "./chunk-3MED75HT.js";
59
- import "./chunk-CO2G5PHH.js";
60
- import "./chunk-IBGIOBEE.js";
61
- import "./chunk-PNQDPDRC.js";
59
+ import "./chunk-RVK72CZX.js";
60
+ import "./chunk-IWDLU6K3.js";
62
61
  import "./chunk-XIMYZ3JA.js";
63
- import "./chunk-ESBQHFMJ.js";
64
- import "./chunk-34WSVGEM.js";
65
- import "./chunk-VWCXW2E7.js";
66
- import "./chunk-ZXYDQ3TZ.js";
62
+ import "./chunk-3DA2JDOL.js";
63
+ import "./chunk-HWCCCQNX.js";
64
+ import "./chunk-CUHSHSB6.js";
65
+ import "./chunk-UA7ZXYDR.js";
66
+ import "./chunk-T7FEBKXN.js";
67
+ import "./chunk-SRYEJNES.js";
67
68
  import "./chunk-5W3R6LFT.js";
68
- import "./chunk-QHJ6DQ2R.js";
69
+ import "./chunk-V35JG4JB.js";
70
+ import "./chunk-XTBDCR27.js";
71
+ import "./chunk-MPNJLASA.js";
72
+ import "./chunk-US7ECLD7.js";
69
73
  import "./chunk-Z54ZSOBZ.js";
70
- import "./chunk-724UL2TJ.js";
71
- import "./chunk-QOZXJ4NA.js";
72
- import "./chunk-GBPP5P7X.js";
73
- import "./chunk-P7266HLM.js";
74
- import "./chunk-MQLUAEOC.js";
75
- import "./chunk-52FUZI6K.js";
76
- import "./chunk-SAEFPSB6.js";
77
- import "./chunk-GAEGEPOC.js";
74
+ import "./chunk-GXFV6MYU.js";
75
+ import "./chunk-FM4RDMKT.js";
76
+ import "./chunk-RMLC67LF.js";
77
+ import "./chunk-W66O5E25.js";
78
+ import "./chunk-7HXE67BN.js";
78
79
  import "./chunk-Z3CCVDUB.js";
79
- import "./chunk-L3BLXZG7.js";
80
+ import "./chunk-KAPJINKN.js";
81
+ import "./chunk-AGSS7277.js";
80
82
  import "./chunk-2BEMIWEW.js";
81
- import "./chunk-66VMUL7Q.js";
82
- import "./chunk-Q7DUK4LX.js";
83
- import "./chunk-AW7R2GWG.js";
84
- import "./chunk-RWWYJ623.js";
85
- import "./chunk-VRZP76YM.js";
86
- import "./chunk-QOBUHWHX.js";
87
- import "./chunk-QILIYSJF.js";
88
- import "./chunk-6C7JWPCP.js";
89
- import "./chunk-5NGR67U5.js";
90
- import "./chunk-C34ZXZ7O.js";
83
+ import "./chunk-IJYGIDF4.js";
84
+ import "./chunk-GAQ7OQG6.js";
85
+ import "./chunk-DEL2U6CM.js";
86
+ import "./chunk-5VSF4UUQ.js";
87
+ import "./chunk-3KAZU3VR.js";
88
+ import "./chunk-P63GXC37.js";
89
+ import "./chunk-HRNHZA3N.js";
90
+ import "./chunk-TLX72JTG.js";
91
+ import "./chunk-DGUKIYSI.js";
92
+ import "./chunk-XBJVAEEO.js";
93
+ import "./chunk-KUA4OJ5Y.js";
91
94
  import "./chunk-BW5KFIQC.js";
92
95
  import "./chunk-QYF5S6P6.js";
93
- import "./chunk-PHDMFAKM.js";
94
- import "./chunk-2BBLFX75.js";
95
- import "./chunk-XVF2VVXP.js";
96
- import "./chunk-ZANLILYD.js";
96
+ import "./chunk-DUO2TU77.js";
97
+ import "./chunk-J6MPGQTS.js";
98
+ import "./chunk-5HSRT26B.js";
99
+ import "./chunk-M2IFVFWU.js";
97
100
  import "./chunk-2EECBNC5.js";
98
- import "./chunk-JAU72XNY.js";
99
- import "./chunk-XTMJ7XDT.js";
101
+ import "./chunk-J64T55EI.js";
102
+ import "./chunk-POMLXPMY.js";
100
103
  import "./chunk-JMYYOTQG.js";
101
- import "./chunk-QQNQ7SJW.js";
102
- import "./chunk-AOHZU2BM.js";
104
+ import "./chunk-QBFBRV2B.js";
105
+ import "./chunk-YNE3RP52.js";
103
106
  import "./chunk-LJDODBBZ.js";
104
- import "./chunk-CHOW74WE.js";
107
+ import "./chunk-CYRKQRPM.js";
105
108
  import "./chunk-ABBOA7UD.js";
106
- import "./chunk-N2H3ZPZY.js";
109
+ import "./chunk-3RKP3FMS.js";
107
110
  import "./chunk-NXL4FFQQ.js";
108
111
  export {
109
112
  GRAPH_PERSIST_MAX_ELEMENTS_DEFAULT,
@@ -1,27 +1,29 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+ import {
3
+ scannerReportParentDir
4
+ } from "./chunk-ED36RF6Y.js";
2
5
  import {
3
6
  getScratchTreeGlobPatterns,
4
7
  nestedWorktreeOffsets
5
- } from "./chunk-VCHXCQFG.js";
8
+ } from "./chunk-BWD5EPKO.js";
6
9
  import {
7
10
  SecurityScanClient
8
- } from "./chunk-IXXDFY73.js";
11
+ } from "./chunk-TIQ2PKDW.js";
9
12
  import {
10
13
  safeSpawnAsync
11
- } from "./chunk-C34ZXZ7O.js";
14
+ } from "./chunk-KUA4OJ5Y.js";
12
15
  import {
13
16
  loadPiLensProjectConfig
14
- } from "./chunk-2BBLFX75.js";
17
+ } from "./chunk-J6MPGQTS.js";
15
18
  import {
16
19
  incrementDegradationCount
17
- } from "./chunk-JAU72XNY.js";
20
+ } from "./chunk-J64T55EI.js";
18
21
  import {
19
22
  toPosix
20
- } from "./chunk-N2H3ZPZY.js";
23
+ } from "./chunk-3RKP3FMS.js";
21
24
 
22
25
  // dist/clients/trivy-client.js
23
26
  import * as fs from "node:fs";
24
- import * as os from "node:os";
25
27
  import * as path from "node:path";
26
28
  import { mkdtempSync } from "node:fs";
27
29
  var EMPTY_RESULT = {
@@ -178,7 +180,7 @@ var TrivyClient = class extends SecurityScanClient {
178
180
  const scannedAt = (/* @__PURE__ */ new Date()).toISOString();
179
181
  const bin = this.binaryPath ?? "trivy";
180
182
  const severities = resolveSeverityFloor(cwd);
181
- const outDir = mkdtempSync(path.join(os.tmpdir(), "pi-lens-trivy-"));
183
+ const outDir = mkdtempSync(path.join(scannerReportParentDir(), "pi-lens-trivy-"));
182
184
  const reportPath = path.join(outDir, "trivy-report.json");
183
185
  try {
184
186
  const result = await safeSpawnAsync(bin, [
@@ -3,7 +3,7 @@ import {
3
3
  isUnderDir,
4
4
  normalizeFilePath,
5
5
  pathsEqual
6
- } from "./chunk-N2H3ZPZY.js";
6
+ } from "./chunk-3RKP3FMS.js";
7
7
 
8
8
  // dist/clients/env-utils.js
9
9
  function isTestMode() {
@@ -2,12 +2,16 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  getToolCommandSpec,
4
4
  shouldAutoInstallTool
5
- } from "./chunk-RPLINGVB.js";
5
+ } from "./chunk-Y6GZHWSJ.js";
6
6
  import {
7
7
  BUILTIN_SERVER_RUNNER_COVERS,
8
8
  getServersForFileWithConfig,
9
- isAuxiliary
10
- } from "./chunk-ESBQHFMJ.js";
9
+ isAuxiliary,
10
+ resolveAnalysisRootPath
11
+ } from "./chunk-3DA2JDOL.js";
12
+ import {
13
+ emitBounded
14
+ } from "./chunk-CUHSHSB6.js";
11
15
  import {
12
16
  PathKeyedMap
13
17
  } from "./chunk-Z3CCVDUB.js";
@@ -20,10 +24,10 @@ import {
20
24
  isSpawnableCommand,
21
25
  logSessionStart,
22
26
  resetPathWalkMemo
23
- } from "./chunk-66VMUL7Q.js";
27
+ } from "./chunk-GAQ7OQG6.js";
24
28
  import {
25
29
  resolveToolCwd
26
- } from "./chunk-Q7DUK4LX.js";
30
+ } from "./chunk-DEL2U6CM.js";
27
31
  import {
28
32
  VENDOR_BIN_DIRS,
29
33
  VENV_BIN_DIRS,
@@ -31,11 +35,11 @@ import {
31
35
  findLocalBinAt,
32
36
  findLocalBinUpwards,
33
37
  localBinPath
34
- } from "./chunk-AW7R2GWG.js";
38
+ } from "./chunk-5VSF4UUQ.js";
35
39
  import {
36
40
  createAvailabilityProbeFlight,
37
41
  probeToolAsync
38
- } from "./chunk-RWWYJ623.js";
42
+ } from "./chunk-3KAZU3VR.js";
39
43
  import {
40
44
  classifyProbeFailure,
41
45
  createAvailabilityLatch,
@@ -45,28 +49,31 @@ import {
45
49
  logAvailabilityDecision,
46
50
  startHostStallSampler,
47
51
  transientRetryDelayMs
48
- } from "./chunk-VRZP76YM.js";
52
+ } from "./chunk-P63GXC37.js";
49
53
  import {
50
54
  createGenerationSource,
51
55
  getGlobalPiLensDir,
52
56
  isInSpawnTimeoutCooldown,
57
+ resolveWindowsCommandForEnvironment,
53
58
  safeSpawnAsync
54
- } from "./chunk-C34ZXZ7O.js";
59
+ } from "./chunk-KUA4OJ5Y.js";
55
60
  import {
56
61
  getProjectTrustState
57
- } from "./chunk-ZANLILYD.js";
62
+ } from "./chunk-M2IFVFWU.js";
58
63
  import {
59
64
  compareOrdinal,
60
65
  incrementDegradationCount
61
- } from "./chunk-JAU72XNY.js";
66
+ } from "./chunk-J64T55EI.js";
62
67
  import {
68
+ isUnderDir,
63
69
  normalizeEphemeralMapKey,
64
70
  normalizeMapKey
65
- } from "./chunk-N2H3ZPZY.js";
71
+ } from "./chunk-3RKP3FMS.js";
66
72
 
67
73
  // dist/clients/dispatch/runners/utils/runner-helpers.js
68
74
  import * as fs from "node:fs";
69
75
  import * as path from "node:path";
76
+ import { delimiter, resolve as resolveCommandPath } from "node:path";
70
77
  import { fileURLToPath } from "node:url";
71
78
  function lspPrimaryCoversFile(ctx, runnerId) {
72
79
  if (ctx.pi?.getFlag?.("no-lsp"))
@@ -189,14 +196,58 @@ async function findManagedReleaseBinary(tool, verificationArgs = ["--version"])
189
196
  const verdict = await verifyManagedCandidate(candidate, verificationArgs);
190
197
  return verdict === "ok" || verdict === "unverified" ? candidate : null;
191
198
  }
192
- function createVenvFinder(command, windowsExt = "", verificationArgs = ["--version"]) {
199
+ function resolveAdoptedRootCommand(command, ctx, cwd) {
200
+ const candidates = managedNodeToolCandidates(command);
201
+ let selected = candidates.find((candidate) => candidate && fs.existsSync(candidate));
202
+ if (!selected) {
203
+ if (process.platform === "win32") {
204
+ selected = resolveWindowsCommandForEnvironment(command, cwd, process.env)?.resolvedPath;
205
+ } else {
206
+ selected = (process.env.PATH ?? "").split(delimiter).map((dir) => resolveCommandPath(cwd, dir, command)).find((candidate) => {
207
+ try {
208
+ fs.accessSync(candidate, fs.constants.X_OK);
209
+ return fs.statSync(candidate).isFile();
210
+ } catch {
211
+ return false;
212
+ }
213
+ });
214
+ }
215
+ }
216
+ if (!selected)
217
+ return null;
218
+ try {
219
+ const binary = fs.realpathSync.native(selected);
220
+ const session = ctx.projectRoot ?? ctx.cwd;
221
+ const adopted = resolveAnalysisRootPath(ctx.filePath, session);
222
+ if (!adopted)
223
+ return null;
224
+ const roots = [adopted, session].map((root) => fs.realpathSync.native(root));
225
+ if (roots.some((root) => binary === root || isUnderDir(binary, root) || isUnderDir(selected, root))) {
226
+ emitBounded("adopted_root_binary_refused", `${ctx.filePath}:${command}:${binary}`, {
227
+ filePath: ctx.filePath,
228
+ durationMs: 0,
229
+ metadata: { command, binary }
230
+ }, {
231
+ ledgerKind: "adopted-root-binary-refused",
232
+ risingEdgePer: "identity"
233
+ });
234
+ return null;
235
+ }
236
+ return binary;
237
+ } catch {
238
+ return null;
239
+ }
240
+ }
241
+ function createVenvFinder(command, windowsExt = "", verificationArgs = ["--version"], allowProjectLocal = true) {
193
242
  return async (cwd) => {
194
- const venvBin = localBinPath(findLocalBinAt(command, cwd, {
195
- windowsExt,
196
- binDirs: VENV_BIN_DIRS
197
- }));
198
- if (venvBin)
199
- return { path: venvBin, rung: "venv" };
243
+ if (allowProjectLocal) {
244
+ const venvBin = localBinPath(findLocalBinAt(command, cwd, {
245
+ windowsExt,
246
+ binDirs: VENV_BIN_DIRS
247
+ }));
248
+ if (venvBin)
249
+ return { path: venvBin, rung: "venv" };
250
+ }
200
251
  const managed = await findManagedNodeToolBinary(command, verificationArgs);
201
252
  if (managed)
202
253
  return { path: managed, rung: "managed-dir" };
@@ -434,7 +485,7 @@ function createAvailabilityChecker(command, windowsExt = "", versionArgs = ["--v
434
485
  const inFlightByCwd = new PathKeyedMap(normalizeEphemeralMapKey);
435
486
  let checkerGeneration = availabilityGeneration.current();
436
487
  let checkerFlightGeneration = 0;
437
- const findCommand = createVenvFinder(command, windowsExt, versionArgs);
488
+ const findCommand = createVenvFinder(command, windowsExt, versionArgs, options.allowProjectLocal !== false);
438
489
  function ensureCurrentGeneration() {
439
490
  if (checkerGeneration === availabilityGeneration.current())
440
491
  return;
@@ -982,6 +1033,7 @@ export {
982
1033
  lspPrimaryCoversFile,
983
1034
  coveringLaneAvailable,
984
1035
  findManagedNodeToolBinary,
1036
+ resolveAdoptedRootCommand,
985
1037
  resolveManagedToolClient,
986
1038
  getManagedToolEnvironment,
987
1039
  discoverManagedTool,
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  isMutatingToolName
4
- } from "./chunk-IBGIOBEE.js";
4
+ } from "./chunk-IWDLU6K3.js";
5
5
  import {
6
6
  normalizeMapKey
7
- } from "./chunk-N2H3ZPZY.js";
7
+ } from "./chunk-3RKP3FMS.js";
8
8
 
9
9
  // dist/clients/agent-behavior-client.js
10
10
  var READ_OPS = /* @__PURE__ */ new Set(["read", "bash", "grep", "glob", "find", "rg"]);
@@ -52,42 +52,43 @@ import {
52
52
  tryLazyInstallFormatterTool,
53
53
  typstyleFormatter,
54
54
  zigFormatter
55
- } from "./chunk-ARJ6PLFH.js";
56
- import "./chunk-OXXKQCSV.js";
57
- import "./chunk-FC4RP4I2.js";
58
- import "./chunk-RPLINGVB.js";
59
- import "./chunk-ZXYDQ3TZ.js";
60
- import "./chunk-QOZXJ4NA.js";
61
- import "./chunk-P7266HLM.js";
62
- import "./chunk-SAEFPSB6.js";
63
- import "./chunk-GAEGEPOC.js";
55
+ } from "./chunk-GSM5UU7A.js";
56
+ import "./chunk-UBOQLVT2.js";
57
+ import "./chunk-6HWVI6MI.js";
58
+ import "./chunk-Y6GZHWSJ.js";
59
+ import "./chunk-T7FEBKXN.js";
60
+ import "./chunk-MPNJLASA.js";
61
+ import "./chunk-FM4RDMKT.js";
62
+ import "./chunk-W66O5E25.js";
63
+ import "./chunk-7HXE67BN.js";
64
64
  import "./chunk-Z3CCVDUB.js";
65
65
  import "./chunk-2BEMIWEW.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";
66
+ import "./chunk-IJYGIDF4.js";
67
+ import "./chunk-GAQ7OQG6.js";
68
+ import "./chunk-DEL2U6CM.js";
69
+ import "./chunk-5VSF4UUQ.js";
70
+ import "./chunk-3KAZU3VR.js";
71
+ import "./chunk-P63GXC37.js";
72
+ import "./chunk-HRNHZA3N.js";
73
+ import "./chunk-TLX72JTG.js";
74
+ import "./chunk-DGUKIYSI.js";
75
+ import "./chunk-XBJVAEEO.js";
76
+ import "./chunk-KUA4OJ5Y.js";
76
77
  import "./chunk-BW5KFIQC.js";
77
78
  import "./chunk-QYF5S6P6.js";
78
- import "./chunk-PHDMFAKM.js";
79
- import "./chunk-2BBLFX75.js";
80
- import "./chunk-XVF2VVXP.js";
81
- import "./chunk-ZANLILYD.js";
79
+ import "./chunk-DUO2TU77.js";
80
+ import "./chunk-J6MPGQTS.js";
81
+ import "./chunk-5HSRT26B.js";
82
+ import "./chunk-M2IFVFWU.js";
82
83
  import "./chunk-2EECBNC5.js";
83
- import "./chunk-JAU72XNY.js";
84
- import "./chunk-XTMJ7XDT.js";
84
+ import "./chunk-J64T55EI.js";
85
+ import "./chunk-POMLXPMY.js";
85
86
  import "./chunk-JMYYOTQG.js";
86
- import "./chunk-QQNQ7SJW.js";
87
- import "./chunk-AOHZU2BM.js";
87
+ import "./chunk-QBFBRV2B.js";
88
+ import "./chunk-YNE3RP52.js";
88
89
  import "./chunk-LJDODBBZ.js";
89
90
  import "./chunk-ABBOA7UD.js";
90
- import "./chunk-N2H3ZPZY.js";
91
+ import "./chunk-3RKP3FMS.js";
91
92
  import "./chunk-NXL4FFQQ.js";
92
93
  export {
93
94
  ALL_FORMATTERS,