@herbertgao/pi-extensions 2026.8.11 → 2026.8.12

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.
Files changed (374) hide show
  1. package/README.md +18 -10
  2. package/{node_modules/@herbertgao/pi-inline-skills/LICENSE → THIRD_PARTY_NOTICES.md} +15 -1
  3. package/node_modules/@czottmann/pi-automode/CHANGELOG.md +15 -0
  4. package/node_modules/@czottmann/pi-automode/README.md +5 -3
  5. package/node_modules/@czottmann/pi-automode/docs/adr/ADR-001-permission-precedence-and-trust-boundaries.md +2 -0
  6. package/node_modules/@czottmann/pi-automode/docs/adr/ADR-002-global-config-in-extension-data-directory.md +60 -0
  7. package/node_modules/@czottmann/pi-automode/docs/adr/INDEX.md +1 -0
  8. package/node_modules/@czottmann/pi-automode/docs/automode-classifier-flow.md +4 -4
  9. package/node_modules/@czottmann/pi-automode/docs/configuration.md +20 -4
  10. package/node_modules/@czottmann/pi-automode/docs/observability-logging.md +1 -1
  11. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/bash.ts +692 -0
  12. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/config.ts +181 -3
  13. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/constants.ts +4 -1
  14. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/extension.ts +143 -36
  15. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/hard-deny.ts +103 -148
  16. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/paths.ts +32 -6
  17. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/permissions.ts +344 -22
  18. package/node_modules/@czottmann/pi-automode/extensions/auto-mode.ts +1 -0
  19. package/node_modules/@czottmann/pi-automode/package.json +4 -1
  20. package/node_modules/@herbertgao/pi-cc-extensions/README.en.md +2 -1
  21. package/node_modules/@herbertgao/pi-cc-extensions/README.md +2 -1
  22. package/node_modules/@herbertgao/pi-cc-extensions/extensions/config/config.ts +4 -0
  23. package/node_modules/@herbertgao/pi-cc-extensions/extensions/config/panel.ts +21 -1
  24. package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/agent-summary/core.ts +1 -1
  25. package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/context.ts +19 -19
  26. package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/compact-mode.ts +4 -2
  27. package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/default-mode.ts +2 -1
  28. package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/grouping.ts +10 -2
  29. package/node_modules/@herbertgao/pi-cc-extensions/package.json +3 -3
  30. package/node_modules/@herbertgao/pi-subagents/CHANGELOG.md +10 -0
  31. package/node_modules/@herbertgao/pi-subagents/README.md +21 -15
  32. package/node_modules/@herbertgao/pi-subagents/package.json +3 -3
  33. package/node_modules/@herbertgao/pi-subagents/src/agent-file-toggle.ts +11 -8
  34. package/node_modules/@herbertgao/pi-subagents/src/agent-manager.ts +184 -106
  35. package/node_modules/@herbertgao/pi-subagents/src/cross-extension-rpc.ts +31 -11
  36. package/node_modules/@herbertgao/pi-subagents/src/custom-agents.ts +9 -1
  37. package/node_modules/@herbertgao/pi-subagents/src/index.ts +156 -31
  38. package/node_modules/@herbertgao/pi-subagents/src/invocation-config.ts +17 -0
  39. package/node_modules/@herbertgao/pi-subagents/src/model-resolver.ts +14 -0
  40. package/node_modules/@herbertgao/pi-subagents/src/schedule.ts +8 -0
  41. package/node_modules/@herbertgao/pi-subagents/src/settings.ts +32 -1
  42. package/node_modules/@herbertgao/pi-subagents/src/types.ts +17 -2
  43. package/node_modules/@herbertgao/pi-subagents/src/ui/agent-widget.ts +23 -2
  44. package/node_modules/@herbertgao/pi-subagents/src/ui/conversation-viewer.ts +259 -24
  45. package/node_modules/@juicesharp/rpiv-ask-user-question/package.json +2 -2
  46. package/node_modules/@narumitw/pi-btw/dist/index.ts +143 -46
  47. package/node_modules/@narumitw/pi-btw/dist/index.ts.map +3 -3
  48. package/node_modules/@narumitw/pi-btw/package.json +6 -6
  49. package/node_modules/@narumitw/pi-btw/src/fullscreen-ui.ts +136 -22
  50. package/node_modules/{@herbertgao → @tifan}/pi-copy-response/README.md +2 -4
  51. package/node_modules/{@herbertgao → @tifan}/pi-copy-response/package.json +5 -15
  52. package/node_modules/{@herbertgao → @tifan}/pi-handoff/README.md +4 -6
  53. package/node_modules/@tifan/pi-handoff/package.json +43 -0
  54. package/node_modules/{@herbertgao → @tifan}/pi-handoff/src/index.ts +1 -1
  55. package/node_modules/{@herbertgao → @tifan}/pi-inline-skills/README.md +2 -4
  56. package/node_modules/{@herbertgao → @tifan}/pi-inline-skills/package.json +5 -15
  57. package/node_modules/{@herbertgao → @tifan}/pi-mermaid-open/README.md +5 -7
  58. package/node_modules/{@herbertgao → @tifan}/pi-mermaid-open/package.json +5 -19
  59. package/node_modules/{@herbertgao → @tifan}/pi-preferred-thinking/README.md +4 -6
  60. package/node_modules/{@herbertgao → @tifan}/pi-preferred-thinking/package.json +6 -16
  61. package/node_modules/{@herbertgao → @tifan}/pi-preferred-thinking/src/index.ts +1 -6
  62. package/node_modules/{@herbertgao → @tifan}/pi-recap/README.md +4 -6
  63. package/node_modules/@tifan/pi-recap/package.json +42 -0
  64. package/node_modules/{@herbertgao → @tifan}/pi-recap/src/models.ts +1 -6
  65. package/node_modules/{@herbertgao → @tifan}/pi-rename/README.md +13 -8
  66. package/node_modules/@tifan/pi-rename/package.json +47 -0
  67. package/node_modules/@tifan/pi-rename/src/herdr-label.ts +4 -0
  68. package/node_modules/{@herbertgao → @tifan}/pi-rename/src/index.ts +4 -16
  69. package/node_modules/{@herbertgao → @tifan}/pi-rename/src/models.ts +1 -6
  70. package/node_modules/{@herbertgao → @tifan}/pi-titlebar-spinner/README.md +2 -4
  71. package/node_modules/{@herbertgao → @tifan}/pi-titlebar-spinner/package.json +5 -15
  72. package/node_modules/pi-lens/CHANGELOG.md +96 -1
  73. package/node_modules/pi-lens/dist/clients/actionable-warnings-logger.js +2 -1
  74. package/node_modules/pi-lens/dist/clients/actionable-warnings.js +14 -5
  75. package/node_modules/pi-lens/dist/clients/advisory-provenance.js +48 -18
  76. package/node_modules/pi-lens/dist/clients/ast-grep-client.js +1 -3
  77. package/node_modules/pi-lens/dist/clients/atomic-write-staging.js +16 -4
  78. package/node_modules/pi-lens/dist/clients/bash-file-access.js +3 -1
  79. package/node_modules/pi-lens/dist/clients/biome-client.js +1 -3
  80. package/node_modules/pi-lens/dist/clients/blocker-freshness.js +21 -8
  81. package/node_modules/pi-lens/dist/clients/bounded-cache.js +24 -8
  82. package/node_modules/pi-lens/dist/clients/bounded-pid-file-lock.js +4 -3
  83. package/node_modules/pi-lens/dist/clients/cache-manager.js +6 -7
  84. package/node_modules/pi-lens/dist/clients/cache-observability.js +461 -66
  85. package/node_modules/pi-lens/dist/clients/call-graph.js +238 -63
  86. package/node_modules/pi-lens/dist/clients/codebase-model.js +13 -5
  87. package/node_modules/pi-lens/dist/clients/complexity-client.js +1 -3
  88. package/node_modules/pi-lens/dist/clients/dead-code-client.js +19 -8
  89. package/node_modules/pi-lens/dist/clients/dead-code-logger.js +1 -2
  90. package/node_modules/pi-lens/dist/clients/deadline-utils.js +3 -1
  91. package/node_modules/pi-lens/dist/clients/debug-heap.js +8 -1
  92. package/node_modules/pi-lens/dist/clients/degradation-ledger.js +1 -1
  93. package/node_modules/pi-lens/dist/clients/dependency-checker.js +11 -7
  94. package/node_modules/pi-lens/dist/clients/diagnostic-dispositions.js +39 -2
  95. package/node_modules/pi-lens/dist/clients/diagnostic-line-freshness.js +5 -1
  96. package/node_modules/pi-lens/dist/clients/dispatch/auxiliary-lsp.js +2 -3
  97. package/node_modules/pi-lens/dist/clients/dispatch/dispatcher.js +13 -1
  98. package/node_modules/pi-lens/dist/clients/dispatch/facts/function-facts.js +3 -1
  99. package/node_modules/pi-lens/dist/clients/dispatch/facts/import-facts.js +2 -1
  100. package/node_modules/pi-lens/dist/clients/dispatch/facts/tree-sitter-facts.js +1 -1
  101. package/node_modules/pi-lens/dist/clients/dispatch/integration.js +9 -4
  102. package/node_modules/pi-lens/dist/clients/dispatch/rules/error-swallowing.js +3 -1
  103. package/node_modules/pi-lens/dist/clients/dispatch/rules/pass-through-wrappers.js +6 -2
  104. package/node_modules/pi-lens/dist/clients/dispatch/rules/unsafe-boundary.js +31 -7
  105. package/node_modules/pi-lens/dist/clients/dispatch/runners/actionlint.js +5 -2
  106. package/node_modules/pi-lens/dist/clients/dispatch/runners/biome-check.js +10 -14
  107. package/node_modules/pi-lens/dist/clients/dispatch/runners/cpp-check.js +5 -1
  108. package/node_modules/pi-lens/dist/clients/dispatch/runners/dotnet-build.js +1 -1
  109. package/node_modules/pi-lens/dist/clients/dispatch/runners/elixir-check.js +3 -1
  110. package/node_modules/pi-lens/dist/clients/dispatch/runners/eslint.js +25 -6
  111. package/node_modules/pi-lens/dist/clients/dispatch/runners/fish-indent.js +1 -1
  112. package/node_modules/pi-lens/dist/clients/dispatch/runners/gleam-check.js +1 -1
  113. package/node_modules/pi-lens/dist/clients/dispatch/runners/golangci-lint.js +3 -1
  114. package/node_modules/pi-lens/dist/clients/dispatch/runners/hadolint.js +13 -8
  115. package/node_modules/pi-lens/dist/clients/dispatch/runners/helm-lint.js +4 -1
  116. package/node_modules/pi-lens/dist/clients/dispatch/runners/htmlhint.js +25 -10
  117. package/node_modules/pi-lens/dist/clients/dispatch/runners/javac.js +1 -1
  118. package/node_modules/pi-lens/dist/clients/dispatch/runners/ktlint.js +1 -1
  119. package/node_modules/pi-lens/dist/clients/dispatch/runners/lsp.js +1 -1
  120. package/node_modules/pi-lens/dist/clients/dispatch/runners/markdownlint.js +28 -4
  121. package/node_modules/pi-lens/dist/clients/dispatch/runners/mypy.js +6 -8
  122. package/node_modules/pi-lens/dist/clients/dispatch/runners/oxlint.js +212 -11
  123. package/node_modules/pi-lens/dist/clients/dispatch/runners/php-lint.js +1 -1
  124. package/node_modules/pi-lens/dist/clients/dispatch/runners/phpstan.js +8 -4
  125. package/node_modules/pi-lens/dist/clients/dispatch/runners/psscriptanalyzer.js +10 -6
  126. package/node_modules/pi-lens/dist/clients/dispatch/runners/pyright.js +23 -14
  127. package/node_modules/pi-lens/dist/clients/dispatch/runners/rust-clippy.js +1 -1
  128. package/node_modules/pi-lens/dist/clients/dispatch/runners/shellcheck.js +7 -9
  129. package/node_modules/pi-lens/dist/clients/dispatch/runners/shfmt.js +5 -2
  130. package/node_modules/pi-lens/dist/clients/dispatch/runners/sqlfluff.js +7 -7
  131. package/node_modules/pi-lens/dist/clients/dispatch/runners/stylelint.js +6 -8
  132. package/node_modules/pi-lens/dist/clients/dispatch/runners/terragrunt.js +13 -8
  133. package/node_modules/pi-lens/dist/clients/dispatch/runners/tflint.js +13 -8
  134. package/node_modules/pi-lens/dist/clients/dispatch/runners/tree-sitter.js +17 -3
  135. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/candidate-probe.js +7 -1
  136. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/runner-helpers.js +24 -1
  137. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/tool-failure.js +35 -0
  138. package/node_modules/pi-lens/dist/clients/dispatch/runners/yaml-rule-parser.js +1 -3
  139. package/node_modules/pi-lens/dist/clients/dispatch/runners/yamllint.js +6 -8
  140. package/node_modules/pi-lens/dist/clients/dispatch/runners/zig-check.js +1 -1
  141. package/node_modules/pi-lens/dist/clients/dispatch/suppress-writer.js +2 -1
  142. package/node_modules/pi-lens/dist/clients/dispatch/types.js +6 -1
  143. package/node_modules/pi-lens/dist/clients/dispatch/utils/lsp-diagnostics.js +6 -2
  144. package/node_modules/pi-lens/dist/clients/extension-log.js +5 -3
  145. package/node_modules/pi-lens/dist/clients/feature-hints.js +8 -1
  146. package/node_modules/pi-lens/dist/clients/file-kinds.js +34 -129
  147. package/node_modules/pi-lens/dist/clients/file-utils.js +17 -1
  148. package/node_modules/pi-lens/dist/clients/finding-delivery-gate.js +57 -2
  149. package/node_modules/pi-lens/dist/clients/formatters.js +144 -27
  150. package/node_modules/pi-lens/dist/clients/freshness.js +38 -0
  151. package/node_modules/pi-lens/dist/clients/git-guard.js +43 -13
  152. package/node_modules/pi-lens/dist/clients/go-client.js +1 -3
  153. package/node_modules/pi-lens/dist/clients/grammar-source.js +1 -1
  154. package/node_modules/pi-lens/dist/clients/gzip-stage-write.js +30 -4
  155. package/node_modules/pi-lens/dist/clients/host-edit-normalize.js +1 -3
  156. package/node_modules/pi-lens/dist/clients/install-diagnostics.js +4 -2
  157. package/node_modules/pi-lens/dist/clients/installer/index.js +86 -77
  158. package/node_modules/pi-lens/dist/clients/instance-reaper.js +5 -2
  159. package/node_modules/pi-lens/dist/clients/instance-registry.js +4 -2
  160. package/node_modules/pi-lens/dist/clients/jscpd-client.js +6 -1
  161. package/node_modules/pi-lens/dist/clients/knip-client.js +29 -15
  162. package/node_modules/pi-lens/dist/clients/language-profile.js +4 -1
  163. package/node_modules/pi-lens/dist/clients/latency-logger.js +13 -2
  164. package/node_modules/pi-lens/dist/clients/lens-config.js +1 -1
  165. package/node_modules/pi-lens/dist/clients/lens-map.js +8 -3
  166. package/node_modules/pi-lens/dist/clients/live-bus-emitter.js +1 -1
  167. package/node_modules/pi-lens/dist/clients/lsp/config.js +4 -6
  168. package/node_modules/pi-lens/dist/clients/lsp/edits.js +119 -32
  169. package/node_modules/pi-lens/dist/clients/lsp/index.js +94 -35
  170. package/node_modules/pi-lens/dist/clients/lsp/inferred-project.js +2 -1
  171. package/node_modules/pi-lens/dist/clients/lsp/jvm-runtime.js +4 -1
  172. package/node_modules/pi-lens/dist/clients/lsp/launch.js +11 -3
  173. package/node_modules/pi-lens/dist/clients/lsp/pending-aux-coverage.js +152 -0
  174. package/node_modules/pi-lens/dist/clients/lsp/server.js +19 -7
  175. package/node_modules/pi-lens/dist/clients/lsp/tsserver-sync.js +10 -2
  176. package/node_modules/pi-lens/dist/clients/lsp/workspace-diagnostics-cache.js +9 -4
  177. package/node_modules/pi-lens/dist/clients/lsp-document-symbols.js +1 -3
  178. package/node_modules/pi-lens/dist/clients/lsp-mutation.js +10 -20
  179. package/node_modules/pi-lens/dist/clients/mcp/host-shim.js +1 -1
  180. package/node_modules/pi-lens/dist/clients/memory-sampler.js +73 -7
  181. package/node_modules/pi-lens/dist/clients/metrics-client.js +1 -3
  182. package/node_modules/pi-lens/dist/clients/middle-man-analysis.js +8 -3
  183. package/node_modules/pi-lens/dist/clients/module-report-lsp.js +7 -1
  184. package/node_modules/pi-lens/dist/clients/module-report.js +14 -17
  185. package/node_modules/pi-lens/dist/clients/ndjson-logger.js +3 -5
  186. package/node_modules/pi-lens/dist/clients/opaque-mutation-scan.js +220 -0
  187. package/node_modules/pi-lens/dist/clients/package-manager.js +6 -1
  188. package/node_modules/pi-lens/dist/clients/pipeline.js +57 -9
  189. package/node_modules/pi-lens/dist/clients/project-conventions.js +2 -8
  190. package/node_modules/pi-lens/dist/clients/project-diagnostics/cache.js +10 -7
  191. package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/call-graph-impact.js +2 -1
  192. package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/gitleaks.js +3 -1
  193. package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/runner-findings.js +13 -9
  194. package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/trivy.js +3 -1
  195. package/node_modules/pi-lens/dist/clients/project-diagnostics/scanner.js +5 -2
  196. package/node_modules/pi-lens/dist/clients/project-lens-config.js +12 -5
  197. package/node_modules/pi-lens/dist/clients/project-snapshot-fingerprint.js +48 -0
  198. package/node_modules/pi-lens/dist/clients/project-snapshot-persist-worker.js +15 -1
  199. package/node_modules/pi-lens/dist/clients/project-snapshot.js +472 -66
  200. package/node_modules/pi-lens/dist/clients/read-expansion.js +12 -2
  201. package/node_modules/pi-lens/dist/clients/read-guard-logger.js +5 -4
  202. package/node_modules/pi-lens/dist/clients/read-guard-tool-lines.js +5 -2
  203. package/node_modules/pi-lens/dist/clients/read-guard.js +1 -1
  204. package/node_modules/pi-lens/dist/clients/resource-sampler.js +1 -1
  205. package/node_modules/pi-lens/dist/clients/reverse-deps.js +6 -5
  206. package/node_modules/pi-lens/dist/clients/review-graph/builder.js +42 -17
  207. package/node_modules/pi-lens/dist/clients/review-graph/git-identity.js +8 -2
  208. package/node_modules/pi-lens/dist/clients/review-graph/import-resolvers.js +10 -1
  209. package/node_modules/pi-lens/dist/clients/review-graph/query.js +2 -1
  210. package/node_modules/pi-lens/dist/clients/review-graph/tsconfig-paths.js +4 -2
  211. package/node_modules/pi-lens/dist/clients/review-graph/workspace-modules.js +2 -2
  212. package/node_modules/pi-lens/dist/clients/ruff-client.js +6 -5
  213. package/node_modules/pi-lens/dist/clients/runtime-agent-end.js +63 -31
  214. package/node_modules/pi-lens/dist/clients/runtime-context.js +12 -4
  215. package/node_modules/pi-lens/dist/clients/runtime-coordinator.js +83 -4
  216. package/node_modules/pi-lens/dist/clients/runtime-session.js +14 -0
  217. package/node_modules/pi-lens/dist/clients/runtime-tool-call.js +59 -3
  218. package/node_modules/pi-lens/dist/clients/runtime-tool-result.js +148 -34
  219. package/node_modules/pi-lens/dist/clients/runtime-turn.js +147 -6
  220. package/node_modules/pi-lens/dist/clients/rust-client.js +1 -3
  221. package/node_modules/pi-lens/dist/clients/safe-spawn.js +150 -11
  222. package/node_modules/pi-lens/dist/clients/security-scan-client.js +1 -3
  223. package/node_modules/pi-lens/dist/clients/session-summary.js +3 -1
  224. package/node_modules/pi-lens/dist/clients/sg-runner.js +1 -3
  225. package/node_modules/pi-lens/dist/clients/source-filter.js +10 -6
  226. package/node_modules/pi-lens/dist/clients/source-walker.js +1 -1
  227. package/node_modules/pi-lens/dist/clients/spawn-timeout-cooldown.js +96 -0
  228. package/node_modules/pi-lens/dist/clients/startup-scan.js +4 -1
  229. package/node_modules/pi-lens/dist/clients/tool-definition.js +7 -0
  230. package/node_modules/pi-lens/dist/clients/tool-policy.js +26 -11
  231. package/node_modules/pi-lens/dist/clients/tool-render.js +2 -1
  232. package/node_modules/pi-lens/dist/clients/tree-sitter-client.js +10 -4
  233. package/node_modules/pi-lens/dist/clients/tree-sitter-logger.js +2 -2
  234. package/node_modules/pi-lens/dist/clients/tree-sitter-symbol-extractor.js +12 -5
  235. package/node_modules/pi-lens/dist/clients/warm-attach.js +12 -5
  236. package/node_modules/pi-lens/dist/clients/widget-state.js +27 -11
  237. package/node_modules/pi-lens/dist/clients/word-index.js +3 -1
  238. package/node_modules/pi-lens/dist/clients/workspace-topology.js +8 -2
  239. package/node_modules/pi-lens/dist/clients/zizmor-config.js +9 -1
  240. package/node_modules/pi-lens/dist/i18n.js +13 -5
  241. package/node_modules/pi-lens/dist/index.js +10797 -8627
  242. package/node_modules/pi-lens/dist/mcp/server.js +3 -1
  243. package/node_modules/pi-lens/dist/tools/ast-grep-replace.js +68 -12
  244. package/node_modules/pi-lens/dist/tools/lens-diagnostic-mark.js +21 -7
  245. package/node_modules/pi-lens/dist/tools/lens-diagnostics.js +164 -35
  246. package/node_modules/pi-lens/dist/tools/lsp-diagnostics.js +24 -7
  247. package/node_modules/pi-lens/dist/tools/lsp-navigation.js +3 -1
  248. package/node_modules/pi-lens/dist/tools/module-report.js +1 -1
  249. package/node_modules/pi-lens/dist/tools/project-report.js +1 -1
  250. package/node_modules/pi-lens/dist/tools/symbol-search.js +5 -2
  251. package/node_modules/pi-lens/docs/durable-store-audit-1202.md +1 -1
  252. package/node_modules/pi-lens/docs/servercapabilities.md +1 -1
  253. package/node_modules/pi-lens/package.json +160 -156
  254. package/node_modules/pi-lens/rules/typos/_typos.toml +2 -2
  255. package/node_modules/pi-lens/scripts/analyze-pi-lens-logs.mjs +31 -13
  256. package/node_modules/pi-lens/scripts/download-grammars.js +9 -3
  257. package/node_modules/pi-lens/scripts/rpc-load-check.mjs +30 -9
  258. package/node_modules/pi-mcp-adapter/CHANGELOG.md +34 -0
  259. package/node_modules/pi-mcp-adapter/README.md +42 -13
  260. package/node_modules/pi-mcp-adapter/commands.ts +4 -2
  261. package/node_modules/pi-mcp-adapter/config.ts +35 -5
  262. package/node_modules/pi-mcp-adapter/direct-tools.ts +103 -92
  263. package/node_modules/pi-mcp-adapter/dist/agent-dir.d.ts +10 -0
  264. package/node_modules/pi-mcp-adapter/dist/agent-dir.js +63 -0
  265. package/node_modules/pi-mcp-adapter/dist/agent-dir.js.map +1 -0
  266. package/node_modules/pi-mcp-adapter/dist/agent-plugin-loader.d.ts +8 -0
  267. package/node_modules/pi-mcp-adapter/dist/agent-plugin-loader.js +356 -0
  268. package/node_modules/pi-mcp-adapter/dist/agent-plugin-loader.js.map +1 -0
  269. package/node_modules/pi-mcp-adapter/dist/config.d.ts +123 -0
  270. package/node_modules/pi-mcp-adapter/dist/config.js +1077 -0
  271. package/node_modules/pi-mcp-adapter/dist/config.js.map +1 -0
  272. package/node_modules/pi-mcp-adapter/dist/metadata-cache.d.ts +19 -0
  273. package/node_modules/pi-mcp-adapter/dist/metadata-cache.js +319 -0
  274. package/node_modules/pi-mcp-adapter/dist/metadata-cache.js.map +1 -0
  275. package/node_modules/pi-mcp-adapter/dist/package-mcp-loader.d.ts +2 -0
  276. package/node_modules/pi-mcp-adapter/dist/package-mcp-loader.js +156 -0
  277. package/node_modules/pi-mcp-adapter/dist/package-mcp-loader.js.map +1 -0
  278. package/node_modules/pi-mcp-adapter/dist/resource-tools.d.ts +1 -0
  279. package/node_modules/pi-mcp-adapter/dist/resource-tools.js +15 -0
  280. package/node_modules/pi-mcp-adapter/dist/resource-tools.js.map +1 -0
  281. package/node_modules/pi-mcp-adapter/dist/types.d.ts +564 -0
  282. package/node_modules/pi-mcp-adapter/dist/types.js +287 -0
  283. package/node_modules/pi-mcp-adapter/dist/types.js.map +1 -0
  284. package/node_modules/pi-mcp-adapter/dist/ui-app-bridge-helpers.d.ts +6 -0
  285. package/node_modules/pi-mcp-adapter/dist/ui-app-bridge-helpers.js +37 -0
  286. package/node_modules/pi-mcp-adapter/dist/ui-app-bridge-helpers.js.map +1 -0
  287. package/node_modules/pi-mcp-adapter/dist/ui-stream-types.d.ts +104 -0
  288. package/node_modules/pi-mcp-adapter/dist/ui-stream-types.js +59 -0
  289. package/node_modules/pi-mcp-adapter/dist/ui-stream-types.js.map +1 -0
  290. package/node_modules/pi-mcp-adapter/dist/ui-tool-visibility.d.ts +4 -0
  291. package/node_modules/pi-mcp-adapter/dist/ui-tool-visibility.js +27 -0
  292. package/node_modules/pi-mcp-adapter/dist/ui-tool-visibility.js.map +1 -0
  293. package/node_modules/pi-mcp-adapter/dist/utils.d.ts +32 -0
  294. package/node_modules/pi-mcp-adapter/dist/utils.js +338 -0
  295. package/node_modules/pi-mcp-adapter/dist/utils.js.map +1 -0
  296. package/node_modules/pi-mcp-adapter/failure-backoff.ts +23 -0
  297. package/node_modules/pi-mcp-adapter/index.ts +204 -82
  298. package/node_modules/pi-mcp-adapter/init.ts +36 -29
  299. package/node_modules/pi-mcp-adapter/lifecycle.ts +16 -8
  300. package/node_modules/pi-mcp-adapter/mcp-code.ts +2 -0
  301. package/node_modules/pi-mcp-adapter/mcp-oauth-provider.ts +66 -16
  302. package/node_modules/pi-mcp-adapter/mcp-output-guard.ts +95 -7
  303. package/node_modules/pi-mcp-adapter/mcp-probe.ts +18 -4
  304. package/node_modules/pi-mcp-adapter/mcp-references.ts +368 -0
  305. package/node_modules/pi-mcp-adapter/mcp-status.ts +8 -19
  306. package/node_modules/pi-mcp-adapter/metadata-cache.ts +20 -12
  307. package/node_modules/pi-mcp-adapter/namespace-tools.ts +276 -0
  308. package/node_modules/pi-mcp-adapter/package.json +24 -6
  309. package/node_modules/pi-mcp-adapter/proxy-modes.ts +66 -10
  310. package/node_modules/pi-mcp-adapter/search-ranking.ts +2 -0
  311. package/node_modules/pi-mcp-adapter/server-manager.ts +63 -12
  312. package/node_modules/pi-mcp-adapter/state.ts +1 -3
  313. package/node_modules/pi-mcp-adapter/tool-result-renderer.ts +16 -2
  314. package/node_modules/pi-mcp-adapter/types.ts +48 -1
  315. package/node_modules/pi-mcp-adapter/ui-server.ts +3 -19
  316. package/node_modules/pi-mcp-adapter/ui-session.ts +2 -1
  317. package/node_modules/pi-mcp-adapter/utils.ts +21 -19
  318. package/node_modules/pi-web-access/CHANGELOG.md +26 -0
  319. package/node_modules/pi-web-access/README.md +71 -14
  320. package/node_modules/pi-web-access/chrome-cookies.ts +115 -35
  321. package/node_modules/pi-web-access/credential-source.ts +6 -2
  322. package/node_modules/pi-web-access/curator-page.ts +5 -3
  323. package/node_modules/pi-web-access/curator-server.ts +2 -1
  324. package/node_modules/pi-web-access/extract.ts +89 -9
  325. package/node_modules/pi-web-access/fetch-params.ts +13 -0
  326. package/node_modules/pi-web-access/gemini-adc.ts +298 -0
  327. package/node_modules/pi-web-access/gemini-api.ts +59 -15
  328. package/node_modules/pi-web-access/gemini-search.ts +58 -18
  329. package/node_modules/pi-web-access/gemini-url-context.ts +3 -2
  330. package/node_modules/pi-web-access/gemini-web-config.ts +57 -7
  331. package/node_modules/pi-web-access/gemini-web.ts +9 -3
  332. package/node_modules/pi-web-access/github-api.ts +5 -4
  333. package/node_modules/pi-web-access/github-issue-pr.ts +700 -0
  334. package/node_modules/pi-web-access/index.ts +403 -297
  335. package/node_modules/pi-web-access/kimi-search.ts +234 -0
  336. package/node_modules/pi-web-access/openai-search.ts +118 -21
  337. package/node_modules/pi-web-access/package.json +3 -2
  338. package/node_modules/pi-web-access/ssrf-protection.ts +4 -1
  339. package/node_modules/pi-web-access/utils.ts +307 -1
  340. package/node_modules/pi-web-access/youtube-extract.ts +2 -2
  341. package/package.json +40 -37
  342. package/node_modules/@herbertgao/pi-copy-response/CHANGELOG.md +0 -49
  343. package/node_modules/@herbertgao/pi-copy-response/LICENSE +0 -22
  344. package/node_modules/@herbertgao/pi-handoff/CHANGELOG.md +0 -83
  345. package/node_modules/@herbertgao/pi-handoff/LICENSE +0 -22
  346. package/node_modules/@herbertgao/pi-handoff/package.json +0 -60
  347. package/node_modules/@herbertgao/pi-inline-skills/CHANGELOG.md +0 -57
  348. package/node_modules/@herbertgao/pi-mermaid-open/CHANGELOG.md +0 -39
  349. package/node_modules/@herbertgao/pi-mermaid-open/LICENSE +0 -22
  350. package/node_modules/@herbertgao/pi-preferred-thinking/CHANGELOG.md +0 -63
  351. package/node_modules/@herbertgao/pi-preferred-thinking/LICENSE +0 -22
  352. package/node_modules/@herbertgao/pi-recap/CHANGELOG.md +0 -101
  353. package/node_modules/@herbertgao/pi-recap/LICENSE +0 -22
  354. package/node_modules/@herbertgao/pi-recap/package.json +0 -55
  355. package/node_modules/@herbertgao/pi-rename/CHANGELOG.md +0 -49
  356. package/node_modules/@herbertgao/pi-rename/LICENSE +0 -22
  357. package/node_modules/@herbertgao/pi-rename/package.json +0 -63
  358. package/node_modules/@herbertgao/pi-titlebar-spinner/CHANGELOG.md +0 -25
  359. package/node_modules/@herbertgao/pi-titlebar-spinner/LICENSE +0 -22
  360. /package/node_modules/{@herbertgao → @tifan}/pi-copy-response/src/index.ts +0 -0
  361. /package/node_modules/{@herbertgao → @tifan}/pi-handoff/src/complete-text.ts +0 -0
  362. /package/node_modules/{@herbertgao → @tifan}/pi-handoff/src/session-query.ts +0 -0
  363. /package/node_modules/{@herbertgao → @tifan}/pi-inline-skills/src/index.ts +0 -0
  364. /package/node_modules/{@herbertgao → @tifan}/pi-mermaid-open/herdr-plugin/herdr-plugin.toml +0 -0
  365. /package/node_modules/{@herbertgao → @tifan}/pi-mermaid-open/herdr-plugin/viewer.mjs +0 -0
  366. /package/node_modules/{@herbertgao → @tifan}/pi-mermaid-open/src/index.ts +0 -0
  367. /package/node_modules/{@herbertgao → @tifan}/pi-recap/src/index.ts +0 -0
  368. /package/node_modules/{@herbertgao → @tifan}/pi-recap/src/model-picker.ts +0 -0
  369. /package/node_modules/{@herbertgao → @tifan}/pi-recap/src/sanitize.ts +0 -0
  370. /package/node_modules/{@herbertgao → @tifan}/pi-recap/src/tui.ts +0 -0
  371. /package/node_modules/{@herbertgao → @tifan}/pi-rename/src/model-picker.ts +0 -0
  372. /package/node_modules/{@herbertgao → @tifan}/pi-rename/src/naming.ts +0 -0
  373. /package/node_modules/{@herbertgao → @tifan}/pi-rename/src/sanitize.ts +0 -0
  374. /package/node_modules/{@herbertgao → @tifan}/pi-titlebar-spinner/src/index.ts +0 -0
