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
@@ -17,12 +17,12 @@ import {
17
17
  isHelmYamlTemplatePath,
18
18
  isJstsFactFile,
19
19
  isReadableSourceFile
20
- } from "./chunk-PHDMFAKM.js";
21
- import "./chunk-XVF2VVXP.js";
20
+ } from "./chunk-DUO2TU77.js";
21
+ import "./chunk-5HSRT26B.js";
22
22
  import "./chunk-JMYYOTQG.js";
23
- import "./chunk-QQNQ7SJW.js";
24
- import "./chunk-AOHZU2BM.js";
25
- import "./chunk-N2H3ZPZY.js";
23
+ import "./chunk-QBFBRV2B.js";
24
+ import "./chunk-YNE3RP52.js";
25
+ import "./chunk-3RKP3FMS.js";
26
26
  import "./chunk-NXL4FFQQ.js";
27
27
  export {
28
28
  CODE_KINDS,
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-2EECBNC5.js";
5
5
  import {
6
6
  LEDGER_FIELD_MAX
7
- } from "./chunk-JAU72XNY.js";
7
+ } from "./chunk-J64T55EI.js";
8
8
 
9
9
  // dist/clients/dispatch/runners/utils/spawn-outcome.js
10
10
  function firstOutputLine(text, max = LEDGER_FIELD_MAX) {
@@ -1,54 +1,52 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  stripAnsi
4
- } from "./chunk-FC4RP4I2.js";
4
+ } from "./chunk-6HWVI6MI.js";
5
5
  import {
6
+ augmentPythonEnvironment,
7
+ detectPythonEnvironment,
6
8
  emitBounded
7
- } from "./chunk-CO2G5PHH.js";
9
+ } from "./chunk-CUHSHSB6.js";
8
10
  import {
9
11
  resolveGitCheckout
10
- } from "./chunk-PNQDPDRC.js";
11
- import {
12
- augmentPythonEnvironment,
13
- detectPythonEnvironment
14
- } from "./chunk-34WSVGEM.js";
12
+ } from "./chunk-UA7ZXYDR.js";
15
13
  import {
16
14
  PathKeyedMap
17
15
  } from "./chunk-Z3CCVDUB.js";
18
16
  import {
19
17
  resolveToolCwd
20
- } from "./chunk-Q7DUK4LX.js";
18
+ } from "./chunk-DEL2U6CM.js";
21
19
  import {
22
20
  findGlobalBinary,
23
21
  findLocalBinAt,
24
22
  localBinPath
25
- } from "./chunk-AW7R2GWG.js";
23
+ } from "./chunk-5VSF4UUQ.js";
26
24
  import {
27
25
  getIsolatedNpxSpawnOptions
28
- } from "./chunk-RWWYJ623.js";
26
+ } from "./chunk-3KAZU3VR.js";
29
27
  import {
30
28
  resolveLanguageRootForFile
31
- } from "./chunk-QOBUHWHX.js";
29
+ } from "./chunk-HRNHZA3N.js";
32
30
  import {
33
31
  safeSpawn,
34
32
  safeSpawnAsync
35
- } from "./chunk-C34ZXZ7O.js";
33
+ } from "./chunk-KUA4OJ5Y.js";
36
34
  import {
37
35
  detectFileKind
38
- } from "./chunk-PHDMFAKM.js";
36
+ } from "./chunk-DUO2TU77.js";
39
37
  import {
40
38
  detectFileRole
41
- } from "./chunk-2BBLFX75.js";
39
+ } from "./chunk-J6MPGQTS.js";
42
40
  import {
43
41
  findNearestDirWithAnyBasename
44
- } from "./chunk-XVF2VVXP.js";
42
+ } from "./chunk-5HSRT26B.js";
45
43
  import {
46
44
  LEDGER_FIELD_MAX,
47
45
  recordDegradationOnce
48
- } from "./chunk-JAU72XNY.js";
46
+ } from "./chunk-J64T55EI.js";
49
47
  import {
50
48
  createSubsystemLogger
51
- } from "./chunk-XTMJ7XDT.js";
49
+ } from "./chunk-POMLXPMY.js";
52
50
  import {
53
51
  BoundedFifoMap
54
52
  } from "./chunk-ABBOA7UD.js";
