pi-lens 4.4.3 → 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 +281 -0
  2. package/README.md +13 -1
  3. package/dist/{chunk-SS36ZX4J.js → chunk-24AKHFGP.js} +6 -6
  4. package/dist/{chunk-JSQFTSC6.js → chunk-2FN63LPV.js} +11 -11
  5. package/dist/{chunk-5UCAH366.js → chunk-2KXTHF3M.js} +20 -20
  6. package/dist/{chunk-EU63SDCG.js → chunk-3DA2JDOL.js} +367 -281
  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-MXGY6KPT.js → chunk-5IUSNGOC.js} +15 -15
  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-6STA6Z7I.js → chunk-5WRPDP2A.js} +18 -18
  16. package/dist/{chunk-YIUAVF7E.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-H6MF6EVN.js → chunk-CT4MN5IU.js} +1200 -230
  25. package/dist/{chunk-FCSOVF55.js → chunk-CUHSHSB6.js} +6 -6
  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-CSHFH5IN.js → chunk-ED36RF6Y.js} +1 -1
  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-ACXEQZOU.js → chunk-GAQ7OQG6.js} +31 -28
  35. package/dist/{chunk-XAGLWMJ4.js → chunk-GL5LUMZE.js} +23 -23
  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-3W7IEVVL.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-SQ4TVJBR.js → chunk-IUE7SSKV.js} +7 -7
  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-FMSO6RDZ.js → chunk-JW3YWBVB.js} +15 -15
  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-XIJZVPD5.js → chunk-MBKQHGA7.js} +15 -15
  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-ZWFS3OEF.js → chunk-N5FLEO7W.js} +33 -32
  66. package/dist/{chunk-3JNKMP3B.js → chunk-O4NWQT6I.js} +4 -4
  67. package/dist/{chunk-T6CPIZNT.js → chunk-OHKJ7PQF.js} +33 -32
  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-CMMHNUZ2.js → chunk-R3T7CLQ2.js} +60 -38
  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-OCAGUNBC.js → chunk-RKKOYPRA.js} +12 -12
  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-M6HSLBWY.js → chunk-RVK72CZX.js} +6507 -7514
  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-VCO24T4L.js → chunk-SD4I7ZO4.js} +14 -14
  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-3EFKIGZN.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-AB3YYG6N.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-YYOIQFRS.js → chunk-XHJBS436.js} +122 -44
  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-2VUQMUMT.js → chunk-YCWYO6TQ.js} +41 -38
  107. package/dist/{chunk-77M37OKR.js → chunk-YH5MVY2U.js} +7 -7
  108. package/dist/{chunk-AOHZU2BM.js → chunk-YNE3RP52.js} +1 -1
  109. package/dist/{chunk-YSZNHOBY.js → chunk-ZHH37KZL.js} +12 -12
  110. package/dist/{chunk-ZGDGW2V3.js → chunk-ZIVJBOO3.js} +2 -2
  111. package/dist/{chunk-RXCOMYPY.js → chunk-ZVUL7QYY.js} +29 -28
  112. package/dist/index.js +11052 -5852
  113. package/dist/mcp/analyze-cli.js +10 -9
  114. package/dist/mcp/cli.js +41 -38
  115. package/dist/mcp/server.js +1120 -474
  116. package/dist/mcp/worker.js +61 -58
  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 +97 -7
  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 +112 -4
  129. package/docs/pi-lens-subagent.md +22 -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-3YN6V5TV.js +0 -85
  137. package/dist/chunk-466Z26MG.js +0 -30
  138. package/dist/chunk-EC47DWFA.js +0 -56
  139. package/dist/chunk-KDERNTCQ.js +0 -28
  140. package/dist/chunk-KSX3TXSZ.js +0 -69
  141. package/dist/chunk-LOP6GRPH.js +0 -31
  142. package/dist/chunk-UOPVJQ4N.js +0 -103
  143. /package/dist/{chunk-FC4RP4I2.js → chunk-6HWVI6MI.js} +0 -0
