@herbertgao/pi-extensions 2026.8.15 → 2026.9.1

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 (351) hide show
  1. package/README.md +4 -1
  2. package/THIRD_PARTY_NOTICES.md +26 -0
  3. package/node_modules/@czottmann/pi-automode/CHANGELOG.md +13 -1
  4. package/node_modules/@czottmann/pi-automode/README.md +20 -0
  5. package/node_modules/@czottmann/pi-automode/docs/GLOSSARY.md +1 -1
  6. package/node_modules/@czottmann/pi-automode/docs/automode-classifier-flow.md +2 -1
  7. package/node_modules/@czottmann/pi-automode/docs/defaults.md +3 -2
  8. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/classifier.ts +38 -2
  9. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/constants.ts +5 -3
  10. package/node_modules/@czottmann/pi-automode/extensions/auto-mode/extension.ts +11 -3
  11. package/node_modules/@czottmann/pi-automode/package.json +1 -1
  12. package/node_modules/@herbertgao/pi-cc-extensions/extensions/config/config.ts +20 -0
  13. package/node_modules/@herbertgao/pi-cc-extensions/extensions/config/panel.ts +46 -3
  14. package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/mouse/interaction.ts +55 -17
  15. package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/mouse/packets.ts +6 -0
  16. package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/mouse/scroll.ts +5 -0
  17. package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/result.ts +34 -30
  18. package/node_modules/@herbertgao/pi-cc-extensions/package.json +3 -3
  19. package/node_modules/@juicesharp/rpiv-ask-user-question/package.json +2 -2
  20. package/node_modules/@narumitw/pi-btw/README.md +5 -1
  21. package/node_modules/@narumitw/pi-btw/dist/index.ts +143 -14
  22. package/node_modules/@narumitw/pi-btw/dist/index.ts.map +3 -3
  23. package/node_modules/@narumitw/pi-btw/package.json +4 -4
  24. package/node_modules/@narumitw/pi-btw/src/fullscreen-ui.ts +158 -7
  25. package/node_modules/@narumitw/pi-btw/src/text.ts +18 -0
  26. package/node_modules/@narumitw/pi-btw/src/transcript-pager.ts +5 -16
  27. package/node_modules/@narumitw/pi-caffeinate/LICENSE +21 -0
  28. package/node_modules/@narumitw/pi-caffeinate/README.md +224 -0
  29. package/node_modules/@narumitw/pi-caffeinate/dist/index.ts +1112 -0
  30. package/node_modules/@narumitw/pi-caffeinate/dist/index.ts.map +7 -0
  31. package/node_modules/@narumitw/pi-caffeinate/package.json +53 -0
  32. package/node_modules/@narumitw/pi-caffeinate/src/caffeinate.ts +811 -0
  33. package/node_modules/@narumitw/pi-caffeinate/src/dbus-inhibit.ts +153 -0
  34. package/node_modules/@narumitw/pi-caffeinate/src/index.ts +1 -0
  35. package/node_modules/@narumitw/pi-caffeinate/src/inhibitor-process.ts +43 -0
  36. package/node_modules/@narumitw/pi-caffeinate/src/inhibitors.ts +167 -0
  37. package/node_modules/@narumitw/pi-caffeinate/src/settings.ts +202 -0
  38. package/node_modules/@pi-plugins/fast-mode/README.md +5 -3
  39. package/node_modules/@pi-plugins/fast-mode/dist/index.d.mts.map +1 -1
  40. package/node_modules/@pi-plugins/fast-mode/dist/index.mjs +20 -55
  41. package/node_modules/@pi-plugins/fast-mode/dist/index.mjs.map +1 -1
  42. package/node_modules/@pi-plugins/fast-mode/package.json +1 -1
  43. package/node_modules/@tifan/pi-handoff/README.md +6 -3
  44. package/node_modules/@tifan/pi-handoff/package.json +1 -1
  45. package/node_modules/@tifan/pi-handoff/src/index.ts +8 -3
  46. package/node_modules/pi-lens/CHANGELOG.md +988 -0
  47. package/node_modules/pi-lens/README.md +3 -0
  48. package/node_modules/pi-lens/config/biome/core.jsonc +11 -2
  49. package/node_modules/pi-lens/config/dependency-cruiser-eager-allowlist.json +13 -1
  50. package/node_modules/pi-lens/dist/clients/actionable-warnings-logger.js +2 -2
  51. package/node_modules/pi-lens/dist/clients/actionable-warnings.js +927 -80
  52. package/node_modules/pi-lens/dist/clients/agent-behavior-client.js +13 -4
  53. package/node_modules/pi-lens/dist/clients/ast-grep-client.js +123 -3
  54. package/node_modules/pi-lens/dist/clients/ast-grep-rule-manager.js +60 -5
  55. package/node_modules/pi-lens/dist/clients/ast-grep-tool-logger.js +2 -2
  56. package/node_modules/pi-lens/dist/clients/bash-file-access.js +1 -3
  57. package/node_modules/pi-lens/dist/clients/biome-client.js +9 -2
  58. package/node_modules/pi-lens/dist/clients/blocker-freshness.js +14 -0
  59. package/node_modules/pi-lens/dist/clients/bootstrap.js +509 -73
  60. package/node_modules/pi-lens/dist/clients/bounded-cache.js +152 -12
  61. package/node_modules/pi-lens/dist/clients/bounded-telemetry.js +59 -4
  62. package/node_modules/pi-lens/dist/clients/bundled-resource-health.js +113 -0
  63. package/node_modules/pi-lens/dist/clients/bus-events-logger.js +2 -2
  64. package/node_modules/pi-lens/dist/clients/cache/rule-cache.js +31 -4
  65. package/node_modules/pi-lens/dist/clients/cache-manager.js +105 -6
  66. package/node_modules/pi-lens/dist/clients/cache-observability.js +44 -18
  67. package/node_modules/pi-lens/dist/clients/cargo-manifest.js +422 -0
  68. package/node_modules/pi-lens/dist/clients/cascade-logger.js +2 -2
  69. package/node_modules/pi-lens/dist/clients/code-quality-warnings.js +13 -3
  70. package/node_modules/pi-lens/dist/clients/complexity-client.js +16 -5
  71. package/node_modules/pi-lens/dist/clients/config-core/deny.js +221 -0
  72. package/node_modules/pi-lens/dist/clients/config-core/index.js +47 -0
  73. package/node_modules/pi-lens/dist/clients/config-core/merge.js +357 -0
  74. package/node_modules/pi-lens/dist/clients/config-core/normalize.js +340 -0
  75. package/node_modules/pi-lens/dist/clients/config-core/process-spec.js +248 -0
  76. package/node_modules/pi-lens/dist/clients/config-core/provenance.js +171 -0
  77. package/node_modules/pi-lens/dist/clients/config-core/records.js +218 -0
  78. package/node_modules/pi-lens/dist/clients/config-core/resolve.js +125 -0
  79. package/node_modules/pi-lens/dist/clients/config-core/safe-object.js +78 -0
  80. package/node_modules/pi-lens/dist/clients/config-core/schema.js +167 -0
  81. package/node_modules/pi-lens/dist/clients/config-diagnostic-codes.js +281 -0
  82. package/node_modules/pi-lens/dist/clients/config-locations.js +160 -0
  83. package/node_modules/pi-lens/dist/clients/config-resolve.js +789 -0
  84. package/node_modules/pi-lens/dist/clients/config-schema.js +197 -0
  85. package/node_modules/pi-lens/dist/clients/config-warn.js +407 -0
  86. package/node_modules/pi-lens/dist/clients/dead-code-client.js +19 -14
  87. package/node_modules/pi-lens/dist/clients/dead-code-logger.js +2 -2
  88. package/node_modules/pi-lens/dist/clients/deadline-utils.js +178 -0
  89. package/node_modules/pi-lens/dist/clients/debug-handles.js +2 -2
  90. package/node_modules/pi-lens/dist/clients/debug-heap.js +3 -3
  91. package/node_modules/pi-lens/dist/clients/deferred-lsp-work.js +106 -0
  92. package/node_modules/pi-lens/dist/clients/degradation-ledger.js +113 -7
  93. package/node_modules/pi-lens/dist/clients/dependency-checker.js +8 -19
  94. package/node_modules/pi-lens/dist/clients/diagnostic-line-freshness.js +12 -9
  95. package/node_modules/pi-lens/dist/clients/diagnostic-logger.js +14 -4
  96. package/node_modules/pi-lens/dist/clients/dispatch/dispatcher.js +162 -18
  97. package/node_modules/pi-lens/dist/clients/dispatch/fact-store.js +97 -0
  98. package/node_modules/pi-lens/dist/clients/dispatch/integration.js +9 -7
  99. package/node_modules/pi-lens/dist/clients/dispatch/runners/actionlint.js +0 -1
  100. package/node_modules/pi-lens/dist/clients/dispatch/runners/ast-grep-napi.js +380 -26
  101. package/node_modules/pi-lens/dist/clients/dispatch/runners/biome-check.js +0 -1
  102. package/node_modules/pi-lens/dist/clients/dispatch/runners/cpp-check.js +0 -1
  103. package/node_modules/pi-lens/dist/clients/dispatch/runners/credo.js +0 -1
  104. package/node_modules/pi-lens/dist/clients/dispatch/runners/cue-vet.js +0 -1
  105. package/node_modules/pi-lens/dist/clients/dispatch/runners/dart-analyze.js +0 -1
  106. package/node_modules/pi-lens/dist/clients/dispatch/runners/detekt.js +0 -1
  107. package/node_modules/pi-lens/dist/clients/dispatch/runners/dotnet-build.js +0 -1
  108. package/node_modules/pi-lens/dist/clients/dispatch/runners/elixir-check.js +0 -1
  109. package/node_modules/pi-lens/dist/clients/dispatch/runners/eslint.js +0 -1
  110. package/node_modules/pi-lens/dist/clients/dispatch/runners/fact-rules.js +0 -1
  111. package/node_modules/pi-lens/dist/clients/dispatch/runners/fish-indent.js +0 -1
  112. package/node_modules/pi-lens/dist/clients/dispatch/runners/gleam-check.js +0 -1
  113. package/node_modules/pi-lens/dist/clients/dispatch/runners/go-vet.js +1 -3
  114. package/node_modules/pi-lens/dist/clients/dispatch/runners/golangci-lint.js +0 -1
  115. package/node_modules/pi-lens/dist/clients/dispatch/runners/hadolint.js +0 -1
  116. package/node_modules/pi-lens/dist/clients/dispatch/runners/helm-lint.js +0 -1
  117. package/node_modules/pi-lens/dist/clients/dispatch/runners/helm-render.js +0 -1
  118. package/node_modules/pi-lens/dist/clients/dispatch/runners/htmlhint.js +0 -1
  119. package/node_modules/pi-lens/dist/clients/dispatch/runners/javac.js +0 -1
  120. package/node_modules/pi-lens/dist/clients/dispatch/runners/ktlint.js +0 -1
  121. package/node_modules/pi-lens/dist/clients/dispatch/runners/lsp.js +0 -1
  122. package/node_modules/pi-lens/dist/clients/dispatch/runners/markdownlint.js +0 -1
  123. package/node_modules/pi-lens/dist/clients/dispatch/runners/mypy.js +0 -1
  124. package/node_modules/pi-lens/dist/clients/dispatch/runners/oxlint.js +13 -18
  125. package/node_modules/pi-lens/dist/clients/dispatch/runners/php-lint.js +0 -1
  126. package/node_modules/pi-lens/dist/clients/dispatch/runners/phpstan.js +0 -1
  127. package/node_modules/pi-lens/dist/clients/dispatch/runners/prisma-validate.js +0 -1
  128. package/node_modules/pi-lens/dist/clients/dispatch/runners/psscriptanalyzer.js +0 -1
  129. package/node_modules/pi-lens/dist/clients/dispatch/runners/pyright.js +7 -4
  130. package/node_modules/pi-lens/dist/clients/dispatch/runners/rubocop.js +0 -1
  131. package/node_modules/pi-lens/dist/clients/dispatch/runners/ruff.js +0 -1
  132. package/node_modules/pi-lens/dist/clients/dispatch/runners/rust-clippy.js +1 -3
  133. package/node_modules/pi-lens/dist/clients/dispatch/runners/shellcheck.js +0 -1
  134. package/node_modules/pi-lens/dist/clients/dispatch/runners/shfmt.js +0 -1
  135. package/node_modules/pi-lens/dist/clients/dispatch/runners/spellcheck.js +0 -1
  136. package/node_modules/pi-lens/dist/clients/dispatch/runners/spotbugs.js +0 -1
  137. package/node_modules/pi-lens/dist/clients/dispatch/runners/sqlfluff.js +0 -1
  138. package/node_modules/pi-lens/dist/clients/dispatch/runners/stylelint.js +0 -1
  139. package/node_modules/pi-lens/dist/clients/dispatch/runners/swiftlint.js +0 -1
  140. package/node_modules/pi-lens/dist/clients/dispatch/runners/taplo.js +0 -1
  141. package/node_modules/pi-lens/dist/clients/dispatch/runners/terragrunt.js +0 -1
  142. package/node_modules/pi-lens/dist/clients/dispatch/runners/tflint.js +0 -1
  143. package/node_modules/pi-lens/dist/clients/dispatch/runners/tree-sitter.js +0 -1
  144. package/node_modules/pi-lens/dist/clients/dispatch/runners/trivy-config.js +0 -1
  145. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/availability-policy.js +3 -0
  146. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/diagnostic-parsers.js +3 -4
  147. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/runner-helpers.js +194 -80
  148. package/node_modules/pi-lens/dist/clients/dispatch/runners/utils/toolchain-availability.js +84 -15
  149. package/node_modules/pi-lens/dist/clients/dispatch/runners/vale.js +0 -1
  150. package/node_modules/pi-lens/dist/clients/dispatch/runners/yamllint.js +0 -1
  151. package/node_modules/pi-lens/dist/clients/dispatch/runners/zig-check.js +0 -1
  152. package/node_modules/pi-lens/dist/clients/disposition-logger.js +3 -3
  153. package/node_modules/pi-lens/dist/clients/effective-config.js +403 -0
  154. package/node_modules/pi-lens/dist/clients/error-class.js +23 -0
  155. package/node_modules/pi-lens/dist/clients/event-loop-hold.js +274 -0
  156. package/node_modules/pi-lens/dist/clients/extension-log.js +2 -2
  157. package/node_modules/pi-lens/dist/clients/feature-hints.js +2 -1
  158. package/node_modules/pi-lens/dist/clients/file-time.js +6 -1
  159. package/node_modules/pi-lens/dist/clients/file-utils.js +112 -9
  160. package/node_modules/pi-lens/dist/clients/finding-delivery-gate.js +50 -13
  161. package/node_modules/pi-lens/dist/clients/format-service.js +6 -1
  162. package/node_modules/pi-lens/dist/clients/formatters.js +276 -102
  163. package/node_modules/pi-lens/dist/clients/freshness-cadence.js +17 -0
  164. package/node_modules/pi-lens/dist/clients/generated-artifacts.js +114 -19
  165. package/node_modules/pi-lens/dist/clients/generation-guard.js +4 -9
  166. package/node_modules/pi-lens/dist/clients/git-guard.js +1 -1
  167. package/node_modules/pi-lens/dist/clients/go-client.js +39 -0
  168. package/node_modules/pi-lens/dist/clients/gradle-ktfmt-style.js +252 -0
  169. package/node_modules/pi-lens/dist/clients/hashline-anchor.js +424 -0
  170. package/node_modules/pi-lens/dist/clients/hook-budgets.js +76 -0
  171. package/node_modules/pi-lens/dist/clients/host-edit-normalize.js +5 -2
  172. package/node_modules/pi-lens/dist/clients/host-ports.js +1 -1
  173. package/node_modules/pi-lens/dist/clients/installer/index.js +71 -52
  174. package/node_modules/pi-lens/dist/clients/instance-reaper.js +104 -230
  175. package/node_modules/pi-lens/dist/clients/instance-registry.js +6 -3
  176. package/node_modules/pi-lens/dist/clients/language-registry.js +595 -0
  177. package/node_modules/pi-lens/dist/clients/latency-logger.js +160 -2
  178. package/node_modules/pi-lens/dist/clients/ledger-bounds.js +13 -0
  179. package/node_modules/pi-lens/dist/clients/lens-config.js +141 -30
  180. package/node_modules/pi-lens/dist/clients/lens-engine.js +30 -37
  181. package/node_modules/pi-lens/dist/clients/lens-flag-registry.js +59 -6
  182. package/node_modules/pi-lens/dist/clients/log-cleanup.js +2 -2
  183. package/node_modules/pi-lens/dist/clients/lsp/aggregation.js +3 -1
  184. package/node_modules/pi-lens/dist/clients/lsp/client.js +168 -30
  185. package/node_modules/pi-lens/dist/clients/lsp/config.js +483 -158
  186. package/node_modules/pi-lens/dist/clients/lsp/diagnostic-binding.js +1 -1
  187. package/node_modules/pi-lens/dist/clients/lsp/edits.js +15 -2
  188. package/node_modules/pi-lens/dist/clients/lsp/index.js +676 -71
  189. package/node_modules/pi-lens/dist/clients/lsp/language.js +18 -169
  190. package/node_modules/pi-lens/dist/clients/lsp/launch.js +2 -1
  191. package/node_modules/pi-lens/dist/clients/lsp/pending-aux-coverage.js +5 -16
  192. package/node_modules/pi-lens/dist/clients/lsp/server.js +284 -147
  193. package/node_modules/pi-lens/dist/clients/lsp/session-roots.js +116 -23
  194. package/node_modules/pi-lens/dist/clients/lsp/spawn-history.js +2 -7
  195. package/node_modules/pi-lens/dist/clients/lsp/tsserver-sync.js +9 -2
  196. package/node_modules/pi-lens/dist/clients/lsp/workspace-diagnostics-cache.js +1 -1
  197. package/node_modules/pi-lens/dist/clients/lsp-mutation.js +163 -21
  198. package/node_modules/pi-lens/dist/clients/map-with-concurrency.js +36 -0
  199. package/node_modules/pi-lens/dist/clients/mcp/analyze.js +33 -4
  200. package/node_modules/pi-lens/dist/clients/mcp/session.js +5 -16
  201. package/node_modules/pi-lens/dist/clients/memory-sampler.js +8 -3
  202. package/node_modules/pi-lens/dist/clients/middle-man-analysis.js +2 -4
  203. package/node_modules/pi-lens/dist/clients/module-report.js +20 -45
  204. package/node_modules/pi-lens/dist/clients/mutating-tool.js +651 -0
  205. package/node_modules/pi-lens/dist/clients/mutation-attribution.js +368 -0
  206. package/node_modules/pi-lens/dist/clients/mutation-bridge.js +240 -0
  207. package/node_modules/pi-lens/dist/clients/ndjson-logger.js +247 -20
  208. package/node_modules/pi-lens/dist/clients/observed-mutation-sources.js +101 -0
  209. package/node_modules/pi-lens/dist/clients/observed-mutation.js +1215 -0
  210. package/node_modules/pi-lens/dist/clients/opaque-mutation-scan.js +68 -22
  211. package/node_modules/pi-lens/dist/clients/opengrep-config.js +4 -0
  212. package/node_modules/pi-lens/dist/clients/package-manager.js +195 -26
  213. package/node_modules/pi-lens/dist/clients/partial-edit-apply.js +359 -80
  214. package/node_modules/pi-lens/dist/clients/path-attribution-telemetry.js +23 -7
  215. package/node_modules/pi-lens/dist/clients/path-keyed-map.js +21 -2
  216. package/node_modules/pi-lens/dist/clients/path-utils.js +428 -13
  217. package/node_modules/pi-lens/dist/clients/persist-debounce.js +8 -1
  218. package/node_modules/pi-lens/dist/clients/php-cs-fixer-config.js +114 -0
  219. package/node_modules/pi-lens/dist/clients/pipeline.js +77 -16
  220. package/node_modules/pi-lens/dist/clients/probe-home-state.js +228 -0
  221. package/node_modules/pi-lens/dist/clients/process-bridge.js +66 -0
  222. package/node_modules/pi-lens/dist/clients/process-snapshot.js +68 -0
  223. package/node_modules/pi-lens/dist/clients/project-diagnostics/fresh-fetch.js +4 -3
  224. package/node_modules/pi-lens/dist/clients/project-diagnostics/runner-adapters/runner-findings.js +27 -3
  225. package/node_modules/pi-lens/dist/clients/project-diagnostics/scanner.js +51 -20
  226. package/node_modules/pi-lens/dist/clients/project-lens-config.js +393 -122
  227. package/node_modules/pi-lens/dist/clients/project-snapshot.js +52 -24
  228. package/node_modules/pi-lens/dist/clients/python-environment.js +217 -0
  229. package/node_modules/pi-lens/dist/clients/python-provenance.js +639 -0
  230. package/node_modules/pi-lens/dist/clients/quiet-window.js +6 -1
  231. package/node_modules/pi-lens/dist/clients/read-bridge.js +13 -21
  232. package/node_modules/pi-lens/dist/clients/read-expansion.js +9 -46
  233. package/node_modules/pi-lens/dist/clients/read-guard-logger.js +15 -4
  234. package/node_modules/pi-lens/dist/clients/read-guard-tool-lines.js +364 -212
  235. package/node_modules/pi-lens/dist/clients/read-guard.js +21 -0
  236. package/node_modules/pi-lens/dist/clients/resource-sampler.js +195 -96
  237. package/node_modules/pi-lens/dist/clients/review-graph/builder.js +152 -109
  238. package/node_modules/pi-lens/dist/clients/review-graph/service.js +55 -3
  239. package/node_modules/pi-lens/dist/clients/review-graph/shared-extraction-ir.js +7 -15
  240. package/node_modules/pi-lens/dist/clients/review-graph/workspace-modules.js +10 -74
  241. package/node_modules/pi-lens/dist/clients/review-graph-logger.js +9 -3
  242. package/node_modules/pi-lens/dist/clients/runtime-agent-end.js +18 -2
  243. package/node_modules/pi-lens/dist/clients/runtime-context.js +49 -16
  244. package/node_modules/pi-lens/dist/clients/runtime-coordinator.js +25 -6
  245. package/node_modules/pi-lens/dist/clients/runtime-session.js +139 -22
  246. package/node_modules/pi-lens/dist/clients/runtime-tool-call.js +168 -35
  247. package/node_modules/pi-lens/dist/clients/runtime-tool-result.js +797 -243
  248. package/node_modules/pi-lens/dist/clients/runtime-turn.js +1028 -53
  249. package/node_modules/pi-lens/dist/clients/rust-client.js +31 -0
  250. package/node_modules/pi-lens/dist/clients/safe-spawn.js +33 -10
  251. package/node_modules/pi-lens/dist/clients/sanitize.js +7 -1
  252. package/node_modules/pi-lens/dist/clients/scratch-tree-policy.js +1 -3
  253. package/node_modules/pi-lens/dist/clients/security-scan-client.js +3 -0
  254. package/node_modules/pi-lens/dist/clients/session-lifecycle.js +1 -1
  255. package/node_modules/pi-lens/dist/clients/session-start-observability.js +79 -0
  256. package/node_modules/pi-lens/dist/clients/sessionstart-logger.js +12 -3
  257. package/node_modules/pi-lens/dist/clients/sgconfig.js +6 -1
  258. package/node_modules/pi-lens/dist/clients/skills-resolver.js +105 -0
  259. package/node_modules/pi-lens/dist/clients/smells-rollup.js +2 -2
  260. package/node_modules/pi-lens/dist/clients/string-utils.js +13 -0
  261. package/node_modules/pi-lens/dist/clients/subagent-mode.js +17 -4
  262. package/node_modules/pi-lens/dist/clients/test-runner-client.js +176 -39
  263. package/node_modules/pi-lens/dist/clients/test-runner-delivery.js +239 -0
  264. package/node_modules/pi-lens/dist/clients/tool-definition.js +41 -1
  265. package/node_modules/pi-lens/dist/clients/tool-policy.js +91 -21
  266. package/node_modules/pi-lens/dist/clients/tree-sitter-cache.js +40 -40
  267. package/node_modules/pi-lens/dist/clients/tree-sitter-client.js +86 -48
  268. package/node_modules/pi-lens/dist/clients/tree-sitter-logger.js +2 -2
  269. package/node_modules/pi-lens/dist/clients/tree-sitter-query-loader.js +81 -1
  270. package/node_modules/pi-lens/dist/clients/tree-sitter-shared.js +51 -46
  271. package/node_modules/pi-lens/dist/clients/tree-sitter-symbol-extractor.js +28 -0
  272. package/node_modules/pi-lens/dist/clients/typos-config.js +5 -0
  273. package/node_modules/pi-lens/dist/clients/user-notify.js +6 -2
  274. package/node_modules/pi-lens/dist/clients/widget-state.js +191 -26
  275. package/node_modules/pi-lens/dist/clients/word-index-logger.js +2 -2
  276. package/node_modules/pi-lens/dist/clients/word-index-store.js +20 -5
  277. package/node_modules/pi-lens/dist/clients/word-index.js +243 -31
  278. package/node_modules/pi-lens/dist/clients/workspace-topology.js +8 -1
  279. package/node_modules/pi-lens/dist/clients/zizmor-config.js +3 -0
  280. package/node_modules/pi-lens/dist/index.js +64335 -54300
  281. package/node_modules/pi-lens/dist/mcp/analyze-cli.js +3 -1
  282. package/node_modules/pi-lens/dist/mcp/server.js +127 -5
  283. package/node_modules/pi-lens/dist/scripts/lib/process-scan.mjs +583 -0
  284. package/node_modules/pi-lens/dist/scripts/lib/skills-predicate.mjs +129 -0
  285. package/node_modules/pi-lens/dist/tools/effective-config.js +89 -0
  286. package/node_modules/pi-lens/dist/tools/lens-diagnostics.js +95 -24
  287. package/node_modules/pi-lens/dist/tools/lsp-diagnostics.js +67 -80
  288. package/node_modules/pi-lens/dist/tools/lsp-navigation.js +37 -16
  289. package/node_modules/pi-lens/dist/tools/shared.js +0 -1
  290. package/node_modules/pi-lens/docs/agent-guide.md +64 -1
  291. package/node_modules/pi-lens/docs/configuration.md +222 -0
  292. package/node_modules/pi-lens/docs/dependencies.md +3 -3
  293. package/node_modules/pi-lens/docs/features.md +44 -5
  294. package/node_modules/pi-lens/docs/language-coverage.md +2 -2
  295. package/node_modules/pi-lens/docs/pi-lens-fixer.md +25 -0
  296. package/node_modules/pi-lens/docs/pi-lens-investigator.md +25 -0
  297. package/node_modules/pi-lens/docs/pi-lens-reviewer.md +27 -0
  298. package/node_modules/pi-lens/docs/pi-lens-subagent.md +38 -0
  299. package/node_modules/pi-lens/docs/pi-lens-warden.md +55 -0
  300. package/node_modules/pi-lens/docs/public-api-stability.md +359 -0
  301. package/node_modules/pi-lens/docs/release-qa-baseline.md +182 -0
  302. package/node_modules/pi-lens/docs/subagent-compat.md +110 -30
  303. package/node_modules/pi-lens/docs/tree-sitter_rules_catalog.md +2 -2
  304. package/node_modules/pi-lens/package.json +15 -23
  305. package/node_modules/pi-lens/rules/tree-sitter-queries/python/python-cross-language-method.yml +3 -3
  306. package/node_modules/pi-lens/rules/tree-sitter-queries/python/python-hallucinated-import.yml +2 -2
  307. package/node_modules/pi-lens/rules/tree-sitter-queries/python/python-sql-injection.yml +12 -2
  308. package/node_modules/pi-lens/scripts/analyze-pi-lens-logs.mjs +192 -1
  309. package/node_modules/pi-lens/scripts/install-selftest.mjs +58 -2
  310. package/node_modules/pi-lens/scripts/lib/skills-predicate.mjs +129 -0
  311. package/node_modules/pi-lens/scripts/rpc-load-check.mjs +3 -1
  312. package/node_modules/pi-mcp-adapter/CHANGELOG.md +27 -0
  313. package/node_modules/pi-mcp-adapter/README.md +13 -13
  314. package/node_modules/pi-mcp-adapter/commands.ts +58 -21
  315. package/node_modules/pi-mcp-adapter/config.ts +18 -4
  316. package/node_modules/pi-mcp-adapter/direct-tools.ts +26 -6
  317. package/node_modules/pi-mcp-adapter/dist/config.d.ts +4 -0
  318. package/node_modules/pi-mcp-adapter/dist/config.js +13 -4
  319. package/node_modules/pi-mcp-adapter/dist/config.js.map +1 -1
  320. package/node_modules/pi-mcp-adapter/dist/types.d.ts +11 -3
  321. package/node_modules/pi-mcp-adapter/dist/types.js.map +1 -1
  322. package/node_modules/pi-mcp-adapter/error-signal.ts +15 -4
  323. package/node_modules/pi-mcp-adapter/errors.ts +141 -0
  324. package/node_modules/pi-mcp-adapter/host-html-template.ts +58 -5
  325. package/node_modules/pi-mcp-adapter/index.ts +2 -3
  326. package/node_modules/pi-mcp-adapter/init.ts +5 -0
  327. package/node_modules/pi-mcp-adapter/mcp-panel.ts +30 -9
  328. package/node_modules/pi-mcp-adapter/mcp-setup-panel.ts +66 -28
  329. package/node_modules/pi-mcp-adapter/mcp-status.ts +2 -0
  330. package/node_modules/pi-mcp-adapter/package.json +2 -1
  331. package/node_modules/pi-mcp-adapter/proxy-modes.ts +66 -13
  332. package/node_modules/pi-mcp-adapter/sandbox-proxy-template.ts +217 -0
  333. package/node_modules/pi-mcp-adapter/server-manager.ts +337 -6
  334. package/node_modules/pi-mcp-adapter/skills/mcp-scripting/SKILL.md +1 -0
  335. package/node_modules/pi-mcp-adapter/types.ts +18 -3
  336. package/node_modules/pi-mcp-adapter/ui-resource-handler.ts +18 -2
  337. package/node_modules/pi-mcp-adapter/ui-server.ts +179 -54
  338. package/node_modules/pi-mcp-adapter/ui-session.ts +28 -8
  339. package/node_modules/pi-web-access/CHANGELOG.md +28 -0
  340. package/node_modules/pi-web-access/README.md +62 -15
  341. package/node_modules/pi-web-access/curator-page.ts +3 -1
  342. package/node_modules/pi-web-access/curator-server.ts +5 -1
  343. package/node_modules/pi-web-access/gemini-search.ts +8 -4
  344. package/node_modules/pi-web-access/github-extract.ts +242 -1
  345. package/node_modules/pi-web-access/index.ts +118 -64
  346. package/node_modules/pi-web-access/mistral-search.ts +281 -0
  347. package/node_modules/pi-web-access/package.json +2 -2
  348. package/node_modules/pi-web-access/perplexity.ts +14 -1
  349. package/node_modules/pi-web-access/utils.ts +23 -6
  350. package/node_modules/pi-web-access/xai-search.ts +96 -33
  351. package/package.json +15 -11
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAeA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAE3D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAU,CAAC;AA6KtD,6DAA6D;AAC7D,+GAA+G;AAC/G,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,kBAAkB,EAClB,8BAA8B,EAC9B,kCAAkC,EAClC,+BAA+B,EAC/B,yBAAyB,EACzB,iCAAiC,EACjC,4BAA4B,EAC5B,qCAAqC,EACrC,yCAAyC,EACzC,sBAAsB,EACtB,8BAA8B,GAW/B,MAAM,sBAAsB,CAAC;AAa9B;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAuB;IACzD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,MAAM,IAAI,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO;aACxB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAE,KAA4B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAC/H,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,MAAM,CAAC,CAAC;QAChB,OAAO,IAAI,IAAI,SAAS,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAWD;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO;YACL,MAAM;YACN,MAAM,EAAE,MAAiC;YACzC,GAAG,EAAE,MAAM;SACZ,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAwBD,MAAM,UAAU,0BAA0B,CAAC,MAA4B,EAAE,QAAQ,GAAG,MAAM;IACxF,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAClE,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAExD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,UAAU,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,OAAO,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG;QAC7D,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAoJD,yDAAyD;AACzD,MAAM,UAAU,gBAAgB,CAAC,UAAmC;IAClE,OAAO,UAAU,EAAE,QAAQ,KAAK,IAAI,CAAC;AACvC,CAAC;AA4BD,MAAM,CAAC,MAAM,+BAA+B,GAAG,sCAA+C,CAAC;AA2M/F;;GAEG;AACH,SAAS,oBAAoB,CAAC,UAAkB,EAAE,qBAAqB,GAAG,IAAI;IAC5E,MAAM,eAAe,GAAG,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC;IACpF,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CACnC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAC7E,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,UAAkB,EAClB,IAAgB;IAEhB,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,CAAC;IAC/B,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,IAAI,KAAK,GAAG,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK;YAAE,KAAK,GAAG,KAAK,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,QAAQ,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;IACtE,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,UAAkB,EAClB,MAAkB;IAElB,MAAM,CAAC,GAAG,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,UAA4C,EAC5C,YAAyB;IAEzB,OAAO,UAAU,EAAE,UAAU,IAAI,YAAY,IAAI,QAAQ,CAAC;AAC5D,CAAC;AAGD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAgB,EAChB,WAA6B,EAC7B,MAAkB;IAElB,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,UAAU,GAAuC,EAAE,CAAC;IAC1D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3B,4EAA4E;IAC5E,4EAA4E;IAC5E,oFAAoF;IACpF,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAK,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,IAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,EAAE,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACpF,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,UAAkB,EAClB,MAAkB;IAElB,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,oBAAoB,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC;IACvG,OAAO,QAAQ,UAAU,KAAK,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAkB,EAAE,IAAgB;IACjE,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,CAAC;IAC/B,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC;IACrG,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,QAAQ,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAC7E,OAAO,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,UAAkB,EAAE,MAAkB;IACpF,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACzD,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,UAAkB,EAAE,MAAkB,EAAE,aAAa,GAAG,IAAI;IAClH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS;QACjC,QAAQ;QACR,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;QAC5C,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;QAC9C,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC;QAC7C,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;KAC5C,CAAC,CAAC;IACH,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACnD,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC/B,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACnE,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrE,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACpE,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAClE,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACnE,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrE,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACpE,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAClE,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAChF,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAClF,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QACjF,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtG,OAAO,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;AACpC,CAAC;AASD,MAAM,UAAU,gCAAgC,CAC9C,oBAAiC,EACjC,qCAAgF;IAEhF,OAAO;QACL,oBAAoB;QACpB,sBAAsB,EAAE,IAAI,GAAG,EAAkB;QACjD,gBAAgB,EAAE,IAAI,GAAG,EAAkB;QAC3C,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE,qCAAqC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAuB,EAAE,QAAkB;IAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,SAAS;QAC1C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAChF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACjI,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAID,SAAS,yBAAyB,CAChC,KAAiC,EACjC,QAAgB,EAChB,iBAA8B,EAC9B,OAAe;IAEf,MAAM,oBAAoB,GAAG,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAW,EAAE,CAClD,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,oBAAoB,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC7F,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,aAAa,GAAG,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,aAAa,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACnD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;gBAAE,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,kBAAkB,GAAG,aAAa,CAAC;IACvC,IAAI,oBAAoB,EAAE,CAAC;QACzB,KAAK,MAAM,SAAS,IAAI,oBAAoB,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;gBAAE,kBAAkB,EAAE,CAAC;QAClG,CAAC;IACH,CAAC;IACD,IAAI,kBAAkB,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3C,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,oBAAoB,EAAE,CAAC;IACjF,CAAC;IACD,OAAO,kBAAkB,GAAG,oBAAoB,CAAC;AACnD,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAgB,EAChB,UAAkB,EAClB,MAAkB,EAClB,QAAiB,EACjB,sBAAqD;IAErD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACrF,IAAI,kBAAkB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,CAAC,sBAAsB;QAAE,OAAO,kBAAkB,CAAC,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IACtH,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7E,KAAK,MAAM,SAAS,IAAI,iBAAiB;QAAE,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9E,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAClG,MAAM,YAAY,GAAG,sBAAsB,YAAY,GAAG;YACxD,CAAC,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC,CAAC,yBAAyB,CAAC,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC5F,OAAO,CAAC,YAAY,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,UAAkB,EAClB,MAAkB,EAClB,YAAsB,EACtB,sBAAqD;IAErD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3E,OAAO,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,UAAkB,EAClB,MAAkB,EAClB,YAAsB,EACtB,sBAAqD;IAErD,OAAO,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,UAAkB,EAClB,MAAkB,EAClB,YAAsB,EACtB,YAAsB,EACtB,sBAAqD;IAErD,OAAO,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,sBAAsB,CAAC;WACpF,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC;AAC3F,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,30 @@
1
+ import { INPUT_REQUIRED_NEEDS_UI } from "./errors.ts";
2
+
1
3
  /**
2
4
  * Decide the `isError` override for a finished tool result in the `tool_result` hook.
3
5
  *
4
6
  * A failed MCP tool call is *returned* (not thrown), tagged `details.error: "tool_error"` (the server
5
- * returned an error result) or `"call_failed"` (the call itself threw and was caught). pi never reads a
6
- * result-level `isError`, so without this such a call is recorded as a success. Returning
7
+ * returned an error result), `"call_failed"` (the call itself threw and was caught), or a typed
8
+ * input-required failure that could not run without UI. pi never reads a result-level `isError`,
9
+ * so without this such a call is recorded as a success. Returning
7
10
  * `{ isError: true }` (and nothing else) flips the flag; pi's field-by-field merge keeps the original
8
11
  * `content` and `details` intact.
9
12
  *
10
- * Limited to those two codes: the adapter's other `details.error` values (`auth_required`, connection
13
+ * Limited to execution-failure codes: the adapter's other `details.error` values (`auth_required`, connection
11
14
  * states, search/validation feedback, ...) are not failed tool calls, so they get no override.
12
15
  */