@@ -61,7 +59,7 @@ import {
61
59
  normalizeMapKey,
62
60
  pathsEqual,
63
61
  toPosix
64
- } from "./chunk-N2H3ZPZY.js";
62
+ } from "./chunk-3RKP3FMS.js";
65
63
 
66
64
  // dist/clients/test-runner-client.js
67
65
  import { createHash } from "node:crypto";
@@ -3,23 +3,23 @@ import {
3
3
  GoClient,
4
4
  goClient,
5
5
  resetGoAvailability
6
- } from "./chunk-XMSXXAHW.js";
7
- import "./chunk-7DYBLXYA.js";
8
- import "./chunk-RWWYJ623.js";
9
- import "./chunk-VRZP76YM.js";
10
- import "./chunk-C34ZXZ7O.js";
6
+ } from "./chunk-ROYSX2S5.js";
7
+ import "./chunk-HYGZEMX6.js";
8
+ import "./chunk-3KAZU3VR.js";
9
+ import "./chunk-P63GXC37.js";
10
+ import "./chunk-KUA4OJ5Y.js";
11
11
  import "./chunk-BW5KFIQC.js";
12
- import "./chunk-2BBLFX75.js";
13
- import "./chunk-XVF2VVXP.js";
12
+ import "./chunk-J6MPGQTS.js";
13
+ import "./chunk-5HSRT26B.js";
14
14
  import "./chunk-2EECBNC5.js";
15
- import "./chunk-JAU72XNY.js";
16
- import "./chunk-XTMJ7XDT.js";
15
+ import "./chunk-J64T55EI.js";
16
+ import "./chunk-POMLXPMY.js";
17
17
  import "./chunk-JMYYOTQG.js";
18
- import "./chunk-QQNQ7SJW.js";
19
- import "./chunk-AOHZU2BM.js";
18
+ import "./chunk-QBFBRV2B.js";
19
+ import "./chunk-YNE3RP52.js";
20
20
  import "./chunk-LJDODBBZ.js";
21
21
  import "./chunk-ABBOA7UD.js";
22
- import "./chunk-N2H3ZPZY.js";
22
+ import "./chunk-3RKP3FMS.js";
23
23
  import "./chunk-NXL4FFQQ.js";
24
24
  export {
25
25
  GoClient,
@@ -1,10 +1,10 @@
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
  import {
6
6
  getProcessSingleton
7
- } from "./chunk-AOHZU2BM.js";
7
+ } from "./chunk-YNE3RP52.js";
8
8
 
9
9
  // dist/clients/lsp/workspace-sweep-hold.js
10
10
  var SWEEP_IDLE_SAFETY_MARGIN_MS = 6e4;
@@ -3,23 +3,23 @@ import {
3
3
  RustClient,
4
4
  resetRustAvailability,
5
5
  rustClient
6
- } from "./chunk-MRXKYPCS.js";
7
- import "./chunk-7DYBLXYA.js";
8
- import "./chunk-RWWYJ623.js";
9
- import "./chunk-VRZP76YM.js";
10
- import "./chunk-C34ZXZ7O.js";
6
+ } from "./chunk-EBC36LNN.js";
7
+ import "./chunk-HYGZEMX6.js";
8
+ import "./chunk-3KAZU3VR.js";
9
+ import "./chunk-P63GXC37.js";
10
+ import "./chunk-KUA4OJ5Y.js";
11
11
  import "./chunk-BW5KFIQC.js";
12
- import "./chunk-2BBLFX75.js";
13
- import "./chunk-XVF2VVXP.js";
12
+ import "./chunk-J6MPGQTS.js";
13
+ import "./chunk-5HSRT26B.js";
14
14
  import "./chunk-2EECBNC5.js";
15
- import "./chunk-JAU72XNY.js";
16
- import "./chunk-XTMJ7XDT.js";
15
+ import "./chunk-J64T55EI.js";
16
+ import "./chunk-POMLXPMY.js";
17
17
  import "./chunk-JMYYOTQG.js";
18
- import "./chunk-QQNQ7SJW.js";
19
- import "./chunk-AOHZU2BM.js";
18
+ import "./chunk-QBFBRV2B.js";
19
+ import "./chunk-YNE3RP52.js";
20
20
  import "./chunk-LJDODBBZ.js";
