pi-lens 4.4.0 → 4.4.1

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 (136) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +1 -0
  3. package/dist/chunk-2FQ62SPM.js +83 -0
  4. package/dist/{chunk-6P62QVEA.js → chunk-2UMYMRI3.js} +2 -2
  5. package/dist/{chunk-O6TQT6RI.js → chunk-34OCDWOS.js} +1 -1
  6. package/dist/{chunk-XK4CIILI.js → chunk-3FERWMCH.js} +26 -26
  7. package/dist/{chunk-ZAWW3AF6.js → chunk-3JL6IFD7.js} +8 -8
  8. package/dist/{chunk-OAXNDZJ7.js → chunk-3JSEWUWI.js} +8 -4
  9. package/dist/{chunk-RPD5K5NC.js → chunk-3MRXIJ6I.js} +2 -2
  10. package/dist/{chunk-IVP5KAB7.js → chunk-3P4PF2BX.js} +14 -14
  11. package/dist/{chunk-5THXD6X5.js → chunk-3PNFWVHT.js} +2 -2
  12. package/dist/{chunk-VD4JQCQC.js → chunk-3TTPKMEF.js} +37 -37
  13. package/dist/{chunk-7F72PXY2.js → chunk-5JHXUETW.js} +3 -3
  14. package/dist/{chunk-5ZEJHV35.js → chunk-64LU2OVH.js} +2 -2
  15. package/dist/{chunk-ODEEOXPH.js → chunk-6B5I6ICN.js} +11 -11
  16. package/dist/{chunk-5RXBNSW2.js → chunk-6P54TMWL.js} +16 -8
  17. package/dist/{chunk-K6VYLB2U.js → chunk-6UYA642J.js} +12 -12
  18. package/dist/{chunk-V7R425XG.js → chunk-6XX5HCLK.js} +4 -4
  19. package/dist/{chunk-D6QS3U6M.js → chunk-7AXO3ZDF.js} +15 -15
  20. package/dist/{chunk-YGVYKNSN.js → chunk-7BX5DWSA.js} +59 -12
  21. package/dist/{chunk-N3YQJI6O.js → chunk-7ELY2CSM.js} +7 -4
  22. package/dist/{chunk-AWE5TMPO.js → chunk-7M4T5N3V.js} +13 -13
  23. package/dist/{chunk-AJ3QXTRQ.js → chunk-AFZYMAIV.js} +33 -33
  24. package/dist/{chunk-AJXODZY6.js → chunk-ALQRYH6O.js} +12 -12
  25. package/dist/{chunk-AJVLWNFN.js → chunk-AXKPQ6ZI.js} +5 -5
  26. package/dist/{chunk-HWBZIGMJ.js → chunk-BHWHXMQ2.js} +8 -8
  27. package/dist/{chunk-IXEBJSUE.js → chunk-BJF25SUG.js} +10 -10
  28. package/dist/{chunk-GVXA6CCE.js → chunk-BNKLYOOO.js} +1 -1
  29. package/dist/{chunk-T4ERT73Y.js → chunk-CBD2B5CP.js} +20 -20
  30. package/dist/{chunk-O5WILGMI.js → chunk-CFYISHUW.js} +5 -5
  31. package/dist/{chunk-EOKRQ3SA.js → chunk-CMU4RMJB.js} +1 -1
  32. package/dist/{chunk-YSNFMJKN.js → chunk-CULQYFLU.js} +2 -2
  33. package/dist/{chunk-ORTMY4Q4.js → chunk-D65GOCJB.js} +21 -14
  34. package/dist/{chunk-NTUJEGDZ.js → chunk-D6YF5HKX.js} +2 -2
  35. package/dist/{chunk-BRJKOBZP.js → chunk-DMS52BEP.js} +17 -6
  36. package/dist/{chunk-NL5GLMFI.js → chunk-ELVWJYRV.js} +11 -11
  37. package/dist/{chunk-4W2PLC4J.js → chunk-EUT3B22Y.js} +12 -12
  38. package/dist/{chunk-GUOGVTCQ.js → chunk-F5VLZHUW.js} +1 -1
  39. package/dist/{chunk-I7SPGOWI.js → chunk-FGALODG3.js} +1 -1
  40. package/dist/{chunk-Q5U6FMDI.js → chunk-G3RLJYA2.js} +12 -6
  41. package/dist/{chunk-FJNKANOS.js → chunk-GAYGGICG.js} +9 -9
  42. package/dist/{chunk-HVUZXSWK.js → chunk-H2W2AXD3.js} +38 -40
  43. package/dist/{chunk-VHQLPIRJ.js → chunk-H5EV3VMF.js} +2 -2
  44. package/dist/{chunk-27BBHSZC.js → chunk-HREZQCT3.js} +3 -3
  45. package/dist/{chunk-TT22N74J.js → chunk-HSIRMK2D.js} +12 -12
  46. package/dist/{chunk-3I5QFT3N.js → chunk-IMSQR4WO.js} +6 -3
  47. package/dist/{chunk-B3I2UUT4.js → chunk-IQZXOZ7S.js} +156 -32
  48. package/dist/{chunk-RIISMHKN.js → chunk-IR6XFA5P.js} +14 -13
  49. package/dist/{chunk-LNAKEO63.js → chunk-IUKPRZER.js} +4 -4
  50. package/dist/{chunk-RUOG5D2C.js → chunk-IUR76K6A.js} +5 -5
  51. package/dist/{chunk-TO6WL3GM.js → chunk-J3FZR3YY.js} +12 -2
  52. package/dist/{chunk-Y4T27COV.js → chunk-J6DFZDFA.js} +4 -4
  53. package/dist/{chunk-E4MAEDPM.js → chunk-J7WJZ6W7.js} +11 -11
  54. package/dist/{chunk-52H5B5TC.js → chunk-JONGANYH.js} +30 -30
  55. package/dist/{chunk-TGPXLY2J.js → chunk-KJCWXUUS.js} +35 -1
  56. package/dist/{chunk-I3R7GKDR.js → chunk-KJN4IOEJ.js} +1 -1
  57. package/dist/{chunk-RPD4ZSB7.js → chunk-KMGPUKFD.js} +12 -12
  58. package/dist/{chunk-OQGFCZJ4.js → chunk-LD7WFTRX.js} +13 -13
  59. package/dist/{chunk-DIULIWKU.js → chunk-LNOMA3MP.js} +3 -3
  60. package/dist/{chunk-HHYAELLJ.js → chunk-MGIWSROG.js} +5 -5
  61. package/dist/{chunk-YLF3PPT5.js → chunk-MQA2YBAH.js} +3 -3
  62. package/dist/{chunk-TVN5N6GY.js → chunk-MTDRLSI7.js} +690 -186
  63. package/dist/{chunk-DQ2NZ7C4.js → chunk-N2IRDBZI.js} +44 -6
  64. package/dist/{chunk-AHDW3GPE.js → chunk-N77WFUL7.js} +22 -22
  65. package/dist/{chunk-NXPS2L6U.js → chunk-N7YNJE5R.js} +7 -7
  66. package/dist/{chunk-7FBF7NPR.js → chunk-NFXP47RV.js} +13 -12
  67. package/dist/{chunk-UY752QSN.js → chunk-NJF2X5XF.js} +17 -17
  68. package/dist/{chunk-WONERJTP.js → chunk-O7HZX7CA.js} +1 -1
  69. package/dist/{chunk-AS44CFQ4.js → chunk-OC7LYAU5.js} +7 -7
  70. package/dist/{chunk-4RERDEXR.js → chunk-OEX24ECI.js} +30 -30
  71. package/dist/{chunk-6VCD4VKZ.js → chunk-OYOB3ZFG.js} +2 -2
  72. package/dist/{chunk-IIXOAGHR.js → chunk-OYTMZXRF.js} +18 -15
  73. package/dist/{chunk-ARFCXG7S.js → chunk-OZJINN4O.js} +2 -2
  74. package/dist/{chunk-34U7PLGE.js → chunk-PCHDGUKT.js} +11 -11
  75. package/dist/{chunk-VCSRSYLF.js → chunk-RJFED73B.js} +34 -36
  76. package/dist/chunk-RTQNRM5X.js +27 -0
  77. package/dist/{chunk-PAK6IDME.js → chunk-S6AMWKPC.js} +2 -2
  78. package/dist/{chunk-U3VGR4VU.js → chunk-T4QZ6FEH.js} +4 -4
  79. package/dist/{chunk-VN2AXLEX.js → chunk-T54VJRAD.js} +54 -12
  80. package/dist/{chunk-ZMOL6RQC.js → chunk-TA5L5KWQ.js} +2 -2
  81. package/dist/{chunk-JOLITGCC.js → chunk-TQFBZVCG.js} +1 -1
  82. package/dist/{chunk-VDBPVIKD.js → chunk-U52SAGRM.js} +1 -1
  83. package/dist/{chunk-LW6XKDZQ.js → chunk-UEAHAMEI.js} +284 -35
  84. package/dist/{chunk-NMABWBZN.js → chunk-UGSMCQ4D.js} +1 -1
  85. package/dist/{chunk-6QIUX4EP.js → chunk-USHG4DLH.js} +7 -7
  86. package/dist/{chunk-LSMJ6KBE.js → chunk-V5MEBST3.js} +16 -16
  87. package/dist/chunk-VGEVL5EQ.js +29 -0
  88. package/dist/{chunk-47D2BO4S.js → chunk-VPWKF3GN.js} +10 -10
  89. package/dist/{chunk-UK3CMEAL.js → chunk-VSMJK3ZJ.js} +1 -1
  90. package/dist/{chunk-22AVIGXS.js → chunk-VYKKMYVT.js} +7 -7
  91. package/dist/{chunk-OS32RNR2.js → chunk-VZHJS6DR.js} +15 -15
  92. package/dist/{chunk-E2WFBRHM.js → chunk-WATC3IQR.js} +3 -3
  93. package/dist/chunk-WPE5FPGR.js +54 -0
  94. package/dist/{chunk-V5PXFSZK.js → chunk-WSEWKCXU.js} +4 -4
  95. package/dist/{chunk-NKOUFPQF.js → chunk-WW5BLB74.js} +2 -2
  96. package/dist/{chunk-PWFHBTSF.js → chunk-XGUL4SLQ.js} +2 -2
  97. package/dist/{chunk-F3P7VQ7H.js → chunk-XHSCVSOL.js} +3 -3
  98. package/dist/{chunk-DFVMIKMQ.js → chunk-YLN4K6WD.js} +45 -9
  99. package/dist/{chunk-VNMT7C64.js → chunk-Z6BB4JLQ.js} +2 -2
  100. package/dist/{chunk-NTHH2J74.js → chunk-Z7QQA2KT.js} +12 -12
  101. package/dist/{chunk-F3AU2TMM.js → chunk-ZETYB3XG.js} +15 -15
  102. package/dist/{chunk-XECLWQZN.js → chunk-ZMOMPX2Z.js} +12 -10
  103. package/dist/{chunk-C2AUYXQH.js → chunk-ZOEYVXSV.js} +4 -4
  104. package/dist/{chunk-TLGFBM3F.js → chunk-ZZUFZUQZ.js} +68 -64
  105. package/dist/index.js +30113 -28398
  106. package/dist/mcp/analyze-cli.js +8 -8
  107. package/dist/mcp/cli.js +37 -37
  108. package/dist/mcp/server.js +257 -158
  109. package/dist/mcp/worker.js +55 -55
  110. package/dist/probes/installer.js +19 -19
  111. package/docs/ast-grep_rules_catalog.md +2 -2
  112. package/docs/configuration.md +9 -2
  113. package/docs/custom-rules.md +25 -2
  114. package/docs/environment-variables.md +34 -6
  115. package/docs/features.md +37 -1
  116. package/docs/globalconfig.md +1 -1
  117. package/docs/lsp-capability-matrix.md +2 -1
  118. package/docs/lsp-idle-eviction.md +1 -1
  119. package/docs/pi-lens-fixer.md +9 -5
  120. package/docs/pi-lens-merge-policy.md +43 -1
  121. package/docs/pi-lens-monitor.md +3 -1
  122. package/docs/pi-lens-reviewer.md +4 -3
  123. package/docs/schema/pi-lens-config-v1.json +530 -0
  124. package/docs/servercapabilities.md +4 -1
  125. package/docs/word-index.md +6 -0
  126. package/package.json +1 -1
  127. package/rules/ast-grep-rules/rule-tests/no-identity-operator-on-literals-test.yml +12 -2
  128. package/rules/ast-grep-rules/rule-tests/throw-new-error-js-test.yml +2 -0
  129. package/rules/ast-grep-rules/rule-tests/throw-new-error-test.yml +2 -0
  130. package/rules/ast-grep-rules/rules/no-identity-operator-on-literals.yml +20 -12
  131. package/rules/ast-grep-rules/rules/throw-new-error-js.yml +2 -2
  132. package/rules/ast-grep-rules/rules/throw-new-error.yml +2 -2
  133. package/dist/chunk-54B42YRX.js +0 -27
  134. package/dist/chunk-CGGAIP7J.js +0 -29
  135. package/dist/chunk-HMFXILPV.js +0 -83
  136. package/dist/chunk-T6D4Q4AQ.js +0 -54
