@oh-my-pi/pi-coding-agent 16.3.5 → 16.3.7

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 (785) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/dist/cli.js +3625 -3596
  3. package/dist/types/advisor/index.d.ts +6 -6
  4. package/dist/types/advisor/runtime.d.ts +1 -1
  5. package/dist/types/advisor/watchdog.d.ts +1 -1
  6. package/dist/types/async/index.d.ts +1 -1
  7. package/dist/types/auto-thinking/classifier.d.ts +2 -2
  8. package/dist/types/autolearn/controller.d.ts +2 -2
  9. package/dist/types/autoresearch/dashboard.d.ts +2 -2
  10. package/dist/types/autoresearch/git.d.ts +1 -1
  11. package/dist/types/autoresearch/helpers.d.ts +1 -1
  12. package/dist/types/autoresearch/index.d.ts +1 -1
  13. package/dist/types/autoresearch/state.d.ts +3 -3
  14. package/dist/types/autoresearch/storage.d.ts +1 -1
  15. package/dist/types/autoresearch/tools/init-experiment.d.ts +2 -2
  16. package/dist/types/autoresearch/tools/log-experiment.d.ts +2 -2
  17. package/dist/types/autoresearch/tools/run-experiment.d.ts +2 -2
  18. package/dist/types/autoresearch/tools/update-notes.d.ts +2 -2
  19. package/dist/types/autoresearch/types.d.ts +3 -3
  20. package/dist/types/capability/context-file.d.ts +2 -2
  21. package/dist/types/capability/extension-module.d.ts +2 -2
  22. package/dist/types/capability/extension.d.ts +3 -3
  23. package/dist/types/capability/hook.d.ts +2 -2
  24. package/dist/types/capability/index.d.ts +3 -3
  25. package/dist/types/capability/instruction.d.ts +2 -2
  26. package/dist/types/capability/mcp.d.ts +2 -2
  27. package/dist/types/capability/prompt.d.ts +2 -2
  28. package/dist/types/capability/rule-buckets.d.ts +2 -2
  29. package/dist/types/capability/rule.d.ts +2 -2
  30. package/dist/types/capability/settings.d.ts +2 -2
  31. package/dist/types/capability/skill.d.ts +2 -2
  32. package/dist/types/capability/slash-command.d.ts +2 -2
  33. package/dist/types/capability/ssh.d.ts +2 -2
  34. package/dist/types/capability/system-prompt.d.ts +2 -2
  35. package/dist/types/capability/tool.d.ts +2 -2
  36. package/dist/types/cli/args.d.ts +1 -1
  37. package/dist/types/cli/bench-cli.d.ts +2 -2
  38. package/dist/types/cli/dry-balance-cli.d.ts +1 -1
  39. package/dist/types/cli/extension-flags.d.ts +1 -1
  40. package/dist/types/cli/flag-tables.d.ts +2 -2
  41. package/dist/types/cli/gallery-cli.d.ts +1 -1
  42. package/dist/types/cli/gallery-fixtures/agentic.d.ts +1 -1
  43. package/dist/types/cli/gallery-fixtures/codeintel.d.ts +1 -1
  44. package/dist/types/cli/gallery-fixtures/edit.d.ts +1 -1
  45. package/dist/types/cli/gallery-fixtures/fs.d.ts +1 -1
  46. package/dist/types/cli/gallery-fixtures/index.d.ts +2 -2
  47. package/dist/types/cli/gallery-fixtures/interaction.d.ts +1 -1
  48. package/dist/types/cli/gallery-fixtures/memory.d.ts +1 -1
  49. package/dist/types/cli/gallery-fixtures/misc.d.ts +1 -1
  50. package/dist/types/cli/gallery-fixtures/search.d.ts +1 -1
  51. package/dist/types/cli/gallery-fixtures/shell.d.ts +1 -1
  52. package/dist/types/cli/gallery-fixtures/types.d.ts +1 -1
  53. package/dist/types/cli/gallery-fixtures/web.d.ts +1 -1
  54. package/dist/types/cli/gallery-screenshot.d.ts +1 -1
  55. package/dist/types/cli/initial-message.d.ts +1 -1
  56. package/dist/types/cli/models-cli.d.ts +1 -1
  57. package/dist/types/cli/plugin-cli.d.ts +1 -1
  58. package/dist/types/cli/session-picker.d.ts +1 -1
  59. package/dist/types/cli/startup-cwd.d.ts +1 -1
  60. package/dist/types/cli/tiny-models-cli.d.ts +1 -1
  61. package/dist/types/cli/web-search-cli.d.ts +1 -1
  62. package/dist/types/collab/crypto.d.ts +1 -1
  63. package/dist/types/collab/display-name.d.ts +1 -1
  64. package/dist/types/collab/guest.d.ts +4 -4
  65. package/dist/types/collab/host.d.ts +2 -2
  66. package/dist/types/collab/protocol.d.ts +3 -3
  67. package/dist/types/collab/relay-client.d.ts +1 -1
  68. package/dist/types/commands/auth-broker.d.ts +1 -1
  69. package/dist/types/commands/auth-gateway.d.ts +1 -1
  70. package/dist/types/commands/config.d.ts +1 -1
  71. package/dist/types/commands/plugin.d.ts +1 -1
  72. package/dist/types/commands/setup.d.ts +2 -2
  73. package/dist/types/commands/ssh.d.ts +1 -1
  74. package/dist/types/commands/tiny-models.d.ts +1 -1
  75. package/dist/types/commands/ttsr.d.ts +2 -2
  76. package/dist/types/commit/agentic/agent.d.ts +4 -4
  77. package/dist/types/commit/agentic/fallback.d.ts +2 -2
  78. package/dist/types/commit/agentic/index.d.ts +1 -1
  79. package/dist/types/commit/agentic/state.d.ts +1 -1
  80. package/dist/types/commit/agentic/tools/analyze-file.d.ts +5 -5
  81. package/dist/types/commit/agentic/tools/git-file-diff.d.ts +2 -2
  82. package/dist/types/commit/agentic/tools/git-hunk.d.ts +1 -1
  83. package/dist/types/commit/agentic/tools/git-overview.d.ts +2 -2
  84. package/dist/types/commit/agentic/tools/index.d.ts +5 -5
  85. package/dist/types/commit/agentic/tools/propose-changelog.d.ts +2 -2
  86. package/dist/types/commit/agentic/tools/propose-commit.d.ts +2 -2
  87. package/dist/types/commit/agentic/tools/recent-commits.d.ts +1 -1
  88. package/dist/types/commit/agentic/tools/split-commit.d.ts +2 -2
  89. package/dist/types/commit/agentic/topo-sort.d.ts +1 -1
  90. package/dist/types/commit/agentic/trivial.d.ts +1 -1
  91. package/dist/types/commit/agentic/validation.d.ts +1 -1
  92. package/dist/types/commit/analysis/conventional.d.ts +1 -1
  93. package/dist/types/commit/analysis/index.d.ts +4 -4
  94. package/dist/types/commit/analysis/scope.d.ts +1 -1
  95. package/dist/types/commit/analysis/summary.d.ts +1 -1
  96. package/dist/types/commit/analysis/validation.d.ts +1 -1
  97. package/dist/types/commit/changelog/detect.d.ts +1 -1
  98. package/dist/types/commit/changelog/generate.d.ts +1 -1
  99. package/dist/types/commit/changelog/parse.d.ts +1 -1
  100. package/dist/types/commit/cli.d.ts +1 -1
  101. package/dist/types/commit/git/diff.d.ts +1 -1
  102. package/dist/types/commit/index.d.ts +1 -1
  103. package/dist/types/commit/map-reduce/index.d.ts +1 -1
  104. package/dist/types/commit/map-reduce/map-phase.d.ts +1 -1
  105. package/dist/types/commit/map-reduce/reduce-phase.d.ts +1 -1
  106. package/dist/types/commit/message.d.ts +1 -1
  107. package/dist/types/commit/model-selection.d.ts +3 -3
  108. package/dist/types/commit/pipeline.d.ts +1 -1
  109. package/dist/types/commit/shared-llm.d.ts +1 -1
  110. package/dist/types/commit/utils.d.ts +1 -1
  111. package/dist/types/config/model-discovery.d.ts +1 -1
  112. package/dist/types/config/model-registry.d.ts +3 -3
  113. package/dist/types/config/model-resolver.d.ts +4 -4
  114. package/dist/types/config/model-roles.d.ts +2 -2
  115. package/dist/types/config/models-config.d.ts +2 -2
  116. package/dist/types/config/service-tier.d.ts +1 -1
  117. package/dist/types/config/settings-schema.d.ts +7 -13
  118. package/dist/types/config/settings.d.ts +7 -7
  119. package/dist/types/config.d.ts +1 -1
  120. package/dist/types/dap/client.d.ts +1 -1
  121. package/dist/types/dap/config.d.ts +1 -1
  122. package/dist/types/dap/index.d.ts +4 -4
  123. package/dist/types/dap/session.d.ts +3 -3
  124. package/dist/types/debug/index.d.ts +1 -1
  125. package/dist/types/debug/log-viewer.d.ts +1 -1
  126. package/dist/types/debug/raw-sse.d.ts +1 -1
  127. package/dist/types/debug/report-bundle.d.ts +1 -1
  128. package/dist/types/discovery/agents.d.ts +1 -1
  129. package/dist/types/discovery/helpers.d.ts +4 -4
  130. package/dist/types/discovery/index.d.ts +47 -47
  131. package/dist/types/discovery/omp-extension-roots.d.ts +1 -1
  132. package/dist/types/edit/apply-patch/index.d.ts +2 -2
  133. package/dist/types/edit/apply-patch/parser.d.ts +1 -1
  134. package/dist/types/edit/diff.d.ts +1 -1
  135. package/dist/types/edit/file-snapshot-store.d.ts +4 -2
  136. package/dist/types/edit/hashline/execute.d.ts +4 -4
  137. package/dist/types/edit/hashline/filesystem.d.ts +3 -3
  138. package/dist/types/edit/hashline/index.d.ts +5 -5
  139. package/dist/types/edit/index.d.ts +19 -19
  140. package/dist/types/edit/modes/apply-patch.d.ts +1 -1
  141. package/dist/types/edit/modes/patch.d.ts +3 -3
  142. package/dist/types/edit/modes/replace.d.ts +3 -3
  143. package/dist/types/edit/renderer.d.ts +15 -16
  144. package/dist/types/edit/snapshot-details.d.ts +1 -1
  145. package/dist/types/edit/streaming.d.ts +2 -2
  146. package/dist/types/eval/agent-bridge.d.ts +4 -4
  147. package/dist/types/eval/backend-helpers.d.ts +3 -3
  148. package/dist/types/eval/backend.d.ts +2 -2
  149. package/dist/types/eval/bridge-timeout.d.ts +1 -1
  150. package/dist/types/eval/budget-bridge.d.ts +2 -2
  151. package/dist/types/eval/completion-bridge.d.ts +2 -2
  152. package/dist/types/eval/concurrency-bridge.d.ts +2 -2
  153. package/dist/types/eval/executor-base.d.ts +3 -3
  154. package/dist/types/eval/index.d.ts +6 -6
  155. package/dist/types/eval/jl/executor.d.ts +4 -4
  156. package/dist/types/eval/jl/index.d.ts +2 -2
  157. package/dist/types/eval/jl/kernel.d.ts +5 -5
  158. package/dist/types/eval/js/context-manager.d.ts +4 -4
  159. package/dist/types/eval/js/executor.d.ts +3 -3
  160. package/dist/types/eval/js/index.d.ts +2 -2
  161. package/dist/types/eval/js/shared/helpers.d.ts +1 -1
  162. package/dist/types/eval/js/shared/runtime.d.ts +2 -2
  163. package/dist/types/eval/js/tool-bridge.d.ts +5 -5
  164. package/dist/types/eval/js/worker-core.d.ts +1 -1
  165. package/dist/types/eval/js/worker-protocol.d.ts +2 -2
  166. package/dist/types/eval/kernel-base.d.ts +1 -1
  167. package/dist/types/eval/py/executor.d.ts +3 -3
  168. package/dist/types/eval/py/index.d.ts +2 -2
  169. package/dist/types/eval/py/kernel.d.ts +5 -5
  170. package/dist/types/eval/py/tool-bridge.d.ts +2 -2
  171. package/dist/types/eval/rb/executor.d.ts +3 -3
  172. package/dist/types/eval/rb/index.d.ts +2 -2
  173. package/dist/types/eval/rb/kernel.d.ts +6 -6
  174. package/dist/types/eval/session-id.d.ts +1 -1
  175. package/dist/types/eval/types.d.ts +1 -1
  176. package/dist/types/exa/index.d.ts +2 -2
  177. package/dist/types/exa/mcp-client.d.ts +3 -3
  178. package/dist/types/exec/bash-executor.d.ts +1 -1
  179. package/dist/types/export/html/index.d.ts +2 -2
  180. package/dist/types/export/share.d.ts +3 -3
  181. package/dist/types/export/ttsr.d.ts +2 -2
  182. package/dist/types/extensibility/custom-commands/bundled/ci-green/index.d.ts +2 -2
  183. package/dist/types/extensibility/custom-commands/bundled/review/index.d.ts +2 -2
  184. package/dist/types/extensibility/custom-commands/index.d.ts +2 -2
  185. package/dist/types/extensibility/custom-commands/loader.d.ts +1 -1
  186. package/dist/types/extensibility/custom-commands/types.d.ts +3 -3
  187. package/dist/types/extensibility/custom-tools/index.d.ts +3 -3
  188. package/dist/types/extensibility/custom-tools/loader.d.ts +3 -3
  189. package/dist/types/extensibility/custom-tools/types.d.ts +13 -11
  190. package/dist/types/extensibility/custom-tools/wrapper.d.ts +2 -2
  191. package/dist/types/extensibility/extensions/compact-handler.d.ts +1 -1
  192. package/dist/types/extensibility/extensions/get-commands-handler.d.ts +5 -5
  193. package/dist/types/extensibility/extensions/index.d.ts +5 -5
  194. package/dist/types/extensibility/extensions/loader.d.ts +2 -2
  195. package/dist/types/extensibility/extensions/model-api.d.ts +3 -3
  196. package/dist/types/extensibility/extensions/runner.d.ts +6 -6
  197. package/dist/types/extensibility/extensions/types.d.ts +43 -31
  198. package/dist/types/extensibility/extensions/wrapper.d.ts +2 -2
  199. package/dist/types/extensibility/hooks/index.d.ts +6 -6
  200. package/dist/types/extensibility/hooks/loader.d.ts +4 -4
  201. package/dist/types/extensibility/hooks/runner.d.ts +5 -5
  202. package/dist/types/extensibility/hooks/tool-wrapper.d.ts +1 -1
  203. package/dist/types/extensibility/hooks/types.d.ts +18 -18
  204. package/dist/types/extensibility/legacy-pi-ai-shim.d.ts +12 -4
  205. package/dist/types/extensibility/legacy-pi-coding-agent-shim.d.ts +194 -5
  206. package/dist/types/extensibility/plugins/doctor.d.ts +1 -1
  207. package/dist/types/extensibility/plugins/index.d.ts +7 -7
  208. package/dist/types/extensibility/plugins/installer.d.ts +1 -1
  209. package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +1 -1
  210. package/dist/types/extensibility/plugins/loader.d.ts +1 -1
  211. package/dist/types/extensibility/plugins/manager.d.ts +1 -1
  212. package/dist/types/extensibility/plugins/marketplace/fetcher.d.ts +1 -1
  213. package/dist/types/extensibility/plugins/marketplace/index.d.ts +6 -6
  214. package/dist/types/extensibility/plugins/marketplace/manager.d.ts +1 -1
  215. package/dist/types/extensibility/plugins/marketplace/registry.d.ts +1 -1
  216. package/dist/types/extensibility/plugins/marketplace/source-resolver.d.ts +1 -1
  217. package/dist/types/extensibility/plugins/runtime-config.d.ts +1 -1
  218. package/dist/types/extensibility/session-handler-types.d.ts +1 -1
  219. package/dist/types/extensibility/shared-events.d.ts +12 -5
  220. package/dist/types/extensibility/skills.d.ts +3 -3
  221. package/dist/types/extensibility/slash-commands.d.ts +1 -1
  222. package/dist/types/extensibility/typebox.d.ts +1 -1
  223. package/dist/types/extensibility/utils.d.ts +1 -1
  224. package/dist/types/goals/guided-setup.d.ts +1 -1
  225. package/dist/types/goals/index.d.ts +3 -3
  226. package/dist/types/goals/runtime.d.ts +1 -1
  227. package/dist/types/goals/state.d.ts +1 -1
  228. package/dist/types/goals/tools/goal-tool.d.ts +4 -4
  229. package/dist/types/hindsight/backend.d.ts +2 -2
  230. package/dist/types/hindsight/bank.d.ts +2 -2
  231. package/dist/types/hindsight/client.d.ts +1 -1
  232. package/dist/types/hindsight/config.d.ts +1 -1
  233. package/dist/types/hindsight/index.d.ts +8 -8
  234. package/dist/types/hindsight/mental-models.d.ts +3 -3
  235. package/dist/types/hindsight/state.d.ts +5 -5
  236. package/dist/types/hindsight/transcript.d.ts +2 -2
  237. package/dist/types/index.d.ts +38 -38
  238. package/dist/types/internal-urls/agent-protocol.d.ts +1 -1
  239. package/dist/types/internal-urls/artifact-protocol.d.ts +1 -1
  240. package/dist/types/internal-urls/filesystem-resource.d.ts +1 -1
  241. package/dist/types/internal-urls/history-protocol.d.ts +1 -1
  242. package/dist/types/internal-urls/index.d.ts +16 -16
  243. package/dist/types/internal-urls/issue-pr-protocol.d.ts +1 -1
  244. package/dist/types/internal-urls/local-protocol.d.ts +1 -1
  245. package/dist/types/internal-urls/mcp-protocol.d.ts +1 -1
  246. package/dist/types/internal-urls/memory-protocol.d.ts +1 -1
  247. package/dist/types/internal-urls/omp-protocol.d.ts +1 -1
  248. package/dist/types/internal-urls/parse.d.ts +1 -1
  249. package/dist/types/internal-urls/router.d.ts +1 -1
  250. package/dist/types/internal-urls/rule-protocol.d.ts +1 -1
  251. package/dist/types/internal-urls/skill-protocol.d.ts +1 -1
  252. package/dist/types/internal-urls/ssh-protocol.d.ts +1 -1
  253. package/dist/types/internal-urls/types.d.ts +2 -2
  254. package/dist/types/internal-urls/vault-protocol.d.ts +1 -1
  255. package/dist/types/irc/bus.d.ts +2 -2
  256. package/dist/types/lib/xai-http.d.ts +1 -1
  257. package/dist/types/lsp/client.d.ts +23 -1
  258. package/dist/types/lsp/clients/biome-client.d.ts +1 -1
  259. package/dist/types/lsp/clients/index.d.ts +4 -4
  260. package/dist/types/lsp/clients/lsp-linter-client.d.ts +1 -1
  261. package/dist/types/lsp/clients/swiftlint-client.d.ts +1 -1
  262. package/dist/types/lsp/config.d.ts +1 -1
  263. package/dist/types/lsp/diagnostics-ledger.d.ts +1 -1
  264. package/dist/types/lsp/edits.d.ts +1 -1
  265. package/dist/types/lsp/index.d.ts +6 -6
  266. package/dist/types/lsp/render.d.ts +2 -2
  267. package/dist/types/lsp/startup-events.d.ts +1 -1
  268. package/dist/types/lsp/utils.d.ts +2 -2
  269. package/dist/types/main.d.ts +12 -12
  270. package/dist/types/markit/converters/docx.d.ts +1 -1
  271. package/dist/types/markit/converters/epub.d.ts +1 -1
  272. package/dist/types/markit/converters/pdf/columns.d.ts +1 -1
  273. package/dist/types/markit/converters/pdf/extract.d.ts +1 -1
  274. package/dist/types/markit/converters/pdf/grid.d.ts +1 -1
  275. package/dist/types/markit/converters/pdf/headers.d.ts +1 -1
  276. package/dist/types/markit/converters/pdf/index.d.ts +1 -1
  277. package/dist/types/markit/converters/pdf/render.d.ts +1 -1
  278. package/dist/types/markit/converters/pptx.d.ts +1 -1
  279. package/dist/types/markit/converters/xlsx.d.ts +1 -1
  280. package/dist/types/markit/index.d.ts +2 -2
  281. package/dist/types/markit/registry.d.ts +1 -1
  282. package/dist/types/mcp/client.d.ts +1 -1
  283. package/dist/types/mcp/config-writer.d.ts +1 -1
  284. package/dist/types/mcp/config.d.ts +2 -2
  285. package/dist/types/mcp/index.d.ts +12 -12
  286. package/dist/types/mcp/loader.d.ts +5 -5
  287. package/dist/types/mcp/manager.d.ts +7 -7
  288. package/dist/types/mcp/oauth-credentials.d.ts +3 -3
  289. package/dist/types/mcp/oauth-flow.d.ts +1 -1
  290. package/dist/types/mcp/render.d.ts +3 -3
  291. package/dist/types/mcp/smithery-registry.d.ts +1 -1
  292. package/dist/types/mcp/tool-bridge.d.ts +5 -5
  293. package/dist/types/mcp/tool-cache.d.ts +2 -2
  294. package/dist/types/mcp/transports/http.d.ts +1 -1
  295. package/dist/types/mcp/transports/index.d.ts +3 -3
  296. package/dist/types/mcp/transports/sse.d.ts +1 -1
  297. package/dist/types/mcp/transports/stdio.d.ts +1 -1
  298. package/dist/types/mcp/types.d.ts +1 -1
  299. package/dist/types/memories/index.d.ts +4 -4
  300. package/dist/types/memory-backend/index.d.ts +7 -7
  301. package/dist/types/memory-backend/local-backend.d.ts +1 -1
  302. package/dist/types/memory-backend/off-backend.d.ts +1 -1
  303. package/dist/types/memory-backend/resolve.d.ts +2 -2
  304. package/dist/types/memory-backend/runtime.d.ts +2 -2
  305. package/dist/types/memory-backend/types.d.ts +5 -5
  306. package/dist/types/mnemopi/backend.d.ts +2 -2
  307. package/dist/types/mnemopi/config.d.ts +1 -1
  308. package/dist/types/mnemopi/embed-client.d.ts +2 -2
  309. package/dist/types/mnemopi/embed-worker.d.ts +1 -1
  310. package/dist/types/mnemopi/index.d.ts +3 -3
  311. package/dist/types/mnemopi/state.d.ts +38 -2
  312. package/dist/types/modes/acp/acp-agent.d.ts +2 -2
  313. package/dist/types/modes/acp/acp-client-bridge.d.ts +1 -1
  314. package/dist/types/modes/acp/acp-event-mapper.d.ts +1 -1
  315. package/dist/types/modes/acp/acp-mode.d.ts +1 -1
  316. package/dist/types/modes/acp/index.d.ts +2 -2
  317. package/dist/types/modes/components/advisor-config.d.ts +3 -3
  318. package/dist/types/modes/components/advisor-message.d.ts +2 -2
  319. package/dist/types/modes/components/agent-dashboard.d.ts +2 -2
  320. package/dist/types/modes/components/agent-hub.d.ts +11 -9
  321. package/dist/types/modes/components/agent-transcript-viewer.d.ts +6 -6
  322. package/dist/types/modes/components/assistant-message.d.ts +17 -12
  323. package/dist/types/modes/components/background-tan-message.d.ts +2 -2
  324. package/dist/types/modes/components/bash-execution.d.ts +7 -1
  325. package/dist/types/modes/components/bordered-loader.d.ts +1 -1
  326. package/dist/types/modes/components/chat-transcript-builder.d.ts +3 -3
  327. package/dist/types/modes/components/collab-prompt-message.d.ts +2 -2
  328. package/dist/types/modes/components/compaction-summary-message.d.ts +1 -1
  329. package/dist/types/modes/components/copy-selector.d.ts +1 -1
  330. package/dist/types/modes/components/custom-editor.d.ts +1 -1
  331. package/dist/types/modes/components/custom-message.d.ts +2 -2
  332. package/dist/types/modes/components/eval-execution.d.ts +7 -1
  333. package/dist/types/modes/components/execution-shared.d.ts +1 -1
  334. package/dist/types/modes/components/extensions/extension-dashboard.d.ts +2 -2
  335. package/dist/types/modes/components/extensions/extension-list.d.ts +1 -1
  336. package/dist/types/modes/components/extensions/index.d.ts +5 -5
  337. package/dist/types/modes/components/extensions/inspector-panel.d.ts +1 -1
  338. package/dist/types/modes/components/extensions/state-manager.d.ts +1 -1
  339. package/dist/types/modes/components/extensions/types.d.ts +1 -1
  340. package/dist/types/modes/components/footer.d.ts +1 -1
  341. package/dist/types/modes/components/history-search.d.ts +1 -1
  342. package/dist/types/modes/components/hook-message.d.ts +2 -2
  343. package/dist/types/modes/components/index.d.ts +38 -38
  344. package/dist/types/modes/components/keybinding-hints.d.ts +1 -1
  345. package/dist/types/modes/components/logout-account-selector.d.ts +1 -1
  346. package/dist/types/modes/components/mcp-add-wizard.d.ts +1 -1
  347. package/dist/types/modes/components/message-frame.d.ts +1 -1
  348. package/dist/types/modes/components/model-selector.d.ts +3 -3
  349. package/dist/types/modes/components/oauth-selector.d.ts +1 -1
  350. package/dist/types/modes/components/plan-review-overlay.d.ts +1 -1
  351. package/dist/types/modes/components/plugin-settings.d.ts +3 -3
  352. package/dist/types/modes/components/read-tool-group.d.ts +1 -1
  353. package/dist/types/modes/components/reset-usage-selector.d.ts +1 -1
  354. package/dist/types/modes/components/segment-track.d.ts +1 -1
  355. package/dist/types/modes/components/session-selector.d.ts +1 -1
  356. package/dist/types/modes/components/settings-defs.d.ts +1 -1
  357. package/dist/types/modes/components/settings-selector.d.ts +2 -2
  358. package/dist/types/modes/components/skill-message.d.ts +1 -1
  359. package/dist/types/modes/components/status-line/component.d.ts +2 -2
  360. package/dist/types/modes/components/status-line/context-thresholds.d.ts +1 -1
  361. package/dist/types/modes/components/status-line/index.d.ts +5 -5
  362. package/dist/types/modes/components/status-line/presets.d.ts +1 -1
  363. package/dist/types/modes/components/status-line/segments.d.ts +2 -2
  364. package/dist/types/modes/components/status-line/separators.d.ts +2 -2
  365. package/dist/types/modes/components/status-line/types.d.ts +8 -4
  366. package/dist/types/modes/components/tiny-title-download-progress.d.ts +2 -2
  367. package/dist/types/modes/components/todo-reminder.d.ts +1 -1
  368. package/dist/types/modes/components/tool-execution.d.ts +4 -14
  369. package/dist/types/modes/components/transcript-container.d.ts +26 -28
  370. package/dist/types/modes/components/tree-selector.d.ts +2 -2
  371. package/dist/types/modes/components/ttsr-notification.d.ts +1 -1
  372. package/dist/types/modes/controllers/btw-controller.d.ts +1 -1
  373. package/dist/types/modes/controllers/command-controller-shared.d.ts +2 -2
  374. package/dist/types/modes/controllers/command-controller.d.ts +7 -7
  375. package/dist/types/modes/controllers/event-controller.d.ts +3 -3
  376. package/dist/types/modes/controllers/extension-ui-controller.d.ts +5 -5
  377. package/dist/types/modes/controllers/extension-ui-controller.test.d.ts +1 -0
  378. package/dist/types/modes/controllers/input-controller.d.ts +2 -2
  379. package/dist/types/modes/controllers/mcp-command-controller.d.ts +1 -1
  380. package/dist/types/modes/controllers/omfg-controller.d.ts +1 -1
  381. package/dist/types/modes/controllers/omfg-rule.d.ts +1 -1
  382. package/dist/types/modes/controllers/selector-controller.d.ts +2 -2
  383. package/dist/types/modes/controllers/session-focus-controller.d.ts +4 -4
  384. package/dist/types/modes/controllers/ssh-command-controller.d.ts +1 -1
  385. package/dist/types/modes/controllers/streaming-reveal.d.ts +11 -3
  386. package/dist/types/modes/controllers/tan-command-controller.d.ts +1 -1
  387. package/dist/types/modes/controllers/todo-command-controller.d.ts +1 -1
  388. package/dist/types/modes/controllers/tool-args-reveal.d.ts +6 -2
  389. package/dist/types/modes/image-references.d.ts +1 -1
  390. package/dist/types/modes/index.d.ts +3 -3
  391. package/dist/types/modes/interactive-mode.d.ts +34 -34
  392. package/dist/types/modes/orchestrate.d.ts +1 -1
  393. package/dist/types/modes/print-mode.d.ts +1 -1
  394. package/dist/types/modes/prompt-action-autocomplete.d.ts +1 -1
  395. package/dist/types/modes/rpc/host-tools.d.ts +1 -1
  396. package/dist/types/modes/rpc/host-uris.d.ts +3 -3
  397. package/dist/types/modes/rpc/rpc-client.d.ts +3 -3
  398. package/dist/types/modes/rpc/rpc-mode.d.ts +6 -6
  399. package/dist/types/modes/rpc/rpc-subagents.d.ts +3 -3
  400. package/dist/types/modes/rpc/rpc-types.d.ts +7 -7
  401. package/dist/types/modes/running-subagent-badge.d.ts +1 -1
  402. package/dist/types/modes/runtime-init.d.ts +2 -2
  403. package/dist/types/modes/session-observer-registry.d.ts +2 -2
  404. package/dist/types/modes/setup-wizard/index.d.ts +6 -6
  405. package/dist/types/modes/setup-wizard/lazy.d.ts +1 -1
  406. package/dist/types/modes/setup-wizard/scenes/glyph.d.ts +1 -1
  407. package/dist/types/modes/setup-wizard/scenes/providers.d.ts +1 -1
  408. package/dist/types/modes/setup-wizard/scenes/sign-in.d.ts +1 -1
  409. package/dist/types/modes/setup-wizard/scenes/theme.d.ts +1 -1
  410. package/dist/types/modes/setup-wizard/scenes/types.d.ts +1 -1
  411. package/dist/types/modes/setup-wizard/scenes/web-search.d.ts +1 -1
  412. package/dist/types/modes/setup-wizard/startup-splash.d.ts +1 -1
  413. package/dist/types/modes/setup-wizard/wizard-overlay.d.ts +2 -2
  414. package/dist/types/modes/shared.d.ts +1 -1
  415. package/dist/types/modes/skill-command.d.ts +2 -2
  416. package/dist/types/modes/theme/shimmer.d.ts +1 -1
  417. package/dist/types/modes/theme/theme.d.ts +1 -1
  418. package/dist/types/modes/types.d.ts +31 -31
  419. package/dist/types/modes/ultrathink.d.ts +1 -1
  420. package/dist/types/modes/utils/context-usage.d.ts +5 -5
  421. package/dist/types/modes/utils/hotkeys-markdown.d.ts +1 -1
  422. package/dist/types/modes/utils/interactive-context-helpers.d.ts +2 -2
  423. package/dist/types/modes/utils/tools-markdown.d.ts +1 -1
  424. package/dist/types/modes/utils/transcript-render-helpers.d.ts +25 -8
  425. package/dist/types/modes/utils/transcript-render-helpers.test.d.ts +1 -0
  426. package/dist/types/modes/utils/ui-helpers.d.ts +2 -2
  427. package/dist/types/modes/workflow.d.ts +1 -1
  428. package/dist/types/plan-mode/plan-handoff.d.ts +1 -1
  429. package/dist/types/registry/agent-lifecycle.d.ts +2 -2
  430. package/dist/types/registry/agent-registry.d.ts +1 -1
  431. package/dist/types/sdk.d.ts +40 -36
  432. package/dist/types/secrets/index.d.ts +2 -2
  433. package/dist/types/secrets/obfuscator.d.ts +1 -1
  434. package/dist/types/session/agent-session.d.ts +57 -41
  435. package/dist/types/session/agent-storage.d.ts +1 -1
  436. package/dist/types/session/auth-broker-config.d.ts +1 -1
  437. package/dist/types/session/codex-auto-reset.d.ts +1 -1
  438. package/dist/types/session/exit-diagnostics.d.ts +1 -1
  439. package/dist/types/session/indexed-session-storage.d.ts +2 -2
  440. package/dist/types/session/messages.d.ts +22 -3
  441. package/dist/types/session/redis-session-storage.d.ts +1 -1
  442. package/dist/types/session/session-context.d.ts +1 -1
  443. package/dist/types/session/session-entries.d.ts +4 -0
  444. package/dist/types/session/session-listing.d.ts +1 -1
  445. package/dist/types/session/session-loader.d.ts +4 -4
  446. package/dist/types/session/session-manager.d.ts +9 -8
  447. package/dist/types/session/session-migrations.d.ts +1 -1
  448. package/dist/types/session/session-paths.d.ts +1 -1
  449. package/dist/types/session/session-persistence.d.ts +2 -2
  450. package/dist/types/session/session-storage.d.ts +1 -1
  451. package/dist/types/session/session-title-slot.d.ts +1 -1
  452. package/dist/types/session/settings-stream-fn.d.ts +1 -1
  453. package/dist/types/session/sql-session-storage.d.ts +1 -1
  454. package/dist/types/session/unexpected-stop-classifier.d.ts +2 -2
  455. package/dist/types/slash-commands/acp-builtins.d.ts +2 -2
  456. package/dist/types/slash-commands/available-commands.d.ts +5 -5
  457. package/dist/types/slash-commands/builtin-registry.d.ts +2 -2
  458. package/dist/types/slash-commands/helpers/active-oauth-account.d.ts +1 -1
  459. package/dist/types/slash-commands/helpers/context-report.d.ts +1 -1
  460. package/dist/types/slash-commands/helpers/format.d.ts +1 -1
  461. package/dist/types/slash-commands/helpers/logout.d.ts +1 -1
  462. package/dist/types/slash-commands/helpers/marketplace-manager.d.ts +2 -2
  463. package/dist/types/slash-commands/helpers/mcp.d.ts +1 -1
  464. package/dist/types/slash-commands/helpers/parse.d.ts +1 -1
  465. package/dist/types/slash-commands/helpers/reset-usage.d.ts +1 -1
  466. package/dist/types/slash-commands/helpers/ssh.d.ts +1 -1
  467. package/dist/types/slash-commands/helpers/todo.d.ts +1 -1
  468. package/dist/types/slash-commands/helpers/usage-report.d.ts +1 -1
  469. package/dist/types/slash-commands/types.d.ts +6 -4
  470. package/dist/types/ssh/file-transfer.d.ts +1 -1
  471. package/dist/types/ssh/ssh-executor.d.ts +1 -1
  472. package/dist/types/ssh/sshfs-mount.d.ts +1 -1
  473. package/dist/types/stt/asr-client.d.ts +3 -3
  474. package/dist/types/stt/asr-protocol.d.ts +1 -1
  475. package/dist/types/stt/asr-worker.d.ts +1 -1
  476. package/dist/types/stt/downloader.d.ts +1 -1
  477. package/dist/types/stt/index.d.ts +8 -8
  478. package/dist/types/stt/models.d.ts +1 -1
  479. package/dist/types/system-prompt.d.ts +4 -4
  480. package/dist/types/task/agents.d.ts +1 -1
  481. package/dist/types/task/discovery.d.ts +1 -1
  482. package/dist/types/task/executor.d.ts +20 -20
  483. package/dist/types/task/index.d.ts +11 -11
  484. package/dist/types/task/isolation-runner.d.ts +7 -6
  485. package/dist/types/task/persisted-revive.d.ts +5 -5
  486. package/dist/types/task/provider-concurrency.d.ts +2 -2
  487. package/dist/types/task/render.d.ts +3 -3
  488. package/dist/types/task/renderer.d.ts +1 -1
  489. package/dist/types/task/repair-args.d.ts +1 -1
  490. package/dist/types/task/subprocess-tool-registry.d.ts +1 -1
  491. package/dist/types/task/types.d.ts +2 -2
  492. package/dist/types/task/yield-assembly.d.ts +1 -1
  493. package/dist/types/tiny/title-client.d.ts +2 -2
  494. package/dist/types/tiny/title-protocol.d.ts +1 -1
  495. package/dist/types/tiny/worker.d.ts +1 -1
  496. package/dist/types/tool-discovery/mode.d.ts +2 -2
  497. package/dist/types/tools/__tests__/glob.test.d.ts +1 -0
  498. package/dist/types/tools/acp-bridge.d.ts +2 -2
  499. package/dist/types/tools/ask.d.ts +3 -3
  500. package/dist/types/tools/ast-edit.d.ts +4 -4
  501. package/dist/types/tools/ast-grep.d.ts +4 -4
  502. package/dist/types/tools/bash-command-fixup.d.ts +3 -11
  503. package/dist/types/tools/bash-interactive.d.ts +1 -1
  504. package/dist/types/tools/bash-interceptor.d.ts +1 -1
  505. package/dist/types/tools/bash-skill-urls.d.ts +3 -3
  506. package/dist/types/tools/bash.d.ts +4 -6
  507. package/dist/types/tools/browser/cmux/cmux-tab.d.ts +6 -6
  508. package/dist/types/tools/browser/cmux/rpc.d.ts +1 -1
  509. package/dist/types/tools/browser/registry.d.ts +3 -3
  510. package/dist/types/tools/browser/render.d.ts +3 -3
  511. package/dist/types/tools/browser/tab-supervisor.d.ts +14 -4
  512. package/dist/types/tools/browser/tab-worker.d.ts +1 -1
  513. package/dist/types/tools/browser.d.ts +9 -9
  514. package/dist/types/tools/checkpoint.d.ts +2 -2
  515. package/dist/types/tools/conflict-detect.d.ts +1 -1
  516. package/dist/types/tools/context.d.ts +2 -2
  517. package/dist/types/tools/debug.d.ts +4 -4
  518. package/dist/types/tools/eval-backends.d.ts +1 -1
  519. package/dist/types/tools/eval-render.d.ts +3 -5
  520. package/dist/types/tools/eval.d.ts +3 -3
  521. package/dist/types/tools/fetch.d.ts +7 -7
  522. package/dist/types/tools/gh-renderer.d.ts +3 -3
  523. package/dist/types/tools/gh.d.ts +5 -5
  524. package/dist/types/tools/github-cache.d.ts +1 -1
  525. package/dist/types/tools/glob.d.ts +7 -5
  526. package/dist/types/tools/grep.d.ts +5 -5
  527. package/dist/types/tools/image-gen.d.ts +2 -2
  528. package/dist/types/tools/index.d.ts +70 -70
  529. package/dist/types/tools/inspect-image-renderer.d.ts +2 -2
  530. package/dist/types/tools/inspect-image.d.ts +2 -2
  531. package/dist/types/tools/irc.d.ts +5 -5
  532. package/dist/types/tools/job.d.ts +3 -3
  533. package/dist/types/tools/json-tree.d.ts +1 -1
  534. package/dist/types/tools/learn.d.ts +1 -1
  535. package/dist/types/tools/list-limit.d.ts +1 -1
  536. package/dist/types/tools/manage-skill.d.ts +1 -1
  537. package/dist/types/tools/memory-edit.d.ts +1 -1
  538. package/dist/types/tools/memory-recall.d.ts +1 -1
  539. package/dist/types/tools/memory-reflect.d.ts +1 -1
  540. package/dist/types/tools/memory-render.d.ts +2 -2
  541. package/dist/types/tools/memory-retain.d.ts +1 -1
  542. package/dist/types/tools/output-meta.d.ts +3 -3
  543. package/dist/types/tools/path-utils.d.ts +2 -2
  544. package/dist/types/tools/plan-mode-guard.d.ts +1 -1
  545. package/dist/types/tools/read.d.ts +7 -7
  546. package/dist/types/tools/render-utils.d.ts +3 -3
  547. package/dist/types/tools/renderers.d.ts +2 -22
  548. package/dist/types/tools/report-tool-issue.d.ts +2 -2
  549. package/dist/types/tools/resolve.d.ts +3 -3
  550. package/dist/types/tools/review.d.ts +2 -2
  551. package/dist/types/tools/search-tool-bm25.d.ts +4 -4
  552. package/dist/types/tools/ssh.d.ts +5 -7
  553. package/dist/types/tools/todo.d.ts +4 -4
  554. package/dist/types/tools/tool-result.d.ts +2 -2
  555. package/dist/types/tools/tts.d.ts +1 -1
  556. package/dist/types/tools/write.d.ts +8 -8
  557. package/dist/types/tools/yield.d.ts +1 -1
  558. package/dist/types/tts/index.d.ts +10 -10
  559. package/dist/types/tts/models.d.ts +1 -1
  560. package/dist/types/tts/speech-enhancer.d.ts +2 -2
  561. package/dist/types/tts/streaming-player.d.ts +1 -1
  562. package/dist/types/tts/tts-client.d.ts +2 -2
  563. package/dist/types/tts/tts-protocol.d.ts +1 -1
  564. package/dist/types/tts/tts-worker.d.ts +1 -1
  565. package/dist/types/tts/vocalizer.d.ts +7 -1
  566. package/dist/types/tui/code-cell.d.ts +1 -1
  567. package/dist/types/tui/file-list.d.ts +1 -1
  568. package/dist/types/tui/index.d.ts +9 -9
  569. package/dist/types/tui/output-block.d.ts +2 -2
  570. package/dist/types/tui/status-line.d.ts +2 -2
  571. package/dist/types/tui/tree-list.d.ts +2 -2
  572. package/dist/types/tui/types.d.ts +1 -1
  573. package/dist/types/tui/utils.d.ts +2 -2
  574. package/dist/types/utils/changelog.d.ts +1 -1
  575. package/dist/types/utils/commit-message-generator.d.ts +2 -2
  576. package/dist/types/utils/git.d.ts +1 -1
  577. package/dist/types/utils/image-loading.d.ts +1 -1
  578. package/dist/types/utils/image-vision-fallback.d.ts +3 -3
  579. package/dist/types/utils/markit.d.ts +1 -1
  580. package/dist/types/utils/title-generator.d.ts +2 -2
  581. package/dist/types/web/parallel.d.ts +1 -1
  582. package/dist/types/web/scrapers/artifacthub.d.ts +1 -1
  583. package/dist/types/web/scrapers/arxiv.d.ts +1 -1
  584. package/dist/types/web/scrapers/aur.d.ts +1 -1
  585. package/dist/types/web/scrapers/biorxiv.d.ts +1 -1
  586. package/dist/types/web/scrapers/bluesky.d.ts +1 -1
  587. package/dist/types/web/scrapers/brew.d.ts +1 -1
  588. package/dist/types/web/scrapers/cheatsh.d.ts +1 -1
  589. package/dist/types/web/scrapers/chocolatey.d.ts +1 -1
  590. package/dist/types/web/scrapers/choosealicense.d.ts +1 -1
  591. package/dist/types/web/scrapers/cisa-kev.d.ts +1 -1
  592. package/dist/types/web/scrapers/clojars.d.ts +1 -1
  593. package/dist/types/web/scrapers/coingecko.d.ts +1 -1
  594. package/dist/types/web/scrapers/crates-io.d.ts +1 -1
  595. package/dist/types/web/scrapers/crossref.d.ts +1 -1
  596. package/dist/types/web/scrapers/devto.d.ts +1 -1
  597. package/dist/types/web/scrapers/discogs.d.ts +1 -1
  598. package/dist/types/web/scrapers/discourse.d.ts +1 -1
  599. package/dist/types/web/scrapers/dockerhub.d.ts +1 -1
  600. package/dist/types/web/scrapers/docs-rs.d.ts +8 -1
  601. package/dist/types/web/scrapers/fdroid.d.ts +1 -1
  602. package/dist/types/web/scrapers/firefox-addons.d.ts +1 -1
  603. package/dist/types/web/scrapers/flathub.d.ts +1 -1
  604. package/dist/types/web/scrapers/github-gist.d.ts +1 -1
  605. package/dist/types/web/scrapers/github.d.ts +1 -1
  606. package/dist/types/web/scrapers/gitlab.d.ts +1 -1
  607. package/dist/types/web/scrapers/go-pkg.d.ts +1 -1
  608. package/dist/types/web/scrapers/hackage.d.ts +1 -1
  609. package/dist/types/web/scrapers/hackernews.d.ts +1 -1
  610. package/dist/types/web/scrapers/hex.d.ts +1 -1
  611. package/dist/types/web/scrapers/huggingface.d.ts +1 -1
  612. package/dist/types/web/scrapers/iacr.d.ts +1 -1
  613. package/dist/types/web/scrapers/index.d.ts +77 -77
  614. package/dist/types/web/scrapers/jetbrains-marketplace.d.ts +1 -1
  615. package/dist/types/web/scrapers/lemmy.d.ts +1 -1
  616. package/dist/types/web/scrapers/lobsters.d.ts +1 -1
  617. package/dist/types/web/scrapers/mastodon.d.ts +1 -1
  618. package/dist/types/web/scrapers/maven.d.ts +1 -1
  619. package/dist/types/web/scrapers/mdn.d.ts +1 -1
  620. package/dist/types/web/scrapers/metacpan.d.ts +1 -1
  621. package/dist/types/web/scrapers/musicbrainz.d.ts +1 -1
  622. package/dist/types/web/scrapers/npm.d.ts +1 -1
  623. package/dist/types/web/scrapers/nuget.d.ts +1 -1
  624. package/dist/types/web/scrapers/nvd.d.ts +1 -1
  625. package/dist/types/web/scrapers/ollama.d.ts +1 -1
  626. package/dist/types/web/scrapers/open-vsx.d.ts +1 -1
  627. package/dist/types/web/scrapers/opencorporates.d.ts +1 -1
  628. package/dist/types/web/scrapers/openlibrary.d.ts +1 -1
  629. package/dist/types/web/scrapers/orcid.d.ts +1 -1
  630. package/dist/types/web/scrapers/osv.d.ts +1 -1
  631. package/dist/types/web/scrapers/packagist.d.ts +1 -1
  632. package/dist/types/web/scrapers/pub-dev.d.ts +1 -1
  633. package/dist/types/web/scrapers/pubmed.d.ts +1 -1
  634. package/dist/types/web/scrapers/pypi.d.ts +1 -1
  635. package/dist/types/web/scrapers/rawg.d.ts +1 -1
  636. package/dist/types/web/scrapers/readthedocs.d.ts +1 -1
  637. package/dist/types/web/scrapers/reddit.d.ts +1 -1
  638. package/dist/types/web/scrapers/repology.d.ts +1 -1
  639. package/dist/types/web/scrapers/rfc.d.ts +1 -1
  640. package/dist/types/web/scrapers/rubygems.d.ts +1 -1
  641. package/dist/types/web/scrapers/searchcode.d.ts +1 -1
  642. package/dist/types/web/scrapers/sec-edgar.d.ts +1 -1
  643. package/dist/types/web/scrapers/semantic-scholar.d.ts +1 -1
  644. package/dist/types/web/scrapers/snapcraft.d.ts +1 -1
  645. package/dist/types/web/scrapers/sourcegraph.d.ts +1 -1
  646. package/dist/types/web/scrapers/spdx.d.ts +1 -1
  647. package/dist/types/web/scrapers/spotify.d.ts +1 -1
  648. package/dist/types/web/scrapers/stackoverflow.d.ts +1 -1
  649. package/dist/types/web/scrapers/terraform.d.ts +1 -1
  650. package/dist/types/web/scrapers/tldr.d.ts +1 -1
  651. package/dist/types/web/scrapers/twitter.d.ts +1 -1
  652. package/dist/types/web/scrapers/types.d.ts +1 -1
  653. package/dist/types/web/scrapers/vimeo.d.ts +1 -1
  654. package/dist/types/web/scrapers/vscode-marketplace.d.ts +1 -1
  655. package/dist/types/web/scrapers/w3c.d.ts +1 -1
  656. package/dist/types/web/scrapers/wikidata.d.ts +1 -1
  657. package/dist/types/web/scrapers/wikipedia.d.ts +1 -1
  658. package/dist/types/web/scrapers/youtube.d.ts +1 -1
  659. package/dist/types/web/search/index.d.ts +7 -7
  660. package/dist/types/web/search/provider.d.ts +5 -5
  661. package/dist/types/web/search/providers/anthropic.d.ts +3 -3
  662. package/dist/types/web/search/providers/base.d.ts +1 -1
  663. package/dist/types/web/search/providers/brave.d.ts +3 -3
  664. package/dist/types/web/search/providers/codex.d.ts +3 -3
  665. package/dist/types/web/search/providers/duckduckgo.d.ts +3 -3
  666. package/dist/types/web/search/providers/exa.d.ts +3 -3
  667. package/dist/types/web/search/providers/firecrawl.d.ts +3 -3
  668. package/dist/types/web/search/providers/gemini.d.ts +3 -3
  669. package/dist/types/web/search/providers/jina.d.ts +3 -3
  670. package/dist/types/web/search/providers/kagi.d.ts +3 -3
  671. package/dist/types/web/search/providers/kimi.d.ts +3 -3
  672. package/dist/types/web/search/providers/parallel.d.ts +3 -3
  673. package/dist/types/web/search/providers/perplexity.d.ts +3 -3
  674. package/dist/types/web/search/providers/searxng.d.ts +3 -3
  675. package/dist/types/web/search/providers/synthetic.d.ts +3 -3
  676. package/dist/types/web/search/providers/tavily.d.ts +3 -3
  677. package/dist/types/web/search/providers/tinyfish.d.ts +3 -3
  678. package/dist/types/web/search/providers/utils.d.ts +2 -2
  679. package/dist/types/web/search/providers/xai.d.ts +3 -3
  680. package/dist/types/web/search/providers/zai.d.ts +3 -3
  681. package/dist/types/web/search/render.d.ts +3 -3
  682. package/package.json +12 -12
  683. package/src/advisor/__tests__/advisor.test.ts +59 -0
  684. package/src/auto-thinking/classifier.ts +6 -5
  685. package/src/collab/relay-client.ts +73 -7
  686. package/src/config/model-registry.ts +43 -2
  687. package/src/config/model-resolver.ts +1 -1
  688. package/src/config/settings-schema.ts +5 -12
  689. package/src/config/settings.ts +25 -5
  690. package/src/edit/file-snapshot-store.ts +5 -2
  691. package/src/edit/hashline/filesystem.ts +19 -1
  692. package/src/edit/modes/patch.ts +9 -1
  693. package/src/edit/modes/replace.ts +1 -1
  694. package/src/edit/renderer.ts +42 -35
  695. package/src/eval/__tests__/agent-bridge.test.ts +19 -0
  696. package/src/eval/__tests__/budget-bridge.test.ts +12 -1
  697. package/src/eval/agent-bridge.ts +27 -19
  698. package/src/eval/js/context-manager.ts +3 -0
  699. package/src/export/ttsr.ts +10 -0
  700. package/src/extensibility/custom-tools/types.ts +2 -0
  701. package/src/extensibility/extensions/loader.ts +2 -2
  702. package/src/extensibility/extensions/types.ts +16 -4
  703. package/src/extensibility/hooks/loader.ts +3 -3
  704. package/src/extensibility/hooks/types.ts +4 -4
  705. package/src/extensibility/legacy-pi-ai-shim.ts +17 -4
  706. package/src/extensibility/legacy-pi-coding-agent-shim.ts +554 -2
  707. package/src/extensibility/plugins/legacy-pi-compat.ts +190 -58
  708. package/src/extensibility/shared-events.ts +9 -1
  709. package/src/internal-urls/docs-index.generated.txt +1 -1
  710. package/src/internal-urls/memory-protocol.ts +105 -3
  711. package/src/lsp/client.ts +70 -0
  712. package/src/lsp/index.ts +65 -12
  713. package/src/main.ts +5 -3
  714. package/src/markit/converters/pdf/extract.ts +26 -2
  715. package/src/mnemopi/state.ts +76 -0
  716. package/src/modes/acp/acp-agent.ts +5 -1
  717. package/src/modes/components/agent-hub.ts +27 -9
  718. package/src/modes/components/assistant-message.ts +134 -82
  719. package/src/modes/components/bash-execution.ts +9 -0
  720. package/src/modes/components/chat-transcript-builder.ts +15 -7
  721. package/src/modes/components/copy-selector.ts +16 -4
  722. package/src/modes/components/eval-execution.ts +9 -0
  723. package/src/modes/components/model-selector.ts +17 -17
  724. package/src/modes/components/session-selector.ts +12 -4
  725. package/src/modes/components/status-line/component.ts +4 -0
  726. package/src/modes/components/status-line/segments.ts +6 -5
  727. package/src/modes/components/status-line/types.ts +4 -0
  728. package/src/modes/components/tool-execution.ts +12 -53
  729. package/src/modes/components/transcript-container.ts +82 -432
  730. package/src/modes/components/tree-selector.ts +9 -3
  731. package/src/modes/controllers/command-controller.ts +10 -3
  732. package/src/modes/controllers/event-controller.ts +78 -17
  733. package/src/modes/controllers/extension-ui-controller.test.ts +58 -0
  734. package/src/modes/controllers/extension-ui-controller.ts +12 -7
  735. package/src/modes/controllers/input-controller.ts +12 -10
  736. package/src/modes/controllers/selector-controller.ts +18 -9
  737. package/src/modes/controllers/streaming-reveal.ts +12 -5
  738. package/src/modes/controllers/tool-args-reveal.ts +13 -6
  739. package/src/modes/interactive-mode.ts +66 -36
  740. package/src/modes/prompt-action-autocomplete.ts +18 -0
  741. package/src/modes/theme/shimmer.ts +37 -1
  742. package/src/modes/utils/transcript-render-helpers.test.ts +38 -0
  743. package/src/modes/utils/transcript-render-helpers.ts +54 -13
  744. package/src/modes/utils/ui-helpers.ts +17 -8
  745. package/src/prompts/system/workflow-notice.md +1 -1
  746. package/src/prompts/tools/bash.md +9 -7
  747. package/src/prompts/tools/grep.md +1 -1
  748. package/src/prompts/tools/memory-edit.md +2 -0
  749. package/src/prompts/tools/recall.md +2 -0
  750. package/src/sdk.ts +113 -12
  751. package/src/session/agent-session.ts +350 -61
  752. package/src/session/messages.ts +102 -2
  753. package/src/session/session-context.ts +67 -10
  754. package/src/session/session-entries.ts +4 -0
  755. package/src/session/session-history-format.ts +12 -0
  756. package/src/session/session-manager.ts +129 -10
  757. package/src/session/settings-stream-fn.ts +1 -0
  758. package/src/session/unexpected-stop-classifier.ts +6 -3
  759. package/src/slash-commands/builtin-registry.ts +7 -4
  760. package/src/slash-commands/helpers/usage-report.ts +3 -0
  761. package/src/slash-commands/types.ts +2 -0
  762. package/src/task/executor.ts +23 -3
  763. package/src/task/isolation-runner.ts +38 -9
  764. package/src/tools/__tests__/glob.test.ts +37 -0
  765. package/src/tools/acp-bridge.ts +11 -1
  766. package/src/tools/bash-command-fixup.ts +3 -36
  767. package/src/tools/bash.ts +4 -17
  768. package/src/tools/browser/render.ts +6 -4
  769. package/src/tools/browser/tab-supervisor.ts +47 -3
  770. package/src/tools/eval-render.ts +0 -20
  771. package/src/tools/glob.ts +11 -1
  772. package/src/tools/index.ts +1 -1
  773. package/src/tools/inspect-image-renderer.ts +5 -4
  774. package/src/tools/read.ts +76 -28
  775. package/src/tools/render-utils.ts +4 -1
  776. package/src/tools/renderers.ts +0 -20
  777. package/src/tools/ssh.ts +0 -16
  778. package/src/tools/write.ts +22 -13
  779. package/src/tts/speech-enhancer.ts +7 -5
  780. package/src/tts/vocalizer.ts +9 -0
  781. package/src/utils/commit-message-generator.ts +7 -5
  782. package/src/utils/shell-snapshot.ts +10 -0
  783. package/src/utils/title-generator.ts +12 -7
  784. package/src/web/scrapers/docs-rs.ts +12 -1
  785. package/src/web/search/providers/xai.ts +43 -47