@@ -1,72 +1,73 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  resolveManagedToolClient
4
- } from "./chunk-YSZNHOBY.js";
4
+ } from "./chunk-ZHH37KZL.js";
5
5
  import {
6
6
  biomeConfigArgs
7
- } from "./chunk-RPLINGVB.js";
8
- import "./chunk-EU63SDCG.js";
9
- import "./chunk-VWCXW2E7.js";
10
- import "./chunk-FCSOVF55.js";
11
- import "./chunk-PNQDPDRC.js";
12
- import "./chunk-ZXYDQ3TZ.js";
13
- import "./chunk-724UL2TJ.js";
14
- import "./chunk-QOZXJ4NA.js";
15
- import "./chunk-P7266HLM.js";
16
- import "./chunk-52FUZI6K.js";
17
- import "./chunk-SAEFPSB6.js";
18
- import "./chunk-GAEGEPOC.js";
7
+ } from "./chunk-Y6GZHWSJ.js";
8
+ import "./chunk-3DA2JDOL.js";
9
+ import "./chunk-HWCCCQNX.js";
10
+ import "./chunk-CUHSHSB6.js";
11
+ import "./chunk-UA7ZXYDR.js";
12
+ import "./chunk-T7FEBKXN.js";
13
+ import "./chunk-MPNJLASA.js";
14
+ import "./chunk-GXFV6MYU.js";
15
+ import "./chunk-FM4RDMKT.js";
16
+ import "./chunk-RMLC67LF.js";
17
+ import "./chunk-W66O5E25.js";
18
+ import "./chunk-7HXE67BN.js";
19
19
  import "./chunk-Z3CCVDUB.js";
20
20
  import "./chunk-2BEMIWEW.js";
21
- import "./chunk-ACXEQZOU.js";
21
+ import "./chunk-IJYGIDF4.js";
22
+ import "./chunk-GAQ7OQG6.js";
22
23
  import {
23
24
  resolveToolCwd
24
- } from "./chunk-Q7DUK4LX.js";
25
+ } from "./chunk-DEL2U6CM.js";
25
26
  import {
26
27
  findGlobalBinary,
27
28
  findLocalBinAt,
28
29
  localBinPath
29
- } from "./chunk-AW7R2GWG.js";
30
+ } from "./chunk-5VSF4UUQ.js";
30
31
  import {
31
32
  getIsolatedNpxSpawnOptions,
32
33
  probeToolAsync
33
- } from "./chunk-RWWYJ623.js";
34
+ } from "./chunk-3KAZU3VR.js";
34
35
  import {
35
36
  classifyProbeFailure,
36
37
  createAvailabilityLatch,
37
38
  describeInstallAttempt,
38
39
  logAvailabilityDecision,
39
40
  startHostStallSampler
40
- } from "./chunk-VRZP76YM.js";
41
- import "./chunk-QOBUHWHX.js";
42
- import "./chunk-QILIYSJF.js";
43
- import "./chunk-6C7JWPCP.js";
44
- import "./chunk-5NGR67U5.js";
41
+ } from "./chunk-P63GXC37.js";
42
+ import "./chunk-HRNHZA3N.js";
43
+ import "./chunk-TLX72JTG.js";
44
+ import "./chunk-DGUKIYSI.js";
45
+ import "./chunk-XBJVAEEO.js";
45
46
  import {
46
47
  getGlobalPiLensDir,
47
48
  safeSpawnAsync
48
- } from "./chunk-C34ZXZ7O.js";
49
+ } from "./chunk-KUA4OJ5Y.js";
49
50
  import {
50
51
  createSingleFlight
51
52
  } from "./chunk-BW5KFIQC.js";
52
53
  import "./chunk-QYF5S6P6.js";
53
54
  import {
54
55
  isFileKind
55
- } from "./chunk-PHDMFAKM.js";
56
- import "./chunk-2BBLFX75.js";
57
- import "./chunk-XVF2VVXP.js";
58
- import "./chunk-ZANLILYD.js";
56
+ } from "./chunk-DUO2TU77.js";
57
+ import "./chunk-J6MPGQTS.js";
58
+ import "./chunk-5HSRT26B.js";
59
+ import "./chunk-M2IFVFWU.js";
59
60
  import "./chunk-2EECBNC5.js";
