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
@@ -2,19 +2,19 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
2
2
  import {
3
3
  AgentBehaviorClient,
4
4
  agentBehaviorClient
5
- } from "./chunk-6P62QVEA.js";
6
- import "./chunk-OAXNDZJ7.js";
7
- import "./chunk-VN2AXLEX.js";
8
- import "./chunk-DQ2NZ7C4.js";
9
- import "./chunk-VNMT7C64.js";
5
+ } from "./chunk-2UMYMRI3.js";
6
+ import "./chunk-3JSEWUWI.js";
7
+ import "./chunk-T54VJRAD.js";
8
+ import "./chunk-N2IRDBZI.js";
9
+ import "./chunk-Z6BB4JLQ.js";
10
10
  import "./chunk-2EECBNC5.js";
11
- import "./chunk-N3YQJI6O.js";
12
- import "./chunk-O6TQT6RI.js";
13
- import "./chunk-5THXD6X5.js";
14
- import "./chunk-UK3CMEAL.js";
11
+ import "./chunk-7ELY2CSM.js";
12
+ import "./chunk-34OCDWOS.js";
13
+ import "./chunk-3PNFWVHT.js";
14
+ import "./chunk-VSMJK3ZJ.js";
15
15
  import "./chunk-LJDODBBZ.js";
16
16
  import "./chunk-ABBOA7UD.js";
17
- import "./chunk-Q5U6FMDI.js";
17
+ import "./chunk-G3RLJYA2.js";
18
18
  import "./chunk-NXL4FFQQ.js";
19
19
  export {
20
20
  AgentBehaviorClient,
@@ -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-6QIUX4EP.js";
5
+ } from "./chunk-USHG4DLH.js";
6
6
 
7
7
  // dist/clients/scan-utils.js
8
8
  function getSourceFiles(dir, _isTsProject) {
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  HOOK_WALL_BUDGET_MS,
8
8
  bounded
9
- } from "./chunk-GUOGVTCQ.js";
9
+ } from "./chunk-F5VLZHUW.js";
10
10
  import {
11
11
  acquireManagedInstallGate,
12
12
  commitDurableStoreAsync,
@@ -19,38 +19,38 @@ import {
19
19
  refreshManagedTool,
20
20
  resolveManagedNpmBinPath,
21
21
  verifyToolBinary
22
- } from "./chunk-OQGFCZJ4.js";
23
- import "./chunk-RUOG5D2C.js";
22
+ } from "./chunk-LD7WFTRX.js";
23
+ import "./chunk-IUR76K6A.js";
24
24
  import {
25
25
  pmBinary,
26
26
  resolveNodePackageManager,
27
27
  updateArgs
28
- } from "./chunk-U3VGR4VU.js";
29
- import "./chunk-NTUJEGDZ.js";
30
- import "./chunk-EOKRQ3SA.js";
31
- import "./chunk-WONERJTP.js";
32
- import "./chunk-22AVIGXS.js";
33
- import "./chunk-GVXA6CCE.js";
34
- import "./chunk-6QIUX4EP.js";
35
- import "./chunk-VHQLPIRJ.js";
28
+ } from "./chunk-T4QZ6FEH.js";
29
+ import "./chunk-D6YF5HKX.js";
30
+ import "./chunk-CMU4RMJB.js";
31
+ import "./chunk-O7HZX7CA.js";
32
+ import "./chunk-VYKKMYVT.js";
33
+ import "./chunk-BNKLYOOO.js";
34
+ import "./chunk-USHG4DLH.js";
35
+ import "./chunk-H5EV3VMF.js";
36
36
  import {
37
37
  safeSpawnAsync
38
- } from "./chunk-VN2AXLEX.js";
38
+ } from "./chunk-T54VJRAD.js";
39
39
  import "./chunk-BW5KFIQC.js";
40
40
  import "./chunk-QYF5S6P6.js";
