@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,128 +0,0 @@
|
|
|
1
|
-
import { normalizeForGuardMatch } from "./host-edit-normalize.js";
|
|
2
|
-
/**
|
|
3
|
-
* Normalize text the same way the read-guard's match-counter does — now the
|
|
4
|
-
* host edit tool's full fuzzy-match space (BOM + lone-CR -> LF, NFKC, smart
|
|
5
|
-
* quotes/dashes/spaces, trailing-ws trim). Used as the canonical form for
|
|
6
|
-
* comparing oldText against file content so the autopatch bridge resolves the
|
|
7
|
-
* same span the host would apply (#257). Kept in lockstep with the gate's
|
|
8
|
-
* `normalizeContent` and index.ts's `normalizeOldTextForMatch`.
|
|
9
|
-
*/
|
|
10
|
-
export function normalizeOldTextForMatch(text) {
|
|
11
|
-
return normalizeForGuardMatch(text);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Locate the line range of a uniquely-matching oldText inside the
|
|
15
|
-
* trim-end-normalized file content. Returns `undefined` when the needle
|
|
16
|
-
* is empty, not found, or matches more than once. Lines are 1-indexed.
|
|
17
|
-
*
|
|
18
|
-
* Used by the autopatch → synthetic-read bridge: a successful unique-match
|
|
19
|
-
* autopatch (indent or trailing-ws) proves the agent's oldText reflects
|
|
20
|
-
* real content at that span, so we can safely register a synthetic read
|
|
21
|
-
* covering it and avoid a downstream zero_read block.
|
|
22
|
-
*/
|
|
23
|
-
export function findUniqueMatchLineRange(matchNormalizedContent, oldText) {
|
|
24
|
-
const needle = normalizeOldTextForMatch(oldText);
|
|
25
|
-
if (!needle)
|
|
26
|
-
return undefined;
|
|
27
|
-
const firstIdx = matchNormalizedContent.indexOf(needle);
|
|
28
|
-
if (firstIdx === -1)
|
|
29
|
-
return undefined;
|
|
30
|
-
const secondIdx = matchNormalizedContent.indexOf(needle, firstIdx + needle.length);
|
|
31
|
-
if (secondIdx !== -1)
|
|
32
|
-
return undefined;
|
|
33
|
-
let startLine = 1;
|
|
34
|
-
for (let i = 0; i < firstIdx; i++) {
|
|
35
|
-
if (matchNormalizedContent.charCodeAt(i) === 10)
|
|
36
|
-
startLine++;
|
|
37
|
-
}
|
|
38
|
-
let lineCount = 1;
|
|
39
|
-
for (let i = 0; i < needle.length; i++) {
|
|
40
|
-
if (needle.charCodeAt(i) === 10)
|
|
41
|
-
lineCount++;
|
|
42
|
-
}
|
|
43
|
-
return { startLine, endLine: startLine + lineCount - 1 };
|
|
44
|
-
}
|
|
45
|
-
function normalizeLf(value) {
|
|
46
|
-
return value.replace(/\r\n/g, "\n");
|
|
47
|
-
}
|
|
48
|
-
function countOccurrences(haystack, needle) {
|
|
49
|
-
if (!needle)
|
|
50
|
-
return 0;
|
|
51
|
-
let count = 0;
|
|
52
|
-
let pos = 0;
|
|
53
|
-
while (pos < haystack.length) {
|
|
54
|
-
const idx = haystack.indexOf(needle, pos);
|
|
55
|
-
if (idx === -1)
|
|
56
|
-
break;
|
|
57
|
-
count += 1;
|
|
58
|
-
pos = idx + needle.length;
|
|
59
|
-
}
|
|
60
|
-
return count;
|
|
61
|
-
}
|
|
62
|
-
export function stripTrailingWhitespaceDetailed(value) {
|
|
63
|
-
const lines = normalizeLf(value).split("\n");
|
|
64
|
-
let removedLineTrailingWhitespace = false;
|
|
65
|
-
const strippedLines = lines.map((line) => {
|
|
66
|
-
const stripped = line.trimEnd();
|
|
67
|
-
if (stripped !== line)
|
|
68
|
-
removedLineTrailingWhitespace = true;
|
|
69
|
-
return stripped;
|
|
70
|
-
});
|
|
71
|
-
let removedTrailingEmptyLineCount = 0;
|
|
72
|
-
while (strippedLines.length > 1 &&
|
|
73
|
-
strippedLines[strippedLines.length - 1] === "") {
|
|
74
|
-
strippedLines.pop();
|
|
75
|
-
removedTrailingEmptyLineCount += 1;
|
|
76
|
-
}
|
|
77
|
-
return {
|
|
78
|
-
text: strippedLines.join("\n"),
|
|
79
|
-
removedLineTrailingWhitespace,
|
|
80
|
-
removedTrailingEmptyLineCount,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
function stripEquivalentTrailingEmptyLines(value, maxCount) {
|
|
84
|
-
if (maxCount <= 0)
|
|
85
|
-
return value;
|
|
86
|
-
const lines = normalizeLf(value).split("\n");
|
|
87
|
-
let removed = 0;
|
|
88
|
-
while (removed < maxCount && lines.length > 1) {
|
|
89
|
-
const last = lines[lines.length - 1];
|
|
90
|
-
if (last.trim() !== "")
|
|
91
|
-
break;
|
|
92
|
-
lines.pop();
|
|
93
|
-
removed += 1;
|
|
94
|
-
}
|
|
95
|
-
return lines.join("\n");
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Build the safe Pass 1 oldText trailing-whitespace patch.
|
|
99
|
-
*
|
|
100
|
-
* Safety contract:
|
|
101
|
-
* - only patch when the original raw oldText does NOT already match the file
|
|
102
|
-
* - require the stripped raw candidate to match exactly once
|
|
103
|
-
* - distinguish ordinary line-end whitespace from trailing empty-line removal
|
|
104
|
-
* - when trailing empty lines are removed from oldText, remove the equivalent
|
|
105
|
-
* trailing empty-line suffix from newText so the replacement span is preserved
|
|
106
|
-
*/
|
|
107
|
-
export function computeTrailingWhitespaceOldTextPatch(args) {
|
|
108
|
-
const fileContentLf = normalizeLf(args.fileContent);
|
|
109
|
-
const original = normalizeLf(args.oldText);
|
|
110
|
-
const stripped = stripTrailingWhitespaceDetailed(args.oldText);
|
|
111
|
-
if (stripped.text === original)
|
|
112
|
-
return undefined;
|
|
113
|
-
// If the original already matches exactly, do not shrink the replacement span.
|
|
114
|
-
if (countOccurrences(fileContentLf, original) !== 0)
|
|
115
|
-
return undefined;
|
|
116
|
-
// Only patch when the exact stripped candidate is unambiguous in the real file.
|
|
117
|
-
if (countOccurrences(fileContentLf, stripped.text) !== 1)
|
|
118
|
-
return undefined;
|
|
119
|
-
const patchedNewText = args.newText !== undefined && stripped.removedTrailingEmptyLineCount > 0
|
|
120
|
-
? stripEquivalentTrailingEmptyLines(args.newText, stripped.removedTrailingEmptyLineCount)
|
|
121
|
-
: args.newText;
|
|
122
|
-
return {
|
|
123
|
-
oldText: stripped.text,
|
|
124
|
-
newText: patchedNewText,
|
|
125
|
-
removedLineTrailingWhitespace: stripped.removedLineTrailingWhitespace,
|
|
126
|
-
removedTrailingEmptyLineCount: stripped.removedTrailingEmptyLineCount,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
@@ -1,496 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Opaque-mutation recovery (#2000 phase 2).
|
|
3
|
-
*
|
|
4
|
-
* A bash command whose writes are NOT recognized by
|
|
5
|
-
* `extractWrittenPathsFromCommand` (python/node/perl/PowerShell internal
|
|
6
|
-
* writes, restores) previously bypassed dispatch AND read-guard authorship.
|
|
7
|
-
* This module observes what such a command actually changed.
|
|
8
|
-
*
|
|
9
|
-
* GIT-FIRST STRATEGY: inside a git worktree the pre side records only a
|
|
10
|
-
* TIMESTAMP; the post side asks `git status --porcelain` which files are
|
|
11
|
-
* dirty and keeps those whose mtime falls inside the command's window.
|
|
12
|
-
* This has NO file-universe bound — it works identically on a 10-file site
|
|
13
|
-
* and a 5000-file monorepo, and content-identical rewrites are correctly
|
|
14
|
-
* NOT reported (a false positive the pure stat-diff design produced).
|
|
15
|
-
*
|
|
16
|
-
* NON-GIT FALLBACK: outside git the pre side takes a bounded stat snapshot
|
|
17
|
-
* (cap enforced, cooperative budget) and the post side diffs it — the
|
|
18
|
-
* original design, kept honestly scoped to small non-git trees.
|
|
19
|
-
*
|
|
20
|
-
* Every failure mode yields an explicit UNKNOWN verdict to the caller —
|
|
21
|
-
* never a clean claim (issue invariant 3). All path keys use
|
|
22
|
-
* normalizeMapKey+resolve, joining the mutation-seam's key form.
|
|
23
|
-
*
|
|
24
|
-
* KNOWN LIMITATIONS:
|
|
25
|
-
* - shape 6: stat-diff identity is size+mtimeMs PLUS a budgeted content-hash
|
|
26
|
-
* confirm (withHashes captures sha1 up to OPAQUE_HASH_BUDGET_BYTES); a
|
|
27
|
-
* same-tick/same-size rewrite is detected when both sides hashed the file,
|
|
28
|
-
* and degrades to mtime+size for files past the hash budget. The git path
|
|
29
|
-
* detects any content change regardless.
|
|
30
|
-
* - INVARIANT 4 (per issue): ignored/vendor paths are EXCLUDED. Under the
|
|
31
|
-
* git strategy this means writes landing ONLY in .gitignore'd locations
|
|
32
|
-
* are never reported - an all-ignored write set reads as an empty (clean)
|
|
33
|
-
* recovery BY SPEC, not by oversight. Codegen targeting dist/build-style
|
|
34
|
-
* outputs should use explicit redirect destinations so the extractor
|
|
35
|
-
* recognizes them.
|
|
36
|
-
*/
|
|
37
|
-
import * as fs from "node:fs";
|
|
38
|
-
import * as path from "node:path";
|
|
39
|
-
import { collectSourceFilesWithBudgetAsync } from "./source-filter.js";
|
|
40
|
-
import { createHash } from "node:crypto";
|
|
41
|
-
import { normalizeMapKey } from "./path-utils.js";
|
|
42
|
-
import { freshnessFromMtime } from "./freshness.js";
|
|
43
|
-
import { safeSpawnAsync } from "./safe-spawn.js";
|
|
44
|
-
import { truncatedByOutputCap } from "./spawn-output-cap.js";
|
|
45
|
-
/** Stop hashing once this many cumulative bytes were read (per capture). */
|
|
46
|
-
const OPAQUE_HASH_BUDGET_BYTES = 8 * 1024 * 1024;
|
|
47
|
-
/** Hard cap on scanned files — beyond it the verdict is coverage-unknown. */
|
|
48
|
-
export const OPAQUE_SCAN_MAX_FILES = 2000;
|
|
49
|
-
/** How far before recorded start an earlier write may still be attributed. */
|
|
50
|
-
const OPAQUE_MTIME_TOLERANCE_MS = 150;
|
|
51
|
-
// `--untracked-files=all` lists untracked files individually instead of
|
|
52
|
-
// collapsing them per directory (it does NOT add ignored paths — that needs
|
|
53
|
-
// `--ignored`), so the worst realistic case is a working tree with a large
|
|
54
|
-
// unignored generated or vendored directory, and a rename entry costs two
|
|
55
|
-
// paths. 16 MiB is a blast-radius bound on that, well past any tree this can
|
|
56
|
-
// answer usefully about, and it is what makes the truncation guard below
|
|
57
|
-
// reachable at all (#2100).
|
|
58
|
-
const MAX_GIT_STATUS_OUTPUT_BYTES = 16 * 1024 * 1024;
|
|
59
|
-
/**
|
|
60
|
-
* Stat (and optionally hash) an EXPLICIT file list into a snapshot.
|
|
61
|
-
*
|
|
62
|
-
* Extracted from `captureFileStats` so the observational net (#2430) reuses
|
|
63
|
-
* exactly this identity function — same key form, same hash algorithm, same
|
|
64
|
-
* byte budget — instead of hand-rolling a second scanner whose diff could
|
|
65
|
-
* disagree with `diffFileStats`. The walk-and-cap half stays in
|
|
66
|
-
* `captureFileStats`; a caller that already knows its file set skips it.
|
|
67
|
-
*
|
|
68
|
-
* `hashBudgetBytes` defaults to {@link OPAQUE_HASH_BUDGET_BYTES}. A file past
|
|
69
|
-
* the budget simply carries no hash, and its comparison degrades to
|
|
70
|
-
* mtime+size — the same documented limitation the walking capture has.
|
|
71
|
-
*
|
|
72
|
-
* `deadlineMs` (an absolute epoch stamp) and `signal` are both checked
|
|
73
|
-
* BETWEEN files, so a multi-path capture cannot outrun either bound. The FIRST
|
|
74
|
-
* entry always runs: the observational net's settle (#2430) guarantees the
|
|
75
|
-
* target path it took a baseline for is re-captured no matter what the clock
|
|
76
|
-
* says (#2449 review round 2, F5), and a bound that could cut the one path the
|
|
77
|
-
* caller actually asked about would drop a mutation already measured.
|
|
78
|
-
*
|
|
79
|
-
* There was a synchronous twin of this function until #2449 review round 3
|
|
80
|
-
* (T4). It existed only so `handleToolResult` could settle an observation
|
|
81
|
-
* without yielding; the settle is an ordinary async step now, and blocking the
|
|
82
|
-
* event loop on a directory's worth of `readFileSync` was never worth the
|
|
83
|
-
* ordering shortcut it bought.
|
|
84
|
-
*/
|
|
85
|
-
export async function captureFileStatsForPaths(files, options = {}) {
|
|
86
|
-
const hashBudget = options.hashBudgetBytes ?? OPAQUE_HASH_BUDGET_BYTES;
|
|
87
|
-
const snapshot = new Map();
|
|
88
|
-
let hashBytesSpent = 0;
|
|
89
|
-
let stoppedEarly = false;
|
|
90
|
-
let first = true;
|
|
91
|
-
for (const file of files) {
|
|
92
|
-
if (!first) {
|
|
93
|
-
if (options.signal?.aborted === true) {
|
|
94
|
-
stoppedEarly = true;
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
if (options.deadlineMs !== undefined &&
|
|
98
|
-
Date.now() >= options.deadlineMs) {
|
|
99
|
-
stoppedEarly = true;
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
first = false;
|
|
104
|
-
try {
|
|
105
|
-
const stat = await fs.promises.stat(file);
|
|
106
|
-
if (!stat.isFile())
|
|
107
|
-
continue;
|
|
108
|
-
const entry = {
|
|
109
|
-
mtimeMs: stat.mtimeMs,
|
|
110
|
-
size: stat.size,
|
|
111
|
-
};
|
|
112
|
-
if (options.withHashes && hashBytesSpent + stat.size <= hashBudget) {
|
|
113
|
-
entry.hash = createHash("sha256")
|
|
114
|
-
.update(await fs.promises.readFile(file))
|
|
115
|
-
.digest("hex");
|
|
116
|
-
hashBytesSpent += stat.size;
|
|
117
|
-
}
|
|
118
|
-
snapshot.set(normalizeMapKey(path.resolve(file)), entry);
|
|
119
|
-
}
|
|
120
|
-
catch {
|
|
121
|
-
// Vanished mid-walk: absent from both snapshots = unchanged-by-absence.
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return { snapshot, stoppedEarly };
|
|
125
|
-
}
|
|
126
|
-
export async function captureFileStats(root, options = {}) {
|
|
127
|
-
if (options.forcedUnknownReason !== undefined) {
|
|
128
|
-
return { unknownReason: options.forcedUnknownReason, scannedCount: 0 };
|
|
129
|
-
}
|
|
130
|
-
const budgetMs = options.budgetMs ?? 50;
|
|
131
|
-
try {
|
|
132
|
-
const walk = await collectSourceFilesWithBudgetAsync(root, {
|
|
133
|
-
maxFiles: OPAQUE_SCAN_MAX_FILES + 1,
|
|
134
|
-
budgetMs,
|
|
135
|
-
});
|
|
136
|
-
const files = walk.files;
|
|
137
|
-
if (walk.entryBudgetExceeded || files.length > OPAQUE_SCAN_MAX_FILES) {
|
|
138
|
-
// A PARTIAL universe must never read as a confident diff (invariant
|
|
139
|
-
// 3): writes in the unvisited tail would silently vanish.
|
|
140
|
-
return {
|
|
141
|
-
unknownReason: walk.entryBudgetExceeded
|
|
142
|
-
? "entry-budget-exceeded"
|
|
143
|
-
: "file-cap-exceeded",
|
|
144
|
-
scannedCount: files.length,
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
const { snapshot } = await captureFileStatsForPaths(files, options);
|
|
148
|
-
return { snapshot, scannedCount: snapshot.size };
|
|
149
|
-
}
|
|
150
|
-
catch {
|
|
151
|
-
return { unknownReason: "walk-failed", scannedCount: 0 };
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/** Paths added or whose size/mtime changed. Deletions are NOT reported. */
|
|
155
|
-
export function diffFileStats(before, after) {
|
|
156
|
-
const contentChanged = new Set(diffFileContent(before, after));
|
|
157
|
-
const changed = [];
|
|
158
|
-
for (const [key, stat] of after) {
|
|
159
|
-
const prev = before.get(key);
|
|
160
|
-
// Content confirm: same mtime tick + same size but different bytes.
|
|
161
|
-
const contentConfirm = contentChanged.has(key);
|
|
162
|
-
if (!prev ||
|
|
163
|
-
prev.mtimeMs !== stat.mtimeMs ||
|
|
164
|
-
prev.size !== stat.size ||
|
|
165
|
-
contentConfirm) {
|
|
166
|
-
changed.push(key);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
return changed;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Return paths confirmed different by hashes, plus files absent before and
|
|
173
|
-
* present after. A missing baseline entry is evidence of creation; a missing
|
|
174
|
-
* hash on an existing entry remains unknown.
|
|
175
|
-
*/
|
|
176
|
-
export function diffFileContent(before, after) {
|
|
177
|
-
const changed = [];
|
|
178
|
-
for (const [key, stat] of after) {
|
|
179
|
-
const previous = before.get(key);
|
|
180
|
-
if (previous === undefined ||
|
|
181
|
-
(previous.hash !== undefined &&
|
|
182
|
-
stat.hash !== undefined &&
|
|
183
|
-
previous.hash !== stat.hash)) {
|
|
184
|
-
changed.push(key);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
return changed;
|
|
188
|
-
}
|
|
189
|
-
export class OpaqueBaselineStore {
|
|
190
|
-
byCwd = new Map();
|
|
191
|
-
evictions = 0;
|
|
192
|
-
record(cwdKey, baseline) {
|
|
193
|
-
if (this.byCwd.has(cwdKey))
|
|
194
|
-
this.evictions += 1;
|
|
195
|
-
this.byCwd.set(cwdKey, baseline);
|
|
196
|
-
}
|
|
197
|
-
take(cwdKey) {
|
|
198
|
-
const baseline = this.byCwd.get(cwdKey);
|
|
199
|
-
this.byCwd.delete(cwdKey);
|
|
200
|
-
return baseline;
|
|
201
|
-
}
|
|
202
|
-
get evictionCount() {
|
|
203
|
-
return this.evictions;
|
|
204
|
-
}
|
|
205
|
-
/** Session-boundary clear - unconsumed baselines are unreachable after reset. */
|
|
206
|
-
takeAllForTest() {
|
|
207
|
-
this.byCwd.clear();
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
const globalStoreSymbol = Symbol.for("pi-lens:opaque-snapshot-store");
|
|
211
|
-
const globalSlot = globalThis;
|
|
212
|
-
export function getOpaqueBaselineStore() {
|
|
213
|
-
const existing = globalSlot[globalStoreSymbol]?.store;
|
|
214
|
-
if (existing)
|
|
215
|
-
return existing;
|
|
216
|
-
const created = new OpaqueBaselineStore();
|
|
217
|
-
globalSlot[globalStoreSymbol] = { store: created };
|
|
218
|
-
return created;
|
|
219
|
-
}
|
|
220
|
-
const gitRepoMemo = new Map();
|
|
221
|
-
/**
|
|
222
|
-
* Session-boundary clear (#1635): unconsumed pending baselines are keyed by
|
|
223
|
-
* cwd:generation, so entries from a finished session are unreachable; and a
|
|
224
|
-
* directory that was not a worktree last session may be one now. Without this
|
|
225
|
-
* reset both leak and mis-answer forever.
|
|
226
|
-
*/
|
|
227
|
-
export function resetOpaqueMutationState() {
|
|
228
|
-
getOpaqueBaselineStore().takeAllForTest();
|
|
229
|
-
gitRepoMemo.clear();
|
|
230
|
-
gitToplevelMemo.clear();
|
|
231
|
-
}
|
|
232
|
-
/** Cached git-worktree probe (repos don't stop being git mid-session). */
|
|
233
|
-
export async function isGitWorktree(root) {
|
|
234
|
-
const key = normalizeMapKey(path.resolve(root));
|
|
235
|
-
const memo = gitRepoMemo.get(key);
|
|
236
|
-
if (memo !== undefined)
|
|
237
|
-
return memo;
|
|
238
|
-
const result = await safeSpawnAsync("git", ["rev-parse", "--is-inside-work-tree"], { cwd: root, timeout: 3000 });
|
|
239
|
-
const isRepo = !result.error && result.status === 0 && result.stdout?.trim() === "true";
|
|
240
|
-
gitRepoMemo.set(key, isRepo === true);
|
|
241
|
-
return isRepo === true;
|
|
242
|
-
}
|
|
243
|
-
const gitToplevelMemo = new Map();
|
|
244
|
-
/**
|
|
245
|
-
* The root of the working tree `root` belongs to, or `undefined` when it is
|
|
246
|
-
* not inside one (#2007).
|
|
247
|
-
*
|
|
248
|
-
* This is WORKTREE IDENTITY, which path containment cannot supply. A linked
|
|
249
|
-
* worktree lives at a path nested under the main checkout — this repo keeps
|
|
250
|
-
* agent worktrees under `.claude/worktrees/` — yet shares no working files
|
|
251
|
-
* with it. `--show-toplevel` answers which tree a directory really belongs
|
|
252
|
-
* to, so two directories are the same checkout when, and only when, their
|
|
253
|
-
* toplevels match.
|
|
254
|
-
*
|
|
255
|
-
* Memoized beside `isGitWorktree`, and cleared by the same
|
|
256
|
-
* `resetOpaqueMutationState` session boundary, so it cannot become a
|
|
257
|
-
* process-lifetime latch (catalog shape 17). `undefined` is a real cached
|
|
258
|
-
* answer, so the memo is probed with `has`, never by truthiness.
|
|
259
|
-
*/
|
|
260
|
-
export async function resolveGitToplevel(root) {
|
|
261
|
-
const key = normalizeMapKey(path.resolve(root));
|
|
262
|
-
if (gitToplevelMemo.has(key))
|
|
263
|
-
return gitToplevelMemo.get(key);
|
|
264
|
-
const result = await safeSpawnAsync("git", ["rev-parse", "--show-toplevel"], {
|
|
265
|
-
cwd: root,
|
|
266
|
-
timeout: 3000,
|
|
267
|
-
});
|
|
268
|
-
const toplevel = !result.error && result.status === 0 && result.stdout?.trim()
|
|
269
|
-
? result.stdout.trim()
|
|
270
|
-
: undefined;
|
|
271
|
-
gitToplevelMemo.set(key, toplevel);
|
|
272
|
-
return toplevel;
|
|
273
|
-
}
|
|
274
|
-
const UNMERGED_PORCELAIN_STATUSES = new Set([
|
|
275
|
-
"DD",
|
|
276
|
-
"AU",
|
|
277
|
-
"UD",
|
|
278
|
-
"UA",
|
|
279
|
-
"DU",
|
|
280
|
-
"AA",
|
|
281
|
-
"UU",
|
|
282
|
-
]);
|
|
283
|
-
/**
|
|
284
|
-
* Git's Porcelain v1 ordinary-status table, not a Cartesian product. A clean
|
|
285
|
-
* index permits worktree M/T/D, intent-to-add A, and worktree rename/copy R/C.
|
|
286
|
-
* M/T/A/R/C may pair with blank/M/T/D; staged deletion is D<space>, DR or DC.
|
|
287
|
-
* Broaden only with Git docs and a real-status probe.
|
|
288
|
-
*
|
|
289
|
-
* Membership no longer decides pass/fail for a whole command - an absent pair
|
|
290
|
-
* is counted and kept, not fatal (#2060). It still decides which entries the
|
|
291
|
-
* failed-integration filter may treat as "clean index-only incoming", so an
|
|
292
|
-
* unknown pair is never silently classified as someone else's content.
|
|
293
|
-
*/
|
|
294
|
-
const LEGAL_ORDINARY_PORCELAIN_STATUSES = new Set([
|
|
295
|
-
" M",
|
|
296
|
-
" T",
|
|
297
|
-
" D",
|
|
298
|
-
" A",
|
|
299
|
-
" R",
|
|
300
|
-
" C",
|
|
301
|
-
"DR",
|
|
302
|
-
"DC",
|
|
303
|
-
"M ",
|
|
304
|
-
"MM",
|
|
305
|
-
"MT",
|
|
306
|
-
"MD",
|
|
307
|
-
"T ",
|
|
308
|
-
"TM",
|
|
309
|
-
"TT",
|
|
310
|
-
"TD",
|
|
311
|
-
"A ",
|
|
312
|
-
"AM",
|
|
313
|
-
"AT",
|
|
314
|
-
"AD",
|
|
315
|
-
"D ",
|
|
316
|
-
"R ",
|
|
317
|
-
"RM",
|
|
318
|
-
"RT",
|
|
319
|
-
"RD",
|
|
320
|
-
"C ",
|
|
321
|
-
"CM",
|
|
322
|
-
"CT",
|
|
323
|
-
"CD",
|
|
324
|
-
]);
|
|
325
|
-
function isUnmergedStatus(status) {
|
|
326
|
-
return UNMERGED_PORCELAIN_STATUSES.has(status);
|
|
327
|
-
}
|
|
328
|
-
/** An XY pair this module can classify. Unknown pairs are kept, not rejected. */
|
|
329
|
-
function isKnownPorcelainStatus(status) {
|
|
330
|
-
return (status === "??" ||
|
|
331
|
-
status === "!!" ||
|
|
332
|
-
isUnmergedStatus(status) ||
|
|
333
|
-
LEGAL_ORDINARY_PORCELAIN_STATUSES.has(status));
|
|
334
|
-
}
|
|
335
|
-
/**
|
|
336
|
-
* The characters Git's short format can put in an XY pair. This is the real
|
|
337
|
-
* fail-closed line (#2060): output whose status field is outside this alphabet,
|
|
338
|
-
* or carries no status at all, is not Porcelain v1 and nothing in it can be
|
|
339
|
-
* trusted. An in-alphabet pair we happen not to have tabulated is a gap in our
|
|
340
|
-
* table, so voiding the whole command's recovery for it would throw away every
|
|
341
|
-
* other path - the read-guard hole this subsystem exists to close.
|
|
342
|
-
*/
|
|
343
|
-
const PORCELAIN_STATUS_CHARS = /^[ MTADRCU?!]{2}$/;
|
|
344
|
-
function isStructurallyValidStatus(status) {
|
|
345
|
-
return PORCELAIN_STATUS_CHARS.test(status) && status.trim() !== "";
|
|
346
|
-
}
|
|
347
|
-
/**
|
|
348
|
-
* Files dirty in the working tree whose mtime falls inside
|
|
349
|
-
* [startedAt - tolerance, now]. Porcelain -z parsing handles renames
|
|
350
|
-
* (the NEW path is reported; the old path token is skipped before filtering).
|
|
351
|
-
*/
|
|
352
|
-
export async function recoverOpaqueChangesViaGit(root, startedAt, options = {}) {
|
|
353
|
-
const result = await safeSpawnAsync("git", ["status", "--porcelain", "-z", "--untracked-files=all"], {
|
|
354
|
-
cwd: root,
|
|
355
|
-
timeout: 5000,
|
|
356
|
-
maxOutputBytes: MAX_GIT_STATUS_OUTPUT_BYTES,
|
|
357
|
-
});
|
|
358
|
-
// #2060: safe-spawn caps stdout before the child finishes. A capped listing
|
|
359
|
-
// is a PREFIX of the truth, so reading it as complete would report every
|
|
360
|
-
// path the cap removed as unchanged.
|
|
361
|
-
//
|
|
362
|
-
// #2100: FIRST, ahead of the git-failed check. Hitting the cap makes
|
|
363
|
-
// safe-spawn SIGTERM the child, so the result also carries an error and a
|
|
364
|
-
// null status — read in the other order every cap kill reported as
|
|
365
|
-
// "git-failed" and this guard could never speak. `truncatedByOutputCap`
|
|
366
|
-
// leaves a timed-out or aborted read to the git-failed branch below, which
|
|
367
|
-
// is the honest answer for those.
|
|
368
|
-
if (truncatedByOutputCap(result)) {
|
|
369
|
-
return {
|
|
370
|
-
verdict: "unknown",
|
|
371
|
-
paths: [],
|
|
372
|
-
unknownReason: "git-status-parse-failed",
|
|
373
|
-
scannedCount: 0,
|
|
374
|
-
};
|
|
375
|
-
}
|
|
376
|
-
if (result.error || (result.status !== 0 && result.status !== null)) {
|
|
377
|
-
return {
|
|
378
|
-
verdict: "unknown",
|
|
379
|
-
paths: [],
|
|
380
|
-
unknownReason: "git-failed",
|
|
381
|
-
scannedCount: 0,
|
|
382
|
-
};
|
|
383
|
-
}
|
|
384
|
-
const raw = result.stdout ?? "";
|
|
385
|
-
if (raw && !raw.endsWith("\0")) {
|
|
386
|
-
return {
|
|
387
|
-
verdict: "unknown",
|
|
388
|
-
paths: [],
|
|
389
|
-
unknownReason: "git-status-parse-failed",
|
|
390
|
-
scannedCount: 0,
|
|
391
|
-
};
|
|
392
|
-
}
|
|
393
|
-
const entries = [];
|
|
394
|
-
let unknownStatusCount = 0;
|
|
395
|
-
let skipNext = false; // rename's OLD path follows its NEW path
|
|
396
|
-
for (const token of raw.split("\0")) {
|
|
397
|
-
if (!token)
|
|
398
|
-
continue;
|
|
399
|
-
if (skipNext) {
|
|
400
|
-
skipNext = false;
|
|
401
|
-
continue;
|
|
402
|
-
}
|
|
403
|
-
// Each entry: two status chars, one space, then the path.
|
|
404
|
-
if (token.length < 4 || token[2] !== " ") {
|
|
405
|
-
return {
|
|
406
|
-
verdict: "unknown",
|
|
407
|
-
paths: [],
|
|
408
|
-
unknownReason: "git-status-parse-failed",
|
|
409
|
-
scannedCount: 0,
|
|
410
|
-
};
|
|
411
|
-
}
|
|
412
|
-
const status = token.slice(0, 2);
|
|
413
|
-
const relPath = token.slice(3);
|
|
414
|
-
if (!isStructurallyValidStatus(status) || !relPath) {
|
|
415
|
-
return {
|
|
416
|
-
verdict: "unknown",
|
|
417
|
-
paths: [],
|
|
418
|
-
unknownReason: "git-status-parse-failed",
|
|
419
|
-
scannedCount: 0,
|
|
420
|
-
};
|
|
421
|
-
}
|
|
422
|
-
if (!isKnownPorcelainStatus(status))
|
|
423
|
-
unknownStatusCount += 1;
|
|
424
|
-
if (status.includes("R") || status.includes("C"))
|
|
425
|
-
skipNext = true;
|
|
426
|
-
entries.push({ status, absPath: path.resolve(root, relPath) });
|
|
427
|
-
}
|
|
428
|
-
if (skipNext) {
|
|
429
|
-
return {
|
|
430
|
-
verdict: "unknown",
|
|
431
|
-
paths: [],
|
|
432
|
-
unknownReason: "git-status-parse-failed",
|
|
433
|
-
scannedCount: 0,
|
|
434
|
-
};
|
|
435
|
-
}
|
|
436
|
-
const hasUnmerged = entries.some((entry) => isUnmergedStatus(entry.status));
|
|
437
|
-
const floorMs = startedAt - OPAQUE_MTIME_TOLERANCE_MS;
|
|
438
|
-
// Kernel "stale" = modified AFTER the window floor - exactly the writes
|
|
439
|
-
// this command may have authored, so exactly the entries that would be
|
|
440
|
-
// dispatched absent any other filtering.
|
|
441
|
-
async function isInWindow(absPath) {
|
|
442
|
-
try {
|
|
443
|
-
const stat = await fs.promises.stat(absPath);
|
|
444
|
-
return (stat.isFile() &&
|
|
445
|
-
freshnessFromMtime({ mtimeMs: stat.mtimeMs, referenceMs: floorMs })
|
|
446
|
-
.verdict === "stale");
|
|
447
|
-
}
|
|
448
|
-
catch {
|
|
449
|
-
// Deleted or vanished: deletions are deliberately unreported.
|
|
450
|
-
return false;
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
let excludedIncomingCount = 0;
|
|
454
|
-
let candidates = entries;
|
|
455
|
-
if (options.excludeIndexOnlyWhenUnmerged === true && hasUnmerged) {
|
|
456
|
-
// Clean index-only (`XY` with a blank Y) means "staged, worktree matches
|
|
457
|
-
// the index". After a failed integration that content came from the other
|
|
458
|
-
// side, never from the agent: merge, rebase, cherry-pick and revert all
|
|
459
|
-
// REFUSE to start against a dirty index, so no agent-staged file can be
|
|
460
|
-
// sitting here (#2060 F5, probed on git 2.55). An unknown-but-well-formed
|
|
461
|
-
// pair is NOT classified as incoming - capture wins when in doubt.
|
|
462
|
-
// Scope: the refusal argument covers content staged BEFORE the
|
|
463
|
-
// integration started. Content staged mid-call, after the conflict
|
|
464
|
-
// began, is indistinguishable from incoming and is excluded too; the
|
|
465
|
-
// excluded count below is the visibility for that edge.
|
|
466
|
-
// A blank Y already excludes every unmerged pair (all seven are two
|
|
467
|
-
// letters), so this needs no separate unmerged term.
|
|
468
|
-
const kept = [];
|
|
469
|
-
for (const entry of entries) {
|
|
470
|
-
const cleanIndexOnly = entry.status[1] === " " && isKnownPorcelainStatus(entry.status);
|
|
471
|
-
if (!cleanIndexOnly) {
|
|
472
|
-
kept.push(entry);
|
|
473
|
-
continue;
|
|
474
|
-
}
|
|
475
|
-
// #2081: only count entries the mtime window would otherwise have
|
|
476
|
-
// dispatched. A long-staged clean-index path outside the window was
|
|
477
|
-
// never going to be reported, so dropping it here is not suppression.
|
|
478
|
-
if (await isInWindow(entry.absPath))
|
|
479
|
-
excludedIncomingCount += 1;
|
|
480
|
-
}
|
|
481
|
-
candidates = kept;
|
|
482
|
-
}
|
|
483
|
-
const paths = [];
|
|
484
|
-
for (const { absPath } of candidates) {
|
|
485
|
-
if (await isInWindow(absPath))
|
|
486
|
-
paths.push(normalizeMapKey(absPath));
|
|
487
|
-
}
|
|
488
|
-
return {
|
|
489
|
-
verdict: "recovered",
|
|
490
|
-
paths,
|
|
491
|
-
scannedCount: paths.length,
|
|
492
|
-
// Omitted when zero so the common outcome keeps one shape.
|
|
493
|
-
...(excludedIncomingCount > 0 ? { excludedIncomingCount } : {}),
|
|
494
|
-
...(unknownStatusCount > 0 ? { unknownStatusCount } : {}),
|
|
495
|
-
};
|
|
496
|
-
}
|