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
@@ -0,0 +1,565 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://raw.githubusercontent.com/apmantza/pi-lens/master/docs/schema/pi-lens-config-v1.json",
4
+ "type": "object",
5
+ "additionalProperties": true,
6
+ "properties": {
7
+ "lens": {
8
+ "x-stability": "stable"
9
+ },
10
+ "lsp": {
11
+ "type": "object",
12
+ "additionalProperties": true,
13
+ "x-stability": "stable",
14
+ "properties": {
15
+ "enabled": {
16
+ "x-stability": "stable"
17
+ },
18
+ "servers": {
19
+ "type": "object",
20
+ "x-stability": "experimental",
21
+ "additionalProperties": {
22
+ "type": "object",
23
+ "additionalProperties": true,
24
+ "x-stability": "experimental",
25
+ "properties": {
26
+ "covers": {
27
+ "type": "array",
28
+ "items": {
29
+ "type": "string",
30
+ "x-stability": "experimental"
31
+ },
32
+ "x-merge-strategy": "replace",
33
+ "x-stability": "experimental"
34
+ },
35
+ "name": {
36
+ "type": "string",
37
+ "x-stability": "experimental"
38
+ },
39
+ "enabled": {
40
+ "type": "boolean",
41
+ "x-stability": "experimental"
42
+ },
43
+ "role": {
44
+ "type": "string",
45
+ "enum": [
46
+ "language",
47
+ "auxiliary"
48
+ ],
49
+ "x-stability": "experimental"
50
+ },
51
+ "command": {
52
+ "x-stability": "experimental"
53
+ },
54
+ "args": {
55
+ "type": "array",
56
+ "items": {
57
+ "type": "string",
58
+ "x-stability": "experimental"
59
+ },
60
+ "x-stability": "experimental"
61
+ },
62
+ "extensions": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "string",
66
+ "x-stability": "experimental"
67
+ },
68
+ "x-stability": "experimental"
69
+ },
70
+ "rootMarkers": {
71
+ "type": "array",
72
+ "items": {
73
+ "type": "string",
74
+ "x-stability": "experimental"
75
+ },
76
+ "x-stability": "experimental"
77
+ },
78
+ "env": {
79
+ "type": "object",
80
+ "additionalProperties": {
81
+ "type": "string",
82
+ "x-stability": "experimental"
83
+ },
84
+ "x-stability": "experimental"
85
+ },
86
+ "initializationOptions": {
87
+ "type": "object",
88
+ "additionalProperties": true,
89
+ "x-stability": "experimental"
90
+ }
91
+ }
92
+ }
93
+ },
94
+ "serverOverrides": {
95
+ "type": "object",
96
+ "x-stability": "experimental",
97
+ "additionalProperties": {
98
+ "type": "object",
99
+ "additionalProperties": true,
100
+ "x-stability": "experimental",
101
+ "properties": {
102
+ "command": { "x-stability": "experimental" },
103
+ "env": {
104
+ "type": "object",
105
+ "additionalProperties": { "type": "string", "x-stability": "experimental" },
106
+ "x-stability": "experimental"
107
+ },
108
+ "initializationOptions": {
109
+ "type": "object",
110
+ "additionalProperties": true,
111
+ "x-stability": "experimental"
112
+ }
113
+ }
114
+ }
115
+ },
116
+ "disabledServers": {
117
+ "type": "array",
118
+ "x-stability": "experimental",
119
+ "x-deny": "array-union"
120
+ },
121
+ "warmFiles": {
122
+ "type": "array",
123
+ "x-stability": "experimental"
124
+ }
125
+ }
126
+ },
127
+ "format": {
128
+ "x-stability": "stable"
129
+ },
130
+ "autofix": {
131
+ "x-stability": "stable"
132
+ },
133
+ "tests": {
134
+ "x-stability": "stable"
135
+ },
136
+ "delta": {
137
+ "x-stability": "stable"
138
+ },
139
+ "guard": {
140
+ "x-stability": "stable"
141
+ },
142
+ "opengrep": {
143
+ "x-stability": "stable"
144
+ },
145
+ "readGuard": {
146
+ "x-stability": "stable"
147
+ },
148
+ "contextInjection": {
149
+ "x-stability": "stable"
150
+ },
151
+ "turnSummary": {
152
+ "x-stability": "stable"
153
+ },
154
+ "actionableWarnings": {
155
+ "x-stability": "stable"
156
+ },
157
+ "ui": {
158
+ "x-stability": "stable"
159
+ },
160
+ "tools": {
161
+ "type": "object",
162
+ "additionalProperties": true,
163
+ "properties": {
164
+ "ast_grep_search": {
165
+ "type": "object",
166
+ "additionalProperties": true,
167
+ "properties": {
168
+ "enabled": {
169
+ "type": "boolean",
170
+ "x-stability": "experimental"
171
+ }
172
+ },
173
+ "x-stability": "experimental"
174
+ },
175
+ "ast_grep_replace": {
176
+ "type": "object",
177
+ "additionalProperties": true,
178
+ "properties": {
179
+ "enabled": {
180
+ "type": "boolean",
181
+ "x-stability": "experimental"
182
+ }
183
+ },
184
+ "x-stability": "experimental"
185
+ },
186
+ "ast_grep_outline": {
187
+ "type": "object",
188
+ "additionalProperties": true,
189
+ "properties": {
190
+ "enabled": {
191
+ "type": "boolean",
192
+ "x-stability": "experimental"
193
+ }
194
+ },
195
+ "x-stability": "experimental"
196
+ },
197
+ "lsp_navigation": {
198
+ "type": "object",
199
+ "additionalProperties": true,
200
+ "properties": {
201
+ "enabled": {
202
+ "type": "boolean",
203
+ "x-stability": "experimental"
204
+ }
205
+ },
206
+ "x-stability": "experimental"
207
+ },
208
+ "lens_diagnostics": {
209
+ "type": "object",
210
+ "additionalProperties": true,
211
+ "properties": {
212
+ "enabled": {
213
+ "type": "boolean",
214
+ "x-stability": "experimental"
215
+ }
216
+ },
217
+ "x-stability": "experimental"
218
+ },
219
+ "lens_diagnostic_mark": {
220
+ "type": "object",
221
+ "additionalProperties": true,
222
+ "properties": {
223
+ "enabled": {
224
+ "type": "boolean",
225
+ "x-stability": "experimental"
226
+ }
227
+ },
228
+ "x-stability": "experimental"
229
+ },
230
+ "symbol_search": {
231
+ "type": "object",
232
+ "additionalProperties": true,
233
+ "properties": {
234
+ "enabled": {
235
+ "type": "boolean",
236
+ "x-stability": "experimental"
237
+ }
238
+ },
239
+ "x-stability": "experimental"
240
+ },
241
+ "module_report": {
242
+ "type": "object",
243
+ "additionalProperties": true,
244
+ "properties": {
245
+ "enabled": {
246
+ "type": "boolean",
247
+ "x-stability": "experimental"
248
+ }
249
+ },
250
+ "x-stability": "experimental"
251
+ },
252
+ "project_report": {
253
+ "type": "object",
254
+ "additionalProperties": true,
255
+ "properties": {
256
+ "enabled": {
257
+ "type": "boolean",
258
+ "x-stability": "experimental"
259
+ }
260
+ },
261
+ "x-stability": "experimental"
262
+ },
263
+ "read_symbol": {
264
+ "type": "object",
265
+ "additionalProperties": true,
266
+ "properties": {
267
+ "enabled": {
268
+ "type": "boolean",
269
+ "x-stability": "experimental"
270
+ }
271
+ },
272
+ "x-stability": "experimental"
273
+ },
274
+ "read_enclosing": {
275
+ "type": "object",
276
+ "additionalProperties": true,
277
+ "properties": {
278
+ "enabled": {
279
+ "type": "boolean",
280
+ "x-stability": "experimental"
281
+ }
282
+ },
283
+ "x-stability": "experimental"
284
+ },
285
+ "effective_config": {
286
+ "type": "object",
287
+ "additionalProperties": true,
288
+ "properties": {
289
+ "enabled": {
290
+ "type": "boolean",
291
+ "x-stability": "experimental"
292
+ }
293
+ },
294
+ "x-stability": "experimental"
295
+ },
296
+ "pi_lens_activate_tools": {
297
+ "type": "object",
298
+ "additionalProperties": true,
299
+ "properties": {
300
+ "enabled": {
301
+ "type": "boolean",
302
+ "x-stability": "experimental"
303
+ }
304
+ },
305
+ "x-stability": "experimental"
306
+ },
307
+ "analyze": {
308
+ "type": "object",
309
+ "additionalProperties": true,
310
+ "properties": {
311
+ "enabled": {
312
+ "type": "boolean",
313
+ "x-stability": "experimental"
314
+ }
315
+ },
316
+ "x-stability": "experimental"
317
+ },
318
+ "health": {
319
+ "type": "object",
320
+ "additionalProperties": true,
321
+ "properties": {
322
+ "enabled": {
323
+ "type": "boolean",
324
+ "x-stability": "experimental"
325
+ }
326
+ },
327
+ "x-stability": "experimental"
328
+ },
329
+ "latency": {
330
+ "type": "object",
331
+ "additionalProperties": true,
332
+ "properties": {
333
+ "enabled": {
334
+ "type": "boolean",
335
+ "x-stability": "experimental"
336
+ }
337
+ },
338
+ "x-stability": "experimental"
339
+ },
340
+ "project_scan": {
341
+ "type": "object",
342
+ "additionalProperties": true,
343
+ "properties": {
344
+ "enabled": {
345
+ "type": "boolean",
346
+ "x-stability": "experimental"
347
+ }
348
+ },
349
+ "x-stability": "experimental"
350
+ },
351
+ "rebuild": {
352
+ "type": "object",
353
+ "additionalProperties": true,
354
+ "properties": {
355
+ "enabled": {
356
+ "type": "boolean",
357
+ "x-stability": "experimental"
358
+ }
359
+ },
360
+ "x-stability": "experimental"
361
+ },
362
+ "session_start": {
363
+ "type": "object",
364
+ "additionalProperties": true,
365
+ "properties": {
366
+ "enabled": {
367
+ "type": "boolean",
368
+ "x-stability": "experimental"
369
+ }
370
+ },
371
+ "x-stability": "experimental"
372
+ },
373
+ "turn_end": {
374
+ "type": "object",
375
+ "additionalProperties": true,
376
+ "properties": {
377
+ "enabled": {
378
+ "type": "boolean",
379
+ "x-stability": "experimental"
380
+ }
381
+ },
382
+ "x-stability": "experimental"
383
+ },
384
+ "session_end": {
385
+ "type": "object",
386
+ "additionalProperties": true,
387
+ "properties": {
388
+ "enabled": {
389
+ "type": "boolean",
390
+ "x-stability": "experimental"
391
+ }
392
+ },
393
+ "x-stability": "experimental"
394
+ }
395
+ },
396
+ "x-stability": "stable"
397
+ },
398
+ "turnEnd": {
399
+ "x-stability": "stable"
400
+ },
401
+ "knip": {
402
+ "type": "object",
403
+ "additionalProperties": true,
404
+ "properties": {
405
+ "enabled": {
406
+ "type": "boolean",
407
+ "x-stability": "experimental"
408
+ }
409
+ },
410
+ "x-stability": "stable"
411
+ },
412
+ "jscpd": {
413
+ "type": "object",
414
+ "additionalProperties": true,
415
+ "properties": {
416
+ "enabled": {
417
+ "type": "boolean",
418
+ "x-stability": "experimental"
419
+ }
420
+ },
421
+ "x-stability": "stable"
422
+ },
423
+ "madge": {
424
+ "type": "object",
425
+ "additionalProperties": true,
426
+ "properties": {
427
+ "enabled": {
428
+ "type": "boolean",
429
+ "x-stability": "experimental"
430
+ }
431
+ },
432
+ "x-stability": "stable"
433
+ },
434
+ "gitleaks": {
435
+ "type": "object",
436
+ "additionalProperties": true,
437
+ "properties": {
438
+ "enabled": {
439
+ "type": "boolean",
440
+ "x-stability": "experimental"
441
+ }
442
+ },
443
+ "x-stability": "stable"
444
+ },
445
+ "govulncheck": {
446
+ "type": "object",
447
+ "additionalProperties": true,
448
+ "properties": {
449
+ "enabled": {
450
+ "type": "boolean",
451
+ "x-stability": "experimental"
452
+ }
453
+ },
454
+ "x-stability": "stable"
455
+ },
456
+ "deadCode": {
457
+ "type": "object",
458
+ "additionalProperties": true,
459
+ "properties": {
460
+ "enabled": {
461
+ "type": "boolean",
462
+ "x-stability": "experimental"
463
+ }
464
+ },
465
+ "x-stability": "stable"
466
+ },
467
+ "complexity": {
468
+ "type": "object",
469
+ "additionalProperties": true,
470
+ "properties": {
471
+ "enabled": {
472
+ "type": "boolean",
473
+ "x-stability": "experimental"
474
+ }
475
+ },
476
+ "x-stability": "stable"
477
+ },
478
+ "ignore": {
479
+ "x-stability": "stable"
480
+ },
481
+ "dispatch": {
482
+ "x-stability": "stable"
483
+ },
484
+ "widget": {
485
+ "x-stability": "stable"
486
+ },
487
+ "startup": {
488
+ "type": "object",
489
+ "additionalProperties": true,
490
+ "properties": {
491
+ "mode": {
492
+ "type": "string",
493
+ "enum": [
494
+ "quick",
495
+ "full",
496
+ "minimal"
497
+ ],
498
+ "x-stability": "experimental"
499
+ },
500
+ "scans": {
501
+ "type": "object",
502
+ "additionalProperties": true,
503
+ "properties": {
504
+ "enabled": {
505
+ "type": "boolean",
506
+ "x-stability": "experimental"
507
+ }
508
+ },
509
+ "x-stability": "experimental"
510
+ }
511
+ },
512
+ "x-stability": "stable"
513
+ },
514
+ "$schema": {
515
+ "type": "string",
516
+ "description": "Identity anchor naming the schema version this config was written against.",
517
+ "x-stability": "stable"
518
+ },
519
+ "rules": {
520
+ "type": "object",
521
+ "additionalProperties": {
522
+ "type": "object",
523
+ "additionalProperties": true,
524
+ "properties": {
525
+ "threshold": { "type": "number", "x-stability": "experimental" },
526
+ "disable": { "x-stability": "experimental" },
527
+ "select": { "x-stability": "experimental" },
528
+ "ignorePaths": {
529
+ "type": "array",
530
+ "items": { "type": "string", "minLength": 1, "x-stability": "experimental" },
531
+ "x-merge-strategy": "append",
532
+ "x-deny": "array-union",
533
+ "x-stability": "experimental"
534
+ }
535
+ },
536
+ "x-stability": "experimental"
537
+ },
538
+ "x-stability": "experimental"
539
+ },
540
+ "maxProjectFiles": {
541
+ "x-stability": "stable"
542
+ },
543
+ "reviewGraph": {
544
+ "x-stability": "stable"
545
+ },
546
+ "trivy": {
547
+ "x-stability": "stable"
548
+ },
549
+ "helm": {
550
+ "x-stability": "stable"
551
+ },
552
+ "servers": {
553
+ "x-stability": "experimental"
554
+ },
555
+ "serverOverrides": {
556
+ "x-stability": "experimental"
557
+ },
558
+ "disabledServers": {
559
+ "x-stability": "experimental"
560
+ },
561
+ "warmFiles": {
562
+ "x-stability": "experimental"
563
+ }
564
+ }
565
+ }
@@ -6,7 +6,7 @@ server's `initialize` handshake. Generated by `node scripts/server-capabilities.
6
6
  absent on the generating host are listed under *Unavailable* — run in a
