pi-lens 4.4.0 → 4.4.2

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 (150) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/README.md +1 -0
  3. package/config/dependency-cruiser-eager-allowlist.json +3 -1
  4. package/dist/{chunk-IXEBJSUE.js → chunk-23WOO7TX.js} +11 -10
  5. package/dist/{chunk-E2WFBRHM.js → chunk-2B73ZPOK.js} +3 -3
  6. package/dist/{chunk-DQ2NZ7C4.js → chunk-2BBLFX75.js} +139 -11
  7. package/dist/{chunk-ZMOL6RQC.js → chunk-2CD5RS6M.js} +2 -2
  8. package/dist/{chunk-VD4JQCQC.js → chunk-2ZGIZPDG.js} +38 -37
  9. package/dist/{chunk-DIULIWKU.js → chunk-34WSVGEM.js} +29 -3
  10. package/dist/chunk-3JNKMP3B.js +17 -0
  11. package/dist/{chunk-HVUZXSWK.js → chunk-3UUPUE3O.js} +45 -41
  12. package/dist/{chunk-5RXBNSW2.js → chunk-3VPVG5SU.js} +16 -8
  13. package/dist/chunk-3WA4HP4I.js +55 -0
  14. package/dist/chunk-466Z26MG.js +30 -0
  15. package/dist/{chunk-34U7PLGE.js → chunk-4UNXBNE2.js} +12 -11
  16. package/dist/{chunk-E4MAEDPM.js → chunk-4W4VLAPJ.js} +12 -11
  17. package/dist/{chunk-GUOGVTCQ.js → chunk-52FUZI6K.js} +4 -2
  18. package/dist/chunk-5JM2524W.js +84 -0
  19. package/dist/{chunk-VHQLPIRJ.js → chunk-5NGR67U5.js} +2 -2
  20. package/dist/{chunk-DFVMIKMQ.js → chunk-66SXUJCA.js} +45 -9
  21. package/dist/{chunk-OQGFCZJ4.js → chunk-66VMUL7Q.js} +16 -16
  22. package/dist/{chunk-HWBZIGMJ.js → chunk-67WMNWEE.js} +9 -8
  23. package/dist/{chunk-6QIUX4EP.js → chunk-6C7JWPCP.js} +7 -7
  24. package/dist/{chunk-47D2BO4S.js → chunk-6GFRNVYR.js} +11 -10
  25. package/dist/{chunk-ZAWW3AF6.js → chunk-6SDEP3AJ.js} +9 -8
  26. package/dist/{chunk-TGPXLY2J.js → chunk-724UL2TJ.js} +38 -2
  27. package/dist/{chunk-YLF3PPT5.js → chunk-76MWC2K6.js} +3 -3
  28. package/dist/{chunk-F3P7VQ7H.js → chunk-7DYBLXYA.js} +3 -3
  29. package/dist/{chunk-AJ3QXTRQ.js → chunk-7ULNCDCO.js} +37 -35
  30. package/dist/{chunk-UK3CMEAL.js → chunk-AOHZU2BM.js} +1 -1
  31. package/dist/{chunk-F3AU2TMM.js → chunk-ARJ6PLFH.js} +44 -28
  32. package/dist/{chunk-U3VGR4VU.js → chunk-AW7R2GWG.js} +65 -8
  33. package/dist/{chunk-FJNKANOS.js → chunk-BKE7E7TC.js} +10 -9
  34. package/dist/{chunk-4W2PLC4J.js → chunk-BRGDSBJE.js} +13 -12
  35. package/dist/{chunk-VN2AXLEX.js → chunk-C34ZXZ7O.js} +102 -16
  36. package/dist/{chunk-T4ERT73Y.js → chunk-CF24OIYI.js} +21 -20
  37. package/dist/{chunk-NMABWBZN.js → chunk-CHOW74WE.js} +1 -1
  38. package/dist/{chunk-ARFCXG7S.js → chunk-CO2G5PHH.js} +2 -2
  39. package/dist/{chunk-AS44CFQ4.js → chunk-EETY4LF7.js} +24 -10
  40. package/dist/{chunk-I3R7GKDR.js → chunk-EJIUXPBX.js} +1 -1
  41. package/dist/{chunk-B3I2UUT4.js → chunk-ESBQHFMJ.js} +653 -251
  42. package/dist/{chunk-O5WILGMI.js → chunk-FLKWCIZH.js} +8 -5
  43. package/dist/{chunk-LNAKEO63.js → chunk-GAEGEPOC.js} +4 -4
  44. package/dist/{chunk-V7R425XG.js → chunk-GBPP5P7X.js} +4 -4
  45. package/dist/{chunk-XK4CIILI.js → chunk-GHB6AYCP.js} +27 -26
  46. package/dist/{chunk-7FBF7NPR.js → chunk-GOYRYZ2R.js} +29 -26
  47. package/dist/{chunk-JOLITGCC.js → chunk-GXW6K4YJ.js} +1 -1
  48. package/dist/{chunk-NXPS2L6U.js → chunk-GZYBXISR.js} +9 -9
  49. package/dist/{chunk-OAXNDZJ7.js → chunk-IBGIOBEE.js} +8 -4
  50. package/dist/{chunk-IIXOAGHR.js → chunk-IBRALRBR.js} +19 -15
  51. package/dist/{chunk-7F72PXY2.js → chunk-IXXDFY73.js} +3 -3
  52. package/dist/chunk-IZSHAIJ7.js +26 -0
  53. package/dist/{chunk-N3YQJI6O.js → chunk-JAU72XNY.js} +20 -15
  54. package/dist/chunk-JMYYOTQG.js +77 -0
  55. package/dist/{chunk-NL5GLMFI.js → chunk-JSQFTSC6.js} +12 -11
  56. package/dist/{chunk-IVP5KAB7.js → chunk-JWA5I3SR.js} +35 -21
  57. package/dist/{chunk-Y4T27COV.js → chunk-KBG47GHP.js} +4 -4
  58. package/dist/{chunk-PWFHBTSF.js → chunk-L3BLXZG7.js} +2 -2
  59. package/dist/chunk-LOP6GRPH.js +31 -0
  60. package/dist/chunk-MQLUAEOC.js +162 -0
  61. package/dist/{chunk-RPD5K5NC.js → chunk-MRXKYPCS.js} +2 -2
  62. package/dist/{chunk-Q5U6FMDI.js → chunk-N2H3ZPZY.js} +59 -7
  63. package/dist/{chunk-27BBHSZC.js → chunk-N3X6Q4YT.js} +3 -3
  64. package/dist/{chunk-UY752QSN.js → chunk-NW7BOILN.js} +19 -17
  65. package/dist/{chunk-TLGFBM3F.js → chunk-ODBNXWT4.js} +302 -113
  66. package/dist/{chunk-TT22N74J.js → chunk-OG5UUPN7.js} +13 -13
  67. package/dist/{chunk-C2AUYXQH.js → chunk-OXXKQCSV.js} +6 -6
  68. package/dist/{chunk-PAK6IDME.js → chunk-P7266HLM.js} +2 -2
  69. package/dist/{chunk-52H5B5TC.js → chunk-PFNSLWU5.js} +31 -30
  70. package/dist/{chunk-5ZEJHV35.js → chunk-PHDMFAKM.js} +12 -2
  71. package/dist/{chunk-3I5QFT3N.js → chunk-PNQDPDRC.js} +6 -3
  72. package/dist/{chunk-TVN5N6GY.js → chunk-PV6LR5P5.js} +6057 -1311
  73. package/dist/{chunk-AHDW3GPE.js → chunk-Q6ZWTCLY.js} +24 -22
  74. package/dist/{chunk-RUOG5D2C.js → chunk-Q7DUK4LX.js} +5 -5
  75. package/dist/{chunk-YSNFMJKN.js → chunk-QGQ5CCCG.js} +2 -2
  76. package/dist/{chunk-LW6XKDZQ.js → chunk-QHJ6DQ2R.js} +287 -38
  77. package/dist/{chunk-GVXA6CCE.js → chunk-QILIYSJF.js} +1 -1
  78. package/dist/{chunk-22AVIGXS.js → chunk-QOBUHWHX.js} +12 -7
  79. package/dist/{chunk-5THXD6X5.js → chunk-QQNQ7SJW.js} +2 -75
  80. package/dist/{chunk-4RERDEXR.js → chunk-QZVW3AAK.js} +50 -41
  81. package/dist/{chunk-AWE5TMPO.js → chunk-R3PCY3YS.js} +14 -13
  82. package/dist/{chunk-HHYAELLJ.js → chunk-RPLINGVB.js} +7 -7
  83. package/dist/{chunk-EOKRQ3SA.js → chunk-RWWYJ623.js} +10 -1
  84. package/dist/{chunk-YGVYKNSN.js → chunk-SAEFPSB6.js} +59 -12
  85. package/dist/{chunk-K6VYLB2U.js → chunk-TYM6OUIT.js} +13 -12
  86. package/dist/{chunk-AJXODZY6.js → chunk-UXGETRP4.js} +13 -12
  87. package/dist/{chunk-I7SPGOWI.js → chunk-UZ3TUTRV.js} +1 -1
  88. package/dist/{chunk-TO6WL3GM.js → chunk-VCHXCQFG.js} +12 -2
  89. package/dist/{chunk-BRJKOBZP.js → chunk-VITUCP5A.js} +17 -6
  90. package/dist/{chunk-WONERJTP.js → chunk-VRZP76YM.js} +1 -1
  91. package/dist/{chunk-OS32RNR2.js → chunk-VSSBEUFT.js} +16 -15
  92. package/dist/{chunk-VDBPVIKD.js → chunk-VWCXW2E7.js} +1 -1
  93. package/dist/{chunk-NKOUFPQF.js → chunk-WOA4LN2R.js} +2 -2
  94. package/dist/{chunk-RIISMHKN.js → chunk-WOKKRCJ5.js} +15 -13
  95. package/dist/{chunk-XECLWQZN.js → chunk-WU567RSC.js} +13 -10
  96. package/dist/{chunk-V5PXFSZK.js → chunk-XCJN5IJU.js} +4 -4
  97. package/dist/{chunk-ORTMY4Q4.js → chunk-XKIZ2HNN.js} +22 -14
  98. package/dist/{chunk-6VCD4VKZ.js → chunk-XMSXXAHW.js} +2 -2
  99. package/dist/chunk-XPZPXCBV.js +28 -0
  100. package/dist/{chunk-O6TQT6RI.js → chunk-XTMJ7XDT.js} +1 -1
  101. package/dist/{chunk-VNMT7C64.js → chunk-XVF2VVXP.js} +5 -3
  102. package/dist/chunk-Z527N6YQ.js +28 -0
  103. package/dist/{chunk-NTUJEGDZ.js → chunk-ZANLILYD.js} +22 -2
  104. package/dist/{chunk-6P62QVEA.js → chunk-ZGDGW2V3.js} +2 -2
  105. package/dist/{chunk-ODEEOXPH.js → chunk-ZHFZWTZV.js} +12 -11
  106. package/dist/{chunk-AJVLWNFN.js → chunk-ZXYDQ3TZ.js} +5 -5
  107. package/dist/index.js +102097 -97778
  108. package/dist/mcp/analyze-cli.js +18 -8
  109. package/dist/mcp/cli.js +48 -37
  110. package/dist/mcp/server.js +695 -426
  111. package/dist/mcp/worker.js +66 -55
  112. package/dist/probes/installer.js +20 -19
  113. package/docs/ast-grep_rules_catalog.md +2 -2
  114. package/docs/astplayground.md +1 -1
  115. package/docs/configuration.md +38 -2
  116. package/docs/custom-rules.md +25 -2
  117. package/docs/dependencies.md +3 -0
  118. package/docs/environment-variables.md +34 -6
  119. package/docs/features.md +39 -3
  120. package/docs/globalconfig.md +3 -1
  121. package/docs/language-coverage.md +2 -1
  122. package/docs/lsp-capability-matrix.md +29 -6
  123. package/docs/lsp-idle-eviction.md +38 -47
  124. package/docs/pi-lens-fixer.md +13 -5
  125. package/docs/pi-lens-merge-policy.md +48 -1
  126. package/docs/pi-lens-monitor.md +3 -1
  127. package/docs/pi-lens-retro.md +2 -1
  128. package/docs/pi-lens-reviewer.md +19 -3
  129. package/docs/pi-lens-subagent.md +2 -0
  130. package/docs/real-harness.md +17 -0
  131. package/docs/schema/pi-lens-config-v1.json +565 -0
  132. package/docs/servercapabilities.md +18 -4
  133. package/docs/settings.md +2 -1
  134. package/docs/word-index.md +6 -0
  135. package/package.json +1 -1
  136. package/rules/ast-grep-rules/rule-tests/no-identity-operator-on-literals-test.yml +12 -2
  137. package/rules/ast-grep-rules/rule-tests/throw-new-error-js-test.yml +2 -0
  138. package/rules/ast-grep-rules/rule-tests/throw-new-error-test.yml +2 -0
  139. package/rules/ast-grep-rules/rules/no-identity-operator-on-literals.yml +20 -12
  140. package/rules/ast-grep-rules/rules/throw-new-error-js.yml +2 -2
  141. package/rules/ast-grep-rules/rules/throw-new-error.yml +2 -2
  142. package/dist/chunk-54B42YRX.js +0 -27
  143. package/dist/chunk-CGGAIP7J.js +0 -29
  144. package/dist/chunk-D6QS3U6M.js +0 -30
  145. package/dist/chunk-HMFXILPV.js +0 -83
  146. package/dist/chunk-LSMJ6KBE.js +0 -4139
  147. package/dist/chunk-NTHH2J74.js +0 -27
  148. package/dist/chunk-RPD4ZSB7.js +0 -25
  149. package/dist/chunk-T6D4Q4AQ.js +0 -54
  150. package/dist/chunk-VCSRSYLF.js +0 -81
