@herbertgao/pi-extensions 2026.10.2 → 2026.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/README.md +6 -12
  2. package/THIRD_PARTY_NOTICES.md +5 -1
  3. package/node_modules/@herbertgao/pi-subagents/CHANGELOG.md +8 -0
  4. package/node_modules/@herbertgao/pi-subagents/README.md +1 -1
  5. package/node_modules/@herbertgao/pi-subagents/package.json +4 -5
  6. package/node_modules/@herbertgao/pi-subagents/src/index.ts +1 -1
  7. package/node_modules/@herbertgao/pi-subagents/src/invocation-config.ts +1 -1
  8. package/node_modules/@herbertgao/pi-subagents/src/mention-clone.ts +48 -72
  9. package/node_modules/@herbertgao/pi-subagents/src/nested-tools.ts +1 -1
  10. package/node_modules/@herbertgao/pi-subagents/src/output-file.ts +15 -6
  11. package/node_modules/@herbertgao/pi-subagents/src/workflow/collisions.ts +4 -1
  12. package/node_modules/@herbertgao/pi-subagents/src/workflow/json-schema.ts +9 -8
  13. package/node_modules/@narumitw/pi-caffeinate/dist/index.ts +6 -1
  14. package/node_modules/@narumitw/pi-caffeinate/dist/index.ts.map +2 -2
  15. package/node_modules/@narumitw/pi-caffeinate/package.json +1 -1
  16. package/node_modules/@narumitw/pi-caffeinate/src/dbus-inhibit.ts +13 -1
  17. package/node_modules/pi-lens/CHANGELOG.md +95 -0
  18. package/node_modules/pi-lens/README.md +1 -0
  19. package/node_modules/pi-lens/dist/chunk-2FQ62SPM.js +83 -0
  20. package/node_modules/pi-lens/dist/{chunk-6P62QVEA.js → chunk-2UMYMRI3.js} +2 -2
  21. package/node_modules/pi-lens/dist/{chunk-O6TQT6RI.js → chunk-34OCDWOS.js} +1 -1
  22. package/node_modules/pi-lens/dist/{chunk-XK4CIILI.js → chunk-3FERWMCH.js} +26 -26
  23. package/node_modules/pi-lens/dist/{chunk-ZAWW3AF6.js → chunk-3JL6IFD7.js} +8 -8
  24. package/node_modules/pi-lens/dist/{chunk-OAXNDZJ7.js → chunk-3JSEWUWI.js} +8 -4
  25. package/node_modules/pi-lens/dist/{chunk-RPD5K5NC.js → chunk-3MRXIJ6I.js} +2 -2
  26. package/node_modules/pi-lens/dist/{chunk-IVP5KAB7.js → chunk-3P4PF2BX.js} +14 -14
  27. package/node_modules/pi-lens/dist/{chunk-5THXD6X5.js → chunk-3PNFWVHT.js} +2 -2
  28. package/node_modules/pi-lens/dist/{chunk-VD4JQCQC.js → chunk-3TTPKMEF.js} +37 -37
  29. package/node_modules/pi-lens/dist/{chunk-7F72PXY2.js → chunk-5JHXUETW.js} +3 -3
  30. package/node_modules/pi-lens/dist/{chunk-5ZEJHV35.js → chunk-64LU2OVH.js} +2 -2
  31. package/node_modules/pi-lens/dist/{chunk-ODEEOXPH.js → chunk-6B5I6ICN.js} +11 -11
  32. package/node_modules/pi-lens/dist/{chunk-5RXBNSW2.js → chunk-6P54TMWL.js} +16 -8
  33. package/node_modules/pi-lens/dist/{chunk-K6VYLB2U.js → chunk-6UYA642J.js} +12 -12
  34. package/node_modules/pi-lens/dist/{chunk-V7R425XG.js → chunk-6XX5HCLK.js} +4 -4
  35. package/node_modules/pi-lens/dist/{chunk-D6QS3U6M.js → chunk-7AXO3ZDF.js} +15 -15
  36. package/node_modules/pi-lens/dist/{chunk-YGVYKNSN.js → chunk-7BX5DWSA.js} +59 -12
  37. package/node_modules/pi-lens/dist/{chunk-N3YQJI6O.js → chunk-7ELY2CSM.js} +7 -4
  38. package/node_modules/pi-lens/dist/{chunk-AWE5TMPO.js → chunk-7M4T5N3V.js} +13 -13
  39. package/node_modules/pi-lens/dist/{chunk-AJ3QXTRQ.js → chunk-AFZYMAIV.js} +33 -33
  40. package/node_modules/pi-lens/dist/{chunk-AJXODZY6.js → chunk-ALQRYH6O.js} +12 -12
  41. package/node_modules/pi-lens/dist/{chunk-AJVLWNFN.js → chunk-AXKPQ6ZI.js} +5 -5
  42. package/node_modules/pi-lens/dist/{chunk-HWBZIGMJ.js → chunk-BHWHXMQ2.js} +8 -8
  43. package/node_modules/pi-lens/dist/{chunk-IXEBJSUE.js → chunk-BJF25SUG.js} +10 -10
  44. package/node_modules/pi-lens/dist/{chunk-GVXA6CCE.js → chunk-BNKLYOOO.js} +1 -1
  45. package/node_modules/pi-lens/dist/{chunk-T4ERT73Y.js → chunk-CBD2B5CP.js} +20 -20
  46. package/node_modules/pi-lens/dist/{chunk-O5WILGMI.js → chunk-CFYISHUW.js} +5 -5
  47. package/node_modules/pi-lens/dist/{chunk-EOKRQ3SA.js → chunk-CMU4RMJB.js} +1 -1
  48. package/node_modules/pi-lens/dist/{chunk-YSNFMJKN.js → chunk-CULQYFLU.js} +2 -2
  49. package/node_modules/pi-lens/dist/{chunk-ORTMY4Q4.js → chunk-D65GOCJB.js} +21 -14
  50. package/node_modules/pi-lens/dist/{chunk-NTUJEGDZ.js → chunk-D6YF5HKX.js} +2 -2
  51. package/node_modules/pi-lens/dist/{chunk-BRJKOBZP.js → chunk-DMS52BEP.js} +17 -6
  52. package/node_modules/pi-lens/dist/{chunk-NL5GLMFI.js → chunk-ELVWJYRV.js} +11 -11
  53. package/node_modules/pi-lens/dist/{chunk-4W2PLC4J.js → chunk-EUT3B22Y.js} +12 -12
  54. package/node_modules/pi-lens/dist/{chunk-GUOGVTCQ.js → chunk-F5VLZHUW.js} +1 -1
  55. package/node_modules/pi-lens/dist/{chunk-I7SPGOWI.js → chunk-FGALODG3.js} +1 -1
  56. package/node_modules/pi-lens/dist/{chunk-Q5U6FMDI.js → chunk-G3RLJYA2.js} +12 -6
  57. package/node_modules/pi-lens/dist/{chunk-FJNKANOS.js → chunk-GAYGGICG.js} +9 -9
  58. package/node_modules/pi-lens/dist/{chunk-HVUZXSWK.js → chunk-H2W2AXD3.js} +38 -40
  59. package/node_modules/pi-lens/dist/{chunk-VHQLPIRJ.js → chunk-H5EV3VMF.js} +2 -2
  60. package/node_modules/pi-lens/dist/{chunk-27BBHSZC.js → chunk-HREZQCT3.js} +3 -3
  61. package/node_modules/pi-lens/dist/{chunk-TT22N74J.js → chunk-HSIRMK2D.js} +12 -12
  62. package/node_modules/pi-lens/dist/{chunk-3I5QFT3N.js → chunk-IMSQR4WO.js} +6 -3
  63. package/node_modules/pi-lens/dist/{chunk-B3I2UUT4.js → chunk-IQZXOZ7S.js} +156 -32
  64. package/node_modules/pi-lens/dist/{chunk-RIISMHKN.js → chunk-IR6XFA5P.js} +14 -13
  65. package/node_modules/pi-lens/dist/{chunk-LNAKEO63.js → chunk-IUKPRZER.js} +4 -4
  66. package/node_modules/pi-lens/dist/{chunk-RUOG5D2C.js → chunk-IUR76K6A.js} +5 -5
  67. package/node_modules/pi-lens/dist/{chunk-TO6WL3GM.js → chunk-J3FZR3YY.js} +12 -2
  68. package/node_modules/pi-lens/dist/{chunk-Y4T27COV.js → chunk-J6DFZDFA.js} +4 -4
  69. package/node_modules/pi-lens/dist/{chunk-E4MAEDPM.js → chunk-J7WJZ6W7.js} +11 -11
  70. package/node_modules/pi-lens/dist/{chunk-52H5B5TC.js → chunk-JONGANYH.js} +30 -30
  71. package/node_modules/pi-lens/dist/{chunk-TGPXLY2J.js → chunk-KJCWXUUS.js} +35 -1
  72. package/node_modules/pi-lens/dist/{chunk-I3R7GKDR.js → chunk-KJN4IOEJ.js} +1 -1
  73. package/node_modules/pi-lens/dist/{chunk-RPD4ZSB7.js → chunk-KMGPUKFD.js} +12 -12
  74. package/node_modules/pi-lens/dist/{chunk-OQGFCZJ4.js → chunk-LD7WFTRX.js} +13 -13
  75. package/node_modules/pi-lens/dist/{chunk-DIULIWKU.js → chunk-LNOMA3MP.js} +3 -3
  76. package/node_modules/pi-lens/dist/{chunk-HHYAELLJ.js → chunk-MGIWSROG.js} +5 -5
  77. package/node_modules/pi-lens/dist/{chunk-YLF3PPT5.js → chunk-MQA2YBAH.js} +3 -3
  78. package/node_modules/pi-lens/dist/{chunk-TVN5N6GY.js → chunk-MTDRLSI7.js} +690 -186
  79. package/node_modules/pi-lens/dist/{chunk-DQ2NZ7C4.js → chunk-N2IRDBZI.js} +44 -6
  80. package/node_modules/pi-lens/dist/{chunk-AHDW3GPE.js → chunk-N77WFUL7.js} +22 -22
  81. package/node_modules/pi-lens/dist/{chunk-NXPS2L6U.js → chunk-N7YNJE5R.js} +7 -7
  82. package/node_modules/pi-lens/dist/{chunk-7FBF7NPR.js → chunk-NFXP47RV.js} +13 -12
  83. package/node_modules/pi-lens/dist/{chunk-UY752QSN.js → chunk-NJF2X5XF.js} +17 -17
  84. package/node_modules/pi-lens/dist/{chunk-WONERJTP.js → chunk-O7HZX7CA.js} +1 -1
  85. package/node_modules/pi-lens/dist/{chunk-AS44CFQ4.js → chunk-OC7LYAU5.js} +7 -7
  86. package/node_modules/pi-lens/dist/{chunk-4RERDEXR.js → chunk-OEX24ECI.js} +30 -30
  87. package/node_modules/pi-lens/dist/{chunk-6VCD4VKZ.js → chunk-OYOB3ZFG.js} +2 -2
  88. package/node_modules/pi-lens/dist/{chunk-IIXOAGHR.js → chunk-OYTMZXRF.js} +18 -15
  89. package/node_modules/pi-lens/dist/{chunk-ARFCXG7S.js → chunk-OZJINN4O.js} +2 -2
  90. package/node_modules/pi-lens/dist/{chunk-34U7PLGE.js → chunk-PCHDGUKT.js} +11 -11
  91. package/node_modules/pi-lens/dist/{chunk-VCSRSYLF.js → chunk-RJFED73B.js} +34 -36
  92. package/node_modules/pi-lens/dist/chunk-RTQNRM5X.js +27 -0
  93. package/node_modules/pi-lens/dist/{chunk-PAK6IDME.js → chunk-S6AMWKPC.js} +2 -2
  94. package/node_modules/pi-lens/dist/{chunk-U3VGR4VU.js → chunk-T4QZ6FEH.js} +4 -4
  95. package/node_modules/pi-lens/dist/{chunk-VN2AXLEX.js → chunk-T54VJRAD.js} +54 -12
  96. package/node_modules/pi-lens/dist/{chunk-ZMOL6RQC.js → chunk-TA5L5KWQ.js} +2 -2
  97. package/node_modules/pi-lens/dist/{chunk-JOLITGCC.js → chunk-TQFBZVCG.js} +1 -1
  98. package/node_modules/pi-lens/dist/{chunk-VDBPVIKD.js → chunk-U52SAGRM.js} +1 -1
  99. package/node_modules/pi-lens/dist/{chunk-LW6XKDZQ.js → chunk-UEAHAMEI.js} +284 -35
  100. package/node_modules/pi-lens/dist/{chunk-NMABWBZN.js → chunk-UGSMCQ4D.js} +1 -1
  101. package/node_modules/pi-lens/dist/{chunk-6QIUX4EP.js → chunk-USHG4DLH.js} +7 -7
  102. package/node_modules/pi-lens/dist/{chunk-LSMJ6KBE.js → chunk-V5MEBST3.js} +16 -16
  103. package/node_modules/pi-lens/dist/chunk-VGEVL5EQ.js +29 -0
  104. package/node_modules/pi-lens/dist/{chunk-47D2BO4S.js → chunk-VPWKF3GN.js} +10 -10
  105. package/node_modules/pi-lens/dist/{chunk-UK3CMEAL.js → chunk-VSMJK3ZJ.js} +1 -1
  106. package/node_modules/pi-lens/dist/{chunk-22AVIGXS.js → chunk-VYKKMYVT.js} +7 -7
  107. package/node_modules/pi-lens/dist/{chunk-OS32RNR2.js → chunk-VZHJS6DR.js} +15 -15
  108. package/node_modules/pi-lens/dist/{chunk-E2WFBRHM.js → chunk-WATC3IQR.js} +3 -3
  109. package/node_modules/pi-lens/dist/chunk-WPE5FPGR.js +54 -0
  110. package/node_modules/pi-lens/dist/{chunk-V5PXFSZK.js → chunk-WSEWKCXU.js} +4 -4
  111. package/node_modules/pi-lens/dist/{chunk-NKOUFPQF.js → chunk-WW5BLB74.js} +2 -2
  112. package/node_modules/pi-lens/dist/{chunk-PWFHBTSF.js → chunk-XGUL4SLQ.js} +2 -2
  113. package/node_modules/pi-lens/dist/{chunk-F3P7VQ7H.js → chunk-XHSCVSOL.js} +3 -3
  114. package/node_modules/pi-lens/dist/{chunk-DFVMIKMQ.js → chunk-YLN4K6WD.js} +45 -9
  115. package/node_modules/pi-lens/dist/{chunk-VNMT7C64.js → chunk-Z6BB4JLQ.js} +2 -2
  116. package/node_modules/pi-lens/dist/{chunk-NTHH2J74.js → chunk-Z7QQA2KT.js} +12 -12
  117. package/node_modules/pi-lens/dist/{chunk-F3AU2TMM.js → chunk-ZETYB3XG.js} +15 -15
  118. package/node_modules/pi-lens/dist/{chunk-XECLWQZN.js → chunk-ZMOMPX2Z.js} +12 -10
  119. package/node_modules/pi-lens/dist/{chunk-C2AUYXQH.js → chunk-ZOEYVXSV.js} +4 -4
  120. package/node_modules/pi-lens/dist/{chunk-TLGFBM3F.js → chunk-ZZUFZUQZ.js} +68 -64
  121. package/node_modules/pi-lens/dist/index.js +30113 -28398
  122. package/node_modules/pi-lens/dist/mcp/analyze-cli.js +8 -8
  123. package/node_modules/pi-lens/dist/mcp/cli.js +37 -37
  124. package/node_modules/pi-lens/dist/mcp/server.js +257 -158
  125. package/node_modules/pi-lens/dist/mcp/worker.js +55 -55
  126. package/node_modules/pi-lens/dist/probes/installer.js +19 -19
  127. package/node_modules/pi-lens/docs/ast-grep_rules_catalog.md +2 -2
  128. package/node_modules/pi-lens/docs/configuration.md +9 -2
  129. package/node_modules/pi-lens/docs/custom-rules.md +25 -2
  130. package/node_modules/pi-lens/docs/environment-variables.md +34 -6
  131. package/node_modules/pi-lens/docs/features.md +37 -1
  132. package/node_modules/pi-lens/docs/globalconfig.md +1 -1
  133. package/node_modules/pi-lens/docs/lsp-capability-matrix.md +2 -1
  134. package/node_modules/pi-lens/docs/lsp-idle-eviction.md +1 -1
  135. package/node_modules/pi-lens/docs/pi-lens-fixer.md +9 -5
  136. package/node_modules/pi-lens/docs/pi-lens-merge-policy.md +43 -1
  137. package/node_modules/pi-lens/docs/pi-lens-monitor.md +3 -1
  138. package/node_modules/pi-lens/docs/pi-lens-reviewer.md +4 -3
  139. package/node_modules/pi-lens/docs/schema/pi-lens-config-v1.json +530 -0
  140. package/node_modules/pi-lens/docs/servercapabilities.md +4 -1
  141. package/node_modules/pi-lens/docs/word-index.md +6 -0
  142. package/node_modules/pi-lens/package.json +1 -1
  143. package/node_modules/pi-lens/rules/ast-grep-rules/rule-tests/no-identity-operator-on-literals-test.yml +12 -2
  144. package/node_modules/pi-lens/rules/ast-grep-rules/rule-tests/throw-new-error-js-test.yml +2 -0
  145. package/node_modules/pi-lens/rules/ast-grep-rules/rule-tests/throw-new-error-test.yml +2 -0
  146. package/node_modules/pi-lens/rules/ast-grep-rules/rules/no-identity-operator-on-literals.yml +20 -12
  147. package/node_modules/pi-lens/rules/ast-grep-rules/rules/throw-new-error-js.yml +2 -2
  148. package/node_modules/pi-lens/rules/ast-grep-rules/rules/throw-new-error.yml +2 -2
  149. package/node_modules/pi-provider-qoder/README.md +140 -0
  150. package/node_modules/pi-provider-qoder/dist/index.js +10249 -0
  151. package/node_modules/pi-provider-qoder/package.json +57 -0
  152. package/node_modules/pi-web-access/CHANGELOG.md +28 -0
  153. package/node_modules/pi-web-access/README.md +10 -6
  154. package/node_modules/pi-web-access/ceramic.ts +219 -0
  155. package/node_modules/pi-web-access/curator-page.ts +3 -1
  156. package/node_modules/pi-web-access/curator-server.ts +1 -0
  157. package/node_modules/pi-web-access/dist/index.js +846 -588
  158. package/node_modules/pi-web-access/dist/mcp-cli.js +725 -516
  159. package/node_modules/pi-web-access/gemini-search.ts +8 -4
  160. package/node_modules/pi-web-access/github-extract.ts +34 -2
  161. package/node_modules/pi-web-access/index.ts +72 -30
  162. package/node_modules/pi-web-access/openai-search.ts +3 -3
  163. package/node_modules/pi-web-access/package.json +2 -2
  164. package/node_modules/pi-web-access/page-query.ts +6 -9
  165. package/node_modules/pi-web-access/parallel-mcp.ts +2 -0
  166. package/node_modules/pi-web-access/query-rewrite.ts +2 -2
  167. package/node_modules/pi-web-access/storage.ts +49 -0
  168. package/node_modules/pi-web-access/summary-review.ts +7 -6
  169. package/node_modules/pi-web-access/utils.ts +21 -6
  170. package/node_modules/pi-web-access/web-tool-core.ts +1 -0
  171. package/package.json +10 -12
  172. package/node_modules/pi-lens/dist/chunk-54B42YRX.js +0 -27
  173. package/node_modules/pi-lens/dist/chunk-CGGAIP7J.js +0 -29
  174. package/node_modules/pi-lens/dist/chunk-HMFXILPV.js +0 -83
  175. package/node_modules/pi-lens/dist/chunk-T6D4Q4AQ.js +0 -54
  176. package/node_modules/pi-web-access/opencode-session-headers.ts +0 -24
  177. package/node_modules/remote-pi/LICENSE +0 -21
  178. package/node_modules/remote-pi/README.md +0 -675
  179. package/node_modules/remote-pi/dist/actions/handlers.d.ts +0 -122
  180. package/node_modules/remote-pi/dist/actions/handlers.js +0 -160
  181. package/node_modules/remote-pi/dist/actions/handlers.js.map +0 -1
  182. package/node_modules/remote-pi/dist/actions/registry.d.ts +0 -39
  183. package/node_modules/remote-pi/dist/actions/registry.js +0 -58
  184. package/node_modules/remote-pi/dist/actions/registry.js.map +0 -1
  185. package/node_modules/remote-pi/dist/bin/supervisord.d.ts +0 -2
  186. package/node_modules/remote-pi/dist/bin/supervisord.js +0 -86
  187. package/node_modules/remote-pi/dist/bin/supervisord.js.map +0 -1
  188. package/node_modules/remote-pi/dist/commands/builtin_mirror.d.ts +0 -58
  189. package/node_modules/remote-pi/dist/commands/builtin_mirror.js +0 -71
  190. package/node_modules/remote-pi/dist/commands/builtin_mirror.js.map +0 -1
  191. package/node_modules/remote-pi/dist/commands/list_commands.d.ts +0 -60
  192. package/node_modules/remote-pi/dist/commands/list_commands.js +0 -73
  193. package/node_modules/remote-pi/dist/commands/list_commands.js.map +0 -1
  194. package/node_modules/remote-pi/dist/config.d.ts +0 -62
  195. package/node_modules/remote-pi/dist/config.js +0 -115
  196. package/node_modules/remote-pi/dist/config.js.map +0 -1
  197. package/node_modules/remote-pi/dist/daemon/client.d.ts +0 -20
  198. package/node_modules/remote-pi/dist/daemon/client.js +0 -131
  199. package/node_modules/remote-pi/dist/daemon/client.js.map +0 -1
  200. package/node_modules/remote-pi/dist/daemon/control_protocol.d.ts +0 -176
  201. package/node_modules/remote-pi/dist/daemon/control_protocol.js +0 -63
  202. package/node_modules/remote-pi/dist/daemon/control_protocol.js.map +0 -1
  203. package/node_modules/remote-pi/dist/daemon/cron_log.d.ts +0 -45
  204. package/node_modules/remote-pi/dist/daemon/cron_log.js +0 -72
  205. package/node_modules/remote-pi/dist/daemon/cron_log.js.map +0 -1
  206. package/node_modules/remote-pi/dist/daemon/cron_registry.d.ts +0 -80
  207. package/node_modules/remote-pi/dist/daemon/cron_registry.js +0 -194
  208. package/node_modules/remote-pi/dist/daemon/cron_registry.js.map +0 -1
  209. package/node_modules/remote-pi/dist/daemon/id.d.ts +0 -24
  210. package/node_modules/remote-pi/dist/daemon/id.js +0 -36
  211. package/node_modules/remote-pi/dist/daemon/id.js.map +0 -1
  212. package/node_modules/remote-pi/dist/daemon/install.d.ts +0 -170
  213. package/node_modules/remote-pi/dist/daemon/install.js +0 -547
  214. package/node_modules/remote-pi/dist/daemon/install.js.map +0 -1
  215. package/node_modules/remote-pi/dist/daemon/registry.d.ts +0 -63
  216. package/node_modules/remote-pi/dist/daemon/registry.js +0 -153
  217. package/node_modules/remote-pi/dist/daemon/registry.js.map +0 -1
  218. package/node_modules/remote-pi/dist/daemon/rpc_child.d.ts +0 -194
  219. package/node_modules/remote-pi/dist/daemon/rpc_child.js +0 -389
  220. package/node_modules/remote-pi/dist/daemon/rpc_child.js.map +0 -1
  221. package/node_modules/remote-pi/dist/daemon/supervisor.d.ts +0 -93
  222. package/node_modules/remote-pi/dist/daemon/supervisor.js +0 -596
  223. package/node_modules/remote-pi/dist/daemon/supervisor.js.map +0 -1
  224. package/node_modules/remote-pi/dist/extension_ui_bridge.d.ts +0 -26
  225. package/node_modules/remote-pi/dist/extension_ui_bridge.js +0 -341
  226. package/node_modules/remote-pi/dist/extension_ui_bridge.js.map +0 -1
  227. package/node_modules/remote-pi/dist/index.d.ts +0 -213
  228. package/node_modules/remote-pi/dist/index.js +0 -4996
  229. package/node_modules/remote-pi/dist/index.js.map +0 -1
  230. package/node_modules/remote-pi/dist/mcp/mesh_result.d.ts +0 -10
  231. package/node_modules/remote-pi/dist/mcp/mesh_result.js +0 -42
  232. package/node_modules/remote-pi/dist/mcp/mesh_result.js.map +0 -1
  233. package/node_modules/remote-pi/dist/mcp/mesh_server.d.ts +0 -16
  234. package/node_modules/remote-pi/dist/mcp/mesh_server.js +0 -327
  235. package/node_modules/remote-pi/dist/mcp/mesh_server.js.map +0 -1
  236. package/node_modules/remote-pi/dist/mesh/canonical.d.ts +0 -30
  237. package/node_modules/remote-pi/dist/mesh/canonical.js +0 -61
  238. package/node_modules/remote-pi/dist/mesh/canonical.js.map +0 -1
  239. package/node_modules/remote-pi/dist/mesh/client.d.ts +0 -18
  240. package/node_modules/remote-pi/dist/mesh/client.js +0 -125
  241. package/node_modules/remote-pi/dist/mesh/client.js.map +0 -1
  242. package/node_modules/remote-pi/dist/mesh/encoding.d.ts +0 -38
  243. package/node_modules/remote-pi/dist/mesh/encoding.js +0 -216
  244. package/node_modules/remote-pi/dist/mesh/encoding.js.map +0 -1
  245. package/node_modules/remote-pi/dist/mesh/self_revoke.d.ts +0 -73
  246. package/node_modules/remote-pi/dist/mesh/self_revoke.js +0 -401
  247. package/node_modules/remote-pi/dist/mesh/self_revoke.js.map +0 -1
  248. package/node_modules/remote-pi/dist/mesh/siblings.d.ts +0 -49
  249. package/node_modules/remote-pi/dist/mesh/siblings.js +0 -159
  250. package/node_modules/remote-pi/dist/mesh/siblings.js.map +0 -1
  251. package/node_modules/remote-pi/dist/mesh/types.d.ts +0 -34
  252. package/node_modules/remote-pi/dist/mesh/types.js +0 -11
  253. package/node_modules/remote-pi/dist/mesh/types.js.map +0 -1
  254. package/node_modules/remote-pi/dist/mesh/verify.d.ts +0 -17
  255. package/node_modules/remote-pi/dist/mesh/verify.js +0 -86
  256. package/node_modules/remote-pi/dist/mesh/verify.js.map +0 -1
  257. package/node_modules/remote-pi/dist/pairing/crypto.d.ts +0 -8
  258. package/node_modules/remote-pi/dist/pairing/crypto.js +0 -22
  259. package/node_modules/remote-pi/dist/pairing/crypto.js.map +0 -1
  260. package/node_modules/remote-pi/dist/pairing/handshake.d.ts +0 -28
  261. package/node_modules/remote-pi/dist/pairing/handshake.js +0 -113
  262. package/node_modules/remote-pi/dist/pairing/handshake.js.map +0 -1
  263. package/node_modules/remote-pi/dist/pairing/noise-sha256.d.ts +0 -16
  264. package/node_modules/remote-pi/dist/pairing/noise-sha256.js +0 -103
  265. package/node_modules/remote-pi/dist/pairing/noise-sha256.js.map +0 -1
  266. package/node_modules/remote-pi/dist/pairing/qr.d.ts +0 -59
  267. package/node_modules/remote-pi/dist/pairing/qr.js +0 -125
  268. package/node_modules/remote-pi/dist/pairing/qr.js.map +0 -1
  269. package/node_modules/remote-pi/dist/pairing/storage.d.ts +0 -120
  270. package/node_modules/remote-pi/dist/pairing/storage.js +0 -604
  271. package/node_modules/remote-pi/dist/pairing/storage.js.map +0 -1
  272. package/node_modules/remote-pi/dist/protocol/codec.d.ts +0 -7
  273. package/node_modules/remote-pi/dist/protocol/codec.js +0 -49
  274. package/node_modules/remote-pi/dist/protocol/codec.js.map +0 -1
  275. package/node_modules/remote-pi/dist/protocol/types.d.ts +0 -393
  276. package/node_modules/remote-pi/dist/protocol/types.js +0 -2
  277. package/node_modules/remote-pi/dist/protocol/types.js.map +0 -1
  278. package/node_modules/remote-pi/dist/rooms.d.ts +0 -29
  279. package/node_modules/remote-pi/dist/rooms.js +0 -57
  280. package/node_modules/remote-pi/dist/rooms.js.map +0 -1
  281. package/node_modules/remote-pi/dist/session/address.d.ts +0 -49
  282. package/node_modules/remote-pi/dist/session/address.js +0 -58
  283. package/node_modules/remote-pi/dist/session/address.js.map +0 -1
  284. package/node_modules/remote-pi/dist/session/agent_bridge.d.ts +0 -55
  285. package/node_modules/remote-pi/dist/session/agent_bridge.js +0 -146
  286. package/node_modules/remote-pi/dist/session/agent_bridge.js.map +0 -1
  287. package/node_modules/remote-pi/dist/session/bridge.d.ts +0 -37
  288. package/node_modules/remote-pi/dist/session/bridge.js +0 -130
  289. package/node_modules/remote-pi/dist/session/bridge.js.map +0 -1
  290. package/node_modules/remote-pi/dist/session/broker.d.ts +0 -189
  291. package/node_modules/remote-pi/dist/session/broker.js +0 -507
  292. package/node_modules/remote-pi/dist/session/broker.js.map +0 -1
  293. package/node_modules/remote-pi/dist/session/broker_remote.d.ts +0 -74
  294. package/node_modules/remote-pi/dist/session/broker_remote.js +0 -583
  295. package/node_modules/remote-pi/dist/session/broker_remote.js.map +0 -1
  296. package/node_modules/remote-pi/dist/session/cwd_lock.d.ts +0 -33
  297. package/node_modules/remote-pi/dist/session/cwd_lock.js +0 -126
  298. package/node_modules/remote-pi/dist/session/cwd_lock.js.map +0 -1
  299. package/node_modules/remote-pi/dist/session/envelope.d.ts +0 -33
  300. package/node_modules/remote-pi/dist/session/envelope.js +0 -117
  301. package/node_modules/remote-pi/dist/session/envelope.js.map +0 -1
  302. package/node_modules/remote-pi/dist/session/global_config.d.ts +0 -33
  303. package/node_modules/remote-pi/dist/session/global_config.js +0 -73
  304. package/node_modules/remote-pi/dist/session/global_config.js.map +0 -1
  305. package/node_modules/remote-pi/dist/session/ipc.d.ts +0 -27
  306. package/node_modules/remote-pi/dist/session/ipc.js +0 -22
  307. package/node_modules/remote-pi/dist/session/ipc.js.map +0 -1
  308. package/node_modules/remote-pi/dist/session/leader_election.d.ts +0 -32
  309. package/node_modules/remote-pi/dist/session/leader_election.js +0 -106
  310. package/node_modules/remote-pi/dist/session/leader_election.js.map +0 -1
  311. package/node_modules/remote-pi/dist/session/local_config.d.ts +0 -55
  312. package/node_modules/remote-pi/dist/session/local_config.js +0 -157
  313. package/node_modules/remote-pi/dist/session/local_config.js.map +0 -1
  314. package/node_modules/remote-pi/dist/session/mesh_message.d.ts +0 -20
  315. package/node_modules/remote-pi/dist/session/mesh_message.js +0 -28
  316. package/node_modules/remote-pi/dist/session/mesh_message.js.map +0 -1
  317. package/node_modules/remote-pi/dist/session/mesh_node.d.ts +0 -116
  318. package/node_modules/remote-pi/dist/session/mesh_node.js +0 -573
  319. package/node_modules/remote-pi/dist/session/mesh_node.js.map +0 -1
  320. package/node_modules/remote-pi/dist/session/peer.d.ts +0 -139
  321. package/node_modules/remote-pi/dist/session/peer.js +0 -451
  322. package/node_modules/remote-pi/dist/session/peer.js.map +0 -1
  323. package/node_modules/remote-pi/dist/session/peer_inventory.d.ts +0 -13
  324. package/node_modules/remote-pi/dist/session/peer_inventory.js +0 -48
  325. package/node_modules/remote-pi/dist/session/peer_inventory.js.map +0 -1
  326. package/node_modules/remote-pi/dist/session/peer_limits.d.ts +0 -9
  327. package/node_modules/remote-pi/dist/session/peer_limits.js +0 -21
  328. package/node_modules/remote-pi/dist/session/peer_limits.js.map +0 -1
  329. package/node_modules/remote-pi/dist/session/setup_wizard.d.ts +0 -39
  330. package/node_modules/remote-pi/dist/session/setup_wizard.js +0 -63
  331. package/node_modules/remote-pi/dist/session/setup_wizard.js.map +0 -1
  332. package/node_modules/remote-pi/dist/session/tool_gate.d.ts +0 -5
  333. package/node_modules/remote-pi/dist/session/tool_gate.js +0 -11
  334. package/node_modules/remote-pi/dist/session/tool_gate.js.map +0 -1
  335. package/node_modules/remote-pi/dist/session/tools.d.ts +0 -24
  336. package/node_modules/remote-pi/dist/session/tools.js +0 -252
  337. package/node_modules/remote-pi/dist/session/tools.js.map +0 -1
  338. package/node_modules/remote-pi/dist/session/wizard.d.ts +0 -13
  339. package/node_modules/remote-pi/dist/session/wizard.js +0 -20
  340. package/node_modules/remote-pi/dist/session/wizard.js.map +0 -1
  341. package/node_modules/remote-pi/dist/settings.d.ts +0 -15
  342. package/node_modules/remote-pi/dist/settings.js +0 -52
  343. package/node_modules/remote-pi/dist/settings.js.map +0 -1
  344. package/node_modules/remote-pi/dist/transport/peer_channel.d.ts +0 -37
  345. package/node_modules/remote-pi/dist/transport/peer_channel.js +0 -98
  346. package/node_modules/remote-pi/dist/transport/peer_channel.js.map +0 -1
  347. package/node_modules/remote-pi/dist/transport/pi_forward_client.d.ts +0 -29
  348. package/node_modules/remote-pi/dist/transport/pi_forward_client.js +0 -62
  349. package/node_modules/remote-pi/dist/transport/pi_forward_client.js.map +0 -1
  350. package/node_modules/remote-pi/dist/transport/relay_client.d.ts +0 -91
  351. package/node_modules/remote-pi/dist/transport/relay_client.js +0 -206
  352. package/node_modules/remote-pi/dist/transport/relay_client.js.map +0 -1
  353. package/node_modules/remote-pi/dist/ui/footer.d.ts +0 -32
  354. package/node_modules/remote-pi/dist/ui/footer.js +0 -34
  355. package/node_modules/remote-pi/dist/ui/footer.js.map +0 -1
  356. package/node_modules/remote-pi/docs/daemon.md +0 -289
  357. package/node_modules/remote-pi/package.json +0 -92
  358. package/node_modules/remote-pi/service-templates/launchd.plist.template +0 -35
  359. package/node_modules/remote-pi/service-templates/systemd.service.template +0 -19
  360. package/node_modules/remote-pi/service-templates/task-launcher.vbs.template +0 -10
  361. package/node_modules/remote-pi/service-templates/task-scheduler.xml.template +0 -38
  362. package/node_modules/remote-pi/skills/agent-network/SKILL.md +0 -310
