@oh-my-pi/pi-coding-agent 16.3.6 → 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 (771) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/dist/cli.js +3052 -3037
  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/hashline/execute.d.ts +4 -4
  136. package/dist/types/edit/hashline/filesystem.d.ts +3 -3
  137. package/dist/types/edit/hashline/index.d.ts +5 -5
  138. package/dist/types/edit/index.d.ts +19 -19
  139. package/dist/types/edit/modes/apply-patch.d.ts +1 -1
  140. package/dist/types/edit/modes/patch.d.ts +3 -3
  141. package/dist/types/edit/modes/replace.d.ts +3 -3
  142. package/dist/types/edit/renderer.d.ts +15 -15
  143. package/dist/types/edit/snapshot-details.d.ts +1 -1
  144. package/dist/types/edit/streaming.d.ts +2 -2
  145. package/dist/types/eval/agent-bridge.d.ts +4 -4
  146. package/dist/types/eval/backend-helpers.d.ts +3 -3
  147. package/dist/types/eval/backend.d.ts +2 -2
  148. package/dist/types/eval/bridge-timeout.d.ts +1 -1
  149. package/dist/types/eval/budget-bridge.d.ts +2 -2
  150. package/dist/types/eval/completion-bridge.d.ts +2 -2
  151. package/dist/types/eval/concurrency-bridge.d.ts +2 -2
  152. package/dist/types/eval/executor-base.d.ts +3 -3
  153. package/dist/types/eval/index.d.ts +6 -6
  154. package/dist/types/eval/jl/executor.d.ts +4 -4
  155. package/dist/types/eval/jl/index.d.ts +2 -2
  156. package/dist/types/eval/jl/kernel.d.ts +5 -5
  157. package/dist/types/eval/js/context-manager.d.ts +4 -4
  158. package/dist/types/eval/js/executor.d.ts +3 -3
  159. package/dist/types/eval/js/index.d.ts +2 -2
  160. package/dist/types/eval/js/shared/helpers.d.ts +1 -1
  161. package/dist/types/eval/js/shared/runtime.d.ts +2 -2
  162. package/dist/types/eval/js/tool-bridge.d.ts +5 -5
  163. package/dist/types/eval/js/worker-core.d.ts +1 -1
  164. package/dist/types/eval/js/worker-protocol.d.ts +2 -2
  165. package/dist/types/eval/kernel-base.d.ts +1 -1
  166. package/dist/types/eval/py/executor.d.ts +3 -3
  167. package/dist/types/eval/py/index.d.ts +2 -2
  168. package/dist/types/eval/py/kernel.d.ts +5 -5
  169. package/dist/types/eval/py/tool-bridge.d.ts +2 -2
  170. package/dist/types/eval/rb/executor.d.ts +3 -3
  171. package/dist/types/eval/rb/index.d.ts +2 -2
  172. package/dist/types/eval/rb/kernel.d.ts +6 -6
  173. package/dist/types/eval/session-id.d.ts +1 -1
  174. package/dist/types/eval/types.d.ts +1 -1
  175. package/dist/types/exa/index.d.ts +2 -2
  176. package/dist/types/exa/mcp-client.d.ts +3 -3
  177. package/dist/types/exec/bash-executor.d.ts +1 -1
  178. package/dist/types/export/html/index.d.ts +2 -2
  179. package/dist/types/export/share.d.ts +3 -3
  180. package/dist/types/export/ttsr.d.ts +2 -2
  181. package/dist/types/extensibility/custom-commands/bundled/ci-green/index.d.ts +2 -2
  182. package/dist/types/extensibility/custom-commands/bundled/review/index.d.ts +2 -2
  183. package/dist/types/extensibility/custom-commands/index.d.ts +2 -2
  184. package/dist/types/extensibility/custom-commands/loader.d.ts +1 -1
  185. package/dist/types/extensibility/custom-commands/types.d.ts +3 -3
  186. package/dist/types/extensibility/custom-tools/index.d.ts +3 -3
  187. package/dist/types/extensibility/custom-tools/loader.d.ts +3 -3
  188. package/dist/types/extensibility/custom-tools/types.d.ts +12 -12
  189. package/dist/types/extensibility/custom-tools/wrapper.d.ts +2 -2
  190. package/dist/types/extensibility/extensions/compact-handler.d.ts +1 -1
  191. package/dist/types/extensibility/extensions/get-commands-handler.d.ts +5 -5
  192. package/dist/types/extensibility/extensions/index.d.ts +5 -5
  193. package/dist/types/extensibility/extensions/loader.d.ts +2 -2
  194. package/dist/types/extensibility/extensions/model-api.d.ts +3 -3
  195. package/dist/types/extensibility/extensions/runner.d.ts +6 -6
  196. package/dist/types/extensibility/extensions/types.d.ts +43 -31
  197. package/dist/types/extensibility/extensions/wrapper.d.ts +2 -2
  198. package/dist/types/extensibility/hooks/index.d.ts +6 -6
  199. package/dist/types/extensibility/hooks/loader.d.ts +4 -4
  200. package/dist/types/extensibility/hooks/runner.d.ts +5 -5
  201. package/dist/types/extensibility/hooks/tool-wrapper.d.ts +1 -1
  202. package/dist/types/extensibility/hooks/types.d.ts +18 -18
  203. package/dist/types/extensibility/legacy-pi-ai-shim.d.ts +12 -4
  204. package/dist/types/extensibility/legacy-pi-coding-agent-shim.d.ts +194 -5
  205. package/dist/types/extensibility/plugins/doctor.d.ts +1 -1
  206. package/dist/types/extensibility/plugins/index.d.ts +7 -7
  207. package/dist/types/extensibility/plugins/installer.d.ts +1 -1
  208. package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +1 -1
  209. package/dist/types/extensibility/plugins/loader.d.ts +1 -1
  210. package/dist/types/extensibility/plugins/manager.d.ts +1 -1
  211. package/dist/types/extensibility/plugins/marketplace/fetcher.d.ts +1 -1
  212. package/dist/types/extensibility/plugins/marketplace/index.d.ts +6 -6
  213. package/dist/types/extensibility/plugins/marketplace/manager.d.ts +1 -1
  214. package/dist/types/extensibility/plugins/marketplace/registry.d.ts +1 -1
  215. package/dist/types/extensibility/plugins/marketplace/source-resolver.d.ts +1 -1
  216. package/dist/types/extensibility/plugins/runtime-config.d.ts +1 -1
  217. package/dist/types/extensibility/session-handler-types.d.ts +1 -1
  218. package/dist/types/extensibility/shared-events.d.ts +4 -4
  219. package/dist/types/extensibility/skills.d.ts +3 -3
  220. package/dist/types/extensibility/slash-commands.d.ts +1 -1
  221. package/dist/types/extensibility/typebox.d.ts +1 -1
  222. package/dist/types/extensibility/utils.d.ts +1 -1
  223. package/dist/types/goals/guided-setup.d.ts +1 -1
  224. package/dist/types/goals/index.d.ts +3 -3
  225. package/dist/types/goals/runtime.d.ts +1 -1
  226. package/dist/types/goals/state.d.ts +1 -1
  227. package/dist/types/goals/tools/goal-tool.d.ts +4 -4
  228. package/dist/types/hindsight/backend.d.ts +2 -2
  229. package/dist/types/hindsight/bank.d.ts +2 -2
  230. package/dist/types/hindsight/client.d.ts +1 -1
  231. package/dist/types/hindsight/config.d.ts +1 -1
  232. package/dist/types/hindsight/index.d.ts +8 -8
  233. package/dist/types/hindsight/mental-models.d.ts +3 -3
  234. package/dist/types/hindsight/state.d.ts +5 -5
  235. package/dist/types/hindsight/transcript.d.ts +2 -2
  236. package/dist/types/index.d.ts +38 -38
  237. package/dist/types/internal-urls/agent-protocol.d.ts +1 -1
  238. package/dist/types/internal-urls/artifact-protocol.d.ts +1 -1
  239. package/dist/types/internal-urls/filesystem-resource.d.ts +1 -1
  240. package/dist/types/internal-urls/history-protocol.d.ts +1 -1
  241. package/dist/types/internal-urls/index.d.ts +16 -16
  242. package/dist/types/internal-urls/issue-pr-protocol.d.ts +1 -1
  243. package/dist/types/internal-urls/local-protocol.d.ts +1 -1
  244. package/dist/types/internal-urls/mcp-protocol.d.ts +1 -1
  245. package/dist/types/internal-urls/memory-protocol.d.ts +1 -1
  246. package/dist/types/internal-urls/omp-protocol.d.ts +1 -1
  247. package/dist/types/internal-urls/parse.d.ts +1 -1
  248. package/dist/types/internal-urls/router.d.ts +1 -1
  249. package/dist/types/internal-urls/rule-protocol.d.ts +1 -1
  250. package/dist/types/internal-urls/skill-protocol.d.ts +1 -1
  251. package/dist/types/internal-urls/ssh-protocol.d.ts +1 -1
  252. package/dist/types/internal-urls/types.d.ts +2 -2
  253. package/dist/types/internal-urls/vault-protocol.d.ts +1 -1
  254. package/dist/types/irc/bus.d.ts +2 -2
  255. package/dist/types/lib/xai-http.d.ts +1 -1
  256. package/dist/types/lsp/client.d.ts +23 -1
  257. package/dist/types/lsp/clients/biome-client.d.ts +1 -1
  258. package/dist/types/lsp/clients/index.d.ts +4 -4
  259. package/dist/types/lsp/clients/lsp-linter-client.d.ts +1 -1
  260. package/dist/types/lsp/clients/swiftlint-client.d.ts +1 -1
  261. package/dist/types/lsp/config.d.ts +1 -1
  262. package/dist/types/lsp/diagnostics-ledger.d.ts +1 -1
  263. package/dist/types/lsp/edits.d.ts +1 -1
  264. package/dist/types/lsp/index.d.ts +6 -6
  265. package/dist/types/lsp/render.d.ts +2 -2
  266. package/dist/types/lsp/startup-events.d.ts +1 -1
  267. package/dist/types/lsp/utils.d.ts +2 -2
  268. package/dist/types/main.d.ts +12 -12
  269. package/dist/types/markit/converters/docx.d.ts +1 -1
  270. package/dist/types/markit/converters/epub.d.ts +1 -1
  271. package/dist/types/markit/converters/pdf/columns.d.ts +1 -1
  272. package/dist/types/markit/converters/pdf/extract.d.ts +1 -1
  273. package/dist/types/markit/converters/pdf/grid.d.ts +1 -1
  274. package/dist/types/markit/converters/pdf/headers.d.ts +1 -1
  275. package/dist/types/markit/converters/pdf/index.d.ts +1 -1
  276. package/dist/types/markit/converters/pdf/render.d.ts +1 -1
  277. package/dist/types/markit/converters/pptx.d.ts +1 -1
  278. package/dist/types/markit/converters/xlsx.d.ts +1 -1
  279. package/dist/types/markit/index.d.ts +2 -2
  280. package/dist/types/markit/registry.d.ts +1 -1
  281. package/dist/types/mcp/client.d.ts +1 -1
  282. package/dist/types/mcp/config-writer.d.ts +1 -1
  283. package/dist/types/mcp/config.d.ts +2 -2
  284. package/dist/types/mcp/index.d.ts +12 -12
  285. package/dist/types/mcp/loader.d.ts +5 -5
  286. package/dist/types/mcp/manager.d.ts +7 -7
  287. package/dist/types/mcp/oauth-credentials.d.ts +3 -3
  288. package/dist/types/mcp/oauth-flow.d.ts +1 -1
  289. package/dist/types/mcp/render.d.ts +3 -3
  290. package/dist/types/mcp/smithery-registry.d.ts +1 -1
  291. package/dist/types/mcp/tool-bridge.d.ts +5 -5
  292. package/dist/types/mcp/tool-cache.d.ts +2 -2
  293. package/dist/types/mcp/transports/http.d.ts +1 -1
  294. package/dist/types/mcp/transports/index.d.ts +3 -3
  295. package/dist/types/mcp/transports/sse.d.ts +1 -1
  296. package/dist/types/mcp/transports/stdio.d.ts +1 -1
  297. package/dist/types/mcp/types.d.ts +1 -1
  298. package/dist/types/memories/index.d.ts +4 -4
  299. package/dist/types/memory-backend/index.d.ts +7 -7
  300. package/dist/types/memory-backend/local-backend.d.ts +1 -1
  301. package/dist/types/memory-backend/off-backend.d.ts +1 -1
  302. package/dist/types/memory-backend/resolve.d.ts +2 -2
  303. package/dist/types/memory-backend/runtime.d.ts +2 -2
  304. package/dist/types/memory-backend/types.d.ts +5 -5
  305. package/dist/types/mnemopi/backend.d.ts +2 -2
  306. package/dist/types/mnemopi/config.d.ts +1 -1
  307. package/dist/types/mnemopi/embed-client.d.ts +2 -2
  308. package/dist/types/mnemopi/embed-worker.d.ts +1 -1
  309. package/dist/types/mnemopi/index.d.ts +3 -3
  310. package/dist/types/mnemopi/state.d.ts +38 -2
  311. package/dist/types/modes/acp/acp-agent.d.ts +2 -2
  312. package/dist/types/modes/acp/acp-client-bridge.d.ts +1 -1
  313. package/dist/types/modes/acp/acp-event-mapper.d.ts +1 -1
  314. package/dist/types/modes/acp/acp-mode.d.ts +1 -1
  315. package/dist/types/modes/acp/index.d.ts +2 -2
  316. package/dist/types/modes/components/advisor-config.d.ts +3 -3
  317. package/dist/types/modes/components/advisor-message.d.ts +2 -2
  318. package/dist/types/modes/components/agent-dashboard.d.ts +2 -2
  319. package/dist/types/modes/components/agent-hub.d.ts +11 -9
  320. package/dist/types/modes/components/agent-transcript-viewer.d.ts +6 -6
  321. package/dist/types/modes/components/assistant-message.d.ts +2 -2
  322. package/dist/types/modes/components/background-tan-message.d.ts +2 -2
  323. package/dist/types/modes/components/bash-execution.d.ts +1 -1
  324. package/dist/types/modes/components/bordered-loader.d.ts +1 -1
  325. package/dist/types/modes/components/chat-transcript-builder.d.ts +3 -3
  326. package/dist/types/modes/components/collab-prompt-message.d.ts +2 -2
  327. package/dist/types/modes/components/compaction-summary-message.d.ts +1 -1
  328. package/dist/types/modes/components/copy-selector.d.ts +1 -1
  329. package/dist/types/modes/components/custom-editor.d.ts +1 -1
  330. package/dist/types/modes/components/custom-message.d.ts +2 -2
  331. package/dist/types/modes/components/eval-execution.d.ts +1 -1
  332. package/dist/types/modes/components/execution-shared.d.ts +1 -1
  333. package/dist/types/modes/components/extensions/extension-dashboard.d.ts +2 -2
  334. package/dist/types/modes/components/extensions/extension-list.d.ts +1 -1
  335. package/dist/types/modes/components/extensions/index.d.ts +5 -5
  336. package/dist/types/modes/components/extensions/inspector-panel.d.ts +1 -1
  337. package/dist/types/modes/components/extensions/state-manager.d.ts +1 -1
  338. package/dist/types/modes/components/extensions/types.d.ts +1 -1
  339. package/dist/types/modes/components/footer.d.ts +1 -1
  340. package/dist/types/modes/components/history-search.d.ts +1 -1
  341. package/dist/types/modes/components/hook-message.d.ts +2 -2
  342. package/dist/types/modes/components/index.d.ts +38 -38
  343. package/dist/types/modes/components/keybinding-hints.d.ts +1 -1
  344. package/dist/types/modes/components/logout-account-selector.d.ts +1 -1
  345. package/dist/types/modes/components/mcp-add-wizard.d.ts +1 -1
  346. package/dist/types/modes/components/message-frame.d.ts +1 -1
  347. package/dist/types/modes/components/model-selector.d.ts +3 -3
  348. package/dist/types/modes/components/oauth-selector.d.ts +1 -1
  349. package/dist/types/modes/components/plan-review-overlay.d.ts +1 -1
  350. package/dist/types/modes/components/plugin-settings.d.ts +3 -3
  351. package/dist/types/modes/components/read-tool-group.d.ts +1 -1
  352. package/dist/types/modes/components/reset-usage-selector.d.ts +1 -1
  353. package/dist/types/modes/components/segment-track.d.ts +1 -1
  354. package/dist/types/modes/components/session-selector.d.ts +1 -1
  355. package/dist/types/modes/components/settings-defs.d.ts +1 -1
  356. package/dist/types/modes/components/settings-selector.d.ts +2 -2
  357. package/dist/types/modes/components/skill-message.d.ts +1 -1
  358. package/dist/types/modes/components/status-line/component.d.ts +2 -2
  359. package/dist/types/modes/components/status-line/context-thresholds.d.ts +1 -1
  360. package/dist/types/modes/components/status-line/index.d.ts +5 -5
  361. package/dist/types/modes/components/status-line/presets.d.ts +1 -1
  362. package/dist/types/modes/components/status-line/segments.d.ts +2 -2
  363. package/dist/types/modes/components/status-line/separators.d.ts +2 -2
  364. package/dist/types/modes/components/status-line/types.d.ts +8 -4
  365. package/dist/types/modes/components/tiny-title-download-progress.d.ts +2 -2
  366. package/dist/types/modes/components/todo-reminder.d.ts +1 -1
  367. package/dist/types/modes/components/tool-execution.d.ts +1 -1
  368. package/dist/types/modes/components/tree-selector.d.ts +2 -2
  369. package/dist/types/modes/components/ttsr-notification.d.ts +1 -1
  370. package/dist/types/modes/controllers/btw-controller.d.ts +1 -1
  371. package/dist/types/modes/controllers/command-controller-shared.d.ts +2 -2
  372. package/dist/types/modes/controllers/command-controller.d.ts +7 -7
  373. package/dist/types/modes/controllers/event-controller.d.ts +3 -3
  374. package/dist/types/modes/controllers/extension-ui-controller.d.ts +5 -5
  375. package/dist/types/modes/controllers/extension-ui-controller.test.d.ts +1 -0
  376. package/dist/types/modes/controllers/input-controller.d.ts +2 -2
  377. package/dist/types/modes/controllers/mcp-command-controller.d.ts +1 -1
  378. package/dist/types/modes/controllers/omfg-controller.d.ts +1 -1
  379. package/dist/types/modes/controllers/omfg-rule.d.ts +1 -1
  380. package/dist/types/modes/controllers/selector-controller.d.ts +2 -2
  381. package/dist/types/modes/controllers/session-focus-controller.d.ts +4 -4
  382. package/dist/types/modes/controllers/ssh-command-controller.d.ts +1 -1
  383. package/dist/types/modes/controllers/streaming-reveal.d.ts +11 -3
  384. package/dist/types/modes/controllers/tan-command-controller.d.ts +1 -1
  385. package/dist/types/modes/controllers/todo-command-controller.d.ts +1 -1
  386. package/dist/types/modes/controllers/tool-args-reveal.d.ts +6 -2
  387. package/dist/types/modes/image-references.d.ts +1 -1
  388. package/dist/types/modes/index.d.ts +3 -3
  389. package/dist/types/modes/interactive-mode.d.ts +34 -34
  390. package/dist/types/modes/orchestrate.d.ts +1 -1
  391. package/dist/types/modes/print-mode.d.ts +1 -1
  392. package/dist/types/modes/prompt-action-autocomplete.d.ts +1 -1
  393. package/dist/types/modes/rpc/host-tools.d.ts +1 -1
  394. package/dist/types/modes/rpc/host-uris.d.ts +3 -3
  395. package/dist/types/modes/rpc/rpc-client.d.ts +3 -3
  396. package/dist/types/modes/rpc/rpc-mode.d.ts +6 -6
  397. package/dist/types/modes/rpc/rpc-subagents.d.ts +3 -3
  398. package/dist/types/modes/rpc/rpc-types.d.ts +7 -7
  399. package/dist/types/modes/running-subagent-badge.d.ts +1 -1
  400. package/dist/types/modes/runtime-init.d.ts +2 -2
  401. package/dist/types/modes/session-observer-registry.d.ts +2 -2
  402. package/dist/types/modes/setup-wizard/index.d.ts +6 -6
  403. package/dist/types/modes/setup-wizard/lazy.d.ts +1 -1
  404. package/dist/types/modes/setup-wizard/scenes/glyph.d.ts +1 -1
  405. package/dist/types/modes/setup-wizard/scenes/providers.d.ts +1 -1
  406. package/dist/types/modes/setup-wizard/scenes/sign-in.d.ts +1 -1
  407. package/dist/types/modes/setup-wizard/scenes/theme.d.ts +1 -1
  408. package/dist/types/modes/setup-wizard/scenes/types.d.ts +1 -1
  409. package/dist/types/modes/setup-wizard/scenes/web-search.d.ts +1 -1
  410. package/dist/types/modes/setup-wizard/startup-splash.d.ts +1 -1
  411. package/dist/types/modes/setup-wizard/wizard-overlay.d.ts +2 -2
  412. package/dist/types/modes/shared.d.ts +1 -1
  413. package/dist/types/modes/skill-command.d.ts +2 -2
  414. package/dist/types/modes/theme/shimmer.d.ts +1 -1
  415. package/dist/types/modes/theme/theme.d.ts +1 -1
  416. package/dist/types/modes/types.d.ts +31 -31
  417. package/dist/types/modes/ultrathink.d.ts +1 -1
  418. package/dist/types/modes/utils/context-usage.d.ts +5 -5
  419. package/dist/types/modes/utils/hotkeys-markdown.d.ts +1 -1
  420. package/dist/types/modes/utils/interactive-context-helpers.d.ts +2 -2
  421. package/dist/types/modes/utils/tools-markdown.d.ts +1 -1
  422. package/dist/types/modes/utils/transcript-render-helpers.d.ts +10 -2
  423. package/dist/types/modes/utils/transcript-render-helpers.test.d.ts +1 -0
  424. package/dist/types/modes/utils/ui-helpers.d.ts +2 -2
  425. package/dist/types/modes/workflow.d.ts +1 -1
  426. package/dist/types/plan-mode/plan-handoff.d.ts +1 -1
  427. package/dist/types/registry/agent-lifecycle.d.ts +2 -2
  428. package/dist/types/registry/agent-registry.d.ts +1 -1
  429. package/dist/types/sdk.d.ts +40 -36
  430. package/dist/types/secrets/index.d.ts +2 -2
  431. package/dist/types/secrets/obfuscator.d.ts +1 -1
  432. package/dist/types/session/agent-session.d.ts +56 -42
  433. package/dist/types/session/agent-storage.d.ts +1 -1
  434. package/dist/types/session/auth-broker-config.d.ts +1 -1
  435. package/dist/types/session/codex-auto-reset.d.ts +1 -1
  436. package/dist/types/session/exit-diagnostics.d.ts +1 -1
  437. package/dist/types/session/indexed-session-storage.d.ts +2 -2
  438. package/dist/types/session/messages.d.ts +22 -3
  439. package/dist/types/session/redis-session-storage.d.ts +1 -1
  440. package/dist/types/session/session-context.d.ts +1 -1
  441. package/dist/types/session/session-entries.d.ts +4 -0
  442. package/dist/types/session/session-listing.d.ts +1 -1
  443. package/dist/types/session/session-loader.d.ts +4 -4
  444. package/dist/types/session/session-manager.d.ts +9 -8
  445. package/dist/types/session/session-migrations.d.ts +1 -1
  446. package/dist/types/session/session-paths.d.ts +1 -1
  447. package/dist/types/session/session-persistence.d.ts +2 -2
  448. package/dist/types/session/session-storage.d.ts +1 -1
  449. package/dist/types/session/session-title-slot.d.ts +1 -1
  450. package/dist/types/session/settings-stream-fn.d.ts +1 -1
  451. package/dist/types/session/sql-session-storage.d.ts +1 -1
  452. package/dist/types/session/unexpected-stop-classifier.d.ts +2 -2
  453. package/dist/types/slash-commands/acp-builtins.d.ts +2 -2
  454. package/dist/types/slash-commands/available-commands.d.ts +5 -5
  455. package/dist/types/slash-commands/builtin-registry.d.ts +2 -2
  456. package/dist/types/slash-commands/helpers/active-oauth-account.d.ts +1 -1
  457. package/dist/types/slash-commands/helpers/context-report.d.ts +1 -1
  458. package/dist/types/slash-commands/helpers/format.d.ts +1 -1
  459. package/dist/types/slash-commands/helpers/logout.d.ts +1 -1
  460. package/dist/types/slash-commands/helpers/marketplace-manager.d.ts +2 -2
  461. package/dist/types/slash-commands/helpers/mcp.d.ts +1 -1
  462. package/dist/types/slash-commands/helpers/parse.d.ts +1 -1
  463. package/dist/types/slash-commands/helpers/reset-usage.d.ts +1 -1
  464. package/dist/types/slash-commands/helpers/ssh.d.ts +1 -1
  465. package/dist/types/slash-commands/helpers/todo.d.ts +1 -1
  466. package/dist/types/slash-commands/helpers/usage-report.d.ts +1 -1
  467. package/dist/types/slash-commands/types.d.ts +6 -4
  468. package/dist/types/ssh/file-transfer.d.ts +1 -1
  469. package/dist/types/ssh/ssh-executor.d.ts +1 -1
  470. package/dist/types/ssh/sshfs-mount.d.ts +1 -1
  471. package/dist/types/stt/asr-client.d.ts +3 -3
  472. package/dist/types/stt/asr-protocol.d.ts +1 -1
  473. package/dist/types/stt/asr-worker.d.ts +1 -1
  474. package/dist/types/stt/downloader.d.ts +1 -1
  475. package/dist/types/stt/index.d.ts +8 -8
  476. package/dist/types/stt/models.d.ts +1 -1
  477. package/dist/types/system-prompt.d.ts +4 -4
  478. package/dist/types/task/agents.d.ts +1 -1
  479. package/dist/types/task/discovery.d.ts +1 -1
  480. package/dist/types/task/executor.d.ts +20 -20
  481. package/dist/types/task/index.d.ts +11 -11
  482. package/dist/types/task/isolation-runner.d.ts +7 -6
  483. package/dist/types/task/persisted-revive.d.ts +5 -5
  484. package/dist/types/task/provider-concurrency.d.ts +2 -2
  485. package/dist/types/task/render.d.ts +3 -3
  486. package/dist/types/task/renderer.d.ts +1 -1
  487. package/dist/types/task/repair-args.d.ts +1 -1
  488. package/dist/types/task/subprocess-tool-registry.d.ts +1 -1
  489. package/dist/types/task/types.d.ts +2 -2
  490. package/dist/types/task/yield-assembly.d.ts +1 -1
  491. package/dist/types/tiny/title-client.d.ts +2 -2
  492. package/dist/types/tiny/title-protocol.d.ts +1 -1
  493. package/dist/types/tiny/worker.d.ts +1 -1
  494. package/dist/types/tool-discovery/mode.d.ts +2 -2
  495. package/dist/types/tools/__tests__/glob.test.d.ts +1 -0
  496. package/dist/types/tools/acp-bridge.d.ts +2 -2
  497. package/dist/types/tools/ask.d.ts +3 -3
  498. package/dist/types/tools/ast-edit.d.ts +4 -4
  499. package/dist/types/tools/ast-grep.d.ts +4 -4
  500. package/dist/types/tools/bash-command-fixup.d.ts +3 -11
  501. package/dist/types/tools/bash-interactive.d.ts +1 -1
  502. package/dist/types/tools/bash-interceptor.d.ts +1 -1
  503. package/dist/types/tools/bash-skill-urls.d.ts +3 -3
  504. package/dist/types/tools/bash.d.ts +4 -4
  505. package/dist/types/tools/browser/cmux/cmux-tab.d.ts +6 -6
  506. package/dist/types/tools/browser/cmux/rpc.d.ts +1 -1
  507. package/dist/types/tools/browser/registry.d.ts +3 -3
  508. package/dist/types/tools/browser/render.d.ts +3 -3
  509. package/dist/types/tools/browser/tab-supervisor.d.ts +4 -4
  510. package/dist/types/tools/browser/tab-worker.d.ts +1 -1
  511. package/dist/types/tools/browser.d.ts +9 -9
  512. package/dist/types/tools/checkpoint.d.ts +2 -2
  513. package/dist/types/tools/conflict-detect.d.ts +1 -1
  514. package/dist/types/tools/context.d.ts +2 -2
  515. package/dist/types/tools/debug.d.ts +4 -4
  516. package/dist/types/tools/eval-backends.d.ts +1 -1
  517. package/dist/types/tools/eval-render.d.ts +3 -3
  518. package/dist/types/tools/eval.d.ts +3 -3
  519. package/dist/types/tools/fetch.d.ts +7 -7
  520. package/dist/types/tools/gh-renderer.d.ts +3 -3
  521. package/dist/types/tools/gh.d.ts +5 -5
  522. package/dist/types/tools/github-cache.d.ts +1 -1
  523. package/dist/types/tools/glob.d.ts +7 -5
  524. package/dist/types/tools/grep.d.ts +5 -5
  525. package/dist/types/tools/image-gen.d.ts +2 -2
  526. package/dist/types/tools/index.d.ts +70 -70
  527. package/dist/types/tools/inspect-image-renderer.d.ts +2 -2
  528. package/dist/types/tools/inspect-image.d.ts +2 -2
  529. package/dist/types/tools/irc.d.ts +5 -5
  530. package/dist/types/tools/job.d.ts +3 -3
  531. package/dist/types/tools/json-tree.d.ts +1 -1
  532. package/dist/types/tools/learn.d.ts +1 -1
  533. package/dist/types/tools/list-limit.d.ts +1 -1
  534. package/dist/types/tools/manage-skill.d.ts +1 -1
  535. package/dist/types/tools/memory-edit.d.ts +1 -1
  536. package/dist/types/tools/memory-recall.d.ts +1 -1
  537. package/dist/types/tools/memory-reflect.d.ts +1 -1
  538. package/dist/types/tools/memory-render.d.ts +2 -2
  539. package/dist/types/tools/memory-retain.d.ts +1 -1
  540. package/dist/types/tools/output-meta.d.ts +3 -3
  541. package/dist/types/tools/path-utils.d.ts +2 -2
  542. package/dist/types/tools/plan-mode-guard.d.ts +1 -1
  543. package/dist/types/tools/read.d.ts +7 -7
  544. package/dist/types/tools/render-utils.d.ts +3 -3
  545. package/dist/types/tools/renderers.d.ts +2 -2
  546. package/dist/types/tools/report-tool-issue.d.ts +2 -2
  547. package/dist/types/tools/resolve.d.ts +3 -3
  548. package/dist/types/tools/review.d.ts +2 -2
  549. package/dist/types/tools/search-tool-bm25.d.ts +4 -4
  550. package/dist/types/tools/ssh.d.ts +5 -5
  551. package/dist/types/tools/todo.d.ts +4 -4
  552. package/dist/types/tools/tool-result.d.ts +2 -2
  553. package/dist/types/tools/tts.d.ts +1 -1
  554. package/dist/types/tools/write.d.ts +7 -7
  555. package/dist/types/tools/yield.d.ts +1 -1
  556. package/dist/types/tts/index.d.ts +10 -10
  557. package/dist/types/tts/models.d.ts +1 -1
  558. package/dist/types/tts/speech-enhancer.d.ts +2 -2
  559. package/dist/types/tts/streaming-player.d.ts +1 -1
  560. package/dist/types/tts/tts-client.d.ts +2 -2
  561. package/dist/types/tts/tts-protocol.d.ts +1 -1
  562. package/dist/types/tts/tts-worker.d.ts +1 -1
  563. package/dist/types/tts/vocalizer.d.ts +7 -1
  564. package/dist/types/tui/code-cell.d.ts +1 -1
  565. package/dist/types/tui/file-list.d.ts +1 -1
  566. package/dist/types/tui/index.d.ts +9 -9
  567. package/dist/types/tui/output-block.d.ts +2 -2
  568. package/dist/types/tui/status-line.d.ts +2 -2
  569. package/dist/types/tui/tree-list.d.ts +2 -2
  570. package/dist/types/tui/types.d.ts +1 -1
  571. package/dist/types/tui/utils.d.ts +2 -2
  572. package/dist/types/utils/changelog.d.ts +1 -1
  573. package/dist/types/utils/commit-message-generator.d.ts +2 -2
  574. package/dist/types/utils/git.d.ts +1 -1
  575. package/dist/types/utils/image-loading.d.ts +1 -1
  576. package/dist/types/utils/image-vision-fallback.d.ts +3 -3
  577. package/dist/types/utils/markit.d.ts +1 -1
  578. package/dist/types/utils/title-generator.d.ts +2 -2
  579. package/dist/types/web/parallel.d.ts +1 -1
  580. package/dist/types/web/scrapers/artifacthub.d.ts +1 -1
  581. package/dist/types/web/scrapers/arxiv.d.ts +1 -1
  582. package/dist/types/web/scrapers/aur.d.ts +1 -1
  583. package/dist/types/web/scrapers/biorxiv.d.ts +1 -1
  584. package/dist/types/web/scrapers/bluesky.d.ts +1 -1
  585. package/dist/types/web/scrapers/brew.d.ts +1 -1
  586. package/dist/types/web/scrapers/cheatsh.d.ts +1 -1
  587. package/dist/types/web/scrapers/chocolatey.d.ts +1 -1
  588. package/dist/types/web/scrapers/choosealicense.d.ts +1 -1
  589. package/dist/types/web/scrapers/cisa-kev.d.ts +1 -1
  590. package/dist/types/web/scrapers/clojars.d.ts +1 -1
  591. package/dist/types/web/scrapers/coingecko.d.ts +1 -1
  592. package/dist/types/web/scrapers/crates-io.d.ts +1 -1
  593. package/dist/types/web/scrapers/crossref.d.ts +1 -1
  594. package/dist/types/web/scrapers/devto.d.ts +1 -1
  595. package/dist/types/web/scrapers/discogs.d.ts +1 -1
  596. package/dist/types/web/scrapers/discourse.d.ts +1 -1
  597. package/dist/types/web/scrapers/dockerhub.d.ts +1 -1
  598. package/dist/types/web/scrapers/docs-rs.d.ts +8 -1
  599. package/dist/types/web/scrapers/fdroid.d.ts +1 -1
  600. package/dist/types/web/scrapers/firefox-addons.d.ts +1 -1
  601. package/dist/types/web/scrapers/flathub.d.ts +1 -1
  602. package/dist/types/web/scrapers/github-gist.d.ts +1 -1
  603. package/dist/types/web/scrapers/github.d.ts +1 -1
  604. package/dist/types/web/scrapers/gitlab.d.ts +1 -1
  605. package/dist/types/web/scrapers/go-pkg.d.ts +1 -1
  606. package/dist/types/web/scrapers/hackage.d.ts +1 -1
  607. package/dist/types/web/scrapers/hackernews.d.ts +1 -1
  608. package/dist/types/web/scrapers/hex.d.ts +1 -1
  609. package/dist/types/web/scrapers/huggingface.d.ts +1 -1
  610. package/dist/types/web/scrapers/iacr.d.ts +1 -1
  611. package/dist/types/web/scrapers/index.d.ts +77 -77
  612. package/dist/types/web/scrapers/jetbrains-marketplace.d.ts +1 -1
  613. package/dist/types/web/scrapers/lemmy.d.ts +1 -1
  614. package/dist/types/web/scrapers/lobsters.d.ts +1 -1
  615. package/dist/types/web/scrapers/mastodon.d.ts +1 -1
  616. package/dist/types/web/scrapers/maven.d.ts +1 -1
  617. package/dist/types/web/scrapers/mdn.d.ts +1 -1
  618. package/dist/types/web/scrapers/metacpan.d.ts +1 -1
  619. package/dist/types/web/scrapers/musicbrainz.d.ts +1 -1
  620. package/dist/types/web/scrapers/npm.d.ts +1 -1
  621. package/dist/types/web/scrapers/nuget.d.ts +1 -1
  622. package/dist/types/web/scrapers/nvd.d.ts +1 -1
  623. package/dist/types/web/scrapers/ollama.d.ts +1 -1
  624. package/dist/types/web/scrapers/open-vsx.d.ts +1 -1
  625. package/dist/types/web/scrapers/opencorporates.d.ts +1 -1
  626. package/dist/types/web/scrapers/openlibrary.d.ts +1 -1
  627. package/dist/types/web/scrapers/orcid.d.ts +1 -1
  628. package/dist/types/web/scrapers/osv.d.ts +1 -1
  629. package/dist/types/web/scrapers/packagist.d.ts +1 -1
  630. package/dist/types/web/scrapers/pub-dev.d.ts +1 -1
  631. package/dist/types/web/scrapers/pubmed.d.ts +1 -1
  632. package/dist/types/web/scrapers/pypi.d.ts +1 -1
  633. package/dist/types/web/scrapers/rawg.d.ts +1 -1
  634. package/dist/types/web/scrapers/readthedocs.d.ts +1 -1
  635. package/dist/types/web/scrapers/reddit.d.ts +1 -1
  636. package/dist/types/web/scrapers/repology.d.ts +1 -1
  637. package/dist/types/web/scrapers/rfc.d.ts +1 -1
  638. package/dist/types/web/scrapers/rubygems.d.ts +1 -1
  639. package/dist/types/web/scrapers/searchcode.d.ts +1 -1
  640. package/dist/types/web/scrapers/sec-edgar.d.ts +1 -1
  641. package/dist/types/web/scrapers/semantic-scholar.d.ts +1 -1
  642. package/dist/types/web/scrapers/snapcraft.d.ts +1 -1
  643. package/dist/types/web/scrapers/sourcegraph.d.ts +1 -1
  644. package/dist/types/web/scrapers/spdx.d.ts +1 -1
  645. package/dist/types/web/scrapers/spotify.d.ts +1 -1
  646. package/dist/types/web/scrapers/stackoverflow.d.ts +1 -1
  647. package/dist/types/web/scrapers/terraform.d.ts +1 -1
  648. package/dist/types/web/scrapers/tldr.d.ts +1 -1
  649. package/dist/types/web/scrapers/twitter.d.ts +1 -1
  650. package/dist/types/web/scrapers/types.d.ts +1 -1
  651. package/dist/types/web/scrapers/vimeo.d.ts +1 -1
  652. package/dist/types/web/scrapers/vscode-marketplace.d.ts +1 -1
  653. package/dist/types/web/scrapers/w3c.d.ts +1 -1
  654. package/dist/types/web/scrapers/wikidata.d.ts +1 -1
  655. package/dist/types/web/scrapers/wikipedia.d.ts +1 -1
  656. package/dist/types/web/scrapers/youtube.d.ts +1 -1
  657. package/dist/types/web/search/index.d.ts +7 -7
  658. package/dist/types/web/search/provider.d.ts +5 -5
  659. package/dist/types/web/search/providers/anthropic.d.ts +3 -3
  660. package/dist/types/web/search/providers/base.d.ts +1 -1
  661. package/dist/types/web/search/providers/brave.d.ts +3 -3
  662. package/dist/types/web/search/providers/codex.d.ts +3 -3
  663. package/dist/types/web/search/providers/duckduckgo.d.ts +3 -3
  664. package/dist/types/web/search/providers/exa.d.ts +3 -3
  665. package/dist/types/web/search/providers/firecrawl.d.ts +3 -3
  666. package/dist/types/web/search/providers/gemini.d.ts +3 -3
  667. package/dist/types/web/search/providers/jina.d.ts +3 -3
  668. package/dist/types/web/search/providers/kagi.d.ts +3 -3
  669. package/dist/types/web/search/providers/kimi.d.ts +3 -3
  670. package/dist/types/web/search/providers/parallel.d.ts +3 -3
  671. package/dist/types/web/search/providers/perplexity.d.ts +3 -3
  672. package/dist/types/web/search/providers/searxng.d.ts +3 -3
  673. package/dist/types/web/search/providers/synthetic.d.ts +3 -3
  674. package/dist/types/web/search/providers/tavily.d.ts +3 -3
  675. package/dist/types/web/search/providers/tinyfish.d.ts +3 -3
  676. package/dist/types/web/search/providers/utils.d.ts +2 -2
  677. package/dist/types/web/search/providers/xai.d.ts +3 -3
  678. package/dist/types/web/search/providers/zai.d.ts +3 -3
  679. package/dist/types/web/search/render.d.ts +3 -3
  680. package/package.json +12 -12
  681. package/src/advisor/__tests__/advisor.test.ts +59 -0
  682. package/src/auto-thinking/classifier.ts +6 -5
  683. package/src/collab/relay-client.ts +73 -7
  684. package/src/config/model-registry.ts +43 -2
  685. package/src/config/model-resolver.ts +1 -1
  686. package/src/config/settings-schema.ts +5 -12
  687. package/src/config/settings.ts +25 -5
  688. package/src/edit/hashline/filesystem.ts +19 -1
  689. package/src/edit/modes/patch.ts +9 -1
  690. package/src/edit/modes/replace.ts +1 -1
  691. package/src/edit/renderer.ts +42 -30
  692. package/src/eval/__tests__/agent-bridge.test.ts +19 -0
  693. package/src/eval/__tests__/budget-bridge.test.ts +12 -1
  694. package/src/eval/agent-bridge.ts +27 -19
  695. package/src/eval/js/context-manager.ts +3 -0
  696. package/src/export/ttsr.ts +10 -0
  697. package/src/extensibility/extensions/loader.ts +2 -2
  698. package/src/extensibility/extensions/types.ts +16 -4
  699. package/src/extensibility/hooks/loader.ts +3 -3
  700. package/src/extensibility/hooks/types.ts +4 -4
  701. package/src/extensibility/legacy-pi-ai-shim.ts +17 -4
  702. package/src/extensibility/legacy-pi-coding-agent-shim.ts +554 -2
  703. package/src/extensibility/plugins/legacy-pi-compat.ts +190 -58
  704. package/src/internal-urls/docs-index.generated.txt +1 -1
  705. package/src/internal-urls/memory-protocol.ts +105 -3
  706. package/src/lsp/client.ts +70 -0
  707. package/src/lsp/index.ts +65 -12
  708. package/src/main.ts +5 -3
  709. package/src/markit/converters/pdf/extract.ts +26 -2
  710. package/src/mnemopi/state.ts +76 -0
  711. package/src/modes/acp/acp-agent.ts +5 -1
  712. package/src/modes/components/agent-hub.ts +27 -9
  713. package/src/modes/components/chat-transcript-builder.ts +7 -3
  714. package/src/modes/components/copy-selector.ts +16 -4
  715. package/src/modes/components/model-selector.ts +17 -17
  716. package/src/modes/components/session-selector.ts +12 -4
  717. package/src/modes/components/status-line/component.ts +4 -0
  718. package/src/modes/components/status-line/segments.ts +6 -5
  719. package/src/modes/components/status-line/types.ts +4 -0
  720. package/src/modes/components/tool-execution.ts +8 -3
  721. package/src/modes/controllers/command-controller.ts +10 -0
  722. package/src/modes/controllers/event-controller.ts +4 -3
  723. package/src/modes/controllers/extension-ui-controller.test.ts +58 -0
  724. package/src/modes/controllers/extension-ui-controller.ts +12 -6
  725. package/src/modes/controllers/input-controller.ts +8 -0
  726. package/src/modes/controllers/selector-controller.ts +18 -9
  727. package/src/modes/controllers/streaming-reveal.ts +12 -5
  728. package/src/modes/controllers/tool-args-reveal.ts +13 -6
  729. package/src/modes/interactive-mode.ts +54 -28
  730. package/src/modes/prompt-action-autocomplete.ts +18 -0
  731. package/src/modes/theme/shimmer.ts +37 -1
  732. package/src/modes/utils/transcript-render-helpers.test.ts +38 -0
  733. package/src/modes/utils/transcript-render-helpers.ts +14 -0
  734. package/src/modes/utils/ui-helpers.ts +5 -1
  735. package/src/prompts/system/workflow-notice.md +1 -1
  736. package/src/prompts/tools/bash.md +9 -7
  737. package/src/prompts/tools/grep.md +1 -1
  738. package/src/prompts/tools/memory-edit.md +2 -0
  739. package/src/prompts/tools/recall.md +2 -0
  740. package/src/sdk.ts +112 -12
  741. package/src/session/agent-session.ts +203 -61
  742. package/src/session/messages.ts +102 -2
  743. package/src/session/session-context.ts +60 -10
  744. package/src/session/session-entries.ts +4 -0
  745. package/src/session/session-history-format.ts +12 -0
  746. package/src/session/session-manager.ts +129 -10
  747. package/src/session/settings-stream-fn.ts +1 -0
  748. package/src/session/unexpected-stop-classifier.ts +6 -3
  749. package/src/slash-commands/builtin-registry.ts +7 -4
  750. package/src/slash-commands/helpers/usage-report.ts +3 -0
  751. package/src/slash-commands/types.ts +2 -0
  752. package/src/task/executor.ts +23 -3
  753. package/src/task/isolation-runner.ts +38 -9
  754. package/src/tools/__tests__/glob.test.ts +37 -0
  755. package/src/tools/acp-bridge.ts +11 -1
  756. package/src/tools/bash-command-fixup.ts +3 -36
  757. package/src/tools/bash.ts +4 -13
  758. package/src/tools/browser/render.ts +6 -4
  759. package/src/tools/glob.ts +11 -1
  760. package/src/tools/index.ts +1 -1
  761. package/src/tools/inspect-image-renderer.ts +5 -4
  762. package/src/tools/read.ts +13 -8
  763. package/src/tools/render-utils.ts +4 -1
  764. package/src/tools/write.ts +9 -7
  765. package/src/tts/speech-enhancer.ts +7 -5
  766. package/src/tts/vocalizer.ts +9 -0
  767. package/src/utils/commit-message-generator.ts +7 -5
  768. package/src/utils/shell-snapshot.ts +10 -0
  769. package/src/utils/title-generator.ts +12 -7
  770. package/src/web/scrapers/docs-rs.ts +12 -1
  771. package/src/web/search/providers/xai.ts +43 -47