@@ -1,11 +1,11 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  loadPiLensProjectConfig
4
- } from "./chunk-DQ2NZ7C4.js";
4
+ } from "./chunk-N2IRDBZI.js";
5
5
  import {
6
6
  lazyEnvNumber,
7
7
  toPositiveFinite
8
- } from "./chunk-UK3CMEAL.js";
8
+ } from "./chunk-VSMJK3ZJ.js";
9
9
 
10
10
  // dist/clients/project-scale.js
11
11
  var DEFAULT_PROJECT_SCALE_BASE = 2e3;
@@ -24,8 +24,8 @@ var PROJECT_SCALE_RATIOS = {
24
24
  projectDiagnosticsScanner: 0.25,
25
25
  /** review graph: files kept. 0.5 * 2,000 = 1,000. */
26
26
  reviewGraph: 0.5,
27
- /** startup scan: source files counted. 1 * 2,000 = 2,000. */
28
- startupScan: 1,
27
+ /** startup scan: source files counted. 1.25 * 2,000 = 2,500. */
28
+ startupScan: 1.25,
29
29
  /** jscpd: directory entries visited (its own gate, not source-filter's). 3 * 2,000 = 6,000. */
30
30
  jscpd: 3,
31
31
  /** word index: files indexed. 3 * 2,000 = 6,000. */
@@ -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-22AVIGXS.js";
4
+ } from "./chunk-VYKKMYVT.js";
5
5
  import {
6
6
  createGenerationMap,
7
7
  createGenerationSource
8
- } from "./chunk-VN2AXLEX.js";
8
+ } from "./chunk-T54VJRAD.js";
9
9
  import {
10
10
  getDegradationLedgerGeneration,
11
11
  recordDegradationOnce
12
- } from "./chunk-N3YQJI6O.js";
12
+ } from "./chunk-7ELY2CSM.js";
13
13
  import {
14
14
  logExtension
15
- } from "./chunk-O6TQT6RI.js";
15
+ } from "./chunk-34OCDWOS.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-Q5U6FMDI.js";
23
+ } from "./chunk-G3RLJYA2.js";
24
24
 