@@ -4,13 +4,15 @@ import {
4
4
  detectPythonEnvironment,
5
5
  detectPythonVenv,
6
6
  pythonEnvironmentToolCandidates
7
- } from "./chunk-DIULIWKU.js";
7
+ } from "./chunk-LNOMA3MP.js";
8
8
  import {
9
9
  resolveOpengrepConfig
10
- } from "./chunk-VDBPVIKD.js";
10
+ } from "./chunk-U52SAGRM.js";
11
11
  import {
12
- extensionsForLanguage
13
- } from "./chunk-TGPXLY2J.js";
12
+ extensionsForLanguage,
13
+ getUserRuleRoot,
14
+ ruleCorpusFingerprintForCycle
15
+ } from "./chunk-KJCWXUUS.js";
14
16
  import {
15
17
  load,
16
18
  resolvePackagePath
@@ -20,11 +22,11 @@ import {
20
22
  readCargoWorkspaceExclude,
21
23
  readCargoWorkspaceMembers,
22
24
  readTextFileOrUndefined
23
- } from "./chunk-PAK6IDME.js";
25
+ } from "./chunk-S6AMWKPC.js";
24
26
  import {
25
27
  HOOK_WALL_BUDGET_MS,
26
28
  bounded
27
- } from "./chunk-GUOGVTCQ.js";
29
+ } from "./chunk-F5VLZHUW.js";
28
30
  import {
29
31
  ensureTool,
30
32
  findManagedToolBinary,
@@ -34,20 +36,20 @@ import {
34
36
  isZizmorAuditTarget,
35
37
  logSessionStart,
36
38
  resolveZizmorGitHubToken
37
- } from "./chunk-OQGFCZJ4.js";
39
+ } from "./chunk-LD7WFTRX.js";
38
40
  import {
39
41
  resolveToolCwd
40
- } from "./chunk-RUOG5D2C.js";
42
+ } from "./chunk-IUR76K6A.js";
41
43
  import {
42
44
  findGlobalBinary
43
- } from "./chunk-U3VGR4VU.js";
45
+ } from "./chunk-T4QZ6FEH.js";
44
46
  import {
45
47
  classifyProbeFailure,
46
48
  createAvailabilityLatch,
47
49
  describeInstallAttempt,
48
50
  logAvailabilityDecision,
49
51
  startHostStallSampler
50
- } from "./chunk-WONERJTP.js";
52
+ } from "./chunk-O7HZX7CA.js";
51
53
  import {
52
54
  OWNER_TAG_ENV,
53
55
  SpawnFailureError,
@@ -62,12 +64,12 @@ import {
62
64
  isPathIgnoredByProject,
63
65
  ownerTagForChildren,
64
66
  safeSpawnAsync
65
- } from "./chunk-VN2AXLEX.js";
67
+ } from "./chunk-T54VJRAD.js";
66
68
  import {
67
69
  DOTNET_CSHARP_ROOT_MARKERS,
68
70
  DOTNET_FSHARP_ROOT_MARKERS,
69
71
  KIND_EXTENSIONS
70
- } from "./chunk-5ZEJHV35.js";
72
+ } from "./chunk-64LU2OVH.js";
71
73
  import {
72
74
  lspSectionOf,
73
75
  migrationSubject,
@@ -75,7 +77,7 @@ import {
75
77
  reportPiLensConfigRecords,
76
78
  resolvePiLensConfig,
77
79
  summarizeConfigResolution
78
- } from "./chunk-DQ2NZ7C4.js";
80
+ } from "./chunk-N2IRDBZI.js";
79
81
  import {
80
82
  FRESHNESS_CADENCE_MS,
81
83
  LSP_NAMESPACE_KEY,
@@ -83,23 +85,23 @@ import {
83
85
  dirMtimesStillFreshAsync,
84
86
  getPiLensGlobalConfigPath,
85
87
  unknownDirMtimeRecords
86
- } from "./chunk-VNMT7C64.js";
88
+ } from "./chunk-Z6BB4JLQ.js";
87
89
  import {
88
90
  incrementDegradationCount,
89
91
  recordDegradationOnce
90
- } from "./chunk-N3YQJI6O.js";
92
+ } from "./chunk-7ELY2CSM.js";
91
93
  import {
92
94
  claimPhaseOncePerSession,
93
95
  currentSessionRecordId,
94
96
  logLatency,
95
97
  releasePhaseClaim
96
- } from "./chunk-5THXD6X5.js";
98
+ } from "./chunk-3PNFWVHT.js";
97
99
  import {
98
100
  getGlobalPiLensLogDir,
99
101
  getProcessSingleton,
100
102
  isTestMode,
101
103
  redactSecrets
102
- } from "./chunk-UK3CMEAL.js";
104
+ } from "./chunk-VSMJK3ZJ.js";
103
105
  import {
104
106
  STAGE_TMP_PATTERN
105
107
  } from "./chunk-LJDODBBZ.js";