60
- import "./chunk-JAU72XNY.js";
61
+ import "./chunk-J64T55EI.js";
61
62
  import {
62
63
  createSubsystemLogger
63
- } from "./chunk-XTMJ7XDT.js";
64
+ } from "./chunk-POMLXPMY.js";
64
65
  import "./chunk-JMYYOTQG.js";
65
- import "./chunk-QQNQ7SJW.js";
66
- import "./chunk-AOHZU2BM.js";
66
+ import "./chunk-QBFBRV2B.js";
67
+ import "./chunk-YNE3RP52.js";
67
68
  import "./chunk-LJDODBBZ.js";
68
69
  import "./chunk-ABBOA7UD.js";
69
- import "./chunk-N2H3ZPZY.js";
70
+ import "./chunk-3RKP3FMS.js";
70
71
  import "./chunk-NXL4FFQQ.js";
71
72
 
72
73
  // dist/clients/biome-client.js
@@ -4,10 +4,10 @@ import {
4
4
  getOwnedLspService,
5
5
  peekOwnedLspService,
6
6
  resetOwnedLspService
7
- } from "./chunk-MQLUAEOC.js";
8
- import "./chunk-QQNQ7SJW.js";
9
- import "./chunk-AOHZU2BM.js";
10
- import "./chunk-N2H3ZPZY.js";
7
+ } from "./chunk-SRYEJNES.js";
8
+ import "./chunk-QBFBRV2B.js";
9
+ import "./chunk-YNE3RP52.js";
10
+ import "./chunk-3RKP3FMS.js";
11
11
  import "./chunk-NXL4FFQQ.js";
12
12
  export {
13
13
  configureLspServiceLifecycle,
@@ -2,58 +2,59 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  createAvailabilityChecker,
4
4
  resolveAvailableOrInstall
5
- } from "./chunk-YSZNHOBY.js";
5
+ } from "./chunk-ZHH37KZL.js";
6
6
  import {
7
7
  ruffConfigArgs
8
- } from "./chunk-RPLINGVB.js";
9
- import "./chunk-EU63SDCG.js";
10
- import "./chunk-VWCXW2E7.js";
11
- import "./chunk-FCSOVF55.js";
12
- import "./chunk-PNQDPDRC.js";
13
- import "./chunk-ZXYDQ3TZ.js";
14
- import "./chunk-724UL2TJ.js";
15
- import "./chunk-QOZXJ4NA.js";
16
- import "./chunk-P7266HLM.js";
17
- import "./chunk-52FUZI6K.js";
18
- import "./chunk-SAEFPSB6.js";
19
- import "./chunk-GAEGEPOC.js";
8
+ } from "./chunk-Y6GZHWSJ.js";
9
+ import "./chunk-3DA2JDOL.js";
10
+ import "./chunk-HWCCCQNX.js";
11
+ import "./chunk-CUHSHSB6.js";
12
+ import "./chunk-UA7ZXYDR.js";
13
+ import "./chunk-T7FEBKXN.js";
14
+ import "./chunk-MPNJLASA.js";
15
+ import "./chunk-GXFV6MYU.js";
16
+ import "./chunk-FM4RDMKT.js";
17
+ import "./chunk-RMLC67LF.js";
18
+ import "./chunk-W66O5E25.js";
19
+ import "./chunk-7HXE67BN.js";
20
20
  import "./chunk-Z3CCVDUB.js";
21
21
  import "./chunk-2BEMIWEW.js";
22
- import "./chunk-ACXEQZOU.js";
22
+ import "./chunk-IJYGIDF4.js";
23
+ import "./chunk-GAQ7OQG6.js";
23
24
  import {
24
25
  resolveToolCwd
25
- } from "./chunk-Q7DUK4LX.js";
26
- import "./chunk-AW7R2GWG.js";
27
- import "./chunk-RWWYJ623.js";
28
- import "./chunk-VRZP76YM.js";
29
- import "./chunk-QOBUHWHX.js";
30
- import "./chunk-QILIYSJF.js";
31
- import "./chunk-6C7JWPCP.js";
32
- import "./chunk-5NGR67U5.js";
26
+ } from "./chunk-DEL2U6CM.js";
27
+ import "./chunk-5VSF4UUQ.js";
28
+ import "./chunk-3KAZU3VR.js";
29
+ import "./chunk-P63GXC37.js";
30
+ import "./chunk-HRNHZA3N.js";
31
+ import "./chunk-TLX72JTG.js";
32
+ import "./chunk-DGUKIYSI.js";
33
+ import "./chunk-XBJVAEEO.js";
33
34
  import {
34
35
  safeSpawnAsync
35
- } from "./chunk-C34ZXZ7O.js";
36
+ } from "./chunk-KUA4OJ5Y.js";
36
37
  import "./chunk-BW5KFIQC.js";