@@ -215,7 +215,12 @@ function renderIrcPeerRoster(selfId: string): string {
215
215
  return lines.join("\n");
216
216
  }
217
217
 
218
- function withAbortTimeout<T>(promise: Promise<T>, timeoutMs: number, signal?: AbortSignal): Promise<T> {
218
+ function withAbortTimeout<T>(
219
+ promise: Promise<T>,
220
+ timeoutMs: number,
221
+ signal?: AbortSignal,
222
+ timeoutController?: AbortController,
223
+ ): Promise<T> {
219
224
  if (signal?.aborted) {
220
225
  return Promise.reject(new ToolAbortError());
221
226
  }
@@ -225,6 +230,7 @@ function withAbortTimeout<T>(promise: Promise<T>, timeoutMs: number, signal?: Ab
225
230
  const timeoutId = setTimeout(() => {
226
231
  if (settled) return;
227
232
  settled = true;
233
+ timeoutController?.abort(new DOMException(`MCP tool call timed out after ${timeoutMs}ms`, "TimeoutError"));
228
234
  reject(new Error(`MCP tool call timed out after ${timeoutMs}ms`));
229
235
  }, timeoutMs);
230
236
 
@@ -232,6 +238,7 @@ function withAbortTimeout<T>(promise: Promise<T>, timeoutMs: number, signal?: Ab
232
238
  if (settled) return;
233
239
  settled = true;
234
240
  clearTimeout(timeoutId);
241
+ timeoutController?.abort();
235
242
  reject(new ToolAbortError());
236
243
  };
237
244
 
@@ -708,13 +715,21 @@ export function createMCPProxyTools(mcpManager: MCPManager): CustomTool[] {
708
715
  const serverName = mcpTool.mcpServerName ?? "";
709
716
  const mcpToolName = mcpTool.mcpToolName ?? "";
710
717
  try {
718
+ const timeoutController = new AbortController();
719
+ const timeoutSignal = timeoutController.signal;
720
+ const combinedSignal = signal ? AbortSignal.any([signal, timeoutSignal]) : timeoutSignal;
711
721
  const result = await withAbortTimeout(
712
722
  (async () => {
713
- const connection = await mcpManager.waitForConnection(serverName);
714
- return callTool(connection, mcpToolName, params as Record<string, unknown>, { signal });
723
+ const connection = await untilAborted(combinedSignal, () =>
724
+ mcpManager.waitForConnection(serverName),
725
+ );
726
+ return callTool(connection, mcpToolName, params as Record<string, unknown>, {
727
+ signal: combinedSignal,
728
+ });
715
729
  })(),
716
730
  MCP_CALL_TIMEOUT_MS,
717
731
  signal,
732
+ timeoutController,
718
733
  );
719
734
  return {
720
735
  content: (result.content ?? []).map(item =>
@@ -2161,6 +2176,11 @@ export async function runSubprocess(options: ExecutorOptions): Promise<SingleRes
2161
2176
  modelRegistry,
2162
2177
  settings: subagentSettings,
2163
2178
  model,
2179
+ modelPattern: model || modelOverride === undefined ? undefined : modelPatterns,
2180
+ modelPatternAuthFallback:
2181
+ model || modelOverride === undefined ? undefined : options.parentActiveModelPattern,
2182
+ modelPatternFallbackRole:
2183
+ model || modelOverride === undefined ? undefined : `${SUBAGENT_RETRY_FALLBACK_ROLE_PREFIX}${id}`,
2164
2184
  thinkingLevel: effectiveThinkingLevel,
2165
2185
  toolNames,
2166
2186
  outputSchema,
@@ -37,6 +37,7 @@ import {
37
37
  getRepoRoot,
38
38
  type IsolationHandle,
39
39
  mergeTaskBranches,
40
+ type NestedRepoPatch,
40
41
  type WorktreeBaseline,
41
42
  } from "./worktree";
42
43
 
@@ -100,7 +101,7 @@ export interface IsolatedRunOptions {
100
101
  agentId: string;
101
102
  /** Merge mode driving how changes are captured ("branch" commits, "patch" diffs). */
102
103
  mergeMode: "patch" | "branch";
103
- /** Output dir for `${agentId}.patch` artifacts (patch mode). */
104
+ /** Output dir for `${agentId}.patch` artifacts (patch mode and branch-mode commit failures). */
104
105
  artifactsDir: string;
105
106
  /** Human description carried onto the branch commit (branch mode). */
106
107
  description?: string;
@@ -114,12 +115,25 @@ export interface IsolatedRunOptions {
114
115
  buildFailureResult: (err: unknown) => SingleResult;
115
116
  }
116
117
 
118
+ async function writeIsolationPatch(
119
+ isolationDir: string,
120
+ baseline: WorktreeBaseline,
121
+ artifactsDir: string,
122
+ agentId: string,
123
+ ): Promise<{ patchPath: string; nestedPatches: NestedRepoPatch[] }> {
124
+ const delta = await captureDeltaPatch(isolationDir, baseline);
125
+ const patchPath = path.join(artifactsDir, `${agentId}.patch`);
126
+ await Bun.write(patchPath, delta.rootPatch);
127
+ return { patchPath, nestedPatches: delta.nestedPatches };
128
+ }
129
+
117
130
  /**
118
131
  * Run a subagent inside an isolation worktree and capture its changes.
119
132
  *
120
133
  * Branch mode: on success, commits the diff onto `omp/task/${agentId}` and
121
134
  * returns `branchName` + `nestedPatches`. On commit failure the branch is
122
- * deleted and `result.error` carries the merge-failure message.
135
+ * deleted, the still-live isolation diff is written to `${artifactsDir}/${agentId}.patch`,
136
+ * and `result.error` carries the merge-failure message.
123
137
  *
124
138
  * Patch mode: on success, writes `${artifactsDir}/${agentId}.patch` and
125
139
  * returns `patchPath` + `nestedPatches`.
@@ -162,18 +176,32 @@ export async function runIsolatedSubprocess(opts: IsolatedRunOptions): Promise<S
162
176
  const branchName = `omp/task/${opts.agentId}`;
163
177
  await git.branch.tryDelete(opts.context.repoRoot, branchName);
164
178
  const msg = mergeErr instanceof Error ? mergeErr.message : String(mergeErr);
165
- return { ...result, error: `Merge failed: ${msg}` };
179
+ try {
180
+ const patchResult = await writeIsolationPatch(
181
+ isolationDir,
182
+ taskBaseline,
183
+ opts.artifactsDir,
184
+ opts.agentId,
185
+ );
186
+ return {
187
+ ...result,
188
+ patchPath: patchResult.patchPath,
189
+ nestedPatches: patchResult.nestedPatches,
190
+ error: `Merge failed: ${msg}`,
191
+ };
192
+ } catch (patchErr) {
193
+ const patchMsg = patchErr instanceof Error ? patchErr.message : String(patchErr);
194
+ return { ...result, error: `Merge failed: ${msg}; patch capture failed: ${patchMsg}` };
195
+ }
166
196
  }
167
197
  }
168
198
  if (result.exitCode === 0) {
169
199
  try {
170
- const delta = await captureDeltaPatch(isolationDir, taskBaseline);
171
- const patchPath = path.join(opts.artifactsDir, `${opts.agentId}.patch`);
172
- await Bun.write(patchPath, delta.rootPatch);
200
+ const patchResult = await writeIsolationPatch(isolationDir, taskBaseline, opts.artifactsDir, opts.agentId);
173
201
  return {
174
202
  ...result,
175
- patchPath,
176
- nestedPatches: delta.nestedPatches,
203
+ patchPath: patchResult.patchPath,
204
+ nestedPatches: patchResult.nestedPatches,
177
205
  };
178
206
  } catch (patchErr) {
179
207
  const msg = patchErr instanceof Error ? patchErr.message : String(patchErr);
@@ -224,8 +252,9 @@ export async function mergeIsolatedChanges(opts: IsolationMergeOptions): Promise
224
252
  try {
225
253
  if (mergeMode === "branch") {
226
254
  if (!result.branchName && result.exitCode === 0 && !result.aborted && result.error) {
255
+ const patchList = result.patchPath ? `\nPatch artifact:\n- ${result.patchPath}` : "";
227
256
  return {
228
- summary: `\n\n<system-notification>Branch merge failed before a task branch could be created: ${result.error}\nTask outputs are preserved but changes were not applied.</system-notification>`,
257
+ summary: `\n\n<system-notification>Branch merge failed before a task branch could be created: ${result.error}\nTask outputs are preserved but changes were not applied.${patchList}</system-notification>`,
229
258
  changesApplied: false,
230
259
  hadAnyChanges: false,
231
260
  mergedBranchForNestedPatches: false,
@@ -0,0 +1,37 @@
1
+ import { describe, expect, test } from "bun:test";
2
+ import { Settings } from "../../config/settings";
3
+ import type { ToolSession } from "..";
4
+ import { GlobTool } from "../glob";
5
+ import { ToolError } from "../tool-errors";
6
+
7
+ const ROOT_SEARCH_ERROR = "Searching from root directory '/' is not allowed";
8
+
9
+ async function expectRootSearchRejected(searchPath: string): Promise<void> {
10
+ const session: ToolSession = {
11
+ cwd: process.cwd(),
12
+ hasUI: false,
13
+ settings: Settings.isolated({}),
14
+ getSessionFile: () => null,
15
+ getSessionSpawns: () => null,
16
+ };
17
+ const tool = new GlobTool(session);
18
+ let thrown: unknown;
19
+ try {
20
+ await tool.execute("glob-root-regression", { path: searchPath });
21
+ } catch (error) {
22
+ thrown = error;
23
+ }
24
+
25
+ if (!(thrown instanceof Error)) {
26
+ throw new Error(`Expected glob path ${JSON.stringify(searchPath)} to reject`);
27
+ }
28
+
29
+ expect(thrown).toBeInstanceOf(ToolError);
30
+ expect(thrown.message).toBe(ROOT_SEARCH_ERROR);
31
+ }
32
+
33
+ describe("GlobTool.execute", () => {
34
+ test.each(["/", "//"])("rejects bare root search path %s", async searchPath => {
35
+ await expectRootSearchRejected(searchPath);
36
+ });
37
+ });
@@ -7,6 +7,8 @@
7
7
  * URLs) are always written directly to disk — those are OMP-owned and should
8
8
  * never be pushed into the editor.
9
9
  */
10
+
11
+ import { FileChangeType, notifyWorkspaceWatchedFiles } from "../lsp/client";
10
12
  import type { ToolSession } from ".";
11
13
  import { invalidateFsScanAfterWrite } from "./fs-cache-invalidation";
12
14
  import { isInternalUrlPath } from "./path-utils";
@@ -53,18 +55,26 @@ export async function routeWriteThroughBridge(
53
55
  requestedPath: string,
54
56
  absolutePath: string,
55
57
  content: string,
58
+ signal?: AbortSignal,
56
59
  ): Promise<boolean> {
57
60
  if (!shouldRouteWriteThroughBridge(session, requestedPath, absolutePath)) return false;
58
61
 
59
62
  const bridge = session.getClientBridge?.();
60
63
  if (!bridge?.capabilities.writeTextFile || !bridge.writeTextFile) return false;
61
64
 
65
+ const changeType = (await Bun.file(absolutePath).exists()) ? FileChangeType.Changed : FileChangeType.Created;
66
+ // The ACP protocol has no cancellation for fs writes; the most we can do is
67
+ // refuse to start one after the tool was aborted. Racing the promise would
68
+ // report failure while the editor still applies the write.
69
+ signal?.throwIfAborted();
62
70
  try {
63
71
  await bridge.writeTextFile({ path: absolutePath, content });
64
72
  } catch (error) {
65
73
  throw new ToolError(error instanceof Error ? error.message : String(error));
66
74
  }
67
-
75
+ if (session.enableLsp ?? true) {
76
+ await notifyWorkspaceWatchedFiles(session.cwd, [{ filePath: absolutePath, type: changeType }], signal);
77
+ }
68
78
  invalidateFsScanAfterWrite(absolutePath);
69
79
  session.bumpFileMutationVersion?.(absolutePath);
70
80
  return true;
@@ -1,37 +1,4 @@
1
- /**
2
- * Conservative transforms applied to a bash command before execution.
3
- *
4
- * Two fixups are applied, each anchored to the end of a top-level segment
5
- * (segments split on `;`, `&&`, `||`, and background `&`):
6
- *
7
- * 1. Trailing `| head [args]` / `| tail [args]` (and the `|&` variant) — these
8
- * pipes exist purely to limit output length. The harness already truncates
9
- * bash output and exposes the full result via an artifact, so they only
10
- * hide content the agent wanted.
11
- *
12
- * 2. A redundant trailing `2>&1` left on a segment that has no remaining pipe
13
- * or other redirect. The harness already merges stderr into stdout, so the
14
- * duplication is purely cosmetic — and often a leftover after fixup (1)
15
- * drops a downstream pipe.
16
- *
17
- * The heavy lifting (tokenization, quoting, heredoc handling, command
18
- * substitution, nested compound commands) lives in Rust under
19
- * `pi_shell::fixup`, driven by the real `brush-parser` AST. This module is a
20
- * thin sync wrapper plus user-facing notice formatting.
21
- */
22
- import { applyBashFixups as nativeApplyBashFixups } from "@oh-my-pi/pi-natives";
1
+ /** Compatibility shim for extensions importing the historical bash fixup helper. */
23
2
 
24
- export interface BashFixupResult {
25
- /** Possibly-rewritten command. */
26
- command: string;
27
- /** Substrings that were stripped, in the order they were removed. */
28
- stripped: string[];
29
- }
30
-
31
- /**
32
- * Apply both fixups to a bash command. On any parse failure, multi-line input,
33
- * or no-op transform, returns the input verbatim with `stripped: []`.
34
- */
35
- export function applyBashFixups(command: string): BashFixupResult {
36
- return nativeApplyBashFixups(command);
37
- }
3
+ export type { BashFixupResult } from "@oh-my-pi/pi-natives";
4
+ export { applyBashFixups } from "@oh-my-pi/pi-natives";
package/src/tools/bash.ts CHANGED
@@ -23,7 +23,6 @@ import { CachedOutputBlock, markFramedBlockComponent, outputBlockContentWidth }
23
23
  import { getSixelLineMask } from "../utils/sixel";
24
24
  import type { ToolSession } from ".";
25
25
  import { truncateForPrompt } from "./approval";
26
- import { applyBashFixups } from "./bash-command-fixup";
27
26
  import { type BashInteractiveResult, runInteractiveBashPty } from "./bash-interactive";
28
27
  import { checkBashInterception } from "./bash-interceptor";
29
28
  import { canUseInteractiveBashPty } from "./bash-pty-selection";
@@ -132,10 +131,12 @@ async function saveBashOriginalArtifact(session: ToolSession, originalText: stri
132
131
  }
133
132
  }
134
133
 
134
+ const BASH_TIMEOUT_DESCRIPTION = `timeout in seconds; clamped to ${TOOL_TIMEOUTS.bash.min}-${TOOL_TIMEOUTS.bash.max}`;
135
+
135
136
  const bashSchemaBase = type({
136
137
  command: type("string").describe("command to execute"),
137
138
  "env?": type({ "[string]": "string" }).describe("extra env vars"),
138
- "timeout?": type("number").describe("timeout in seconds"),
139
+ "timeout?": type("number").describe(BASH_TIMEOUT_DESCRIPTION),
139
140
  "cwd?": type("string").describe("working directory"),
140
141
  "pty?": type("boolean").describe("run in pty mode"),
141
142
  });
@@ -143,7 +144,7 @@ const bashSchemaBase = type({
143
144
  const bashSchemaWithAsync = type({
144
145
  command: "string",
145
146
  "env?": { "[string]": "string" },
146
- "timeout?": "number",
147
+ "timeout?": type("number").describe(BASH_TIMEOUT_DESCRIPTION),
147
148
  "cwd?": "string",
148
149
  "pty?": "boolean",
149
150
  "async?": type("boolean").describe("run in background"),
@@ -684,16 +685,6 @@ export class BashTool implements AgentTool<typeof bashSchemaBase | typeof bashSc
684
685
  let command = rawCommand;
685
686
  const env = normalizeBashEnv(rawEnv);
686
687
 
687
- // Apply conservative bash fixups (strip trailing `| head|tail` and redundant
688
- // `2>&1`). The helper is single-line only and refuses anything that could
689
- // change semantics.
690
- if (this.session.settings.get("bash.stripTrailingHeadTail")) {
691
- const fixup = applyBashFixups(command);
692
- if (fixup.stripped.length > 0) {
693
- command = fixup.command;
694
- }
695
- }
696
-
697
688
  // Extract leading `cd <path> && ...` into cwd when the model ignores the cwd parameter.
698
689
  // Constrained to a single line so a `&&` that sits on a later line of a multiline
699
690
  // script can't pull the entire script into the "cwd" capture.
@@ -1409,10 +1400,6 @@ export function createShellRenderer<TArgs>(config: ShellRendererConfig<TArgs>) {
1409
1400
  },
1410
1401
  mergeCallAndResult: true,
1411
1402
  inline: true,
1412
- // Collapsed pending preview caps the command to a viewport-sized tail
1413
- // window that shifts while args stream. Expanded output is top-anchored
1414
- // enough for the transcript to commit its settled prefix.
1415
- provisionalPendingPreview: "collapsed",
1416
1403
  };
1417
1404
  }
1418
1405
 
@@ -34,8 +34,10 @@ interface BrowserRenderContext {
34
34
  }
35
35
 
36
36
  function describeBrowser(args: BrowserRenderArgs, details: BrowserToolDetails | undefined): string | undefined {
37
- if (args.app?.cdp_url) return `connected ${args.app.cdp_url}`;
38
- if (args.app?.path) return `spawned ${shortenPath(args.app.path)}`;
37
+ const cdpUrl = typeof args.app?.cdp_url === "string" ? args.app.cdp_url : "";
38
+ if (cdpUrl) return `connected ${cdpUrl}`;
39
+ const appPath = typeof args.app?.path === "string" ? args.app.path : "";
40
+ if (appPath) return `spawned ${shortenPath(appPath)}`;
39
41
  if (args.app?.cmux !== false && (args.app?.cmux === true || args.app?.surface)) {
40
42
  return args.app.surface ? `cmux ${args.app.surface}` : "cmux";
41
43
  }
@@ -92,7 +94,7 @@ function renderRunCell(
92
94
  const status = cellStatus(options.isPartial, isError);
93
95
 
94
96
  const titleParts: string[] = [tabLabel(args, details)];
95
- const url = details?.url ?? args.url;
97
+ const url = typeof details?.url === "string" ? details.url : typeof args.url === "string" ? args.url : "";
96
98
  if (url) titleParts.push(shortenPath(url));
97
99
  const browserDesc = describeBrowser(args, details);
98
100
  if (browserDesc) titleParts.push(browserDesc);
@@ -165,7 +167,7 @@ function renderOpenOrCloseLine(
165
167
  const meta: string[] = [];
166
168
  const browserDesc = describeBrowser(args, details);
167
169
  if (browserDesc) meta.push(browserDesc);
168
- const url = details?.url ?? args.url;
170
+ const url = typeof details?.url === "string" ? details.url : typeof args.url === "string" ? args.url : "";
169
171
  if (url) meta.push(shortenPath(url));
170
172
 
171
173
  const header =
@@ -48,6 +48,16 @@ export interface PendingRun {
48
48
  session: ToolSession;
49
49
  signal?: AbortSignal;
50
50
  toolCalls: Map<string, AbortController>;
51
+ /**
52
+ * Fires when `releaseTab` closes the tab out from under an in-flight run
53
+ * (sibling `browser close --all`, session-scoped reap, etc.). Composed
54
+ * into the cmux run's signal so `wait(...)`, cmux socket calls, and the
55
+ * facade proxies unwind promptly instead of blocking to the run's
56
+ * timeout. `pending.reject` still fires first so the awaiting caller
57
+ * sees the tab-close error immediately; `closeAc` propagates the
58
+ * cancellation into the still-running `runCmuxCode` body (issue #4499).
59
+ */
60
+ closeAc?: AbortController;
51
61
  }
52
62
 
53
63
  interface TabSessionBase<TBrowser extends BrowserHandle = BrowserHandle> {
@@ -380,23 +390,47 @@ async function runInTabWithSnapshot(
380
390
  if (tab.pending.size > 0) throw new ToolError(`Tab ${JSON.stringify(name)} is busy`);
381
391
  const id = Snowflake.next();
382
392
  const { promise, resolve, reject } = Promise.withResolvers<RunResultOk>();
393
+ // `releaseTab` calls `pending.reject(closeError)` when the tab dies
394
+ // out from under an in-flight run (sibling `browser close --all`,
395
+ // session-scoped reap, etc.). Both backends below MUST end up awaiting
396
+ // this same `promise` so:
397
+ // 1. The caller sees `Tab ... was closed` immediately instead of
398
+ // blocking to the run's timeout, and
399
+ // 2. `reject(...)` always has an attached handler — a zero-consumer
400
+ // rejection would fire `unhandledRejection` and the CLI's
401
+ // top-level handler would tear the whole session down, killing
402
+ // every other tab and subagent sharing the process (issue #4499).
403
+ // The cmux branch also composes `closeAc.signal` into the run's abort
404
+ // signal so `wait(...)`, cmux socket calls, and the facade proxies
405
+ // unwind promptly when the tab is closed — otherwise a `wait(60_000)`
406
+ // with no in-flight socket request would keep `runCmuxCode` blocked
407
+ // until timeout even after the tab is gone.
408
+ const closeAc = new AbortController();
383
409
  const pending: PendingRun = {
384
410
  resolve,
385
411
  reject,
386
412
  session: opts.session ?? ({} as ToolSession),
387
413
  signal: opts.signal,
388
414
  toolCalls: new Map(),
415
+ closeAc,
389
416
  };
390
417
  tab.pending.set(id, pending);
391
418
  if (tab.backend === "cmux") {
419
+ const runSignal = opts.signal ? AbortSignal.any([opts.signal, closeAc.signal]) : closeAc.signal;
392
420
  try {
393
- return await runCmuxCode(tab.cmuxTab, {
421
+ // `runCmuxCode.then(resolve, reject)` publishes the run's real
422
+ // outcome to `promise`, but `releaseTab` may have already
423
+ // rejected it — `Promise.withResolvers` settles on the first
424
+ // call and later resolve/reject are no-ops, so the tab-close
425
+ // error still wins the race.
426
+ runCmuxCode(tab.cmuxTab, {
394
427
  code: opts.code,
395
428
  timeoutMs: opts.timeoutMs,
396
- signal: opts.signal,
429
+ signal: runSignal,
397
430
  session: pending.session,
398
431
  snapshot,
399
- });
432
+ }).then(resolve, reject);
433
+ return await promise;
400
434
  } finally {
401
435
  tab.pending.delete(id);
402
436
  }
@@ -460,6 +494,16 @@ export async function releaseTab(name: string, opts: ReleaseTabOptions = {}): Pr
460
494
  } catch {}
461
495
  }
462
496
  for (const ctrl of pending.toolCalls.values()) ctrl.abort(closeError);
497
+ // Propagate the closure into the cmux run's abort signal so
498
+ // `wait(...)`, in-flight cmux socket calls, and the facade proxies
499
+ // unwind promptly. Firing this BEFORE `pending.reject` means
500
+ // `runCmuxCode` finishes with `ToolAbortError` and its `.then(reject)`
501
+ // is a no-op — `promise` still settles with the tab-close error via
502
+ // the `reject` call below. Without it, a run that isn't currently
503
+ // making a socket request (e.g. `await wait(60_000)`) would keep
504
+ // `runCmuxCode` blocked until timeout even after `pending.reject`
505
+ // unblocked the caller (issue #4499 review feedback).
506
+ pending.closeAc?.abort(closeError);
463
507
  pending.reject(closeError);
464
508
  }
465
509
  tab.pending.clear();
@@ -773,24 +773,4 @@ export const evalToolRenderer = {
773
773
 
774
774
  mergeCallAndResult: true,
775
775
  inline: true,
776
- // Collapsed pending preview shows tail-window code cells; the result render
777
- // interleaves each cell's output under its code, re-laying-out every row
778
- // below the first cell. Expanded output is top-anchored enough for the
779
- // transcript to commit its settled prefix.
780
- provisionalPendingPreview: "collapsed",
781
- // Partial-result chrome is NOT byte-stable: `renderAgentProgressEvents`
782
- // inserts/removes each subagent's current-tool line as it starts/stops a
783
- // tool, and ticks status icon/stats/duration on already-rendered rows,
784
- // while `options.isPartial` holds for the whole eval() cell (agent
785
- // progress ticks never carry an `async` completed/failed state, so
786
- // `event-controller.ts` keeps `isPartial: true` throughout). If this
787
- // block were commit-stable during that churn, `deriveLiveCommitState`'s
788
- // stable-prefix ratchet would promote agent rows that keep mutating (a
789
- // "slow ticker", see transcript-container.ts) into native scrollback,
790
- // and the tui resync's "duplication, never loss" contract would
791
- // repeatedly re-show the frame tail under a heavy concurrent
792
- // `agent()`/`parallel()` fan-out — the overlapping/duplicated tree rows
793
- // seen when many subagents run at once. Once the cell settles
794
- // (`isPartial === false`) the block is commit-stable again.
795
- provisionalPartialResult: true,
796
776
  };
package/src/tools/glob.ts CHANGED
@@ -90,6 +90,8 @@ export interface GlobOperations {
90
90
  export interface GlobToolOptions {
91
91
  /** Custom operations for find. Default: local filesystem + rg */
92
92
  operations?: GlobOperations;
93
+ /** Remap slash-only paths to the session cwd before root-search validation. */
94
+ rootPathAlias?: boolean;
93
95
  }
94
96
 
95
97
  interface GlobTarget {
@@ -127,12 +129,14 @@ export class GlobTool implements AgentTool<typeof findSchema, GlobToolDetails> {
127
129
  readonly strict = true;
128
130
 
129
131
  readonly #customOps?: GlobOperations;
132
+ readonly #rootPathAlias: boolean;
130
133
 
131
134
  constructor(
132
135
  private readonly session: ToolSession,
133
136
  options?: GlobToolOptions,
134
137
  ) {
135
138
  this.#customOps = options?.operations;
139
+ this.#rootPathAlias = options?.rootPathAlias === true;
136
140
  this.description = prompt.render(globDescription);
137
141
  }
138
142
 
@@ -153,9 +157,15 @@ export class GlobTool implements AgentTool<typeof findSchema, GlobToolDetails> {
153
157
  ? effectivePaths
154
158
  : await expandDelimitedPathEntries(effectivePaths, this.session.cwd, { splitter: parseFindPattern });
155
159
  const rawPatterns = rawPatternInputs.map(input => normalizePathLikeInput(input).replace(/\\/g, "/"));
160
+ const aliasResolvedPatterns = this.#rootPathAlias
161
+ ? rawPatterns.map(pattern => (/^\/+$/.test(pattern) ? "." : pattern))
162
+ : rawPatterns;
163
+ if (aliasResolvedPatterns.some(pattern => /^\/+$/.test(pattern))) {
164
+ throw new ToolError("Searching from root directory '/' is not allowed");
165
+ }
156
166
  const internalRouter = InternalUrlRouter.instance();
157
167
  const normalizedPatterns: string[] = [];
158
- for (const rawPattern of rawPatterns) {
168
+ for (const rawPattern of aliasResolvedPatterns) {
159
169
  if (!internalRouter.canHandle(rawPattern)) {
160
170
  normalizedPatterns.push(rawPattern);
161
171
  continue;
@@ -451,7 +451,7 @@ export const BUILTIN_TOOLS: Record<BuiltinToolName, ToolFactory> = {
451
451
  eval: s => new EvalTool(s),
452
452
  ssh: loadSshTool,
453
453
  github: GithubTool.createIf,
454
- glob: s => new GlobTool(s),
454
+ glob: s => new GlobTool(s, { rootPathAlias: true }),
455
455
  grep: s => new GrepTool(s),
456
456
  lsp: LspTool.createIf,
457
457
  inspect_image: s => new InspectImageTool(s),
@@ -33,10 +33,10 @@ function questionLine(question: string, uiTheme: Theme): string {
33
33
 
34
34
  export const inspectImageToolRenderer = {
35
35
  renderCall(args: InspectImageRenderArgs, _options: RenderResultOptions, uiTheme: Theme): Component {
36
- const rawPath = args.path ?? "";
36
+ const rawPath = typeof args.path === "string" ? args.path : "";
37
37
  const pathDisplay = rawPath ? shortenPath(rawPath) : "…";
38
38
  const header = renderStatusLine({ icon: "pending", title: "Inspect", description: pathDisplay }, uiTheme);
39
- const question = args.question?.trim();
39
+ const question = typeof args.question === "string" ? args.question.trim() : "";
40
40
  // Call is at most a status line plus a one-line question — too small to box.
41
41
  // The container renders a lone Text cleanly with no chrome.
42
42
  if (!question) return new Text(header, 0, 0);
@@ -51,7 +51,8 @@ export const inspectImageToolRenderer = {
51
51
  args?: InspectImageRenderArgs,
52
52
  ): Component {
53
53
  const details = result.details;
54
- const rawPath = details?.imagePath ?? args?.path ?? "";
54
+ const rawPath =
55
+ typeof details?.imagePath === "string" ? details.imagePath : typeof args?.path === "string" ? args.path : "";
55
56
  const pathDisplay = rawPath ? shortenPath(rawPath) : "image";
56
57
  const success = !result.isError;
57
58
  const header = renderStatusLine(
@@ -69,7 +70,7 @@ export const inspectImageToolRenderer = {
69
70
  uiTheme,
70
71
  );
71
72
 
72
- const question = args?.question?.trim();
73
+ const question = typeof args?.question === "string" ? args.question.trim() : "";
73
74
  const outputText = result.content.find(content => content.type === "text")?.text?.trimEnd() ?? "";
74
75
 
75
76
  if (result.isError) {