@@ -44,25 +44,26 @@ import {
44
44
  setProjectSnapshotPromotionSeamForTests,
45
45
  terminateProjectSnapshotPersistWorkerForTests,
46
46
  waitForProjectSnapshotPersistsForTests
47
- } from "./chunk-AJVLWNFN.js";
48
- import "./chunk-YGVYKNSN.js";
49
- import "./chunk-LNAKEO63.js";
47
+ } from "./chunk-ZXYDQ3TZ.js";
48
+ import "./chunk-SAEFPSB6.js";
49
+ import "./chunk-GAEGEPOC.js";
50
50
  import "./chunk-Z3CCVDUB.js";
51
51
  import "./chunk-2BEMIWEW.js";
52
- import "./chunk-VN2AXLEX.js";
52
+ import "./chunk-C34ZXZ7O.js";
53
53
  import "./chunk-BW5KFIQC.js";
54
54
  import "./chunk-QYF5S6P6.js";
55
- import "./chunk-5ZEJHV35.js";
56
- import "./chunk-DQ2NZ7C4.js";
57
- import "./chunk-VNMT7C64.js";
55
+ import "./chunk-PHDMFAKM.js";
56
+ import "./chunk-2BBLFX75.js";
57
+ import "./chunk-XVF2VVXP.js";
58
58
  import "./chunk-2EECBNC5.js";