37
38
  import "./chunk-QYF5S6P6.js";
38
39
  import {
39
40
  isFileKind
40
- } from "./chunk-PHDMFAKM.js";
41
- import "./chunk-2BBLFX75.js";
42
- import "./chunk-XVF2VVXP.js";
43
- import "./chunk-ZANLILYD.js";
41
+ } from "./chunk-DUO2TU77.js";
42
+ import "./chunk-J6MPGQTS.js";
43
+ import "./chunk-5HSRT26B.js";
44
+ import "./chunk-M2IFVFWU.js";
44
45
  import "./chunk-2EECBNC5.js";
45
- import "./chunk-JAU72XNY.js";
46
+ import "./chunk-J64T55EI.js";
46
47
  import {
47
48
  createSubsystemLogger
48
- } from "./chunk-XTMJ7XDT.js";
49
+ } from "./chunk-POMLXPMY.js";
49
50
  import "./chunk-JMYYOTQG.js";
50
- import "./chunk-QQNQ7SJW.js";
51
- import "./chunk-AOHZU2BM.js";
51
+ import "./chunk-QBFBRV2B.js";
52
+ import "./chunk-YNE3RP52.js";
52
53
  import "./chunk-LJDODBBZ.js";
53
54
  import "./chunk-ABBOA7UD.js";
54
55
  import {
55
56
  pathsEqual
56
- } from "./chunk-N2H3ZPZY.js";
57
+ } from "./chunk-3RKP3FMS.js";
57
58
  import "./chunk-NXL4FFQQ.js";
58
59
 
59
60
  // dist/clients/ruff-client.js
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  logLatency
4
- } from "./chunk-QQNQ7SJW.js";
4
+ } from "./chunk-QBFBRV2B.js";
5
5
 
6
6
  // dist/clients/dispatch/runners/utils/availability-policy.js