41
- import "./chunk-5ZEJHV35.js";
42
- import "./chunk-DQ2NZ7C4.js";
43
- import "./chunk-VNMT7C64.js";
41
+ import "./chunk-64LU2OVH.js";
42
+ import "./chunk-N2IRDBZI.js";
43
+ import "./chunk-Z6BB4JLQ.js";
44
44
  import "./chunk-2EECBNC5.js";
45
45
  import {
46
46
  recordDegradationOnce
47
- } from "./chunk-N3YQJI6O.js";
48
- import "./chunk-O6TQT6RI.js";
49
- import "./chunk-5THXD6X5.js";
50
- import "./chunk-UK3CMEAL.js";
47
+ } from "./chunk-7ELY2CSM.js";
48
+ import "./chunk-34OCDWOS.js";
49
+ import "./chunk-3PNFWVHT.js";
50
+ import "./chunk-VSMJK3ZJ.js";
51
51
  import "./chunk-LJDODBBZ.js";
52
52
  import "./chunk-ABBOA7UD.js";
53
- import "./chunk-Q5U6FMDI.js";
53
+ import "./chunk-G3RLJYA2.js";
54
54
  import "./chunk-NXL4FFQQ.js";
55
55
 
56
56
  // dist/clients/installer/managed-tool-refresh.js
@@ -16,11 +16,11 @@ import {
16
16
  isHelmYamlTemplatePath,
17
17
  isJstsFactFile,
18
18
  isReadableSourceFile
19
- } from "./chunk-5ZEJHV35.js";
20
- import "./chunk-VNMT7C64.js";
21
- import "./chunk-5THXD6X5.js";
22
- import "./chunk-UK3CMEAL.js";
23
- import "./chunk-Q5U6FMDI.js";
19
+ } from "./chunk-64LU2OVH.js";
20
+ import "./chunk-Z6BB4JLQ.js";
21
+ import "./chunk-3PNFWVHT.js";
22
+ import "./chunk-VSMJK3ZJ.js";
23
+ import "./chunk-G3RLJYA2.js";
24
24
  import "./chunk-NXL4FFQQ.js";
25
25
  export {
26
26
  CODE_KINDS,
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  safeSpawnAsync
4
- } from "./chunk-VN2AXLEX.js";
4
+ } from "./chunk-T54VJRAD.js";
5
5
  import {
6
6
  createSingleFlight
7
7
  } from "./chunk-BW5KFIQC.js";
@@ -3,9 +3,9 @@ import {
3
3
  FactStore,
4
4
  getFactStoreEvictionReporter,
5
5
  setFactStoreEvictionReporter
6
- } from "./chunk-NMABWBZN.js";
6
+ } from "./chunk-UGSMCQ4D.js";
7
7
  import "./chunk-ABBOA7UD.js";
8
- import "./chunk-Q5U6FMDI.js";
8
+ import "./chunk-G3RLJYA2.js";
9
9
  import "./chunk-NXL4FFQQ.js";
10
10
  export {
11
11
  FactStore,
@@ -1,33 +1,34 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  getScratchTreeDirNames
4
- } from "./chunk-TO6WL3GM.js";
4
+ } from "./chunk-J3FZR3YY.js";
5
5
  import {
6
6
  SecurityScanClient
7
- } from "./chunk-7F72PXY2.js";
7
+ } from "./chunk-5JHXUETW.js";
8
+ import "./chunk-IMSQR4WO.js";
8
9
  import {
9
10
  resolveOpengrepConfig
10
- } from "./chunk-VDBPVIKD.js";
11
- import "./chunk-EOKRQ3SA.js";
12
- import "./chunk-WONERJTP.js";
11
+ } from "./chunk-U52SAGRM.js";
12
+ import "./chunk-CMU4RMJB.js";
13
+ import "./chunk-O7HZX7CA.js";
13
14
  import {
14
15
  safeSpawnAsync
15
- } from "./chunk-VN2AXLEX.js";
16
+ } from "./chunk-T54VJRAD.js";
16
17
  import "./chunk-BW5KFIQC.js";