59
- import "./chunk-N3YQJI6O.js";
60
- import "./chunk-O6TQT6RI.js";
61
- import "./chunk-5THXD6X5.js";
62
- import "./chunk-UK3CMEAL.js";
59
+ import "./chunk-JAU72XNY.js";
60
+ import "./chunk-XTMJ7XDT.js";
61
+ import "./chunk-JMYYOTQG.js";
62
+ import "./chunk-QQNQ7SJW.js";
63
+ import "./chunk-AOHZU2BM.js";
63
64
  import "./chunk-LJDODBBZ.js";
64
65
  import "./chunk-ABBOA7UD.js";
65
- import "./chunk-Q5U6FMDI.js";
66
+ import "./chunk-N2H3ZPZY.js";
66
67
  import "./chunk-NXL4FFQQ.js";
67
68
  export {
68
69
  PROJECT_SNAPSHOT_MAX_WARM_ROOTS,
@@ -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-JAU72XNY.js";
8
8
 
9
9
  // dist/clients/dispatch/runners/utils/spawn-outcome.js
10
10
  function firstOutputLine(text, max = LEDGER_FIELD_MAX) {
@@ -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-PNQDPDRC.js";
2
6
  import {
3
7
  EXCLUDED_DIRS,
4
8
  getExcludedDirGlobs
5
- } from "./chunk-VN2AXLEX.js";
9
+ } from "./chunk-C34ZXZ7O.js";
6
10
  import {
7
11
  escapeRegExp
8
- } from "./chunk-N3YQJI6O.js";
12
+ } from "./chunk-JAU72XNY.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,
@@ -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-VCHXCQFG.js";
6
7
  import {
7
8
  SecurityScanClient
8
- } from "./chunk-7F72PXY2.js";
9
+ } from "./chunk-IXXDFY73.js";
9
10
  import {
10
11
  collectTrackedFiles,
11
12
  collectUntrackedIgnoredIds,
12
13
  safeSpawnAsync
13
- } from "./chunk-VN2AXLEX.js";
14
+ } from "./chunk-C34ZXZ7O.js";
15
+ import {
16
+ escapeRegExp
17
+ } from "./chunk-JAU72XNY.js";
14
18
  import {
15
19
  normalizeEphemeralMapKey,
16
20
  normalizeMapKey
17
- } from "./chunk-Q5U6FMDI.js";
21
+ } from "./chunk-N2H3ZPZY.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,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-5THXD6X5.js";
4
+ } from "./chunk-QQNQ7SJW.js";
5
5
 