21
21
  import "./chunk-ABBOA7UD.js";
22
- import "./chunk-N2H3ZPZY.js";
22
+ import "./chunk-3RKP3FMS.js";
23
23
  import "./chunk-NXL4FFQQ.js";
24
24
  export {
25
25
  RustClient,
@@ -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-QHJ6DQ2R.js";
4
+ } from "./chunk-US7ECLD7.js";
5
5
 
6
6
  // dist/clients/dispatch/facts/tree-sitter-facts.js
7
7
  var withFactTree = withTreeSitterRoot;
@@ -3,30 +3,34 @@ import {
3
3
  deserializeWordIndex,
4
4
  recordPersistedWordIndexWireBytes,
5
5
  serializeWordIndex
6
- } from "./chunk-SAEFPSB6.js";
6
+ } from "./chunk-W66O5E25.js";
7
7
  import {
8
8
  fingerprintProjectSnapshotJson
9
9
  } from "./chunk-2BEMIWEW.js";
10
+ import {
11
+ readGzipStageWorkerResult,
12
+ reapStageFile
13
+ } from "./chunk-IJYGIDF4.js";
10
14
  import {
11
15
  getProjectDataDir,
12
16
  isStaleStageFile,
13
17
  withGenerationLockSync
14
- } from "./chunk-C34ZXZ7O.js";
18
+ } from "./chunk-KUA4OJ5Y.js";
15
19
  import {
16
20
  writeFileAtomic
17
21
  } from "./chunk-2EECBNC5.js";
18
22
  import {
19
23
  incrementDegradationCount
20
- } from "./chunk-JAU72XNY.js";
24
+ } from "./chunk-J64T55EI.js";
21
25
  import {
22
26
  logLatency
23
- } from "./chunk-QQNQ7SJW.js";
27
+ } from "./chunk-QBFBRV2B.js";
24
28
  import {
25
29
  BoundedFifoMap
26
30
  } from "./chunk-ABBOA7UD.js";
27
31
  import {
28
32
  normalizeMapKey
29
- } from "./chunk-N2H3ZPZY.js";
33
+ } from "./chunk-3RKP3FMS.js";
30
34
 
31
35
  // dist/clients/project-snapshot.js
32
36
  import * as fs3 from "node:fs";
@@ -228,6 +232,13 @@ async function readWorkerHeapStatistics(worker) {
228
232
  heapSizeLimitBytes: stats.heap_size_limit
229
233
  };
230
234
  }
235
+ function notePersistWorkerMessageFault(host, fault, detail) {
236
+ incrementDegradationCount({
237
+ kind: "persist-worker-message-contained",
238
+ subject: `${host} persist worker: ${fault}`,
239
+ reason: typeof detail === "string" ? detail : detail instanceof Error ? detail.message : `non-Error ${typeof detail}`
240
+ });
241
+ }
231
242
 
232
243
  // dist/clients/project-snapshot.js
233
244
  var PROJECT_SNAPSHOT_VERSION = 2;
@@ -1093,22 +1104,34 @@ function dispatchMainThreadWriteThroughSeam(pending, reason) {
1093
1104
  }
1094
1105
  writeSnapshotBodyOnMainThread(pending, reason);
1095
1106
  }
