@herbertgao/pi-extensions 2026.9.0 → 2026.9.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.
- package/node_modules/@czottmann/pi-automode/CHANGELOG.md +13 -1
- package/node_modules/@czottmann/pi-automode/README.md +20 -0
- package/node_modules/@czottmann/pi-automode/docs/GLOSSARY.md +1 -1
- package/node_modules/@czottmann/pi-automode/docs/automode-classifier-flow.md +2 -1
- package/node_modules/@czottmann/pi-automode/docs/defaults.md +3 -2
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/classifier.ts +38 -2
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/constants.ts +5 -3
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/extension.ts +11 -3
- package/node_modules/@czottmann/pi-automode/package.json +1 -1
- package/node_modules/@narumitw/pi-btw/README.md +57 -141
- package/node_modules/@narumitw/pi-btw/dist/index.ts +466 -41
- package/node_modules/@narumitw/pi-btw/dist/index.ts.map +4 -4
- package/node_modules/@narumitw/pi-btw/docs/workflows.md +74 -0
- package/node_modules/@narumitw/pi-btw/package.json +2 -1
- package/node_modules/@narumitw/pi-btw/src/btw.ts +15 -1
- package/node_modules/@narumitw/pi-btw/src/fullscreen-ui.ts +32 -2
- package/node_modules/@narumitw/pi-btw/src/keybindings.ts +330 -0
- package/node_modules/@narumitw/pi-btw/src/menu.ts +136 -19
- package/node_modules/@narumitw/pi-btw/src/settings.ts +32 -0
- package/node_modules/@narumitw/pi-btw/src/side-thread.ts +57 -5
- package/node_modules/@narumitw/pi-btw/src/transcript-pager.ts +52 -30
- package/node_modules/@pi-plugins/fast-mode/README.md +5 -3
- package/node_modules/@pi-plugins/fast-mode/dist/index.d.mts.map +1 -1
- package/node_modules/@pi-plugins/fast-mode/dist/index.mjs +20 -55
- package/node_modules/@pi-plugins/fast-mode/dist/index.mjs.map +1 -1
- package/node_modules/@pi-plugins/fast-mode/package.json +1 -1
- package/node_modules/pi-lens/CHANGELOG.md +1072 -0
- package/node_modules/pi-lens/README.md +3 -0
- package/node_modules/pi-lens/config/biome/core.jsonc +11 -2
- package/node_modules/pi-lens/config/dependency-cruiser-eager-allowlist.json +13 -1
- package/node_modules/pi-lens/dist/clients/actionable-warnings-logger.js +2 -9
- package/node_modules/pi-lens/dist/clients/actionable-warnings.js +927 -80
- package/node_modules/pi-lens/dist/clients/advisory-provenance.js +1 -1
- package/node_modules/pi-lens/dist/clients/agent-behavior-client.js +13 -4
- package/node_modules/pi-lens/dist/clients/ast-grep-client.js +123 -3
- package/node_modules/pi-lens/dist/clients/ast-grep-rule-manager.js +60 -5
- package/node_modules/pi-lens/dist/clients/ast-grep-tool-logger.js +2 -9
- package/node_modules/pi-lens/dist/clients/ast-grep-types.js +2 -0
- package/node_modules/pi-lens/dist/clients/bash-file-access.js +133 -3
- package/node_modules/pi-lens/dist/clients/biome-client.js +9 -2
- package/node_modules/pi-lens/dist/clients/blocker-freshness.js +14 -6
- package/node_modules/pi-lens/dist/clients/bootstrap.js +509 -73
- package/node_modules/pi-lens/dist/clients/bounded-cache.js +152 -12
- package/node_modules/pi-lens/dist/clients/bounded-pid-file-lock.js +1 -1
- package/node_modules/pi-lens/dist/clients/bounded-telemetry.js +59 -9
- package/node_modules/pi-lens/dist/clients/bundled-resource-health.js +113 -0
- package/node_modules/pi-lens/dist/clients/bus-events-logger.js +3 -11
- package/node_modules/pi-lens/dist/clients/cache/rule-cache.js +31 -4
- package/node_modules/pi-lens/dist/clients/cache-manager.js +105 -6
- package/node_modules/pi-lens/dist/clients/cache-observability.js +40 -19
- package/node_modules/pi-lens/dist/clients/cargo-manifest.js +422 -0
- package/node_modules/pi-lens/dist/clients/cascade-logger.js +2 -9
- package/node_modules/pi-lens/dist/clients/child-unref.js +1 -19
- package/node_modules/pi-lens/dist/clients/code-quality-warnings.js +13 -3
- package/node_modules/pi-lens/dist/clients/complexity-client.js +16 -5
- package/node_modules/pi-lens/dist/clients/config-core/deny.js +221 -0
- package/node_modules/pi-lens/dist/clients/config-core/index.js +50 -0
- package/node_modules/pi-lens/dist/clients/config-core/merge.js +357 -0
- package/node_modules/pi-lens/dist/clients/config-core/normalize.js +340 -0
- package/node_modules/pi-lens/dist/clients/config-core/process-spec.js +248 -0
- package/node_modules/pi-lens/dist/clients/config-core/provenance.js +164 -0
- package/node_modules/pi-lens/dist/clients/config-core/records.js +218 -0
- package/node_modules/pi-lens/dist/clients/config-core/resolve.js +125 -0
- package/node_modules/pi-lens/dist/clients/config-core/safe-object.js +78 -0
- package/node_modules/pi-lens/dist/clients/config-core/schema.js +165 -0
- package/node_modules/pi-lens/dist/clients/config-diagnostic-codes.js +281 -0
- package/node_modules/pi-lens/dist/clients/config-locations.js +160 -0
- package/node_modules/pi-lens/dist/clients/config-resolve.js +789 -0
- package/node_modules/pi-lens/dist/clients/config-schema.js +234 -0
- package/node_modules/pi-lens/dist/clients/config-warn.js +407 -0
- package/node_modules/pi-lens/dist/clients/dead-code-client.js +19 -14
- package/node_modules/pi-lens/dist/clients/dead-code-logger.js +2 -6
- package/node_modules/pi-lens/dist/clients/deadline-utils.js +178 -0
- package/node_modules/pi-lens/dist/clients/debug-handles.js +2 -2
- package/node_modules/pi-lens/dist/clients/debug-heap.js +3 -3
- package/node_modules/pi-lens/dist/clients/deferred-lsp-work.js +106 -0
- package/node_modules/pi-lens/dist/clients/degradation-ledger.js +113 -7
- package/node_modules/pi-lens/dist/clients/dependency-checker.js +8 -19
- package/node_modules/pi-lens/dist/clients/diagnostic-dispositions.js +1 -1
- package/node_modules/pi-lens/dist/clients/diagnostic-line-freshness.js +12 -9
- package/node_modules/pi-lens/dist/clients/diagnostic-logger.js +15 -5
- package/node_modules/pi-lens/dist/clients/dispatch/collect-later-tier.js +0 -4
- package/node_modules/pi-lens/dist/clients/dispatch/dispatcher.js +162 -44
- package/node_modules/pi-lens/dist/clients/dispatch/fact-store.js +97 -0
- package/node_modules/pi-lens/dist/clients/dispatch/integration.js +27 -8
- package/node_modules/pi-lens/dist/clients/dispatch/lazy.js +0 -6
- package/node_modules/pi-lens/dist/clients/dispatch/pending-runner-findings.js +1 -1
- package/node_modules/pi-lens/dist/clients/dispatch/plan.js +0 -3
- package/node_modules/pi-lens/dist/clients/dispatch/rules/high-complexity.js +2 -2
- package/node_modules/pi-lens/dist/clients/dispatch/rules/high-fan-out.js +1 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/actionlint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/ast-grep-napi.js +383 -27
- package/node_modules/pi-lens/dist/clients/dispatch/runners/biome-check.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/cpp-check.js +4 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/credo.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/cue-vet.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/dart-analyze.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/detekt.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/dotnet-build.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/elixir-check.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/eslint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/fact-rules.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/fish-indent.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/gleam-check.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/go-vet.js +1 -3
- package/node_modules/pi-lens/dist/clients/dispatch/runners/golangci-lint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/hadolint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/helm-lint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/helm-render.js +1 -2
- package/node_modules/pi-lens/dist/clients/dispatch/runners/htmlhint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/javac.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/ktlint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/lsp.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/markdownlint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/mypy.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/oxlint.js +14 -18
- package/node_modules/pi-lens/dist/clients/dispatch/runners/php-lint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/phpstan.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/prisma-validate.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/psscriptanalyzer.js +6 -3
- package/node_modules/pi-lens/dist/clients/dispatch/runners/pyright.js +7 -4
- package/node_modules/pi-lens/dist/clients/dispatch/runners/rubocop.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/ruff.js +1 -2
- package/node_modules/pi-lens/dist/clients/dispatch/runners/rust-clippy.js +1 -3
- package/node_modules/pi-lens/dist/clients/dispatch/runners/shellcheck.js +1 -2
- package/node_modules/pi-lens/dist/clients/dispatch/runners/shfmt.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/spellcheck.js +4 -3
- package/node_modules/pi-lens/dist/clients/dispatch/runners/spotbugs.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/sqlfluff.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/stylelint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/swiftlint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/taplo.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/terragrunt.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/tflint.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/tree-sitter.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/trivy-config.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/availability-policy.js +3 -0
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/diagnostic-parsers.js +3 -67
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/runner-helpers.js +194 -80
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/toolchain-availability.js +84 -15
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils.js +0 -21
- package/node_modules/pi-lens/dist/clients/dispatch/runners/vale.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/yaml-rule-parser.js +2 -20
- package/node_modules/pi-lens/dist/clients/dispatch/runners/yamllint.js +1 -1
- package/node_modules/pi-lens/dist/clients/dispatch/runners/zig-check.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/utils/format-utils.js +2 -2
- package/node_modules/pi-lens/dist/clients/disposition-logger.js +3 -10
- package/node_modules/pi-lens/dist/clients/effective-config.js +403 -0
- package/node_modules/pi-lens/dist/clients/error-class.js +23 -0
- package/node_modules/pi-lens/dist/clients/event-loop-hold.js +274 -0
- package/node_modules/pi-lens/dist/clients/event-loop-monitor.js +2 -2
- package/node_modules/pi-lens/dist/clients/extension-log.js +2 -2
- package/node_modules/pi-lens/dist/clients/feature-hints.js +2 -1
- package/node_modules/pi-lens/dist/clients/file-kinds.js +1 -38
- package/node_modules/pi-lens/dist/clients/file-time.js +7 -2
- package/node_modules/pi-lens/dist/clients/file-utils.js +117 -10
- package/node_modules/pi-lens/dist/clients/finding-delivery-gate.js +50 -13
- package/node_modules/pi-lens/dist/clients/format-service.js +6 -2
- package/node_modules/pi-lens/dist/clients/formatters.js +385 -104
- package/node_modules/pi-lens/dist/clients/freshness-cadence.js +17 -0
- package/node_modules/pi-lens/dist/clients/generated-artifacts.js +116 -22
- package/node_modules/pi-lens/dist/clients/generation-guard.js +4 -9
- package/node_modules/pi-lens/dist/clients/git-guard.js +6 -1
- package/node_modules/pi-lens/dist/clients/go-client.js +39 -0
- package/node_modules/pi-lens/dist/clients/gradle-ktfmt-style.js +252 -0
- package/node_modules/pi-lens/dist/clients/grammar-source.js +3 -3
- package/node_modules/pi-lens/dist/clients/hashline-anchor.js +424 -0
- package/node_modules/pi-lens/dist/clients/hook-budgets.js +76 -0
- package/node_modules/pi-lens/dist/clients/host-edit-normalize.js +5 -2
- package/node_modules/pi-lens/dist/clients/host-ports.js +1 -1
- package/node_modules/pi-lens/dist/clients/installer/index.js +289 -59
- package/node_modules/pi-lens/dist/clients/installer/managed-tool-refresh.js +84 -18
- package/node_modules/pi-lens/dist/clients/instance-reaper.js +110 -236
- package/node_modules/pi-lens/dist/clients/instance-registry.js +6 -3
- package/node_modules/pi-lens/dist/clients/language-profile.js +0 -9
- package/node_modules/pi-lens/dist/clients/language-registry.js +599 -0
- package/node_modules/pi-lens/dist/clients/latency-logger.js +165 -9
- package/node_modules/pi-lens/dist/clients/ledger-bounds.js +34 -1
- package/node_modules/pi-lens/dist/clients/lens-config.js +160 -30
- package/node_modules/pi-lens/dist/clients/lens-engine.js +33 -41
- package/node_modules/pi-lens/dist/clients/lens-events.js +1 -1
- package/node_modules/pi-lens/dist/clients/lens-flag-registry.js +77 -6
- package/node_modules/pi-lens/dist/clients/lens-map.js +1 -1
- package/node_modules/pi-lens/dist/clients/log-cleanup.js +2 -38
- package/node_modules/pi-lens/dist/clients/lsp/aggregation.js +3 -1
- package/node_modules/pi-lens/dist/clients/lsp/client.js +172 -33
- package/node_modules/pi-lens/dist/clients/lsp/config.js +484 -158
- package/node_modules/pi-lens/dist/clients/lsp/diagnostic-binding.js +1 -1
- package/node_modules/pi-lens/dist/clients/lsp/document-drift.js +1 -1
- package/node_modules/pi-lens/dist/clients/lsp/edits.js +18 -5
- package/node_modules/pi-lens/dist/clients/lsp/index.js +892 -96
- package/node_modules/pi-lens/dist/clients/lsp/inferred-project.js +1 -1
- package/node_modules/pi-lens/dist/clients/lsp/language.js +18 -177
- package/node_modules/pi-lens/dist/clients/lsp/launch.js +2 -1
- package/node_modules/pi-lens/dist/clients/lsp/path-utils.js +1 -1
- package/node_modules/pi-lens/dist/clients/lsp/pending-aux-coverage.js +5 -18
- package/node_modules/pi-lens/dist/clients/lsp/server.js +284 -147
- package/node_modules/pi-lens/dist/clients/lsp/session-roots.js +116 -23
- package/node_modules/pi-lens/dist/clients/lsp/spawn-history.js +2 -7
- package/node_modules/pi-lens/dist/clients/lsp/sync-kind.js +0 -1
- package/node_modules/pi-lens/dist/clients/lsp/tsserver-sync.js +14 -7
- package/node_modules/pi-lens/dist/clients/lsp/wait-policy/classification.js +6 -0
- package/node_modules/pi-lens/dist/clients/lsp/wait-policy/strategies.js +2 -1
- package/node_modules/pi-lens/dist/clients/lsp/workspace-diagnostics-cache.js +1 -1
- package/node_modules/pi-lens/dist/clients/lsp-document-symbols.js +1 -1
- package/node_modules/pi-lens/dist/clients/lsp-mutation.js +163 -21
- package/node_modules/pi-lens/dist/clients/map-with-concurrency.js +36 -0
- package/node_modules/pi-lens/dist/clients/mcp/analyze.js +33 -4
- package/node_modules/pi-lens/dist/clients/mcp/session.js +5 -16
- package/node_modules/pi-lens/dist/clients/memory-sampler.js +8 -3
- package/node_modules/pi-lens/dist/clients/metrics-history.js +28 -107
- package/node_modules/pi-lens/dist/clients/middle-man-analysis.js +3 -5
- package/node_modules/pi-lens/dist/clients/module-report.js +21 -46
- package/node_modules/pi-lens/dist/clients/mutating-tool.js +651 -0
- package/node_modules/pi-lens/dist/clients/mutation-attribution.js +368 -0
- package/node_modules/pi-lens/dist/clients/mutation-bridge.js +240 -0
- package/node_modules/pi-lens/dist/clients/ndjson-logger.js +247 -24
- package/node_modules/pi-lens/dist/clients/observed-mutation-sources.js +101 -0
- package/node_modules/pi-lens/dist/clients/observed-mutation.js +1215 -0
- package/node_modules/pi-lens/dist/clients/opaque-mutation-scan.js +70 -28
- package/node_modules/pi-lens/dist/clients/opengrep-config.js +5 -1
- package/node_modules/pi-lens/dist/clients/package-manager.js +195 -26
- package/node_modules/pi-lens/dist/clients/partial-edit-apply.js +359 -80
- package/node_modules/pi-lens/dist/clients/path-attribution-telemetry.js +23 -7
- package/node_modules/pi-lens/dist/clients/path-keyed-map.js +21 -2
- package/node_modules/pi-lens/dist/clients/path-utils.js +451 -15
- package/node_modules/pi-lens/dist/clients/performance-report.js +2 -2
- package/node_modules/pi-lens/dist/clients/persist-debounce.js +8 -1
- package/node_modules/pi-lens/dist/clients/php-cs-fixer-config.js +114 -0
- package/node_modules/pi-lens/dist/clients/pipeline.js +79 -18
- package/node_modules/pi-lens/dist/clients/probe-home-state.js +228 -0
- package/node_modules/pi-lens/dist/clients/process-bridge.js +66 -0
- package/node_modules/pi-lens/dist/clients/process-snapshot.js +68 -0
- package/node_modules/pi-lens/dist/clients/project-changes.js +1 -1
- package/node_modules/pi-lens/dist/clients/project-diagnostics/extractors.js +1 -1
- package/node_modules/pi-lens/dist/clients/project-diagnostics/fresh-fetch.js +4 -3
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/jscpd.js +1 -1
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/knip.js +1 -1
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/madge.js +1 -1
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/opengrep.js +1 -1
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/runner-findings.js +28 -4
- package/node_modules/pi-lens/dist/clients/project-diagnostics/scanner.js +51 -20
- package/node_modules/pi-lens/dist/clients/project-lens-config.js +438 -122
- package/node_modules/pi-lens/dist/clients/project-scan-policy.js +3 -51
- package/node_modules/pi-lens/dist/clients/project-snapshot.js +52 -24
- package/node_modules/pi-lens/dist/clients/python-environment.js +217 -0
- package/node_modules/pi-lens/dist/clients/python-provenance.js +639 -0
- package/node_modules/pi-lens/dist/clients/quiet-window.js +6 -1
- package/node_modules/pi-lens/dist/clients/read-bridge.js +13 -21
- package/node_modules/pi-lens/dist/clients/read-expansion.js +9 -46
- package/node_modules/pi-lens/dist/clients/read-guard-logger.js +16 -5
- package/node_modules/pi-lens/dist/clients/read-guard-tool-lines.js +364 -212
- package/node_modules/pi-lens/dist/clients/read-guard.js +26 -2
- package/node_modules/pi-lens/dist/clients/recent-touches.js +2 -2
- package/node_modules/pi-lens/dist/clients/resource-sampler.js +195 -96
- package/node_modules/pi-lens/dist/clients/review-graph/builder.js +155 -114
- package/node_modules/pi-lens/dist/clients/review-graph/import-resolvers.js +1 -1
- package/node_modules/pi-lens/dist/clients/review-graph/service.js +55 -3
- package/node_modules/pi-lens/dist/clients/review-graph/shared-extraction-ir.js +7 -15
- package/node_modules/pi-lens/dist/clients/review-graph/workspace-modules.js +10 -74
- package/node_modules/pi-lens/dist/clients/review-graph-logger.js +9 -3
- package/node_modules/pi-lens/dist/clients/runtime-agent-end.js +19 -3
- package/node_modules/pi-lens/dist/clients/runtime-context.js +49 -16
- package/node_modules/pi-lens/dist/clients/runtime-coordinator.js +25 -6
- package/node_modules/pi-lens/dist/clients/runtime-session.js +184 -32
- package/node_modules/pi-lens/dist/clients/runtime-tool-call.js +179 -36
- package/node_modules/pi-lens/dist/clients/runtime-tool-result.js +797 -243
- package/node_modules/pi-lens/dist/clients/runtime-turn.js +1028 -53
- package/node_modules/pi-lens/dist/clients/rust-client.js +31 -0
- package/node_modules/pi-lens/dist/clients/safe-spawn.js +33 -10
- package/node_modules/pi-lens/dist/clients/sanitize.js +7 -12
- package/node_modules/pi-lens/dist/clients/scan-utils.js +1 -56
- package/node_modules/pi-lens/dist/clients/scratch-tree-policy.js +1 -3
- package/node_modules/pi-lens/dist/clients/security-scan-client.js +3 -0
- package/node_modules/pi-lens/dist/clients/session-lifecycle.js +1 -1
- package/node_modules/pi-lens/dist/clients/session-start-observability.js +79 -0
- package/node_modules/pi-lens/dist/clients/session-summary.js +0 -24
- package/node_modules/pi-lens/dist/clients/sessionstart-logger.js +12 -3
- package/node_modules/pi-lens/dist/clients/sgconfig.js +7 -6
- package/node_modules/pi-lens/dist/clients/shared-checkout-guard.js +1 -1
- package/node_modules/pi-lens/dist/clients/skills-resolver.js +105 -0
- package/node_modules/pi-lens/dist/clients/smells-rollup.js +4 -4
- package/node_modules/pi-lens/dist/clients/startup-scan.js +2 -10
- package/node_modules/pi-lens/dist/clients/string-utils.js +13 -0
- package/node_modules/pi-lens/dist/clients/subagent-mode.js +17 -4
- package/node_modules/pi-lens/dist/clients/test-runner-client.js +176 -39
- package/node_modules/pi-lens/dist/clients/test-runner-delivery.js +244 -0
- package/node_modules/pi-lens/dist/clients/tool-definition.js +41 -1
- package/node_modules/pi-lens/dist/clients/tool-policy.js +92 -22
- package/node_modules/pi-lens/dist/clients/tree-sitter-cache.js +40 -40
- package/node_modules/pi-lens/dist/clients/tree-sitter-client.js +87 -100
- package/node_modules/pi-lens/dist/clients/tree-sitter-logger.js +2 -2
- package/node_modules/pi-lens/dist/clients/tree-sitter-query-loader.js +81 -1
- package/node_modules/pi-lens/dist/clients/tree-sitter-shared.js +51 -46
- package/node_modules/pi-lens/dist/clients/tree-sitter-symbol-extractor.js +28 -0
- package/node_modules/pi-lens/dist/clients/tui-fit.js +0 -4
- package/node_modules/pi-lens/dist/clients/typos-config.js +5 -0
- package/node_modules/pi-lens/dist/clients/user-notify.js +6 -6
- package/node_modules/pi-lens/dist/clients/widget-state.js +191 -26
- package/node_modules/pi-lens/dist/clients/word-index-logger.js +2 -9
- package/node_modules/pi-lens/dist/clients/word-index-store.js +23 -12
- package/node_modules/pi-lens/dist/clients/word-index.js +252 -47
- package/node_modules/pi-lens/dist/clients/workspace-topology.js +8 -1
- package/node_modules/pi-lens/dist/clients/zizmor-config.js +4 -1
- package/node_modules/pi-lens/dist/index.js +65899 -55340
- package/node_modules/pi-lens/dist/mcp/analyze-cli.js +3 -1
- package/node_modules/pi-lens/dist/mcp/build-staleness.js +1 -1
- package/node_modules/pi-lens/dist/mcp/server.js +127 -5
- package/node_modules/pi-lens/dist/scripts/lib/process-scan.mjs +583 -0
- package/node_modules/pi-lens/dist/scripts/lib/skills-predicate.mjs +129 -0
- package/node_modules/pi-lens/dist/tools/effective-config.js +89 -0
- package/node_modules/pi-lens/dist/tools/lens-diagnostics.js +96 -25
- package/node_modules/pi-lens/dist/tools/lsp-diagnostics.js +104 -86
- package/node_modules/pi-lens/dist/tools/lsp-navigation.js +37 -16
- package/node_modules/pi-lens/dist/tools/lsp-structured-output.js +3 -3
- package/node_modules/pi-lens/dist/tools/render-compact.js +1 -1
- package/node_modules/pi-lens/dist/tools/shared.js +0 -1
- package/node_modules/pi-lens/dist/tools/symbol-search.js +1 -2
- package/node_modules/pi-lens/docs/agent-guide.md +64 -1
- package/node_modules/pi-lens/docs/configuration.md +222 -0
- package/node_modules/pi-lens/docs/dependencies.md +3 -3
- package/node_modules/pi-lens/docs/features.md +44 -5
- package/node_modules/pi-lens/docs/globalconfig.md +20 -0
- package/node_modules/pi-lens/docs/language-coverage.md +2 -2
- package/node_modules/pi-lens/docs/lsp-capability-matrix.md +9 -1
- package/node_modules/pi-lens/docs/pi-lens-fixer.md +25 -0
- package/node_modules/pi-lens/docs/pi-lens-investigator.md +25 -0
- package/node_modules/pi-lens/docs/pi-lens-reviewer.md +33 -0
- package/node_modules/pi-lens/docs/pi-lens-subagent.md +49 -0
- package/node_modules/pi-lens/docs/pi-lens-warden.md +55 -0
- package/node_modules/pi-lens/docs/public-api-stability.md +359 -0
- package/node_modules/pi-lens/docs/release-qa-baseline.md +190 -0
- package/node_modules/pi-lens/docs/servercapabilities.md +7 -3
- package/node_modules/pi-lens/docs/subagent-compat.md +110 -30
- package/node_modules/pi-lens/docs/tree-sitter_rules_catalog.md +2 -2
- package/node_modules/pi-lens/docs/word-index.md +1 -1
- package/node_modules/pi-lens/package.json +18 -35
- package/node_modules/pi-lens/rules/tree-sitter-queries/python/python-cross-language-method.yml +3 -3
- package/node_modules/pi-lens/rules/tree-sitter-queries/python/python-hallucinated-import.yml +2 -2
- package/node_modules/pi-lens/rules/tree-sitter-queries/python/python-sql-injection.yml +12 -2
- package/node_modules/pi-lens/rules/typos/_typos.toml +4 -2
- package/node_modules/pi-lens/scripts/analyze-pi-lens-logs.mjs +192 -1
- package/node_modules/pi-lens/scripts/install-selftest.mjs +58 -2
- package/node_modules/pi-lens/scripts/lib/skills-predicate.mjs +129 -0
- package/node_modules/pi-lens/scripts/lib/warm-loader-cache.mjs +1 -1
- package/node_modules/pi-lens/scripts/rpc-load-check.mjs +3 -1
- package/node_modules/pi-lens/scripts/warm-loader-cache.mjs +4 -2
- package/node_modules/pi-web-access/CHANGELOG.md +28 -0
- package/node_modules/pi-web-access/README.md +62 -15
- package/node_modules/pi-web-access/curator-page.ts +3 -1
- package/node_modules/pi-web-access/curator-server.ts +5 -1
- package/node_modules/pi-web-access/gemini-search.ts +8 -4
- package/node_modules/pi-web-access/github-extract.ts +242 -1
- package/node_modules/pi-web-access/index.ts +118 -64
- package/node_modules/pi-web-access/mistral-search.ts +281 -0
- package/node_modules/pi-web-access/package.json +2 -2
- package/node_modules/pi-web-access/perplexity.ts +14 -1
- package/node_modules/pi-web-access/utils.ts +23 -6
- package/node_modules/pi-web-access/xai-search.ts +96 -33
- package/package.json +6 -6
|
@@ -20,7 +20,7 @@ import * as crypto from "node:crypto";
|
|
|
20
20
|
import * as fs from "node:fs";
|
|
21
21
|
import * as path from "node:path";
|
|
22
22
|
import { AstGrepClient } from "../ast-grep-client.js";
|
|
23
|
-
import { loadBootstrapClients } from "../bootstrap.js";
|
|
23
|
+
import { loadBootstrapClients, residentBootstrapAccess, } from "../bootstrap.js";
|
|
24
24
|
import { CacheManager, MCP_TURN_STATE_OWNER_ID, } from "../cache-manager.js";
|
|
25
25
|
import { resetDispatchBaselines } from "../dispatch/integration.js";
|
|
26
26
|
import { resetFormatService } from "../format-service.js";
|
|
@@ -96,23 +96,12 @@ export async function runSessionStart(cwd) {
|
|
|
96
96
|
dbg: noop,
|
|
97
97
|
log: noop,
|
|
98
98
|
runtime: ctx.runtime,
|
|
99
|
-
metricsClient: ctx.clients.metricsClient,
|
|
100
99
|
cacheManager: ctx.cacheManager,
|
|
101
|
-
todoScanner: ctx.clients.todoScanner,
|
|
102
100
|
astGrepClient: ctx.astGrepClient,
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
deadCodeClients: ctx.clients.deadCodeClients,
|
|
108
|
-
govulncheckClient: ctx.clients.govulncheckClient,
|
|
109
|
-
gitleaksClient: ctx.clients.gitleaksClient,
|
|
110
|
-
trivyClient: ctx.clients.trivyClient,
|
|
111
|
-
opengrepClient: ctx.clients.opengrepClient,
|
|
112
|
-
depChecker: ctx.clients.depChecker,
|
|
113
|
-
testRunnerClient: ctx.clients.testRunnerClient,
|
|
114
|
-
goClient: ctx.clients.goClient,
|
|
115
|
-
rustClient: ctx.clients.rustClient,
|
|
101
|
+
// The MCP server has already loaded the analyzer graph (an MCP call has
|
|
102
|
+
// nothing to defer to), so it hands the handler the same one-shape seam
|
|
103
|
+
// every other caller uses rather than a second, field-by-field shape.
|
|
104
|
+
bootstrap: residentBootstrapAccess(ctx.clients),
|
|
116
105
|
ensureTool: async (name) => (await import("../installer/index.js")).ensureTool(name),
|
|
117
106
|
cleanStaleTsBuildInfo: () => [],
|
|
118
107
|
resetDispatchBaselines: (cwdArg) => resetDispatchBaselines(cwdArg ?? cwd),
|
|
@@ -106,6 +106,13 @@ export function toMemoryProcessUsage(mem, resourceUsage) {
|
|
|
106
106
|
* process-global singletons) but every individual read is a `.size`/`.length`
|
|
107
107
|
* access — see the module docstring's hard constraint.
|
|
108
108
|
*/
|
|
109
|
+
/** Byte attribution for `dispatchCaches`, from measured per-entry costs: three
|
|
110
|
+
* isolated-store runs put a recently-clean neighbor entry at 320 bytes, and
|
|
111
|
+
* #2282 measured a 500-file batch's 1,000 session-fact entries at 439,560
|
|
112
|
+
* bytes (~440 each). O(1) — the cache key and Map bookkeeping are included. */
|
|
113
|
+
export function estimateDispatchCacheBytes(stats) {
|
|
114
|
+
return (stats.recentlyCleanNeighborCacheSize * 320 + stats.sessionFactEntries * 440);
|
|
115
|
+
}
|
|
109
116
|
export function collectMemorySampleSubsystems(wordIndex) {
|
|
110
117
|
const reviewGraph = getReviewGraphWorkspaceCacheSnapshot();
|
|
111
118
|
const treeSitterClient = getSharedTreeSitterClient();
|
|
@@ -149,9 +156,7 @@ export function collectMemorySampleSubsystems(wordIndex) {
|
|
|
149
156
|
treeSitter,
|
|
150
157
|
dispatchCaches: {
|
|
151
158
|
...dispatchCaches,
|
|
152
|
-
|
|
153
|
-
// Keep this O(1); the cache key and Map bookkeeping are included.
|
|
154
|
-
estimatedBytes: dispatchCaches.recentlyCleanNeighborCacheSize * 320,
|
|
159
|
+
estimatedBytes: estimateDispatchCacheBytes(dispatchCaches),
|
|
155
160
|
},
|
|
156
161
|
};
|
|
157
162
|
}
|
|
@@ -93,7 +93,7 @@ export function loadHistory() {
|
|
|
93
93
|
/**
|
|
94
94
|
* Save history to disk
|
|
95
95
|
*/
|
|
96
|
-
|
|
96
|
+
function saveHistory(history) {
|
|
97
97
|
const historyDir = getProjectDataDir(process.cwd());
|
|
98
98
|
if (!fs.existsSync(historyDir)) {
|
|
99
99
|
fs.mkdirSync(historyDir, { recursive: true });
|
|
@@ -161,10 +161,35 @@ export function captureSnapshot(filePath, metrics) {
|
|
|
161
161
|
}, SAVE_DEBOUNCE_MS);
|
|
162
162
|
saveTimer.unref?.();
|
|
163
163
|
}
|
|
164
|
+
// --- Trend Analysis ---
|
|
164
165
|
/**
|
|
165
|
-
*
|
|
166
|
-
*
|
|
166
|
+
* Compute trend direction from history snapshots
|
|
167
|
+
* Uses last 3 snapshots for stability (or 2 if only 2 available)
|
|
167
168
|
*/
|
|
169
|
+
function computeTrend(history) {
|
|
170
|
+
if (history.length < 2)
|
|
171
|
+
return "stable";
|
|
172
|
+
const recent = history.slice(-3);
|
|
173
|
+
const first = recent[0];
|
|
174
|
+
const last = recent[recent.length - 1];
|
|
175
|
+
// Use MI as primary indicator, cognitive as secondary
|
|
176
|
+
const miDelta = last.mi - first.mi;
|
|
177
|
+
const cogDelta = last.cognitive - first.cognitive;
|
|
178
|
+
// Thresholds (MI changes < 2 are noise)
|
|
179
|
+
if (miDelta > 2)
|
|
180
|
+
return "improving";
|
|
181
|
+
if (miDelta < -2)
|
|
182
|
+
return "regressing";
|
|
183
|
+
// If MI is stable, check cognitive
|
|
184
|
+
if (cogDelta < -10)
|
|
185
|
+
return "improving";
|
|
186
|
+
if (cogDelta > 10)
|
|
187
|
+
return "regressing";
|
|
188
|
+
return "stable";
|
|
189
|
+
}
|
|
190
|
+
// --- Technical Debt Index (TDI) ---
|
|
191
|
+
// Test-reached through a child-process `require` string
|
|
192
|
+
/** @public — reached through a child-process `require` string in tests/clients/metrics-history-stderr.test.ts; knip cannot see it. */
|
|
168
193
|
export function captureSnapshots(files) {
|
|
169
194
|
const history = loadHistory();
|
|
170
195
|
for (const file of files) {
|
|
@@ -200,110 +225,6 @@ export function captureSnapshots(files) {
|
|
|
200
225
|
saveHistory(history);
|
|
201
226
|
return history;
|
|
202
227
|
}
|
|
203
|
-
// --- Trend Analysis ---
|
|
204
|
-
/**
|
|
205
|
-
* Compute trend direction from history snapshots
|
|
206
|
-
* Uses last 3 snapshots for stability (or 2 if only 2 available)
|
|
207
|
-
*/
|
|
208
|
-
export function computeTrend(history) {
|
|
209
|
-
if (history.length < 2)
|
|
210
|
-
return "stable";
|
|
211
|
-
const recent = history.slice(-3);
|
|
212
|
-
const first = recent[0];
|
|
213
|
-
const last = recent[recent.length - 1];
|
|
214
|
-
// Use MI as primary indicator, cognitive as secondary
|
|
215
|
-
const miDelta = last.mi - first.mi;
|
|
216
|
-
const cogDelta = last.cognitive - first.cognitive;
|
|
217
|
-
// Thresholds (MI changes < 2 are noise)
|
|
218
|
-
if (miDelta > 2)
|
|
219
|
-
return "improving";
|
|
220
|
-
if (miDelta < -2)
|
|
221
|
-
return "regressing";
|
|
222
|
-
// If MI is stable, check cognitive
|
|
223
|
-
if (cogDelta < -10)
|
|
224
|
-
return "improving";
|
|
225
|
-
if (cogDelta > 10)
|
|
226
|
-
return "regressing";
|
|
227
|
-
return "stable";
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Get delta between current snapshot and previous
|
|
231
|
-
*/
|
|
232
|
-
export function getDelta(history) {
|
|
233
|
-
if (!history || history.history.length < 2)
|
|
234
|
-
return null;
|
|
235
|
-
const current = history.history[history.history.length - 1];
|
|
236
|
-
const previous = history.history[history.history.length - 2];
|
|
237
|
-
return {
|
|
238
|
-
mi: Math.round((current.mi - previous.mi) * 10) / 10,
|
|
239
|
-
cognitive: current.cognitive - previous.cognitive,
|
|
240
|
-
trend: history.trend,
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Get trend emoji for display
|
|
245
|
-
*/
|
|
246
|
-
export function getTrendEmoji(trend) {
|
|
247
|
-
switch (trend) {
|
|
248
|
-
case "improving":
|
|
249
|
-
return "📈";
|
|
250
|
-
case "regressing":
|
|
251
|
-
return "📉";
|
|
252
|
-
default:
|
|
253
|
-
return "➡️";
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Get trend summary across all files
|
|
258
|
-
*/
|
|
259
|
-
export function getTrendSummary(history) {
|
|
260
|
-
let improving = 0;
|
|
261
|
-
let regressing = 0;
|
|
262
|
-
let stable = 0;
|
|
263
|
-
const regressions = [];
|
|
264
|
-
for (const [file, fileHistory] of Object.entries(history.files)) {
|
|
265
|
-
switch (fileHistory.trend) {
|
|
266
|
-
case "improving":
|
|
267
|
-
improving++;
|
|
268
|
-
break;
|
|
269
|
-
case "regressing": {
|
|
270
|
-
regressing++;
|
|
271
|
-
const delta = getDelta(fileHistory);
|
|
272
|
-
if (delta) {
|
|
273
|
-
regressions.push({ file, miDelta: delta.mi });
|
|
274
|
-
}
|
|
275
|
-
break;
|
|
276
|
-
}
|
|
277
|
-
default:
|
|
278
|
-
stable++;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
// Sort regressions by MI delta (worst first)
|
|
282
|
-
regressions.sort((a, b) => a.miDelta - b.miDelta);
|
|
283
|
-
return {
|
|
284
|
-
improving,
|
|
285
|
-
regressing,
|
|
286
|
-
stable,
|
|
287
|
-
worstRegressions: regressions.slice(0, 5),
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Format trend for metrics table
|
|
292
|
-
*/
|
|
293
|
-
export function formatTrendCell(filePath, history) {
|
|
294
|
-
const relativePath = path.relative(process.cwd(), filePath);
|
|
295
|
-
const fileHistory = history.files[relativePath];
|
|
296
|
-
if (!fileHistory || fileHistory.history.length < 2) {
|
|
297
|
-
return "—"; // No history
|
|
298
|
-
}
|
|
299
|
-
const delta = getDelta(fileHistory);
|
|
300
|
-
if (!delta)
|
|
301
|
-
return "—";
|
|
302
|
-
const emoji = getTrendEmoji(delta.trend);
|
|
303
|
-
const miSign = delta.mi > 0 ? "+" : "";
|
|
304
|
-
const miColor = delta.mi > 0 ? "🟢" : delta.mi < 0 ? "🔴" : "⚪";
|
|
305
|
-
return `${emoji} ${miColor}${miSign}${delta.mi}`;
|
|
306
|
-
}
|
|
307
228
|
/**
|
|
308
229
|
* Calculate Technical Debt Index for the project.
|
|
309
230
|
* Score: 0 = perfect, 100 = maximum debt.
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
* slice can add them once middle-man analysis has an AST-node entry point
|
|
28
28
|
* rather than this text-based one.
|
|
29
29
|
*/
|
|
30
|
+
import { escapeRegExp } from "./string-utils.js";
|
|
30
31
|
/** Self-reference token + member-access separator, per languageId. Both the
|
|
31
32
|
* self→field and field→method hops use the SAME separator in every language
|
|
32
33
|
* covered here (true even for PHP's `$this->field->method()`). */
|
|
@@ -65,9 +66,6 @@ const MIN_CANDIDATE_METHODS = 2;
|
|
|
65
66
|
* "mostly" — a class with a couple of forwarding convenience methods among
|
|
66
67
|
* real logic must NOT flag (the exact distinction #325 asks for). */
|
|
67
68
|
const DELEGATION_RATIO_THRESHOLD = 0.9;
|
|
68
|
-
function escapeRegExp(s) {
|
|
69
|
-
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
70
|
-
}
|
|
71
69
|
function buildForwardRegex(token, sep) {
|
|
72
70
|
const t = escapeRegExp(token);
|
|
73
71
|
const s = escapeRegExp(sep);
|
|
@@ -98,7 +96,7 @@ function paramNamesFromSignature(signature, languageId) {
|
|
|
98
96
|
.map((raw) => {
|
|
99
97
|
let name = raw;
|
|
100
98
|
// Rest/spread params forward as themselves textually (`...args`).
|
|
101
|
-
const isRest =
|
|
99
|
+
const isRest = name.startsWith("...");
|
|
102
100
|
name = name.replace(/^\.\.\./, "");
|
|
103
101
|
name = name.split("=")[0].trim(); // strip default value
|
|
104
102
|
name = name.split(":")[0].trim(); // strip type annotation
|
|
@@ -161,7 +159,7 @@ function isAccessorLine(rawLine) {
|
|
|
161
159
|
* extracted data — no re-parsing, no file I/O beyond the lines already read
|
|
162
160
|
* by the caller.
|
|
163
161
|
*/
|
|
164
|
-
|
|
162
|
+
function analyzeMiddleMan(classEntry, lines, languageId) {
|
|
165
163
|
if (!languageId)
|
|
166
164
|
return undefined;
|
|
167
165
|
const selfSpec = SELF_TOKEN[languageId];
|
|
@@ -41,63 +41,36 @@ import { loadCallGraph, } from "./call-graph.js";
|
|
|
41
41
|
import { resolveImportToFiles } from "./review-graph/import-resolvers.js";
|
|
42
42
|
import { buildSymbolId } from "./review-graph/symbol-id.js";
|
|
43
43
|
import { getSharedTreeSitterClient, resolveTreeSitterLanguage, } from "./tree-sitter-shared.js";
|
|
44
|
-
import { TreeSitterSymbolExtractor, } from "./tree-sitter-symbol-extractor.js";
|
|
44
|
+
import { symbolExtractionGrammar, TreeSitterSymbolExtractor, } from "./tree-sitter-symbol-extractor.js";
|
|
45
45
|
// NOTE: live-LSP enrichment is NO LONGER called on this read path (#256). Firing
|
|
46
46
|
// LSP per read — speculatively, on the agent's fan-out path — repeatedly OOM'd
|
|
47
47
|
// pi. The enrichment logic is kept as a separate module (clients/module-report-
|
|
48
48
|
// lsp.ts) to be re-homed in #236, where LSP writes provenance-tagged edges INTO
|
|
49
49
|
// the review graph (computed once, persisted) so this path just reads them.
|
|
50
50
|
/** Hard payload bound for the per-symbol who-uses-this section. */
|
|
51
|
-
|
|
51
|
+
const MAX_MODULE_REPORT_REFS = 100;
|
|
52
52
|
function normalizeMaxRefsPerSymbol(value) {
|
|
53
53
|
if (value === undefined || !Number.isFinite(value))
|
|
54
54
|
return 10;
|
|
55
55
|
return Math.min(MAX_MODULE_REPORT_REFS, Math.max(1, Math.floor(value)));
|
|
56
56
|
}
|
|
57
|
-
// kind -> tree-sitter languageId. The languageId keys BOTH the grammar map
|
|
58
|
-
// (tree-sitter-client) and SYMBOL_QUERIES (tree-sitter-symbol-extractor), so it
|
|
59
|
-
// must match a key present in both. jsts/cxx are extension-split kinds resolved
|
|
60
|
-
// through the SHARED ext→grammar resolver below (never a local extension map —
|
|
61
|
-
// #887). Using these gives the primary languages the same rich outline
|
|
62
|
-
// (classes/interfaces/types/signatures) as every other language, not the
|
|
63
|
-
// functions-only FunctionSummary.
|
|
64
|
-
const KIND_TO_TS_LANG = {
|
|
65
|
-
python: "python",
|
|
66
|
-
go: "go",
|
|
67
|
-
rust: "rust",
|
|
68
|
-
ruby: "ruby",
|
|
69
|
-
java: "java",
|
|
70
|
-
kotlin: "kotlin",
|
|
71
|
-
dart: "dart",
|
|
72
|
-
elixir: "elixir",
|
|
73
|
-
csharp: "csharp",
|
|
74
|
-
php: "php",
|
|
75
|
-
swift: "swift",
|
|
76
|
-
lua: "lua",
|
|
77
|
-
ocaml: "ocaml",
|
|
78
|
-
zig: "zig",
|
|
79
|
-
shell: "bash",
|
|
80
|
-
// cxx resolved by extension below (c vs cpp)
|
|
81
|
-
};
|
|
82
57
|
export function tsLangForFile(filePath, kind) {
|
|
83
|
-
// jsts
|
|
84
|
-
// ext
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
// Extensions the shared map does not cover (.svelte/.vue for jsts; the
|
|
92
|
-
// module-interface/Objective-C/CUDA tail for cxx) keep the historical
|
|
93
|
-
// kind default.
|
|
58
|
+
// jsts is an extension-split kind with no single grammar: resolve it through
|
|
59
|
+
// the SHARED ext -> grammar authority (language-registry via
|
|
60
|
+
// tree-sitter-shared) so a file is parsed and TreeCache-keyed
|
|
61
|
+
// (`languageId:path`) under exactly one grammar process-wide. #887: this used
|
|
62
|
+
// to hand-roll a local map that sent .js/.mjs/.cjs to the typescript grammar
|
|
63
|
+
// and .jsx to tsx, so every plain-JS file was parsed and cached twice under
|
|
64
|
+
// two grammars and ran TS-grammar symbol queries on JS trees. .svelte/.vue
|
|
65
|
+
// have no grammar wiring and keep the historical kind default.
|
|
94
66
|
if (kind === "jsts") {
|
|
95
67
|
return resolveTreeSitterLanguage(filePath) ?? "typescript";
|
|
96
68
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
69
|
+
// Every other kind goes through the registry-derived resolver, which handles
|
|
70
|
+
// the cxx `.c`/`.h`-vs-cpp split and only answers for grammars that have
|
|
71
|
+
// symbol queries. #2424 deleted the hand-kept kind -> languageId map that
|
|
72
|
+
// used to live here alongside review-graph's copy of the same thing.
|
|
73
|
+
return symbolExtractionGrammar(kind, filePath);
|
|
101
74
|
}
|
|
102
75
|
// Per-language extractor cache — extractors are cheap once their queries are
|
|
103
76
|
// compiled. The shared TreeSitterClient (which memoizes grammar init) is obtained
|
|
@@ -867,7 +840,7 @@ const pythonCallbackRules = {
|
|
|
867
840
|
include: true,
|
|
868
841
|
};
|
|
869
842
|
}
|
|
870
|
-
if (
|
|
843
|
+
if (callName.endsWith(".add_done_callback")) {
|
|
871
844
|
return {
|
|
872
845
|
kind: "future_callback",
|
|
873
846
|
flags: withFlag(base.flags, "future completion"),
|
|
@@ -1012,7 +985,7 @@ const javaCallbackRules = {
|
|
|
1012
985
|
const base = classifyGenericCallback(ctx);
|
|
1013
986
|
const obj = ancestorOfType(ctx.node, new Set(["object_creation_expression"]), 3);
|
|
1014
987
|
const created = obj?.children?.find((c) => c.type === "type_identifier");
|
|
1015
|
-
if (created &&
|
|
988
|
+
if (created && created.text.endsWith("Thread")) {
|
|
1016
989
|
return {
|
|
1017
990
|
kind: "task",
|
|
1018
991
|
flags: withFlag(base.flags, "thread"),
|
|
@@ -1734,8 +1707,10 @@ function levenshteinDistance(a, b) {
|
|
|
1734
1707
|
return bl;
|
|
1735
1708
|
if (bl === 0)
|
|
1736
1709
|
return al;
|
|
1737
|
-
let prev =
|
|
1738
|
-
|
|
1710
|
+
let prev = [];
|
|
1711
|
+
prev.length = bl + 1;
|
|
1712
|
+
let curr = [];
|
|
1713
|
+
curr.length = bl + 1;
|
|
1739
1714
|
for (let j = 0; j <= bl; j++)
|
|
1740
1715
|
prev[j] = j;
|
|
1741
1716
|
for (let i = 1; i <= al; i++) {
|