6
6
  // dist/clients/dispatch/runners/utils/availability-policy.js
7
7
  function describeProbeEvidence(result, command) {
@@ -1,8 +1,8 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  calcCyclomaticComplexity
4
- } from "./chunk-YLF3PPT5.js";
5
- import "./chunk-JOLITGCC.js";
4
+ } from "./chunk-76MWC2K6.js";
5
+ import "./chunk-GXW6K4YJ.js";
6
6
  import "./chunk-5W3R6LFT.js";
7
7
  import {
8
8
  firstChildOfType,
@@ -11,26 +11,27 @@ import {
11
11
  resolveTreeSitterLanguage,
12
12
  walk,
13
13
  withTreeSitterRoot
14
- } from "./chunk-LW6XKDZQ.js";
14
+ } from "./chunk-QHJ6DQ2R.js";
15
15
  import "./chunk-Z54ZSOBZ.js";
16
- import "./chunk-TGPXLY2J.js";
16
+ import "./chunk-724UL2TJ.js";
17
17
  import "./chunk-QOZXJ4NA.js";
18
- import "./chunk-NTUJEGDZ.js";
19
- import "./chunk-WONERJTP.js";
20
- import "./chunk-VN2AXLEX.js";
21
- import "./chunk-5ZEJHV35.js";
22
- import "./chunk-DQ2NZ7C4.js";
23
- import "./chunk-VNMT7C64.js";
18
+ import "./chunk-VRZP76YM.js";
19
+ import "./chunk-C34ZXZ7O.js";
20
+ import "./chunk-PHDMFAKM.js";
21
+ import "./chunk-2BBLFX75.js";
22
+ import "./chunk-XVF2VVXP.js";
23
+ import "./chunk-ZANLILYD.js";
24
24
  import "./chunk-2EECBNC5.js";