1107
+ function reapSnapshotStage(stagePath, subject) {
1108
+ const failure = reapStageFile(stagePath);
1109
+ if (failure === void 0)
1110
+ return;
1111
+ incrementDegradationCount({
1112
+ kind: "project-snapshot-stage-reap-failed",
1113
+ subject,
1114
+ reason: `snapshot stage reap failed: ${failure.message}`
1115
+ });
1116
+ }
1096
1117
  function handleSnapshotWorkerResult(result) {
1097
1118
  const pending = _snapshotWorkerRequests.get(result.id);
1098
1119
  if (!pending) {
1099
- fs3.rmSync(result.stagePath, { force: true });
1120
+ if (typeof result.stagePath === "string") {
1121
+ reapSnapshotStage(result.stagePath, result.stagePath);
1122
+ }
1100
1123
  return;
1101
1124
  }
1102
1125
  _snapshotWorkerRequests.delete(result.id);
1103
1126
  if (result.error || result.rawBytes === void 0 || result.gzBytes === void 0 || result.serializeMs === void 0 || result.writeMs === void 0 || result.semanticFingerprint === void 0) {
1104
- fs3.rmSync(result.stagePath, { force: true });
1127
+ reapSnapshotStage(pending.stagePath, pending.gzPath);
1105
1128
  dispatchMainThreadWriteThroughSeam(pending, result.error ?? "invalid worker result");
1106
1129
  return;
1107
1130
  }
1108
1131
  if (!result.skippedUnchanged)
1109
1132
  _snapshotWorkerBodyWritesForTests++;
1110
1133
  if (_snapshotGenerationGateEnabledForTests && _snapshotGenerationStates.get(pending.key)?.generation !== result.generation) {
1111
- fs3.rmSync(result.stagePath, { force: true });
1134
+ reapSnapshotStage(pending.stagePath, pending.gzPath);
1112
1135
  completeSnapshotPersist(pending);
1113
1136
  return;
1114
1137
  }
@@ -1141,7 +1164,7 @@ function handleSnapshotWorkerResult(result) {
1141
1164
  return;
1142
1165
  }
1143
1166
  try {
1144
- const promoted = promoteSnapshotBody(pending, { stagePath: result.stagePath }, {
1167
+ const promoted = promoteSnapshotBody(pending, { stagePath: pending.stagePath }, {
1145
1168
  fingerprint: result.semanticFingerprint,
1146
1169
  generatedAt: pending.snapshot.generatedAt,
1147
1170
  gzBytes: result.gzBytes
@@ -1161,7 +1184,7 @@ function handleSnapshotWorkerResult(result) {
1161
1184
  });
1162
1185
  completeSnapshotPersist(pending);
1163
1186
  } catch (err) {
1164
- fs3.rm(result.stagePath, { force: true }, () => {
1187
+ fs3.rm(pending.stagePath, { force: true }, () => {
1165
1188
  });
1166
1189
  dispatchMainThreadWriteThroughSeam(pending, err instanceof Error ? err.message : String(err));
1167
1190
  }
@@ -1252,12 +1275,21 @@ function getSnapshotPersistWorker() {
1252
1275
  return void 0;
1253
1276
  }
1254
1277
  const worker = new Worker(workerPath);
1255
- worker.on("message", (result) => {
1256
- if (_snapshotPromotionSeamForTests) {
1257
- void _snapshotPromotionSeamForTests().then(() => handleSnapshotWorkerResult(result));
1258
- return;
1278
+ worker.on("message", (message) => {
1279
+ try {
1280
+ const result = readGzipStageWorkerResult(message);
1281
+ if (typeof result === "string") {
1282
+ notePersistWorkerMessageFault("project-snapshot", "rejected", result);
1283
+ return;
1284
+ }
1285
+ if (_snapshotPromotionSeamForTests) {
1286
+ void _snapshotPromotionSeamForTests().then(() => handleSnapshotWorkerResult(result)).catch((err) => notePersistWorkerMessageFault("project-snapshot", "threw", err));
1287
+ return;
1288
+ }
1289
+ handleSnapshotWorkerResult(result);
1290
+ } catch (err) {
1291
+ notePersistWorkerMessageFault("project-snapshot", "threw", err);
1259
1292
  }
1260
- handleSnapshotWorkerResult(result);
1261
1293
  });
1262
1294
  worker.on("error", (err) => handleSnapshotWorkerDeath(err.message));
1263
1295
  worker.on("exit", (code) => {
@@ -1563,6 +1595,7 @@ export {
1563
1595
  readJsonCache,
1564
1596
  readJsonCacheAsync,
1565
1597
  readWorkerHeapStatistics,
1598
+ notePersistWorkerMessageFault,
1566
1599
  PROJECT_SNAPSHOT_VERSION,
1567
1600
  getProjectSnapshotPath,
1568
1601
  getProjectSnapshotLegacyPath,
@@ -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-RWWYJ623.js";
5
+ } from "./chunk-3KAZU3VR.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-VRZP76YM.js";
13
+ } from "./chunk-P63GXC37.js";
14
14
  import {
15
15
  createSingleFlight
16
16
  } from "./chunk-BW5KFIQC.js";
17
17
  import {
18
18
  createSubsystemLogger
19
- } from "./chunk-XTMJ7XDT.js";
19
+ } from "./chunk-POMLXPMY.js";
20
20
 
21
21
  // dist/clients/security-scan-client.js
22
22
  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-6C7JWPCP.js";
5
+ } from "./chunk-DGUKIYSI.js";
6
6
 
7
7
  // dist/clients/scan-utils.js
8
8
  function getSourceFiles(dir, _isTsProject) {
@@ -1,34 +1,34 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  parseSymbolKey
4
- } from "./chunk-WOA4LN2R.js";
4
+ } from "./chunk-7D6L4MTX.js";
5
5
  import "./chunk-3MED75HT.js";
6
6
  import {
7
7
  isBuildArtifact
8
- } from "./chunk-6C7JWPCP.js";
9
- import "./chunk-5NGR67U5.js";
8
+ } from "./chunk-DGUKIYSI.js";
9
+ import "./chunk-XBJVAEEO.js";
10
10
  import {
11
11
  getProjectDataDir
12
- } from "./chunk-C34ZXZ7O.js";
12
+ } from "./chunk-KUA4OJ5Y.js";
13
13
  import "./chunk-QYF5S6P6.js";
14
- import "./chunk-PHDMFAKM.js";
14
+ import "./chunk-DUO2TU77.js";
15
15
  import {
16
16
  detectFileRole
17
- } from "./chunk-2BBLFX75.js";
18
- import "./chunk-XVF2VVXP.js";
17
+ } from "./chunk-J6MPGQTS.js";
18
+ import "./chunk-5HSRT26B.js";
19
19
  import {
20
20
  writeFileAtomic
21
21
  } from "./chunk-2EECBNC5.js";
22
- import "./chunk-JAU72XNY.js";
23
- import "./chunk-XTMJ7XDT.js";
22
+ import "./chunk-J64T55EI.js";
23
+ import "./chunk-POMLXPMY.js";
24
24
  import "./chunk-JMYYOTQG.js";
25
- import "./chunk-QQNQ7SJW.js";
26
- import "./chunk-AOHZU2BM.js";
25
+ import "./chunk-QBFBRV2B.js";
26
+ import "./chunk-YNE3RP52.js";
27
27
  import "./chunk-LJDODBBZ.js";
28
28
  import "./chunk-ABBOA7UD.js";
29
29
  import {
30
30
  isExternalOrVendorFile
31
- } from "./chunk-N2H3ZPZY.js";
31
+ } from "./chunk-3RKP3FMS.js";
32
32
  import "./chunk-NXL4FFQQ.js";
33
33
 
34
34
  // dist/clients/codebase-model.js
@@ -2,23 +2,23 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  getSourceFiles,
4
4
  getSourceFilesAsync
5
- } from "./chunk-QILIYSJF.js";
6
- import "./chunk-6C7JWPCP.js";
7
- import "./chunk-5NGR67U5.js";
8
- import "./chunk-C34ZXZ7O.js";
5
+ } from "./chunk-TLX72JTG.js";
6
+ import "./chunk-DGUKIYSI.js";
7
+ import "./chunk-XBJVAEEO.js";
8
+ import "./chunk-KUA4OJ5Y.js";
9
9
  import "./chunk-QYF5S6P6.js";
10
- import "./chunk-PHDMFAKM.js";
11
- import "./chunk-2BBLFX75.js";
12
- import "./chunk-XVF2VVXP.js";
10
+ import "./chunk-DUO2TU77.js";
11
+ import "./chunk-J6MPGQTS.js";
12
+ import "./chunk-5HSRT26B.js";
13
13
  import "./chunk-2EECBNC5.js";
14
- import "./chunk-JAU72XNY.js";
15
- import "./chunk-XTMJ7XDT.js";
14
+ import "./chunk-J64T55EI.js";
15
+ import "./chunk-POMLXPMY.js";
16
16
  import "./chunk-JMYYOTQG.js";
17
- import "./chunk-QQNQ7SJW.js";
18
- import "./chunk-AOHZU2BM.js";
17
+ import "./chunk-QBFBRV2B.js";
18
+ import "./chunk-YNE3RP52.js";
19
19
  import "./chunk-LJDODBBZ.js";
20
20
  import "./chunk-ABBOA7UD.js";
21
- import "./chunk-N2H3ZPZY.js";
21
+ import "./chunk-3RKP3FMS.js";
22
22
  import "./chunk-NXL4FFQQ.js";
23
23
  export {
24
24
  getSourceFiles,
@@ -1,33 +1,35 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  getStartupScanMaxSourceFilesDerived
4
- } from "./chunk-GAEGEPOC.js";
4
+ } from "./chunk-7HXE67BN.js";
5
5
  import {
6
6
  shouldRecurseIntoDir,
7
7
  walkTreeStackAsync,
8
8
  walkTreeStackSync
9
- } from "./chunk-5NGR67U5.js";
9
+ } from "./chunk-XBJVAEEO.js";
10
10
  import {
11
11
  getProjectIgnoreMatcher
12
- } from "./chunk-C34ZXZ7O.js";
12
+ } from "./chunk-KUA4OJ5Y.js";
13
13
  import {
14
14
  getDirectoryMarkers,
15
15
  registerWorkspaceTopologyReset
16
- } from "./chunk-XVF2VVXP.js";
16
+ } from "./chunk-5HSRT26B.js";
17
17
  import {
18
18
  lazyEnvNumber
19
- } from "./chunk-AOHZU2BM.js";
19
+ } from "./chunk-YNE3RP52.js";
20
20
  import {
21
21
  BoundedLruCache
22
22
  } from "./chunk-ABBOA7UD.js";