@@ -19,7 +19,13 @@ export function stageOwnerPidFromName(name) {
19
19
  }
20
20
  export async function sweepOwnStagingFiles(directories, options) {
21
21
  const uniqueDirectories = [...new Set(directories)].filter(Boolean);
22
- const result = { directories: uniqueDirectories.length, scanned: 0, removed: 0, liveSkipped: 0, truncated: false };
22
+ const result = {
23
+ directories: uniqueDirectories.length,
24
+ scanned: 0,
25
+ removed: 0,
26
+ liveSkipped: 0,
27
+ truncated: false,
28
+ };
23
29
  for (const directory of uniqueDirectories) {
24
30
  let handle;
25
31
  try {
@@ -47,14 +53,20 @@ export async function sweepOwnStagingFiles(directories, options) {
47
53
  continue;
48
54
  }
49
55
  try {
50
- await fs.promises.rm(path.join(directory, entry.name), { force: true });
56
+ await fs.promises.rm(path.join(directory, entry.name), {
57
+ force: true,
58
+ });
51
59
  result.removed++;
52
60
  }
53
- catch { /* leave it for the next bounded sweep */ }
61
+ catch {
62
+ /* leave it for the next bounded sweep */
63
+ }
54
64
  }
55
65
  result.truncated ||= reachedEntryCap;
56
66
  }
57
- catch { /* best-effort directory scan */ }
67
+ catch {
68
+ /* best-effort directory scan */
69
+ }
58
70
  finally {
59
71
  await handle.close().catch(() => { });
60
72
  }
@@ -634,7 +634,9 @@ function collectGrepCommandFiles(command, cwd) {
634
634
  return {
635
635
  hasLineNumberGrep,
636
636
  files,
637
- context: truncated ? { before: 0, after: 0 } : (context ?? { before: 0, after: 0 }),
637
+ context: truncated
638
+ ? { before: 0, after: 0 }
639
+ : (context ?? { before: 0, after: 0 }),
638
640
  };
639
641
  }
640
642
  function dedupePushSearchRead(out, seen, loc) {
@@ -58,9 +58,7 @@ export class BiomeClient {
58
58
  ensureFlight = createSingleFlight();
59
59
  log;
60
60
  constructor(verbose = false) {
61
- this.log = verbose
62
- ? createSubsystemLogger("biome")
63
- : () => { };
61
+ this.log = verbose ? createSubsystemLogger("biome") : () => { };
64
62
  }
65
63
  /**
66
64
  * Resolve the fastest available biome binary for `cwd`.
@@ -126,7 +126,11 @@ async function resolveForwardImportsMemoized(cwd, filePath, resolveForwardImport
126
126
  catch {
127
127
  imports = [];
128
128
  }
129
- importResolutionMemo.set(filePath, { mtimeMs: sig.mtimeMs, size: sig.size, imports });
129
+ importResolutionMemo.set(filePath, {
130
+ mtimeMs: sig.mtimeMs,
131
+ size: sig.size,
132
+ imports,
133
+ });
130
134
  return imports;
131
135
  }
132
136
  /** Test-only: clear the extractor and import-resolution memos. */
@@ -232,17 +236,26 @@ export async function collectForwardImportMtimes(cwd, filePath, resolveForwardIm
232
236
  * +50ms). +50ms comfortably clears the measured skew while staying far below the
233
237
  * gap between genuinely distinct edits.
234
238
  */
235
- export const MTIME_DRIFT_TOLERANCE_MS = 50;
239
+ // Single implementation lives in the freshness kernel (#1739); this
240
+ // re-export preserves every existing importer's path.
241
+ export { MTIME_DRIFT_TOLERANCE_MS } from "./freshness.js";
242
+ import { freshnessFromMtime } from "./freshness.js";
236
243
  async function detectDrift(cwd, filePath, recordedAtMs, resolveForwardImports, turnIndex) {
237
244
  const drifted = [];
238
- const ownMtimeMs = await statMtimeMs(filePath);
239
- if (ownMtimeMs !== undefined && ownMtimeMs > recordedAtMs + MTIME_DRIFT_TOLERANCE_MS) {
245
+ const ownFreshness = freshnessFromMtime({
246
+ mtimeMs: await statMtimeMs(filePath),
247
+ referenceMs: recordedAtMs,
248
+ });
249
+ if (ownFreshness.verdict === "stale")
240
250
  drifted.push(filePath);
241
- }
242
251
  const { mtimes, truncated } = await collectForwardImportMtimes(cwd, filePath, resolveForwardImports, turnIndex);
243
- for (const { path, mtimeMs } of mtimes) {
244
- if (mtimeMs > recordedAtMs + MTIME_DRIFT_TOLERANCE_MS)
245
- drifted.push(path);
252
+ for (const { path: depPath, mtimeMs } of mtimes) {
253
+ const verdict = freshnessFromMtime({
254
+ mtimeMs,
255
+ referenceMs: recordedAtMs,
256
+ });
257
+ if (verdict.verdict === "stale")
258
+ drifted.push(depPath);
246
259
  }
247
260
  return { drifted, truncated };
248
261
  }
@@ -13,7 +13,9 @@ export class BoundedLruCache {
13
13
  }
14
14
  return value;
15
15
  }
16
- has(key) { return this.entries.has(key); }
16
+ has(key) {
17
+ return this.entries.has(key);
18
+ }
17
19
  set(key, value) {
18
20
  this.entries.delete(key);
19
21
  this.entries.set(key, value);
@@ -24,11 +26,25 @@ export class BoundedLruCache {
24
26
  this.entries.delete(oldest);
25
27
  }
26
28
  }
27
- delete(key) { return this.entries.delete(key); }
28
- clear() { this.entries.clear(); }
29
- get size() { return this.entries.size; }
30
- keys() { return this.entries.keys(); }
31
- values() { return this.entries.values(); }
32
- entriesArray() { return [...this.entries.entries()]; }
33
- [Symbol.iterator]() { return this.entries[Symbol.iterator](); }
29
+ delete(key) {
30
+ return this.entries.delete(key);
31
+ }
32
+ clear() {
33
+ this.entries.clear();
34
+ }
35
+ get size() {
36
+ return this.entries.size;
37
+ }
38
+ keys() {
39
+ return this.entries.keys();
40
+ }
41
+ values() {
42
+ return this.entries.values();
43
+ }
44
+ entriesArray() {
45
+ return [...this.entries.entries()];
46
+ }
47
+ [Symbol.iterator]() {
48
+ return this.entries[Symbol.iterator]();
49
+ }
34
50
  }
@@ -35,8 +35,7 @@ async function releaseQuarantineLock(lockPath, token) {
35
35
  break;
36
36
  }
37
37
  catch (error) {
38
- if (error.code !== "ENOENT" ||
39
- attempt === 2)
38
+ if (error.code !== "ENOENT" || attempt === 2)
40
39
  return;
41
40
  await new Promise((resolve) => setImmediate(resolve));
42
41
  }
@@ -111,7 +110,9 @@ async function tryAcquireQuarantineLock(lockPath, staleMs) {
111
110
  await fsp.writeFile(path.join(lockPath, "owner.json"), JSON.stringify(owner), "utf8");
112
111
  }
113
112
  catch (error) {
114
- await fsp.rm(lockPath, { recursive: true, force: true }).catch(() => { });
113
+ await fsp
114
+ .rm(lockPath, { recursive: true, force: true })
115
+ .catch(() => { });
115
116
  throw error;
116
117
  }
117
118
  return () => releaseQuarantineLock(lockPath, owner.token);
@@ -39,9 +39,7 @@ function getTurnStatePath(cwd) {
39
39
  export class CacheManager {
40
40
  log;
41
41
  constructor(verbose = false) {
42
- this.log = verbose
43
- ? createSubsystemLogger("cache")
44
- : () => { };
42
+ this.log = verbose ? createSubsystemLogger("cache") : () => { };
45
43
  }
46
44
  /**
47
45
  * Convert a file path to a stable turn-state key.
@@ -226,11 +224,12 @@ export class CacheManager {
226
224
  // stale-session eviction behavior for this legacy shape.
227
225
  return "available";
228
226
  }
229
- if (state.owner.kind === owner.kind &&
230
- state.owner.id === owner.id) {
227
+ if (state.owner.kind === owner.kind && state.owner.id === owner.id) {
231
228
  return "owned";
232
229
  }
233
- return this.isTurnStateOwnerStale(state.owner) ? "available" : "foreign-live";
230
+ return this.isTurnStateOwnerStale(state.owner)
231
+ ? "available"
232
+ : "foreign-live";
234
233
  }
235
234
  isTurnStateOwnerStale(owner) {
236
235
  if (owner.pid > 0 && owner.pid !== process.pid) {
@@ -243,7 +242,7 @@ export class CacheManager {
243
242
  }
244
243
  }
245
244
  const lastSeen = Date.parse(owner.lastSeen);
246
- return !Number.isFinite(lastSeen) || Date.now() - lastSeen > TURN_OWNER_STALE_MS;
245
+ return (!Number.isFinite(lastSeen) || Date.now() - lastSeen > TURN_OWNER_STALE_MS);
247
246
  }
248
247
  /**
249
248
  * Add or update a file's modified ranges in turn state.