25
- import "./chunk-N3YQJI6O.js";
25
+ import "./chunk-JAU72XNY.js";
26
26
  import {
27
27
  createSubsystemLogger
28
- } from "./chunk-O6TQT6RI.js";
29
- import "./chunk-5THXD6X5.js";
30
- import "./chunk-UK3CMEAL.js";
28
+ } from "./chunk-XTMJ7XDT.js";
29
+ import "./chunk-JMYYOTQG.js";
30
+ import "./chunk-QQNQ7SJW.js";
31
+ import "./chunk-AOHZU2BM.js";
31
32
  import "./chunk-LJDODBBZ.js";
32
33
  import "./chunk-ABBOA7UD.js";
33
- import "./chunk-Q5U6FMDI.js";
34
+ import "./chunk-N2H3ZPZY.js";
34
35
  import "./chunk-NXL4FFQQ.js";
35
36
 
36
37
  // dist/clients/complexity-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
  findLocalToolConfig
4
- } from "./chunk-Q5U6FMDI.js";
4
+ } from "./chunk-N2H3ZPZY.js";
5
5
 
6
6
  // dist/clients/opengrep-config.js
7
7
  import * as path from "node:path";
@@ -4,14 +4,14 @@ import {
4
4
  } from "./chunk-3MED75HT.js";
5
5
  import {
6
6
  getProjectDataDir
7
- } from "./chunk-VN2AXLEX.js";
7
+ } from "./chunk-C34ZXZ7O.js";
8
8
  import {
9
9
  writeFileAtomic
10
10
  } from "./chunk-2EECBNC5.js";
11
11
  import {
12
12
  normalizeMapKey,
13
13
  toProjectRelativePath
14
- } from "./chunk-Q5U6FMDI.js";
14
+ } from "./chunk-N2H3ZPZY.js";
15
15
 
16
16
  // dist/clients/call-graph.js
17
17
  import * as fs from "node:fs";
@@ -7,23 +7,25 @@ import {
7
7
  hasGitleaksSignal,
8
8
  parseGitleaksReport,
9
9
  writeScopedGitleaksConfig
10
- } from "./chunk-BRJKOBZP.js";
11
- import "./chunk-TO6WL3GM.js";
12
- import "./chunk-7F72PXY2.js";
13
- import "./chunk-EOKRQ3SA.js";
14
- import "./chunk-WONERJTP.js";
15
- import "./chunk-VN2AXLEX.js";
10
+ } from "./chunk-VITUCP5A.js";
11
+ import "./chunk-VCHXCQFG.js";
12
+ import "./chunk-IXXDFY73.js";
13
+ import "./chunk-PNQDPDRC.js";
14
+ import "./chunk-RWWYJ623.js";
15
+ import "./chunk-VRZP76YM.js";
16
+ import "./chunk-C34ZXZ7O.js";
16
17
  import "./chunk-BW5KFIQC.js";
17
- import "./chunk-DQ2NZ7C4.js";
18
- import "./chunk-VNMT7C64.js";
18
+ import "./chunk-2BBLFX75.js";
19
+ import "./chunk-XVF2VVXP.js";
19
20
  import "./chunk-2EECBNC5.js";
20
- import "./chunk-N3YQJI6O.js";
21
- import "./chunk-O6TQT6RI.js";
22
- import "./chunk-5THXD6X5.js";
23
- import "./chunk-UK3CMEAL.js";
21
+ import "./chunk-JAU72XNY.js";
22
+ import "./chunk-XTMJ7XDT.js";
23
+ import "./chunk-JMYYOTQG.js";
24
+ import "./chunk-QQNQ7SJW.js";
25
+ import "./chunk-AOHZU2BM.js";
24
26
  import "./chunk-LJDODBBZ.js";
25
27
  import "./chunk-ABBOA7UD.js";
26
- import "./chunk-Q5U6FMDI.js";
28
+ import "./chunk-N2H3ZPZY.js";
27
29
  import "./chunk-NXL4FFQQ.js";