23
23
  import {
24
24
  isAtOrAboveHomeDir,
25
25
  normalizeMapKey
26
- } from "./chunk-N2H3ZPZY.js";
26
+ } from "./chunk-3RKP3FMS.js";
27
27
 
28
28
  // dist/clients/startup-scan.js
29
29
  import * as os from "node:os";
30
30
  import * as path from "node:path";
31
+
32
+ // dist/clients/project-root-markers.js
31
33
  var PROJECT_ROOT_MARKERS = [
32
34
  ".git",
33
35
  "package.json",
@@ -36,6 +38,8 @@ var PROJECT_ROOT_MARKERS = [
36
38
  "go.mod",
37
39
  "composer.json"
38
40
  ];
41
+
42
+ // dist/clients/startup-scan.js
39
43
  var MAX_STARTUP_SCAN_ENTRIES = 5e4;
40
44
  var SOURCE_FILE_PATTERN = /\.(ts|tsx|js|jsx|py|go|rs|rb)$/;
41
45
  var DEFAULT_STARTUP_SCAN_VERDICT_TTL_MS = 24 * 60 * 60 * 1e3;
@@ -4,7 +4,7 @@ import {
4
4
  normalizeFilePath,
5
5
  pathsEqual,
6
6
  walkUpDirs
7
- } from "./chunk-N2H3ZPZY.js";
7
+ } from "./chunk-3RKP3FMS.js";
8
8
 
