@herbertgao/pi-extensions 2026.9.0 → 2026.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/node_modules/@czottmann/pi-automode/CHANGELOG.md +13 -1
  2. package/node_modules/@czottmann/pi-automode/README.md +20 -0
  3. package/node_modules/@czottmann/pi-automode/docs/GLOSSARY.md +1 -1
  4. package/node_modules/@czottmann/pi-automode/docs/automode-classifier-flow.md +2 -1
  5. package/node_modules/@czottmann/pi-automode/docs/defaults.md +3 -2
  6. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/classifier.ts +38 -2
  7. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/constants.ts +5 -3
  8. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/extension.ts +11 -3
  9. package/node_modules/@czottmann/pi-automode/package.json +1 -1
  10. package/node_modules/@pi-plugins/fast-mode/README.md +5 -3
  11. package/node_modules/@pi-plugins/fast-mode/dist/index.d.mts.map +1 -1
  12. package/node_modules/@pi-plugins/fast-mode/dist/index.mjs +20 -55
  13. package/node_modules/@pi-plugins/fast-mode/dist/index.mjs.map +1 -1
  14. package/node_modules/@pi-plugins/fast-mode/package.json +1 -1
  15. package/node_modules/pi-lens/CHANGELOG.md +988 -0
  16. package/node_modules/pi-lens/README.md +3 -0
  17. package/node_modules/pi-lens/config/biome/core.jsonc +11 -2
  18. package/node_modules/pi-lens/config/dependency-cruiser-eager-allowlist.json +13 -1
  19. package/node_modules/pi-lens/dist/clients/actionable-warnings-logger.js +2 -2
  20. package/node_modules/pi-lens/dist/clients/actionable-warnings.js +927 -80
  21. package/node_modules/pi-lens/dist/clients/agent-behavior-client.js +13 -4
  22. package/node_modules/pi-lens/dist/clients/ast-grep-client.js +123 -3
  23. package/node_modules/pi-lens/dist/clients/ast-grep-rule-manager.js +60 -5
  24. package/node_modules/pi-lens/dist/clients/ast-grep-tool-logger.js +2 -2
  25. package/node_modules/pi-lens/dist/clients/bash-file-access.js +1 -3
  26. package/node_modules/pi-lens/dist/clients/biome-client.js +9 -2
  27. package/node_modules/pi-lens/dist/clients/blocker-freshness.js +14 -0
  28. package/node_modules/pi-lens/dist/clients/bootstrap.js +509 -73
  29. package/node_modules/pi-lens/dist/clients/bounded-cache.js +152 -12
  30. package/node_modules/pi-lens/dist/clients/bounded-telemetry.js +59 -4
  31. package/node_modules/pi-lens/dist/clients/bundled-resource-health.js +113 -0
  32. package/node_modules/pi-lens/dist/clients/bus-events-logger.js +2 -2
  33. package/node_modules/pi-lens/dist/clients/cache/rule-cache.js +31 -4
  34. package/node_modules/pi-lens/dist/clients/cache-manager.js +105 -6
  35. package/node_modules/pi-lens/dist/clients/cache-observability.js +44 -18
  36. package/node_modules/pi-lens/dist/clients/cargo-manifest.js +422 -0
  37. package/node_modules/pi-lens/dist/clients/cascade-logger.js +2 -2
  38. package/node_modules/pi-lens/dist/clients/code-quality-warnings.js +13 -3
  39. package/node_modules/pi-lens/dist/clients/complexity-client.js +16 -5
  40. package/node_modules/pi-lens/dist/clients/config-core/deny.js +221 -0
  41. package/node_modules/pi-lens/dist/clients/config-core/index.js +47 -0
  42. package/node_modules/pi-lens/dist/clients/config-core/merge.js +357 -0
  43. package/node_modules/pi-lens/dist/clients/config-core/normalize.js +340 -0
  44. package/node_modules/pi-lens/dist/clients/config-core/process-spec.js +248 -0
  45. package/node_modules/pi-lens/dist/clients/config-core/provenance.js +171 -0
  46. package/node_modules/pi-lens/dist/clients/config-core/records.js +218 -0
  47. package/node_modules/pi-lens/dist/clients/config-core/resolve.js +125 -0
  48. package/node_modules/pi-lens/dist/clients/config-core/safe-object.js +78 -0
  49. package/node_modules/pi-lens/dist/clients/config-core/schema.js +167 -0
  50. package/node_modules/pi-lens/dist/clients/config-diagnostic-codes.js +281 -0
  51. package/node_modules/pi-lens/dist/clients/config-locations.js +160 -0
  52. package/node_modules/pi-lens/dist/clients/config-resolve.js +789 -0
  53. package/node_modules/pi-lens/dist/clients/config-schema.js +197 -0
  54. package/node_modules/pi-lens/dist/clients/config-warn.js +407 -0
  55. package/node_modules/pi-lens/dist/clients/dead-code-client.js +19 -14
  56. package/node_modules/pi-lens/dist/clients/dead-code-logger.js +2 -2
  57. package/node_modules/pi-lens/dist/clients/deadline-utils.js +178 -0
  58. package/node_modules/pi-lens/dist/clients/debug-handles.js +2 -2
  59. package/node_modules/pi-lens/dist/clients/debug-heap.js +3 -3
  60. package/node_modules/pi-lens/dist/clients/deferred-lsp-work.js +106 -0
  61. package/node_modules/pi-lens/dist/clients/degradation-ledger.js +113 -7
  62. package/node_modules/pi-lens/dist/clients/dependency-checker.js +8 -19
  63. package/node_modules/pi-lens/dist/clients/diagnostic-line-freshness.js +12 -9
  64. package/node_modules/pi-lens/dist/clients/diagnostic-logger.js +14 -4
  65. package/node_modules/pi-lens/dist/clients/dispatch/dispatcher.js +162 -18
  66. package/node_modules/pi-lens/dist/clients/dispatch/fact-store.js +97 -0
  67. package/node_modules/pi-lens/dist/clients/dispatch/integration.js +9 -7
  68. package/node_modules/pi-lens/dist/clients/dispatch/runners/actionlint.js +0 -1
  69. package/node_modules/pi-lens/dist/clients/dispatch/runners/ast-grep-napi.js +380 -26
  70. package/node_modules/pi-lens/dist/clients/dispatch/runners/biome-check.js +0 -1
  71. package/node_modules/pi-lens/dist/clients/dispatch/runners/cpp-check.js +0 -1
  72. package/node_modules/pi-lens/dist/clients/dispatch/runners/credo.js +0 -1
  73. package/node_modules/pi-lens/dist/clients/dispatch/runners/cue-vet.js +0 -1
  74. package/node_modules/pi-lens/dist/clients/dispatch/runners/dart-analyze.js +0 -1
  75. package/node_modules/pi-lens/dist/clients/dispatch/runners/detekt.js +0 -1
  76. package/node_modules/pi-lens/dist/clients/dispatch/runners/dotnet-build.js +0 -1
  77. package/node_modules/pi-lens/dist/clients/dispatch/runners/elixir-check.js +0 -1
  78. package/node_modules/pi-lens/dist/clients/dispatch/runners/eslint.js +0 -1
  79. package/node_modules/pi-lens/dist/clients/dispatch/runners/fact-rules.js +0 -1
  80. package/node_modules/pi-lens/dist/clients/dispatch/runners/fish-indent.js +0 -1
  81. package/node_modules/pi-lens/dist/clients/dispatch/runners/gleam-check.js +0 -1
  82. package/node_modules/pi-lens/dist/clients/dispatch/runners/go-vet.js +1 -3
  83. package/node_modules/pi-lens/dist/clients/dispatch/runners/golangci-lint.js +0 -1
  84. package/node_modules/pi-lens/dist/clients/dispatch/runners/hadolint.js +0 -1
  85. package/node_modules/pi-lens/dist/clients/dispatch/runners/helm-lint.js +0 -1
  86. package/node_modules/pi-lens/dist/clients/dispatch/runners/helm-render.js +0 -1
  87. package/node_modules/pi-lens/dist/clients/dispatch/runners/htmlhint.js +0 -1
  88. package/node_modules/pi-lens/dist/clients/dispatch/runners/javac.js +0 -1
  89. package/node_modules/pi-lens/dist/clients/dispatch/runners/ktlint.js +0 -1
  90. package/node_modules/pi-lens/dist/clients/dispatch/runners/lsp.js +0 -1
  91. package/node_modules/pi-lens/dist/clients/dispatch/runners/markdownlint.js +0 -1
  92. package/node_modules/pi-lens/dist/clients/dispatch/runners/mypy.js +0 -1
  93. package/node_modules/pi-lens/dist/clients/dispatch/runners/oxlint.js +13 -18
  94. package/node_modules/pi-lens/dist/clients/dispatch/runners/php-lint.js +0 -1
  95. package/node_modules/pi-lens/dist/clients/dispatch/runners/phpstan.js +0 -1
  96. package/node_modules/pi-lens/dist/clients/dispatch/runners/prisma-validate.js +0 -1
  97. package/node_modules/pi-lens/dist/clients/dispatch/runners/psscriptanalyzer.js +0 -1
  98. package/node_modules/pi-lens/dist/clients/dispatch/runners/pyright.js +7 -4
  99. package/node_modules/pi-lens/dist/clients/dispatch/runners/rubocop.js +0 -1
  100. package/node_modules/pi-lens/dist/clients/dispatch/runners/ruff.js +0 -1
  101. package/node_modules/pi-lens/dist/clients/dispatch/runners/rust-clippy.js +1 -3
  102. package/node_modules/pi-lens/dist/clients/dispatch/runners/shellcheck.js +0 -1
  103. package/node_modules/pi-lens/dist/clients/dispatch/runners/shfmt.js +0 -1
  104. package/node_modules/pi-lens/dist/clients/dispatch/runners/spellcheck.js +0 -1
  105. package/node_modules/pi-lens/dist/clients/dispatch/runners/spotbugs.js +0 -1
  106. package/node_modules/pi-lens/dist/clients/dispatch/runners/sqlfluff.js +0 -1
  107. package/node_modules/pi-lens/dist/clients/dispatch/runners/stylelint.js +0 -1
  108. package/node_modules/pi-lens/dist/clients/dispatch/runners/swiftlint.js +0 -1
  109. package/node_modules/pi-lens/dist/clients/dispatch/runners/taplo.js +0 -1
  110. package/node_modules/pi-lens/dist/clients/dispatch/runners/terragrunt.js +0 -1
  111. package/node_modules/pi-lens/dist/clients/dispatch/runners/tflint.js +0 -1
  112. package/node_modules/pi-lens/dist/clients/dispatch/runners/tree-sitter.js +0 -1
  113. package/node_modules/pi-lens/dist/clients/dispatch/runners/trivy-config.js +0 -1
  114. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/availability-policy.js +3 -0
  115. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/diagnostic-parsers.js +3 -4
  116. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/runner-helpers.js +194 -80
  117. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/toolchain-availability.js +84 -15
  118. package/node_modules/pi-lens/dist/clients/dispatch/runners/vale.js +0 -1
  119. package/node_modules/pi-lens/dist/clients/dispatch/runners/yamllint.js +0 -1
  120. package/node_modules/pi-lens/dist/clients/dispatch/runners/zig-check.js +0 -1
  121. package/node_modules/pi-lens/dist/clients/disposition-logger.js +3 -3
  122. package/node_modules/pi-lens/dist/clients/effective-config.js +403 -0
  123. package/node_modules/pi-lens/dist/clients/error-class.js +23 -0
  124. package/node_modules/pi-lens/dist/clients/event-loop-hold.js +274 -0
  125. package/node_modules/pi-lens/dist/clients/extension-log.js +2 -2
  126. package/node_modules/pi-lens/dist/clients/feature-hints.js +2 -1
  127. package/node_modules/pi-lens/dist/clients/file-time.js +6 -1
  128. package/node_modules/pi-lens/dist/clients/file-utils.js +112 -9
  129. package/node_modules/pi-lens/dist/clients/finding-delivery-gate.js +50 -13
  130. package/node_modules/pi-lens/dist/clients/format-service.js +6 -1
  131. package/node_modules/pi-lens/dist/clients/formatters.js +276 -102
  132. package/node_modules/pi-lens/dist/clients/freshness-cadence.js +17 -0
  133. package/node_modules/pi-lens/dist/clients/generated-artifacts.js +114 -19
  134. package/node_modules/pi-lens/dist/clients/generation-guard.js +4 -9
  135. package/node_modules/pi-lens/dist/clients/git-guard.js +1 -1
  136. package/node_modules/pi-lens/dist/clients/go-client.js +39 -0
  137. package/node_modules/pi-lens/dist/clients/gradle-ktfmt-style.js +252 -0
  138. package/node_modules/pi-lens/dist/clients/hashline-anchor.js +424 -0
  139. package/node_modules/pi-lens/dist/clients/hook-budgets.js +76 -0
  140. package/node_modules/pi-lens/dist/clients/host-edit-normalize.js +5 -2
  141. package/node_modules/pi-lens/dist/clients/host-ports.js +1 -1
  142. package/node_modules/pi-lens/dist/clients/installer/index.js +71 -52
  143. package/node_modules/pi-lens/dist/clients/instance-reaper.js +104 -230
  144. package/node_modules/pi-lens/dist/clients/instance-registry.js +6 -3
  145. package/node_modules/pi-lens/dist/clients/language-registry.js +595 -0
  146. package/node_modules/pi-lens/dist/clients/latency-logger.js +160 -2
  147. package/node_modules/pi-lens/dist/clients/ledger-bounds.js +13 -0
  148. package/node_modules/pi-lens/dist/clients/lens-config.js +141 -30
  149. package/node_modules/pi-lens/dist/clients/lens-engine.js +30 -37
  150. package/node_modules/pi-lens/dist/clients/lens-flag-registry.js +59 -6
  151. package/node_modules/pi-lens/dist/clients/log-cleanup.js +2 -2
  152. package/node_modules/pi-lens/dist/clients/lsp/aggregation.js +3 -1
  153. package/node_modules/pi-lens/dist/clients/lsp/client.js +168 -30
  154. package/node_modules/pi-lens/dist/clients/lsp/config.js +483 -158
  155. package/node_modules/pi-lens/dist/clients/lsp/diagnostic-binding.js +1 -1
  156. package/node_modules/pi-lens/dist/clients/lsp/edits.js +15 -2
  157. package/node_modules/pi-lens/dist/clients/lsp/index.js +676 -71
  158. package/node_modules/pi-lens/dist/clients/lsp/language.js +18 -169
  159. package/node_modules/pi-lens/dist/clients/lsp/launch.js +2 -1
  160. package/node_modules/pi-lens/dist/clients/lsp/pending-aux-coverage.js +5 -16
  161. package/node_modules/pi-lens/dist/clients/lsp/server.js +284 -147
  162. package/node_modules/pi-lens/dist/clients/lsp/session-roots.js +116 -23
  163. package/node_modules/pi-lens/dist/clients/lsp/spawn-history.js +2 -7
  164. package/node_modules/pi-lens/dist/clients/lsp/tsserver-sync.js +9 -2
  165. package/node_modules/pi-lens/dist/clients/lsp/workspace-diagnostics-cache.js +1 -1
  166. package/node_modules/pi-lens/dist/clients/lsp-mutation.js +163 -21
  167. package/node_modules/pi-lens/dist/clients/map-with-concurrency.js +36 -0
  168. package/node_modules/pi-lens/dist/clients/mcp/analyze.js +33 -4
  169. package/node_modules/pi-lens/dist/clients/mcp/session.js +5 -16
  170. package/node_modules/pi-lens/dist/clients/memory-sampler.js +8 -3
  171. package/node_modules/pi-lens/dist/clients/middle-man-analysis.js +2 -4
  172. package/node_modules/pi-lens/dist/clients/module-report.js +20 -45
  173. package/node_modules/pi-lens/dist/clients/mutating-tool.js +651 -0
  174. package/node_modules/pi-lens/dist/clients/mutation-attribution.js +368 -0
  175. package/node_modules/pi-lens/dist/clients/mutation-bridge.js +240 -0
  176. package/node_modules/pi-lens/dist/clients/ndjson-logger.js +247 -20
  177. package/node_modules/pi-lens/dist/clients/observed-mutation-sources.js +101 -0
  178. package/node_modules/pi-lens/dist/clients/observed-mutation.js +1215 -0
  179. package/node_modules/pi-lens/dist/clients/opaque-mutation-scan.js +68 -22
  180. package/node_modules/pi-lens/dist/clients/opengrep-config.js +4 -0
  181. package/node_modules/pi-lens/dist/clients/package-manager.js +195 -26
  182. package/node_modules/pi-lens/dist/clients/partial-edit-apply.js +359 -80
  183. package/node_modules/pi-lens/dist/clients/path-attribution-telemetry.js +23 -7
  184. package/node_modules/pi-lens/dist/clients/path-keyed-map.js +21 -2
  185. package/node_modules/pi-lens/dist/clients/path-utils.js +428 -13
  186. package/node_modules/pi-lens/dist/clients/persist-debounce.js +8 -1
  187. package/node_modules/pi-lens/dist/clients/php-cs-fixer-config.js +114 -0
  188. package/node_modules/pi-lens/dist/clients/pipeline.js +77 -16
  189. package/node_modules/pi-lens/dist/clients/probe-home-state.js +228 -0
  190. package/node_modules/pi-lens/dist/clients/process-bridge.js +66 -0
  191. package/node_modules/pi-lens/dist/clients/process-snapshot.js +68 -0
  192. package/node_modules/pi-lens/dist/clients/project-diagnostics/fresh-fetch.js +4 -3
  193. package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/runner-findings.js +27 -3
  194. package/node_modules/pi-lens/dist/clients/project-diagnostics/scanner.js +51 -20
  195. package/node_modules/pi-lens/dist/clients/project-lens-config.js +393 -122
  196. package/node_modules/pi-lens/dist/clients/project-snapshot.js +52 -24
  197. package/node_modules/pi-lens/dist/clients/python-environment.js +217 -0
  198. package/node_modules/pi-lens/dist/clients/python-provenance.js +639 -0
  199. package/node_modules/pi-lens/dist/clients/quiet-window.js +6 -1
  200. package/node_modules/pi-lens/dist/clients/read-bridge.js +13 -21
  201. package/node_modules/pi-lens/dist/clients/read-expansion.js +9 -46
  202. package/node_modules/pi-lens/dist/clients/read-guard-logger.js +15 -4
  203. package/node_modules/pi-lens/dist/clients/read-guard-tool-lines.js +364 -212
  204. package/node_modules/pi-lens/dist/clients/read-guard.js +21 -0
  205. package/node_modules/pi-lens/dist/clients/resource-sampler.js +195 -96
  206. package/node_modules/pi-lens/dist/clients/review-graph/builder.js +152 -109
  207. package/node_modules/pi-lens/dist/clients/review-graph/service.js +55 -3
  208. package/node_modules/pi-lens/dist/clients/review-graph/shared-extraction-ir.js +7 -15
  209. package/node_modules/pi-lens/dist/clients/review-graph/workspace-modules.js +10 -74
  210. package/node_modules/pi-lens/dist/clients/review-graph-logger.js +9 -3
  211. package/node_modules/pi-lens/dist/clients/runtime-agent-end.js +18 -2
  212. package/node_modules/pi-lens/dist/clients/runtime-context.js +49 -16
  213. package/node_modules/pi-lens/dist/clients/runtime-coordinator.js +25 -6
  214. package/node_modules/pi-lens/dist/clients/runtime-session.js +139 -22
  215. package/node_modules/pi-lens/dist/clients/runtime-tool-call.js +168 -35
  216. package/node_modules/pi-lens/dist/clients/runtime-tool-result.js +797 -243
  217. package/node_modules/pi-lens/dist/clients/runtime-turn.js +1028 -53
  218. package/node_modules/pi-lens/dist/clients/rust-client.js +31 -0
  219. package/node_modules/pi-lens/dist/clients/safe-spawn.js +33 -10
  220. package/node_modules/pi-lens/dist/clients/sanitize.js +7 -1
  221. package/node_modules/pi-lens/dist/clients/scratch-tree-policy.js +1 -3
  222. package/node_modules/pi-lens/dist/clients/security-scan-client.js +3 -0
  223. package/node_modules/pi-lens/dist/clients/session-lifecycle.js +1 -1
  224. package/node_modules/pi-lens/dist/clients/session-start-observability.js +79 -0
  225. package/node_modules/pi-lens/dist/clients/sessionstart-logger.js +12 -3
  226. package/node_modules/pi-lens/dist/clients/sgconfig.js +6 -1
  227. package/node_modules/pi-lens/dist/clients/skills-resolver.js +105 -0
  228. package/node_modules/pi-lens/dist/clients/smells-rollup.js +2 -2
  229. package/node_modules/pi-lens/dist/clients/string-utils.js +13 -0
  230. package/node_modules/pi-lens/dist/clients/subagent-mode.js +17 -4
  231. package/node_modules/pi-lens/dist/clients/test-runner-client.js +176 -39
  232. package/node_modules/pi-lens/dist/clients/test-runner-delivery.js +239 -0
  233. package/node_modules/pi-lens/dist/clients/tool-definition.js +41 -1
  234. package/node_modules/pi-lens/dist/clients/tool-policy.js +91 -21
  235. package/node_modules/pi-lens/dist/clients/tree-sitter-cache.js +40 -40
  236. package/node_modules/pi-lens/dist/clients/tree-sitter-client.js +86 -48
  237. package/node_modules/pi-lens/dist/clients/tree-sitter-logger.js +2 -2
  238. package/node_modules/pi-lens/dist/clients/tree-sitter-query-loader.js +81 -1
  239. package/node_modules/pi-lens/dist/clients/tree-sitter-shared.js +51 -46
  240. package/node_modules/pi-lens/dist/clients/tree-sitter-symbol-extractor.js +28 -0
  241. package/node_modules/pi-lens/dist/clients/typos-config.js +5 -0
  242. package/node_modules/pi-lens/dist/clients/user-notify.js +6 -2
  243. package/node_modules/pi-lens/dist/clients/widget-state.js +191 -26
  244. package/node_modules/pi-lens/dist/clients/word-index-logger.js +2 -2
  245. package/node_modules/pi-lens/dist/clients/word-index-store.js +20 -5
  246. package/node_modules/pi-lens/dist/clients/word-index.js +243 -31
  247. package/node_modules/pi-lens/dist/clients/workspace-topology.js +8 -1
  248. package/node_modules/pi-lens/dist/clients/zizmor-config.js +3 -0
  249. package/node_modules/pi-lens/dist/index.js +64335 -54300
  250. package/node_modules/pi-lens/dist/mcp/analyze-cli.js +3 -1
  251. package/node_modules/pi-lens/dist/mcp/server.js +127 -5
  252. package/node_modules/pi-lens/dist/scripts/lib/process-scan.mjs +583 -0
  253. package/node_modules/pi-lens/dist/scripts/lib/skills-predicate.mjs +129 -0
  254. package/node_modules/pi-lens/dist/tools/effective-config.js +89 -0
  255. package/node_modules/pi-lens/dist/tools/lens-diagnostics.js +95 -24
  256. package/node_modules/pi-lens/dist/tools/lsp-diagnostics.js +67 -80
  257. package/node_modules/pi-lens/dist/tools/lsp-navigation.js +37 -16
  258. package/node_modules/pi-lens/dist/tools/shared.js +0 -1
  259. package/node_modules/pi-lens/docs/agent-guide.md +64 -1
  260. package/node_modules/pi-lens/docs/configuration.md +222 -0
  261. package/node_modules/pi-lens/docs/dependencies.md +3 -3
  262. package/node_modules/pi-lens/docs/features.md +44 -5
  263. package/node_modules/pi-lens/docs/language-coverage.md +2 -2
  264. package/node_modules/pi-lens/docs/pi-lens-fixer.md +25 -0
  265. package/node_modules/pi-lens/docs/pi-lens-investigator.md +25 -0
  266. package/node_modules/pi-lens/docs/pi-lens-reviewer.md +27 -0
  267. package/node_modules/pi-lens/docs/pi-lens-subagent.md +38 -0
  268. package/node_modules/pi-lens/docs/pi-lens-warden.md +55 -0
  269. package/node_modules/pi-lens/docs/public-api-stability.md +359 -0
  270. package/node_modules/pi-lens/docs/release-qa-baseline.md +182 -0
  271. package/node_modules/pi-lens/docs/subagent-compat.md +110 -30
  272. package/node_modules/pi-lens/docs/tree-sitter_rules_catalog.md +2 -2
  273. package/node_modules/pi-lens/package.json +15 -23
  274. package/node_modules/pi-lens/rules/tree-sitter-queries/python/python-cross-language-method.yml +3 -3
  275. package/node_modules/pi-lens/rules/tree-sitter-queries/python/python-hallucinated-import.yml +2 -2
  276. package/node_modules/pi-lens/rules/tree-sitter-queries/python/python-sql-injection.yml +12 -2
  277. package/node_modules/pi-lens/scripts/analyze-pi-lens-logs.mjs +192 -1
  278. package/node_modules/pi-lens/scripts/install-selftest.mjs +58 -2
  279. package/node_modules/pi-lens/scripts/lib/skills-predicate.mjs +129 -0
  280. package/node_modules/pi-lens/scripts/rpc-load-check.mjs +3 -1
  281. package/node_modules/pi-web-access/CHANGELOG.md +28 -0
  282. package/node_modules/pi-web-access/README.md +62 -15
  283. package/node_modules/pi-web-access/curator-page.ts +3 -1
  284. package/node_modules/pi-web-access/curator-server.ts +5 -1
  285. package/node_modules/pi-web-access/gemini-search.ts +8 -4
  286. package/node_modules/pi-web-access/github-extract.ts +242 -1
  287. package/node_modules/pi-web-access/index.ts +118 -64
  288. package/node_modules/pi-web-access/mistral-search.ts +281 -0
  289. package/node_modules/pi-web-access/package.json +2 -2
  290. package/node_modules/pi-web-access/perplexity.ts +14 -1
  291. package/node_modules/pi-web-access/utils.ts +23 -6
  292. package/node_modules/pi-web-access/xai-search.ts +96 -33
  293. package/package.json +5 -5