@@ -120,11 +122,46 @@ import {
120
122
  normalizeMapKey,
121
123
  pathsEqual,
122
124
  toPosix
123
- } from "./chunk-Q5U6FMDI.js";
125
+ } from "./chunk-G3RLJYA2.js";
124
126
  import {
125
127
  __require
126
128
  } from "./chunk-NXL4FFQQ.js";
127
129
 
130
+ // dist/clients/lsp/server-traits.js
131
+ var ROLE_MEMBERS = {
132
+ language: "language",
133
+ auxiliary: "auxiliary"
134
+ };
135
+ var DEFAULT_LSP_SERVER_ROLE = "language";
136
+ function isAuxiliary(bearer) {
137
+ const declared = bearer?.role;
138
+ const role = typeof declared === "string" && Object.hasOwn(ROLE_MEMBERS, declared) ? ROLE_MEMBERS[declared] : DEFAULT_LSP_SERVER_ROLE;
139
+ switch (role) {
140
+ case "auxiliary":
141
+ return true;
142
+ case "language":
143
+ return false;
144
+ }
145
+ }
146
+ var DEFAULT_NOTIFY_INFLIGHT_LIMIT = 8;
147
+ var DEFAULT_REPLY_ORDERING = "unmeasured";
148
+ function serverTraits(declaration) {
149
+ const declaredLimit = declaration.notifyInflightLimit;
150
+ if (typeof declaredLimit === "number" && Number.isFinite(declaredLimit) && declaredLimit > 0) {
151
+ return {
152
+ role: declaration.role,
153
+ notifyInflightLimit: Math.floor(declaredLimit),
154
+ replyOrdering: declaration.replyOrdering ?? DEFAULT_REPLY_ORDERING
155
+ };
156
+ }
157
+ const envLimit = Number(process.env.PI_LENS_LSP_AUX_NOTIFY_INFLIGHT);
158
+ return {
159
+ role: declaration.role,
160
+ notifyInflightLimit: Number.isFinite(envLimit) && envLimit > 0 ? Math.floor(envLimit) : DEFAULT_NOTIFY_INFLIGHT_LIMIT,
161
+ replyOrdering: declaration.replyOrdering ?? DEFAULT_REPLY_ORDERING
162
+ };
163
+ }
164
+
128
165
  // dist/clients/lsp/server.js