@@ -2268,6 +2268,11 @@ export const SETTINGS_SCHEMA = {
2268
2268
  description:
2269
2269
  "8x13 glyphs on an 11x16 cell — extra letter spacing so characters don't merge. Default for Anthropic.",
2270
2270
  },
2271
+ {
2272
+ value: "silver16-bw",
2273
+ label: "Silver 16, CJK",
2274
+ description: "Embedded Silver TrueType font on a 16px grid for CJK and other non-Latin text.",
2275
+ },
2271
2276
  {
2272
2277
  value: "doc-8on16-bw",
2273
2278
  label: "Doc 8on16, black",
@@ -3166,18 +3171,6 @@ export const SETTINGS_SCHEMA = {
3166
3171
  },
3167
3172
  "bashInterceptor.patterns": { type: "array", default: DEFAULT_BASH_INTERCEPTOR_RULES },
3168
3173
 
3169
- "bash.stripTrailingHeadTail": {
3170
- type: "boolean",
3171
- default: true,
3172
- ui: {
3173
- tab: "shell",
3174
- group: "Bash",
3175
- label: "Strip head/tail Pipes",
3176
- description:
3177
- "Silently drop trailing `| head`/`| tail` pipes from single-line bash commands. Output is already truncated automatically.",
3178
- },
3179
- },
3180
-
3181
3174
  // Shell output minimizer
3182
3175
  "shellMinimizer.enabled": {
3183
3176
  type: "boolean",
@@ -172,6 +172,14 @@ function isRecord(value: unknown): value is Record<string, unknown> {
172
172
  return !!value && typeof value === "object" && !Array.isArray(value);
173
173
  }
174
174
 
175
+ function modelRoleValueFromUnknown(value: unknown): string | undefined {
176
+ if (typeof value === "string") return value;
177
+ if (!Array.isArray(value)) return undefined;
178
+
179
+ const entries = stringArrayFromUnknown(value);
180
+ return entries.length === value.length ? entries.join(",") : undefined;
181
+ }
182
+
175
183
  type EditVariantEntry = {
176
184
  patternLower: string;
177
185
  mode: EditMode;
@@ -580,8 +588,8 @@ export class Settings {
580
588
  const roles: Record<string, string> = {};
581
589
  for (const role in value) {
582
590
  if (!Object.hasOwn(value, role)) continue;
583
- const modelId = value[role];
584
- if (typeof modelId === "string") {
591
+ const modelId = modelRoleValueFromUnknown(value[role]);
592
+ if (modelId !== undefined) {
585
593
  roles[role] = modelId;
586
594
  }
587
595
  }
@@ -614,15 +622,27 @@ export class Settings {
614
622
  * Get a model role (helper for modelRoles record).
615
623
  */
616
624
  getModelRole(role: ModelRole | string): string | undefined {
617
- const roles = this.get("modelRoles");
618
- return roles[role];
625
+ const roles: unknown = this.get("modelRoles");
626
+ if (!isRecord(roles)) return undefined;
627
+ return modelRoleValueFromUnknown(roles[role]);
619
628
  }
620
629
 
621
630
  /**
622
631
  * Get all model roles (helper for modelRoles record).
623
632
  */
624
633
  getModelRoles(): ReadOnlyDict<string> {
625
- return { ...this.get("modelRoles") };
634
+ const roles: unknown = this.get("modelRoles");
635
+ if (!isRecord(roles)) return {};
636
+
637
+ const normalized: Record<string, string> = {};
638
+ for (const role in roles) {
639
+ if (!Object.hasOwn(roles, role)) continue;
640
+ const modelId = modelRoleValueFromUnknown(roles[role]);
641
+ if (modelId !== undefined) {
642
+ normalized[role] = modelId;
643
+ }
644
+ }
645
+ return normalized;
626
646
  }
627
647
 
628
648
  /*
@@ -21,6 +21,7 @@ import * as path from "node:path";
21
21
  import { Filesystem, NotFoundError, type PreflightWriteOptions, type WriteResult } from "@oh-my-pi/hashline";
22
22
  import { isEnoent } from "@oh-my-pi/pi-utils";
23
23
  import type { FileDiagnosticsResult, WritethroughCallback, WritethroughDeferredHandle } from "../../lsp";
24
+ import { FileChangeType, notifyWorkspaceWatchedFiles } from "../../lsp/client";
24
25
  import type { ToolSession } from "../../tools";
25
26
  import { routeWriteThroughBridge } from "../../tools/acp-bridge";
26
27
  import { assertEditableFileContent } from "../../tools/auto-generated-guard";
@@ -157,6 +158,13 @@ export class HashlineFilesystem extends Filesystem {
157
158
  if (isEnoent(error)) throw new NotFoundError(relativePath, error);
158
159
  throw error;
159
160
  }
161
+ if (this.session.enableLsp ?? true) {
162
+ await notifyWorkspaceWatchedFiles(
163
+ this.session.cwd,
164
+ [{ filePath: absolutePath, type: FileChangeType.Deleted }],
165
+ this.#signal,
166
+ );
167
+ }
160
168
  invalidateFsScanAfterWrite(absolutePath);
161
169
  }
162
170
 
@@ -170,6 +178,16 @@ export class HashlineFilesystem extends Filesystem {
170
178
  } else {
171
179
  await fs.rename(fromAbsolute, toAbsolute);
172
180
  }
181
+ if (this.session.enableLsp ?? true) {
182
+ await notifyWorkspaceWatchedFiles(
183
+ this.session.cwd,
184
+ [
185
+ { filePath: fromAbsolute, type: FileChangeType.Deleted },
186
+ { filePath: toAbsolute, type: FileChangeType.Created },
187
+ ],
188
+ this.#signal,
189
+ );
190
+ }
173
191
  invalidateFsScanAfterWrite(fromAbsolute);
174
192
  invalidateFsScanAfterWrite(toAbsolute);
175
193
  }
@@ -180,7 +198,7 @@ export class HashlineFilesystem extends Filesystem {
180
198
  const finalContent = await serializeEditFileText(absolutePath, relativePath, content);
181
199
 
182
200
  // Route through ACP bridge when available; skips internal artifacts.
183
- if (await routeWriteThroughBridge(this.session, relativePath, absolutePath, finalContent)) {
201
+ if (await routeWriteThroughBridge(this.session, relativePath, absolutePath, finalContent, this.#signal)) {
184
202
  this.#diagnosticsByPath.set(relativePath, undefined);
185
203
  return { text: finalContent };
186
204
  }
@@ -16,6 +16,7 @@ import {
16
16
  type WritethroughCallback,
17
17
  type WritethroughDeferredHandle,
18
18
  } from "../../lsp";
19
+ import { FileChangeType, notifyWorkspaceWatchedFiles } from "../../lsp/client";
19
20
  import type { ToolSession } from "../../tools";
20
21
  import { routeWriteThroughBridge } from "../../tools/acp-bridge";
21
22
  import { assertEditableFile } from "../../tools/auto-generated-guard";
@@ -1732,7 +1733,7 @@ class LspFileSystem implements FileSystem {
1732
1733
  const finalContent = await serializeEditFileText(path, path, content);
1733
1734
 
1734
1735
  // Route through ACP bridge when available; skips internal artifacts and local:// paths.
1735
- if (await routeWriteThroughBridge(this.session, this.requestedPath, path, finalContent)) {
1736
+ if (await routeWriteThroughBridge(this.session, this.requestedPath, path, finalContent, this.signal)) {
1736
1737
  return;
1737
1738
  }
1738
1739
 
@@ -1753,6 +1754,13 @@ class LspFileSystem implements FileSystem {
1753
1754
 
1754
1755
  async delete(path: string): Promise<void> {
1755
1756
  await this.#getFile(path).unlink();
1757
+ if (this.session.enableLsp ?? true) {
1758
+ await notifyWorkspaceWatchedFiles(
1759
+ this.session.cwd,
1760
+ [{ filePath: path, type: FileChangeType.Deleted }],
1761
+ this.signal,
1762
+ );
1763
+ }
1756
1764
  }
1757
1765
 
1758
1766
  async mkdir(path: string): Promise<void> {
@@ -1103,7 +1103,7 @@ export async function executeReplaceSingle(
1103
1103
 
1104
1104
  // Route through ACP bridge when available; skips internal artifacts.
1105
1105
  let diagnostics: FileDiagnosticsResult | undefined;
1106
- if (await routeWriteThroughBridge(session, path, absolutePath, finalContent)) {
1106
+ if (await routeWriteThroughBridge(session, path, absolutePath, finalContent, signal)) {
1107
1107
  // bridge handled the write; diagnostics not available via writethrough
1108
1108
  } else {
1109
1109
  diagnostics = await writethrough(absolutePath, finalContent, signal, Bun.file(absolutePath), batchRequest, dst =>
@@ -108,8 +108,8 @@ export interface EditToolDetails {
108
108
  // ═══════════════════════════════════════════════════════════════════════════
109
109
 
110
110
  interface EditRenderArgs {
111
- path?: string;
112
- file_path?: string;
111
+ path?: unknown;
112
+ file_path?: unknown;
113
113
  oldText?: string;
114
114
  newText?: string;
115
115
  patch?: string;
@@ -118,7 +118,7 @@ interface EditRenderArgs {
118
118
  all?: boolean;
119
119
  // Patch mode fields
120
120
  op?: Operation;
121
- rename?: string;
121
+ rename?: unknown;
122
122
  diff?: string;
123
123
  /**
124
124
  * Computed preview diff (used when tool args don't include a diff, e.g. hashline mode).
@@ -130,9 +130,9 @@ interface EditRenderArgs {
130
130
  }
131
131
 
132
132
  type EditRenderEntry = {
133
- path?: string;
134
- rename?: string;
135
- move?: string;
133
+ path?: unknown;
134
+ rename?: unknown;
135
+ move?: unknown;
136
136
  op?: Operation;
137
137
  };
138
138
 
@@ -192,8 +192,11 @@ const CALL_TEXT_PREVIEW_LINES = 6;
192
192
  const CALL_TEXT_PREVIEW_WIDTH = 80;
193
193
 
194
194
  /** Extract file path from an edit entry. */
195
- function filePathFromEditEntry(p: string | undefined): string | undefined {
196
- return p ?? undefined;
195
+ function filePathFromEditEntry(p: unknown): string | undefined {
196
+ if (typeof p !== "string") {
197
+ return undefined;
198
+ }
199
+ return p;
197
200
  }
198
201
 
199
202
  function decodePartialJsonStringFragment(fragment: string): string {
@@ -711,18 +714,20 @@ export const editToolRenderer = {
711
714
  // Extract path from first edit entry when top-level path is absent (new schema)
712
715
  const firstEdit = Array.isArray(editArgs.edits) && editArgs.edits.length > 0 ? editArgs.edits[0] : undefined;
713
716
  const rawPath =
714
- editArgs.file_path ||
715
- editArgs.path ||
716
- filePathFromEditEntry(firstEdit?.path) ||
717
- getPartialJsonEditPath(editArgs) ||
718
- firstHashlineInputEntry?.path ||
719
- firstApplyPatchEntry?.path ||
720
- "";
717
+ typeof editArgs.file_path === "string"
718
+ ? editArgs.file_path
719
+ : typeof editArgs.path === "string"
720
+ ? editArgs.path
721
+ : (filePathFromEditEntry(firstEdit?.path) ??
722
+ getPartialJsonEditPath(editArgs) ??
723
+ firstHashlineInputEntry?.path ??
724
+ firstApplyPatchEntry?.path ??
725
+ "");
721
726
  const rename =
722
- editArgs.rename ||
723
- firstEdit?.rename ||
724
- firstEdit?.move ||
725
- firstApplyPatchEntry?.rename ||
727
+ (typeof editArgs.rename === "string" ? editArgs.rename : undefined) ??
728
+ filePathFromEditEntry(firstEdit?.rename) ??
729
+ filePathFromEditEntry(firstEdit?.move) ??
730
+ firstApplyPatchEntry?.rename ??
726
731
  firstHashlineInputEntry?.rename;
727
732
  const op = editArgs.op || firstEdit?.op || firstApplyPatchEntry?.op || firstHashlineInputEntry?.op;
728
733
  let fileCount = hashlineInputSummary?.entries.length ?? applyPatchSummary?.entries.length ?? 0;
@@ -781,8 +786,9 @@ export const editToolRenderer = {
781
786
  uiTheme: Theme,
782
787
  args?: EditRenderArgs,
783
788
  ): Component {
789
+ const edits = Array.isArray(args?.edits) ? args.edits : undefined;
784
790
  const perFileResults = result.details?.perFileResults;
785
- const totalFiles = args?.edits ? countEditFiles(args.edits) : 0;
791
+ const totalFiles = edits ? countEditFiles(edits) : 0;
786
792
  if (perFileResults && (perFileResults.length > 1 || totalFiles > 1)) {
787
793
  return renderMultiFileResult(perFileResults, totalFiles, options, uiTheme);
788
794
  }
@@ -802,20 +808,26 @@ function renderSingleFileResult(
802
808
  ): Component {
803
809
  const details = result.details;
804
810
  const isError = result.isError ?? (details && "isError" in details ? details.isError : false);
805
- const firstEdit = args?.edits?.[0];
811
+ const edits = Array.isArray(args?.edits) ? args.edits : undefined;
812
+ const firstEdit = edits?.[0];
806
813
  const hashlineInputSummary = getHashlineInputRenderSummary(args ?? {}, options.renderContext?.editMode);
807
814
  const firstHashlineInputEntry = hashlineInputSummary?.entries[0];
808
- const moveSource = details && "sourcePath" in details ? details.sourcePath : undefined;
815
+ const moveSource =
816
+ details && "sourcePath" in details && typeof details.sourcePath === "string" ? details.sourcePath : undefined;
817
+ const detailPath = details && "path" in details && typeof details.path === "string" ? details.path : undefined;
809
818
  const rawPath =
810
- moveSource ||
811
- args?.file_path ||
812
- args?.path ||
813
- filePathFromEditEntry(firstEdit?.path) ||
814
- (details && "path" in details ? details.path : "") ||
815
- firstHashlineInputEntry?.path ||
816
- "";
819
+ moveSource ??
820
+ (typeof args?.file_path === "string"
821
+ ? args.file_path
822
+ : typeof args?.path === "string"
823
+ ? args.path
824
+ : (filePathFromEditEntry(firstEdit?.path) ?? detailPath ?? firstHashlineInputEntry?.path ?? ""));
817
825
  const op = args?.op || firstEdit?.op || details?.op;
818
- const rename = args?.rename || firstEdit?.rename || firstEdit?.move || details?.move;
826
+ const rename =
827
+ (typeof args?.rename === "string" ? args.rename : undefined) ??
828
+ filePathFromEditEntry(firstEdit?.rename) ??
829
+ filePathFromEditEntry(firstEdit?.move) ??
830
+ (details && "move" in details && typeof details.move === "string" ? details.move : undefined);
819
831
 
820
832
  const displayErrorText = isError && details && "displayErrorText" in details ? details.displayErrorText : undefined;
821
833
  const errorText = isError
@@ -1172,6 +1172,25 @@ describe("runEvalAgent isolation", () => {
1172
1172
  ).rejects.toThrow(/isolated apply failed.*Patch apply failed.*Captured patch preserved at \/artifacts\//s);
1173
1173
  });
1174
1174
 
1175
+ it("surfaces the preserved patch path when branch-mode transfer fails before merge runs", async () => {
1176
+ mockAgents();
1177
+ mockIsolationContext();
1178
+ vi.spyOn(isolationRunner, "runIsolatedSubprocess").mockImplementation(async opts =>
1179
+ singleResult(opts.baseOptions, {
1180
+ output: "ran",
1181
+ patchPath: `/artifacts/${opts.agentId}.patch`,
1182
+ error: "Merge failed: remote: garbage at end of loose object '4de7bad'",
1183
+ }),
1184
+ );
1185
+ const mergeSpy = vi.spyOn(isolationRunner, "mergeIsolatedChanges");
1186
+
1187
+ const session = isolatedSession({ "task.isolation.merge": "branch" });
1188
+ await expect(runEvalAgent({ prompt: "scout", isolated: true }, { session })).rejects.toThrow(
1189
+ /Merge failed.*garbage at end of loose object.*Captured patch preserved at \/artifacts\//s,
1190
+ );
1191
+ expect(mergeSpy).not.toHaveBeenCalled();
1192
+ });
1193
+
1175
1194
  it("throws on apply failure for non-schema callers too instead of burying the warning in text", async () => {
1176
1195
  mockAgents();
1177
1196
  mockIsolationContext();
@@ -23,7 +23,18 @@ function goalState(extra: Partial<GoalModeState["goal"]>): GoalModeState {
23
23
  }
24
24
 
25
25
  function usage(output: number): UsageStatistics {
26
- return { input: 0, output, cacheRead: 0, cacheWrite: 0, premiumRequests: 0, cost: 0 };
26
+ return {
27
+ input: 0,
28
+ output,
29
+ cacheRead: 0,
30
+ cacheWrite: 0,
31
+ totalTokens: output,
32
+ orchestrationInput: 0,
33
+ orchestrationOutput: 0,
34
+ orchestrationCacheRead: 0,
35
+ premiumRequests: 0,
36
+ cost: 0,
37
+ };
27
38
  }
28
39
 
29
40
  describe("runEvalBudget", () => {
@@ -240,6 +240,25 @@ async function persistNestedPatches(
240
240
  return written;
241
241
  }
242
242
 
243
+ /**
244
+ * Assemble the "captured X preserved at Y" recovery hint appended to
245
+ * isolated-run failure messages. Persists nested-repo patches to
246
+ * `artifactsDir` when present so their paths can be surfaced. Returns an
247
+ * empty string when the result carries no salvageable artifacts.
248
+ */
249
+ async function buildIsolationRecoveryHint(result: SingleResult, artifactsDir: string): Promise<string> {
250
+ const parts: string[] = [];
251
+ if (result.patchPath) parts.push(`Captured patch preserved at ${result.patchPath}.`);
252
+ if (result.branchName) parts.push(`Captured branch preserved as ${result.branchName}.`);
253
+ if (result.nestedPatches?.length) {
254
+ const nestedPaths = await persistNestedPatches(artifactsDir, result.id, result.nestedPatches);
255
+ parts.push(
256
+ `Captured nested repository patches (${result.nestedPatches.length}) preserved at: ${nestedPaths.join(", ")}.`,
257
+ );
258
+ }
259
+ return parts.length > 0 ? ` ${parts.join(" ")}` : "";
260
+ }
261
+
243
262
  function plainIsolationSummary(summary: string): string {
244
263
  return summary.replace(/<\/?system-notification>/g, "").trim();
245
264
  }
@@ -481,7 +500,9 @@ export async function runEvalAgent(args: unknown, options: EvalAgentBridgeOption
481
500
  })();
482
501
 
483
502
  if (result.exitCode !== 0 || result.error || result.aborted) {
484
- throw new ToolError(buildSubagentFailureMessage(agentName, result));
503
+ const failureMessage = buildSubagentFailureMessage(agentName, result);
504
+ const recoveryHint = isIsolated ? await buildIsolationRecoveryHint(result, artifactsDir) : "";
505
+ throw new ToolError(`${failureMessage}${recoveryHint}`);
485
506
  }
486
507
 
487
508
  let mergeSummary = "";
@@ -497,16 +518,7 @@ export async function runEvalAgent(args: unknown, options: EvalAgentBridgeOption
497
518
  changesApplied = outcome.changesApplied;
498
519
  if (outcome.changesApplied === false) {
499
520
  const summaryText = outcome.summary.trim();
500
- const recoveryParts: string[] = [];
501
- if (result.patchPath) recoveryParts.push(`Captured patch preserved at ${result.patchPath}.`);
502
- if (result.branchName) recoveryParts.push(`Captured branch preserved as ${result.branchName}.`);
503
- if (result.nestedPatches?.length) {
504
- const nestedPaths = await persistNestedPatches(artifactsDir, result.id, result.nestedPatches);
505
- recoveryParts.push(
506
- `Captured nested repository patches (${result.nestedPatches.length}) preserved at: ${nestedPaths.join(", ")}.`,
507
- );
508
- }
509
- const recoveryHint = recoveryParts.length > 0 ? ` ${recoveryParts.join(" ")}` : "";
521
+ const recoveryHint = await buildIsolationRecoveryHint(result, artifactsDir);
510
522
  throw new ToolError(
511
523
  `agent() isolated apply failed for ${result.id}${summaryText ? `: ${summaryText}` : ""}${recoveryHint}`,
512
524
  );
@@ -522,14 +534,10 @@ export async function runEvalAgent(args: unknown, options: EvalAgentBridgeOption
522
534
  });
523
535
  mergeSummary += nestedSummary;
524
536
  if (structured && nestedSummary.trim()) {
525
- const recoveryParts: string[] = [];
526
- if (result.nestedPatches?.length) {
527
- const nestedPaths = await persistNestedPatches(artifactsDir, result.id, result.nestedPatches);
528
- recoveryParts.push(
529
- `Captured nested repository patches (${result.nestedPatches.length}) preserved at: ${nestedPaths.join(", ")}.`,
530
- );
531
- }
532
- const recoveryHint = recoveryParts.length > 0 ? ` ${recoveryParts.join(" ")}` : "";
537
+ const recoveryHint = await buildIsolationRecoveryHint(
538
+ { ...result, patchPath: undefined, branchName: undefined },
539
+ artifactsDir,
540
+ );
533
541
  throw new ToolError(
534
542
  `agent() isolated nested patch apply failed for ${result.id}: ${plainIsolationSummary(nestedSummary)}${recoveryHint}`,
535
543
  );
@@ -509,11 +509,14 @@ function wrapBunWorker(worker: Worker): WorkerHandle {
509
509
  const onError = (event: ErrorEvent): void => handler(errorFromWorkerEvent(event));
510
510
  const onMessageError = (event: MessageEvent): void =>
511
511
  handler(new ToolError(`JS eval worker message error: ${String(event.data)}`));
512
+ const onClose = (): void => handler(new Error("JS eval worker exited"));
512
513
  worker.addEventListener("error", onError);
513
514
  worker.addEventListener("messageerror", onMessageError);
515
+ worker.addEventListener("close", onClose);
514
516
  return () => {
515
517
  worker.removeEventListener("error", onError);
516
518
  worker.removeEventListener("messageerror", onMessageError);
519
+ worker.removeEventListener("close", onClose);
517
520
  };
518
521
  },
519
522
  async close() {
@@ -77,6 +77,8 @@ export class TtsrManager {
77
77
  /** Last snapshot evaluated for AST conditions, keyed by stream key, to dedupe matcher runs. */
78
78
  readonly #lastAstSnapshots = new Map<string, string>();
79
79
  #messageCount = 0;
80
+ #canMatchText = false;
81
+ #canMatchThinking = false;
80
82
 
81
83
  constructor(settings?: TtsrSettings) {
82
84
  this.#settings = { ...DEFAULT_SETTINGS, ...settings };
@@ -329,6 +331,8 @@ export class TtsrManager {
329
331
  scope,
330
332
  globalPathGlobs,
331
333
  });
334
+ if (scope.allowText) this.#canMatchText = true;
335
+ if (scope.allowThinking) this.#canMatchThinking = true;
332
336
 
333
337
  logger.debug("TTSR rule registered", {
334
338
  ruleName: rule.name,
@@ -348,6 +352,12 @@ export class TtsrManager {
348
352
  * assistant prose, thinking text, and unrelated tool argument streams.
349
353
  */
350
354
  checkDelta(delta: string, context: TtsrMatchContext): Rule[] {
355
+ if (context.source === "text" && !this.#canMatchText) {
356
+ return [];
357
+ }
358
+ if (context.source === "thinking" && !this.#canMatchThinking) {
359
+ return [];
360
+ }
351
361
  const bufferKey = this.#bufferKey(context);
352
362
  const nextBuffer = `${this.#buffers.get(bufferKey) ?? ""}${delta}`;
353
363
  this.#buffers.set(bufferKey, nextBuffer);
@@ -18,7 +18,7 @@ import type { ExecOptions } from "../../exec/exec";
18
18
  import { execCommand } from "../../exec/exec";
19
19
  // Runtime self-reference: dereference this namespace only inside loader functions to keep the index.ts cycle safe.
20
20
  import * as PiCodingAgent from "../../index";
21
- import type { CustomMessage } from "../../session/messages";
21
+ import type { CustomMessagePayload } from "../../session/messages";
22
22
  import { EventBus } from "../../utils/event-bus";
23
23
  import { installLegacyPiSpecifierShim, loadLegacyPiModule } from "../plugins/legacy-pi-compat";
24
24
  import { getAllPluginExtensionPaths } from "../plugins/loader";
@@ -203,7 +203,7 @@ class ConcreteExtensionAPI implements ExtensionAPI, IExtensionRuntime {
203
203
  }
204
204
 
205
205
  sendMessage<T = unknown>(
206
- message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details" | "attribution">,
206
+ message: CustomMessagePayload<T>,
207
207
  options?: { triggerTurn?: boolean; deliverAs?: "steer" | "followUp" | "nextTurn" },
208
208
  ): void {
209
209
  this.runtime.sendMessage(message, options);
@@ -45,7 +45,7 @@ import type { MemoryRuntimeContext } from "../../memory-backend";
45
45
  import type { CustomEditor } from "../../modes/components/custom-editor";
46
46
  import type { Theme } from "../../modes/theme/theme";
47
47
  import type { CompactMode } from "../../session/compact-modes";
48
- import type { CustomMessage } from "../../session/messages";
48
+ import type { CustomMessage, CustomMessagePayload } from "../../session/messages";
49
49
  import type { ReadonlySessionManager, SessionManager } from "../../session/session-manager";
50
50
  import type {
51
51
  BashToolDetails,
@@ -294,6 +294,18 @@ export interface CompactOptions {
294
294
  * subcommands: `soft` | `remote` | `snapcompact`). Omitted = configured behavior.
295
295
  */
296
296
  mode?: CompactMode;
297
+ /**
298
+ * Internal summarizer guidance — piped only to native summarization, never
299
+ * exposed as `customInstructions` on the `session_before_compact` extension
300
+ * hook. Used by plan-mode "Approve and compact context" so extensions that
301
+ * treat `customInstructions` as user focus don't mistake plan-mode
302
+ * boilerplate for the operator's intent (issue #4359).
303
+ *
304
+ * When both `customInstructions` and `internalGuidance` are set, the
305
+ * summarizer uses `internalGuidance`; the hook still sees only the public
306
+ * `customInstructions`.
307
+ */
308
+ internalGuidance?: string;
297
309
  }
298
310
 
299
311
  /**
@@ -881,7 +893,7 @@ export interface UserPythonEventResult {
881
893
  export type { ToolResultEventResult } from "../shared-events";
882
894
 
883
895
  export interface BeforeAgentStartEventResult {
884
- message?: Pick<CustomMessage, "customType" | "content" | "display" | "details" | "attribution">;
896
+ message?: CustomMessagePayload;
885
897
  /** Replace the system prompt for this turn. If multiple extensions return this, they are chained. */
886
898
  systemPrompt?: string[];
887
899
  }
@@ -1091,7 +1103,7 @@ export interface ExtensionAPI {
1091
1103
  * an internal continuation that consumes the message on the next turn.
1092
1104
  */
1093
1105
  sendMessage<T = unknown>(
1094
- message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details" | "attribution">,
1106
+ message: CustomMessagePayload<T>,
1095
1107
  options?: { triggerTurn?: boolean; deliverAs?: "steer" | "followUp" | "nextTurn" },
1096
1108
  ): void;
1097
1109
 
@@ -1277,7 +1289,7 @@ export interface ExtensionShortcut {
1277
1289
  type HandlerFn = (...args: unknown[]) => Promise<unknown>;
1278
1290
 
1279
1291
  export type SendMessageHandler = <T = unknown>(
1280
- message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details" | "attribution">,
1292
+ message: CustomMessagePayload<T>,
1281
1293
  /**
1282
1294
  * `deliverAs: "nextTurn"` queues hidden custom context for the next turn.
1283
1295
  * When paired with `triggerTurn: true` during prompt teardown, the session schedules
@@ -10,7 +10,7 @@ import type { Hook } from "../../discovery";
10
10
  import { loadCapability } from "../../discovery";
11
11
  // Runtime self-reference: dereference this namespace only inside loader functions to keep the index.ts cycle safe.
12
12
  import * as PiCodingAgent from "../../index";
13
- import type { HookMessage } from "../../session/messages";
13
+ import type { CustomMessagePayload } from "../../session/messages";
14
14
  import * as typebox from "../typebox";
15
15
  import { resolvePath, withExitGuard } from "../utils";
16
16
  import { execCommand } from "./runner";
@@ -25,7 +25,7 @@ type HandlerFn = (...args: unknown[]) => Promise<unknown>;
25
25
  * Send message handler type for pi.sendMessage().
26
26
  */
27
27
  export type SendMessageHandler = <T = unknown>(
28
- message: Pick<HookMessage<T>, "customType" | "content" | "display" | "details" | "attribution">,
28
+ message: CustomMessagePayload<T>,
29
29
  options?: { triggerTurn?: boolean; deliverAs?: "steer" | "followUp" },
30
30
  ) => void;
31
31
 
@@ -97,7 +97,7 @@ async function createHookAPI(
97
97
  handlers.get(event)!.push(handler);
98
98
  },
99
99
  sendMessage<T = unknown>(
100
- message: HookMessage<T>,
100
+ message: CustomMessagePayload<T>,
101
101
  options?: { triggerTurn?: boolean; deliverAs?: "steer" | "followUp" },
102
102
  ): void {
103
103
  if (!sendMessageHandler) {
@@ -8,7 +8,7 @@ import type { EditToolDetails } from "../../edit";
8
8
  import type { ExecOptions, ExecResult } from "../../exec/exec";
9
9
  import type * as PiCodingAgent from "../../index";
10
10
  import type { Theme } from "../../modes/theme/theme";
11
- import type { HookMessage } from "../../session/messages";
11
+ import type { CustomMessagePayload, HookMessage } from "../../session/messages";
12
12
  import type { ReadonlySessionManager, SessionManager } from "../../session/session-manager";
13
13
  import type { BashToolDetails, GlobToolDetails, GrepToolDetails, ReadToolDetails } from "../../tools";
14
14
  import type {
@@ -425,7 +425,7 @@ export type { ToolCallEventResult, ToolResultEventResult } from "../shared-event
425
425
  */
426
426
  export interface BeforeAgentStartEventResult {
427
427
  /** Message to inject into context (persisted to session, visible in TUI) */
428
- message?: Pick<HookMessage, "customType" | "content" | "display" | "details" | "attribution">;
428
+ message?: CustomMessagePayload;
429
429
  }
430
430
 
431
431
  export type {
@@ -519,7 +519,7 @@ export interface HookAPI {
519
519
  * Use this when you want the LLM to see the message content.
520
520
  * For hook state that should NOT be sent to the LLM, use appendEntry() instead.
521
521
  *
522
- * @param message - The message to send
522
+ * @param message - The message object to send, or a string shorthand for visible message content
523
523
  * @param message.customType - Identifier for your hook (used for filtering on reload)
524
524
  * @param message.content - Message content (string or TextContent/ImageContent array)
525
525
  * @param message.display - Whether to show in TUI (true = styled display, false = hidden)
@@ -530,7 +530,7 @@ export interface HookAPI {
530
530
  * @param options.deliverAs - How to deliver the message: "steer" or "followUp".
531
531
  */
532
532
  sendMessage<T = unknown>(
533
- message: Pick<HookMessage<T>, "customType" | "content" | "display" | "details" | "attribution">,
533
+ message: CustomMessagePayload<T>,
534
534
  options?: { triggerTurn?: boolean; deliverAs?: "steer" | "followUp" },
535
535
  ): void;
536
536
 
@@ -19,7 +19,13 @@
19
19
  * `types.ts` via the `export *` below — pi-ai still exports both as types,
20
20
  * only the runtime `Type` builder and `StringEnum()` helper were removed.
21
21
  */
22
- import { getBundledModel, getBundledModels } from "@oh-my-pi/pi-catalog/models";
22
+ import {
23
+ calculateCost,
24
+ getBundledModel,
25
+ getBundledModels,
26
+ getBundledProviders,
27
+ modelsAreEqual,
28
+ } from "@oh-my-pi/pi-catalog/models";
23
29
  import { type TSchema, Type } from "./typebox";
24
30
 
25
31
  export interface StringEnumOptions<T extends string> {
@@ -66,8 +72,15 @@ export function StringEnum<T extends string | number>(
66
72
  }
67
73
 
68
74
  export * from "@oh-my-pi/pi-ai";
69
- export { Type };
70
-
71
- /** Compatibility aliases for renamed catalog functions */
75
+ /**
76
+ * Compatibility re-exports for catalog symbols that pi-ai historically exposed
77
+ * from its own barrel prior to the `refactor(catalog)!: split model catalog
78
+ * from pi-ai` change. Legacy extensions still import these from the pi-ai
79
+ * root, so the shim bridges them through to their new home in
80
+ * `@oh-my-pi/pi-catalog/models`. `getModel`/`getModels` are the historical
81
+ * pi-ai names for `getBundledModel`/`getBundledModels`; the remaining symbols
82
+ * kept their names across the move.
83
+ */
84
+ export { calculateCost, getBundledModel, getBundledModels, getBundledProviders, modelsAreEqual, Type };
72
85
  export const getModel = getBundledModel;
73
86
  export const getModels = getBundledModels;