7
7
  function describeProbeEvidence(result, command) {
@@ -75,6 +75,9 @@ function classifyProbeFailure(result, options = {}) {
75
75
  if (result.spawnFailure?.kind === "tool-not-found") {
76
76
  return { outcome: "missing", cause: "not-found", evidence };
77
77
  }
78
+ if (result.spawnFailure?.kind === "trust-refused") {
79
+ return { outcome: "missing", cause: "policy-denied", evidence };
80
+ }
78
81
  if (result.failure === "timeout" || result.failure === "aborted" || result.failure === "signal" || result.spawnFailure?.kind === "killed" || result.spawnFailure?.kind === "timeout" || errorCode === "EAGAIN" || errorCode === "EBUSY") {
79
82
  const stalled = (options.hostStallMs ?? 0) >= HOST_STALL_EVIDENCE_MS;
80
83
  return {
@@ -5,7 +5,7 @@ import {
5
5
  getMaxLogSizeMB,
6
6
  getTurnId,
7
7
  isTestMode
8
- } from "./chunk-AOHZU2BM.js";
8
+ } from "./chunk-YNE3RP52.js";
9
9
 
10
10
  // dist/clients/extension-log.js
11
11
  import * as path from "node:path";
@@ -5,10 +5,10 @@ import {
5
5
  getMaxLogSizeMB,
6
6
  getTurnId,
7
7
  isTestMode
8
- } from "./chunk-AOHZU2BM.js";
8
+ } from "./chunk-YNE3RP52.js";
9
9
  import {
10
10
  normalizeLoggedPath
11
- } from "./chunk-N2H3ZPZY.js";
11
+ } from "./chunk-3RKP3FMS.js";
12
12
 
13
13
  // dist/clients/latency-logger.js
14
14
  import * as path from "node:path";
@@ -54,7 +54,8 @@ var LAST_PHASE_EXCLUDED = /* @__PURE__ */ new Set([
54
54
  "session_handoff_adopt",
55
55
  "session_store_action",
56
56
  "session_end_fence_rollup",
57
- "format_late_resync_chained"
57
+ "format_late_resync_chained",
58
+ "lsp_created_import_scan_rollup"
58
59
  ]);
59
60
  var liveBrackets = /* @__PURE__ */ new Map();
60
61
  var closedBrackets = [];
@@ -102,7 +103,12 @@ function logLatency(entry) {
102
103
  const ts = (/* @__PURE__ */ new Date()).toISOString();
103
104
  if (entry.type === "phase" && entry.phase && !LAST_PHASE_EXCLUDED.has(entry.phase)) {
104
105
  recentPhases = [
105
- { phase: entry.phase, ts, metadata: entry.metadata },
106
+ {
107
+ phase: entry.phase,
108
+ ts,
109
+ ...entry.toolName !== void 0 && { toolName: entry.toolName },
110
+ ...entry.metadata !== void 0 && { metadata: entry.metadata }
111
+ },
106
112
  ...recentPhases
107
113
  ].slice(0, RECENT_PHASE_CAP);
108
114
  }
@@ -1,80 +1,81 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  formatToolFailure
4
- } from "./chunk-2CD5RS6M.js";
5
- import "./chunk-UZ3TUTRV.js";
4
+ } from "./chunk-RKBXZN3A.js";
5
+ import "./chunk-S67KYG37.js";
6
6
  import {
7
7
  scannerReportParentDir
8
- } from "./chunk-CSHFH5IN.js";
8
+ } from "./chunk-ED36RF6Y.js";
9
9
  import {
10
10
  nestedWorktreeOffsets
11
- } from "./chunk-VCHXCQFG.js";
11
+ } from "./chunk-BWD5EPKO.js";
12
12
  import {
13
13
  createAvailabilityChecker,
14
14
  findManagedNodeToolBinary,
15
15
  resolveAvailableOrInstall
16
- } from "./chunk-YSZNHOBY.js";
17
- import "./chunk-RPLINGVB.js";
18
- import "./chunk-EU63SDCG.js";
19
- import "./chunk-VWCXW2E7.js";
20
- import "./chunk-FCSOVF55.js";
21
- import "./chunk-PNQDPDRC.js";
22
- import "./chunk-ZXYDQ3TZ.js";
23
- import "./chunk-724UL2TJ.js";
24
- import "./chunk-QOZXJ4NA.js";
25
- import "./chunk-P7266HLM.js";
26
- import "./chunk-52FUZI6K.js";
27
- import "./chunk-SAEFPSB6.js";
16
+ } from "./chunk-ZHH37KZL.js";
17
+ import "./chunk-Y6GZHWSJ.js";
18
+ import "./chunk-3DA2JDOL.js";
19
+ import "./chunk-HWCCCQNX.js";
20
+ import "./chunk-CUHSHSB6.js";
21
+ import "./chunk-UA7ZXYDR.js";
22
+ import "./chunk-T7FEBKXN.js";
23
+ import "./chunk-MPNJLASA.js";
24
+ import "./chunk-GXFV6MYU.js";
25
+ import "./chunk-FM4RDMKT.js";
26
+ import "./chunk-RMLC67LF.js";
27
+ import "./chunk-W66O5E25.js";
28
28
  import {
29
29
  getJscpdMaxEntriesDerived
30
- } from "./chunk-GAEGEPOC.js";
30
+ } from "./chunk-7HXE67BN.js";
31
31
  import "./chunk-Z3CCVDUB.js";
32
32
  import "./chunk-2BEMIWEW.js";