25
25
  // dist/clients/tool-cwd.js
26
26
  import * as os from "node:os";
@@ -1,13 +1,22 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+ import {
3
+ canonicalDirectory,
4
+ listNestedLinkedWorktreeRoots
5
+ } from "./chunk-IMSQR4WO.js";
2
6
  import {
3
7
  EXCLUDED_DIRS,
4
8
  getExcludedDirGlobs
5
- } from "./chunk-VN2AXLEX.js";
9
+ } from "./chunk-T54VJRAD.js";
6
10
  import {
7
11
  escapeRegExp
8
- } from "./chunk-N3YQJI6O.js";
12
+ } from "./chunk-7ELY2CSM.js";
9
13
 
10
14
  // dist/clients/scratch-tree-policy.js
15
+ import { relative } from "node:path";
16
+ function nestedWorktreeOffsets(cwd) {
17
+ const base = canonicalDirectory(cwd);
18
+ return listNestedLinkedWorktreeRoots(cwd).map((root) => relative(base, root));
19
+ }
11
20
  function literalExcludedDirNames() {
12
21
  return EXCLUDED_DIRS.filter((name) => !name.includes("*") && !name.includes("?"));
13
22
  }
@@ -80,6 +89,7 @@ function isUnderSecretsLaneScratchTree(relPath) {
80
89
  }