17
- import "./chunk-DQ2NZ7C4.js";
18
- import "./chunk-VNMT7C64.js";
18
+ import "./chunk-N2IRDBZI.js";
19
+ import "./chunk-Z6BB4JLQ.js";
19
20
  import "./chunk-2EECBNC5.js";
20
21
  import {
21
22
  recordDegradationOnce
22
- } from "./chunk-N3YQJI6O.js";
23
- import "./chunk-O6TQT6RI.js";
24
- import "./chunk-5THXD6X5.js";
25
- import "./chunk-UK3CMEAL.js";
23
+ } from "./chunk-7ELY2CSM.js";
24
+ import "./chunk-34OCDWOS.js";
25
+ import "./chunk-3PNFWVHT.js";
26
+ import "./chunk-VSMJK3ZJ.js";
26
27
  import "./chunk-LJDODBBZ.js";
27
28
  import "./chunk-ABBOA7UD.js";
28
29
  import {
29
30
  realpathOrResolve
30
- } from "./chunk-Q5U6FMDI.js";
31
+ } from "./chunk-G3RLJYA2.js";
31
32
  import "./chunk-NXL4FFQQ.js";
32
33
 
33
34
  // dist/clients/opengrep-client.js
@@ -104,7 +105,13 @@ var OpengrepClient = class _OpengrepClient extends SecurityScanClient {
104
105
  // pattern matches that directory name anywhere in the tree,
105
106
  // independent of gitignore. Same `EXCLUDED_DIRS`-derived list
106
107
  // gitleaks/trivy use, so the three scanners can't drift apart.
107
- ...getScratchTreeDirNames().flatMap((name) => ["--exclude", name]),
108
+ // Opengrep's git-mode walk already omits nested linked checkouts.
109
+ // Do not turn each registration into a wcmatch pattern: hundreds of
110
+ // patterns make the matcher quadratic and can hit its pattern limit.
111
+ ...getScratchTreeDirNames().flatMap((pattern) => [
112
+ "--exclude",
113
+ pattern
114
+ ]),
108
115
  cwd
109
116
  ], { cwd, timeout: SCAN_TIMEOUT_MS });
110
117
  if (result.error) {
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  recordDegradation
4
- } from "./chunk-N3YQJI6O.js";
4
+ } from "./chunk-7ELY2CSM.js";
5
5
  import {
6
6
  logExtension
7
- } from "./chunk-O6TQT6RI.js";
7
+ } from "./chunk-34OCDWOS.js";
8
8
 
9
9
  // dist/clients/project-trust.js
10
10
  var trustState = "unknown";
@@ -1,20 +1,24 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  getSecretsLaneAllowlistPaths,
4
- isUnderSecretsLaneScratchTree
5
- } from "./chunk-TO6WL3GM.js";
4
+ isUnderSecretsLaneScratchTree,
5
+ nestedWorktreeOffsets
6
+ } from "./chunk-J3FZR3YY.js";
6
7
  import {
7
8
  SecurityScanClient
8
- } from "./chunk-7F72PXY2.js";
9
+ } from "./chunk-5JHXUETW.js";
9
10
  import {
10
11
  collectTrackedFiles,
11
12
  collectUntrackedIgnoredIds,
12
13
  safeSpawnAsync
13
- } from "./chunk-VN2AXLEX.js";
14
+ } from "./chunk-T54VJRAD.js";
15
+ import {
16
+ escapeRegExp
17
+ } from "./chunk-7ELY2CSM.js";
14
18
  import {
15
19
  normalizeEphemeralMapKey,
16
20
  normalizeMapKey
17
- } from "./chunk-Q5U6FMDI.js";
21
+ } from "./chunk-G3RLJYA2.js";
18
22
 
19
23
  // dist/clients/gitleaks-client.js
20
24
  import * as fs from "node:fs";
