@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,668 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* THE heavyweight-analyzer reader for `lens_diagnostics mode=full` (#585).
|
|
3
|
-
*
|
|
4
|
-
* It superseded a cache-ONLY reader (`extractCachedProjectDiagnostics`, since
|
|
5
|
-
* removed from ./extractors.ts as a #585-class dead parallel path — see that
|
|
6
|
-
* file's header). That reader was deliberately cache-only because historically
|
|
7
|
-
* mode=full had no safe way to trigger a scan itself: relaunching knip/jscpd/
|
|
8
|
-
* gitleaks/govulncheck/opengrep/trivy/dead-code concurrently with the
|
|
9
|
-
* session_start background pass over the SAME project root could double-spawn a
|
|
10
|
-
* CPU-bound analyzer (the exact TUI-freeze/zombie-process pathology
|
|
11
|
-
* `KnipClient.inFlight`'s docstring describes).
|
|
12
|
-
*
|
|
13
|
-
* That pathology is now closed for every one of these analyzers:
|
|
14
|
-
* `KnipClient`, `JscpdClient`, and the `DeadCodeClient`s each carry their own
|
|
15
|
-
* `inFlight` de-dupe map, and `GitleaksClient`/`GovulncheckClient`/
|
|
16
|
-
* `TrivyClient`/`OpengrepClient` share `SecurityScanClient.dedupeScan` (landed
|
|
17
|
-
* in #313, well before this issue — verified before writing this module). So
|
|
18
|
-
* a mode=full opengrep run that races the session_start whole-tree scan of the
|
|
19
|
-
* same root JOINS it rather than spawning a second (heavy) scan. So mode=full can
|
|
20
|
-
* now safely trigger — or, via the de-dupe guard, *join* — a fresh run of
|
|
21
|
-
* each analyzer instead of settling for a session_start-only snapshot that
|
|
22
|
-
* can be hours stale in a long session.
|
|
23
|
-
*
|
|
24
|
-
* Mirrors the gating each analyzer already applies at session_start
|
|
25
|
-
* (`clients/runtime-session.ts`) — same "not applicable to this project" /
|
|
26
|
-
* "not installed" skip conditions — but never skips on a cache hit; it always
|
|
27
|
-
* performs (or joins) an actual run. One deliberate exception: gitleaks (#608)
|
|
28
|
-
* uses a looser "smart-default" gate here (any tracked git repo) than
|
|
29
|
-
* session_start's strict opt-in-config gate, since mode=full is an
|
|
30
|
-
* explicitly-requested comprehensive review and gitleaks is cheap/advisory —
|
|
31
|
-
* see its own task below. Every fresh result is written back to
|
|
32
|
-
* cache via the same `cacheManager.writeCache` session_start/turn_end use, so
|
|
33
|
-
* a background pass racing in afterward reads a result at least as fresh as
|
|
34
|
-
* its own.
|
|
35
|
-
*
|
|
36
|
-
* No extra write-ordering guard (`clients/write-ordering-guard.ts`) is
|
|
37
|
-
* layered on top of this: an overlapping call to the same analyzer for the
|
|
38
|
-
* same root always resolves to the exact same in-flight promise (the de-dupe
|
|
39
|
-
* guard above), so concurrent writers here are always writing IDENTICAL
|
|
40
|
-
* data — there is no "stale write lands after a fresher one" race to guard
|
|
41
|
-
* against. A guard would only earn its keep if two *different* result
|
|
42
|
-
* objects for the same key could race; that can't happen while every caller
|
|
43
|
-
* for a given root shares one in-flight run.
|
|
44
|
-
*
|
|
45
|
-
* Does NOT change session_start's or turn_end's own scheduling (both remain
|
|
46
|
-
* skip-if-cached) — this module is additive and mode=full-only.
|
|
47
|
-
*
|
|
48
|
-
* Abort handling: `formatFullMode` (`tools/lens-diagnostics.ts`) already
|
|
49
|
-
* threads a combined signal (Escape/turn-abort OR'd with a hard wall-clock
|
|
50
|
-
* ceiling, `FULL_SCAN_WALL_CLOCK_MS`) into the LSP sweep and the cheap
|
|
51
|
-
* project-runner scan — this module accepts the SAME signal so a `mode=full`
|
|
52
|
-
* abort also bounds the fresh-fetch instead of letting it run uncancelled for
|
|
53
|
-
* up to trivy's own ~180s ceiling after the rest of the scan already stopped.
|
|
54
|
-
* None of the six analyzer clients accept a cancellation token today (checked
|
|
55
|
-
* each `analyze()`/`scan()` signature before assuming otherwise — none does),
|
|
56
|
-
* so true in-flight cancellation isn't available at the client level. Instead
|
|
57
|
-
* this races the overall `Promise.all(tasks)` against the abort signal and
|
|
58
|
-
* returns whatever has already settled — the same "partial is OK, a hang is
|
|
59
|
-
* not" shape `clients/deadline-utils.ts`'s `withDeadline(..., onTimeout:
|
|
60
|
-
* "undefined")` and `clients/lsp/index.ts`'s `runWorkspaceDiagnostics` already
|
|
61
|
-
* use. Already-spawned analyzer processes are NOT killed: they keep running in
|
|
62
|
-
* the background (bounded by their own `SCAN_TIMEOUT_MS`/`ANALYSIS_TIMEOUT_MS`)
|
|
63
|
-
* and still write their result to cache when they finish, so nothing already
|
|
64
|
-
* in flight is wasted — the NEXT caller (or a background session_start/
|
|
65
|
-
* turn_end pass) benefits from it. Analyzers that hadn't settled yet when the
|
|
66
|
-
* abort fired are reported in both `cold` (so they don't silently read as
|
|
67
|
-
* "ran clean") and `abortedIds` (so a caller can render a more honest reason
|
|
68
|
-
* than "not applicable").
|
|
69
|
-
*
|
|
70
|
-
* One analyzer does NOT follow the trigger-or-join shape above: `test-runner`
|
|
71
|
-
* (#1004). Its "scan" is the per-edit turn_end test fire (`runtime-turn.ts`),
|
|
72
|
-
* which only ever runs the targeted/cascade-aware test files touched by a
|
|
73
|
-
* turn's edits — there is no whole-project run to trigger here, and forcing
|
|
74
|
-
* one on every mode=full call would be exactly the double-spawn-a-heavy-
|
|
75
|
-
* analyzer cost the de-dupe guards above exist to avoid. Its task is a plain
|
|
76
|
-
* cache-read of the `"test-runner-findings"` key turn_end already wrote,
|
|
77
|
-
* mirroring the pre-#585 `extractCachedProjectDiagnostics` registry's
|
|
78
|
-
* "test-runner" row (cache-only, never triggers a run) rather than the
|
|
79
|
-
* fresh-run pattern every other task here uses — see that task's own comment.
|
|
80
|
-
*
|
|
81
|
-
* Refs: #585, #313 (the SecurityScanClient de-dupe prerequisite), #1004
|
|
82
|
-
*/
|
|
83
|
-
import * as fs from "node:fs";
|
|
84
|
-
import * as os from "node:os";
|
|
85
|
-
import * as path from "node:path";
|
|
86
|
-
import { applyDispositionsMultiFile } from "../diagnostic-dispositions.js";
|
|
87
|
-
import { getKnipIgnorePatterns } from "../file-utils.js";
|
|
88
|
-
import { isAtOrAboveHomeDir, realpathOrResolve } from "../path-utils.js";
|
|
89
|
-
import { isSameOrWithin } from "../lsp/server.js";
|
|
90
|
-
import { incrementDegradationCount, recordDegradationOnce, } from "../degradation-ledger.js";
|
|
91
|
-
import { GitleaksClient } from "../gitleaks-client.js";
|
|
92
|
-
import { GovulncheckClient } from "../govulncheck-client.js";
|
|
93
|
-
import { isToolInstallAllowedByTrust, projectTrustDenialReason, } from "../project-trust.js";
|
|
94
|
-
import { TrivyClient } from "../trivy-client.js";
|
|
95
|
-
import { reasonFromAvailabilityVerdict } from "./extractors.js";
|
|
96
|
-
import { deadCodeResultToProjectDiagnostics } from "./runner-adapters/dead-code.js";
|
|
97
|
-
import { gitleaksResultToProjectDiagnostics } from "./runner-adapters/gitleaks.js";
|
|
98
|
-
import { govulncheckResultToProjectDiagnostics } from "./runner-adapters/govulncheck.js";
|
|
99
|
-
import { jscpdResultToProjectDiagnostics } from "./runner-adapters/jscpd.js";
|
|
100
|
-
import { knipIssuesToProjectDiagnostics } from "./runner-adapters/knip.js";
|
|
101
|
-
import { circularDepsToProjectDiagnostics } from "./runner-adapters/madge.js";
|
|
102
|
-
import { opengrepResultToProjectDiagnostics } from "./runner-adapters/opengrep.js";
|
|
103
|
-
import { testRunnerFindingsToProjectDiagnostics } from "./runner-adapters/runner-findings.js";
|
|
104
|
-
import { trivyResultToProjectDiagnostics } from "./runner-adapters/trivy.js";
|
|
105
|
-
/** The heavyweight analyzers surfaced in `lens_diagnostics mode=full` — this is
|
|
106
|
-
* now the single source of truth for that list (#585 removed the parallel
|
|
107
|
-
* cache-only `EXTRACTORS` registry that used to shadow it). `warmTriggerFor`
|
|
108
|
-
* (extractors.ts) is keyed by these same ids for the "cold" honesty note.
|
|
109
|
-
* Exported so `tests/clients/project-diagnostics/analyzer-coverage.test.ts`
|
|
110
|
-
* (#1004's guardrail) can assert every session-start/turn-end analyzer cache
|
|
111
|
-
* writer id is a member — the exact #585-class check that would have caught
|
|
112
|
-
* opengrep's (and then test-runner's, #1004) omission before it shipped. */
|
|
113
|
-
export const ANALYZER_IDS = [
|
|
114
|
-
"knip",
|
|
115
|
-
"jscpd",
|
|
116
|
-
"madge",
|
|
117
|
-
"gitleaks",
|
|
118
|
-
"govulncheck",
|
|
119
|
-
"opengrep",
|
|
120
|
-
"trivy",
|
|
121
|
-
"dead-code",
|
|
122
|
-
"test-runner",
|
|
123
|
-
];
|
|
124
|
-
function pushUnique(list, id) {
|
|
125
|
-
if (!list.includes(id))
|
|
126
|
-
list.push(id);
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Trigger (or join, via each client's in-flight de-dupe guard) a fresh run of
|
|
130
|
-
* every heavyweight project analyzer and adapt the results to
|
|
131
|
-
* `ProjectDiagnostic[]`. Runs all analyzers in parallel — total wall time is bounded by the
|
|
132
|
-
* single slowest one (trivy's own timeout ceiling) rather than their sum.
|
|
133
|
-
*
|
|
134
|
-
* `signal`, when provided and it fires before every analyzer has settled,
|
|
135
|
-
* makes this return immediately with whatever partial results are available
|
|
136
|
-
* (see the module header for why this races rather than cancels in-flight
|
|
137
|
-
* spawns).
|
|
138
|
-
*/
|
|
139
|
-
export async function fetchFreshProjectDiagnostics(cacheManager, cwd, clients, signal, options = {}) {
|
|
140
|
-
const requestedRoot = options.analysisRoot === undefined
|
|
141
|
-
? cwd
|
|
142
|
-
: path.resolve(cwd, options.analysisRoot);
|
|
143
|
-
let analysisRoot;
|
|
144
|
-
let analysisRootValidation;
|
|
145
|
-
if (options.analysisRoot !== undefined) {
|
|
146
|
-
try {
|
|
147
|
-
if (!fs.statSync(requestedRoot).isDirectory()) {
|
|
148
|
-
throw new Error("is not a directory");
|
|
149
|
-
}
|
|
150
|
-
analysisRoot = fs.realpathSync(requestedRoot);
|
|
151
|
-
}
|
|
152
|
-
catch (error) {
|
|
153
|
-
const detail = error instanceof Error ? error.message : String(error);
|
|
154
|
-
const reason = `the explicit analysis root ${requestedRoot} is unavailable or ${detail}`;
|
|
155
|
-
analysisRootValidation = {
|
|
156
|
-
state: "undecided",
|
|
157
|
-
root: requestedRoot,
|
|
158
|
-
reason,
|
|
159
|
-
};
|
|
160
|
-
incrementDegradationCount({
|
|
161
|
-
kind: "lens-diagnostics-analysis-root-rejected",
|
|
162
|
-
subject: requestedRoot,
|
|
163
|
-
reason,
|
|
164
|
-
});
|
|
165
|
-
return {
|
|
166
|
-
analysisRootValidation,
|
|
167
|
-
diagnostics: [],
|
|
168
|
-
runners: [],
|
|
169
|
-
analyzed: [],
|
|
170
|
-
authoritativeCoverage: [],
|
|
171
|
-
cold: [...ANALYZER_IDS],
|
|
172
|
-
coldReasons: Object.fromEntries(ANALYZER_IDS.map((id) => [id, reason])),
|
|
173
|
-
failed: [],
|
|
174
|
-
timings: {},
|
|
175
|
-
analysisRootError: reason,
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
analysisRoot = realpathOrResolve(cwd);
|
|
181
|
-
}
|
|
182
|
-
// #747: refuse to spawn any heavyweight analyzer when the analysis root is
|
|
183
|
-
// at — or above — the home directory (the #250/#253 escape class). Every
|
|
184
|
-
// analyzer here treats `analysisRoot` as a whole tree to walk; from $HOME
|
|
185
|
-
// that means scanning every unrelated repo under it (observed: a jscpd run
|
|
186
|
-
// from a WSL home reached 44 GB RSS and OOM-killed the whole instance).
|
|
187
|
-
// Same ceiling as startup-scan.ts / runtime-session.ts's resolveSnapshotRoot
|
|
188
|
-
// / review-graph's buildOrUpdateGraph; like the latter, there is no safe
|
|
189
|
-
// substitute root to fall back to — the caller's `paths` scope only filters
|
|
190
|
-
// REPORTED results, it never narrows what these analyzers walk.
|
|
191
|
-
const unsafeRootReason = "the analysis root resolves at or above the home directory; heavyweight analyzers refuse to walk from there (#747)";
|
|
192
|
-
const homeRoot = realpathOrResolve(options.homeDir ?? os.homedir());
|
|
193
|
-
if (options.analysisRoot !== undefined) {
|
|
194
|
-
const unsafeExplicitRoot = !isSameOrWithin(homeRoot, analysisRoot) ||
|
|
195
|
-
isSameOrWithin(analysisRoot, homeRoot);
|
|
196
|
-
analysisRootValidation = unsafeExplicitRoot
|
|
197
|
-
? {
|
|
198
|
-
state: "unsafe",
|
|
199
|
-
root: analysisRoot,
|
|
200
|
-
reason: "explicit analysis root must be strictly contained by the canonical home directory",
|
|
201
|
-
}
|
|
202
|
-
: { state: "safe", root: analysisRoot };
|
|
203
|
-
}
|
|
204
|
-
else if (isAtOrAboveHomeDir(analysisRoot, options.homeDir)) {
|
|
205
|
-
analysisRootValidation = {
|
|
206
|
-
state: "unsafe",
|
|
207
|
-
root: analysisRoot,
|
|
208
|
-
reason: unsafeRootReason,
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
analysisRootValidation = { state: "safe", root: analysisRoot };
|
|
213
|
-
}
|
|
214
|
-
if (analysisRootValidation.state !== "safe") {
|
|
215
|
-
incrementDegradationCount({
|
|
216
|
-
kind: "lens-diagnostics-analysis-root-rejected",
|
|
217
|
-
subject: analysisRoot,
|
|
218
|
-
reason: analysisRootValidation.reason,
|
|
219
|
-
});
|
|
220
|
-
return {
|
|
221
|
-
analysisRootValidation,
|
|
222
|
-
diagnostics: [],
|
|
223
|
-
runners: [],
|
|
224
|
-
analyzed: [],
|
|
225
|
-
authoritativeCoverage: [],
|
|
226
|
-
cold: [...ANALYZER_IDS],
|
|
227
|
-
coldReasons: Object.fromEntries(ANALYZER_IDS.map((id) => [id, unsafeRootReason])),
|
|
228
|
-
failed: [],
|
|
229
|
-
timings: {},
|
|
230
|
-
unsafeRoot: analysisRootValidation.state === "unsafe",
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
const diagnostics = [];
|
|
234
|
-
const runners = [];
|
|
235
|
-
const analyzed = [];
|
|
236
|
-
const authoritativeCoverage = [];
|
|
237
|
-
const cold = [];
|
|
238
|
-
// #1623: the specific reason each `cold` id was skipped, captured at the
|
|
239
|
-
// gate that decided it — see FreshProjectDiagnosticsResult.coldReasons.
|
|
240
|
-
const coldReasons = {};
|
|
241
|
-
const partial = [];
|
|
242
|
-
const partialReasons = {};
|
|
243
|
-
const failed = [];
|
|
244
|
-
const timings = {};
|
|
245
|
-
// #1623: ms-old each id's data was when this call read it, for lanes that
|
|
246
|
-
// are cache-reads by design (currently only test-runner — see its task
|
|
247
|
-
// below) rather than a fresh execution this call. Absent for every other
|
|
248
|
-
// key: this module's other lanes always trigger-or-join a genuine run
|
|
249
|
-
// when attempted (see the module header), so there is nothing to date.
|
|
250
|
-
const cachedAgeMs = {};
|
|
251
|
-
const settledIds = new Set();
|
|
252
|
-
let dispositionSuppressed = 0;
|
|
253
|
-
const dispositionSuppressedByLane = {};
|
|
254
|
-
// #1617: this is the ONE choke point every analyzer's findings pass
|
|
255
|
-
// through on the way into `diagnostics`, so applying the agent/user
|
|
256
|
-
// disposition filter HERE covers the whole mode=full class (knip/jscpd/
|
|
257
|
-
// madge/gitleaks/govulncheck/opengrep/trivy/dead-code) in one place — the
|
|
258
|
-
// same anchor derivation `dispatcher.ts:924` uses, via
|
|
259
|
-
// `applyDispositionsMultiFile` (`diagnostic-dispositions.ts`), not a
|
|
260
|
-
// second cloned filter. Unlike the dispatch path's one-file-at-a-time
|
|
261
|
-
// shape, a project-wide scan's findings span many files, so this groups by
|
|
262
|
-
// each diagnostic's own `filePath` and reads each file's current content
|
|
263
|
-
// once — see that function's doc for the fail-open contract when a file
|
|
264
|
-
// can't be read.
|
|
265
|
-
function markCold(id, reason) {
|
|
266
|
-
pushUnique(cold, id);
|
|
267
|
-
coldReasons[id] = reason;
|
|
268
|
-
}
|
|
269
|
-
function markPartial(id, reason) {
|
|
270
|
-
pushUnique(partial, id);
|
|
271
|
-
partialReasons[id] = reason;
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* `analysedRoot` is the client's own opt-in `AnalysedRootSignal` (#2154),
|
|
275
|
-
* never a property of reaching this function: `success: true` is also what
|
|
276
|
-
* a skipped, crashed-before-reporting or memoised run returns, and only the
|
|
277
|
-
* client knows which of those it is. Findings are recorded either way — an
|
|
278
|
-
* id that did not analyse the root simply carries no authority to retire a
|
|
279
|
-
* retained finding.
|
|
280
|
-
*/
|
|
281
|
-
function record(id, adapted, elapsedMs, analysedRoot, analysis) {
|
|
282
|
-
if (analysedRoot) {
|
|
283
|
-
pushUnique(analyzed, id);
|
|
284
|
-
// #2962: the entry is pushed on the DECLARATION, not on its size. A
|
|
285
|
-
// coverage producer that analysed the root and proved zero files is a
|
|
286
|
-
// third state, distinct from both "covered, file absent from the set"
|
|
287
|
-
// and "this runner declares no coverage" — and it is the only one of
|
|
288
|
-
// the three that used to fall through to the whole-root id-only arm in
|
|
289
|
-
// `runnerRetirementDecision`, retiring findings for files nothing
|
|
290
|
-
// scanned. The eight non-producer runners pass no `analyzedFiles` at
|
|
291
|
-
// all and are untouched by this.
|
|
292
|
-
if (analysis?.analyzedFiles !== undefined) {
|
|
293
|
-
const root = realpathOrResolve(analysisRoot);
|
|
294
|
-
authoritativeCoverage.push({
|
|
295
|
-
runnerId: id,
|
|
296
|
-
root,
|
|
297
|
-
files: new Set(analysis.analyzedFiles.map((file) => {
|
|
298
|
-
return realpathOrResolve(file);
|
|
299
|
-
})),
|
|
300
|
-
});
|
|
301
|
-
if (analysis.analyzedFiles.length === 0) {
|
|
302
|
-
// Bounded at one row per (producer, root) per session: the kept
|
|
303
|
-
// finding is otherwise indistinguishable from a healthy run, and
|
|
304
|
-
// "the only coverage producer proved nothing" is the fact an
|
|
305
|
-
// operator needs when mode=full keeps showing a stale finding.
|
|
306
|
-
recordDegradationOnce({
|
|
307
|
-
kind: "runner-coverage-empty",
|
|
308
|
-
subject: `${id}:${root}`,
|
|
309
|
-
reason: `${id} analysed this root but declared zero scanned files, so retained ${id} findings are kept rather than retired`,
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
timings[id] = (timings[id] ?? 0) + elapsedMs;
|
|
315
|
-
const kept = applyDispositionsMultiFile(adapted, analysisRoot, (d) => d.filePath);
|
|
316
|
-
const suppressedHere = adapted.length - kept.length;
|
|
317
|
-
dispositionSuppressed += suppressedHere;
|
|
318
|
-
if (suppressedHere > 0) {
|
|
319
|
-
dispositionSuppressedByLane[id] =
|
|
320
|
-
(dispositionSuppressedByLane[id] ?? 0) + suppressedHere;
|
|
321
|
-
}
|
|
322
|
-
if (kept.length > 0) {
|
|
323
|
-
diagnostics.push(...kept);
|
|
324
|
-
pushUnique(runners, id);
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
function recordFailed(id, result) {
|
|
328
|
-
failed.push({
|
|
329
|
-
id,
|
|
330
|
-
...("reason" in result && result.reason !== undefined
|
|
331
|
-
? { reason: result.reason }
|
|
332
|
-
: {}),
|
|
333
|
-
summary: "summary" in result && typeof result.summary === "string"
|
|
334
|
-
? result.summary
|
|
335
|
-
: "analyzer reported an unsuccessful run",
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
function task(id, run) {
|
|
339
|
-
return run().finally(() => settledIds.add(id));
|
|
340
|
-
}
|
|
341
|
-
const tasks = [
|
|
342
|
-
// knip — always applicable to probe (KnipClient.analyze itself no-ops
|
|
343
|
-
// when no project root marker is found, matching session_start).
|
|
344
|
-
task("knip", async () => {
|
|
345
|
-
const startMs = Date.now();
|
|
346
|
-
const result = await clients.knipClient.analyze(analysisRoot, getKnipIgnorePatterns());
|
|
347
|
-
if (!result.success) {
|
|
348
|
-
recordFailed("knip", result);
|
|
349
|
-
return;
|
|
350
|
-
}
|
|
351
|
-
// knip reports `success: true` for a run that never happened (no
|
|
352
|
-
// project root, a memo hit, an unparseable exit-0). Those belong in
|
|
353
|
-
// the honest `cold` channel, not in "fetched fresh this call".
|
|
354
|
-
if (result.analyzed !== true) {
|
|
355
|
-
markCold("knip", result.summary ?? "knip did not analyse this root");
|
|
356
|
-
return;
|
|
357
|
-
}
|
|
358
|
-
cacheManager.writeCache("knip", result, analysisRoot, {
|
|
359
|
-
scanDurationMs: Date.now() - startMs,
|
|
360
|
-
});
|
|
361
|
-
record("knip", knipIssuesToProjectDiagnostics(analysisRoot, result.issues ?? []), Date.now() - startMs, true, result);
|
|
362
|
-
}),
|
|
363
|
-
// jscpd — duplicate code detection. Cache key varies with TS-project
|
|
364
|
-
// detection, exactly mirroring session_start's own logic.
|
|
365
|
-
task("jscpd", async () => {
|
|
366
|
-
if (!(await clients.jscpdClient.ensureAvailable())) {
|
|
367
|
-
markCold("jscpd", reasonFromAvailabilityVerdict("jscpd", clients.jscpdClient.getAvailabilityVerdict?.()));
|
|
368
|
-
return;
|
|
369
|
-
}
|
|
370
|
-
const isTsProject = fs.existsSync(path.join(analysisRoot, "tsconfig.json"));
|
|
371
|
-
const scannerKey = isTsProject ? "jscpd-ts" : "jscpd";
|
|
372
|
-
const startMs = Date.now();
|
|
373
|
-
const result = await clients.jscpdClient.scan(analysisRoot, undefined, undefined, isTsProject);
|
|
374
|
-
if (!result.success) {
|
|
375
|
-
recordFailed("jscpd", result);
|
|
376
|
-
return;
|
|
377
|
-
}
|
|
378
|
-
if (result.analyzed !== true) {
|
|
379
|
-
markCold("jscpd", "jscpd did not analyse this root (no source files, or the scan produced no report)");
|
|
380
|
-
return;
|
|
381
|
-
}
|
|
382
|
-
cacheManager.writeCache(scannerKey, result, analysisRoot, {
|
|
383
|
-
scanDurationMs: Date.now() - startMs,
|
|
384
|
-
});
|
|
385
|
-
record("jscpd", jscpdResultToProjectDiagnostics(analysisRoot, result), Date.now() - startMs, true, result);
|
|
386
|
-
}),
|
|
387
|
-
// madge — circular-dependency detection.
|
|
388
|
-
task("madge", async () => {
|
|
389
|
-
if (!(await clients.depChecker.ensureAvailable())) {
|
|
390
|
-
markCold("madge", reasonFromAvailabilityVerdict("madge", clients.depChecker.getAvailabilityVerdict?.()));
|
|
391
|
-
return;
|
|
392
|
-
}
|
|
393
|
-
const startMs = Date.now();
|
|
394
|
-
const result = await clients.depChecker.scanProject(analysisRoot);
|
|
395
|
-
cacheManager.writeCache("madge", result, analysisRoot, {
|
|
396
|
-
scanDurationMs: Date.now() - startMs,
|
|
397
|
-
});
|
|
398
|
-
record("madge", circularDepsToProjectDiagnostics(analysisRoot, result.circular ?? []), Date.now() - startMs, result.analyzed === true, result);
|
|
399
|
-
}),
|
|
400
|
-
// gitleaks — committed-secrets detection. session_start/per-edit stay
|
|
401
|
-
// config-gated per #130's strict default (GitleaksClient.hasGitleaksSignal),
|
|
402
|
-
// but mode=full is an explicitly-requested comprehensive review — use
|
|
403
|
-
// #130's own considered-but-unshipped "smart-default" tier instead (any
|
|
404
|
-
// tracked git repo, GitleaksClient.hasGitRepo): gitleaks is cheap (~10MB
|
|
405
|
-
// binary, no external DB pull) and findings are advisory-only, so the
|
|
406
|
-
// stricter opt-in gate is needlessly conservative for this call. Refs #608
|
|
407
|
-
// dogfooding finding that flagged gitleaks/trivy/govulncheck/dead-code as
|
|
408
|
-
// "cold" on a project with no explicit gitleaks config.
|
|
409
|
-
task("gitleaks", async () => {
|
|
410
|
-
if (!GitleaksClient.hasGitRepo(analysisRoot)) {
|
|
411
|
-
markCold("gitleaks", "not a git repository (no .git found)");
|
|
412
|
-
return;
|
|
413
|
-
}
|
|
414
|
-
if (!(await clients.gitleaksClient.ensureAvailable())) {
|
|
415
|
-
markCold("gitleaks", reasonFromAvailabilityVerdict("gitleaks", clients.gitleaksClient.getAvailabilityVerdict?.()));
|
|
416
|
-
return;
|
|
417
|
-
}
|
|
418
|
-
const startMs = Date.now();
|
|
419
|
-
const result = await clients.gitleaksClient.scan(analysisRoot, {
|
|
420
|
-
requireSignal: false,
|
|
421
|
-
});
|
|
422
|
-
if (!result.success) {
|
|
423
|
-
recordFailed("gitleaks", result);
|
|
424
|
-
return;
|
|
425
|
-
}
|
|
426
|
-
cacheManager.writeCache("gitleaks", result, analysisRoot, {
|
|
427
|
-
scanDurationMs: Date.now() - startMs,
|
|
428
|
-
});
|
|
429
|
-
record("gitleaks", gitleaksResultToProjectDiagnostics(analysisRoot, result), Date.now() - startMs, result.analyzed === true, result);
|
|
430
|
-
}),
|
|
431
|
-
// govulncheck — Go module CVE detection. Go-module-gated per #132.
|
|
432
|
-
task("govulncheck", async () => {
|
|
433
|
-
if (!GovulncheckClient.hasGoModule(analysisRoot)) {
|
|
434
|
-
markCold("govulncheck", "no go.mod found (not a Go module)");
|
|
435
|
-
return;
|
|
436
|
-
}
|
|
437
|
-
if (!(await clients.govulncheckClient.ensureAvailable())) {
|
|
438
|
-
// #1623 fix-round F1: `GovulncheckClient.doEnsureAvailable` has a
|
|
439
|
-
// branch (`assertInstallAllowed`, govulncheck-client.ts) that returns
|
|
440
|
-
// false WITHOUT ever touching its availability latch — a
|
|
441
|
-
// project-trust install denial, deliberately not latched so a later
|
|
442
|
-
// trust grant can retry (see that file's own comment). The latch's
|
|
443
|
-
// verdict is genuinely absent in that case, not merely unread, so
|
|
444
|
-
// check trust denial FIRST via the same taxonomy project-trust.ts
|
|
445
|
-
// already exposes, and only fall back to the probe-based verdict
|
|
446
|
-
// (a real timeout/absence) when trust isn't the reason.
|
|
447
|
-
markCold("govulncheck", isToolInstallAllowedByTrust()
|
|
448
|
-
? reasonFromAvailabilityVerdict("govulncheck", clients.govulncheckClient.getAvailabilityVerdict?.())
|
|
449
|
-
: (projectTrustDenialReason() ?? "govulncheck binary unavailable"));
|
|
450
|
-
return;
|
|
451
|
-
}
|
|
452
|
-
const startMs = Date.now();
|
|
453
|
-
const result = await clients.govulncheckClient.analyze(analysisRoot);
|
|
454
|
-
if (!result.success) {
|
|
455
|
-
recordFailed("govulncheck", result);
|
|
456
|
-
return;
|
|
457
|
-
}
|
|
458
|
-
cacheManager.writeCache("govulncheck", result, analysisRoot, {
|
|
459
|
-
scanDurationMs: Date.now() - startMs,
|
|
460
|
-
});
|
|
461
|
-
record("govulncheck", govulncheckResultToProjectDiagnostics(analysisRoot, result), Date.now() - startMs, result.analyzed === true, result);
|
|
462
|
-
}),
|
|
463
|
-
// opengrep — full-workspace semgrep-grade security/quality findings via a
|
|
464
|
-
// single project-wide CLI scan (#584). Structurally always-on: mirrors
|
|
465
|
-
// session_start (`runtime-session.ts`) and the LSP auxiliary's own
|
|
466
|
-
// enablement (`OpengrepClient.resolveConfig` only picks WHICH rules run,
|
|
467
|
-
// never whether opengrep runs at all), so unlike gitleaks/govulncheck/trivy
|
|
468
|
-
// it carries NO static project-type gate — only an availability probe.
|
|
469
|
-
// Re-entrancy-safe like the other SecurityScanClient-family analyzers:
|
|
470
|
-
// `OpengrepClient.scan` routes through `SecurityScanClient.dedupeScan`, so a
|
|
471
|
-
// call here that races the session_start whole-tree scan of the same root
|
|
472
|
-
// JOINS the in-flight run instead of paying a second heavy scan (#883 single
|
|
473
|
-
// source of truth — the exact wiring gitleaks/trivy use above). #585: this
|
|
474
|
-
// was the one extractor registered in `extractors.ts` but MISSING here, so
|
|
475
|
-
// opengrep scanned+cached yet nothing production read it back into
|
|
476
|
-
// `lens_diagnostics mode=full` — the honesty gap (#533) this task closes.
|
|
477
|
-
task("opengrep", async () => {
|
|
478
|
-
if (!(await clients.opengrepClient.ensureAvailable())) {
|
|
479
|
-
markCold("opengrep", reasonFromAvailabilityVerdict("opengrep", clients.opengrepClient.getAvailabilityVerdict?.()));
|
|
480
|
-
return;
|
|
481
|
-
}
|
|
482
|
-
const startMs = Date.now();
|
|
483
|
-
const result = await clients.opengrepClient.scan(analysisRoot);
|
|
484
|
-
if (!result.success) {
|
|
485
|
-
recordFailed("opengrep", result);
|
|
486
|
-
return;
|
|
487
|
-
}
|
|
488
|
-
if (result.analyzed !== true) {
|
|
489
|
-
// A usable partial report with no scanned paths carries findings but
|
|
490
|
-
// no retirement authority. Keep those findings visible and mark the
|
|
491
|
-
// producer partial so the renderer does not call it cold/not-run.
|
|
492
|
-
const reason = result.summary ??
|
|
493
|
-
result.reason ??
|
|
494
|
-
"opengrep did not analyse this root";
|
|
495
|
-
if (result.partial)
|
|
496
|
-
markPartial("opengrep", reason);
|
|
497
|
-
else
|
|
498
|
-
markCold("opengrep", reason);
|
|
499
|
-
record("opengrep", opengrepResultToProjectDiagnostics(analysisRoot, result), Date.now() - startMs, false, result);
|
|
500
|
-
return;
|
|
501
|
-
}
|
|
502
|
-
if (result.partial) {
|
|
503
|
-
markPartial("opengrep", result.summary ??
|
|
504
|
-
result.reason ??
|
|
505
|
-
"opengrep scan coverage is incomplete");
|
|
506
|
-
record("opengrep", opengrepResultToProjectDiagnostics(analysisRoot, result), Date.now() - startMs, true, result);
|
|
507
|
-
return;
|
|
508
|
-
}
|
|
509
|
-
cacheManager.writeCache("opengrep", result, analysisRoot, {
|
|
510
|
-
scanDurationMs: Date.now() - startMs,
|
|
511
|
-
});
|
|
512
|
-
record("opengrep", opengrepResultToProjectDiagnostics(analysisRoot, result), Date.now() - startMs, result.analyzed === true, result);
|
|
513
|
-
}),
|
|
514
|
-
// trivy — dependency CVE detection. Explicit opt-in per #131.
|
|
515
|
-
task("trivy", async () => {
|
|
516
|
-
if (!TrivyClient.shouldScan(analysisRoot)) {
|
|
517
|
-
markCold("trivy", "not opted in (.pi-lens.json trivy.enabled) or no dependency manifest found");
|
|
518
|
-
return;
|
|
519
|
-
}
|
|
520
|
-
if (!(await clients.trivyClient.ensureAvailable())) {
|
|
521
|
-
markCold("trivy", reasonFromAvailabilityVerdict("trivy", clients.trivyClient.getAvailabilityVerdict?.()));
|
|
522
|
-
return;
|
|
523
|
-
}
|
|
524
|
-
const startMs = Date.now();
|
|
525
|
-
const result = await clients.trivyClient.scan(analysisRoot);
|
|
526
|
-
if (!result.success) {
|
|
527
|
-
recordFailed("trivy", result);
|
|
528
|
-
return;
|
|
529
|
-
}
|
|
530
|
-
cacheManager.writeCache("trivy", result, analysisRoot, {
|
|
531
|
-
scanDurationMs: Date.now() - startMs,
|
|
532
|
-
});
|
|
533
|
-
record("trivy", trivyResultToProjectDiagnostics(analysisRoot, result), Date.now() - startMs, result.analyzed === true, result);
|
|
534
|
-
}),
|
|
535
|
-
// dead-code — cross-file dead-code for non-JS/TS languages (#127).
|
|
536
|
-
// Each client self-gates via detect(); only matching-language projects
|
|
537
|
-
// incur the whole-tree scan. Run the applicable ones in parallel too.
|
|
538
|
-
task("dead-code", async () => {
|
|
539
|
-
const applicable = clients.deadCodeClients.filter((c) => c.detect(analysisRoot));
|
|
540
|
-
if (applicable.length === 0) {
|
|
541
|
-
markCold("dead-code", "no dead-code client detected an applicable language for this project");
|
|
542
|
-
return;
|
|
543
|
-
}
|
|
544
|
-
await Promise.all(applicable.map(async (client) => {
|
|
545
|
-
const cacheKey = `dead-code-${client.id}`;
|
|
546
|
-
const startMs = Date.now();
|
|
547
|
-
const result = await client.analyze(analysisRoot);
|
|
548
|
-
if (!result.success) {
|
|
549
|
-
recordFailed("dead-code", result);
|
|
550
|
-
return;
|
|
551
|
-
}
|
|
552
|
-
if (result.analyzed === true) {
|
|
553
|
-
cacheManager.writeCache(cacheKey, result, analysisRoot, {
|
|
554
|
-
scanDurationMs: Date.now() - startMs,
|
|
555
|
-
});
|
|
556
|
-
}
|
|
557
|
-
const adapted = deadCodeResultToProjectDiagnostics(analysisRoot, result);
|
|
558
|
-
record("dead-code", adapted, Date.now() - startMs, result.analyzed === true, result);
|
|
559
|
-
}));
|
|
560
|
-
}),
|
|
561
|
-
// test-runner — CACHE-READ only, unlike every task above (#1004). Its
|
|
562
|
-
// session cadence doesn't fit the "trigger-or-join a fresh run" shape the
|
|
563
|
-
// rest of this module uses: the actual scan is the per-edit turn_end fire
|
|
564
|
-
// in `runtime-turn.ts`, which only ever runs the (targeted, cascade-aware)
|
|
565
|
-
// test files touched by THIS turn's edits — there is no "whole project"
|
|
566
|
-
// test run to (re-)trigger here, and unconditionally spawning a full suite
|
|
567
|
-
// on every mode=full call would be the exact "heavy re-run on every call"
|
|
568
|
-
// cost this module's other tasks avoid via de-dupe/gating. So this task
|
|
569
|
-
// instead peeks at the `"test-runner-findings"` cache turn_end already
|
|
570
|
-
// wrote — the same cache key, the same adapter
|
|
571
|
-
// (`testRunnerFindingsToProjectDiagnostics`), and the same cache-only
|
|
572
|
-
// contract the pre-#585 `extractCachedProjectDiagnostics` registry's
|
|
573
|
-
// "test-runner" row used (see extractors.ts's removal note) — before #585
|
|
574
|
-
// dropped that reader without replacing this one row's semantics here.
|
|
575
|
-
// Deliberately never calls `writeCache`: there is nothing fresher to write
|
|
576
|
-
// back, only what turn_end already produced.
|
|
577
|
-
//
|
|
578
|
-
// No double-count / honesty gap (#533): explicit `pilens_turn_end`
|
|
579
|
-
// delivery may call `consumeTestFindings` (`runtime-context.ts`) to
|
|
580
|
-
// read-and-clear this SAME cache key once. Automatic Pi delivery uses a
|
|
581
|
-
// non-context custom entry and never consumes this pull-diagnostics cache.
|
|
582
|
-
// This task only ever reads (never clears) it, so it can't race that
|
|
583
|
-
// consumption into re-delivering a message twice — at most it surfaces
|
|
584
|
-
// the same underlying failures a second time, through a different
|
|
585
|
-
// surface (the mode=full project snapshot) that was previously silently
|
|
586
|
-
// empty for this analyzer. If `consumeTestFindings` already cleared the
|
|
587
|
-
// cache before this runs, this task correctly sees nothing and reports
|
|
588
|
-
// `cold` rather than inventing stale data.
|
|
589
|
-
task("test-runner", async () => {
|
|
590
|
-
const startMs = Date.now();
|
|
591
|
-
const cached = cacheManager.readCache("test-runner-findings", analysisRoot);
|
|
592
|
-
if (!cached?.data) {
|
|
593
|
-
markCold("test-runner", "no turn_end test-runner cache entry yet this session");
|
|
594
|
-
return;
|
|
595
|
-
}
|
|
596
|
-
// #1623: unlike every other lane in this module, test-runner is a
|
|
597
|
-
// cache-read BY DESIGN (see the task's own header comment above) — it
|
|
598
|
-
// never performs a fresh run this call, so its age must be surfaced
|
|
599
|
-
// the same way a genuinely-stale cache read would be, rather than
|
|
600
|
-
// looking indistinguishable from a lane that just executed.
|
|
601
|
-
cachedAgeMs["test-runner"] =
|
|
602
|
-
Date.now() - new Date(cached.meta.timestamp).getTime();
|
|
603
|
-
record("test-runner", testRunnerFindingsToProjectDiagnostics(cached.data, analysisRoot, options.runtime), Date.now() - startMs,
|
|
604
|
-
// Never authoritative: this lane reads the cache turn_end wrote,
|
|
605
|
-
// it never runs a suite over the root this call (#2154).
|
|
606
|
-
false);
|
|
607
|
-
}),
|
|
608
|
-
];
|
|
609
|
-
// Swallow any later rejection so an aborted-and-abandoned task can never
|
|
610
|
-
// surface as an unhandled rejection once this function has already
|
|
611
|
-
// returned partial results below.
|
|
612
|
-
const allSettled = Promise.all(tasks)
|
|
613
|
-
.then(() => "completed")
|
|
614
|
-
.catch(() => "completed");
|
|
615
|
-
const outcome = signal
|
|
616
|
-
? await Promise.race([
|
|
617
|
-
allSettled,
|
|
618
|
-
new Promise((resolve) => {
|
|
619
|
-
if (signal.aborted) {
|
|
620
|
-
resolve("aborted");
|
|
621
|
-
return;
|
|
622
|
-
}
|
|
623
|
-
signal.addEventListener("abort", () => resolve("aborted"), {
|
|
624
|
-
once: true,
|
|
625
|
-
});
|
|
626
|
-
}),
|
|
627
|
-
])
|
|
628
|
-
: await allSettled;
|
|
629
|
-
if (outcome === "aborted") {
|
|
630
|
-
const abortedIds = ANALYZER_IDS.filter((id) => !settledIds.has(id));
|
|
631
|
-
for (const id of abortedIds)
|
|
632
|
-
pushUnique(cold, id);
|
|
633
|
-
return {
|
|
634
|
-
analysisRootValidation,
|
|
635
|
-
diagnostics,
|
|
636
|
-
runners,
|
|
637
|
-
analyzed,
|
|
638
|
-
authoritativeCoverage,
|
|
639
|
-
cold,
|
|
640
|
-
coldReasons,
|
|
641
|
-
partial,
|
|
642
|
-
partialReasons,
|
|
643
|
-
failed,
|
|
644
|
-
timings,
|
|
645
|
-
cachedAgeMs,
|
|
646
|
-
aborted: true,
|
|
647
|
-
abortedIds,
|
|
648
|
-
dispositionSuppressed,
|
|
649
|
-
dispositionSuppressedByLane,
|
|
650
|
-
};
|
|
651
|
-
}
|
|
652
|
-
return {
|
|
653
|
-
analysisRootValidation,
|
|
654
|
-
diagnostics,
|
|
655
|
-
runners,
|
|
656
|
-
analyzed,
|
|
657
|
-
authoritativeCoverage,
|
|
658
|
-
cold,
|
|
659
|
-
coldReasons,
|
|
660
|
-
partial,
|
|
661
|
-
partialReasons,
|
|
662
|
-
failed,
|
|
663
|
-
timings,
|
|
664
|
-
cachedAgeMs,
|
|
665
|
-
dispositionSuppressed,
|
|
666
|
-
dispositionSuppressedByLane,
|
|
667
|
-
};
|
|
668
|
-
}
|