81
90
 
82
91
  export {
92
+ nestedWorktreeOffsets,
83
93
  getScratchTreeGlobPatterns,
84
94
  getScratchTreeDirNames,
85
95
  getScratchTreeFnmatchPatterns,
@@ -2,17 +2,17 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  freshnessFromMtime,
4
4
  resolveRunnerPath
5
- } from "./chunk-PWFHBTSF.js";
5
+ } from "./chunk-XGUL4SLQ.js";
6
6
  import {
7
7
  translateGuidanceToolNames
8
- } from "./chunk-N3YQJI6O.js";
8
+ } from "./chunk-7ELY2CSM.js";
9
9
  import {
10
10
  logLatency
11
- } from "./chunk-5THXD6X5.js";
11
+ } from "./chunk-3PNFWVHT.js";
12
12
  import {
13
13
  normalizeMapKey,
14
14
  toProjectRelativePath
15
- } from "./chunk-Q5U6FMDI.js";
15
+ } from "./chunk-G3RLJYA2.js";
16
16
 
17
17
  // dist/clients/advisory-provenance.js
18
18
  import { createHash } from "node:crypto";
@@ -15,21 +15,21 @@ import {
15
15
  getFilterStats,
16
16
  isBuildArtifact,
17
17
  sourceTwinCandidates
18
- } from "./chunk-6QIUX4EP.js";
19
- import "./chunk-VHQLPIRJ.js";
20
- import "./chunk-VN2AXLEX.js";
18
+ } from "./chunk-USHG4DLH.js";
19
+ import "./chunk-H5EV3VMF.js";
20
+ import "./chunk-T54VJRAD.js";
21
21
  import "./chunk-QYF5S6P6.js";