129
166
  import { existsSync as existsSync3, mkdirSync as mkdirSync2, statSync as statSync3 } from "node:fs";
130
167
  import { access, readFile, readdir, stat } from "node:fs/promises";
@@ -162,6 +199,18 @@ function getAstGrepRuleSources(projectRoot = process.cwd()) {
162
199
  tier: "secondary"
163
200
  });
164
201
  }
202
+ const userRoot = getUserRuleRoot();
203
+ if (canonicalDir(userRoot) !== canonicalDir(root)) {
204
+ candidates.push({
205
+ dir: path.join(userRoot, "ast-grep-rules", "rules"),
206
+ origin: "user",
207
+ tier: "primary"
208
+ }, {
209
+ dir: path.join(userRoot, "ast-grep-rules", "coderabbit", "rules"),
210
+ origin: "user",
211
+ tier: "secondary"
212
+ });
213
+ }
165
214
  candidates.push({
166
215
  dir: path.join(packageRoot, "rules", "ast-grep-rules", "rules"),
167
216
  origin: "bundled",
@@ -246,7 +295,15 @@ function snapshotRuleSource(source) {
246
295
  }
247
296
  hash.update(content);
248
297
  hash.update("\0");
249
- files.push({ file, relativePath, documents: parseRuleDocuments(content) });
298
+ const documents = parseRuleDocuments(content);
299
+ if (source.origin === "user" && documents.some((document) => !document.id)) {
300
+ recordDegradationOnce({
301
+ kind: "ast-grep-rule-invalid",
302
+ subject: file,
303
+ reason: "user ast-grep rule has no valid rule id"
304
+ });
305
+ }
306
+ files.push({ file, relativePath, documents });
250
307
  }
251
308
  const snapshot = { ...source, files, digest: hash.digest("hex") };
252
309
  if (source.origin === "bundled")
@@ -267,6 +324,10 @@ function sourceFingerprint(sources) {
267
324
  }
268
325
  return hash.digest("hex");
269
326
  }