@@ -48,10 +52,17 @@ var PLACEHOLDER_SECRET_REGEXES = [
48
52
  String.raw`(?i)^x{3,}$`,
49
53
  String.raw`(?i)^(changeme|change[-_]me|example|placeholder|dummy|fake|redacted|xxxxxxxx)$`
50
54
  ];
55
+ function worktreeAllowlistPath(worktree) {
56
+ const segments = worktree.split(/[/\\]/).map(escapeRegExp);
57
+ return `^${segments.join("[/\\\\]")}(?:[/\\\\].*)?$`;
58
+ }
51
59
  function writeScopedGitleaksConfig(outDir, cwd) {
52
60
  const localConfig = findLocalGitleaksConfig(cwd);
53
61
  const extendLine = localConfig ? `path = ${JSON.stringify(localConfig)}` : "useDefault = true";
54
- const pathPatterns = getSecretsLaneAllowlistPaths().map((p) => ` ${JSON.stringify(p)},`).join("\n");
62
+ const pathPatterns = [
63
+ ...getSecretsLaneAllowlistPaths(),
64
+ ...nestedWorktreeOffsets(cwd).map((offset) => worktreeAllowlistPath(path.join(cwd, offset)))
65
+ ].map((p) => ` ${JSON.stringify(p)},`).join("\n");
55
66
  const regexPatterns = PLACEHOLDER_SECRET_REGEXES.map((r) => ` ${JSON.stringify(r)},`).join("\n");
56
67
  const toml = `[extend]
57
68
  ${extendLine}
@@ -1,21 +1,21 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  collectSourceFiles
4
- } from "./chunk-6QIUX4EP.js";
5
- import "./chunk-VHQLPIRJ.js";
6
- import "./chunk-VN2AXLEX.js";
4
+ } from "./chunk-USHG4DLH.js";
5
+ import "./chunk-H5EV3VMF.js";
6
+ import "./chunk-T54VJRAD.js";
7
7
  import "./chunk-QYF5S6P6.js";
8
- import "./chunk-5ZEJHV35.js";
9
- import "./chunk-DQ2NZ7C4.js";
10
- import "./chunk-VNMT7C64.js";
8
+ import "./chunk-64LU2OVH.js";
9
+ import "./chunk-N2IRDBZI.js";
10
+ import "./chunk-Z6BB4JLQ.js";
11
11
  import "./chunk-2EECBNC5.js";
12
- import "./chunk-N3YQJI6O.js";
13
- import "./chunk-O6TQT6RI.js";
14
- import "./chunk-5THXD6X5.js";
15
- import "./chunk-UK3CMEAL.js";
12
+ import "./chunk-7ELY2CSM.js";
13
+ import "./chunk-34OCDWOS.js";
14
+ import "./chunk-3PNFWVHT.js";
15
+ import "./chunk-VSMJK3ZJ.js";
16
16
  import "./chunk-LJDODBBZ.js";
17
17
  import "./chunk-ABBOA7UD.js";
18
- import "./chunk-Q5U6FMDI.js";
18
+ import "./chunk-G3RLJYA2.js";
19
19
  import "./chunk-NXL4FFQQ.js";
20
20
 
21
21
  // dist/clients/todo-scanner.js
@@ -3,22 +3,22 @@ import {
3
3
  RustClient,
4
4
  resetRustAvailability,
5
5
  rustClient
6
- } from "./chunk-RPD5K5NC.js";
7
- import "./chunk-F3P7VQ7H.js";
8
- import "./chunk-EOKRQ3SA.js";
9
- import "./chunk-WONERJTP.js";
10
- import "./chunk-VN2AXLEX.js";
6
+ } from "./chunk-3MRXIJ6I.js";
7
+ import "./chunk-XHSCVSOL.js";
8
+ import "./chunk-CMU4RMJB.js";
9
+ import "./chunk-O7HZX7CA.js";
10
+ import "./chunk-T54VJRAD.js";
11
11
  import "./chunk-BW5KFIQC.js";
12
- import "./chunk-DQ2NZ7C4.js";
13
- import "./chunk-VNMT7C64.js";
12
+ import "./chunk-N2IRDBZI.js";
13
+ import "./chunk-Z6BB4JLQ.js";
14
14
  import "./chunk-2EECBNC5.js";
15
- import "./chunk-N3YQJI6O.js";
16
- import "./chunk-O6TQT6RI.js";
17
- import "./chunk-5THXD6X5.js";
18
- import "./chunk-UK3CMEAL.js";
15
+ import "./chunk-7ELY2CSM.js";
16
+ import "./chunk-34OCDWOS.js";
17
+ import "./chunk-3PNFWVHT.js";
18
+ import "./chunk-VSMJK3ZJ.js";
19
19
  import "./chunk-LJDODBBZ.js";
20
20
  import "./chunk-ABBOA7UD.js";
21
- import "./chunk-Q5U6FMDI.js";
21
+ import "./chunk-G3RLJYA2.js";
22
22
  import "./chunk-NXL4FFQQ.js";
23
23
  export {
24
24
  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
  recordDegradationOnce
4
- } from "./chunk-N3YQJI6O.js";
4
+ } from "./chunk-7ELY2CSM.js";
5
5
 
6
6
  // dist/clients/deadline-utils.js
7
7
  function combineAbortSignals(...signals) {
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-2EECBNC5.js";
5
5
  import {
6
6
  LEDGER_FIELD_MAX
7
- } from "./chunk-N3YQJI6O.js";
7
+ } from "./chunk-7ELY2CSM.js";
8
8
 
9
9
  // dist/clients/dispatch/runners/utils/spawn-outcome.js
10
10
  function firstOutputLine(text, max = LEDGER_FIELD_MAX) {
@@ -2148,20 +2148,26 @@ function isUnderDir(child, parent) {
2148
2148
  const parentPrefix = normParent.endsWith("/") ? normParent : `${normParent}/`;
2149
2149
  return normChild === normParent || normChild.startsWith(parentPrefix);
2150
2150
  }
2151
+ function isOutsideProjectRoot(filePath, projectRoot) {
2152
+ return !isUnderDir(filePath, projectRoot);
2153
+ }
2151
2154
  var VENDOR_DIR_NAMES = /* @__PURE__ */ new Set([
2152
2155
  "node_modules",
2153
2156
  "vendor",
2154
2157
  "vendors",
2155
2158
  "third_party",
2156
- "third-party"
2159
+ "third-party",
2160
+ ".venv",
2161
+ "site-packages",
2162
+ "bower_components"
2157
2163
  ]);
2164
+ function isVendorPath(filePath) {
2165
+ return normalizeFilePath(filePath).split("/").some((segment) => VENDOR_DIR_NAMES.has(segment.toLowerCase()));
2166
+ }
2158
2167
  function isExternalOrVendorFile(filePath, projectRoot) {
2159
- if (!isUnderDir(filePath, projectRoot))
2168
+ if (isOutsideProjectRoot(filePath, projectRoot))
2160
2169
  return true;
2161
- const normalized = normalizeFilePath(filePath);
2162
- const rootNorm = normalizeFilePath(projectRoot);
2163
- const rel = normalized.startsWith(rootNorm + "/") ? normalized.slice(rootNorm.length + 1) : normalized;
2164
- return rel.split("/").some((seg) => VENDOR_DIR_NAMES.has(seg));
2170
+ return isVendorPath(filePath);
2165
2171
  }
2166
2172
  function nameMatchesMarkerGlob(name, pattern) {
2167
2173
  return minimatch(name, pattern, {
@@ -7,19 +7,19 @@ import {
7
7
  loadCallGraph,
8
8
  parseSymbolKey,
9
9
  saveCallGraph
10
- } from "./chunk-NKOUFPQF.js";
10
+ } from "./chunk-WW5BLB74.js";
11
11
  import "./chunk-3MED75HT.js";
12
- import "./chunk-VN2AXLEX.js";
13
- import "./chunk-DQ2NZ7C4.js";
14
- import "./chunk-VNMT7C64.js";
12
+ import "./chunk-T54VJRAD.js";
13
+ import "./chunk-N2IRDBZI.js";
14
+ import "./chunk-Z6BB4JLQ.js";
15
15
  import "./chunk-2EECBNC5.js";
16
- import "./chunk-N3YQJI6O.js";
17
- import "./chunk-O6TQT6RI.js";
18
- import "./chunk-5THXD6X5.js";
19
- import "./chunk-UK3CMEAL.js";
16
+ import "./chunk-7ELY2CSM.js";
17
+ import "./chunk-34OCDWOS.js";
18
+ import "./chunk-3PNFWVHT.js";
19
+ import "./chunk-VSMJK3ZJ.js";
20
20
  import "./chunk-LJDODBBZ.js";
21
21
  import "./chunk-ABBOA7UD.js";
22
- import "./chunk-Q5U6FMDI.js";
22
+ import "./chunk-G3RLJYA2.js";
23
23
  import "./chunk-NXL4FFQQ.js";
24
24
  export {
25
25
  CALL_GRAPH_CACHE_VERSION,
@@ -1,74 +1,74 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+ import {
3
+ nestedWorktreeOffsets
4
+ } from "./chunk-J3FZR3YY.js";
2
5
  import {
3
6
  formatToolFailure
4
- } from "./chunk-ZMOL6RQC.js";
5
- import "./chunk-I7SPGOWI.js";
7
+ } from "./chunk-TA5L5KWQ.js";
8
+ import "./chunk-FGALODG3.js";
6
9
  import {
7
10
  createAvailabilityChecker,
8
11
  findManagedNodeToolBinary,
9
12
  resolveAvailableOrInstall
10
- } from "./chunk-7FBF7NPR.js";
11
- import "./chunk-HHYAELLJ.js";
12
- import {
13
- canonicalDirectory,
14
- listNestedLinkedWorktreeRoots
15
- } from "./chunk-3I5QFT3N.js";
16
- import "./chunk-B3I2UUT4.js";
17
- import "./chunk-DIULIWKU.js";
18
- import "./chunk-VDBPVIKD.js";
19
- import "./chunk-TGPXLY2J.js";
13
+ } from "./chunk-NFXP47RV.js";
14
+ import "./chunk-MGIWSROG.js";
15
+ import "./chunk-IMSQR4WO.js";
16
+ import "./chunk-IQZXOZ7S.js";
17
+ import "./chunk-LNOMA3MP.js";
18
+ import "./chunk-U52SAGRM.js";
19
+ import "./chunk-KJCWXUUS.js";
20
20
  import "./chunk-QOZXJ4NA.js";
21
- import "./chunk-PAK6IDME.js";
22
- import "./chunk-GUOGVTCQ.js";
23
- import "./chunk-AJVLWNFN.js";
24
- import "./chunk-YGVYKNSN.js";
21
+ import "./chunk-S6AMWKPC.js";
22
+ import "./chunk-F5VLZHUW.js";
23
+ import "./chunk-AXKPQ6ZI.js";
24
+ import "./chunk-7BX5DWSA.js";
25
25
  import {
26
26
  getJscpdMaxEntriesDerived
27
- } from "./chunk-LNAKEO63.js";
27
+ } from "./chunk-IUKPRZER.js";
28
28
  import "./chunk-Z3CCVDUB.js";
29
29
  import "./chunk-2BEMIWEW.js";
30
- import "./chunk-OQGFCZJ4.js";
31
- import "./chunk-RUOG5D2C.js";
30
+ import "./chunk-LD7WFTRX.js";
31
+ import "./chunk-IUR76K6A.js";
32
32
  import {
33
33
  findNodeToolBinary
34
- } from "./chunk-U3VGR4VU.js";
35
- import "./chunk-NTUJEGDZ.js";
36
- import "./chunk-EOKRQ3SA.js";
37
- import "./chunk-WONERJTP.js";
38
- import "./chunk-22AVIGXS.js";
39
- import "./chunk-GVXA6CCE.js";
40
- import "./chunk-6QIUX4EP.js";
34
+ } from "./chunk-T4QZ6FEH.js";
35
+ import "./chunk-D6YF5HKX.js";
36
+ import "./chunk-CMU4RMJB.js";
37
+ import "./chunk-O7HZX7CA.js";
38
+ import "./chunk-VYKKMYVT.js";
39
+ import "./chunk-BNKLYOOO.js";
40
+ import "./chunk-USHG4DLH.js";
41
41
  import {
42
42
  shouldRecurseIntoDir,
43
43
  walkTreeStackSync
44
- } from "./chunk-VHQLPIRJ.js";
44
+ } from "./chunk-H5EV3VMF.js";
45
45
  import {
46
46
  getExcludedDirGlobs,
47
47
  getProjectIgnoreGlobs,
48
48
  getProjectIgnoreMatcher,
49
49
  safeSpawnAsync
50
- } from "./chunk-VN2AXLEX.js";
50
+ } from "./chunk-T54VJRAD.js";
51
51
  import "./chunk-BW5KFIQC.js";
52
52
  import "./chunk-QYF5S6P6.js";
53
- import "./chunk-5ZEJHV35.js";
54
- import "./chunk-DQ2NZ7C4.js";
55
- import "./chunk-VNMT7C64.js";
53
+ import "./chunk-64LU2OVH.js";
54
+ import "./chunk-N2IRDBZI.js";
55
+ import "./chunk-Z6BB4JLQ.js";
56
56
  import "./chunk-2EECBNC5.js";
57
57
  import {
58
58
  incrementDegradationCount
59
- } from "./chunk-N3YQJI6O.js";
59
+ } from "./chunk-7ELY2CSM.js";
60
60
  import {
61
61
  createSubsystemLogger
62
- } from "./chunk-O6TQT6RI.js";
63
- import "./chunk-5THXD6X5.js";
64
- import "./chunk-UK3CMEAL.js";
62
+ } from "./chunk-34OCDWOS.js";
63
+ import "./chunk-3PNFWVHT.js";
64
+ import "./chunk-VSMJK3ZJ.js";
65
65
  import "./chunk-LJDODBBZ.js";
66
66
  import "./chunk-ABBOA7UD.js";
67
67
  import {
68
68
  isAtOrAboveHomeDir,
69
69
  isFullyQualified,
70
70
  toPosix
71
- } from "./chunk-Q5U6FMDI.js";
71
+ } from "./chunk-G3RLJYA2.js";
72
72
  import "./chunk-NXL4FFQQ.js";
73
73
 
74
74
  // dist/clients/jscpd-client.js
@@ -76,7 +76,6 @@ import * as fs from "node:fs";
76
76
  import { mkdtempSync } from "node:fs";
77
77
  import * as os from "node:os";
78
78
  import * as path from "node:path";
79
- import { relative } from "node:path";
80
79
  var EMPTY_RESULT = {
81
80
  success: false,
82
81
  clones: [],
@@ -113,10 +112,9 @@ function readProjectJscpdConfig(cwd) {
113
112
  return null;
114
113
  }
115
114
  function worktreeIgnoreGlobs(cwd) {
116
- const base = canonicalDirectory(cwd);
117
115
  const globs = [];
118
- for (const worktree of listNestedLinkedWorktreeRoots(cwd)) {
119
- const inside = toPosix(relative(base, worktree));
116
+ for (const offset of nestedWorktreeOffsets(cwd)) {
117
+ const inside = toPosix(offset);
120
118
  const unsafe = inside.includes(",") ? "comma-in-path" : /[*?[\]{}()!\\]/.test(inside) ? "glob-char-in-path" : null;
121
119
  if (unsafe) {
122
120
  incrementDegradationCount({
@@ -1,14 +1,14 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  isExcludedDirName
4
- } from "./chunk-VN2AXLEX.js";
4
+ } from "./chunk-T54VJRAD.js";
5
5
  import {
6
6
  createDeadline,
7
7
  yieldIfOverBudget
8
8
  } from "./chunk-QYF5S6P6.js";
9
9
  import {
10
10
  isGeneratedArtifactDirectoryName
11
- } from "./chunk-DQ2NZ7C4.js";
11
+ } from "./chunk-N2IRDBZI.js";
12
12
 
13
13
  // dist/clients/source-walker.js
14
14
  import * as fs from "node:fs";
@@ -1,9 +1,9 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  createSubsystemLogger
4
- } from "./chunk-O6TQT6RI.js";
5
- import "./chunk-UK3CMEAL.js";
6
- import "./chunk-Q5U6FMDI.js";
4
+ } from "./chunk-34OCDWOS.js";
5
+ import "./chunk-VSMJK3ZJ.js";
6
+ import "./chunk-G3RLJYA2.js";
7
7
  import "./chunk-NXL4FFQQ.js";
8
8
 
9
9
  // dist/clients/metrics-client.js
@@ -4,46 +4,46 @@ import {
4
4
  } from "./chunk-7U2IDNXN.js";
5
5
  import {
6
6
  getScratchTreeFnmatchPatterns
7
- } from "./chunk-TO6WL3GM.js";
7
+ } from "./chunk-J3FZR3YY.js";
8
8
  import {
9
9
  formatToolFailure
10
- } from "./chunk-ZMOL6RQC.js";
10
+ } from "./chunk-TA5L5KWQ.js";
11
11
  import {
12
12
  firstOutputLine,
13
13
  spawnFailedWithNoOutput
14
- } from "./chunk-I7SPGOWI.js";
14
+ } from "./chunk-FGALODG3.js";
15
15
  import {
16
16
  listNestedLinkedWorktreeRoots
17
- } from "./chunk-3I5QFT3N.js";
17
+ } from "./chunk-IMSQR4WO.js";
18
18
  import {
19
19
  extractTomlTableSection,
20
20
  parseTomlStringArray
21
- } from "./chunk-PAK6IDME.js";
21
+ } from "./chunk-S6AMWKPC.js";
22
22
  import {
23
23
  VENV_BIN_DIRS,
24
24
  findLocalBinsAt
25
- } from "./chunk-U3VGR4VU.js";
25
+ } from "./chunk-T4QZ6FEH.js";
26
26
  import {
27
27
  probeToolAsync
28
- } from "./chunk-EOKRQ3SA.js";
28
+ } from "./chunk-CMU4RMJB.js";
29
29
  import {
30
30
  classifyProbeFailure,
31
31
  createAvailabilityLatch,
32
32
  logAvailabilityDecision,
33
33
  startHostStallSampler
34
- } from "./chunk-WONERJTP.js";
34
+ } from "./chunk-O7HZX7CA.js";
35
35
  import {
36
36
  safeSpawnAsync
37
- } from "./chunk-VN2AXLEX.js";
37
+ } from "./chunk-T54VJRAD.js";
38
38
  import {
39
39
  incrementDegradationCount
40
- } from "./chunk-N3YQJI6O.js";
40
+ } from "./chunk-7ELY2CSM.js";
41
41
  import {
42
42
  createSubsystemLogger
43
- } from "./chunk-O6TQT6RI.js";
43
+ } from "./chunk-34OCDWOS.js";
44
44
  import {
45
45
  findNearestMarkerRoot
46
- } from "./chunk-Q5U6FMDI.js";
46
+ } from "./chunk-G3RLJYA2.js";
47
47
 
48
48
  // dist/clients/dead-code-client.js
49
49
  import * as fs from "node:fs";