22
- import "./chunk-5ZEJHV35.js";
23
- import "./chunk-DQ2NZ7C4.js";
24
- import "./chunk-VNMT7C64.js";
22
+ import "./chunk-64LU2OVH.js";
23
+ import "./chunk-N2IRDBZI.js";
24
+ import "./chunk-Z6BB4JLQ.js";
25
25
  import "./chunk-2EECBNC5.js";
26
- import "./chunk-N3YQJI6O.js";
27
- import "./chunk-O6TQT6RI.js";
28
- import "./chunk-5THXD6X5.js";
29
- import "./chunk-UK3CMEAL.js";
26
+ import "./chunk-7ELY2CSM.js";
27
+ import "./chunk-34OCDWOS.js";
28
+ import "./chunk-3PNFWVHT.js";
29
+ import "./chunk-VSMJK3ZJ.js";
30
30
  import "./chunk-LJDODBBZ.js";
31
31
  import "./chunk-ABBOA7UD.js";
32
- import "./chunk-Q5U6FMDI.js";
32
+ import "./chunk-G3RLJYA2.js";
33
33
  import "./chunk-NXL4FFQQ.js";
34
34
  export {
35
35
  ALL_SCANNABLE_EXTENSIONS,
@@ -2,56 +2,56 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  createAvailabilityChecker,
4
4
  resolveAvailableOrInstall
5
- } from "./chunk-7FBF7NPR.js";
5
+ } from "./chunk-NFXP47RV.js";
6
6
  import {
7
7
  ruffConfigArgs
8
- } from "./chunk-HHYAELLJ.js";
9
- import "./chunk-B3I2UUT4.js";
10
- import "./chunk-DIULIWKU.js";
11
- import "./chunk-VDBPVIKD.js";
12
- import "./chunk-TGPXLY2J.js";
8
+ } from "./chunk-MGIWSROG.js";
9
+ import "./chunk-IQZXOZ7S.js";
10
+ import "./chunk-LNOMA3MP.js";
11
+ import "./chunk-U52SAGRM.js";
12
+ import "./chunk-KJCWXUUS.js";
13
13
  import "./chunk-QOZXJ4NA.js";
14
- import "./chunk-PAK6IDME.js";
15
- import "./chunk-GUOGVTCQ.js";
16
- import "./chunk-AJVLWNFN.js";
17
- import "./chunk-YGVYKNSN.js";
18
- import "./chunk-LNAKEO63.js";
14
+ import "./chunk-S6AMWKPC.js";
15
+ import "./chunk-F5VLZHUW.js";
16
+ import "./chunk-AXKPQ6ZI.js";
17
+ import "./chunk-7BX5DWSA.js";
18
+ import "./chunk-IUKPRZER.js";
19
19
  import "./chunk-Z3CCVDUB.js";
20
20
  import "./chunk-2BEMIWEW.js";
21
- import "./chunk-OQGFCZJ4.js";
21
+ import "./chunk-LD7WFTRX.js";
22
22
  import {
23
23
  resolveToolCwd
24
- } from "./chunk-RUOG5D2C.js";
25
- import "./chunk-U3VGR4VU.js";
26
- import "./chunk-NTUJEGDZ.js";
27
- import "./chunk-EOKRQ3SA.js";
28
- import "./chunk-WONERJTP.js";
29
- import "./chunk-22AVIGXS.js";
30
- import "./chunk-GVXA6CCE.js";
31
- import "./chunk-6QIUX4EP.js";
32
- import "./chunk-VHQLPIRJ.js";
24
+ } from "./chunk-IUR76K6A.js";
25
+ import "./chunk-T4QZ6FEH.js";
26
+ import "./chunk-D6YF5HKX.js";
27
+ import "./chunk-CMU4RMJB.js";
28
+ import "./chunk-O7HZX7CA.js";
29
+ import "./chunk-VYKKMYVT.js";
30
+ import "./chunk-BNKLYOOO.js";
31
+ import "./chunk-USHG4DLH.js";
32
+ import "./chunk-H5EV3VMF.js";
33
33
  import {
34
34
  safeSpawnAsync
35
- } from "./chunk-VN2AXLEX.js";
35
+ } from "./chunk-T54VJRAD.js";
36
36
  import "./chunk-BW5KFIQC.js";
37
37
  import "./chunk-QYF5S6P6.js";