@@ -1,185 +1,34 @@
1
1
  import path from "node:path";
2
- import { getLanguageId as getKindLanguageId, KIND_EXTENSIONS, SPECIAL_FILENAMES, } from "../file-kinds.js";
2
+ import { getLanguageId as getKindLanguageId, SPECIAL_FILENAMES, } from "../file-kinds.js";
3
3
  import { getLspCapableKinds } from "../language-policy.js";
4
+ import { EXTENSION_TO_LSP_ID } from "../language-registry.js";
4
5
  /**
5
6
  * Language ID Mappings for LSP
6
7
  *
7
8
  * Maps file extensions to LSP language identifiers.
8
9
  */
9
- // Hand-curated ids, finer-grained than the per-kind registry id: one FileKind
10
- // can span several language ids (jsts covers typescript/typescriptreact/vue,
11
- // cxx covers c and cpp), and some servers want a spelling the registry doesn't
12
- // use ("shellscript", not "shell"). These win over the derived fill-in below.
13
- const CURATED_LANGUAGE_EXTENSIONS = {
14
- // JavaScript/TypeScript
15
- ".ts": "typescript",
16
- ".tsx": "typescriptreact",
17
- ".mts": "typescript",
18
- ".cts": "typescript",
19
- ".js": "javascript",
20
- ".jsx": "javascriptreact",
21
- ".mjs": "javascript",
22
- ".cjs": "javascript",
23
- ".svelte": "svelte",
24
- ".vue": "vue",
25
- ".astro": "astro",
26
- // Python
27
- ".py": "python",
28
- ".pyi": "python",
29
- // Go
30
- ".go": "go",
31
- ".mod": "go",
32
- ".sum": "go",
33
- // Rust
34
- ".rs": "rust",
35
- ".ron": "rust",
36
- // C/C++
37
- ".c": "c",
38
- ".cpp": "cpp",
39
- ".cc": "cpp",
40
- ".cxx": "cpp",
41
- ".h": "c",
42
- ".hpp": "cpp",
43
- ".hh": "cpp",
44
- // Java
45
- ".java": "java",
46
- // Kotlin
47
- ".kt": "kotlin",
48
- ".kts": "kotlin",
49
- // Ruby
50
- ".rb": "ruby",
51
- ".rake": "ruby",
52
- ".gemspec": "ruby",
53
- ".ru": "ruby",
54
- // PHP
55
- ".php": "php",
56
- // C#
57
- ".cs": "csharp",
58
- // F#
59
- ".fs": "fsharp",
60
- ".fsi": "fsharp",
61
- ".fsx": "fsharp",
62
- // Swift
63
- ".swift": "swift",
64
- // Dart
65
- ".dart": "dart",
66
- // Lua
67
- ".lua": "lua",
68
- // Shell
69
- ".sh": "shellscript",
70
- ".bash": "shellscript",
71
- ".zsh": "shellscript",
72
- ".fish": "fish",
73
- // CMake
74
- ".cmake": "cmake",
75
- // JSON/YAML
76
- ".json": "json",
77
- ".jsonc": "jsonc",
78
- ".yaml": "yaml",
79
- ".yml": "yaml",
80
- // Markdown
81
- ".md": "markdown",
82
- ".mdx": "markdown",
83
- // CSS
84
- ".css": "css",
85
- ".scss": "scss",
86
- ".sass": "sass",
87
- ".less": "less",
88
- // HTML
89
- ".html": "html",
90
- ".htm": "html",
91
- // SQL
92
- ".sql": "sql",
93
- // Docker
94
- ".dockerfile": "dockerfile",
95
- // Terraform
96
- ".tf": "terraform",
97
- ".tfvars": "terraform",
98
- // Nix
99
- ".nix": "nix",
100
- // Elixir
101
- ".ex": "elixir",
102
- ".exs": "elixir",
103
- // Haskell
104
- ".hs": "haskell",
105
- ".lhs": "haskell",
106
- // OCaml
107
- ".ml": "ocaml",
108
- ".mli": "ocaml",
109
- // Zig
110
- ".zig": "zig",
111
- ".zon": "zig",
112
- // Gleam
113
- ".gleam": "gleam",
114
- // Clojure
115
- ".clj": "clojure",
116
- ".cljs": "clojure",
117
- ".cljc": "clojure",
118
- ".edn": "clojure",
119
- // Scala
120
- ".scala": "scala",
121
- ".sc": "scala",
122
- // R
123
- ".r": "r",
124
- ".R": "r",
125
- // Julia
126
- ".jl": "julia",
127
- // Perl
128
- ".pl": "perl",
129
- ".pm": "perl",
130
- // Erlang
131
- ".erl": "erlang",
132
- ".hrl": "erlang",
133
- // Fortran
134
- ".f": "fortran",
135
- ".f90": "fortran",
136
- ".f95": "fortran",
137
- // COBOL
138
- ".cob": "cobol",
139
- ".cbl": "cobol",
140
- // Pascal
141
- ".pas": "pascal",
142
- ".pp": "pascal",
143
- // Ada
144
- ".adb": "ada",
145
- ".ads": "ada",
146
- // VHDL/Verilog
147
- ".vhd": "vhdl",
148
- ".vhdl": "vhdl",
149
- ".v": "verilog",
150
- ".sv": "systemverilog",
151
- // GraphQL
152
- ".graphql": "graphql",
153
- ".gql": "graphql",
154
- // Protocol Buffers
155
- ".proto": "proto",
156
- // TOML
157
- ".toml": "toml",
158
- // Prisma
159
- ".prisma": "prisma",
160
- // Typst
161
- ".typ": "typst",
162
- ".typc": "typst",
163
- };
164
10
  /**
165
- * Curated ids plus a derived fill-in for every extension an lspCapable kind
166
- * registers. Before #1545 this table was hand-maintained alone and had drifted:
11
+ * Extension -> LSP `languageId`, projected from the canonical language registry
12
+ * (clients/language-registry.ts, #2424). One FileKind can span several LSP ids
13
+ * (jsts covers typescript/typescriptreact/vue, cxx covers c and cpp) and the
14
+ * protocol spells some of them differently from the canonical id
15
+ * ("shellscript", not "shell"), so the registry carries an `lspId` column and
16
+ * this map is a pure projection of it — `Readonly` because the projection is
17
+ * `Object.freeze`d at the source (#2424 review, S4).
18
+ *
19
+ * #1545 added a derived per-kind fill-in on top of the then-hand-curated table:
167
20
  * powershell had no entry at all and cxx covered a third of its extensions, so
168
21
  * `didOpen` announced those files as "plaintext". Tolerance for that varies by
169
22
  * server — json/yaml/clangd answer the same either way, a DocumentSelector
170
23
  * server may not handle the document at all — so the id is sent correctly
171
- * rather than relied on being ignored. A newly registered language now reaches
172
- * this seam by being lspCapable.
24
+ * rather than relied on being ignored. The registry now owns every extension of
25
+ * every lspCapable kind, so that fill-in contributed ZERO entries and is gone
26
+ * (#2424 review, named output a). The net it provided is now a test, not a
27
+ * runtime `??=`: lsp-capable-seam-coverage's "maps every lspCapable kind's
28
+ * extensions to an LSP language id" fails the moment the registry misses one,
29
+ * which is the fix a silent per-kind fallback would have hidden.
173
30
  */
