@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,236 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Quiet-window scheduler for pi 0.80.6's `agent_settled` extension event (#483).
|
|
3
|
-
*
|
|
4
|
-
* `agent_settled` fires after the SDK's `_runAgentPrompt` finally-block sets
|
|
5
|
-
* `_isAgentRunActive = false` — i.e. once the whole agent run (including any
|
|
6
|
-
* auto-retry/continue loop) is fully done, on BOTH normal completion and
|
|
7
|
-
* aborts/errors (it lives in a `finally`, not a success-only branch). It
|
|
8
|
-
* fires strictly after `agent_end`/`turn_end` for that run. Unlike
|
|
9
|
-
* `turn_end` — which fires while the next turn may already be looming and
|
|
10
|
-
* therefore bounds its cascade-settle wait tightly — `agent_settled` is a
|
|
11
|
-
* genuine idle window: nothing else is queued behind it until the user
|
|
12
|
-
* types again. That makes it the right home for expensive, deferrable work
|
|
13
|
-
* that would otherwise contend with live per-edit traffic.
|
|
14
|
-
*
|
|
15
|
-
* Feature detection: the SDK's extension registration (`pi.on(event, fn)`)
|
|
16
|
-
* pushes onto a plain `Map<string, handler[]>` keyed by the literal event
|
|
17
|
-
* string, with no allowlist or validation — registering an unknown event
|
|
18
|
-
* name is a silent no-op on older hosts (the emit side only look up
|
|
19
|
-
* handlers for events it actually emits). Registration therefore can't
|
|
20
|
-
* throw; we still wrap it in try/catch defensively, and every task run
|
|
21
|
-
* through this scheduler is independently isolated so a host that never
|
|
22
|
-
* fires the event simply never executes them.
|
|
23
|
-
*
|
|
24
|
-
* The SDK awaits each registered handler in sequence
|
|
25
|
-
* (`core/extensions/runner.js` `emit()`), and that `emit()` call is itself
|
|
26
|
-
* awaited inside `_emitAgentSettled()`, which is awaited inside
|
|
27
|
-
* `_runAgentPrompt`'s `finally`. A slow handler would therefore delay
|
|
28
|
-
* `_runAgentPrompt` returning — so the handler registered here must not
|
|
29
|
-
* await the task chain; it kicks the chain off unawaited (fire-and-forget)
|
|
30
|
-
* and returns immediately.
|
|
31
|
-
*/
|
|
32
|
-
import { readInstanceRegistry, updateHeartbeat, } from "./instance-registry.js";
|
|
33
|
-
import { logLatency } from "./latency-logger.js";
|
|
34
|
-
import { sampleProcesses } from "./resource-sampler.js";
|
|
35
|
-
import { _resetQuietWindowEnabledForTests, isQuietWindowEnabled, quietWindowWaitMs, } from "./quiet-window-config.js";
|
|
36
|
-
// Module-level registry so future work (#458 Tier-3 reconcile, #236
|
|
37
|
-
// enrichment) can plug into the same scheduler without touching it.
|
|
38
|
-
const _tasks = [];
|
|
39
|
-
/**
|
|
40
|
-
* Register a task to run sequentially during the quiet window. Each task is
|
|
41
|
-
* isolated in its own try/catch — one throwing never prevents the rest from
|
|
42
|
-
* running, and no failure propagates out of `runQuietWindow`.
|
|
43
|
-
*/
|
|
44
|
-
export function registerQuietWindowTask(name, fn) {
|
|
45
|
-
_tasks.push({ name, fn });
|
|
46
|
-
}
|
|
47
|
-
/** Test-only: clear the task registry between test files/cases. */
|
|
48
|
-
export function _resetQuietWindowTasksForTests() {
|
|
49
|
-
_tasks.length = 0;
|
|
50
|
-
}
|
|
51
|
-
// --- Kill switch and wait budget ---
|
|
52
|
-
//
|
|
53
|
-
// #1462 review (N4): both live in `quiet-window-config.ts` now, so a caller
|
|
54
|
-
// that needs only the numbers (`cascade-budget.ts`, on the dispatch load path)
|
|
55
|
-
// does not drag this module's `resource-sampler` → `pidusage` import in with
|
|
56
|
-
// them. Re-exported here so every existing importer is unaffected and there is
|
|
57
|
-
// still one memo behind `isQuietWindowEnabled`.
|
|
58
|
-
export { isQuietWindowEnabled, quietWindowWaitMs, _resetQuietWindowEnabledForTests, };
|
|
59
|
-
// Re-entrancy guard: agent_settled can fire multiple times per session
|
|
60
|
-
// (once per completed/aborted run). If a previous quiet-window run is still
|
|
61
|
-
// in flight when the next fires, skip rather than queue/overlap.
|
|
62
|
-
let _inProgress = false;
|
|
63
|
-
/**
|
|
64
|
-
* Run every registered quiet-window task sequentially, logging a
|
|
65
|
-
* `quiet_window` phase to the latency log. Never throws — every task
|
|
66
|
-
* failure is swallowed and logged; callers should invoke this
|
|
67
|
-
* fire-and-forget (do not await inside an SDK-awaited event handler).
|
|
68
|
-
*/
|
|
69
|
-
export async function runQuietWindow(deps) {
|
|
70
|
-
// `runtime` is accepted for API symmetry with turn_end's deps shape and
|
|
71
|
-
// for future built-in tasks that may need it directly; today's built-ins
|
|
72
|
-
// close over `getRuntime` via registerBuiltinQuietWindowTasks instead.
|
|
73
|
-
const { dbg, cwd } = deps;
|
|
74
|
-
if (!isQuietWindowEnabled()) {
|
|
75
|
-
logLatency({
|
|
76
|
-
type: "phase",
|
|
77
|
-
filePath: cwd ?? "<pi-lens>",
|
|
78
|
-
phase: "quiet_window",
|
|
79
|
-
durationMs: 0,
|
|
80
|
-
metadata: { skipped: "disabled" },
|
|
81
|
-
});
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
if (_inProgress) {
|
|
85
|
-
dbg("quiet_window: skipping — a previous run is still in progress");
|
|
86
|
-
logLatency({
|
|
87
|
-
type: "phase",
|
|
88
|
-
filePath: cwd ?? "<pi-lens>",
|
|
89
|
-
phase: "quiet_window",
|
|
90
|
-
durationMs: 0,
|
|
91
|
-
metadata: { skipped: "in-progress" },
|
|
92
|
-
});
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
_inProgress = true;
|
|
96
|
-
const totalStart = Date.now();
|
|
97
|
-
const results = [];
|
|
98
|
-
try {
|
|
99
|
-
for (const task of _tasks) {
|
|
100
|
-
const taskStart = Date.now();
|
|
101
|
-
let ok = true;
|
|
102
|
-
try {
|
|
103
|
-
await task.fn({
|
|
104
|
-
runtime: deps.runtime,
|
|
105
|
-
cwd: deps.cwd,
|
|
106
|
-
sessionId: deps.sessionId,
|
|
107
|
-
ownerId: deps.ownerId,
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
catch (err) {
|
|
111
|
-
ok = false;
|
|
112
|
-
// Surface the stack (not just the message) so the next failure is
|
|
113
|
-
// diagnosable from the log alone — a task can fail dozens of times
|
|
114
|
-
// and `${err}` (message only) may not pin the throw site. Still
|
|
115
|
-
// non-fatal: the loop continues and runQuietWindow never rethrows
|
|
116
|
-
// (see the finally below), so one bad task can't break the turn.
|
|
117
|
-
const detail = err instanceof Error
|
|
118
|
-
? (err.stack ?? `${err.name}: ${err.message}`)
|
|
119
|
-
: String(err);
|
|
120
|
-
dbg(`quiet_window: task "${task.name}" failed: ${detail}`);
|
|
121
|
-
}
|
|
122
|
-
results.push({
|
|
123
|
-
name: task.name,
|
|
124
|
-
durationMs: Date.now() - taskStart,
|
|
125
|
-
ok,
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
finally {
|
|
130
|
-
_inProgress = false;
|
|
131
|
-
logLatency({
|
|
132
|
-
type: "phase",
|
|
133
|
-
filePath: cwd ?? "<pi-lens>",
|
|
134
|
-
phase: "quiet_window",
|
|
135
|
-
durationMs: Date.now() - totalStart,
|
|
136
|
-
metadata: { tasks: results },
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Register the two built-in quiet-window tasks (#483):
|
|
142
|
-
* 1. carried-over cascade settle — a second, more generous attempt at
|
|
143
|
-
* draining cascade computes still pending after the turn_end cap
|
|
144
|
-
* (the #450 carry-over set in RuntimeCoordinator).
|
|
145
|
-
* 2. instance-registry heartbeat refresh (#449) — off the turn hot path.
|
|
146
|
-
*
|
|
147
|
-
* Idempotent guard via a module flag so repeated calls (e.g. multiple
|
|
148
|
-
* extension activations in tests) don't double-register.
|
|
149
|
-
*/
|
|
150
|
-
let _builtinsRegistered = false;
|
|
151
|
-
export function registerBuiltinQuietWindowTasks(getRuntime) {
|
|
152
|
-
if (_builtinsRegistered)
|
|
153
|
-
return;
|
|
154
|
-
_builtinsRegistered = true;
|
|
155
|
-
registerQuietWindowTask("cascade_carry_over_settle", async () => {
|
|
156
|
-
const runtime = getRuntime();
|
|
157
|
-
await runtime.settleCascadeRuns(quietWindowWaitMs());
|
|
158
|
-
});
|
|
159
|
-
registerQuietWindowTask("instance_registry_heartbeat", async () => {
|
|
160
|
-
await updateHeartbeat(await buildHeartbeatResourcePatchBounded());
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* #620 sampling can never take longer than this to answer — on Windows it
|
|
165
|
-
* shells out to PowerShell/CIM (via `pidusage`), which is normally fast but
|
|
166
|
-
* has no hard upper bound the way an in-process computation would. Per this
|
|
167
|
-
* repo's "async work needs both bounds" convention (a bulk/background step
|
|
168
|
-
* needs a timeout, not just a happy-path await), a slow/hung sample must
|
|
169
|
-
* still let the quiet-window task — and, transitively, the caller awaiting
|
|
170
|
-
* `runQuietWindow` — return promptly rather than block on it indefinitely.
|
|
171
|
-
*/
|
|
172
|
-
const HEARTBEAT_SAMPLE_TIMEOUT_MS = 2000;
|
|
173
|
-
/** Race `buildHeartbeatResourcePatch` against `HEARTBEAT_SAMPLE_TIMEOUT_MS`;
|
|
174
|
-
* a timeout resolves to `{}` (same "leave everything untouched" semantics as
|
|
175
|
-
* any other sampling failure — see the module docstring below). */
|
|
176
|
-
async function buildHeartbeatResourcePatchBounded() {
|
|
177
|
-
// #1097: clear the timeout once the race settles. An uncleared, REF'D
|
|
178
|
-
// setTimeout would keep the event loop alive for the full
|
|
179
|
-
// HEARTBEAT_SAMPLE_TIMEOUT_MS after `agent_settled` fires the quiet window —
|
|
180
|
-
// a same-class sibling of the LSP client-wait leak: harmless in a long-lived
|
|
181
|
-
// session, but a keep-alive tail in a one-shot `pi --print` process.
|
|
182
|
-
let timer;
|
|
183
|
-
try {
|
|
184
|
-
return await Promise.race([
|
|
185
|
-
buildHeartbeatResourcePatch(),
|
|
186
|
-
new Promise((resolve) => {
|
|
187
|
-
timer = setTimeout(() => resolve({}), HEARTBEAT_SAMPLE_TIMEOUT_MS);
|
|
188
|
-
}),
|
|
189
|
-
]);
|
|
190
|
-
}
|
|
191
|
-
finally {
|
|
192
|
-
if (timer)
|
|
193
|
-
clearTimeout(timer);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* #620: sample this process's host CPU% plus every currently-recorded LSP
|
|
198
|
-
* child's CPU%/RSS, once per heartbeat tick, and shape it into the patch
|
|
199
|
-
* `updateHeartbeat` expects. Lives here (not clients/instance-registry.ts)
|
|
200
|
-
* to keep that module a pure data store with no `pidusage` dependency of its
|
|
201
|
-
* own — this is the one call site that knows both "what's the heartbeat
|
|
202
|
-
* cadence" (quiet-window, off the turn hot path) and "what pids to sample"
|
|
203
|
-
* (this process's own registry entry).
|
|
204
|
-
*
|
|
205
|
-
* Best-effort end to end: any failure (registry read, sampling) resolves to
|
|
206
|
-
* `{}` — an empty patch leaves `updateHeartbeat` free to fall back to its own
|
|
207
|
-
* `process.memoryUsage().rss` default and leaves cpu/child values untouched,
|
|
208
|
-
* never zeroed.
|
|
209
|
-
*/
|
|
210
|
-
async function buildHeartbeatResourcePatch() {
|
|
211
|
-
try {
|
|
212
|
-
const instances = await readInstanceRegistry();
|
|
213
|
-
const self = instances.find((instance) => instance.pid === process.pid);
|
|
214
|
-
const childPids = self?.lspChildren.map((child) => child.pid) ?? [];
|
|
215
|
-
const usage = await sampleProcesses([process.pid, ...childPids]);
|
|
216
|
-
if (usage === null)
|
|
217
|
-
return {};
|
|
218
|
-
const childUsage = {};
|
|
219
|
-
for (const pid of childPids) {
|
|
220
|
-
const sample = usage.get(pid);
|
|
221
|
-
if (sample)
|
|
222
|
-
childUsage[pid] = sample;
|
|
223
|
-
}
|
|
224
|
-
return {
|
|
225
|
-
cpuPercent: usage.get(process.pid)?.cpuPercent,
|
|
226
|
-
childUsage,
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
catch {
|
|
230
|
-
return {};
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
/** Test-only: undo registerBuiltinQuietWindowTasks' idempotency guard. */
|
|
234
|
-
export function _resetBuiltinQuietWindowRegistrationForTests() {
|
|
235
|
-
_builtinsRegistered = false;
|
|
236
|
-
}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generic read-recording bridge for pi-lens.
|
|
3
|
-
*
|
|
4
|
-
* ## Trust model — explicitly advisory
|
|
5
|
-
*
|
|
6
|
-
* This bridge is an **advisory, trust-based protocol** for same-process Pi
|
|
7
|
-
* extensions. Any code sharing the same Node.js process already has full
|
|
8
|
-
* access to pi-lens's internal state, so the bridge cannot and does not
|
|
9
|
-
* provide a meaningful security boundary. What it *does* provide is:
|
|
10
|
-
*
|
|
11
|
-
* - A stable API surface so extensions do not need to import pi-lens
|
|
12
|
-
* internals directly.
|
|
13
|
-
* - A single place for flag/scope checks (no-read-guard, ignored paths).
|
|
14
|
-
* - Basic defensive validation to catch integration bugs early (malformed
|
|
15
|
-
* payloads).
|
|
16
|
-
*
|
|
17
|
-
* Mounts a `ReadBridge` object at `globalThis[READ_BRIDGE_KEY]` that any
|
|
18
|
-
* co-process extension can call to register a file read against pi-lens's
|
|
19
|
-
* read-guard — without either party needing to know about the other.
|
|
20
|
-
*
|
|
21
|
-
* Protocol (producer side)
|
|
22
|
-
* ────────────────────────
|
|
23
|
-
* A co-process Pi extension that performs file reads outside pi-lens's
|
|
24
|
-
* awareness (e.g. via a custom registered tool) can forward those reads so
|
|
25
|
-
* that a subsequent `edit` call on the same file is not blocked by the
|
|
26
|
-
* read-before-edit guard:
|
|
27
|
-
*
|
|
28
|
-
* const bridge = (globalThis as any)[Symbol.for("pi-lens:read-bridge")];
|
|
29
|
-
* bridge?.recordRead({
|
|
30
|
-
* filePath, // absolute path
|
|
31
|
-
* requestedOffset, // 1-indexed first line (default 1)
|
|
32
|
-
* requestedLimit, // line count, or undefined for the whole file
|
|
33
|
-
* consumer, // optional identifier, e.g. "my-extension" (appears in read-guard.log)
|
|
34
|
-
* });
|
|
35
|
-
*
|
|
36
|
-
* Check `bridge.version` before calling to guard against future incompatible
|
|
37
|
-
* changes — a bridge whose version you don't recognise should be treated as
|
|
38
|
-
* unsupported.
|
|
39
|
-
*
|
|
40
|
-
* The timestamp is stamped by the bridge itself (Date.now()) to match
|
|
41
|
-
* exactly how the internal read path works.
|
|
42
|
-
*
|
|
43
|
-
* Calling before pi-lens is loaded, or when the guard is disabled via
|
|
44
|
-
* `PI_LENS_NO_READ_GUARD`, is safe — the bridge is absent or the call is
|
|
45
|
-
* silently dropped.
|
|
46
|
-
*
|
|
47
|
-
* Protocol (registration side, internal to pi-lens)
|
|
48
|
-
* ──────────────────────────────────────────────────
|
|
49
|
-
* `registerReadBridge` is called once from inside the extension factory
|
|
50
|
-
* (after `getLensFlag` is available) via the `_readBridgeRegistered`
|
|
51
|
-
* singleton guard so that factory re-activations in the same process do not
|
|
52
|
-
* mount a second bridge.
|
|
53
|
-
*
|
|
54
|
-
* The `isRecordable` predicate is re-evaluated on every `recordRead` call
|
|
55
|
-
* using the *current* activation's flag getter (stored in a module-level
|
|
56
|
-
* holder refreshed on every factory activation — same pattern as
|
|
57
|
-
* `_turnSummaryEmitCtx`), so flag changes take effect immediately.
|
|
58
|
-
*/
|
|
59
|
-
/** Stable Symbol key — identical across module reloads in the same process. */
|
|
60
|
-
import { registerProcessBridge } from "./process-bridge.js";
|
|
61
|
-
import { captureReadContentBinding, } from "./read-guard.js";
|
|
62
|
-
export const READ_BRIDGE_KEY = Symbol.for("pi-lens:read-bridge");
|
|
63
|
-
/**
|
|
64
|
-
* Validate a raw entry from an untrusted caller.
|
|
65
|
-
* Returns `true` when the entry is structurally sound and safe to forward.
|
|
66
|
-
*
|
|
67
|
-
* Validation is deliberately lightweight — this is an advisory protocol
|
|
68
|
-
* between same-process extensions (see the module-level trust-model note).
|
|
69
|
-
* The goal is to catch integration bugs (typo'd fields, bad numbers) early
|
|
70
|
-
* rather than to enforce a security boundary.
|
|
71
|
-
*/
|
|
72
|
-
function isValidEntry(entry) {
|
|
73
|
-
if (typeof entry !== "object" || entry === null)
|
|
74
|
-
return false;
|
|
75
|
-
const e = entry;
|
|
76
|
-
// filePath must be a non-empty string (absolute paths are expected but
|
|
77
|
-
// we don't re-resolve here — `isRecordable` handles scope checks).
|
|
78
|
-
if (typeof e["filePath"] !== "string" || e["filePath"] === "")
|
|
79
|
-
return false;
|
|
80
|
-
// requestedOffset must be a finite integer ≥ 1.
|
|
81
|
-
const offset = e["requestedOffset"];
|
|
82
|
-
if (typeof offset !== "number" ||
|
|
83
|
-
!Number.isFinite(offset) ||
|
|
84
|
-
offset < 1 ||
|
|
85
|
-
!Number.isInteger(offset))
|
|
86
|
-
return false;
|
|
87
|
-
// requestedLimit must be undefined or a finite positive integer.
|
|
88
|
-
const limit = e["requestedLimit"];
|
|
89
|
-
if (limit !== undefined) {
|
|
90
|
-
if (typeof limit !== "number" ||
|
|
91
|
-
!Number.isFinite(limit) ||
|
|
92
|
-
limit < 1 ||
|
|
93
|
-
!Number.isInteger(limit))
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
return true;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Mount the bridge singleton. Call once from inside the extension factory
|
|
100
|
-
* (protected by the `_readBridgeRegistered` module-level flag). Subsequent
|
|
101
|
-
* calls are no-ops (first-wins, `clients/process-bridge.ts` owns the mount
|
|
102
|
-
* body — see that module's header, #2437).
|
|
103
|
-
*/
|
|
104
|
-
export function registerReadBridge(deps) {
|
|
105
|
-
registerProcessBridge(READ_BRIDGE_KEY, () => ({
|
|
106
|
-
version: 1,
|
|
107
|
-
recordRead(entry) {
|
|
108
|
-
// Validate the payload before doing anything else — this catches
|
|
109
|
-
// integration bugs in callers (malformed fields, bad numbers).
|
|
110
|
-
if (!isValidEntry(entry))
|
|
111
|
-
return;
|
|
112
|
-
if (!deps.isRecordable(entry.filePath))
|
|
113
|
-
return;
|
|
114
|
-
const offset = entry.requestedOffset;
|
|
115
|
-
// When no limit is given treat the whole file as covered — the
|
|
116
|
-
// guard clips to the actual line count via its own file-length
|
|
117
|
-
// probe.
|
|
118
|
-
const limit = entry.requestedLimit ?? Number.MAX_SAFE_INTEGER;
|
|
119
|
-
const contentBinding = captureReadContentBinding(entry.filePath, offset, limit);
|
|
120
|
-
deps.getReadGuard().recordRead({
|
|
121
|
-
filePath: entry.filePath,
|
|
122
|
-
requestedOffset: offset,
|
|
123
|
-
requestedLimit: limit,
|
|
124
|
-
effectiveOffset: offset,
|
|
125
|
-
effectiveLimit: limit,
|
|
126
|
-
expandedByLsp: false,
|
|
127
|
-
turnIndex: deps.getTurnIndex(),
|
|
128
|
-
writeIndex: deps.peekWriteIndex(),
|
|
129
|
-
// Stamp the timestamp here, matching exactly how the internal
|
|
130
|
-
// read path works (runtime-tool-call.ts always uses Date.now()).
|
|
131
|
-
timestamp: Date.now(),
|
|
132
|
-
// Provenance: identifies this record as bridge-sourced in
|
|
133
|
-
// read-guard.log.
|
|
134
|
-
source: `bridge:${entry.consumer ?? "unknown"}`,
|
|
135
|
-
...(contentBinding !== undefined && { contentBinding }),
|
|
136
|
-
});
|
|
137
|
-
},
|
|
138
|
-
}));
|
|
139
|
-
}
|
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tree-sitter–based read expansion for the read-before-edit guard.
|
|
3
|
-
*
|
|
4
|
-
* When an agent reads a small slice of a file, this module uses the tree-sitter
|
|
5
|
-
* AST to expand the read to cover the entire enclosing symbol (function, method,
|
|
6
|
-
* class). This gives the read guard accurate symbol-level coverage so edits
|
|
7
|
-
* within the symbol pass without requiring the agent to have read every line.
|
|
8
|
-
*/
|
|
9
|
-
import * as fs from "node:fs";
|
|
10
|
-
import { extname } from "node:path";
|
|
11
|
-
import { withBudget } from "./deadline-utils.js";
|
|
12
|
-
import { EXTENSION_TO_GRAMMAR } from "./language-registry.js";
|
|
13
|
-
/** Only expand reads smaller than this (lines). Larger reads don't benefit. */
|
|
14
|
-
export const EXPANSION_LIMIT_LINES = 100;
|
|
15
|
-
/** Don't expand to a symbol larger than this. */
|
|
16
|
-
const EXPANDED_SIZE_CAP_LINES = 300;
|
|
17
|
-
/** Async budget for tree-sitter parse + walk. */
|
|
18
|
-
export const EXPANSION_BUDGET_MS = 200;
|
|
19
|
-
/**
|
|
20
|
-
* The grammar this module would parse `filePath` with, or undefined when read
|
|
21
|
-
* expansion does not understand the extension. Exported so the
|
|
22
|
-
* language-identity golden snapshot can record this consumer's answer.
|
|
23
|
-
*/
|
|
24
|
-
export function readExpansionLanguage(filePath) {
|
|
25
|
-
return EXTENSION_TO_GRAMMAR[extname(filePath).toLowerCase()];
|
|
26
|
-
}
|
|
27
|
-
/** AST node types considered "enclosing symbols" for coverage purposes. */
|
|
28
|
-
const ENCLOSING_TYPES = {
|
|
29
|
-
typescript: [
|
|
30
|
-
"function_declaration",
|
|
31
|
-
"function_expression",
|
|
32
|
-
"arrow_function",
|
|
33
|
-
"method_definition",
|
|
34
|
-
"class_declaration",
|
|
35
|
-
],
|
|
36
|
-
tsx: [
|
|
37
|
-
"function_declaration",
|
|
38
|
-
"function_expression",
|
|
39
|
-
"arrow_function",
|
|
40
|
-
"method_definition",
|
|
41
|
-
"class_declaration",
|
|
42
|
-
],
|
|
43
|
-
javascript: [
|
|
44
|
-
"function_declaration",
|
|
45
|
-
"function_expression",
|
|
46
|
-
"arrow_function",
|
|
47
|
-
"method_definition",
|
|
48
|
-
"class_declaration",
|
|
49
|
-
],
|
|
50
|
-
python: ["function_definition", "class_definition", "decorated_definition"],
|
|
51
|
-
go: ["function_declaration", "method_declaration"],
|
|
52
|
-
rust: ["function_item", "impl_item"],
|
|
53
|
-
ruby: ["method", "class", "module"],
|
|
54
|
-
java: [
|
|
55
|
-
"method_declaration",
|
|
56
|
-
"constructor_declaration",
|
|
57
|
-
"class_declaration",
|
|
58
|
-
"interface_declaration",
|
|
59
|
-
"enum_declaration",
|
|
60
|
-
],
|
|
61
|
-
kotlin: ["function_declaration", "class_declaration", "object_declaration"],
|
|
62
|
-
dart: [
|
|
63
|
-
"function_declaration",
|
|
64
|
-
"method_declaration",
|
|
65
|
-
"class_definition",
|
|
66
|
-
"mixin_declaration",
|
|
67
|
-
],
|
|
68
|
-
elixir: ["call"],
|
|
69
|
-
c: ["function_definition"],
|
|
70
|
-
cpp: ["function_definition", "class_specifier", "struct_specifier"],
|
|
71
|
-
csharp: [
|
|
72
|
-
"method_declaration",
|
|
73
|
-
"constructor_declaration",
|
|
74
|
-
"class_declaration",
|
|
75
|
-
"interface_declaration",
|
|
76
|
-
"struct_declaration",
|
|
77
|
-
],
|
|
78
|
-
php: ["function_definition", "method_declaration", "class_declaration"],
|
|
79
|
-
swift: [
|
|
80
|
-
"function_declaration",
|
|
81
|
-
"class_declaration",
|
|
82
|
-
"protocol_declaration",
|
|
83
|
-
"init_declaration",
|
|
84
|
-
],
|
|
85
|
-
lua: ["function_declaration", "function_definition"],
|
|
86
|
-
ocaml: ["value_definition", "module_definition"],
|
|
87
|
-
zig: ["function_declaration"],
|
|
88
|
-
bash: ["function_definition"],
|
|
89
|
-
};
|
|
90
|
-
// biome-ignore lint/suspicious/noExplicitAny: tree-sitter AST node
|
|
91
|
-
function findEnclosingNodeForRange(node, startRow, endRow, types) {
|
|
92
|
-
const nodeStartRow = node.startPosition?.row ?? 0;
|
|
93
|
-
// biome-ignore lint/suspicious/noExplicitAny: endPosition not declared in local interface
|
|
94
|
-
const nodeEndRow = node.endPosition?.row ?? nodeStartRow;
|
|
95
|
-
if (endRow < nodeStartRow || startRow > nodeEndRow)
|
|
96
|
-
return undefined;
|
|
97
|
-
// Prefer deepest overlapping match — check children first.
|
|
98
|
-
for (const child of node.children ?? []) {
|
|
99
|
-
const match = findEnclosingNodeForRange(child, startRow, endRow, types);
|
|
100
|
-
if (match)
|
|
101
|
-
return match;
|
|
102
|
-
}
|
|
103
|
-
return types.includes(node.type) ? node : undefined;
|
|
104
|
-
}
|
|
105
|
-
// biome-ignore lint/suspicious/noExplicitAny: tree-sitter AST node
|
|
106
|
-
function getSymbolName(node) {
|
|
107
|
-
for (const child of node.children ?? []) {
|
|
108
|
-
if (child.type === "identifier" ||
|
|
109
|
-
child.type === "property_identifier" ||
|
|
110
|
-
child.type === "name") {
|
|
111
|
-
return child.text;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return node.type;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Walk parent nodes from `node` upward, collecting every ancestor that is
|
|
118
|
-
* one of the enclosing symbol types. Returns them outermost-first.
|
|
119
|
-
*/
|
|
120
|
-
// biome-ignore lint/suspicious/noExplicitAny: tree-sitter AST node
|
|
121
|
-
function buildAncestryChain(node, types) {
|
|
122
|
-
const chain = [];
|
|
123
|
-
// biome-ignore lint/suspicious/noExplicitAny: tree-sitter parent node
|
|
124
|
-
let current = node.parent;
|
|
125
|
-
while (current) {
|
|
126
|
-
if (types.includes(current.type)) {
|
|
127
|
-
chain.push({
|
|
128
|
-
name: getSymbolName(current),
|
|
129
|
-
kind: current.type,
|
|
130
|
-
startLine: (current.startPosition?.row ?? 0) + 1,
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
current = current.parent;
|
|
134
|
-
}
|
|
135
|
-
return chain.reverse(); // outermost first
|
|
136
|
-
}
|
|
137
|
-
function tryExpandMarkdownSection(content, requestedStartRow, requestedLimit, totalLines) {
|
|
138
|
-
const lines = content.split(/\r?\n/);
|
|
139
|
-
const lastRow = totalLines - 1;
|
|
140
|
-
// Find heading at or before the requested start row
|
|
141
|
-
let headingLevel = 7;
|
|
142
|
-
let sectionStartRow = 0;
|
|
143
|
-
let headingText = "";
|
|
144
|
-
for (let i = requestedStartRow; i >= 0; i--) {
|
|
145
|
-
const match = lines[i]?.match(/^(#{1,6})\s+(.*)/);
|
|
146
|
-
if (match) {
|
|
147
|
-
headingLevel = match[1].length;
|
|
148
|
-
sectionStartRow = i;
|
|
149
|
-
headingText = match[2].trim();
|
|
150
|
-
break;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
// Find end: next heading of same or higher level (smaller or equal number)
|
|
154
|
-
let sectionEndRow = lastRow;
|
|
155
|
-
for (let i = sectionStartRow + 1; i <= lastRow; i++) {
|
|
156
|
-
const match = lines[i]?.match(/^(#{1,6})\s+/);
|
|
157
|
-
if (match && match[1].length <= headingLevel) {
|
|
158
|
-
sectionEndRow = i - 1;
|
|
159
|
-
break;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
const expandedStart = sectionStartRow + 1;
|
|
163
|
-
const expandedEnd = sectionEndRow + 1;
|
|
164
|
-
const expandedSize = expandedEnd - expandedStart + 1;
|
|
165
|
-
if (expandedSize > EXPANDED_SIZE_CAP_LINES)
|
|
166
|
-
return undefined;
|
|
167
|
-
if (expandedSize <= requestedLimit)
|
|
168
|
-
return undefined;
|
|
169
|
-
return {
|
|
170
|
-
newOffset: expandedStart,
|
|
171
|
-
newLimit: expandedSize,
|
|
172
|
-
enclosingSymbol: {
|
|
173
|
-
name: headingText || "(untitled section)",
|
|
174
|
-
kind: "markdown_section",
|
|
175
|
-
startLine: expandedStart,
|
|
176
|
-
endLine: expandedEnd,
|
|
177
|
-
},
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Attempt to expand a partial read to its enclosing symbol using tree-sitter.
|
|
182
|
-
*
|
|
183
|
-
* Returns undefined when:
|
|
184
|
-
* - The file extension has no grammar
|
|
185
|
-
* - The read is large (> EXPANSION_LIMIT_LINES) — already covers enough
|
|
186
|
-
* - No enclosing symbol overlaps the requested read span
|
|
187
|
-
* - The enclosing symbol is larger than EXPANDED_SIZE_CAP_LINES
|
|
188
|
-
* - Tree-sitter init/parse exceeds EXPANSION_BUDGET_MS
|
|
189
|
-
*/
|
|
190
|
-
export async function tryExpandRead(filePath, requestedOffset, requestedLimit, totalLines, tsClient) {
|
|
191
|
-
if (requestedLimit > EXPANSION_LIMIT_LINES)
|
|
192
|
-
return undefined;
|
|
193
|
-
if (requestedLimit >= totalLines)
|
|
194
|
-
return undefined;
|
|
195
|
-
const ext = filePath.slice(filePath.lastIndexOf(".")).toLowerCase();
|
|
196
|
-
const startedAt = Date.now();
|
|
197
|
-
try {
|
|
198
|
-
const content = fs.readFileSync(filePath, "utf8");
|
|
199
|
-
// Fast path: Markdown section expansion (no tree-sitter needed)
|
|
200
|
-
if (ext === ".md" || ext === ".mdx") {
|
|
201
|
-
const requestedStartRow = requestedOffset - 1;
|
|
202
|
-
const result = tryExpandMarkdownSection(content, requestedStartRow, requestedLimit, totalLines);
|
|
203
|
-
if (!result)
|
|
204
|
-
return undefined;
|
|
205
|
-
return { ...result, durationMs: Date.now() - startedAt };
|
|
206
|
-
}
|
|
207
|
-
const languageId = readExpansionLanguage(filePath);
|
|
208
|
-
if (!languageId)
|
|
209
|
-
return undefined;
|
|
210
|
-
const enclosingTypes = ENCLOSING_TYPES[languageId];
|
|
211
|
-
if (!enclosingTypes)
|
|
212
|
-
return undefined;
|
|
213
|
-
const initOk = await withBudget(tsClient.init(), EXPANSION_BUDGET_MS);
|
|
214
|
-
if (!initOk)
|
|
215
|
-
return undefined;
|
|
216
|
-
const remaining = Math.max(0, EXPANSION_BUDGET_MS - (Date.now() - startedAt));
|
|
217
|
-
// tree-sitter rows are 0-indexed; offsets are 1-indexed
|
|
218
|
-
const requestedStartRow = requestedOffset - 1;
|
|
219
|
-
const requestedEndRow = Math.min(totalLines - 1, requestedOffset + requestedLimit - 2);
|
|
220
|
-
// Resolve the enclosing node INSIDE the cache-safe callback: a tree handed
|
|
221
|
-
// back across an await can be retired by another consumer's eviction (#417).
|
|
222
|
-
const parsed = await withBudget(tsClient.withParsedTree(filePath, languageId, content, (tree) => {
|
|
223
|
-
// biome-ignore lint/suspicious/noExplicitAny: tree-sitter root node
|
|
224
|
-
const node = findEnclosingNodeForRange(tree.rootNode, requestedStartRow, requestedEndRow, enclosingTypes);
|
|
225
|
-
if (!node)
|
|
226
|
-
return undefined;
|
|
227
|
-
return {
|
|
228
|
-
name: getSymbolName(node),
|
|
229
|
-
kind: node.type,
|
|
230
|
-
startRow: node.startPosition.row,
|
|
231
|
-
// biome-ignore lint/suspicious/noExplicitAny: endPosition not in local interface
|
|
232
|
-
endRow: node.endPosition?.row ?? node.startPosition.row,
|
|
233
|
-
ancestry: buildAncestryChain(node, enclosingTypes),
|
|
234
|
-
};
|
|
235
|
-
}), remaining);
|
|
236
|
-
const enclosing = parsed?.parsed ? parsed.value : undefined;
|
|
237
|
-
if (!enclosing)
|
|
238
|
-
return undefined;
|
|
239
|
-
const symbolStart = enclosing.startRow + 1;
|
|
240
|
-
const symbolEnd = enclosing.endRow + 1;
|
|
241
|
-
const requestedStartLine = requestedOffset;
|
|
242
|
-
const requestedEndLine = requestedEndRow + 1;
|
|
243
|
-
const expandedStart = Math.min(requestedStartLine, symbolStart);
|
|
244
|
-
const expandedEnd = Math.max(requestedEndLine, symbolEnd);
|
|
245
|
-
const expandedSize = expandedEnd - expandedStart + 1;
|
|
246
|
-
if (expandedSize > EXPANDED_SIZE_CAP_LINES)
|
|
247
|
-
return undefined;
|
|
248
|
-
if (expandedSize <= requestedLimit)
|
|
249
|
-
return undefined;
|
|
250
|
-
return {
|
|
251
|
-
newOffset: expandedStart,
|
|
252
|
-
newLimit: expandedSize,
|
|
253
|
-
enclosingSymbol: {
|
|
254
|
-
name: enclosing.name,
|
|
255
|
-
kind: enclosing.kind,
|
|
256
|
-
startLine: symbolStart,
|
|
257
|
-
endLine: symbolEnd,
|
|
258
|
-
},
|
|
259
|
-
ancestry: enclosing.ancestry.length > 0 ? enclosing.ancestry : undefined,
|
|
260
|
-
durationMs: Date.now() - startedAt,
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
catch {
|
|
264
|
-
return undefined;
|
|
265
|
-
}
|
|
266
|
-
}
|