38
38
  import {
39
39
  isFileKind
40
- } from "./chunk-5ZEJHV35.js";
41
- import "./chunk-DQ2NZ7C4.js";
42
- import "./chunk-VNMT7C64.js";
40
+ } from "./chunk-64LU2OVH.js";
41
+ import "./chunk-N2IRDBZI.js";
42
+ import "./chunk-Z6BB4JLQ.js";
43
43
  import "./chunk-2EECBNC5.js";
44
- import "./chunk-N3YQJI6O.js";
44
+ import "./chunk-7ELY2CSM.js";
45
45
  import {
46
46
  createSubsystemLogger
47
- } from "./chunk-O6TQT6RI.js";
48
- import "./chunk-5THXD6X5.js";
49
- import "./chunk-UK3CMEAL.js";
47
+ } from "./chunk-34OCDWOS.js";
48
+ import "./chunk-3PNFWVHT.js";
49
+ import "./chunk-VSMJK3ZJ.js";
50
50
  import "./chunk-LJDODBBZ.js";
51
51
  import "./chunk-ABBOA7UD.js";
52
52
  import {
53
53
  pathsEqual
54
- } from "./chunk-Q5U6FMDI.js";
54
+ } from "./chunk-G3RLJYA2.js";
55
55
  import "./chunk-NXL4FFQQ.js";
56
56
 
57
57
  // dist/clients/ruff-client.js
@@ -1,7 +1,39 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+ import {
3
+ getGlobalPiLensDir
4
+ } from "./chunk-T54VJRAD.js";
2
5
  import {
3
6
  SPECIAL_FILENAMES
4
- } from "./chunk-5ZEJHV35.js";
7
+ } from "./chunk-64LU2OVH.js";
8
+ import {
9
+ getTurnId
10
+ } from "./chunk-VSMJK3ZJ.js";
11
+ import {
12
+ BoundedFifoMap
13
+ } from "./chunk-ABBOA7UD.js";
14
+
15
+ // dist/clients/custom-rule-locations.js
16
+ import * as path from "node:path";
17
+ function getUserRuleRoot() {
18
+ return path.join(getGlobalPiLensDir(), "rules");
19
+ }
20
+ var RULE_CORPUS_CYCLE_ENTRIES = 16;
21
+ var ruleCorpusCycleFingerprints = new BoundedFifoMap(RULE_CORPUS_CYCLE_ENTRIES);
22
+ var cycleSlot;
23
+ function ruleCorpusFingerprintForCycle(family, root, compute, force = false) {
24
+ const cycle = getTurnId();
25
+ if (!force && cycleSlot !== void 0 && cycleSlot.cycle === cycle && cycleSlot.family === family && cycleSlot.root === root) {
26
+ return cycleSlot.fingerprint;
27
+ }
28
+ const key = `${cycle}\0${family}\0${root}`;
29
+ let fingerprint = force ? void 0 : ruleCorpusCycleFingerprints.get(key);
30
+ if (fingerprint === void 0) {
31
+ fingerprint = compute(root);
32
+ ruleCorpusCycleFingerprints.set(key, fingerprint);
33
+ }
34
+ cycleSlot = { cycle, family, root, fingerprint };
35
+ return fingerprint;
36
+ }
5
37
 
6
38
  // dist/clients/language-registry.js
7
39
  var LANGUAGES = [
@@ -381,6 +413,8 @@ var SCAN_LANGUAGE_PRIORITY = [
381
413
  ];
382
414
 
383
415
  export {
416
+ getUserRuleRoot,
417
+ ruleCorpusFingerprintForCycle,
384
418
  extensionsForLanguage,
385
419
  extensionsForLanguageToken,
386
420
  resolveLanguage,
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  detectFileRole
4
- } from "./chunk-DQ2NZ7C4.js";
4
+ } from "./chunk-N2IRDBZI.js";
5
5
 
6
6
  // dist/clients/collateral-test-role.js
7
7
  function isTestRoleCollateral(filePath) {
@@ -2,22 +2,22 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  getSourceFiles,
4
4
  getSourceFilesAsync
5
- } from "./chunk-GVXA6CCE.js";
6
- import "./chunk-6QIUX4EP.js";
7
- import "./chunk-VHQLPIRJ.js";
8
- import "./chunk-VN2AXLEX.js";
5
+ } from "./chunk-BNKLYOOO.js";
6
+ import "./chunk-USHG4DLH.js";
7
+ import "./chunk-H5EV3VMF.js";
8
+ import "./chunk-T54VJRAD.js";
9
9
  import "./chunk-QYF5S6P6.js";