174
- export const LANGUAGE_EXTENSIONS = (() => {
175
- const map = { ...CURATED_LANGUAGE_EXTENSIONS };
176
- for (const kind of getLspCapableKinds()) {
177
- for (const extension of KIND_EXTENSIONS[kind]) {
178
- map[extension] ??= getKindLanguageId(kind);
179
- }
180
- }
181
- return map;
182
- })();
31
+ export const LANGUAGE_EXTENSIONS = EXTENSION_TO_LSP_ID;
183
32
  /**
184
33
  * file-kinds.ts's basename classifier (Makefile, Dockerfile.<suffix>,
185
34
  * CMakeLists.txt, …) matches by regex, not literal filename, so it can't be
@@ -12,6 +12,7 @@ import os from "node:os";
12
12
  import path from "node:path";
13
13
  import { isTestMode } from "../env-utils.js";
14
14
  import { getGlobalPiLensDir } from "../file-utils.js";
15
+ import { getGlobalPiLensLogDir } from "../probe-home-state.js";
15
16
  import { isFullyQualified } from "../path-utils.js";
16
17
  import { findGlobalBinary } from "../package-manager.js";
17
18
  import { redactSecrets } from "../redact/secrets.js";
@@ -31,7 +32,7 @@ function computeNeedsShell(resolvedCommand) {
31
32
  }
32
33
  const DEFAULT_STARTUP_FAILURE_WINDOW_MS = 50;
33
34
  const WINDOWS_NAV_STARTUP_FAILURE_WINDOW_MS = 500;
34
- const SESSIONSTART_LOG_DIR = getGlobalPiLensDir();
35
+ const SESSIONSTART_LOG_DIR = getGlobalPiLensLogDir();
35
36
  const SESSIONSTART_LOG = path.join(SESSIONSTART_LOG_DIR, "sessionstart.log");
36
37
  const PI_LENS_BIN_DIR = path.join(getGlobalPiLensDir(), "bin");
37
38
  const PI_LENS_TOOLS_BIN_DIR = path.join(getGlobalPiLensDir(), "tools", "node_modules", ".bin");
@@ -52,6 +52,7 @@
52
52
  * LEFTOVER pair from an EARLIER touch once napi has fresh evaluated findings
53
53
  * to supersede it.
54
54
  */