28
30
  export {
29
31
  GitleaksClient,
@@ -20,6 +20,7 @@ import {
20
20
  parseWordIndexQuery,
21
21
  recordPersistedWordIndexWireBytes,
22
22
  refreshWordIndexIncrementally,
23
+ releaseWordIndexMemoAtSettle,
23
24
  removeWordIndexDocument,
24
25
  removeWordIndexDocumentAsync,
25
26
  scheduleWordIndexPersist,
@@ -33,20 +34,21 @@ import {
33
34
  updateWordIndexDocumentForEdit,
34
35
  wordIndexKey,
35
36
  wordIndexPostingHits
36
- } from "./chunk-YGVYKNSN.js";
37
- import "./chunk-LNAKEO63.js";
37
+ } from "./chunk-SAEFPSB6.js";
38
+ import "./chunk-GAEGEPOC.js";
38
39
  import "./chunk-Z3CCVDUB.js";
39
40
  import "./chunk-BW5KFIQC.js";
40
41
  import "./chunk-QYF5S6P6.js";
41
- import "./chunk-5ZEJHV35.js";
42
- import "./chunk-DQ2NZ7C4.js";
43
- import "./chunk-VNMT7C64.js";
44
- import "./chunk-N3YQJI6O.js";
45
- import "./chunk-O6TQT6RI.js";
46
- import "./chunk-5THXD6X5.js";
47
- import "./chunk-UK3CMEAL.js";
42
+ import "./chunk-PHDMFAKM.js";
43
+ import "./chunk-2BBLFX75.js";
44
+ import "./chunk-XVF2VVXP.js";
45
+ import "./chunk-JAU72XNY.js";
46
+ import "./chunk-XTMJ7XDT.js";
47
+ import "./chunk-JMYYOTQG.js";
48
+ import "./chunk-QQNQ7SJW.js";
49
+ import "./chunk-AOHZU2BM.js";
48
50
  import "./chunk-ABBOA7UD.js";
49
- import "./chunk-Q5U6FMDI.js";
51
+ import "./chunk-N2H3ZPZY.js";
50
52
  import "./chunk-NXL4FFQQ.js";
51
53
  export {
52
54
  WORD_INDEX_FORMAT_VERSION,
@@ -69,6 +71,7 @@ export {
69
71
  parseWordIndexQuery,
70
72
  recordPersistedWordIndexWireBytes,
71
73
  refreshWordIndexIncrementally,
74
+ releaseWordIndexMemoAtSettle,
72
75
  removeWordIndexDocument,
73
76
  removeWordIndexDocumentAsync,
74
77
  scheduleWordIndexPersist,
@@ -1,18 +1,18 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  withFactTree
4
- } from "./chunk-JOLITGCC.js";
4
+ } from "./chunk-GXW6K4YJ.js";
5
5
  import {
6
6
  childrenOfType,
7
7
  firstChildOfType,
8
8
  walk
9
- } from "./chunk-LW6XKDZQ.js";
9
+ } from "./chunk-QHJ6DQ2R.js";
10
10
  import {
11
11
  isJstsFactFile
12
- } from "./chunk-5ZEJHV35.js";
12
+ } from "./chunk-PHDMFAKM.js";
13
13
  import {
14
14
  logLatency
15
- } from "./chunk-5THXD6X5.js";
15
+ } from "./chunk-QQNQ7SJW.js";
16
16
 
17
17
  // dist/clients/dispatch/facts/import-facts.js
18
18
  function importFactsApplyTo(filePath) {
@@ -1,33 +1,35 @@
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-VCHXCQFG.js";
5
5
  import {
6
6
  SecurityScanClient
7
- } from "./chunk-7F72PXY2.js";
7
+ } from "./chunk-IXXDFY73.js";
8
+ import "./chunk-PNQDPDRC.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-VWCXW2E7.js";
12
+ import "./chunk-RWWYJ623.js";
13
+ import "./chunk-VRZP76YM.js";
13
14
  import {
14
15
  safeSpawnAsync
15
- } from "./chunk-VN2AXLEX.js";
16
+ } from "./chunk-C34ZXZ7O.js";
16
17
  import "./chunk-BW5KFIQC.js";
17
- import "./chunk-DQ2NZ7C4.js";
18
- import "./chunk-VNMT7C64.js";
18
+ import "./chunk-2BBLFX75.js";
19
+ import "./chunk-XVF2VVXP.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-JAU72XNY.js";
24
+ import "./chunk-XTMJ7XDT.js";
25
+ import "./chunk-JMYYOTQG.js";
26
+ import "./chunk-QQNQ7SJW.js";
27
+ import "./chunk-AOHZU2BM.js";
26
28
  import "./chunk-LJDODBBZ.js";
27
29
  import "./chunk-ABBOA7UD.js";
28
30
  import {
29
31
  realpathOrResolve
30
- } from "./chunk-Q5U6FMDI.js";
32
+ } from "./chunk-N2H3ZPZY.js";
31
33
  import "./chunk-NXL4FFQQ.js";
32
34
 
33
35
  // dist/clients/opengrep-client.js
@@ -104,7 +106,13 @@ var OpengrepClient = class _OpengrepClient extends SecurityScanClient {
104
106
  // pattern matches that directory name anywhere in the tree,
105
107
  // independent of gitignore. Same `EXCLUDED_DIRS`-derived list
106
108
  // gitleaks/trivy use, so the three scanners can't drift apart.
107
- ...getScratchTreeDirNames().flatMap((name) => ["--exclude", name]),
109
+ // Opengrep's git-mode walk already omits nested linked checkouts.
110
+ // Do not turn each registration into a wcmatch pattern: hundreds of
111
+ // patterns make the matcher quadratic and can hit its pattern limit.
112
+ ...getScratchTreeDirNames().flatMap((pattern) => [
113
+ "--exclude",
114
+ pattern
115
+ ]),
108
116
  cwd
109
117
  ], { cwd, timeout: SCAN_TIMEOUT_MS });