10
- import "./chunk-5ZEJHV35.js";
11
- import "./chunk-DQ2NZ7C4.js";
12
- import "./chunk-VNMT7C64.js";
10
+ import "./chunk-64LU2OVH.js";
11
+ import "./chunk-N2IRDBZI.js";
12
+ import "./chunk-Z6BB4JLQ.js";
13
13
  import "./chunk-2EECBNC5.js";
14
- import "./chunk-N3YQJI6O.js";
15
- import "./chunk-O6TQT6RI.js";
16
- import "./chunk-5THXD6X5.js";
17
- import "./chunk-UK3CMEAL.js";
14
+ import "./chunk-7ELY2CSM.js";
15
+ import "./chunk-34OCDWOS.js";
16
+ import "./chunk-3PNFWVHT.js";
17
+ import "./chunk-VSMJK3ZJ.js";
18
18
  import "./chunk-LJDODBBZ.js";
19
19
  import "./chunk-ABBOA7UD.js";
20
- import "./chunk-Q5U6FMDI.js";
20
+ import "./chunk-G3RLJYA2.js";
21
21
  import "./chunk-NXL4FFQQ.js";
22
22
  export {
23
23
  getSourceFiles,
@@ -1,27 +1,27 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  resolveToolCwd
4
- } from "./chunk-RUOG5D2C.js";
4
+ } from "./chunk-IUR76K6A.js";
5
5
  import {
6
6
  allAvailableGlobalBinDirs,
7
7
  installArgs,
8
8
  pmBinary,
9
9
  resolveNodePackageManager
10
- } from "./chunk-U3VGR4VU.js";
10
+ } from "./chunk-T4QZ6FEH.js";
11
11
  import {
12
12
  assertInstallAllowed,
13
13
  projectTrustDenialReason
14
- } from "./chunk-NTUJEGDZ.js";
14
+ } from "./chunk-D6YF5HKX.js";
15
15
  import {
16
16
  probeToolAsync
17
- } from "./chunk-EOKRQ3SA.js";
17
+ } from "./chunk-CMU4RMJB.js";
18
18
  import {
19
19
  TRANSIENT_MAX_COOLDOWN_MS,
20
20
  classifyProbeFailure,
21
21
  createAvailabilityLatch,
22
22
  logAvailabilityDecision,
23
23
  startHostStallSampler
24
- } from "./chunk-WONERJTP.js";
24
+ } from "./chunk-O7HZX7CA.js";
25
25
  import {
26
26
  acquireBoundedPidFileLock,
27
27
  acquireQuarantinePidFileLock,
@@ -37,7 +37,7 @@ import {
37
37
  safeSpawnAsync,
38
38
  startGenerationHeartbeat,
39
39
  tryAcquireGeneration
40
- } from "./chunk-VN2AXLEX.js";
40
+ } from "./chunk-T54VJRAD.js";
41
41
  import {
42
42
  DEFAULT_MAX_OUTPUT_BYTES,
43
43
  createBoundedOutputSink,
@@ -48,23 +48,23 @@ import {
48
48
  getDegradationLedgerGeneration,
49
49
  incrementDegradationCount,
50
50
  recordDegradationOnce
51
- } from "./chunk-N3YQJI6O.js";
51
+ } from "./chunk-7ELY2CSM.js";
52
52
  import {
53
53
  logExtension
54
- } from "./chunk-O6TQT6RI.js";
54
+ } from "./chunk-34OCDWOS.js";
55
55
  import {
56
56
  createNdjsonLogger,
57
57
  getGlobalPiLensLogDir,
58
58
  getMaxLogSizeMB,
59
59
  isTestMode
60
- } from "./chunk-UK3CMEAL.js";
60
+ } from "./chunk-VSMJK3ZJ.js";
61
61
  import {
62
62
  BoundedLruCache
63
63
  } from "./chunk-ABBOA7UD.js";
64
64
  import {
65
65
  findLocalToolConfig,
66
66
  isFullyQualified
67
- } from "./chunk-Q5U6FMDI.js";
67
+ } from "./chunk-G3RLJYA2.js";
68
68
  import {
69
69
  __require
70
70
  } from "./chunk-NXL4FFQQ.js";