9
9
  // dist/clients/review-graph/git-identity.js
10
10
  import * as fs from "node:fs";
@@ -2,16 +2,16 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  classifyProbeFailure,
4
4
  installRetryDelayMs
5
- } from "./chunk-VRZP76YM.js";
5
+ } from "./chunk-P63GXC37.js";
6
6
  import {
7
7
  safeSpawnAsync
8
- } from "./chunk-C34ZXZ7O.js";
8
+ } from "./chunk-KUA4OJ5Y.js";
9
9
  import {
10
10
  assertInstallAllowed
11
- } from "./chunk-ZANLILYD.js";
11
+ } from "./chunk-M2IFVFWU.js";
12
12
  import {
13
13
  logExtension
14
- } from "./chunk-XTMJ7XDT.js";
14
+ } from "./chunk-POMLXPMY.js";
15
15
 
16
16
  // dist/clients/dispatch/runners/utils/lazy-installer.js
17
17
  var LAZY_INSTALL_SPECS = {
@@ -3,9 +3,9 @@ import {
3
3
  FactStore,
4
4
  getFactStoreEvictionReporter,
5
5
  setFactStoreEvictionReporter
6
- } from "./chunk-CHOW74WE.js";
6
+ } from "./chunk-CYRKQRPM.js";
7
7
  import "./chunk-ABBOA7UD.js";
8
- import "./chunk-N2H3ZPZY.js";
8
+ import "./chunk-3RKP3FMS.js";
9
9
  import "./chunk-NXL4FFQQ.js";
10
10
  export {
11
11
  FactStore,