33
- import "./chunk-ACXEQZOU.js";
34
- import "./chunk-Q7DUK4LX.js";
33
+ import "./chunk-IJYGIDF4.js";
34
+ import "./chunk-GAQ7OQG6.js";
35
+ import "./chunk-DEL2U6CM.js";
35
36
  import {
36
37
  findNodeToolBinary
37
- } from "./chunk-AW7R2GWG.js";
38
+ } from "./chunk-5VSF4UUQ.js";
38
39
  import {
39
40
  getIsolatedNpxSpawnOptions
40
- } from "./chunk-RWWYJ623.js";
41
- import "./chunk-VRZP76YM.js";
42
- import "./chunk-QOBUHWHX.js";
43
- import "./chunk-QILIYSJF.js";
44
- import "./chunk-6C7JWPCP.js";
41
+ } from "./chunk-3KAZU3VR.js";
42
+ import "./chunk-P63GXC37.js";
43
+ import "./chunk-HRNHZA3N.js";
44
+ import "./chunk-TLX72JTG.js";
45
+ import "./chunk-DGUKIYSI.js";
45
46
  import {
46
47
  shouldRecurseIntoDir,
47
48
  walkTreeStackSync
48
- } from "./chunk-5NGR67U5.js";
49
+ } from "./chunk-XBJVAEEO.js";
49
50
  import {
50
51
  getExcludedDirGlobs,
51
52
  getProjectIgnoreGlobs,
52
53
  getProjectIgnoreMatcher,
53
54
  safeSpawnAsync
54
- } from "./chunk-C34ZXZ7O.js";
55
+ } from "./chunk-KUA4OJ5Y.js";
55
56
  import "./chunk-BW5KFIQC.js";
56
57
  import "./chunk-QYF5S6P6.js";
57
- import "./chunk-PHDMFAKM.js";
58
- import "./chunk-2BBLFX75.js";
59
- import "./chunk-XVF2VVXP.js";
60
- import "./chunk-ZANLILYD.js";
58
+ import "./chunk-DUO2TU77.js";
59
+ import "./chunk-J6MPGQTS.js";
60
+ import "./chunk-5HSRT26B.js";
61
+ import "./chunk-M2IFVFWU.js";
61
62
  import "./chunk-2EECBNC5.js";
62
63
  import {
63
64
  incrementDegradationCount
64
- } from "./chunk-JAU72XNY.js";
65
+ } from "./chunk-J64T55EI.js";
65
66
  import {
66
67
  createSubsystemLogger
67
- } from "./chunk-XTMJ7XDT.js";
68
+ } from "./chunk-POMLXPMY.js";
68
69
  import "./chunk-JMYYOTQG.js";
69
- import "./chunk-QQNQ7SJW.js";
70
- import "./chunk-AOHZU2BM.js";
70
+ import "./chunk-QBFBRV2B.js";
71
+ import "./chunk-YNE3RP52.js";
71
72
  import "./chunk-LJDODBBZ.js";
72
73
  import "./chunk-ABBOA7UD.js";
73
74
  import {
74
75
  isAtOrAboveHomeDir,
75
76
  isFullyQualified,
76
77
  toPosix
77
- } from "./chunk-N2H3ZPZY.js";
78
+ } from "./chunk-3RKP3FMS.js";
78
79
  import "./chunk-NXL4FFQQ.js";
79
80
 
80
81
  // dist/clients/jscpd-client.js