327
+ function getAstGrepRuleFingerprint(projectRoot = process.cwd(), options = {}) {
328
+ const root = path.resolve(projectRoot || process.cwd());
329
+ return ruleCorpusFingerprintForCycle("ast-grep", root, (fingerprintRoot) => sourceFingerprint(getAstGrepRuleSources(fingerprintRoot).map(snapshotRuleSource)), options.force);
330
+ }
270
331
  function materializeMergedRuleDir(sources, mergedDir) {
271
332
  fs.rmSync(mergedDir, { recursive: true, force: true });
272
333
  fs.mkdirSync(mergedDir, { recursive: true });
@@ -302,14 +363,14 @@ function rootArtifactKey(root) {
302
363
  }
303
364
  function resolveBaselineSgconfig(projectRoot = process.cwd()) {
304
365
  const root = canonicalDir(path.resolve(projectRoot || process.cwd()));
305
- const sources = getAstGrepRuleSources(root).map(snapshotRuleSource);
306
- if (sources.length === 0)
307
- return void 0;
308
- const fingerprint = sourceFingerprint(sources);
366
+ const fingerprint = getAstGrepRuleFingerprint(root, { force: true });
309
367
  const cached = cachedBaselines.get(root);
310
368
  if (cached?.fingerprint === fingerprint && fs.existsSync(cached.path) && fs.existsSync(cached.mergedDir)) {
311
369
  return cached.path;
312
370
  }
371
+ const sources = getAstGrepRuleSources(root).map(snapshotRuleSource);
372
+ if (sources.length === 0)
373
+ return void 0;
313
374
  const dir = path.join(os.tmpdir(), "pi-lens-ast-grep");
314
375
  fs.mkdirSync(dir, { recursive: true });
315
376
  const artifactKey = rootArtifactKey(root);
@@ -1125,6 +1186,14 @@ function createCustomServer(config, id) {
1125
1186
  // be probeable before the claim can defer a CLI runner.
1126
1187
  command: config.command,
1127
1188
  extensions: config.extensions,
1189
+ // A config-declared server is a language server. The public
1190
+ // `lsp.servers.<id>.role` field is validated and projected by
1191
+ // `ResolvedLspConfig` (clients/lsp/resolved-config.ts) but stays
1192
+ // RESERVED and inert here: honouring it would change which servers a
1193
+ // file selects as primary, and that is the catalog slice's call, not
1194
+ // this loader's (#2416 slice 1). The stated default is applied rather
1195
+ // than left absent (#1488).
1196
+ role: DEFAULT_LSP_SERVER_ROLE,
1128
1197
  idleEviction: "unmeasured",
1129
1198
  // The config-declared covers channel (#3968): the claim the loader
1130
1199
  // validated (`lspConfigOf`'s projection drops unknown runner ids) rides
@@ -1258,7 +1327,7 @@ function getServersForFileWithConfig(filePath) {
1258
1327
  return registeredServers(config).filter((server) => selectionReason(server, config, filePath, ext, base) === "selected");
1259
1328
  }
1260
1329
  function primaryServerEntry(filePath) {
1261
- return getServersForFileWithConfig(filePath).find((s) => s.role !== "auxiliary");
1330
+ return getServersForFileWithConfig(filePath).find((s) => !isAuxiliary(s));
1262
1331
  }
1263
1332
  function primaryServerId(filePath) {
1264
1333
  return primaryServerEntry(filePath)?.id;
@@ -1701,7 +1770,7 @@ function classifyServerWaitTier(serverId, snapshot) {
1701
1770
  return "tier3-silent";
1702
1771
  }
1703
1772
  function resolvePrimaryServerForWaitPolicy(filePath, snapshots) {
1704
- const servers = getServersForFileWithConfig(filePath).filter((s) => s.role !== "auxiliary");
1773
+ const servers = getServersForFileWithConfig(filePath).filter((s) => !isAuxiliary(s));
1705
1774
  const primary = servers[0];
1706
1775
  if (!primary)
1707
1776
  return void 0;
@@ -2806,6 +2875,11 @@ function createInteractiveServer(spec) {
2806
2875
  name: spec.name,
2807
2876
  extensions: spec.extensions,
2808
2877
  idleEviction: "unmeasured",
2878
+ // `InteractiveServerSpec` declares no role, so the factory applies the
2879
+ // stated default rather than leaving `role` absent for each consumer to
2880
+ // read by negation (#1488). An auxiliary would declare its role on a
2881
+ // row of its own, the way the four scanner rows do.
2882
+ role: DEFAULT_LSP_SERVER_ROLE,
2809
2883
  root: spec.root,
2810
2884
  rootMarkers: spec.root.rootMarkers,
2811
2885
  fallbackFor: spec.fallbackFor,
@@ -3291,6 +3365,7 @@ var TypeScriptRoot = withRootMarkers(DenoExcludeRoot(async (file) => {
3291
3365
  var TypeScriptServer = {
3292
3366
  id: "typescript",
3293
3367
  idleEviction: "transparent",
3368
+ role: "language",
3294
3369
  name: "TypeScript Language Server",
3295
3370
  extensions: JS_TS_LSP_EXTENSIONS,
3296
3371
  autoPropagateDiagnostics: true,
@@ -3353,6 +3428,7 @@ var TypeScriptServer = {
3353
3428
  var DenoServer = {
3354
3429
  id: "deno",
3355
3430
  idleEviction: "transparent",
3431
+ role: "language",
3356
3432
  name: "Deno Language Server",
3357
3433
  fallbackFor: "typescript",
3358
3434
  extensions: JS_TS_LSP_EXTENSIONS,
@@ -3370,6 +3446,7 @@ var DenoServer = {
3370
3446
  var PythonServer = {
3371
3447
  id: "python",
3372
3448
  idleEviction: "transparent",
3449
+ role: "language",
3373
3450
  name: "Pyright Language Server",
3374
3451
  extensions: KIND_EXTENSIONS["python"],
3375
3452
  root: RootWithFallback(createRootDetector([
@@ -3463,7 +3540,8 @@ var PythonServer = {
3463
3540
  };
3464
3541
  var PythonJediServer = {
3465
3542
  id: "python-jedi",
3466
- idleEviction: "unmeasured",
3543
+ idleEviction: "transparent",
3544
+ role: "language",
3467
3545
  name: "Jedi Language Server",
3468
3546
  fallbackFor: "python",
3469
3547
  extensions: KIND_EXTENSIONS["python"],
@@ -3495,6 +3573,7 @@ var PythonJediServer = {
3495
3573
  var GoServer = {
3496
3574
  id: "go",
3497
3575
  idleEviction: "unmeasured",
3576
+ role: "language",
3498
3577
  name: "gopls",
3499
3578
  extensions: KIND_EXTENSIONS["go"],
3500
3579
  root: RootWithFallback(WorkspacePriorityRoot([["go.work"], ["go.mod", "go.sum"], [".git"]])),
@@ -3626,6 +3705,7 @@ function JavaWorkspaceRoot() {
3626
3705
  var RustServer = {
3627
3706
  id: "rust",
3628
3707
  idleEviction: "unmeasured",
3708
+ role: "language",
3629
3709
  // Measured (#3750): rust-analyzer answers an empty result for a detached file.
3630
3710
  requiresProjectRoot: true,
3631
3711
  name: "rust-analyzer",
@@ -3660,6 +3740,7 @@ var RustServer = {
3660
3740
  var RubyServer = {
3661
3741
  id: "ruby",
3662
3742
  idleEviction: "unmeasured",
3743
+ role: "language",
3663
3744
  name: "Ruby LSP",
3664
3745
  extensions: KIND_EXTENSIONS["ruby"],
3665
3746
  root: RootWithFallback(PriorityRoot([["Gemfile", ".ruby-version"], [".git"]])),
@@ -3697,6 +3778,7 @@ var RubyServer = {
3697
3778
  var PHPServer = {
3698
3779
  id: "php",
3699
3780
  idleEviction: "transparent",
3781
+ role: "language",
3700
3782
  name: "Intelephense",
3701
3783
  extensions: KIND_EXTENSIONS["php"],
3702
3784
  root: RootWithFallback(createRootDetector(["composer.json", "composer.lock"])),
@@ -3754,6 +3836,7 @@ function buildPsesArgs(bundleDir) {
3754
3836
  var PowerShellServer = {
3755
3837
  id: "powershell",
3756
3838
  idleEviction: "unmeasured",
3839
+ role: "language",
3757
3840
  name: "PowerShell Editor Services",
3758
3841
  extensions: KIND_EXTENSIONS["powershell"],
3759
3842
  // Index at the workspace (script modules reference siblings); fall back to the
@@ -3771,6 +3854,7 @@ var PowerShellServer = {
3771
3854
  var CSharpServer = {
3772
3855
  id: "csharp",
3773
3856
  idleEviction: "unmeasured",
3857
+ role: "language",
3774
3858
  // Documented (#3750): csharp-ls needs a solution or project.
3775
3859
  requiresProjectRoot: true,
3776
3860
  name: "csharp-ls",
@@ -3809,6 +3893,7 @@ var OmniSharpServer = createInteractiveServer({
3809
3893
  var FSharpServer = {
3810
3894
  id: "fsharp",
3811
3895
  idleEviction: "unmeasured",
3896
+ role: "language",
3812
3897
  // Documented (#3750): FSAutocomplete needs a project.
3813
3898
  requiresProjectRoot: true,
3814
3899
  name: "FSAutocomplete",
@@ -3841,6 +3926,7 @@ var JavaServer = createInteractiveServer({
3841
3926
  var KotlinServer = {
3842
3927
  id: "kotlin",
3843
3928
  idleEviction: "unmeasured",
3929
+ role: "language",
3844
3930
  name: "Kotlin Language Server",
3845
3931
  extensions: KIND_EXTENSIONS["kotlin"],
3846
3932
  root: RootWithFallback(createRootDetector(["build.gradle.kts", "build.gradle", "pom.xml"])),
@@ -3880,6 +3966,9 @@ function createTreeBinaryServer(spec) {
3880
3966
  name: spec.name,
3881
3967
  extensions: spec.extensions,
3882
3968
  idleEviction: spec.idleEviction ?? "unmeasured",
3969
+ // The spec declares no role, so the factory applies the stated default
3970
+ // (#1488) — see `createInteractiveServer`.
3971
+ role: DEFAULT_LSP_SERVER_ROLE,
3883
3972
  root: spec.root,
3884
3973
  spawn(root, options) {
3885
3974
  return resolveAndLaunchTreeBinary({
@@ -3918,6 +4007,7 @@ var CppServer = createTreeBinaryServer({
3918
4007
  var ZigServer = {
3919
4008
  id: "zig",
3920
4009
  idleEviction: "unmeasured",
4010
+ role: "language",
3921
4011
  name: "ZLS",
3922
4012
  extensions: KIND_EXTENSIONS["zig"],
3923
4013
  root: RootWithFallback(createRootDetector(["build.zig"])),
@@ -3950,6 +4040,7 @@ var ElixirServer = createInteractiveServer({
3950
4040
  var ElixirExpertServer = {
3951
4041
  id: "expert",
3952
4042
  idleEviction: "unmeasured",
4043
+ role: "language",
3953
4044
  name: "Expert",
3954
4045
  fallbackFor: "elixir",
3955
4046
  extensions: KIND_EXTENSIONS["elixir"],
@@ -3968,6 +4059,7 @@ var ElixirExpertServer = {
3968
4059
  var GleamServer = {
3969
4060
  id: "gleam",
3970
4061
  idleEviction: "unmeasured",
4062
+ role: "language",
3971
4063
  name: "Gleam LSP",
3972
4064
  extensions: KIND_EXTENSIONS["gleam"],
3973
4065
  root: RootWithFallback(createRootDetector(["gleam.toml"])),
@@ -3983,6 +4075,7 @@ var GleamServer = {
3983
4075
  var TinymistServer = {
3984
4076
  id: "tinymist",
3985
4077
  idleEviction: "unmeasured",
4078
+ role: "language",
3986
4079
  name: "Tinymist",
3987
4080
  extensions: extensionsForLanguage("typst"),
3988
4081
  root: RootWithFallback(createRootDetector(["typst.toml", ".git"])),
@@ -3999,6 +4092,7 @@ var TinymistServer = {
3999
4092
  var MarksmanServer = {
4000
4093
  id: "marksman",
4001
4094
  idleEviction: "transparent",
4095
+ role: "language",
4002
4096
  name: "Marksman",
4003
4097
  extensions: KIND_EXTENSIONS["markdown"],
4004
4098
  // Index at the workspace root so cross-file checks (broken intra-repo links,
@@ -4025,6 +4119,7 @@ var OCamlServer = createInteractiveServer({
4025
4119
  var ClojureServer = {
4026
4120
  id: "clojure",
4027
4121
  idleEviction: "transparent",
4122
+ role: "language",
4028
4123
  name: "Clojure LSP",
4029
4124
  extensions: KIND_EXTENSIONS["clojure"],
4030
4125
  root: createRootDetector(["deps.edn", "project.clj"]),
@@ -4040,6 +4135,7 @@ var ClojureServer = {
4040
4135
  var CueServer = {
4041
4136
  id: "cue",
4042
4137
  idleEviction: "unmeasured",
4138
+ role: "language",
4043
4139
  name: "CUE Language Server",
4044
4140
  extensions: KIND_EXTENSIONS["cue"],
4045
4141
  root: RootWithFallback(createRootDetector(["cue.mod", ".git"])),
@@ -4055,6 +4151,7 @@ var CueServer = {
4055
4151
  var TerraformServer = {
4056
4152
  id: "terraform",
4057
4153
  idleEviction: "unmeasured",
4154
+ role: "language",
4058
4155
  name: "Terraform LSP",
4059
4156
  extensions: KIND_EXTENSIONS["terraform"],
4060
4157
  root: RootWithFallback(createRootDetector([".terraform.lock.hcl", ".terraform"])),
@@ -4078,6 +4175,7 @@ var NixServer = createInteractiveServer({
4078
4175
  var BashServer = {
4079
4176
  id: "bash",
4080
4177
  idleEviction: "transparent",
4178
+ role: "language",
4081
4179
  name: "Bash Language Server",
4082
4180
  // #3968: narrowed from [".bash", ".sh", ".zsh"] — bash-language-server does
4083
4181
  // not support zsh (its own analyzer refuses the dialect), and its ≥5.7.0
@@ -4121,6 +4219,7 @@ var ShuckServer = createInteractiveServer({
4121
4219
  var FishServer = {
4122
4220
  id: "fish",
4123
4221
  idleEviction: "transparent",
4222
+ role: "language",
4124
4223
  name: "Fish Language Server",
4125
4224
  extensions: KIND_EXTENSIONS["fish"],
4126
4225
  root: RootWithFallback(createRootDetector([".git"])),
@@ -4136,6 +4235,7 @@ var FishServer = {
4136
4235
  var CMakeServer = {
4137
4236
  id: "cmake",
4138
4237
  idleEviction: "unmeasured",
4238
+ role: "language",
4139
4239
  name: "CMake Language Server",
4140
4240
  // CMake's canonical project file has no .cmake suffix. The configured-server
4141
4241
  // matcher supports exact basenames as well as extensions.
@@ -4152,7 +4252,8 @@ var CMakeServer = {
4152
4252
  };
4153
4253
  var DockerServer = {
4154
4254
  id: "docker",
4155
- idleEviction: "unmeasured",
4255
+ idleEviction: "transparent",
4256
+ role: "language",
4156
4257
  name: "Dockerfile Language Server",
4157
4258
  extensions: [".dockerfile", "Dockerfile"],
4158
4259
  root: RootWithFallback(PriorityRoot([
@@ -4176,6 +4277,7 @@ var DockerServer = {
4176
4277
  var DockerOfficialServer = {
4177
4278
  id: "docker-official",
4178
4279
  idleEviction: "unmeasured",
4280
+ role: "language",
4179
4281
  name: "Docker Language Server (official)",
4180
4282
  fallbackFor: "docker",
4181
4283
  extensions: [".dockerfile", "Dockerfile"],
@@ -4199,6 +4301,7 @@ var DockerOfficialServer = {
4199
4301
  var YamlServer = {
4200
4302
  id: "yaml",
4201
4303
  idleEviction: "transparent",
4304
+ role: "language",
4202
4305
  name: "YAML Language Server",
4203
4306
  extensions: KIND_EXTENSIONS["yaml"],
4204
4307
  root: RootWithFallback(PriorityRoot([
@@ -4216,7 +4319,8 @@ var YamlServer = {
4216
4319
  };
4217
4320
  var JsonServer = {
4218
4321
  id: "json",
4219
- idleEviction: "unmeasured",
4322
+ idleEviction: "transparent",
4323
+ role: "language",
4220
4324
  name: "VSCode JSON Language Server",
4221
4325
  extensions: KIND_EXTENSIONS["json"],
4222
4326
  root: RootWithFallback(WorkspacePriorityRoot([
@@ -4242,6 +4346,7 @@ var JsonServer = {
4242
4346
  var HtmlServer = {
4243
4347
  id: "html",
4244
4348
  idleEviction: "transparent",
4349
+ role: "language",
4245
4350
  name: "VSCode HTML Language Server",
4246
4351
  extensions: KIND_EXTENSIONS["html"],
4247
4352
  root: RootWithFallback(IgnoreHomeRoot(PriorityRoot([["package.json", "index.html", "vite.config.ts"]]))),
@@ -4257,6 +4362,7 @@ var HtmlServer = {
4257
4362
  var TomlServer = {
4258
4363
  id: "toml",
4259
4364
  idleEviction: "unmeasured",
4365
+ role: "language",
4260
4366
  name: "Taplo",
4261
4367
  extensions: KIND_EXTENSIONS["toml"],
4262
4368
  root: RootWithFallback(PriorityRoot([["pyproject.toml", "Cargo.toml", "taplo.toml"], [".git"]])),
@@ -4272,6 +4378,7 @@ var TomlServer = {
4272
4378
  var PrismaServer = {
4273
4379
  id: "prisma",
4274
4380
  idleEviction: "transparent",
4381
+ role: "language",
4275
4382
  name: "Prisma Language Server",
4276
4383
  extensions: KIND_EXTENSIONS["prisma"],
4277
4384
  root: RootWithFallback(createRootDetector(["prisma/schema.prisma", "schema.prisma"])),
@@ -4298,6 +4405,7 @@ var PrismaServer = {
4298
4405
  var VueServer = {
4299
4406
  id: "vue",
4300
4407
  idleEviction: "unmeasured",
4408
+ role: "language",
4301
4409
  name: "Vue Language Server",
4302
4410
  extensions: [".vue"],
4303
4411
  root: RootWithFallback(IgnoreHomeRoot(createRootDetector([
@@ -4342,6 +4450,7 @@ var VueServer = {
4342
4450
  var SvelteServer = {
4343
4451
  id: "svelte",
4344
4452
  idleEviction: "unmeasured",
4453
+ role: "language",
4345
4454
  name: "Svelte Language Server",
4346
4455
  extensions: [".svelte"],
4347
4456
  root: RootWithFallback(IgnoreHomeRoot(createRootDetector([
@@ -4382,6 +4491,7 @@ var SvelteServer = {
4382
4491
  var CssServer = {
4383
4492
  id: "css",
4384
4493
  idleEviction: "transparent",
4494
+ role: "language",
4385
4495
  name: "CSS Language Server",
4386
4496
  extensions: KIND_EXTENSIONS["css"],
4387
4497
  root: RootWithFallback(IgnoreHomeRoot(PriorityRoot([
@@ -4439,8 +4549,8 @@ function opengrepInitialization(root) {
4439
4549
  var OpengrepServer = {
4440
4550
  id: "opengrep",
4441
4551
  idleEviction: "transparent",
4442
- name: "Opengrep Security Scanner",
4443
4552
  role: "auxiliary",
4553
+ name: "Opengrep Security Scanner",
4444
4554
  extensions: OPENGREP_EXTENSIONS,
4445
4555
  // Stable per-repo root so ONE warm server serves the whole project (a
4446
4556
  // per-directory root would spawn a fresh server — and re-pay rule load —
@@ -4489,8 +4599,8 @@ var AST_GREP_EXTENSIONS = Array.from(new Set(AST_GREP_KINDS.flatMap((k) => KIND_
4489
4599
  var AstGrepServer = {
4490
4600
  id: "ast-grep",
4491
4601
  idleEviction: "unmeasured",
4492
- name: "ast-grep structural linter",
4493
4602
  role: "auxiliary",
4603
+ name: "ast-grep structural linter",
4494
4604
  extensions: AST_GREP_EXTENSIONS,
4495
4605
  // Attaches everywhere (#239 Phase 2): prefer a project `sgconfig.y[a]ml` root,
4496
4606
  // else the repo root (.git) or cwd — like Opengrep. When there's no project
@@ -4506,6 +4616,13 @@ var AstGrepServer = {
4506
4616
  // the whole file on every didOpen, so it absorbs a sweep more slowly than the
4507
4617
  // other scanners — hold it to half the shared default.
4508
4618
  notifyInflightLimit: 4,
4619
+ // #1722, measured against the real binary over 30 repository files rather
4620
+ // than assumed: ast-grep-lsp is tower-lsp-server and drains its message
4621
+ // stream in order on one task, so the notify barrier's round-trip proves
4622
+ // the backlog was scanned. Declared here because the barrier's soundness
4623
+ // rests on it (#1756 stage 1); the evidence table is on
4624
+ // `LspReplyOrdering`.
4625
+ replyOrdering: "single-task-ordered",
4509
4626
  // First scan of a session compiles the rules.
4510
4627
  initializeTimeoutMs: 15e3,
4511
4628
  async spawn(root, options) {
@@ -4531,8 +4648,8 @@ var ZIZMOR_EXTENSIONS = KIND_EXTENSIONS["yaml"];
4531
4648
  var ZizmorServer = {
4532
4649
  id: "zizmor",
4533
4650
  idleEviction: "unmeasured",
4534
- name: "zizmor Actions Security Scanner",
4535
4651
  role: "auxiliary",
4652
+ name: "zizmor Actions Security Scanner",
4536
4653
  extensions: ZIZMOR_EXTENSIONS,
4537
4654
  pathFilter: isZizmorAuditTarget,
4538
4655
  // Stable per-repo root so ONE warm server serves the whole project (like
@@ -4579,8 +4696,8 @@ function typosInitialization(root) {
4579
4696
  var TyposServer = {
4580
4697
  id: "typos",
4581
4698
  idleEviction: "unmeasured",
4582
- name: "typos Spell Checker",
4583
4699
  role: "auxiliary",
4700
+ name: "typos Spell Checker",
4584
4701
  extensions: TYPOS_EXTENSIONS,
4585
4702
  // Stable per-repo root so ONE warm server serves the whole project (like the
4586
4703
  // other auxiliaries) — typos.toml discovery is repo-relative.
@@ -4656,10 +4773,16 @@ var LSP_SERVERS = [
4656
4773
  ZizmorServer,
4657
4774
  TyposServer
4658
4775
  ];
4776
+ function getServerById(id) {
4777
+ return LSP_SERVERS.find((server) => server.id === id);
4778
+ }
4659
4779
 
4660
4780
  export {
4661
4781
  findLocalTyposConfig,
4662
4782
  getAstGrepRuleSources,
4783
+ getAstGrepRuleFingerprint,
4784
+ isAuxiliary,
4785
+ serverTraits,
4663
4786
  registerRunnerId,
4664
4787
  BUILTIN_SERVER_RUNNER_COVERS,
4665
4788
  describeRootFallback,
@@ -4673,6 +4796,7 @@ export {
4673
4796
  isDirectLspCommandTemporarilyUnavailable,
4674
4797
  resetClassicTsRepairGuard,
4675
4798
  LSP_SERVERS,
4799
+ getServerById,
4676
4800
  shouldInitializeSessionRoot,
4677
4801
  isOutsideAllSessionRoots,
4678
4802
  getSessionRootsForTelemetry,
@@ -7,23 +7,24 @@ 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-DMS52BEP.js";
11
+ import "./chunk-J3FZR3YY.js";
12
+ import "./chunk-5JHXUETW.js";
13
+ import "./chunk-IMSQR4WO.js";
14
+ import "./chunk-CMU4RMJB.js";
15
+ import "./chunk-O7HZX7CA.js";
16
+ import "./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
- import "./chunk-N3YQJI6O.js";
21
- import "./chunk-O6TQT6RI.js";
22
- import "./chunk-5THXD6X5.js";
23
- import "./chunk-UK3CMEAL.js";
21
+ import "./chunk-7ELY2CSM.js";
22
+ import "./chunk-34OCDWOS.js";
23
+ import "./chunk-3PNFWVHT.js";
24
+ import "./chunk-VSMJK3ZJ.js";
24
25
  import "./chunk-LJDODBBZ.js";
25
26
  import "./chunk-ABBOA7UD.js";
26
- import "./chunk-Q5U6FMDI.js";
27
+ import "./chunk-G3RLJYA2.js";
27
28
  import "./chunk-NXL4FFQQ.js";
28
29
  export {
29
30
  GitleaksClient,
@@ -1,11 +1,11 @@
1
1
  import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
2
2
  import {
3
3
  loadPiLensProjectConfig
4
- } from "./chunk-DQ2NZ7C4.js";
4
+ } from "./chunk-N2IRDBZI.js";
5
5
  import {
6
6
  lazyEnvNumber,
7
7
  toPositiveFinite
8
- } from "./chunk-UK3CMEAL.js";
8
+ } from "./chunk-VSMJK3ZJ.js";
9
9
 
10
10
  // dist/clients/project-scale.js
11
11
  var DEFAULT_PROJECT_SCALE_BASE = 2e3;
@@ -24,8 +24,8 @@ var PROJECT_SCALE_RATIOS = {
24
24
  projectDiagnosticsScanner: 0.25,
25
25
  /** review graph: files kept. 0.5 * 2,000 = 1,000. */
26
26
  reviewGraph: 0.5,
27
- /** startup scan: source files counted. 1 * 2,000 = 2,000. */
28
- startupScan: 1,
27
+ /** startup scan: source files counted. 1.25 * 2,000 = 2,500. */
28
+ startupScan: 1.25,
29
29
  /** jscpd: directory entries visited (its own gate, not source-filter's). 3 * 2,000 = 6,000. */
30
30
  jscpd: 3,
31
31
  /** word index: files indexed. 3 * 2,000 = 6,000. */