13
16
  export function toolErrorOverride(details: unknown): { isError: true } | undefined {
14
17
  if (details && typeof details === "object" && "error" in details) {
15
18
  const code = (details as { error?: unknown }).error;
16
- if (code === "tool_error" || code === "call_failed") {
19
+ if (code === "tool_error" || code === "call_failed" || code === INPUT_REQUIRED_NEEDS_UI) {
20
+ return { isError: true };
21
+ }
22
+ }
23
+ if (details && typeof details === "object" && (details as { mode?: unknown }).mode === "script") {
24
+ const calls = (details as { calls?: unknown }).calls;
25
+ if (Array.isArray(calls) && calls.some((call) => (
26
+ !!call && typeof call === "object" && (call as { error?: unknown }).error === INPUT_REQUIRED_NEEDS_UI
27
+ ))) {
17
28
  return { isError: true };
18
29
  }
19
30
  }
@@ -221,3 +221,144 @@ export function wrapError(error: unknown, context?: McpUiErrorContext): McpUiErr
221
221
  export function isErrorCode(error: unknown, code: string): boolean {
222
222
  return error instanceof McpUiError && error.code === code;
223
223
  }
224
+
225
+ /**
226
+ * Stable adapter error code for an SDK-native input_required result that the
227
+ * current client cannot fulfil because its embedded-request handler is not
228
+ * registered. The SDK keeps the request key/method in `SdkError.data`; this
229
+ * adapter detail intentionally copies only bounded, actionable fields.
230
+ */
231
+ export const INPUT_REQUIRED_NEEDS_UI = "input_required_needs_ui" as const;
232
+
233
+ export interface InputRequiredNeedsUiDetails {
234
+ error: typeof INPUT_REQUIRED_NEEDS_UI;
235
+ server: string;
236
+ tool?: string;
237
+ resourceUri?: string;
238
+ inputKey: string;
239
+ inputMethod: string;
240
+ message: string;
241
+ }
242
+
243
+ export interface InputRequiredIdentity {
244
+ server: string;
245
+ tool?: string;
246
+ resourceUri?: string;
247
+ }
248
+
249
+ const INPUT_REQUIRED_METHODS = new Set([
250
+ "elicitation/create",
251
+ "sampling/createMessage",
252
+ ]);
253
+ const MAX_INPUT_REQUIRED_SERVER_LENGTH = 96;
254
+ const MAX_INPUT_REQUIRED_TARGET_LENGTH = 160;
255
+ const MAX_INPUT_REQUIRED_DETAIL_LENGTH = 128;
256
+
257
+ function asRecord(value: unknown): Record<string, unknown> | undefined {
258
+ return value !== null && typeof value === "object" && !Array.isArray(value)
259
+ ? value as Record<string, unknown>
260
+ : undefined;
261
+ }
262
+
263
+ function boundedText(value: unknown, maxLength: number): string | undefined {
264
+ if (typeof value !== "string" || value.length === 0) return undefined;
265
+ return value.length <= maxLength ? value : `${value.slice(0, maxLength - 1)}…`;
266
+ }
267
+
268
+ interface EmbeddedInputRequest {
269
+ inputKey: string;
270
+ inputMethod: string;
271
+ server?: string;
272
+ tool?: string;
273
+ resourceUri?: string;
274
+ }
275
+
276
+ function findEmbeddedInputRequest(error: unknown): EmbeddedInputRequest | undefined {
277
+ let current: unknown = error;
278
+ const seen = new Set<unknown>();
279
+ for (let depth = 0; depth < 8 && current !== undefined && current !== null; depth++) {
280
+ if (seen.has(current)) return undefined;
281
+ seen.add(current);
282
+ const record = asRecord(current);
283
+ if (!record) return undefined;
284
+
285
+ if (record.code === INPUT_REQUIRED_NEEDS_UI) {
286
+ const details = asRecord(record.details);
287
+ const inputKey = boundedText(details?.inputKey, MAX_INPUT_REQUIRED_DETAIL_LENGTH);
288
+ const inputMethod = boundedText(details?.inputMethod, MAX_INPUT_REQUIRED_DETAIL_LENGTH);
289
+ if (inputKey && inputMethod && INPUT_REQUIRED_METHODS.has(inputMethod)) {
290
+ const server = boundedText(details?.server, MAX_INPUT_REQUIRED_SERVER_LENGTH);
291
+ const tool = boundedText(details?.tool, MAX_INPUT_REQUIRED_TARGET_LENGTH);
292
+ const resourceUri = boundedText(details?.resourceUri, MAX_INPUT_REQUIRED_TARGET_LENGTH);
293
+ return {
294
+ inputKey,
295
+ inputMethod,
296
+ ...(server ? { server } : {}),
297
+ ...(tool ? { tool } : {}),
298
+ ...(resourceUri ? { resourceUri } : {}),
299
+ };
300
+ }
301
+ }
302
+
303
+ if (record.code === "CAPABILITY_NOT_SUPPORTED") {
304
+ const data = asRecord(record.data);
305
+ const inputKey = boundedText(data?.key, MAX_INPUT_REQUIRED_DETAIL_LENGTH);
306
+ const inputMethod = boundedText(data?.method, MAX_INPUT_REQUIRED_DETAIL_LENGTH);
307
+ if (inputKey && inputMethod && INPUT_REQUIRED_METHODS.has(inputMethod)) {
308
+ return { inputKey, inputMethod };
309
+ }
310
+ }
311
+
312
+ current = record.cause;
313
+ }
314
+ return undefined;
315
+ }
316
+
317
+ /**
318
+ * Convert a missing embedded-input handler into an adapter-owned result
319
+ * detail. Matching requires the SDK's typed code/data shape (or this module's
320
+ * typed wrapper), rather than arbitrary error-message text.
321
+ */
322
+ export function getInputRequiredNeedsUiDetails(
323
+ error: unknown,
324
+ identity: InputRequiredIdentity,
325
+ ): InputRequiredNeedsUiDetails | undefined {
326
+ const request = findEmbeddedInputRequest(error);
327
+ if (!request) return undefined;
328
+
329
+ const server = boundedText(request.server ?? identity.server, MAX_INPUT_REQUIRED_SERVER_LENGTH) ?? "unknown";
330
+ const tool = boundedText(request.tool ?? identity.tool, MAX_INPUT_REQUIRED_TARGET_LENGTH);
331
+ const resourceUri = boundedText(request.resourceUri ?? identity.resourceUri, MAX_INPUT_REQUIRED_TARGET_LENGTH);
332
+ const target = resourceUri
333
+ ? `read resource "${resourceUri}"`
334
+ : tool
335
+ ? `call tool "${tool}"`
336
+ : "complete the MCP request";
337
+ const guidance = request.inputMethod === "elicitation/create"
338
+ ? "Run this call in an interactive Pi session with elicitation enabled, then retry."
339
+ : "Run this call in an interactive Pi session with the required MCP capability enabled, then retry.";
340
+ const message = `MCP server "${server}" requested input to ${target}, but this session has no handler for "${request.inputMethod}" (input "${request.inputKey}"). ${guidance}`;
341
+
342
+ return {
343
+ error: INPUT_REQUIRED_NEEDS_UI,
344
+ server,
345
+ ...(tool ? { tool } : {}),
346
+ ...(resourceUri ? { resourceUri } : {}),
347
+ inputKey: request.inputKey,
348
+ inputMethod: request.inputMethod,
349
+ message,
350
+ };
351
+ }
352
+
353
+ /** Error form used by UiResourceHandler so an outer tool call can preserve the classification. */
354
+ export class InputRequiredNeedsUiError extends McpUiError {
355
+ constructor(readonly details: InputRequiredNeedsUiDetails, cause?: Error) {
356
+ super(details.message, {
357
+ code: INPUT_REQUIRED_NEEDS_UI,
358
+ context: { ...details },
359
+ recoveryHint: "Run this call in an interactive Pi session with the required MCP input handler enabled, then retry.",
360
+ ...(cause ? { cause } : {}),
361
+ });
362
+ this.name = "InputRequiredNeedsUiError";
363
+ }
364
+ }
@@ -3,6 +3,8 @@ import type { UiHostContext, UiResourceContent, UiResourceCsp } from "./types.ts
3
3
  // Use locally bundled AppBridge to avoid CDN Zod bundling issues
4
4
  const DEFAULT_APP_BRIDGE_MODULE_URL = "/app-bridge.bundle.js";
5
5
  const APP_SANDBOX = "allow-scripts allow-forms allow-modals allow-popups allow-downloads";
6
+ const APP_PROXY_SANDBOX = `${APP_SANDBOX} allow-same-origin`;
7
+ const APP_INNER_SANDBOX = APP_PROXY_SANDBOX;
6
8
 
7
9
  export interface HostHtmlTemplateInput {
8
10
  sessionToken: string;
@@ -16,6 +18,7 @@ export interface HostHtmlTemplateInput {
16
18
  cacheToolConsent: boolean;
17
19
  hostContext?: UiHostContext;
18
20
  appBridgeModuleUrl?: string;
21
+ sandboxProxyUrl: string;
19
22
  }
20
23
 
21
24
  export function buildHostHtmlTemplate(input: HostHtmlTemplateInput): string {
@@ -31,6 +34,9 @@ export function buildHostHtmlTemplate(input: HostHtmlTemplateInput): string {
31
34
  const requireToolConsent = safeInlineJSON(input.requireToolConsent);
32
35
  const cacheToolConsent = safeInlineJSON(input.cacheToolConsent);
33
36
  const moduleUrl = safeInlineJSON(input.appBridgeModuleUrl ?? DEFAULT_APP_BRIDGE_MODULE_URL);
37
+ const sandboxProxyUrl = safeInlineJSON(input.sandboxProxyUrl);
38
+ const resourceCsp = safeInlineJSON(input.resource.meta.csp);
39
+ const resourcePermissions = safeInlineJSON(input.resource.meta.permissions);
34
40
 
35
41
  return `<!doctype html>
36
42
  <html lang="en">
@@ -112,7 +118,7 @@ export function buildHostHtmlTemplate(input: HostHtmlTemplateInput): string {
112
118
  </div>
113
119
  </header>
114
120
  <main>
115
- <iframe id="mcp-app" sandbox="${APP_SANDBOX}" referrerpolicy="no-referrer"></iframe>
121
+ <iframe id="mcp-app" sandbox="${APP_PROXY_SANDBOX}" referrerpolicy="no-referrer"></iframe>
116
122
  </main>
117
123
  <div class="overlay" id="error-overlay">
118
124
  <div class="panel">
@@ -138,6 +144,10 @@ export function buildHostHtmlTemplate(input: HostHtmlTemplateInput): string {
138
144
  const ALLOW_ATTRIBUTE = ${allowAttribute};
139
145
  const REQUIRE_TOOL_CONSENT = ${requireToolConsent};
140
146
  const CACHE_TOOL_CONSENT = ${cacheToolConsent};
147
+ const SANDBOX_PROXY_URL = ${sandboxProxyUrl};
148
+ const RESOURCE_CSP = ${resourceCsp};
149
+ const RESOURCE_PERMISSIONS = ${resourcePermissions};
150
+ const INNER_SANDBOX = ${safeInlineJSON(APP_INNER_SANDBOX)};
141
151
  const STREAM_CONTEXT_KEY = "pi-mcp-adapter/stream";
142
152
  const STREAM_PATCH_METHOD = "notifications/pi-mcp-adapter/ui-result-patch";
143
153
 
@@ -148,6 +158,7 @@ export function buildHostHtmlTemplate(input: HostHtmlTemplateInput): string {
148
158
  const errorOverlay = document.getElementById("error-overlay");
149
159
  const completionOverlay = document.getElementById("completion-overlay");
150
160
  const errorMessage = document.getElementById("error-message");
161
+ const sandboxProxyOrigin = new URL(SANDBOX_PROXY_URL).origin;
151
162
 
152
163
  document.getElementById("server-name").textContent = SERVER_NAME;
153
164
  document.getElementById("tool-name").textContent = TOOL_NAME;
@@ -205,10 +216,41 @@ export function buildHostHtmlTemplate(input: HostHtmlTemplateInput): string {
205
216
  const bridge = new AppBridge(
206
217
  null,
207
218
  { name: "pi", version: "1.0.0" },
208
- { serverTools: {}, openLinks: {}, logging: {}, updateModelContext: {}, message: {} },
219
+ {
220
+ serverTools: {},
221
+ openLinks: {},
222
+ logging: {},
223
+ updateModelContext: {},
224
+ message: {},
225
+ sandbox: {
226
+ ...(RESOURCE_CSP ? { csp: RESOURCE_CSP } : {}),
227
+ ...(RESOURCE_PERMISSIONS ? { permissions: RESOURCE_PERMISSIONS } : {}),
228
+ },
229
+ },
209
230
  { hostContext: HOST_CONTEXT }
210
231
  );
211
232
 
233
+ let sandboxResourceSent = false;
234
+ bridge.onsandboxready = async () => {
235
+ if (sandboxResourceSent) return;
236
+ sandboxResourceSent = true;
237
+ try {
238
+ const response = await fetch("/ui-app?resource=" + encodeURIComponent(UI_RESOURCE_TOKEN), {
239
+ headers: { Accept: "text/html" },
240
+ });
241
+ if (!response.ok) throw new Error("UI resource request failed: HTTP " + response.status);
242
+ const html = await response.text();
243
+ await bridge.sendSandboxResourceReady({
244
+ html,
245
+ sandbox: INNER_SANDBOX,
246
+ ...(RESOURCE_CSP ? { csp: RESOURCE_CSP } : {}),
247
+ ...(RESOURCE_PERMISSIONS ? { permissions: RESOURCE_PERMISSIONS } : {}),
248
+ });
249
+ } catch (error) {
250
+ showError("Failed to load MCP App resource: " + String(error));
251
+ }
252
+ };
253
+
212
254
  bridge.oncalltool = async (params) => {
213
255
  if (!consentGranted) {
214
256
  const accepted = window.confirm("Allow this UI to call server tools for this session?");
@@ -240,7 +282,7 @@ export function buildHostHtmlTemplate(input: HostHtmlTemplateInput): string {
240
282
  // Also listen for raw postMessage events with custom types (notify, prompt, intent, etc.)
241
283
  // These bypass the AppBridge protocol but are used by some MCP UI implementations
242
284
  window.addEventListener("message", async (event) => {
243
- if (event.source !== iframe.contentWindow) return;
285
+ if (event.source !== iframe.contentWindow || event.origin !== sandboxProxyOrigin) return;
244
286
  const data = event.data;
245
287
  if (!data || typeof data !== "object") return;
246
288
 
@@ -304,6 +346,12 @@ export function buildHostHtmlTemplate(input: HostHtmlTemplateInput): string {
304
346
  }
305
347
 
306
348
  // Connect bridge BEFORE loading iframe to ensure we're listening when the app sends ui/initialize
349
+ const sandboxMessageGuard = (event) => {
350
+ if (event.source === iframe.contentWindow && event.origin !== sandboxProxyOrigin) {
351
+ event.stopImmediatePropagation();
352
+ }
353
+ };
354
+ window.addEventListener("message", sandboxMessageGuard, true);
307
355
  try {
308
356
  const transport = new PostMessageTransport(iframe.contentWindow, iframe.contentWindow);
309
357
  await bridge.connect(transport);
@@ -315,7 +363,7 @@ export function buildHostHtmlTemplate(input: HostHtmlTemplateInput): string {
315
363
  const iframeLoaded = new Promise((resolve) => {
316
364
  iframe.onload = resolve;
317
365
  });
318
- iframe.src = "/ui-app?resource=" + encodeURIComponent(UI_RESOURCE_TOKEN);
366
+ iframe.src = SANDBOX_PROXY_URL;
319
367
  await iframeLoaded;
320
368
 
321
369
  const eventSource = new EventSource("/events?session=" + encodeURIComponent(SESSION_TOKEN));
@@ -340,6 +388,9 @@ export function buildHostHtmlTemplate(input: HostHtmlTemplateInput): string {
340
388
  showError("Failed to forward cancellation: " + String(error));
341
389
  }
342
390
  });
391
+ eventSource.addEventListener("resource-updated", () => {
392
+ setStatus("Resource updated on the server. Reopen this UI to load the latest version.");
393
+ });
343
394
  eventSource.addEventListener("result-patch", async (event) => {
344
395
  try {
345
396
  await bridge.notification({
@@ -443,7 +494,9 @@ function sanitizeCspDomains(domains: unknown): string[] {
443
494
  }
444
495
 
445
496
  function safeInlineJSON(value: unknown): string {
446
- return JSON.stringify(value)
497
+ const json = JSON.stringify(value);
498
+ if (json === undefined) return "undefined";
499
+ return json
447
500
  .replace(/</g, "\\u003c")
448
501
  .replace(/>/g, "\\u003e")
449
502
  .replace(/&/g, "\\u0026")
@@ -590,7 +590,7 @@ function installMcpAdapter(pi: ExtensionAPI, options: McpAdapterOptions) {
590
590
  initPromise = null;
591
591
  if (earlyConfig.settings?.freezeDirectTools === true) {
592
592
  directToolsFrozen = true;
593
- logger.info("MCP: direct tools frozen after initial sync — reconnects won't rebuild the system prompt; use mcp({ connect: \"server\" }) to rediscover");
593
+ logger.info("MCP: direct tools frozen after initial sync — metadata can refresh without rebuilding the active tool surface");
594
594
  }
595
595
  }).catch(async err => {
596
596
  if (!owner.isActive() || generation !== lifecycleGeneration) {
@@ -817,7 +817,6 @@ function installMcpAdapter(pi: ExtensionAPI, options: McpAdapterOptions) {
817
817
  case "reconnect":
818
818
  commandOwner?.throwIfInactive();
819
819
  await reconnectServers(state, commandCtx, targetServer);
820
- if (directToolsFrozen) syncToolSurface(commandCtx);
821
820
  break;
822
821
  case "tools":
823
822
  await showTools(state, commandCtx);
@@ -1168,7 +1167,7 @@ function installMcpAdapter(pi: ExtensionAPI, options: McpAdapterOptions) {
1168
1167
  }
1169
1168
  if (params.connect) {
1170
1169
  const result = await executeConnect(state, params.connect, signal);
1171
- syncToolSurface(_ctx as ExtensionContext);
1170
+ if (!directToolsFrozen) syncToolSurface(_ctx as ExtensionContext);
1172
1171
  return result;
1173
1172
  }
1174
1173
  if (params.describe) {
@@ -215,6 +215,10 @@ export async function initializeMcp(
215
215
  notifyToolMetadataUpdated(state, serverName, reason);
216
216
  updateStatusBar(state);
217
217
  });
218
+ manager.setListenStateChangedListener?.(() => {
219
+ if (!owner.isActive()) return;
220
+ updateStatusBar(state);
221
+ });
218
222
  owner.addCleanup(() => lifecycle.gracefulShutdown());
219
223
  owner.addCleanup(() => {
220
224
  if (state.uiServer) {
@@ -641,6 +645,7 @@ export async function lazyConnect(state: McpExtensionState, serverName: string,
641
645
  return false;
642
646
  }
643
647
  if (connection?.status === "connected") {
648
+ await state.manager.ensureListen?.(serverName, connection);
644
649
  updateServerMetadata(state, serverName);
645
650
  markKeepAliveAfterConnect(state, serverName);
646
651
  return true;
@@ -134,6 +134,8 @@ interface ServerState {
134
134
  includeTools?: string[];
135
135
  excludeTools?: string[];
136
136
  exposeResources: boolean;
137
+ disabled: boolean;
138
+ wasDisabled: boolean;
137
139
  connectionStatus: ConnectionStatus;
138
140
  failureMessage?: string | null;
139
141
  tools: ToolState[];
@@ -243,6 +245,7 @@ class McpPanel {
243
245
 
244
246
  const status = callbacks.getConnectionStatus(serverName);
245
247
  const failureMessage = callbacks.getFailureMessage?.(serverName) ?? null;
248
+ const serverDisabled = isServerDisabled(definition);
246
249
  let directCount = 0;
247
250
  let directTokens = 0;
248
251
  for (const tool of tools) {
@@ -258,6 +261,8 @@ class McpPanel {
258
261
  ...(definition.includeTools !== undefined ? { includeTools: definition.includeTools } : {}),
259
262
  ...(definition.excludeTools !== undefined ? { excludeTools: definition.excludeTools } : {}),
260
263
  exposeResources: definition.exposeResources !== false,
264
+ disabled: serverDisabled,
265
+ wasDisabled: serverDisabled,
261
266
  connectionStatus: status,
262
267
  failureMessage,
263
268
  tools,
@@ -275,7 +280,7 @@ class McpPanel {
275
280
  if (this.inactivityTimeout) clearTimeout(this.inactivityTimeout);
276
281
  this.inactivityTimeout = setTimeout(() => {
277
282
  this.cleanup();
278
- this.done({ cancelled: true, changes: new Map() });
283
+ this.done({ cancelled: true, changes: new Map(), disabledChanges: new Map() });
279
284
  }, McpPanel.INACTIVITY_MS);
280
285
  }
281
286
 
@@ -334,12 +339,16 @@ class McpPanel {
334
339
  }
335
340
 
336
341
  private updateDirty(): void {
337
- this.dirty = this.servers.some((s) => s.tools.some((t) => t.isDirect !== t.wasDirect));
342
+ this.dirty = this.servers.some((s) => s.disabled !== s.wasDisabled || s.tools.some((t) => t.isDirect !== t.wasDirect));
338
343
  }
339
344
 
340
345
  private buildResult(): McpPanelResult {
341
346
  const changes = new Map<string, true | string[] | false>();
347
+ const disabledChanges = new Map<string, boolean>();
342
348
  for (const server of this.servers) {
349
+ if (server.disabled !== server.wasDisabled) {
350
+ disabledChanges.set(server.name, server.disabled);
351
+ }
343
352
  const changed = server.tools.some((t) => t.isDirect !== t.wasDirect);
344
353
  if (!changed) continue;
345
354
  const directTools = server.tools.filter((t) => t.isDirect);
@@ -351,7 +360,7 @@ class McpPanel {
351
360
  changes.set(server.name, directTools.map((t) => t.name));
352
361
  }
353
362
  }
354
- return { changes, cancelled: false };
363
+ return { changes, disabledChanges, cancelled: false };
355
364
  }
356
365
 
357
366
  handleInput(data: string): void {
@@ -367,7 +376,7 @@ class McpPanel {
367
376
  // Global shortcuts — always work, even during desc search
368
377
  if (matchesKey(data, "ctrl+c")) {
369
378
  this.cleanup();
370
- this.done({ cancelled: true, changes: new Map() });
379
+ this.done({ cancelled: true, changes: new Map(), disabledChanges: new Map() });
371
380
  return;
372
381
  }
373
382
 
@@ -424,7 +433,7 @@ class McpPanel {
424
433
  return;
425
434
  }
426
435
  this.cleanup();
427
- this.done({ cancelled: true, changes: new Map() });
436
+ this.done({ cancelled: true, changes: new Map(), disabledChanges: new Map() });
428
437
  return;
429
438
  }
430
439
 
@@ -477,6 +486,17 @@ class McpPanel {
477
486
  return;
478
487
  }
479
488
 
489
+ if (matchesKey(data, "ctrl+d")) {
490
+ const item = this.visibleItems[this.cursorIndex];
491
+ if (!item || item.type !== "server" || this.authOnly) return;
492
+ const server = this.servers[item.serverIndex];
493
+ if (!server) return;
494
+ server.disabled = !server.disabled;
495
+ this.updateDirty();
496
+ this.tui.requestRender();
497
+ return;
498
+ }
499
+
480
500
  if (matchesKey(data, "ctrl+y")) {
481
501
  const item = this.visibleItems[this.cursorIndex];
482
502
  if (!item) return;
@@ -632,7 +652,7 @@ class McpPanel {
632
652
  private handleDiscardInput(data: string): void {
633
653
  if (matchesKey(data, "ctrl+c")) {
634
654
  this.cleanup();
635
- this.done({ cancelled: true, changes: new Map() });
655
+ this.done({ cancelled: true, changes: new Map(), disabledChanges: new Map() });
636
656
  return;
637
657
  }
638
658
  if (matchesKey(data, "escape") || data === "n" || data === "N") {
@@ -642,7 +662,7 @@ class McpPanel {
642
662
  if (this.keys.selectConfirm(data)) {
643
663
  this.cleanup();
644
664
  if (this.discardSelected === 0) {
645
- this.done({ cancelled: true, changes: new Map() });
665
+ this.done({ cancelled: true, changes: new Map(), disabledChanges: new Map() });
646
666
  } else {
647
667
  this.done(this.buildResult());
648
668
  }
@@ -650,7 +670,7 @@ class McpPanel {
650
670
  }
651
671
  if (data === "y" || data === "Y") {
652
672
  this.cleanup();
653
- this.done({ cancelled: true, changes: new Map() });
673
+ this.done({ cancelled: true, changes: new Map(), disabledChanges: new Map() });
654
674
  return;
655
675
  }
656
676
  if (matchesKey(data, "left") || matchesKey(data, "right") || matchesKey(data, "tab")) {
@@ -883,6 +903,7 @@ class McpPanel {
883
903
  italic("⏎") + " expand/auth",
884
904
  italic("ctrl+a") + " auth",
885
905
  italic("ctrl+r") + " reconnect",
906
+ italic("ctrl+d") + " disable/enable",
886
907
  ...(this.selectedServerHasFailureMessage() ? [italic("ctrl+y") + " copy error"] : []),
887
908
  italic("?") + " desc search",
888
909
  ...(saveLabel ? [italic(saveLabel) + " save"] : []),
@@ -995,7 +1016,7 @@ class McpPanel {
995
1016
  private renderConnectionStatus(server: ServerState): string {
996
1017
  const t = this.t;
997
1018
  if (this.authInFlight === server.name) return ` ${fg(t.needsAuth, "authenticating")}`;
998
- if (server.connectionStatus === "disabled") return ` ${fg(t.description, "disabled")}`;
1019
+ if (server.disabled) return ` ${fg(t.description, "disabled")}`;
999
1020
  if (server.connectionStatus === "needs-auth") return ` ${fg(t.needsAuth, "needs auth")}`;
1000
1021
  if (server.connectionStatus === "connecting") return ` ${fg(t.needsAuth, "connecting")}`;
1001
1022
  if (server.connectionStatus === "failed") return ` ${fg(t.cancel, "failed")}`;