@@ -148,6 +149,9 @@ var JscpdClient = class {
148
149
  // its own cwd via findNodeToolBinary.
149
150
  jscpdManagedPath = null;
150
151
  inFlight = /* @__PURE__ */ new Map();
152
+ // Pending availability probes. A scan holds no `inFlight` entry until its
153
+ // own probe settles, so `shutdown()` must see the probe too (#4505).
154
+ probing = /* @__PURE__ */ new Set();
151
155
  log;
152
156
  constructor(verbose = false) {
153
157
  this.log = verbose ? createSubsystemLogger("jscpd") : () => {
@@ -157,9 +161,20 @@ var JscpdClient = class {
157
161
  * Wait for scans already started by this client to settle. Test owners use
158
162
  * this as the lifecycle barrier before removing fixture roots; the scan
159
163
  * promise includes the jscpd child and its report-directory cleanup.
164
+ *
165
+ * A scan registers in `inFlight` only after its availability probe settles,
166
+ * and the session_start task probes once before `scan()` probes again. The
167
+ * loop therefore repeats until a pass finds no probe and no scan. Both sets
168
+ * drop an entry before its promise settles, so an empty pass ends the loop
169
+ * and a pass over pending work never spins. The wait is bounded by the work
170
+ * already started: each probe by `probeTimeout` (1.5 s, tool install off in
171
+ * tests) and each scan by `SCAN_TIMEOUT_MS` (30 s); the loop adds none of its
172
+ * own and ends once the client is idle.
160
173
  */
161
174
  async shutdown() {
162
- await Promise.allSettled(this.inFlight.values());
175
+ do {
176
+ await Promise.allSettled([...this.probing, ...this.inFlight.values()]);
177
+ } while (this.probing.size > 0 || this.inFlight.size > 0);
163
178
  }
164
179
  /**
165
180
  * Fast recursive source file presence check.
@@ -203,7 +218,14 @@ var JscpdClient = class {
203
218
  /**
204
219
  * Check if jscpd is available, auto-install if not
205
220
  */
206
- async ensureAvailable() {
221
+ ensureAvailable() {
222
+ const probe = this.probeAvailable().finally(() => {
223
+ this.probing.delete(probe);
224
+ });
225
+ this.probing.add(probe);
226
+ return probe;
227
+ }
228
+ async probeAvailable() {
207
229
  const resolved = await resolveAvailableOrInstall(jscpdAvailability, "jscpd", process.cwd());
208
230
  if (!resolved)
209
231
  return false;
@@ -2,20 +2,20 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  AgentBehaviorClient,
4
4
  agentBehaviorClient
5
- } from "./chunk-ZGDGW2V3.js";
6
- import "./chunk-IBGIOBEE.js";
7
- import "./chunk-C34ZXZ7O.js";
8
- import "./chunk-2BBLFX75.js";
9
- import "./chunk-XVF2VVXP.js";
5
+ } from "./chunk-ZIVJBOO3.js";
6
+ import "./chunk-IWDLU6K3.js";
7
+ import "./chunk-KUA4OJ5Y.js";
8
+ import "./chunk-J6MPGQTS.js";
9
+ import "./chunk-5HSRT26B.js";
10
10
  import "./chunk-2EECBNC5.js";
11
- import "./chunk-JAU72XNY.js";
12
- import "./chunk-XTMJ7XDT.js";
11
+ import "./chunk-J64T55EI.js";
12
+ import "./chunk-POMLXPMY.js";
13
13
  import "./chunk-JMYYOTQG.js";
14
- import "./chunk-QQNQ7SJW.js";
15
- import "./chunk-AOHZU2BM.js";
14
+ import "./chunk-QBFBRV2B.js";
15
+ import "./chunk-YNE3RP52.js";
16
16
  import "./chunk-LJDODBBZ.js";
17
17
  import "./chunk-ABBOA7UD.js";
18
- import "./chunk-N2H3ZPZY.js";
18
+ import "./chunk-3RKP3FMS.js";
19
19
  import "./chunk-NXL4FFQQ.js";
20
20
  export {
21
21
  AgentBehaviorClient,
@@ -2,13 +2,18 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  classifyRunOutcome,
4
4
  firstOutputLine
5
- } from "./chunk-UZ3TUTRV.js";
5
+ } from "./chunk-S67KYG37.js";
6
6
  import {
7
7
  incrementDegradationCount,
8
8
  truncateForLedger
9
- } from "./chunk-JAU72XNY.js";
9
+ } from "./chunk-J64T55EI.js";
10
10
 
11
11
  // dist/clients/dispatch/types.js
12
+ function spanOverlapsModifiedRanges(startLine, endLine, ranges) {
13
+ if (!ranges || ranges.length === 0)
14
+ return true;
15
+ return ranges.some((r) => startLine <= r.end && endLine >= r.start);
16
+ }
12
17
  var RUNNER_SKIP_REASONS = [
13
18
  "no-files-matched",
14
19
  "configured-non-biome-linter",
@@ -36,6 +41,20 @@ function findingsResult(diagnostics, verdict) {
36
41
  function hasUsableResult(result) {
37
42
  return result.status === "succeeded" || result.status === "failed" && result.failureKind === BLOCKING_DIAGNOSTICS_FAILURE_KIND;
38
43
  }
44
+ function reachedNoVerdict(result) {
45
+ if (result.inconclusive === true)
46
+ return true;
47
+ switch (result.status) {
48
+ case "failed":
49
+ return !hasUsableResult(result);
50
+ case "deferred":
51
+ return true;
52
+ case "skipped":
53
+ return !isRunnerSkipReason(result.skipReason);
54
+ default:
55
+ return false;
56
+ }
57
+ }
39
58
 
40
59
  // dist/clients/dispatch/runners/utils/tool-failure.js
41
60
  function describeEnding(input) {
@@ -156,10 +175,12 @@ function finishParsedRun(input) {
156
175
  }
157
176
 
158
177
  export {
178
+ spanOverlapsModifiedRanges,
159
179
  isRunnerSkipReason,
160
180
  isRunnerClaimSource,
161
181
  findingsResult,
162
182
  hasUsableResult,
183
+ reachedNoVerdict,
163
184
  formatToolFailure,
164
185
  skipUnlessToolRan,
165
186
  parseToolRun,
@@ -4,46 +4,46 @@ import {
4
4
  } from "./chunk-7U2IDNXN.js";
5
5
  import {
6
6
  formatToolFailure
7
- } from "./chunk-2CD5RS6M.js";
7
+ } from "./chunk-RKBXZN3A.js";
8
8
  import {
9
9
  firstOutputLine,
10
10
  spawnFailedWithNoOutput
11
- } from "./chunk-UZ3TUTRV.js";
11
+ } from "./chunk-S67KYG37.js";
12
12
  import {
13
13
  getScratchTreeFnmatchPatterns
14
- } from "./chunk-VCHXCQFG.js";
14
+ } from "./chunk-BWD5EPKO.js";
15
15
  import {
16
16
  listNestedLinkedWorktreeRoots
17
- } from "./chunk-PNQDPDRC.js";
17
+ } from "./chunk-UA7ZXYDR.js";
18
18
  import {
19
19
  extractTomlTableSection,
20
20
  parseTomlStringArray
21
- } from "./chunk-P7266HLM.js";
21
+ } from "./chunk-MPNJLASA.js";
22
22
  import {
23
23
  VENV_BIN_DIRS,
24
24
  findLocalBinsAt
25
- } from "./chunk-AW7R2GWG.js";
25
+ } from "./chunk-5VSF4UUQ.js";
26
26
  import {
27
27
  probeToolAsync
28
- } from "./chunk-RWWYJ623.js";
28
+ } from "./chunk-3KAZU3VR.js";
29
29
  import {
30
30
  classifyProbeFailure,
31
31
  createAvailabilityLatch,
32
32
  logAvailabilityDecision,
33
33
  startHostStallSampler
34
- } from "./chunk-VRZP76YM.js";
34
+ } from "./chunk-P63GXC37.js";
35
35
  import {
36
36
  safeSpawnAsync
37
- } from "./chunk-C34ZXZ7O.js";
37
+ } from "./chunk-KUA4OJ5Y.js";
38
38
  import {
39
39
  incrementDegradationCount
40
- } from "./chunk-JAU72XNY.js";
40
+ } from "./chunk-J64T55EI.js";
41
41
  import {
42
42
  createSubsystemLogger
43
- } from "./chunk-XTMJ7XDT.js";
43
+ } from "./chunk-POMLXPMY.js";
44
44
  import {
45
45
  findNearestMarkerRoot
46
- } from "./chunk-N2H3ZPZY.js";
46
+ } from "./chunk-3RKP3FMS.js";
47
47
 
48
48
  // dist/clients/dead-code-client.js
49
49
  import * as fs from "node:fs";
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  recordDegradationOnce
4
- } from "./chunk-JAU72XNY.js";
4
+ } from "./chunk-J64T55EI.js";
5
5
 
6
6
  // dist/clients/deadline-utils.js
7
7
  function combineAbortSignals(...signals) {
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  createToolchainAvailability
4
- } from "./chunk-7DYBLXYA.js";
4
+ } from "./chunk-HYGZEMX6.js";
5
5
  import {
6
6
  createSubsystemLogger
7
- } from "./chunk-XTMJ7XDT.js";
7
+ } from "./chunk-POMLXPMY.js";
8
8
 
9
9
  // dist/clients/go-client.js
10
10
  import * as path from "node:path";