7
7
  provisioned environment (the nightly) to capture those rows.
8
8
 
9
- _Last generated: 2026-10-07 on linux; 40 servers captured, 8 unavailable._
9
+ _Last generated: 2026-10-10 on linux; 29 servers captured, 19 unavailable._
10
10
 
11
11
  ## Diagnostic mode + navigation/edit operations
12
12
 
@@ -25,6 +25,7 @@ Legend: ✓ advertised, · not. **mode** = document diagnostics (`pull` = `textD
25
25
  | dart | push-only | · | · | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 18 |
26
26
  | deno | pull | · | save | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 2 |
27
27
  | docker | push-only | · | · | ✓ | · | · | · | ✓ | ✓ | ✓ | · | · | ✓ | · | · | 0 |
28
+ | docker-official | push-only | · | · | ✓ | · | · | · | ✓ | · | ✓ | · | ✓ | ✓ | · | · | 1 |
28
29
  | emmylua | pull | · | · | ✓ | · | · | ✓ | ✓ | · | ✓ | ✓ | ✓ | · | · | · | 4 |
29
30
  | expert | push-only | · | save | ✓ | · | · | ✓ | ✓ | · | ✓ | ✓ | ✓ | · | · | · | 2 |
30
31
  | fish | push-only | · | save+text | ✓ | · | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | 23 |
@@ -57,9 +58,6 @@ Legend: ✓ advertised, · not. **mode** = document diagnostics (`pull` = `textD
57
58
 
58
59
  ## Raw advertised capability keys
59
60
 
60
- Top-level keys of each server's `ServerCapabilities` — the full advertised
61
- surface, including providers pi-lens does not yet consume.
62
-
63
61
  - **ast-grep**: codeActionProvider, executeCommandProvider, hoverProvider, textDocumentSync
64
62
  - **bash**: codeActionProvider, completionProvider, definitionProvider, documentFormattingProvider, documentHighlightProvider, documentSymbolProvider, hoverProvider, referencesProvider, renameProvider, textDocumentSync, workspaceSymbolProvider
65
63
  - **clojure**: callHierarchyProvider, codeActionProvider, codeLensProvider, completionProvider, declarationProvider, definitionProvider, documentFormattingProvider, documentHighlightProvider, documentRangeFormattingProvider, documentSymbolProvider, executeCommandProvider, experimental, foldingRangeProvider, hoverProvider, implementationProvider, linkedEditingRangeProvider, referencesProvider, renameProvider, selectionRangeProvider, semanticTokensProvider, signatureHelpProvider, textDocumentSync, workspace, workspaceSymbolProvider
@@ -71,6 +69,7 @@ surface, including providers pi-lens does not yet consume.
71
69
  - **dart**: callHierarchyProvider, codeActionProvider, codeLensProvider, colorProvider, completionProvider, definitionProvider, documentFormattingProvider, documentHighlightProvider, documentLinkProvider, documentOnTypeFormattingProvider, documentRangeFormattingProvider, documentSymbolProvider, executeCommandProvider, experimental, foldingRangeProvider, hoverProvider, implementationProvider, inlayHintProvider, inlineValueProvider, referencesProvider, renameProvider, selectionRangeProvider, semanticTokensProvider, signatureHelpProvider, textDocumentSync, typeDefinitionProvider, typeHierarchyProvider, workspace, workspaceSymbolProvider
72
70
  - **deno**: callHierarchyProvider, codeActionProvider, codeLensProvider, completionProvider, definitionProvider, diagnosticProvider, documentFormattingProvider, documentHighlightProvider, documentSymbolProvider, executeCommandProvider, experimental, foldingRangeProvider, hoverProvider, implementationProvider, inlayHintProvider, notebookDocumentSync, referencesProvider, renameProvider, selectionRangeProvider, semanticTokensProvider, signatureHelpProvider, textDocumentSync, typeDefinitionProvider, workspace, workspaceSymbolProvider
73
71
  - **docker**: codeActionProvider, completionProvider, definitionProvider, documentFormattingProvider, documentHighlightProvider, documentLinkProvider, documentOnTypeFormattingProvider, documentRangeFormattingProvider, documentSymbolProvider, foldingRangeProvider, hoverProvider, renameProvider, signatureHelpProvider, textDocumentSync
72
+ - **docker-official**: codeActionProvider, completionProvider, definitionProvider, documentFormattingProvider, documentHighlightProvider, documentLinkProvider, documentSymbolProvider, executeCommandProvider, hoverProvider, inlayHintProvider, inlineCompletionProvider, renameProvider, semanticTokensProvider, textDocumentSync
74
73
  - **emmylua**: codeActionProvider, definitionProvider, diagnosticProvider, documentSymbolProvider, executeCommandProvider, hoverProvider, referencesProvider, textDocumentSync, workspaceSymbolProvider
75
74
  - **expert**: codeActionProvider, codeLensProvider, completionProvider, definitionProvider, documentFormattingProvider, documentSymbolProvider, executeCommandProvider, experimental, hoverProvider, referencesProvider, textDocumentSync, workspace, workspaceSymbolProvider
76
75
  - **fish**: codeActionProvider, completionProvider, definitionProvider, documentFormattingProvider, documentHighlightProvider, documentOnTypeFormattingProvider, documentRangeFormattingProvider, documentSymbolProvider, executeCommandProvider, foldingRangeProvider, hoverProvider, implementationProvider, inlayHintProvider, referencesProvider, renameProvider, selectionRangeProvider, semanticTokensProvider, signatureHelpProvider, textDocumentSync, workspace, workspaceSymbolProvider
@@ -100,6 +99,9 @@ surface, including providers pi-lens does not yet consume.
100
99
  - **yaml**: codeActionProvider, codeLensProvider, completionProvider, definitionProvider, documentFormattingProvider, documentLinkProvider, documentOnTypeFormattingProvider, documentRangeFormattingProvider, documentSymbolProvider, executeCommandProvider, foldingRangeProvider, hoverProvider, renameProvider, selectionRangeProvider, textDocumentSync, workspace
101
100
  - **zig**: codeActionProvider, colorProvider, completionProvider, declarationProvider, definitionProvider, documentFormattingProvider, documentHighlightProvider, documentRangeFormattingProvider, documentSymbolProvider, foldingRangeProvider, hoverProvider, implementationProvider, inlayHintProvider, positionEncoding, referencesProvider, renameProvider, selectionRangeProvider, semanticTokensProvider, signatureHelpProvider, textDocumentSync, typeDefinitionProvider, workspace, workspaceSymbolProvider
102
101
  - **zizmor**: textDocumentSync
102
+ Top-level keys of each server's `ServerCapabilities` — the full advertised
103
+ surface, including providers pi-lens does not yet consume.
104
+
103
105
 
104
106
  ## Advertised executeCommand allowlists
105
107
 
@@ -109,6 +111,7 @@ surface, including providers pi-lens does not yet consume.
109
111
  - **cue** (1): cuelsp.externalvalidate
110
112
  - **dart** (18): dart.edit.codeAction.apply, dart.edit.fixAll, dart.edit.fixAllInWorkspace, dart.edit.fixAllInWorkspace.preview, dart.edit.organizeImports, dart.edit.sendWorkspaceEdit, dart.edit.sortMembers, dart.logAction, dart.refactor.add_constructor_name, dart.refactor.convert_all_formal_parameters_to_named, dart.refactor.convert_selected_formal_parameters_to_named, dart.refactor.move_selected_formal_parameters_left, dart.refactor.move_top_level_to_file, dart.refactor.remove_constructor_name, dart.refactor.remove_import_prefix, dart.refactor_add.import_prefix, refactor.perform, refactor.validate
111
113
  - **deno** (2): deno.cache, deno.reloadImportRegistries
114
+ - **docker-official** (1): dockerLspServer.telemetry.callback
112
115
  - **emmylua** (4): fake.applyEdit, fake.applyEditDeferred, fake.doThing, fake.releaseDeferredApplyEdit
113
116
  - **expert** (2): Reindex, connectionDetails
114
117
  - **fish** (23): fish-lsp.checkHealth, fish-lsp.createTheme, fish-lsp.execute, fish-lsp.executeBuffer, fish-lsp.executeLine, fish-lsp.executeRange, fish-lsp.fixAll, fish-lsp.generateEnvVariables, fish-lsp.selectQuickFixPosition, fish-lsp.showEnvVariables, fish-lsp.showInfo, fish-lsp.showReferences, fish-lsp.showStatusDocs, fish-lsp.showWorkspaceMessage, fish-lsp.toggleSingleWorkspaceSupport, fish-lsp.updateWorkspace, quickfix.delete, quickfix.disable, quickfix.fix, quickfix.fixAll, refactor.extract, refactor.rewrite, source.rename
@@ -127,11 +130,22 @@ surface, including providers pi-lens does not yet consume.
127
130
  Toolchain/binary not installed here, so capabilities weren't captured
128
131
  (many are the toolchain-gated family tracked in #241):
129
132
 
133
+ - @prisma/language-server
134
+ - @vue/language-server
135
+ - bash-language-server
130
136
  - elixir-ls
137
+ - fake custom lua server
138
+ - fish-lsp
131
139
  - haskell-language-server
140
+ - intelephense
132
141
  - jdtls
133
142
  - jdtls + lombok javaagent
134
143
  - nixd
135
144
  - ocamllsp
145
+ - pyright
136
146
  - shuck
137
147
  - sourcekit-lsp
148
+ - svelte-language-server
149
+ - vscode-css-language-server
150
+ - vscode-html-language-server
151
+ - yaml-language-server
package/docs/settings.md CHANGED
@@ -145,8 +145,9 @@ field docs.
145
145
  | `actionableWarnings.autoFix.maxFixes` | global | `5` | Cap on quickfixes applied per turn (`0` = report only) |
146
146
  | `rules.high-complexity.threshold` | project | `15` | Cyclomatic-complexity threshold |
147
147
  | `rules.high-fan-out.threshold` | project | `20` | Distinct-function-call threshold |
148
- | `rules.<id>.disable` | project | absent | Disable diagnostics for a rule (output-only filter, project-wide; same normalization as `pi-lens-ignore`) |
148
+ | `rules.<id>.disable` | global + project | absent | Disable diagnostics for a rule (output-only filter, project-wide; same normalization as `pi-lens-ignore`) |
149
149
  | `rules.<id>.select` | project | absent | Allowlist of rule ids (output-only filter, project-wide across every key; disable wins over select) |
150
+ | `rules.<id>.ignorePaths` | global + project | `[]` | Experimental rule-scoped globs relative to the project root; matching files skip that rule's scan and output. Entries are monotonic across tiers. |
150
151
  | `maxProjectFiles` | project | `2000` | Base scale knob; derives five subsystem size budgets |
151
152
  | `reviewGraph.maxFiles` | project | derived (clamped `100`–`20000`) | Explicit review-graph file budget |
152
153
  | `trivy.enabled` / `trivy.minSeverity` | project | off | Opt-in Trivy vulnerability scanning |
@@ -121,6 +121,12 @@ rebuild:
121
121
  via `PI_LENS_WORD_INDEX_PERSIST_DEBOUNCE_MS`), reusing the same
122
122
  `createDebounceScheduler` primitive the review graph's persist path uses
123
123
  (`scheduleWordIndexPersist`, `clients/word-index.ts`).
124
+ - The serialized form (`serializeWordIndex`'s memo) doubles as the incremental
125
+ cache: it is kept while a run edits, so each persist re-flattens only the
126
+ edited files' tokens, and released once per run at `agent_settled` for the
127
+ session that settled (`releaseWordIndexMemoAtSettle`), plus a stalled-run
128
+ backstop (`PI_LENS_WORD_INDEX_MEMO_BACKSTOP_MS`, default 10 minutes). The
129
+ first persist after a release is a full re-serialize.
124
130
 
125
131
  ## Surfaces
126
132
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-lens",
3
- "version": "4.4.0",
3
+ "version": "4.4.2",
4
4
  "type": "module",
5
5
  "description": "Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo",
6
6
  "repository": {