55
+ import { BoundedFifoMap } from "../bounded-cache.js";
55
56
  import { normalizeEphemeralMapKey } from "../path-utils.js";
56
57
  /** Maximum pending (filePath, serverId) pairs; oldest evicted beyond this. */
57
58
  export const MAX_PENDING_AUX_ENTRIES = 50;
@@ -88,7 +89,7 @@ export function isPendingAuxiliaryPastRearmTtl(pair, nowMs = Date.now()) {
88
89
  const anchor = pair.lastRearmedAtMs ?? pair.markedAtMs;
89
90
  return nowMs - anchor >= readLateAuxRearmTtlMs();
90
91
  }
91
- const pending = new Map();
92
+ const pending = new BoundedFifoMap(MAX_PENDING_AUX_ENTRIES);
92
93
  /**
93
94
  * #2168: pairs evicted at the cap have no other retirement record — the
94
95
  * drain-time reconciliation in `runtime-turn.ts` never sees them because
@@ -135,7 +136,7 @@ export function markPendingAuxiliaryCoverage(filePath, serverIds, markedAtMs = D
135
136
  });
136
137
  continue;
137
138
  }
138
- pending.set(key, rearmedAtMs === undefined
139
+ const evicted = pending.set(key, rearmedAtMs === undefined
139
140
  ? { filePath, serverId, markedAtMs }
140
141
  : {
141
142
  filePath,
@@ -144,13 +145,7 @@ export function markPendingAuxiliaryCoverage(filePath, serverIds, markedAtMs = D
144
145
  lastRearmedAtMs: rearmedAtMs,
145
146
  rearmCount: rearmCount ?? 1,
146
147
  });
147
- while (pending.size > MAX_PENDING_AUX_ENTRIES) {
148
- const oldest = pending.keys().next().value;
149
- if (oldest === undefined)
150
- break;
151
- pending.delete(oldest);
152
- capEvictedCount += 1;
153
- }
148
+ capEvictedCount += evicted.length;
154
149
  }
155
150
  }
156
151
  /** Re-arm a drained pair while carrying its ceiling count across the drain. */
@@ -225,19 +220,13 @@ export function drainPendingAuxCapEvictedCount() {
225
220
  *
226
221
  * Bounded like the pending-pair store itself; oldest evicted first.
227
222
  */
228
- const napiFallbackCoverage = new Map();
229
223
  export const MAX_NAPI_COVERAGE_ENTRIES = 50;
224
+ const napiFallbackCoverage = new BoundedFifoMap(MAX_NAPI_COVERAGE_ENTRIES);
230
225
  /** Record that napi actually evaluated rules for `filePath` at `atMs`. */
231
226
  export function recordNapiFallbackCoverage(filePath, atMs = Date.now()) {
232
227
  const key = normalizeEphemeralMapKey(filePath);
233
228
  napiFallbackCoverage.delete(key);
234
229
  napiFallbackCoverage.set(key, atMs);
235
- while (napiFallbackCoverage.size > MAX_NAPI_COVERAGE_ENTRIES) {
236
- const oldest = napiFallbackCoverage.keys().next().value;
237
- if (oldest === undefined)
238
- break;
239
- napiFallbackCoverage.delete(oldest);
240
- }
241
230
  }
242
231
  /**
243
232
  * Did napi cover `filePath` at or after `sinceMs`? The aux-grace wait passes