110
118
  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
  createToolchainAvailability
4
- } from "./chunk-F3P7VQ7H.js";
4
+ } from "./chunk-7DYBLXYA.js";
5
5
  import {
6
6
  createSubsystemLogger
7
- } from "./chunk-O6TQT6RI.js";
7
+ } from "./chunk-XTMJ7XDT.js";
8
8
 
9
9
  // dist/clients/go-client.js
10
10
  import * as path from "node:path";
@@ -0,0 +1,28 @@
1
+ import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+ import {
3
+ GovulncheckClient,
4
+ parseGovulncheckJson
5
+ } from "./chunk-GZYBXISR.js";
6
+ import "./chunk-IXXDFY73.js";
7
+ import "./chunk-UZ3TUTRV.js";
8
+ import "./chunk-RWWYJ623.js";
9
+ import "./chunk-VRZP76YM.js";
10
+ import "./chunk-C34ZXZ7O.js";
11
+ import "./chunk-BW5KFIQC.js";
12
+ import "./chunk-2BBLFX75.js";
13
+ import "./chunk-XVF2VVXP.js";
14
+ import "./chunk-ZANLILYD.js";
15
+ import "./chunk-2EECBNC5.js";
16
+ import "./chunk-JAU72XNY.js";
17
+ import "./chunk-XTMJ7XDT.js";
18
+ import "./chunk-JMYYOTQG.js";
19
+ import "./chunk-QQNQ7SJW.js";
20
+ import "./chunk-AOHZU2BM.js";
21
+ import "./chunk-LJDODBBZ.js";
22
+ import "./chunk-ABBOA7UD.js";
23
+ import "./chunk-N2H3ZPZY.js";
24
+ import "./chunk-NXL4FFQQ.js";
25
+ export {
26
+ GovulncheckClient,
27
+ parseGovulncheckJson
28
+ };
@@ -5,7 +5,7 @@ import {
5
5
  getMaxLogSizeMB,
6
6
  getTurnId,
7
7
  isTestMode
8
- } from "./chunk-UK3CMEAL.js";
8
+ } from "./chunk-AOHZU2BM.js";
9
9
 
10
10
  // dist/clients/extension-log.js
11
11
  import * as path from "node:path";
@@ -1,8 +1,10 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
- DEPRECATED_CONFIG_SURFACES,
3
+ DEPRECATED_CONFIG_SURFACES
4
+ } from "./chunk-JMYYOTQG.js";
5
+ import {
4
6
  logLatency
5
- } from "./chunk-5THXD6X5.js";
7
+ } from "./chunk-QQNQ7SJW.js";
6
8
  import {
7
9
  isAtOrAboveHomeDir,
8
10
  isWindowsPath,
@@ -10,7 +12,7 @@ import {
10
12
  normalizeFilePath,
11
13
  realpathOrResolve,
12
14
  walkUpDirs
13
- } from "./chunk-Q5U6FMDI.js";
15
+ } from "./chunk-N2H3ZPZY.js";
14
16
 
15
17
  // dist/clients/workspace-topology.js
16
18
  import * as fs2 from "node:fs";
@@ -0,0 +1,28 @@
1
+ import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
+ import {
3
+ GoClient,
4
+ goClient,
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";
11
+ import "./chunk-BW5KFIQC.js";
12
+ import "./chunk-2BBLFX75.js";
13
+ import "./chunk-XVF2VVXP.js";
14
+ import "./chunk-2EECBNC5.js";
15
+ import "./chunk-JAU72XNY.js";
16
+ import "./chunk-XTMJ7XDT.js";
17
+ import "./chunk-JMYYOTQG.js";
18
+ import "./chunk-QQNQ7SJW.js";
19
+ import "./chunk-AOHZU2BM.js";
20
+ import "./chunk-LJDODBBZ.js";
21
+ import "./chunk-ABBOA7UD.js";
22
+ import "./chunk-N2H3ZPZY.js";
23
+ import "./chunk-NXL4FFQQ.js";
24
+ export {
25
+ GoClient,
26
+ goClient,
27
+ resetGoAvailability
28
+ };
@@ -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-JAU72XNY.js";
5
5
  import {
6
6
  logExtension
7
- } from "./chunk-O6TQT6RI.js";
7
+ } from "./chunk-XTMJ7XDT.js";
8
8
 
9
9
  // dist/clients/project-trust.js
10
10
  var trustState = "unknown";
@@ -14,6 +14,25 @@ var trustGeneration = 0;
14
14
  function getProjectTrustGeneration() {
15
15
  return trustGeneration;
16
16
  }
