@herbertgao/pi-extensions 2026.10.1 → 2026.10.3
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/README.md +14 -17
- package/THIRD_PARTY_NOTICES.md +2 -2
- package/node_modules/@dietrichgebert/ponytail/.opencode/command/ponytail-audit.md +2 -2
- package/node_modules/@dietrichgebert/ponytail/.opencode/command/ponytail-debt.md +2 -2
- package/node_modules/@dietrichgebert/ponytail/.opencode/command/ponytail-gain.md +1 -1
- package/node_modules/@dietrichgebert/ponytail/.opencode/command/ponytail-help.md +1 -1
- package/node_modules/@dietrichgebert/ponytail/.opencode/command/ponytail-review.md +2 -2
- package/node_modules/@dietrichgebert/ponytail/.opencode/command/ponytail.md +1 -1
- package/node_modules/@dietrichgebert/ponytail/.qoder/rules/ponytail.md +21 -21
- package/node_modules/@dietrichgebert/ponytail/.qoder-plugin/plugin.json +1 -1
- package/node_modules/@dietrichgebert/ponytail/AGENTS.md +21 -21
- package/node_modules/@dietrichgebert/ponytail/README.md +68 -72
- package/node_modules/@dietrichgebert/ponytail/hooks/ponytail-activate.js +7 -0
- package/node_modules/@dietrichgebert/ponytail/hooks/ponytail-instructions.js +30 -30
- package/node_modules/@dietrichgebert/ponytail/hooks/ponytail-map.js +103 -0
- package/node_modules/@dietrichgebert/ponytail/package.json +2 -2
- package/node_modules/@dietrichgebert/ponytail/skills/ponytail/SKILL.md +33 -101
- package/node_modules/@dietrichgebert/ponytail/skills/ponytail-audit/SKILL.md +89 -32
- package/node_modules/@dietrichgebert/ponytail/skills/ponytail-debt/SKILL.md +13 -12
- package/node_modules/@dietrichgebert/ponytail/skills/ponytail-gain/SKILL.md +17 -16
- package/node_modules/@dietrichgebert/ponytail/skills/ponytail-help/SKILL.md +9 -10
- package/node_modules/@dietrichgebert/ponytail/skills/ponytail-review/SKILL.md +96 -57
- package/node_modules/{remote-pi → @herbertgao/pi-agency}/LICENSE +1 -1
- package/node_modules/@herbertgao/pi-agency/README.md +40 -0
- package/node_modules/@herbertgao/pi-agency/package.json +53 -0
- package/node_modules/@herbertgao/pi-agency/src/index.ts +441 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/compact-thinking.ts +12 -12
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/compact-mode.ts +30 -6
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/default-mode.ts +15 -9
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/mouse/interaction.ts +27 -9
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/codemode.ts +4 -1
- package/node_modules/@herbertgao/pi-cc-extensions/package.json +2 -2
- package/node_modules/@herbertgao/pi-subagents/CHANGELOG.md +8 -0
- package/node_modules/@herbertgao/pi-subagents/README.md +1 -1
- package/node_modules/@herbertgao/pi-subagents/package.json +4 -5
- package/node_modules/@herbertgao/pi-subagents/src/index.ts +1 -1
- package/node_modules/@herbertgao/pi-subagents/src/invocation-config.ts +1 -1
- package/node_modules/@herbertgao/pi-subagents/src/mention-clone.ts +48 -72
- package/node_modules/@herbertgao/pi-subagents/src/nested-tools.ts +1 -1
- package/node_modules/@herbertgao/pi-subagents/src/output-file.ts +15 -6
- package/node_modules/@herbertgao/pi-subagents/src/workflow/collisions.ts +4 -1
- package/node_modules/@herbertgao/pi-subagents/src/workflow/json-schema.ts +9 -8
- package/node_modules/@narumitw/pi-caffeinate/dist/index.ts +6 -1
- package/node_modules/@narumitw/pi-caffeinate/dist/index.ts.map +2 -2
- package/node_modules/@narumitw/pi-caffeinate/package.json +3 -3
- package/node_modules/@narumitw/pi-caffeinate/src/dbus-inhibit.ts +13 -1
- package/node_modules/@tifan/pi-mermaid-open/package.json +5 -1
- package/node_modules/@tifan/pi-mermaid-open/src/index.ts +26 -9
- package/node_modules/@tifan/pi-recap/package.json +1 -1
- package/node_modules/@tifan/pi-recap/src/index.ts +104 -20
- package/node_modules/@tifan/pi-recap/src/models.ts +46 -4
- package/node_modules/pi-antigravity/README.md +23 -2
- package/node_modules/pi-antigravity/package.json +5 -3
- package/node_modules/pi-antigravity/src/diagnostics/diagnostics.ts +3 -2
- package/node_modules/pi-antigravity/src/features/generate-image.ts +72 -0
- package/node_modules/pi-antigravity/src/features/google-search.ts +71 -0
- package/node_modules/pi-antigravity/src/image/image.ts +86 -47
- package/node_modules/pi-antigravity/src/image/native.ts +69 -0
- package/node_modules/pi-antigravity/src/index.ts +52 -137
- package/node_modules/pi-antigravity/src/search/search.ts +130 -31
- package/node_modules/pi-antigravity/src/stream/stream.ts +162 -113
- package/node_modules/pi-antigravity/src/types/enums.ts +1 -0
- package/node_modules/pi-antigravity/src/types/types.ts +1 -1
- package/node_modules/pi-antigravity/src/utils/security.ts +47 -1
- package/node_modules/pi-antigravity/src/utils/util.ts +38 -6
- package/node_modules/pi-lens/CHANGELOG.md +1159 -0
- package/node_modules/pi-lens/README.md +116 -25
- package/node_modules/pi-lens/config/dependency-cruiser-eager-allowlist.json +6 -2
- package/node_modules/pi-lens/dist/chunk-2BEMIWEW.js +51 -0
- package/node_modules/pi-lens/dist/chunk-2EECBNC5.js +89 -0
- package/node_modules/pi-lens/dist/chunk-2FQ62SPM.js +83 -0
- package/node_modules/pi-lens/dist/chunk-2UMYMRI3.js +118 -0
- package/node_modules/pi-lens/dist/chunk-34OCDWOS.js +48 -0
- package/node_modules/pi-lens/dist/chunk-3FERWMCH.js +144 -0
- package/node_modules/pi-lens/dist/chunk-3JL6IFD7.js +97 -0
- package/node_modules/pi-lens/dist/chunk-3JSEWUWI.js +327 -0
- package/node_modules/pi-lens/dist/chunk-3MED75HT.js +37 -0
- package/node_modules/pi-lens/dist/chunk-3MRXIJ6I.js +79 -0
- package/node_modules/pi-lens/dist/chunk-3P4PF2BX.js +2250 -0
- package/node_modules/pi-lens/dist/chunk-3PNFWVHT.js +201 -0
- package/node_modules/pi-lens/dist/chunk-3TTPKMEF.js +162 -0
- package/node_modules/pi-lens/dist/chunk-5JHXUETW.js +326 -0
- package/node_modules/pi-lens/dist/chunk-5W3R6LFT.js +24 -0
- package/node_modules/pi-lens/dist/chunk-64LU2OVH.js +341 -0
- package/node_modules/pi-lens/dist/chunk-6B5I6ICN.js +44 -0
- package/node_modules/pi-lens/dist/chunk-6P54TMWL.js +274 -0
- package/node_modules/pi-lens/dist/chunk-6UYA642J.js +145 -0
- package/node_modules/pi-lens/dist/chunk-6XX5HCLK.js +398 -0
- package/node_modules/pi-lens/dist/chunk-7AXO3ZDF.js +30 -0
- package/node_modules/pi-lens/dist/chunk-7BX5DWSA.js +1907 -0
- package/node_modules/pi-lens/dist/chunk-7ELY2CSM.js +902 -0
- package/node_modules/pi-lens/dist/chunk-7M4T5N3V.js +38 -0
- package/node_modules/pi-lens/dist/chunk-7U2IDNXN.js +37 -0
- package/node_modules/pi-lens/dist/chunk-ABBOA7UD.js +157 -0
- package/node_modules/pi-lens/dist/chunk-AFZYMAIV.js +756 -0
- package/node_modules/pi-lens/dist/chunk-ALQRYH6O.js +112 -0
- package/node_modules/pi-lens/dist/chunk-AXKPQ6ZI.js +1610 -0
- package/node_modules/pi-lens/dist/chunk-BHWHXMQ2.js +62 -0
- package/node_modules/pi-lens/dist/chunk-BJF25SUG.js +22 -0
- package/node_modules/pi-lens/dist/chunk-BNKLYOOO.js +18 -0
- package/node_modules/pi-lens/dist/chunk-BW5KFIQC.js +59 -0
- package/node_modules/pi-lens/dist/chunk-CBD2B5CP.js +599 -0
- package/node_modules/pi-lens/dist/chunk-CFYISHUW.js +42 -0
- package/node_modules/pi-lens/dist/chunk-CMU4RMJB.js +30 -0
- package/node_modules/pi-lens/dist/chunk-CULQYFLU.js +14 -0
- package/node_modules/pi-lens/dist/chunk-D65GOCJB.js +289 -0
- package/node_modules/pi-lens/dist/chunk-D6YF5HKX.js +59 -0
- package/node_modules/pi-lens/dist/chunk-DMS52BEP.js +342 -0
- package/node_modules/pi-lens/dist/chunk-ELVWJYRV.js +211 -0
- package/node_modules/pi-lens/dist/chunk-EUT3B22Y.js +27 -0
- package/node_modules/pi-lens/dist/chunk-F5VLZHUW.js +146 -0
- package/node_modules/pi-lens/dist/chunk-FC4RP4I2.js +12 -0
- package/node_modules/pi-lens/dist/chunk-FGALODG3.js +55 -0
- package/node_modules/pi-lens/dist/chunk-G3RLJYA2.js +2358 -0
- package/node_modules/pi-lens/dist/chunk-GAYGGICG.js +32 -0
- package/node_modules/pi-lens/dist/chunk-H2W2AXD3.js +419 -0
- package/node_modules/pi-lens/dist/chunk-H5EV3VMF.js +114 -0
- package/node_modules/pi-lens/dist/chunk-HREZQCT3.js +106 -0
- package/node_modules/pi-lens/dist/chunk-HSIRMK2D.js +517 -0
- package/node_modules/pi-lens/dist/chunk-IMSQR4WO.js +184 -0
- package/node_modules/pi-lens/dist/chunk-IQZXOZ7S.js +4816 -0
- package/node_modules/pi-lens/dist/chunk-IR6XFA5P.js +37 -0
- package/node_modules/pi-lens/dist/chunk-IUKPRZER.js +78 -0
- package/node_modules/pi-lens/dist/chunk-IUR76K6A.js +262 -0
- package/node_modules/pi-lens/dist/chunk-J3FZR3YY.js +98 -0
- package/node_modules/pi-lens/dist/chunk-J6DFZDFA.js +562 -0
- package/node_modules/pi-lens/dist/chunk-J7WJZ6W7.js +50 -0
- package/node_modules/pi-lens/dist/chunk-JONGANYH.js +202 -0
- package/node_modules/pi-lens/dist/chunk-KJCWXUUS.js +425 -0
- package/node_modules/pi-lens/dist/chunk-KJN4IOEJ.js +17 -0
- package/node_modules/pi-lens/dist/chunk-KMGPUKFD.js +25 -0
- package/node_modules/pi-lens/dist/chunk-LD7WFTRX.js +4533 -0
- package/node_modules/pi-lens/dist/chunk-LJDODBBZ.js +78 -0
- package/node_modules/pi-lens/dist/chunk-LNOMA3MP.js +169 -0
- package/node_modules/pi-lens/dist/chunk-MGIWSROG.js +2334 -0
- package/node_modules/pi-lens/dist/chunk-MQA2YBAH.js +308 -0
- package/node_modules/pi-lens/dist/chunk-MTDRLSI7.js +21720 -0
- package/node_modules/pi-lens/dist/chunk-N2IRDBZI.js +2355 -0
- package/node_modules/pi-lens/dist/chunk-N77WFUL7.js +50 -0
- package/node_modules/pi-lens/dist/chunk-N7YNJE5R.js +466 -0
- package/node_modules/pi-lens/dist/chunk-NABLC7W3.js +148 -0
- package/node_modules/pi-lens/dist/chunk-NFXP47RV.js +999 -0
- package/node_modules/pi-lens/dist/chunk-NJF2X5XF.js +45 -0
- package/node_modules/pi-lens/dist/chunk-NXL4FFQQ.js +47 -0
- package/node_modules/pi-lens/dist/chunk-O7HZX7CA.js +309 -0
- package/node_modules/pi-lens/dist/chunk-OC7LYAU5.js +708 -0
- package/node_modules/pi-lens/dist/chunk-OEX24ECI.js +348 -0
- package/node_modules/pi-lens/dist/chunk-OYOB3ZFG.js +78 -0
- package/node_modules/pi-lens/dist/chunk-OYTMZXRF.js +41 -0
- package/node_modules/pi-lens/dist/chunk-OZJINN4O.js +84 -0
- package/node_modules/pi-lens/dist/chunk-PCHDGUKT.js +23 -0
- package/node_modules/pi-lens/dist/chunk-QOZXJ4NA.js +3364 -0
- package/node_modules/pi-lens/dist/chunk-QYF5S6P6.js +45 -0
- package/node_modules/pi-lens/dist/chunk-RJFED73B.js +79 -0
- package/node_modules/pi-lens/dist/chunk-RTQNRM5X.js +27 -0
- package/node_modules/pi-lens/dist/chunk-S6AMWKPC.js +189 -0
- package/node_modules/pi-lens/dist/chunk-T4QZ6FEH.js +308 -0
- package/node_modules/pi-lens/dist/chunk-T54VJRAD.js +5456 -0
- package/node_modules/pi-lens/dist/chunk-TA5L5KWQ.js +167 -0
- package/node_modules/pi-lens/dist/chunk-TQFBZVCG.js +27 -0
- package/node_modules/pi-lens/dist/chunk-U52SAGRM.js +62 -0
- package/node_modules/pi-lens/dist/chunk-UEAHAMEI.js +5814 -0
- package/node_modules/pi-lens/dist/chunk-UGSMCQ4D.js +327 -0
- package/node_modules/pi-lens/dist/chunk-UOPVJQ4N.js +103 -0
- package/node_modules/pi-lens/dist/chunk-USHG4DLH.js +459 -0
- package/node_modules/pi-lens/dist/chunk-UXVNL3D7.js +23 -0
- package/node_modules/pi-lens/dist/chunk-V5MEBST3.js +4139 -0
- package/node_modules/pi-lens/dist/chunk-VGEVL5EQ.js +29 -0
- package/node_modules/pi-lens/dist/chunk-VPWKF3GN.js +87 -0
- package/node_modules/pi-lens/dist/chunk-VSMJK3ZJ.js +1250 -0
- package/node_modules/pi-lens/dist/chunk-VYKKMYVT.js +560 -0
- package/node_modules/pi-lens/dist/chunk-VZHJS6DR.js +442 -0
- package/node_modules/pi-lens/dist/chunk-WATC3IQR.js +213 -0
- package/node_modules/pi-lens/dist/chunk-WPE5FPGR.js +54 -0
- package/node_modules/pi-lens/dist/chunk-WSEWKCXU.js +188 -0
- package/node_modules/pi-lens/dist/chunk-WW5BLB74.js +659 -0
- package/node_modules/pi-lens/dist/chunk-XGUL4SLQ.js +406 -0
- package/node_modules/pi-lens/dist/chunk-XHSCVSOL.js +170 -0
- package/node_modules/pi-lens/dist/chunk-XIMYZ3JA.js +27 -0
- package/node_modules/pi-lens/dist/chunk-YLN4K6WD.js +385 -0
- package/node_modules/pi-lens/dist/chunk-Z3CCVDUB.js +76 -0
- package/node_modules/pi-lens/dist/chunk-Z54ZSOBZ.js +61 -0
- package/node_modules/pi-lens/dist/chunk-Z6BB4JLQ.js +478 -0
- package/node_modules/pi-lens/dist/chunk-Z7QQA2KT.js +27 -0
- package/node_modules/pi-lens/dist/chunk-ZETYB3XG.js +2626 -0
- package/node_modules/pi-lens/dist/chunk-ZMOMPX2Z.js +87 -0
- package/node_modules/pi-lens/dist/chunk-ZOEYVXSV.js +149 -0
- package/node_modules/pi-lens/dist/chunk-ZZUFZUQZ.js +12120 -0
- package/node_modules/pi-lens/dist/index.js +39712 -29876
- package/node_modules/pi-lens/dist/mcp/analyze-cli.js +186 -232
- package/node_modules/pi-lens/dist/mcp/cli.js +137 -98
- package/node_modules/pi-lens/dist/mcp/server.js +22688 -1573
- package/node_modules/pi-lens/dist/mcp/worker.js +97 -38
- package/node_modules/pi-lens/dist/probes/installer.js +135 -0
- package/node_modules/pi-lens/dist/workers/project-snapshot-persist-worker.js +22 -0
- package/node_modules/pi-lens/dist/workers/review-graph-persist-worker.js +15 -0
- package/node_modules/pi-lens/docs/agent-guide.md +13 -4
- package/node_modules/pi-lens/docs/agent-tools.md +42 -0
- package/node_modules/pi-lens/docs/ast-grep_rules_catalog.md +5 -4
- package/node_modules/pi-lens/docs/configuration.md +28 -2
- package/node_modules/pi-lens/docs/custom-rules.md +25 -2
- package/node_modules/pi-lens/docs/environment-variables.md +86 -8
- package/node_modules/pi-lens/docs/features.md +45 -5
- package/node_modules/pi-lens/docs/globalconfig.md +2 -1
- package/node_modules/pi-lens/docs/io-bridge-v2-migration.md +94 -0
- package/node_modules/pi-lens/docs/lsp-capability-matrix.md +37 -4
- package/node_modules/pi-lens/docs/lsp-idle-eviction.md +124 -0
- package/node_modules/pi-lens/docs/mcp.md +21 -5
- package/node_modules/pi-lens/docs/merge-queue-rollout.md +77 -0
- package/node_modules/pi-lens/docs/pi-lens-fixer.md +160 -88
- package/node_modules/pi-lens/docs/pi-lens-investigator.md +74 -26
- package/node_modules/pi-lens/docs/pi-lens-merge-policy.md +736 -0
- package/node_modules/pi-lens/docs/pi-lens-monitor.md +75 -7
- package/node_modules/pi-lens/docs/pi-lens-retro.md +6 -4
- package/node_modules/pi-lens/docs/pi-lens-reviewer.md +189 -48
- package/node_modules/pi-lens/docs/pi-lens-subagent.md +246 -45
- package/node_modules/pi-lens/docs/pi-lens-warden.md +18 -7
- package/node_modules/pi-lens/docs/public-api-stability.md +55 -0
- package/node_modules/pi-lens/docs/release-qa-baseline.md +84 -17
- package/node_modules/pi-lens/docs/rfcs/3654-unified-io-bridge-v2.md +316 -0
- package/node_modules/pi-lens/docs/schema/pi-lens-config-v1.json +530 -0
- package/node_modules/pi-lens/docs/servercapabilities.md +56 -49
- package/node_modules/pi-lens/docs/settings.md +1 -0
- package/node_modules/pi-lens/docs/usage.md +5 -1
- package/node_modules/pi-lens/docs/word-index.md +6 -0
- package/node_modules/pi-lens/grammars/tree-sitter-bash.wasm +0 -0
- package/node_modules/pi-lens/grammars/tree-sitter-bash.wasm.json +3 -3
- package/node_modules/pi-lens/package.json +18 -6
- package/node_modules/pi-lens/rules/ast-grep-rules/rule-tests/advisory-registry-subset-test.yml +41 -0
- package/node_modules/pi-lens/rules/ast-grep-rules/rule-tests/no-identity-operator-on-literals-test.yml +12 -2
- package/node_modules/pi-lens/rules/ast-grep-rules/rule-tests/throw-new-error-js-test.yml +2 -0
- package/node_modules/pi-lens/rules/ast-grep-rules/rule-tests/throw-new-error-test.yml +2 -0
- package/node_modules/pi-lens/rules/ast-grep-rules/rules/advisory-registry-subset.yml +50 -0
- package/node_modules/pi-lens/rules/ast-grep-rules/rules/no-identity-operator-on-literals.yml +20 -12
- package/node_modules/pi-lens/rules/ast-grep-rules/rules/throw-new-error-js.yml +2 -2
- package/node_modules/pi-lens/rules/ast-grep-rules/rules/throw-new-error.yml +2 -2
- package/node_modules/pi-lens/scripts/analyze-pi-lens-logs.mjs +1275 -62
- package/node_modules/pi-lens/scripts/download-grammars.js +5 -0
- package/node_modules/pi-lens/scripts/grammars.lock.json +6 -1
- package/node_modules/pi-lens/scripts/install-selftest.mjs +33 -34
- package/node_modules/pi-lens/scripts/lib/host-provided-deps.mjs +13 -4
- package/node_modules/pi-lens/scripts/lib/web-tree-sitter-dir.mjs +18 -0
- package/node_modules/pi-web-access/CHANGELOG.md +28 -0
- package/node_modules/pi-web-access/README.md +10 -6
- package/node_modules/pi-web-access/ceramic.ts +219 -0
- package/node_modules/pi-web-access/curator-page.ts +3 -1
- package/node_modules/pi-web-access/curator-server.ts +1 -0
- package/node_modules/pi-web-access/dist/index.js +846 -588
- package/node_modules/pi-web-access/dist/mcp-cli.js +725 -516
- package/node_modules/pi-web-access/gemini-search.ts +8 -4
- package/node_modules/pi-web-access/github-extract.ts +34 -2
- package/node_modules/pi-web-access/index.ts +72 -30
- package/node_modules/pi-web-access/openai-search.ts +3 -3
- package/node_modules/pi-web-access/package.json +2 -2
- package/node_modules/pi-web-access/page-query.ts +6 -9
- package/node_modules/pi-web-access/parallel-mcp.ts +2 -0
- package/node_modules/pi-web-access/query-rewrite.ts +2 -2
- package/node_modules/pi-web-access/storage.ts +49 -0
- package/node_modules/pi-web-access/summary-review.ts +7 -6
- package/node_modules/pi-web-access/utils.ts +21 -6
- package/node_modules/pi-web-access/web-tool-core.ts +1 -0
- package/package.json +19 -19
- package/node_modules/@dietrichgebert/ponytail/README.es.md +0 -212
- package/node_modules/@dietrichgebert/ponytail/README.ja.md +0 -212
- package/node_modules/@dietrichgebert/ponytail/README.ko.md +0 -212
- package/node_modules/@dietrichgebert/ponytail/README.zh-CN.md +0 -212
- package/node_modules/pi-lens/dist/clients/actionable-warnings-logger.js +0 -35
- package/node_modules/pi-lens/dist/clients/actionable-warnings.js +0 -1610
- package/node_modules/pi-lens/dist/clients/advisory-provenance.js +0 -593
- package/node_modules/pi-lens/dist/clients/agent-behavior-client.js +0 -147
- package/node_modules/pi-lens/dist/clients/agent-nudge.js +0 -325
- package/node_modules/pi-lens/dist/clients/analysed-root.js +0 -1
- package/node_modules/pi-lens/dist/clients/ast-grep-client.js +0 -731
- package/node_modules/pi-lens/dist/clients/ast-grep-rule-manager.js +0 -146
- package/node_modules/pi-lens/dist/clients/ast-grep-tool-logger.js +0 -118
- package/node_modules/pi-lens/dist/clients/ast-grep-types.js +0 -10
- package/node_modules/pi-lens/dist/clients/ast-grep-yaml-synth.js +0 -154
- package/node_modules/pi-lens/dist/clients/atomic-write-staging.js +0 -75
- package/node_modules/pi-lens/dist/clients/atomic-write.js +0 -189
- package/node_modules/pi-lens/dist/clients/availability-probe-flight.js +0 -12
- package/node_modules/pi-lens/dist/clients/bash-file-access.js +0 -1056
- package/node_modules/pi-lens/dist/clients/biome-client.js +0 -357
- package/node_modules/pi-lens/dist/clients/blocker-freshness.js +0 -837
- package/node_modules/pi-lens/dist/clients/blocker-past-eof.js +0 -129
- package/node_modules/pi-lens/dist/clients/bootstrap.js +0 -569
- package/node_modules/pi-lens/dist/clients/bounded-cache.js +0 -190
- package/node_modules/pi-lens/dist/clients/bounded-pid-file-lock.js +0 -202
- package/node_modules/pi-lens/dist/clients/bounded-telemetry.js +0 -295
- package/node_modules/pi-lens/dist/clients/build-identity.js +0 -95
- package/node_modules/pi-lens/dist/clients/bundled-resource-health.js +0 -113
- package/node_modules/pi-lens/dist/clients/bus-events-logger.js +0 -105
- package/node_modules/pi-lens/dist/clients/bus-publish.js +0 -171
- package/node_modules/pi-lens/dist/clients/cache/rule-cache.js +0 -190
- package/node_modules/pi-lens/dist/clients/cache-manager.js +0 -524
- package/node_modules/pi-lens/dist/clients/cache-observability.js +0 -1313
- package/node_modules/pi-lens/dist/clients/call-graph.js +0 -852
- package/node_modules/pi-lens/dist/clients/cargo-manifest.js +0 -422
- package/node_modules/pi-lens/dist/clients/cascade-budget.js +0 -196
- package/node_modules/pi-lens/dist/clients/cascade-format.js +0 -315
- package/node_modules/pi-lens/dist/clients/cascade-logger.js +0 -31
- package/node_modules/pi-lens/dist/clients/cascade-types.js +0 -9
- package/node_modules/pi-lens/dist/clients/child-unref.js +0 -124
- package/node_modules/pi-lens/dist/clients/code-quality-warnings.js +0 -286
- package/node_modules/pi-lens/dist/clients/codebase-model.js +0 -173
- package/node_modules/pi-lens/dist/clients/collateral-test-role.js +0 -40
- package/node_modules/pi-lens/dist/clients/complexity-client.js +0 -462
- package/node_modules/pi-lens/dist/clients/config-core/deny.js +0 -221
- package/node_modules/pi-lens/dist/clients/config-core/index.js +0 -50
- package/node_modules/pi-lens/dist/clients/config-core/merge.js +0 -357
- package/node_modules/pi-lens/dist/clients/config-core/normalize.js +0 -340
- package/node_modules/pi-lens/dist/clients/config-core/process-spec.js +0 -248
- package/node_modules/pi-lens/dist/clients/config-core/provenance.js +0 -164
- package/node_modules/pi-lens/dist/clients/config-core/records.js +0 -218
- package/node_modules/pi-lens/dist/clients/config-core/resolve.js +0 -125
- package/node_modules/pi-lens/dist/clients/config-core/safe-object.js +0 -78
- package/node_modules/pi-lens/dist/clients/config-core/schema.js +0 -165
- package/node_modules/pi-lens/dist/clients/config-diagnostic-codes.js +0 -285
- package/node_modules/pi-lens/dist/clients/config-locations.js +0 -388
- package/node_modules/pi-lens/dist/clients/config-resolve.js +0 -798
- package/node_modules/pi-lens/dist/clients/config-schema.js +0 -251
- package/node_modules/pi-lens/dist/clients/config-warn.js +0 -407
- package/node_modules/pi-lens/dist/clients/console-guard-install.js +0 -26
- package/node_modules/pi-lens/dist/clients/cooperative-budget.js +0 -42
- package/node_modules/pi-lens/dist/clients/dead-code-client.js +0 -510
- package/node_modules/pi-lens/dist/clients/dead-code-logger.js +0 -30
- package/node_modules/pi-lens/dist/clients/deadline-utils.js +0 -280
- package/node_modules/pi-lens/dist/clients/debug-handles.js +0 -211
- package/node_modules/pi-lens/dist/clients/debug-heap.js +0 -174
- package/node_modules/pi-lens/dist/clients/deferred-lsp-work.js +0 -106
- package/node_modules/pi-lens/dist/clients/degradation-ledger.js +0 -426
- package/node_modules/pi-lens/dist/clients/demoted-finding-render.js +0 -169
- package/node_modules/pi-lens/dist/clients/dependency-checker.js +0 -885
- package/node_modules/pi-lens/dist/clients/deps/ast-grep-napi.js +0 -22
- package/node_modules/pi-lens/dist/clients/deps/js-yaml.js +0 -9
- package/node_modules/pi-lens/dist/clients/deps/minimatch.js +0 -4
- package/node_modules/pi-lens/dist/clients/deps/pi-tui.js +0 -14
- package/node_modules/pi-lens/dist/clients/deps/typebox.js +0 -14
- package/node_modules/pi-lens/dist/clients/deps/vscode-jsonrpc.js +0 -1
- package/node_modules/pi-lens/dist/clients/deps/web-tree-sitter.js +0 -24
- package/node_modules/pi-lens/dist/clients/diagnostic-dispositions.js +0 -630
- package/node_modules/pi-lens/dist/clients/diagnostic-line-freshness.js +0 -305
- package/node_modules/pi-lens/dist/clients/diagnostic-logger.js +0 -73
- package/node_modules/pi-lens/dist/clients/diagnostic-tracker.js +0 -105
- package/node_modules/pi-lens/dist/clients/diagnostics-publish.js +0 -230
- package/node_modules/pi-lens/dist/clients/dispatch/ast-grep-catalog.js +0 -65
- package/node_modules/pi-lens/dist/clients/dispatch/auxiliary-lsp.js +0 -343
- package/node_modules/pi-lens/dist/clients/dispatch/collect-later-tier.js +0 -35
- package/node_modules/pi-lens/dist/clients/dispatch/diagnostic-taxonomy.js +0 -66
- package/node_modules/pi-lens/dist/clients/dispatch/dispatcher.js +0 -1269
- package/node_modules/pi-lens/dist/clients/dispatch/fact-provider-types.js +0 -1
- package/node_modules/pi-lens/dist/clients/dispatch/fact-rule-runner.js +0 -17
- package/node_modules/pi-lens/dist/clients/dispatch/fact-runner.js +0 -30
- package/node_modules/pi-lens/dist/clients/dispatch/fact-scheduler.js +0 -68
- package/node_modules/pi-lens/dist/clients/dispatch/fact-store.js +0 -377
- package/node_modules/pi-lens/dist/clients/dispatch/facts/comment-facts.js +0 -22
- package/node_modules/pi-lens/dist/clients/dispatch/facts/file-content.js +0 -19
- package/node_modules/pi-lens/dist/clients/dispatch/facts/function-facts.js +0 -348
- package/node_modules/pi-lens/dist/clients/dispatch/facts/import-facts.js +0 -204
- package/node_modules/pi-lens/dist/clients/dispatch/facts/tree-sitter-facts.js +0 -34
- package/node_modules/pi-lens/dist/clients/dispatch/facts/try-catch-facts.js +0 -119
- package/node_modules/pi-lens/dist/clients/dispatch/finding-policy.js +0 -339
- package/node_modules/pi-lens/dist/clients/dispatch/indent-detect.js +0 -417
- package/node_modules/pi-lens/dist/clients/dispatch/inline-suppressions.js +0 -89
- package/node_modules/pi-lens/dist/clients/dispatch/integration.js +0 -2377
- package/node_modules/pi-lens/dist/clients/dispatch/lazy.js +0 -11
- package/node_modules/pi-lens/dist/clients/dispatch/pending-runner-findings.js +0 -87
- package/node_modules/pi-lens/dist/clients/dispatch/plan.js +0 -278
- package/node_modules/pi-lens/dist/clients/dispatch/priorities.js +0 -20
- package/node_modules/pi-lens/dist/clients/dispatch/rule-id-normalize.js +0 -50
- package/node_modules/pi-lens/dist/clients/dispatch/rule-ignores.js +0 -69
- package/node_modules/pi-lens/dist/clients/dispatch/rule-policy.js +0 -135
- package/node_modules/pi-lens/dist/clients/dispatch/rules/async-noise.js +0 -40
- package/node_modules/pi-lens/dist/clients/dispatch/rules/async-unnecessary-wrapper.js +0 -27
- package/node_modules/pi-lens/dist/clients/dispatch/rules/cors-wildcard.js +0 -54
- package/node_modules/pi-lens/dist/clients/dispatch/rules/error-obscuring.js +0 -32
- package/node_modules/pi-lens/dist/clients/dispatch/rules/error-swallowing.js +0 -31
- package/node_modules/pi-lens/dist/clients/dispatch/rules/framework-call-noise.js +0 -67
- package/node_modules/pi-lens/dist/clients/dispatch/rules/high-complexity.js +0 -72
- package/node_modules/pi-lens/dist/clients/dispatch/rules/high-fan-out.js +0 -74
- package/node_modules/pi-lens/dist/clients/dispatch/rules/high-import-coupling.js +0 -37
- package/node_modules/pi-lens/dist/clients/dispatch/rules/missing-error-propagation.js +0 -62
- package/node_modules/pi-lens/dist/clients/dispatch/rules/no-commented-credentials.js +0 -52
- package/node_modules/pi-lens/dist/clients/dispatch/rules/pass-through-wrappers.js +0 -42
- package/node_modules/pi-lens/dist/clients/dispatch/rules/placeholder-comments.js +0 -40
- package/node_modules/pi-lens/dist/clients/dispatch/rules/unsafe-boundary.js +0 -126
- package/node_modules/pi-lens/dist/clients/dispatch/runner-context.js +0 -52
- package/node_modules/pi-lens/dist/clients/dispatch/runners/actionlint.js +0 -111
- package/node_modules/pi-lens/dist/clients/dispatch/runners/ast-grep-napi.js +0 -1196
- package/node_modules/pi-lens/dist/clients/dispatch/runners/biome-check.js +0 -296
- package/node_modules/pi-lens/dist/clients/dispatch/runners/cpp-check.js +0 -219
- package/node_modules/pi-lens/dist/clients/dispatch/runners/credo.js +0 -82
- package/node_modules/pi-lens/dist/clients/dispatch/runners/cue-vet.js +0 -416
- package/node_modules/pi-lens/dist/clients/dispatch/runners/dart-analyze.js +0 -183
- package/node_modules/pi-lens/dist/clients/dispatch/runners/detekt.js +0 -176
- package/node_modules/pi-lens/dist/clients/dispatch/runners/dotnet-build.js +0 -164
- package/node_modules/pi-lens/dist/clients/dispatch/runners/elixir-check.js +0 -195
- package/node_modules/pi-lens/dist/clients/dispatch/runners/eslint.js +0 -137
- package/node_modules/pi-lens/dist/clients/dispatch/runners/fact-rules.js +0 -29
- package/node_modules/pi-lens/dist/clients/dispatch/runners/fish-indent.js +0 -69
- package/node_modules/pi-lens/dist/clients/dispatch/runners/gleam-check.js +0 -167
- package/node_modules/pi-lens/dist/clients/dispatch/runners/go-vet.js +0 -104
- package/node_modules/pi-lens/dist/clients/dispatch/runners/golangci-lint.js +0 -135
- package/node_modules/pi-lens/dist/clients/dispatch/runners/hadolint.js +0 -91
- package/node_modules/pi-lens/dist/clients/dispatch/runners/helm-lint.js +0 -171
- package/node_modules/pi-lens/dist/clients/dispatch/runners/helm-render.js +0 -940
- package/node_modules/pi-lens/dist/clients/dispatch/runners/htmlhint.js +0 -117
- package/node_modules/pi-lens/dist/clients/dispatch/runners/index.js +0 -108
- package/node_modules/pi-lens/dist/clients/dispatch/runners/javac.js +0 -99
- package/node_modules/pi-lens/dist/clients/dispatch/runners/ktlint.js +0 -110
- package/node_modules/pi-lens/dist/clients/dispatch/runners/lsp.js +0 -379
- package/node_modules/pi-lens/dist/clients/dispatch/runners/markdownlint.js +0 -167
- package/node_modules/pi-lens/dist/clients/dispatch/runners/mypy.js +0 -102
- package/node_modules/pi-lens/dist/clients/dispatch/runners/oxlint.js +0 -414
- package/node_modules/pi-lens/dist/clients/dispatch/runners/php-lint.js +0 -85
- package/node_modules/pi-lens/dist/clients/dispatch/runners/phpstan.js +0 -120
- package/node_modules/pi-lens/dist/clients/dispatch/runners/prisma-validate.js +0 -62
- package/node_modules/pi-lens/dist/clients/dispatch/runners/psscriptanalyzer.js +0 -445
- package/node_modules/pi-lens/dist/clients/dispatch/runners/pyright.js +0 -169
- package/node_modules/pi-lens/dist/clients/dispatch/runners/rubocop.js +0 -99
- package/node_modules/pi-lens/dist/clients/dispatch/runners/ruff.js +0 -88
- package/node_modules/pi-lens/dist/clients/dispatch/runners/rust-clippy.js +0 -256
- package/node_modules/pi-lens/dist/clients/dispatch/runners/shellcheck.js +0 -173
- package/node_modules/pi-lens/dist/clients/dispatch/runners/shfmt.js +0 -102
- package/node_modules/pi-lens/dist/clients/dispatch/runners/spellcheck.js +0 -128
- package/node_modules/pi-lens/dist/clients/dispatch/runners/spotbugs.js +0 -259
- package/node_modules/pi-lens/dist/clients/dispatch/runners/sqlfluff.js +0 -183
- package/node_modules/pi-lens/dist/clients/dispatch/runners/stylelint.js +0 -166
- package/node_modules/pi-lens/dist/clients/dispatch/runners/swiftlint.js +0 -163
- package/node_modules/pi-lens/dist/clients/dispatch/runners/taplo.js +0 -174
- package/node_modules/pi-lens/dist/clients/dispatch/runners/terragrunt.js +0 -168
- package/node_modules/pi-lens/dist/clients/dispatch/runners/tflint.js +0 -125
- package/node_modules/pi-lens/dist/clients/dispatch/runners/tree-sitter.js +0 -643
- package/node_modules/pi-lens/dist/clients/dispatch/runners/trivy-config.js +0 -253
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/availability-policy.js +0 -496
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/candidate-probe.js +0 -90
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/diagnostic-parsers.js +0 -95
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/lazy-installer.js +0 -274
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/runner-helpers.js +0 -1701
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/spawn-outcome.js +0 -101
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/tool-failure.js +0 -235
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/toolchain-availability.js +0 -169
- package/node_modules/pi-lens/dist/clients/dispatch/runners/utils.js +0 -15
- package/node_modules/pi-lens/dist/clients/dispatch/runners/vale.js +0 -128
- package/node_modules/pi-lens/dist/clients/dispatch/runners/yaml-rule-parser.js +0 -242
- package/node_modules/pi-lens/dist/clients/dispatch/runners/yamllint.js +0 -95
- package/node_modules/pi-lens/dist/clients/dispatch/runners/zig-check.js +0 -79
- package/node_modules/pi-lens/dist/clients/dispatch/suppress-writer.js +0 -79
- package/node_modules/pi-lens/dist/clients/dispatch/tool-profile.js +0 -30
- package/node_modules/pi-lens/dist/clients/dispatch/types.js +0 -21
- package/node_modules/pi-lens/dist/clients/dispatch/utils/format-utils.js +0 -45
- package/node_modules/pi-lens/dist/clients/dispatch/utils/lsp-diagnostics.js +0 -35
- package/node_modules/pi-lens/dist/clients/disposition-logger.js +0 -32
- package/node_modules/pi-lens/dist/clients/disposition-publish.js +0 -124
- package/node_modules/pi-lens/dist/clients/durable-store.js +0 -97
- package/node_modules/pi-lens/dist/clients/effective-config.js +0 -415
- package/node_modules/pi-lens/dist/clients/env-utils.js +0 -83
- package/node_modules/pi-lens/dist/clients/error-class.js +0 -23
- package/node_modules/pi-lens/dist/clients/eval-timestamp.js +0 -17
- package/node_modules/pi-lens/dist/clients/event-loop-hold.js +0 -274
- package/node_modules/pi-lens/dist/clients/event-loop-monitor.js +0 -250
- package/node_modules/pi-lens/dist/clients/extension-log.js +0 -504
- package/node_modules/pi-lens/dist/clients/extension-mode.js +0 -73
- package/node_modules/pi-lens/dist/clients/feature-hints.js +0 -103
- package/node_modules/pi-lens/dist/clients/file-kinds.js +0 -412
- package/node_modules/pi-lens/dist/clients/file-role.js +0 -134
- package/node_modules/pi-lens/dist/clients/file-time.js +0 -160
- package/node_modules/pi-lens/dist/clients/file-utils.js +0 -1032
- package/node_modules/pi-lens/dist/clients/finding-delivery-gate.js +0 -494
- package/node_modules/pi-lens/dist/clients/finding-identity.js +0 -88
- package/node_modules/pi-lens/dist/clients/fix-worklog.js +0 -103
- package/node_modules/pi-lens/dist/clients/format-events-publish.js +0 -343
- package/node_modules/pi-lens/dist/clients/format-service.js +0 -222
- package/node_modules/pi-lens/dist/clients/formatters-lazy.js +0 -9
- package/node_modules/pi-lens/dist/clients/formatters.js +0 -2032
- package/node_modules/pi-lens/dist/clients/freshness-cadence.js +0 -17
- package/node_modules/pi-lens/dist/clients/freshness.js +0 -38
- package/node_modules/pi-lens/dist/clients/generated-artifacts.js +0 -394
- package/node_modules/pi-lens/dist/clients/generation-guard.js +0 -215
- package/node_modules/pi-lens/dist/clients/git-guard.js +0 -1136
- package/node_modules/pi-lens/dist/clients/git-tracked-ignore.js +0 -243
- package/node_modules/pi-lens/dist/clients/gitleaks-client.js +0 -509
- package/node_modules/pi-lens/dist/clients/go-client.js +0 -104
- package/node_modules/pi-lens/dist/clients/govulncheck-client.js +0 -605
- package/node_modules/pi-lens/dist/clients/gradle-ktfmt-style.js +0 -348
- package/node_modules/pi-lens/dist/clients/grammar-source.js +0 -465
- package/node_modules/pi-lens/dist/clients/gzip-stage-write.js +0 -135
- package/node_modules/pi-lens/dist/clients/hashline-anchor.js +0 -424
- package/node_modules/pi-lens/dist/clients/hook-budgets.js +0 -76
- package/node_modules/pi-lens/dist/clients/host-edit-normalize.js +0 -140
- package/node_modules/pi-lens/dist/clients/host-ports.js +0 -39
- package/node_modules/pi-lens/dist/clients/indent-retarget.js +0 -154
- package/node_modules/pi-lens/dist/clients/inline-blocker-dispositions.js +0 -186
- package/node_modules/pi-lens/dist/clients/install-diagnostics.js +0 -156
- package/node_modules/pi-lens/dist/clients/installer/index.js +0 -5416
- package/node_modules/pi-lens/dist/clients/installer/managed-tool-refresh-session.js +0 -58
- package/node_modules/pi-lens/dist/clients/installer/managed-tool-refresh.js +0 -783
- package/node_modules/pi-lens/dist/clients/instance-reaper-state.js +0 -7
- package/node_modules/pi-lens/dist/clients/instance-reaper.js +0 -1137
- package/node_modules/pi-lens/dist/clients/instance-registry-lock.js +0 -145
- package/node_modules/pi-lens/dist/clients/instance-registry.js +0 -773
- package/node_modules/pi-lens/dist/clients/jscpd-client.js +0 -378
- package/node_modules/pi-lens/dist/clients/json-cache-read.js +0 -65
- package/node_modules/pi-lens/dist/clients/knip-client.js +0 -788
- package/node_modules/pi-lens/dist/clients/language-policy.js +0 -252
- package/node_modules/pi-lens/dist/clients/language-profile.js +0 -361
- package/node_modules/pi-lens/dist/clients/language-registry.js +0 -603
- package/node_modules/pi-lens/dist/clients/latency-logger.js +0 -727
- package/node_modules/pi-lens/dist/clients/lazy-import.js +0 -21
- package/node_modules/pi-lens/dist/clients/ledger-bounds.js +0 -54
- package/node_modules/pi-lens/dist/clients/lens-config.js +0 -404
- package/node_modules/pi-lens/dist/clients/lens-engine.js +0 -358
- package/node_modules/pi-lens/dist/clients/lens-events.js +0 -125
- package/node_modules/pi-lens/dist/clients/lens-flag-registry.js +0 -467
- package/node_modules/pi-lens/dist/clients/lens-map.js +0 -1156
- package/node_modules/pi-lens/dist/clients/live-bus-emitter.js +0 -74
- package/node_modules/pi-lens/dist/clients/log-cleanup.js +0 -222
- package/node_modules/pi-lens/dist/clients/lsp/aggregation.js +0 -178
- package/node_modules/pi-lens/dist/clients/lsp/cascade-tier.js +0 -421
- package/node_modules/pi-lens/dist/clients/lsp/client.js +0 -4593
- package/node_modules/pi-lens/dist/clients/lsp/config.js +0 -691
- package/node_modules/pi-lens/dist/clients/lsp/content-limits.js +0 -41
- package/node_modules/pi-lens/dist/clients/lsp/diagnostic-binding.js +0 -225
- package/node_modules/pi-lens/dist/clients/lsp/document-drift.js +0 -467
- package/node_modules/pi-lens/dist/clients/lsp/edits.js +0 -1219
- package/node_modules/pi-lens/dist/clients/lsp/index.js +0 -8305
- package/node_modules/pi-lens/dist/clients/lsp/inferred-project.js +0 -216
- package/node_modules/pi-lens/dist/clients/lsp/jvm-runtime.js +0 -298
- package/node_modules/pi-lens/dist/clients/lsp/language.js +0 -63
- package/node_modules/pi-lens/dist/clients/lsp/launch.js +0 -746
- package/node_modules/pi-lens/dist/clients/lsp/lombok.js +0 -158
- package/node_modules/pi-lens/dist/clients/lsp/path-utils.js +0 -5
- package/node_modules/pi-lens/dist/clients/lsp/pending-aux-coverage.js +0 -251
- package/node_modules/pi-lens/dist/clients/lsp/position-encoding.js +0 -61
- package/node_modules/pi-lens/dist/clients/lsp/ruby-drive-dirs.js +0 -83
- package/node_modules/pi-lens/dist/clients/lsp/server.js +0 -3290
- package/node_modules/pi-lens/dist/clients/lsp/session-roots.js +0 -192
- package/node_modules/pi-lens/dist/clients/lsp/spawn-history.js +0 -17
- package/node_modules/pi-lens/dist/clients/lsp/sync-kind.js +0 -56
- package/node_modules/pi-lens/dist/clients/lsp/tsserver-sync.js +0 -332
- package/node_modules/pi-lens/dist/clients/lsp/wait-policy/capability-snapshot.js +0 -1
- package/node_modules/pi-lens/dist/clients/lsp/wait-policy/classification.js +0 -85
- package/node_modules/pi-lens/dist/clients/lsp/wait-policy/index.js +0 -10
- package/node_modules/pi-lens/dist/clients/lsp/wait-policy/strategies.js +0 -392
- package/node_modules/pi-lens/dist/clients/lsp/watch-queue.js +0 -61
- package/node_modules/pi-lens/dist/clients/lsp/workspace-diagnostics-cache.js +0 -639
- package/node_modules/pi-lens/dist/clients/lsp/workspace-diagnostics-session.js +0 -30
- package/node_modules/pi-lens/dist/clients/lsp/workspace-sweep-hold.js +0 -184
- package/node_modules/pi-lens/dist/clients/lsp-budget.js +0 -186
- package/node_modules/pi-lens/dist/clients/lsp-document-symbols.js +0 -110
- package/node_modules/pi-lens/dist/clients/lsp-lazy.js +0 -9
- package/node_modules/pi-lens/dist/clients/lsp-mutation.js +0 -396
- package/node_modules/pi-lens/dist/clients/lsp-status.js +0 -59
- package/node_modules/pi-lens/dist/clients/map-with-concurrency.js +0 -40
- package/node_modules/pi-lens/dist/clients/mcp/analyze.js +0 -420
- package/node_modules/pi-lens/dist/clients/mcp/host-shim.js +0 -31
- package/node_modules/pi-lens/dist/clients/mcp/ipc.js +0 -523
- package/node_modules/pi-lens/dist/clients/mcp/review.js +0 -197
- package/node_modules/pi-lens/dist/clients/mcp/session.js +0 -412
- package/node_modules/pi-lens/dist/clients/memory-sampler.js +0 -208
- package/node_modules/pi-lens/dist/clients/message-end-attribution.js +0 -30
- package/node_modules/pi-lens/dist/clients/metrics-client.js +0 -107
- package/node_modules/pi-lens/dist/clients/metrics-history.js +0 -327
- package/node_modules/pi-lens/dist/clients/middle-man-analysis.js +0 -263
- package/node_modules/pi-lens/dist/clients/model-provider.js +0 -53
- package/node_modules/pi-lens/dist/clients/module-report-lsp.js +0 -189
- package/node_modules/pi-lens/dist/clients/module-report.js +0 -2150
- package/node_modules/pi-lens/dist/clients/mutating-tool.js +0 -651
- package/node_modules/pi-lens/dist/clients/mutation-attribution.js +0 -368
- package/node_modules/pi-lens/dist/clients/mutation-bridge.js +0 -240
- package/node_modules/pi-lens/dist/clients/ndjson-logger.js +0 -734
- package/node_modules/pi-lens/dist/clients/observed-mutation-sources.js +0 -101
- package/node_modules/pi-lens/dist/clients/observed-mutation.js +0 -1253
- package/node_modules/pi-lens/dist/clients/oldtext-autopatch.js +0 -128
- package/node_modules/pi-lens/dist/clients/opaque-mutation-scan.js +0 -496
- package/node_modules/pi-lens/dist/clients/opengrep-client.js +0 -333
- package/node_modules/pi-lens/dist/clients/opengrep-config.js +0 -76
- package/node_modules/pi-lens/dist/clients/package-manager.js +0 -607
- package/node_modules/pi-lens/dist/clients/package-root.js +0 -38
- package/node_modules/pi-lens/dist/clients/partial-edit-apply.js +0 -439
- package/node_modules/pi-lens/dist/clients/path-attribution-telemetry.js +0 -43
- package/node_modules/pi-lens/dist/clients/path-keyed-map.js +0 -108
- package/node_modules/pi-lens/dist/clients/path-utils.js +0 -1244
- package/node_modules/pi-lens/dist/clients/performance-report.js +0 -331
- package/node_modules/pi-lens/dist/clients/persist-debounce.js +0 -70
- package/node_modules/pi-lens/dist/clients/persistent-reverify.js +0 -271
- package/node_modules/pi-lens/dist/clients/php-cs-fixer-config.js +0 -119
- package/node_modules/pi-lens/dist/clients/pipeline.js +0 -1480
- package/node_modules/pi-lens/dist/clients/post-autofix-notice.js +0 -37
- package/node_modules/pi-lens/dist/clients/print-mode.js +0 -21
- package/node_modules/pi-lens/dist/clients/probe-home-state.js +0 -228
- package/node_modules/pi-lens/dist/clients/process-bridge.js +0 -66
- package/node_modules/pi-lens/dist/clients/process-singletons.js +0 -210
- package/node_modules/pi-lens/dist/clients/process-snapshot.js +0 -68
- package/node_modules/pi-lens/dist/clients/project-changes.js +0 -181
- package/node_modules/pi-lens/dist/clients/project-conventions.js +0 -171
- package/node_modules/pi-lens/dist/clients/project-diagnostics/cache.js +0 -137
- package/node_modules/pi-lens/dist/clients/project-diagnostics/extractors.js +0 -109
- package/node_modules/pi-lens/dist/clients/project-diagnostics/fresh-fetch.js +0 -668
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/call-graph-impact.js +0 -118
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/dead-code.js +0 -47
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/gitleaks.js +0 -40
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/govulncheck.js +0 -34
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/jscpd.js +0 -38
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/knip.js +0 -47
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/madge.js +0 -48
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/opengrep.js +0 -40
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/runner-findings.js +0 -127
- package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/trivy.js +0 -81
- package/node_modules/pi-lens/dist/clients/project-diagnostics/scanner.js +0 -520
- package/node_modules/pi-lens/dist/clients/project-diagnostics/types.js +0 -1
- package/node_modules/pi-lens/dist/clients/project-lens-config.js +0 -807
- package/node_modules/pi-lens/dist/clients/project-report.js +0 -701
- package/node_modules/pi-lens/dist/clients/project-scale.js +0 -237
- package/node_modules/pi-lens/dist/clients/project-scan-policy.js +0 -11
- package/node_modules/pi-lens/dist/clients/project-snapshot-fingerprint.js +0 -48
- package/node_modules/pi-lens/dist/clients/project-snapshot-persist-worker.js +0 -20
- package/node_modules/pi-lens/dist/clients/project-snapshot.js +0 -1653
- package/node_modules/pi-lens/dist/clients/project-trust.js +0 -181
- package/node_modules/pi-lens/dist/clients/python-environment.js +0 -217
- package/node_modules/pi-lens/dist/clients/python-provenance.js +0 -639
- package/node_modules/pi-lens/dist/clients/quiet-window-config.js +0 -47
- package/node_modules/pi-lens/dist/clients/quiet-window.js +0 -236
- package/node_modules/pi-lens/dist/clients/read-bridge.js +0 -139
- package/node_modules/pi-lens/dist/clients/read-expansion.js +0 -266
- package/node_modules/pi-lens/dist/clients/read-guard-logger.js +0 -251
- package/node_modules/pi-lens/dist/clients/read-guard-tool-lines.js +0 -1306
- package/node_modules/pi-lens/dist/clients/read-guard.js +0 -1561
- package/node_modules/pi-lens/dist/clients/recent-touches.js +0 -240
- package/node_modules/pi-lens/dist/clients/redact/secrets.js +0 -449
- package/node_modules/pi-lens/dist/clients/resource-sampler.js +0 -628
- package/node_modules/pi-lens/dist/clients/reverse-deps.js +0 -270
- package/node_modules/pi-lens/dist/clients/review-graph/builder.js +0 -5126
- package/node_modules/pi-lens/dist/clients/review-graph/format.js +0 -33
- package/node_modules/pi-lens/dist/clients/review-graph/git-identity.js +0 -163
- package/node_modules/pi-lens/dist/clients/review-graph/import-resolvers.js +0 -481
- package/node_modules/pi-lens/dist/clients/review-graph/persist-worker.js +0 -10
- package/node_modules/pi-lens/dist/clients/review-graph/query.js +0 -244
- package/node_modules/pi-lens/dist/clients/review-graph/revision-drift.js +0 -21
- package/node_modules/pi-lens/dist/clients/review-graph/service.js +0 -96
- package/node_modules/pi-lens/dist/clients/review-graph/shared-extraction-ir.js +0 -82
- package/node_modules/pi-lens/dist/clients/review-graph/symbol-id.js +0 -103
- package/node_modules/pi-lens/dist/clients/review-graph/tsconfig-paths.js +0 -299
- package/node_modules/pi-lens/dist/clients/review-graph/types.js +0 -1
- package/node_modules/pi-lens/dist/clients/review-graph/workspace-modules.js +0 -449
- package/node_modules/pi-lens/dist/clients/review-graph-logger.js +0 -81
- package/node_modules/pi-lens/dist/clients/ruff-client.js +0 -179
- package/node_modules/pi-lens/dist/clients/rules-scanner.js +0 -131
- package/node_modules/pi-lens/dist/clients/run-duration.js +0 -55
- package/node_modules/pi-lens/dist/clients/runtime-agent-end.js +0 -746
- package/node_modules/pi-lens/dist/clients/runtime-config.js +0 -77
- package/node_modules/pi-lens/dist/clients/runtime-context.js +0 -211
- package/node_modules/pi-lens/dist/clients/runtime-coordinator.js +0 -1324
- package/node_modules/pi-lens/dist/clients/runtime-session.js +0 -2485
- package/node_modules/pi-lens/dist/clients/runtime-tool-call.js +0 -1295
- package/node_modules/pi-lens/dist/clients/runtime-tool-result.js +0 -2049
- package/node_modules/pi-lens/dist/clients/runtime-turn.js +0 -3767
- package/node_modules/pi-lens/dist/clients/rust-client.js +0 -97
- package/node_modules/pi-lens/dist/clients/safe-spawn.js +0 -2357
- package/node_modules/pi-lens/dist/clients/sanitize.js +0 -286
- package/node_modules/pi-lens/dist/clients/scan-utils.js +0 -25
- package/node_modules/pi-lens/dist/clients/scratch-tree-policy.js +0 -165
- package/node_modules/pi-lens/dist/clients/search-read-registration.js +0 -94
- package/node_modules/pi-lens/dist/clients/secret-findings.js +0 -114
- package/node_modules/pi-lens/dist/clients/security-scan-client.js +0 -352
- package/node_modules/pi-lens/dist/clients/session-event-guard.js +0 -297
- package/node_modules/pi-lens/dist/clients/session-lifecycle.js +0 -484
- package/node_modules/pi-lens/dist/clients/session-start-observability.js +0 -94
- package/node_modules/pi-lens/dist/clients/session-state-store.js +0 -101
- package/node_modules/pi-lens/dist/clients/session-summary.js +0 -15
- package/node_modules/pi-lens/dist/clients/sessionstart-logger.js +0 -27
- package/node_modules/pi-lens/dist/clients/sg-runner.js +0 -876
- package/node_modules/pi-lens/dist/clients/sgconfig.js +0 -347
- package/node_modules/pi-lens/dist/clients/shared-checkout-guard.js +0 -338
- package/node_modules/pi-lens/dist/clients/single-flight.js +0 -158
- package/node_modules/pi-lens/dist/clients/situational-tool-telemetry.js +0 -108
- package/node_modules/pi-lens/dist/clients/skills-resolver.js +0 -141
- package/node_modules/pi-lens/dist/clients/slow-fs.js +0 -138
- package/node_modules/pi-lens/dist/clients/smells-rollup.js +0 -231
- package/node_modules/pi-lens/dist/clients/source-filter.js +0 -596
- package/node_modules/pi-lens/dist/clients/source-walker.js +0 -211
- package/node_modules/pi-lens/dist/clients/spawn-output-cap.js +0 -120
- package/node_modules/pi-lens/dist/clients/spawn-timeout-cooldown.js +0 -110
- package/node_modules/pi-lens/dist/clients/stale-marker.js +0 -17
- package/node_modules/pi-lens/dist/clients/startup-scan.js +0 -400
- package/node_modules/pi-lens/dist/clients/startup-timing.js +0 -130
- package/node_modules/pi-lens/dist/clients/string-utils.js +0 -33
- package/node_modules/pi-lens/dist/clients/subagent-mode.js +0 -111
- package/node_modules/pi-lens/dist/clients/symbol-containment.js +0 -24
- package/node_modules/pi-lens/dist/clients/symbol-types.js +0 -5
- package/node_modules/pi-lens/dist/clients/test-runner-client.js +0 -2507
- package/node_modules/pi-lens/dist/clients/test-runner-delivery.js +0 -287
- package/node_modules/pi-lens/dist/clients/todo-scanner.js +0 -229
- package/node_modules/pi-lens/dist/clients/tool-agreement.js +0 -423
- package/node_modules/pi-lens/dist/clients/tool-config.js +0 -249
- package/node_modules/pi-lens/dist/clients/tool-cwd.js +0 -270
- package/node_modules/pi-lens/dist/clients/tool-definition.js +0 -47
- package/node_modules/pi-lens/dist/clients/tool-event.js +0 -105
- package/node_modules/pi-lens/dist/clients/tool-policy.js +0 -2755
- package/node_modules/pi-lens/dist/clients/tool-probe.js +0 -53
- package/node_modules/pi-lens/dist/clients/tool-render.js +0 -156
- package/node_modules/pi-lens/dist/clients/tool-set-policy.js +0 -118
- package/node_modules/pi-lens/dist/clients/tree-sitter-cache.js +0 -364
- package/node_modules/pi-lens/dist/clients/tree-sitter-client.js +0 -4195
- package/node_modules/pi-lens/dist/clients/tree-sitter-logger.js +0 -100
- package/node_modules/pi-lens/dist/clients/tree-sitter-navigator.js +0 -269
- package/node_modules/pi-lens/dist/clients/tree-sitter-query-loader.js +0 -569
- package/node_modules/pi-lens/dist/clients/tree-sitter-shared.js +0 -158
- package/node_modules/pi-lens/dist/clients/tree-sitter-symbol-extractor.js +0 -1265
- package/node_modules/pi-lens/dist/clients/trivy-client.js +0 -467
- package/node_modules/pi-lens/dist/clients/tui-fit.js +0 -50
- package/node_modules/pi-lens/dist/clients/turn-context.js +0 -52
- package/node_modules/pi-lens/dist/clients/turn-end/lane.js +0 -51
- package/node_modules/pi-lens/dist/clients/turn-end/lanes/govulncheck.js +0 -112
- package/node_modules/pi-lens/dist/clients/turn-end/lanes/secrets.js +0 -204
- package/node_modules/pi-lens/dist/clients/turn-summary-render.js +0 -72
- package/node_modules/pi-lens/dist/clients/turn-summary.js +0 -132
- package/node_modules/pi-lens/dist/clients/typos-config.js +0 -29
- package/node_modules/pi-lens/dist/clients/user-notify.js +0 -51
- package/node_modules/pi-lens/dist/clients/vanished-instance-marker.js +0 -57
- package/node_modules/pi-lens/dist/clients/warm-attach.js +0 -305
- package/node_modules/pi-lens/dist/clients/widget-state.js +0 -1808
- package/node_modules/pi-lens/dist/clients/word-index-logger.js +0 -49
- package/node_modules/pi-lens/dist/clients/word-index-store.js +0 -459
- package/node_modules/pi-lens/dist/clients/word-index.js +0 -2080
- package/node_modules/pi-lens/dist/clients/workspace-topology.js +0 -443
- package/node_modules/pi-lens/dist/clients/write-ordering-guard.js +0 -65
- package/node_modules/pi-lens/dist/clients/zizmor-config.js +0 -340
- package/node_modules/pi-lens/dist/i18n.js +0 -69
- package/node_modules/pi-lens/dist/mcp/build-staleness.js +0 -124
- package/node_modules/pi-lens/dist/scripts/lib/process-scan.mjs +0 -583
- package/node_modules/pi-lens/dist/scripts/lib/skills-predicate.mjs +0 -129
- package/node_modules/pi-lens/dist/scripts/lib/web-tree-sitter-dir.mjs +0 -123
- package/node_modules/pi-lens/dist/tools/activate-tools.js +0 -87
- package/node_modules/pi-lens/dist/tools/ast-grep-outline.js +0 -137
- package/node_modules/pi-lens/dist/tools/ast-grep-replace.js +0 -244
- package/node_modules/pi-lens/dist/tools/ast-grep-search.js +0 -762
- package/node_modules/pi-lens/dist/tools/effective-config.js +0 -90
- package/node_modules/pi-lens/dist/tools/lens-diagnostic-mark.js +0 -375
- package/node_modules/pi-lens/dist/tools/lens-diagnostics.js +0 -2571
- package/node_modules/pi-lens/dist/tools/lsp-diagnostics.js +0 -1745
- package/node_modules/pi-lens/dist/tools/lsp-navigation.js +0 -1367
- package/node_modules/pi-lens/dist/tools/lsp-structured-output.js +0 -294
- package/node_modules/pi-lens/dist/tools/module-report.js +0 -382
- package/node_modules/pi-lens/dist/tools/project-report.js +0 -86
- package/node_modules/pi-lens/dist/tools/render-compact.js +0 -374
- package/node_modules/pi-lens/dist/tools/scan-progress.js +0 -53
- package/node_modules/pi-lens/dist/tools/shared.js +0 -29
- package/node_modules/pi-lens/dist/tools/symbol-search.js +0 -155
- package/node_modules/pi-web-access/opencode-session-headers.ts +0 -24
- package/node_modules/remote-pi/README.md +0 -675
- package/node_modules/remote-pi/dist/actions/handlers.d.ts +0 -122
- package/node_modules/remote-pi/dist/actions/handlers.js +0 -160
- package/node_modules/remote-pi/dist/actions/handlers.js.map +0 -1
- package/node_modules/remote-pi/dist/actions/registry.d.ts +0 -39
- package/node_modules/remote-pi/dist/actions/registry.js +0 -58
- package/node_modules/remote-pi/dist/actions/registry.js.map +0 -1
- package/node_modules/remote-pi/dist/bin/supervisord.d.ts +0 -2
- package/node_modules/remote-pi/dist/bin/supervisord.js +0 -86
- package/node_modules/remote-pi/dist/bin/supervisord.js.map +0 -1
- package/node_modules/remote-pi/dist/commands/builtin_mirror.d.ts +0 -58
- package/node_modules/remote-pi/dist/commands/builtin_mirror.js +0 -71
- package/node_modules/remote-pi/dist/commands/builtin_mirror.js.map +0 -1
- package/node_modules/remote-pi/dist/commands/list_commands.d.ts +0 -60
- package/node_modules/remote-pi/dist/commands/list_commands.js +0 -73
- package/node_modules/remote-pi/dist/commands/list_commands.js.map +0 -1
- package/node_modules/remote-pi/dist/config.d.ts +0 -62
- package/node_modules/remote-pi/dist/config.js +0 -115
- package/node_modules/remote-pi/dist/config.js.map +0 -1
- package/node_modules/remote-pi/dist/daemon/client.d.ts +0 -20
- package/node_modules/remote-pi/dist/daemon/client.js +0 -131
- package/node_modules/remote-pi/dist/daemon/client.js.map +0 -1
- package/node_modules/remote-pi/dist/daemon/control_protocol.d.ts +0 -176
- package/node_modules/remote-pi/dist/daemon/control_protocol.js +0 -63
- package/node_modules/remote-pi/dist/daemon/control_protocol.js.map +0 -1
- package/node_modules/remote-pi/dist/daemon/cron_log.d.ts +0 -45
- package/node_modules/remote-pi/dist/daemon/cron_log.js +0 -72
- package/node_modules/remote-pi/dist/daemon/cron_log.js.map +0 -1
- package/node_modules/remote-pi/dist/daemon/cron_registry.d.ts +0 -80
- package/node_modules/remote-pi/dist/daemon/cron_registry.js +0 -194
- package/node_modules/remote-pi/dist/daemon/cron_registry.js.map +0 -1
- package/node_modules/remote-pi/dist/daemon/id.d.ts +0 -24
- package/node_modules/remote-pi/dist/daemon/id.js +0 -36
- package/node_modules/remote-pi/dist/daemon/id.js.map +0 -1
- package/node_modules/remote-pi/dist/daemon/install.d.ts +0 -170
- package/node_modules/remote-pi/dist/daemon/install.js +0 -547
- package/node_modules/remote-pi/dist/daemon/install.js.map +0 -1
- package/node_modules/remote-pi/dist/daemon/registry.d.ts +0 -63
- package/node_modules/remote-pi/dist/daemon/registry.js +0 -153
- package/node_modules/remote-pi/dist/daemon/registry.js.map +0 -1
- package/node_modules/remote-pi/dist/daemon/rpc_child.d.ts +0 -194
- package/node_modules/remote-pi/dist/daemon/rpc_child.js +0 -389
- package/node_modules/remote-pi/dist/daemon/rpc_child.js.map +0 -1
- package/node_modules/remote-pi/dist/daemon/supervisor.d.ts +0 -93
- package/node_modules/remote-pi/dist/daemon/supervisor.js +0 -596
- package/node_modules/remote-pi/dist/daemon/supervisor.js.map +0 -1
- package/node_modules/remote-pi/dist/extension_ui_bridge.d.ts +0 -26
- package/node_modules/remote-pi/dist/extension_ui_bridge.js +0 -341
- package/node_modules/remote-pi/dist/extension_ui_bridge.js.map +0 -1
- package/node_modules/remote-pi/dist/index.d.ts +0 -213
- package/node_modules/remote-pi/dist/index.js +0 -4996
- package/node_modules/remote-pi/dist/index.js.map +0 -1
- package/node_modules/remote-pi/dist/mcp/mesh_result.d.ts +0 -10
- package/node_modules/remote-pi/dist/mcp/mesh_result.js +0 -42
- package/node_modules/remote-pi/dist/mcp/mesh_result.js.map +0 -1
- package/node_modules/remote-pi/dist/mcp/mesh_server.d.ts +0 -16
- package/node_modules/remote-pi/dist/mcp/mesh_server.js +0 -327
- package/node_modules/remote-pi/dist/mcp/mesh_server.js.map +0 -1
- package/node_modules/remote-pi/dist/mesh/canonical.d.ts +0 -30
- package/node_modules/remote-pi/dist/mesh/canonical.js +0 -61
- package/node_modules/remote-pi/dist/mesh/canonical.js.map +0 -1
- package/node_modules/remote-pi/dist/mesh/client.d.ts +0 -18
- package/node_modules/remote-pi/dist/mesh/client.js +0 -125
- package/node_modules/remote-pi/dist/mesh/client.js.map +0 -1
- package/node_modules/remote-pi/dist/mesh/encoding.d.ts +0 -38
- package/node_modules/remote-pi/dist/mesh/encoding.js +0 -216
- package/node_modules/remote-pi/dist/mesh/encoding.js.map +0 -1
- package/node_modules/remote-pi/dist/mesh/self_revoke.d.ts +0 -73
- package/node_modules/remote-pi/dist/mesh/self_revoke.js +0 -401
- package/node_modules/remote-pi/dist/mesh/self_revoke.js.map +0 -1
- package/node_modules/remote-pi/dist/mesh/siblings.d.ts +0 -49
- package/node_modules/remote-pi/dist/mesh/siblings.js +0 -159
- package/node_modules/remote-pi/dist/mesh/siblings.js.map +0 -1
- package/node_modules/remote-pi/dist/mesh/types.d.ts +0 -34
- package/node_modules/remote-pi/dist/mesh/types.js +0 -11
- package/node_modules/remote-pi/dist/mesh/types.js.map +0 -1
- package/node_modules/remote-pi/dist/mesh/verify.d.ts +0 -17
- package/node_modules/remote-pi/dist/mesh/verify.js +0 -86
- package/node_modules/remote-pi/dist/mesh/verify.js.map +0 -1
- package/node_modules/remote-pi/dist/pairing/crypto.d.ts +0 -8
- package/node_modules/remote-pi/dist/pairing/crypto.js +0 -22
- package/node_modules/remote-pi/dist/pairing/crypto.js.map +0 -1
- package/node_modules/remote-pi/dist/pairing/handshake.d.ts +0 -28
- package/node_modules/remote-pi/dist/pairing/handshake.js +0 -113
- package/node_modules/remote-pi/dist/pairing/handshake.js.map +0 -1
- package/node_modules/remote-pi/dist/pairing/noise-sha256.d.ts +0 -16
- package/node_modules/remote-pi/dist/pairing/noise-sha256.js +0 -103
- package/node_modules/remote-pi/dist/pairing/noise-sha256.js.map +0 -1
- package/node_modules/remote-pi/dist/pairing/qr.d.ts +0 -59
- package/node_modules/remote-pi/dist/pairing/qr.js +0 -125
- package/node_modules/remote-pi/dist/pairing/qr.js.map +0 -1
- package/node_modules/remote-pi/dist/pairing/storage.d.ts +0 -120
- package/node_modules/remote-pi/dist/pairing/storage.js +0 -604
- package/node_modules/remote-pi/dist/pairing/storage.js.map +0 -1
- package/node_modules/remote-pi/dist/protocol/codec.d.ts +0 -7
- package/node_modules/remote-pi/dist/protocol/codec.js +0 -49
- package/node_modules/remote-pi/dist/protocol/codec.js.map +0 -1
- package/node_modules/remote-pi/dist/protocol/types.d.ts +0 -393
- package/node_modules/remote-pi/dist/protocol/types.js +0 -2
- package/node_modules/remote-pi/dist/protocol/types.js.map +0 -1
- package/node_modules/remote-pi/dist/rooms.d.ts +0 -29
- package/node_modules/remote-pi/dist/rooms.js +0 -57
- package/node_modules/remote-pi/dist/rooms.js.map +0 -1
- package/node_modules/remote-pi/dist/session/address.d.ts +0 -49
- package/node_modules/remote-pi/dist/session/address.js +0 -58
- package/node_modules/remote-pi/dist/session/address.js.map +0 -1
- package/node_modules/remote-pi/dist/session/agent_bridge.d.ts +0 -55
- package/node_modules/remote-pi/dist/session/agent_bridge.js +0 -146
- package/node_modules/remote-pi/dist/session/agent_bridge.js.map +0 -1
- package/node_modules/remote-pi/dist/session/bridge.d.ts +0 -37
- package/node_modules/remote-pi/dist/session/bridge.js +0 -130
- package/node_modules/remote-pi/dist/session/bridge.js.map +0 -1
- package/node_modules/remote-pi/dist/session/broker.d.ts +0 -189
- package/node_modules/remote-pi/dist/session/broker.js +0 -507
- package/node_modules/remote-pi/dist/session/broker.js.map +0 -1
- package/node_modules/remote-pi/dist/session/broker_remote.d.ts +0 -74
- package/node_modules/remote-pi/dist/session/broker_remote.js +0 -583
- package/node_modules/remote-pi/dist/session/broker_remote.js.map +0 -1
- package/node_modules/remote-pi/dist/session/cwd_lock.d.ts +0 -33
- package/node_modules/remote-pi/dist/session/cwd_lock.js +0 -126
- package/node_modules/remote-pi/dist/session/cwd_lock.js.map +0 -1
- package/node_modules/remote-pi/dist/session/envelope.d.ts +0 -33
- package/node_modules/remote-pi/dist/session/envelope.js +0 -117
- package/node_modules/remote-pi/dist/session/envelope.js.map +0 -1
- package/node_modules/remote-pi/dist/session/global_config.d.ts +0 -33
- package/node_modules/remote-pi/dist/session/global_config.js +0 -73
- package/node_modules/remote-pi/dist/session/global_config.js.map +0 -1
- package/node_modules/remote-pi/dist/session/ipc.d.ts +0 -27
- package/node_modules/remote-pi/dist/session/ipc.js +0 -22
- package/node_modules/remote-pi/dist/session/ipc.js.map +0 -1
- package/node_modules/remote-pi/dist/session/leader_election.d.ts +0 -32
- package/node_modules/remote-pi/dist/session/leader_election.js +0 -106
- package/node_modules/remote-pi/dist/session/leader_election.js.map +0 -1
- package/node_modules/remote-pi/dist/session/local_config.d.ts +0 -55
- package/node_modules/remote-pi/dist/session/local_config.js +0 -157
- package/node_modules/remote-pi/dist/session/local_config.js.map +0 -1
- package/node_modules/remote-pi/dist/session/mesh_message.d.ts +0 -20
- package/node_modules/remote-pi/dist/session/mesh_message.js +0 -28
- package/node_modules/remote-pi/dist/session/mesh_message.js.map +0 -1
- package/node_modules/remote-pi/dist/session/mesh_node.d.ts +0 -116
- package/node_modules/remote-pi/dist/session/mesh_node.js +0 -573
- package/node_modules/remote-pi/dist/session/mesh_node.js.map +0 -1
- package/node_modules/remote-pi/dist/session/peer.d.ts +0 -139
- package/node_modules/remote-pi/dist/session/peer.js +0 -451
- package/node_modules/remote-pi/dist/session/peer.js.map +0 -1
- package/node_modules/remote-pi/dist/session/peer_inventory.d.ts +0 -13
- package/node_modules/remote-pi/dist/session/peer_inventory.js +0 -48
- package/node_modules/remote-pi/dist/session/peer_inventory.js.map +0 -1
- package/node_modules/remote-pi/dist/session/peer_limits.d.ts +0 -9
- package/node_modules/remote-pi/dist/session/peer_limits.js +0 -21
- package/node_modules/remote-pi/dist/session/peer_limits.js.map +0 -1
- package/node_modules/remote-pi/dist/session/setup_wizard.d.ts +0 -39
- package/node_modules/remote-pi/dist/session/setup_wizard.js +0 -63
- package/node_modules/remote-pi/dist/session/setup_wizard.js.map +0 -1
- package/node_modules/remote-pi/dist/session/tool_gate.d.ts +0 -5
- package/node_modules/remote-pi/dist/session/tool_gate.js +0 -11
- package/node_modules/remote-pi/dist/session/tool_gate.js.map +0 -1
- package/node_modules/remote-pi/dist/session/tools.d.ts +0 -24
- package/node_modules/remote-pi/dist/session/tools.js +0 -252
- package/node_modules/remote-pi/dist/session/tools.js.map +0 -1
- package/node_modules/remote-pi/dist/session/wizard.d.ts +0 -13
- package/node_modules/remote-pi/dist/session/wizard.js +0 -20
- package/node_modules/remote-pi/dist/session/wizard.js.map +0 -1
- package/node_modules/remote-pi/dist/settings.d.ts +0 -15
- package/node_modules/remote-pi/dist/settings.js +0 -52
- package/node_modules/remote-pi/dist/settings.js.map +0 -1
- package/node_modules/remote-pi/dist/transport/peer_channel.d.ts +0 -37
- package/node_modules/remote-pi/dist/transport/peer_channel.js +0 -98
- package/node_modules/remote-pi/dist/transport/peer_channel.js.map +0 -1
- package/node_modules/remote-pi/dist/transport/pi_forward_client.d.ts +0 -29
- package/node_modules/remote-pi/dist/transport/pi_forward_client.js +0 -62
- package/node_modules/remote-pi/dist/transport/pi_forward_client.js.map +0 -1
- package/node_modules/remote-pi/dist/transport/relay_client.d.ts +0 -91
- package/node_modules/remote-pi/dist/transport/relay_client.js +0 -206
- package/node_modules/remote-pi/dist/transport/relay_client.js.map +0 -1
- package/node_modules/remote-pi/dist/ui/footer.d.ts +0 -32
- package/node_modules/remote-pi/dist/ui/footer.js +0 -34
- package/node_modules/remote-pi/dist/ui/footer.js.map +0 -1
- package/node_modules/remote-pi/docs/daemon.md +0 -289
- package/node_modules/remote-pi/package.json +0 -92
- package/node_modules/remote-pi/service-templates/launchd.plist.template +0 -35
- package/node_modules/remote-pi/service-templates/systemd.service.template +0 -19
- package/node_modules/remote-pi/service-templates/task-launcher.vbs.template +0 -10
- package/node_modules/remote-pi/service-templates/task-scheduler.xml.template +0 -38
- package/node_modules/remote-pi/skills/agent-network/SKILL.md +0 -310
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// Capture this before the guard's other module initialization so host boot is
|
|
2
|
-
// not charged to extension evaluation (#1374). Lives in its own
|
|
3
|
-
// side-effect-free module (#1434 S3d) — see eval-timestamp.ts's docstring for
|
|
4
|
-
// why: `startup-timing.ts` needs this constant but must never trigger a
|
|
5
|
-
// console-guard install merely by importing it.
|
|
6
|
-
import { PI_LENS_EVAL_STARTED_MS } from "./eval-timestamp.js";
|
|
7
|
-
// #1333: install the console guard as an import side-effect so it runs before
|
|
8
|
-
// any other module's initialization code. Installing inside the extension
|
|
9
|
-
// factory is too late — by the time the factory runs, every static/transitive
|
|
10
|
-
// import has already evaluated, so a dependency writing to console during
|
|
11
|
-
// module init would still hit the TUI raw (#1338 review finding). This module
|
|
12
|
-
// MUST remain the first import of index.ts; the enforcement test pins that.
|
|
13
|
-
// installConsoleGuard() itself is idempotent and no-ops under test mode and
|
|
14
|
-
// PI_LENS_CONSOLE_GUARD=0.
|
|
15
|
-
// #1434: the guard captures only while pi-lens owns execution, so the module
|
|
16
|
-
// window must be open for the rest of the import graph. index.ts closes it on
|
|
17
|
-
// its last line; an unref'd backstop closes it if that never runs.
|
|
18
|
-
import { installConsoleGuard, openModuleLoadConsoleWindow, } from "./extension-log.js";
|
|
19
|
-
installConsoleGuard();
|
|
20
|
-
openModuleLoadConsoleWindow();
|
|
21
|
-
// Not re-exported: nothing should import the timestamp from this module.
|
|
22
|
-
// `clients/startup-timing.ts` imports it straight from `eval-timestamp.ts`,
|
|
23
|
-
// which is what keeps that import side-effect-free (S3d). The `void` keeps
|
|
24
|
-
// the import from looking unused to lint while documenting that this module
|
|
25
|
-
// only needs the ordering (evaluate eval-timestamp.ts first), not the value.
|
|
26
|
-
void PI_LENS_EVAL_STARTED_MS;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/** Monotonic cooperative-work budgeting for event-loop-sensitive bulk work. */
|
|
2
|
-
export function createDeadline(budgetMs) {
|
|
3
|
-
const boundedBudget = Math.max(0, budgetMs);
|
|
4
|
-
let startedAt = performance.now();
|
|
5
|
-
return {
|
|
6
|
-
expired: () => performance.now() - startedAt >= boundedBudget,
|
|
7
|
-
reset: () => {
|
|
8
|
-
startedAt = performance.now();
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
export async function yieldIfOverBudget(deadline) {
|
|
13
|
-
if (!deadline.expired())
|
|
14
|
-
return false;
|
|
15
|
-
await new Promise((resolve) => setImmediate(resolve));
|
|
16
|
-
deadline.reset();
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
export async function forEachCooperatively(items, fn, options) {
|
|
20
|
-
const deadline = createDeadline(options.budgetMs);
|
|
21
|
-
const assertContinuing = () => {
|
|
22
|
-
if (options.shouldContinue?.() === false) {
|
|
23
|
-
throw new Error(options.abortMessage ?? "cooperative work superseded");
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
let index = 0;
|
|
27
|
-
for (const item of items) {
|
|
28
|
-
// Check before each unit: this per-unit check is what bounds abort
|
|
29
|
-
// latency (one work unit, not an iteration checkpoint). The post-yield
|
|
30
|
-
// check below only matters after the final unit's yield, so superseded
|
|
31
|
-
// work is reported aborted rather than completed.
|
|
32
|
-
assertContinuing();
|
|
33
|
-
const result = fn(item, index++);
|
|
34
|
-
if (result !== undefined &&
|
|
35
|
-
typeof result.then === "function") {
|
|
36
|
-
await result;
|
|
37
|
-
}
|
|
38
|
-
if (deadline.expired() && (await yieldIfOverBudget(deadline))) {
|
|
39
|
-
assertContinuing();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
@@ -1,510 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cross-file dead-code detection for non-JS/TS ecosystems (#127).
|
|
3
|
-
*
|
|
4
|
-
* Knip (clients/knip-client.ts) gives JS/TS projects project-wide unused
|
|
5
|
-
* exports/files/deps at session_start. Per-file dispatch linters can't do that
|
|
6
|
-
* for other languages — "this exported function is unused anywhere" needs a
|
|
7
|
-
* whole-project scan. This module is the per-language harness that closes the
|
|
8
|
-
* gap, paralleling KnipClient's lifecycle (detect → ensureAvailable → analyze,
|
|
9
|
-
* cached at session_start, surfaced as a turn_end advisory).
|
|
10
|
-
*
|
|
11
|
-
* Phase 1 ships Python via `vulture`. Future phases add Go/Rust/etc. by
|
|
12
|
-
* implementing DeadCodeClient and adding to getDeadCodeClients().
|
|
13
|
-
*/
|
|
14
|
-
import { createSubsystemLogger } from "./extension-log.js";
|
|
15
|
-
import { incrementDegradationCount } from "./degradation-ledger.js";
|
|
16
|
-
import * as fs from "node:fs";
|
|
17
|
-
import * as path from "node:path";
|
|
18
|
-
import { findLocalBinsAt, VENV_BIN_DIRS } from "./package-manager.js";
|
|
19
|
-
import { findNearestMarkerRoot } from "./path-utils.js";
|
|
20
|
-
import { getScratchTreeFnmatchPatterns } from "./scratch-tree-policy.js";
|
|
21
|
-
import { safeSpawnAsync } from "./safe-spawn.js";
|
|
22
|
-
import { probeToolAsync } from "./tool-probe.js";
|
|
23
|
-
import { classifyProbeFailure, createAvailabilityLatch, logAvailabilityDecision, startHostStallSampler, } from "./dispatch/runners/utils/availability-policy.js";
|
|
24
|
-
import { firstOutputLine, spawnFailedWithNoOutput, } from "./dispatch/runners/utils/spawn-outcome.js";
|
|
25
|
-
import { formatToolFailure } from "./dispatch/runners/utils/tool-failure.js";
|
|
26
|
-
function emptyResult(language) {
|
|
27
|
-
return {
|
|
28
|
-
success: false,
|
|
29
|
-
language,
|
|
30
|
-
unusedExports: [],
|
|
31
|
-
unusedFiles: [],
|
|
32
|
-
unusedDeps: [],
|
|
33
|
-
unlistedDeps: [],
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
const ANALYSIS_TIMEOUT_MS = 30_000;
|
|
37
|
-
// Directories never worth scanning for the user's own dead code.
|
|
38
|
-
//
|
|
39
|
-
// Single-sourced from `scratch-tree-policy.ts`'s `EXCLUDED_DIRS`-derived list
|
|
40
|
-
// (#1562 sweep finding: this array had hand-drifted from `EXCLUDED_DIRS` —
|
|
41
|
-
// missing `.pi`/`.claude`/`.next`/`.turbo`/etc, the same single-source-of-
|
|
42
|
-
// truth defect #883 named for per-language lists). `site-packages`/`.eggs`
|
|
43
|
-
// are Python-packaging-specific and have no `EXCLUDED_DIRS` counterpart (no
|
|
44
|
-
// other scanner needs them), so they stay as a small local addition rather
|
|
45
|
-
// than polluting the shared cross-tool list.
|
|
46
|
-
const VULTURE_PYTHON_ONLY_EXCLUDES = ["*/site-packages/*", "*/.eggs/*"];
|
|
47
|
-
const VULTURE_EXCLUDES = [
|
|
48
|
-
...getScratchTreeFnmatchPatterns(),
|
|
49
|
-
...VULTURE_PYTHON_ONLY_EXCLUDES,
|
|
50
|
-
];
|
|
51
|
-
// Decorators whose target is called by a framework, never by name in the tree.
|
|
52
|
-
// vulture cannot see those call sites, so every such symbol is a permanent
|
|
53
|
-
// false positive that reappears in every scan — the fastest way to teach a
|
|
54
|
-
// reader to stop reading the advisory. Glob-matched by vulture itself.
|
|
55
|
-
const VULTURE_IGNORE_DECORATORS = [
|
|
56
|
-
"@pytest.fixture",
|
|
57
|
-
"@pytest.fixture(*",
|
|
58
|
-
"@fixture",
|
|
59
|
-
"@fixture(*",
|
|
60
|
-
"@app.*",
|
|
61
|
-
"@router.*",
|
|
62
|
-
"@celery.task*",
|
|
63
|
-
"@task",
|
|
64
|
-
"@shared_task*",
|
|
65
|
-
];
|
|
66
|
-
// vulture line: `path/to/file.py:12: unused function 'foo' (60% confidence)`
|
|
67
|
-
const VULTURE_LINE = /^(.*?):(\d+): unused (\w[\w ]*?) '([^']+)' \((\d+)% confidence\)\s*$/;
|
|
68
|
-
/**
|
|
69
|
-
* Parse vulture's text output into normalized issues. Pure (no spawn/fs) so the
|
|
70
|
-
* parser is unit-testable against captured output. Unrecognized lines (banner,
|
|
71
|
-
* `unreachable code` without a quoted name) are ignored. `root` makes file
|
|
72
|
-
* paths project-relative when possible.
|
|
73
|
-
*/
|
|
74
|
-
export function parseVultureOutput(output, root) {
|
|
75
|
-
const issues = [];
|
|
76
|
-
for (const raw of output.split(/\r?\n/)) {
|
|
77
|
-
const m = raw.match(VULTURE_LINE);
|
|
78
|
-
if (!m)
|
|
79
|
-
continue;
|
|
80
|
-
const [, file, line, kind, name, confidence] = m;
|
|
81
|
-
// All map to the "export" bucket (a defined symbol used nowhere); the
|
|
82
|
-
// `kind` preserves function/class/import/etc. for display.
|
|
83
|
-
let rel = file;
|
|
84
|
-
try {
|
|
85
|
-
rel = path.relative(root, file) || file;
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
rel = file;
|
|
89
|
-
}
|
|
90
|
-
issues.push({
|
|
91
|
-
category: "export",
|
|
92
|
-
kind: kind.trim(),
|
|
93
|
-
name,
|
|
94
|
-
file: rel,
|
|
95
|
-
line: Number.parseInt(line, 10),
|
|
96
|
-
confidence: Number.parseInt(confidence, 10),
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
return issues;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Python dead-code via vulture (https://github.com/jendrikseipp/vulture).
|
|
103
|
-
*
|
|
104
|
-
* vulture finds unused functions, classes, methods, imports, variables and
|
|
105
|
-
* attributes by static analysis of the whole tree. It has no JSON reporter, so
|
|
106
|
-
* we parse its stable one-line-per-finding text output. A clean run exits 0;
|
|
107
|
-
* found dead code exits 3 with findings on stdout. A non-zero exit with
|
|
108
|
-
* parseable output is success, not failure (see runAnalyze for the table).
|
|
109
|
-
*/
|
|
110
|
-
export class PythonDeadCodeClient {
|
|
111
|
-
id = "python";
|
|
112
|
-
language = "Python";
|
|
113
|
-
/**
|
|
114
|
-
* Transient-aware memo (#1467): only a durable "vulture is not installed"
|
|
115
|
-
* verdict is remembered for the session. A probe that timed out expires and
|
|
116
|
-
* is re-probed, so vulture cannot be disabled for the process by one stall.
|
|
117
|
-
*/
|
|
118
|
-
availabilityLatch = createAvailabilityLatch();
|
|
119
|
-
resolved = null;
|
|
120
|
-
ensureInFlight = null;
|
|
121
|
-
inFlight = new Map();
|
|
122
|
-
log;
|
|
123
|
-
constructor(verbose = false) {
|
|
124
|
-
this.log = verbose ? createSubsystemLogger("dead-code:python") : () => { };
|
|
125
|
-
}
|
|
126
|
-
get minConfidence() {
|
|
127
|
-
const raw = Number.parseInt(process.env.PI_LENS_VULTURE_MIN_CONFIDENCE ?? "60", 10);
|
|
128
|
-
return Number.isFinite(raw) ? Math.min(100, Math.max(0, raw)) : 60;
|
|
129
|
-
}
|
|
130
|
-
detect(cwd) {
|
|
131
|
-
return this.resolveProjectRoot(cwd) !== null;
|
|
132
|
-
}
|
|
133
|
-
owns(filePath) {
|
|
134
|
-
const ext = path.extname(filePath).toLowerCase();
|
|
135
|
-
return ext === ".py" || ext === ".pyi";
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Nearest dir with a Python project marker, never at/above $HOME and never
|
|
139
|
-
* escaping a VCS boundary — same containment rules as KnipClient so a scan
|
|
140
|
-
* launched from a bare cwd can't recurse the whole home tree (#250/#296).
|
|
141
|
-
* Delegates to the shared path-utils helper (refs #625) rather than
|
|
142
|
-
* hand-rolling the climb; only the marker list differs from KnipClient's.
|
|
143
|
-
*/
|
|
144
|
-
resolveProjectRoot(startDir, homeDirOverride) {
|
|
145
|
-
return findNearestMarkerRoot(startDir, [
|
|
146
|
-
"pyproject.toml",
|
|
147
|
-
"setup.py",
|
|
148
|
-
"setup.cfg",
|
|
149
|
-
"requirements.txt",
|
|
150
|
-
"Pipfile",
|
|
151
|
-
"tox.ini",
|
|
152
|
-
], { boundaries: [".git", ".hg", ".svn"], homeDir: homeDirOverride });
|
|
153
|
-
}
|
|
154
|
-
async ensureAvailable(root) {
|
|
155
|
-
const memo = this.availabilityLatch.read();
|
|
156
|
-
if (memo !== null)
|
|
157
|
-
return memo;
|
|
158
|
-
if (this.ensureInFlight)
|
|
159
|
-
return this.ensureInFlight;
|
|
160
|
-
this.ensureInFlight = this.doEnsureAvailable(root);
|
|
161
|
-
try {
|
|
162
|
-
return await this.ensureInFlight;
|
|
163
|
-
}
|
|
164
|
-
finally {
|
|
165
|
-
this.ensureInFlight = null;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* `<root>/.venv/bin/vulture` (and `venv`/Windows `Scripts` equivalents),
|
|
170
|
-
* checked by existence only — no spawn. A project's own venv is the vulture
|
|
171
|
-
* that project's own config and dependency set were written against; the
|
|
172
|
-
* bare `vulture`/`python -m vulture` PATH probes below only ever see
|
|
173
|
-
* whatever happens to be active in the CALLING shell, not the project's
|
|
174
|
-
* (#1731, discipline B — the same venv-first shape sqlfluff's binary
|
|
175
|
-
* resolution already uses, `runner-helpers.ts` `createVenvFinder`).
|
|
176
|
-
*
|
|
177
|
-
* The directory list is the shared `VENV_BIN_DIRS` — this was a third
|
|
178
|
-
* private spelling of the same four venv directories, with a
|
|
179
|
-
* `process.platform` branch that meant the ubuntu lane never saw the
|
|
180
|
-
* `Scripts` half at all (defect shape 30).
|
|
181
|
-
*
|
|
182
|
-
* The search is a fixed lookup at `root` ONLY (`findLocalBinsAt`, no
|
|
183
|
-
* ancestor walk) — #2544 review round 3 folded this onto the shared
|
|
184
|
-
* ancestor walker, reasoning a monorepo package should find its
|
|
185
|
-
* repo-root venv, but that was an unrequested behaviour change with no
|
|
186
|
-
* #2514 defect behind it. Reverted in round 4 F2. `findLocalBinsAt`
|
|
187
|
-
* returns EVERY match at `root` rather than the first, because
|
|
188
|
-
* `doEnsureAvailable` probes candidates in order and must keep the
|
|
189
|
-
* `venv/` fallback when a `.venv/` vulture exists but cannot run.
|
|
190
|
-
*/
|
|
191
|
-
venvCandidates(root) {
|
|
192
|
-
return findLocalBinsAt(["vulture"], root, {
|
|
193
|
-
windowsExt: ".exe",
|
|
194
|
-
binDirs: VENV_BIN_DIRS,
|
|
195
|
-
}).map((full) => ({ cmd: full, prefix: [] }));
|
|
196
|
-
}
|
|
197
|
-
async doEnsureAvailable(root) {
|
|
198
|
-
// Presence-gated, NOT auto-installed. vulture is a pure-Python package
|
|
199
|
-
// with no standalone binary, so "auto-install" would mean `pip install`
|
|
200
|
-
// into whatever Python environment happens to be active — wrong and
|
|
201
|
-
// intrusive for uv / poetry / conda / pipx users. So we only use vulture
|
|
202
|
-
// when the user already has it, probing the project's own venv first
|
|
203
|
-
// (#1731), then the `vulture` console script and `python -m vulture` on
|
|
204
|
-
// PATH (the script dir is frequently not on PATH even when the package
|
|
205
|
-
// is installed). Mirrors govulncheck's no-install gating.
|
|
206
|
-
const candidates = [
|
|
207
|
-
...(root ? this.venvCandidates(root) : []),
|
|
208
|
-
{ cmd: "vulture", prefix: [] },
|
|
209
|
-
{ cmd: "python", prefix: ["-m", "vulture"] },
|
|
210
|
-
{ cmd: "python3", prefix: ["-m", "vulture"] },
|
|
211
|
-
];
|
|
212
|
-
// A timeout on ANY candidate means the machine, not the tool, answered —
|
|
213
|
-
// the run gets a bounded retry instead of a permanent skip (#1467).
|
|
214
|
-
let sawTransient = false;
|
|
215
|
-
let transientCause = "probe-timeout";
|
|
216
|
-
// Accumulated across ALL candidates, because the failure verdicts below
|
|
217
|
-
// are about the whole sweep rather than any one probe. Reporting zero
|
|
218
|
-
// here would erase the evidence that cracked #1467: four 5s probes and
|
|
219
|
-
// a stalled host look identical to an absent tool without these two
|
|
220
|
-
// numbers.
|
|
221
|
-
const sweepStartedAt = Date.now();
|
|
222
|
-
let sweepHostStallMs = 0;
|
|
223
|
-
/** What the last classified candidate returned (#1500 review): this was
|
|
224
|
-
* computed and thrown away, so every vulture row said "missing" with no
|
|
225
|
-
* trace of which candidate reported what. */
|
|
226
|
-
let sweepEvidence;
|
|
227
|
-
for (const c of candidates) {
|
|
228
|
-
const sampler = startHostStallSampler();
|
|
229
|
-
const startedAt = Date.now();
|
|
230
|
-
let probe;
|
|
231
|
-
let hostStallMs;
|
|
232
|
-
try {
|
|
233
|
-
probe = await probeToolAsync(c.cmd, [...c.prefix, "--version"], {
|
|
234
|
-
timeout: 5000,
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
finally {
|
|
238
|
-
hostStallMs = sampler.stop();
|
|
239
|
-
sweepHostStallMs += hostStallMs;
|
|
240
|
-
}
|
|
241
|
-
if (!probe.error && probe.status === 0) {
|
|
242
|
-
this.resolved = c;
|
|
243
|
-
this.availabilityLatch.noteAvailable();
|
|
244
|
-
this.log(`vulture found: ${[c.cmd, ...c.prefix].join(" ")}`);
|
|
245
|
-
logAvailabilityDecision({
|
|
246
|
-
tool: "vulture",
|
|
247
|
-
verdict: "available",
|
|
248
|
-
outcome: "success",
|
|
249
|
-
cause: "ok",
|
|
250
|
-
elapsedMs: Date.now() - startedAt,
|
|
251
|
-
latched: true,
|
|
252
|
-
hostStallMs,
|
|
253
|
-
budgetMs: 5000,
|
|
254
|
-
classifiedBy: "probe",
|
|
255
|
-
});
|
|
256
|
-
return true;
|
|
257
|
-
}
|
|
258
|
-
const classified = classifyProbeFailure(probe, {
|
|
259
|
-
hostStallMs,
|
|
260
|
-
command: c.cmd,
|
|
261
|
-
});
|
|
262
|
-
sweepEvidence = classified.evidence;
|
|
263
|
-
if (classified.outcome === "transient") {
|
|
264
|
-
sawTransient = true;
|
|
265
|
-
transientCause = classified.cause;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
if (sawTransient) {
|
|
269
|
-
const retryAfterMs = this.availabilityLatch.noteUnavailable("transient", transientCause);
|
|
270
|
-
this.log("vulture probe timed out; will retry (not treated as missing)");
|
|
271
|
-
logAvailabilityDecision({
|
|
272
|
-
tool: "vulture",
|
|
273
|
-
verdict: "unavailable",
|
|
274
|
-
outcome: "transient",
|
|
275
|
-
cause: transientCause,
|
|
276
|
-
elapsedMs: Date.now() - sweepStartedAt,
|
|
277
|
-
hostStallMs: sweepHostStallMs,
|
|
278
|
-
latched: false,
|
|
279
|
-
retryAfterMs,
|
|
280
|
-
budgetMs: 5000,
|
|
281
|
-
classifiedBy: "probe",
|
|
282
|
-
...(sweepEvidence !== undefined && { evidence: sweepEvidence }),
|
|
283
|
-
});
|
|
284
|
-
return false;
|
|
285
|
-
}
|
|
286
|
-
this.availabilityLatch.noteUnavailable("missing", "not-found");
|
|
287
|
-
this.log("vulture not installed; skipping (no auto-install)");
|
|
288
|
-
logAvailabilityDecision({
|
|
289
|
-
tool: "vulture",
|
|
290
|
-
verdict: "unavailable",
|
|
291
|
-
outcome: "missing",
|
|
292
|
-
cause: "not-found",
|
|
293
|
-
elapsedMs: Date.now() - sweepStartedAt,
|
|
294
|
-
hostStallMs: sweepHostStallMs,
|
|
295
|
-
latched: true,
|
|
296
|
-
budgetMs: 5000,
|
|
297
|
-
// Every candidate probe was classified, and none was transient (#1500).
|
|
298
|
-
classifiedBy: "probe",
|
|
299
|
-
...(sweepEvidence !== undefined && { evidence: sweepEvidence }),
|
|
300
|
-
});
|
|
301
|
-
return false;
|
|
302
|
-
}
|
|
303
|
-
async analyze(cwd) {
|
|
304
|
-
const root = this.resolveProjectRoot(cwd || process.cwd());
|
|
305
|
-
if (!root) {
|
|
306
|
-
return {
|
|
307
|
-
...emptyResult(this.language),
|
|
308
|
-
success: true,
|
|
309
|
-
summary: "No Python project root found; vulture skipped",
|
|
310
|
-
};
|
|
311
|
-
}
|
|
312
|
-
if (!(await this.ensureAvailable(root))) {
|
|
313
|
-
return {
|
|
314
|
-
...emptyResult(this.language),
|
|
315
|
-
success: true,
|
|
316
|
-
summary: "vulture not installed; skipped. Install vulture (pip/uv/pipx) to enable Python dead-code detection.",
|
|
317
|
-
};
|
|
318
|
-
}
|
|
319
|
-
const key = path.resolve(root);
|
|
320
|
-
const existing = this.inFlight.get(key);
|
|
321
|
-
if (existing)
|
|
322
|
-
return existing;
|
|
323
|
-
const promise = this.runAnalyze(key);
|
|
324
|
-
const wrapped = promise.finally(() => {
|
|
325
|
-
// Identity-guarded release (#1968, #1967's pattern): delete only if
|
|
326
|
-
// THIS build is still the registered one. A bare delete-by-key lets
|
|
327
|
-
// a late-settling build A evict a live build B that replaced the
|
|
328
|
-
// entry mid-flight, and the next caller starts a duplicate.
|
|
329
|
-
if (this.inFlight.get(key) === wrapped)
|
|
330
|
-
this.inFlight.delete(key);
|
|
331
|
-
});
|
|
332
|
-
this.inFlight.set(key, wrapped);
|
|
333
|
-
return wrapped;
|
|
334
|
-
}
|
|
335
|
-
/**
|
|
336
|
-
* True when `<root>/pyproject.toml` carries a `[tool.vulture]` table.
|
|
337
|
-
* vulture's own config discovery reads that table, but CLI flags override
|
|
338
|
-
* it — passing `--min-confidence`/`--exclude` unconditionally silently
|
|
339
|
-
* overrode a project's own thresholds and ignore list (#1731, discipline A).
|
|
340
|
-
* Same shape as `hasSqlfluffConfig`/`hasMypyConfig` in `tool-policy.ts`: a
|
|
341
|
-
* plain string search, no TOML parser, matching the section header only.
|
|
342
|
-
*/
|
|
343
|
-
hasProjectVultureConfig(root) {
|
|
344
|
-
try {
|
|
345
|
-
const content = fs.readFileSync(path.join(root, "pyproject.toml"), "utf-8");
|
|
346
|
-
return content.includes("[tool.vulture]");
|
|
347
|
-
}
|
|
348
|
-
catch {
|
|
349
|
-
return false;
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
async runAnalyze(root) {
|
|
353
|
-
const startMs = Date.now();
|
|
354
|
-
const invocation = this.resolved ?? { cmd: "vulture", prefix: [] };
|
|
355
|
-
// Let the project's own [tool.vulture] config win (#1731, discipline A):
|
|
356
|
-
// vulture discovers it unaided, but these two flags override it when
|
|
357
|
-
// passed, so they are omitted whenever the project ships that table.
|
|
358
|
-
const hasConfig = this.hasProjectVultureConfig(root);
|
|
359
|
-
const args = [
|
|
360
|
-
...invocation.prefix,
|
|
361
|
-
".",
|
|
362
|
-
...(hasConfig ? [] : [`--min-confidence=${this.minConfidence}`]),
|
|
363
|
-
...(hasConfig ? [] : [`--exclude=${VULTURE_EXCLUDES.join(",")}`]),
|
|
364
|
-
`--ignore-decorators=${VULTURE_IGNORE_DECORATORS.join(",")}`,
|
|
365
|
-
];
|
|
366
|
-
const result = await safeSpawnAsync(invocation.cmd, args, {
|
|
367
|
-
timeout: ANALYSIS_TIMEOUT_MS,
|
|
368
|
-
cwd: root,
|
|
369
|
-
});
|
|
370
|
-
const durationMs = Date.now() - startMs;
|
|
371
|
-
// Spawn-level failure (ENOENT, timeout) — not a "found issues" exit.
|
|
372
|
-
if (result.error) {
|
|
373
|
-
this.log(`scan error: ${result.error.message}`);
|
|
374
|
-
return {
|
|
375
|
-
...emptyResult(this.language),
|
|
376
|
-
summary: `Error: ${result.error.message}`,
|
|
377
|
-
durationMs,
|
|
378
|
-
};
|
|
379
|
-
}
|
|
380
|
-
// Verified exit-code table (vulture 2.16, probed live during the #1758
|
|
381
|
-
// review): a clean run exits 0 with empty stdout; dead code found exits
|
|
382
|
-
// 3 with findings on stdout; invalid input or a parse error exits 1
|
|
383
|
-
// with empty stdout and the error on stderr. #1736 sweep: the ORIGINAL
|
|
384
|
-
// guard here required non-empty stderr to call it an error, so a
|
|
385
|
-
// nonzero exit with BOTH empty stdout and empty stderr (a silent crash)
|
|
386
|
-
// still fell through to "No dead code found" -- the same
|
|
387
|
-
// empty-distinguishes-clean-from-errored gap the knip fix closes. A
|
|
388
|
-
// nonzero exit with no findings on stdout is never clean now,
|
|
389
|
-
// regardless of whether stderr said anything.
|
|
390
|
-
const output = result.stdout || "";
|
|
391
|
-
if (!output.trim()) {
|
|
392
|
-
const stderr = (result.stderr || "").trim();
|
|
393
|
-
// Same discriminator every dispatch/runners linter uses
|
|
394
|
-
// (`spawnFailedWithNoOutput`) rather than a parallel hand-rolled
|
|
395
|
-
// check (result.error is already handled above, so this reduces to
|
|
396
|
-
// the `status !== 0` half).
|
|
397
|
-
if (spawnFailedWithNoOutput(result, output)) {
|
|
398
|
-
// #1816: one shared wording, one truncation, signal named.
|
|
399
|
-
const reason = formatToolFailure({
|
|
400
|
-
tool: "vulture",
|
|
401
|
-
status: result.status,
|
|
402
|
-
signal: result.signal,
|
|
403
|
-
stderr: result.stderr,
|
|
404
|
-
});
|
|
405
|
-
this.log(reason);
|
|
406
|
-
incrementDegradationCount({
|
|
407
|
-
kind: "runner-empty-result",
|
|
408
|
-
subject: "vulture",
|
|
409
|
-
reason,
|
|
410
|
-
});
|
|
411
|
-
return {
|
|
412
|
-
...emptyResult(this.language),
|
|
413
|
-
summary: stderr
|
|
414
|
-
? `vulture error: ${firstOutputLine(stderr)}`
|
|
415
|
-
: reason,
|
|
416
|
-
durationMs,
|
|
417
|
-
};
|
|
418
|
-
}
|
|
419
|
-
// vulture's verified exit-code table (above): exit 0 with empty
|
|
420
|
-
// stdout IS the clean-run signal, so this ran over the root
|
|
421
|
-
// (#2154) — unlike knip, whose clean run always prints JSON.
|
|
422
|
-
return {
|
|
423
|
-
...emptyResult(this.language),
|
|
424
|
-
success: true,
|
|
425
|
-
analyzed: true,
|
|
426
|
-
summary: "No dead code found",
|
|
427
|
-
durationMs,
|
|
428
|
-
};
|
|
429
|
-
}
|
|
430
|
-
return { ...this.parseOutput(output, root), durationMs };
|
|
431
|
-
}
|
|
432
|
-
parseOutput(output, root) {
|
|
433
|
-
const unusedExports = parseVultureOutput(output, root);
|
|
434
|
-
const total = unusedExports.length;
|
|
435
|
-
return {
|
|
436
|
-
...emptyResult(this.language),
|
|
437
|
-
success: true,
|
|
438
|
-
// #2154: parsed vulture output for this root.
|
|
439
|
-
analyzed: true,
|
|
440
|
-
unusedExports,
|
|
441
|
-
summary: total === 0
|
|
442
|
-
? "No dead code found"
|
|
443
|
-
: `Found ${total} unused Python symbol(s)`,
|
|
444
|
-
};
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
/**
|
|
448
|
-
* The dead-code clients to run at session_start. Each is offered every project;
|
|
449
|
-
* the orchestrator calls detect() to decide which actually apply (polyglot
|
|
450
|
-
* repos may run several). Phase 1: Python only.
|
|
451
|
-
*/
|
|
452
|
-
export function getDeadCodeClients(verbose = false) {
|
|
453
|
-
return [new PythonDeadCodeClient(verbose)];
|
|
454
|
-
}
|
|
455
|
-
/** Total issue count across all buckets — convenience for advisories/telemetry. */
|
|
456
|
-
export function deadCodeIssueCount(result) {
|
|
457
|
-
return (result.unusedExports.length +
|
|
458
|
-
result.unusedFiles.length +
|
|
459
|
-
result.unusedDeps.length +
|
|
460
|
-
result.unlistedDeps.length);
|
|
461
|
-
}
|
|
462
|
-
/** Every bucket flattened — delta diffing and diagnostic mapping want one list. */
|
|
463
|
-
export function deadCodeIssues(result) {
|
|
464
|
-
return [
|
|
465
|
-
...result.unusedExports,
|
|
466
|
-
...result.unusedFiles,
|
|
467
|
-
...result.unusedDeps,
|
|
468
|
-
...result.unlistedDeps,
|
|
469
|
-
];
|
|
470
|
-
}
|
|
471
|
-
/**
|
|
472
|
-
* Joins finding-identity parts into a stable key for diffing one scan
|
|
473
|
-
* against the previous one. The string-only signature is load-bearing: a
|
|
474
|
-
* line/column number cannot be passed without a compile error. An edit
|
|
475
|
-
* shifts every line below it, and a scan delta is then filtered to exactly
|
|
476
|
-
* the files the edit touched — so a line in the key turns each shifted
|
|
477
|
-
* pre-existing finding into a "newly unused" report under a heading that
|
|
478
|
-
* blames the agent's own edit for orphaning it. Inserting four lines above
|
|
479
|
-
* one real finding produced four false ones (#1477, #1483). Shared by
|
|
480
|
-
* knip's per-turn delta in runtime-turn.ts so the rule lives in one place.
|
|
481
|
-
*/
|
|
482
|
-
export function stableFindingKey(...parts) {
|
|
483
|
-
return parts.map((part) => part ?? "").join(":");
|
|
484
|
-
}
|
|
485
|
-
/** Stable identity for diffing one scan against the previous one. */
|
|
486
|
-
export function deadCodeIssueKey(issue) {
|
|
487
|
-
return stableFindingKey(issue.category, issue.file, issue.name);
|
|
488
|
-
}
|
|
489
|
-
/**
|
|
490
|
-
* Format this turn's ATTRIBUTABLE delta — symbols that became unused in files
|
|
491
|
-
* the agent just edited — or "" when there is nothing to report. Mirrors the
|
|
492
|
-
* Knip advisory's contract deliberately: the project-wide list is not injected
|
|
493
|
-
* per turn (hundreds of pre-existing findings would drown the blockers and burn
|
|
494
|
-
* context every turn), it stays available on demand via lens_diagnostics.
|
|
495
|
-
*/
|
|
496
|
-
export function formatDeadCodeDelta(issues, language, max = 5) {
|
|
497
|
-
if (issues.length === 0)
|
|
498
|
-
return "";
|
|
499
|
-
let report = `💀 Newly unused ${language} symbols in files you edited — check if callers need updating (dead-code):\n`;
|
|
500
|
-
for (const issue of issues.slice(0, max)) {
|
|
501
|
-
const loc = issue.file
|
|
502
|
-
? `${issue.file}${issue.line ? `:${issue.line}` : ""}`
|
|
503
|
-
: "(unknown)";
|
|
504
|
-
report += ` ${loc} — unused ${issue.kind} ${issue.name}\n`;
|
|
505
|
-
}
|
|
506
|
-
if (issues.length > max) {
|
|
507
|
-
report += ` … and ${issues.length - max} more\n`;
|
|
508
|
-
}
|
|
509
|
-
return report;
|
|
510
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NDJSON telemetry for cross-file dead-code scans (#127). One event per
|
|
3
|
-
* session_start scan per language, so we can answer: which languages get
|
|
4
|
-
* scanned, how many findings, and how long the whole-project scan takes (the
|
|
5
|
-
* input to phasing decisions in the issue). Mirrors `ast-grep-tool-logger.ts`
|
|
6
|
-
* for shape + size-based rotation.
|
|
7
|
-
*/
|
|
8
|
-
import * as path from "node:path";
|
|
9
|
-
import { isTestMode } from "./env-utils.js";
|
|
10
|
-
import { getGlobalPiLensLogDir } from "./probe-home-state.js";
|
|
11
|
-
import { createNdjsonLogger } from "./ndjson-logger.js";
|
|
12
|
-
const LOG_DIR = getGlobalPiLensLogDir();
|
|
13
|
-
const LOG_FILE = path.join(LOG_DIR, "dead-code.log");
|
|
14
|
-
const LOG_BACKUP_FILE = path.join(LOG_DIR, "dead-code.log.1");
|
|
15
|
-
const MAX_LOG_BYTES = Math.max(128 * 1024, Number.parseInt(process.env.PI_LENS_DEAD_CODE_LOG_MAX_BYTES ?? "1048576", 10) || 1048576);
|
|
16
|
-
const writer = createNdjsonLogger({
|
|
17
|
-
filePath: LOG_FILE,
|
|
18
|
-
maxBytes: MAX_LOG_BYTES,
|
|
19
|
-
backupPath: LOG_BACKUP_FILE,
|
|
20
|
-
});
|
|
21
|
-
/**
|
|
22
|
-
* Append one scan event. Fire-and-forget: telemetry must never break a scan, so
|
|
23
|
-
* every fs error is swallowed. Skipped under test mode to keep the suite from
|
|
24
|
-
* writing to the user's real ~/.pi-lens.
|
|
25
|
-
*/
|
|
26
|
-
export function logDeadCodeScan(event) {
|
|
27
|
-
if (isTestMode())
|
|
28
|
-
return;
|
|
29
|
-
writer.log({ ts: new Date().toISOString(), ...event });
|
|
30
|
-
}
|