@@ -4057,7 +4057,7 @@ async function stampInstallResolution(toolId) {
4057
4057
  return;
4058
4058
  try {
4059
4059
  const resolutionId = lastInstallResolutionId.get(toolId);
4060
- const refresh = await import("./chunk-T4ERT73Y.js");
4060
+ const refresh = await import("./chunk-CBD2B5CP.js");
4061
4061
  await refresh.stampManagedToolInstall(toolId, resolutionId);
4062
4062
  } catch {
4063
4063
  }
@@ -4070,7 +4070,7 @@ async function finishInstallAttempt(toolId, ok, startedAt) {
4070
4070
  if (ok) {
4071
4071
  resetSafeSpawnWindowsCommandCache();
4072
4072
  try {
4073
- const { resetMadgeManagedPathMemo } = await import("./chunk-T6D4Q4AQ.js");
4073
+ const { resetMadgeManagedPathMemo } = await import("./chunk-WPE5FPGR.js");
4074
4074
  resetMadgeManagedPathMemo();
4075
4075
  } catch (err) {
4076
4076
  logSessionStart(`auto-install ${toolId}: madge memo reset failed: ${err.message}`);
@@ -4100,7 +4100,7 @@ async function installTool(toolId, ownsLock) {
4100
4100
  return false;
4101
4101
  const npmPath = await installNpmTool(tool.id, tool.packageName, tool.binaryName, tool.checkArgs, getToolVerificationTimeout(tool), packageEntryVerification(tool), ownsLock);
4102
4102
  if (npmPath !== void 0) {
4103
- await import("./chunk-T4ERT73Y.js").then((m) => m.stampManagedToolInstalled(tool.id, tool.packageName)).catch(() => {
4103
+ await import("./chunk-CBD2B5CP.js").then((m) => m.stampManagedToolInstalled(tool.id, tool.packageName)).catch(() => {
4104
4104
  });
4105
4105
  }
4106
4106
  return finishInstallAttempt(tool.id, npmPath !== void 0, startedAt);
@@ -3,10 +3,10 @@ import {
3
3
  extractTomlTableSection,
4
4
  hasTomlTable,
5
5
  parseTomlStringArray
6
- } from "./chunk-PAK6IDME.js";
6
+ } from "./chunk-S6AMWKPC.js";
7
7
  import {
8
8
  recordDegradationOnce
9
- } from "./chunk-N3YQJI6O.js";
9
+ } from "./chunk-7ELY2CSM.js";
10
10
  import {
11
11
  UV_WORKSPACE_EXCLUDE_DIALECT,
12
12
  UV_WORKSPACE_MEMBERS_DIALECT,
@@ -14,7 +14,7 @@ import {
14
14
  matchesWorkspaceMemberPattern,
15
15
  toPosix,
16
16
  walkUpDirs
17
- } from "./chunk-Q5U6FMDI.js";
17
+ } from "./chunk-G3RLJYA2.js";
18
18
 
19
19
  // dist/clients/python-environment.js
20
20
  import { access, readFile } from "node:fs/promises";
@@ -4,21 +4,21 @@ import {
4
4
  } from "./chunk-QOZXJ4NA.js";
5
5
  import {
6
6
  loadProjectSnapshotWithoutWordIndex
7
- } from "./chunk-AJVLWNFN.js";
7
+ } from "./chunk-AXKPQ6ZI.js";
8
8
  import {
9
9
  TERRAGRUNT_FILENAMES
10
- } from "./chunk-5ZEJHV35.js";
10
+ } from "./chunk-64LU2OVH.js";
11
11
  import {
12
12
  recordDegradationOnce
13
- } from "./chunk-N3YQJI6O.js";
13
+ } from "./chunk-7ELY2CSM.js";
14
14
  import {
15
15
  logLatency
16
- } from "./chunk-5THXD6X5.js";
16
+ } from "./chunk-3PNFWVHT.js";
17
17
  import {
18
18
  findNearestContaining,
19
19
  normalizeMapKey,
20
20
  walkUpDirs
21
- } from "./chunk-Q5U6FMDI.js";
21
+ } from "./chunk-G3RLJYA2.js";
22
22
 
23
23
  // dist/clients/tool-policy.js
24
24
  import * as fs from "node:fs";
@@ -1,17 +1,17 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  extractFactsFromTree
4
- } from "./chunk-JOLITGCC.js";
4
+ } from "./chunk-TQFBZVCG.js";
5
5
  import {
6
6
  findOwnerName
7
7
  } from "./chunk-5W3R6LFT.js";
8
8
  import {
9
9
  firstChildOfType,
10
10
  walk
11
- } from "./chunk-LW6XKDZQ.js";
11
+ } from "./chunk-UEAHAMEI.js";
12
12
  import {
13
13
  isJstsFactFile
14
- } from "./chunk-5ZEJHV35.js";
14
+ } from "./chunk-64LU2OVH.js";
15
15
 
16
16
  // dist/clients/dispatch/facts/function-facts.js
17
17
  var BOUNDARY_PREFIXES = [