17
+ function latchProjectTrustState(next) {
18
+ if (next === trustState)
19
+ return;
20
+ trustState = next;
21
+ installRefusalWarnings.clear();
22
+ trustGeneration += 1;
23
+ }
24
+ function setProjectTrustState(next) {
25
+ const previous = trustState;
26
+ latchProjectTrustState(next);
27
+ if (previous !== next) {
28
+ logExtension({
29
+ subsystem: "project-trust",
30
+ level: "debug",
31
+ message: `project trust state transitioned: ${previous} -> ${next}`,
32
+ metadata: { previous, next }
33
+ });
34
+ }
35
+ }
17
36
  function getProjectTrustState() {
18
37
  return trustState;
19
38
  }
@@ -51,6 +70,7 @@ function projectTrustDenialReason() {
51
70
 
52
71
  export {
53
72
  getProjectTrustGeneration,
73
+ setProjectTrustState,
54
74
  getProjectTrustState,
55
75
  isToolInstallAllowedByTrust,
56
76
  assertInstallAllowed,
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  isMutatingToolName
4
- } from "./chunk-OAXNDZJ7.js";
4
+ } from "./chunk-IBGIOBEE.js";
5
5
  import {
6
6
  normalizeMapKey
7
- } from "./chunk-Q5U6FMDI.js";
7
+ } from "./chunk-N2H3ZPZY.js";
8
8
 
9
9
  // dist/clients/agent-behavior-client.js
10
10
  var READ_OPS = /* @__PURE__ */ new Set(["read", "bash", "grep", "glob", "find", "rg"]);
@@ -12,21 +12,22 @@ import {
12
12
  isStartupScanVerdictFresh,
13
13
  resolveStartupScanContext,
14
14
  resolveStartupScanContextAsync
15
- } from "./chunk-5RXBNSW2.js";
16
- import "./chunk-LNAKEO63.js";
17
- import "./chunk-VHQLPIRJ.js";
18
- import "./chunk-VN2AXLEX.js";
15
+ } from "./chunk-3VPVG5SU.js";
16
+ import "./chunk-GAEGEPOC.js";
17
+ import "./chunk-5NGR67U5.js";
18
+ import "./chunk-C34ZXZ7O.js";
19
19
  import "./chunk-QYF5S6P6.js";
20
- import "./chunk-DQ2NZ7C4.js";
21
- import "./chunk-VNMT7C64.js";
20
+ import "./chunk-2BBLFX75.js";
21
+ import "./chunk-XVF2VVXP.js";
22
22
  import "./chunk-2EECBNC5.js";
23
- import "./chunk-N3YQJI6O.js";
24
- import "./chunk-O6TQT6RI.js";
25
- import "./chunk-5THXD6X5.js";
26
- import "./chunk-UK3CMEAL.js";
23
+ import "./chunk-JAU72XNY.js";
24
+ import "./chunk-XTMJ7XDT.js";
25
+ import "./chunk-JMYYOTQG.js";
26
+ import "./chunk-QQNQ7SJW.js";
27
+ import "./chunk-AOHZU2BM.js";
27
28
  import "./chunk-LJDODBBZ.js";
28
29
  import "./chunk-ABBOA7UD.js";
29
- import "./chunk-Q5U6FMDI.js";
30
+ import "./chunk-N2H3ZPZY.js";
30
31
  import "./chunk-NXL4FFQQ.js";
31
32
  export {
32
33
  MAX_STARTUP_SCAN_ENTRIES,
@@ -3,7 +3,7 @@ import {
3
3
  deserializeWordIndex,
4
4
  recordPersistedWordIndexWireBytes,
5
5
  serializeWordIndex
6
- } from "./chunk-YGVYKNSN.js";
6
+ } from "./chunk-SAEFPSB6.js";
7
7
  import {
8
8
  fingerprintProjectSnapshotJson
9
9
  } from "./chunk-2BEMIWEW.js";
@@ -11,22 +11,22 @@ import {
11
11
  getProjectDataDir,
12
12
  isStaleStageFile,
13
13
  withGenerationLockSync
14
- } from "./chunk-VN2AXLEX.js";
14
+ } from "./chunk-C34ZXZ7O.js";
15
15
  import {
16
16
  writeFileAtomic
17
17
  } from "./chunk-2EECBNC5.js";
18
18
  import {
19
19
  incrementDegradationCount
20
- } from "./chunk-N3YQJI6O.js";
20
+ } from "./chunk-JAU72XNY.js";
21
21
  import {
22
22
  logLatency
23
- } from "./chunk-5THXD6X5.js";
23
+ } from "./chunk-QQNQ7SJW.js";
24
24
  import {
25
25
  BoundedFifoMap
26
26
  } from "./chunk-ABBOA7UD.js";
27
27
  import {
28
28
  normalizeMapKey
29
- } from "./chunk-Q5U6FMDI.js";
29
+ } from "./chunk-N2H3ZPZY.js";
30
30
 
31
31
  // dist/clients/project-snapshot.js
32
32
  import * as fs3 from "node:fs";