@oh-my-pi/pi-coding-agent 15.1.1 → 15.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (844) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/types/async/index.d.ts +2 -0
  3. package/dist/types/async/job-manager.d.ts +87 -0
  4. package/dist/types/async/support.d.ts +2 -0
  5. package/dist/types/autoresearch/dashboard.d.ts +4 -0
  6. package/dist/types/autoresearch/git.d.ts +36 -0
  7. package/dist/types/autoresearch/helpers.d.ts +24 -0
  8. package/dist/types/autoresearch/index.d.ts +2 -0
  9. package/dist/types/autoresearch/state.d.ts +17 -0
  10. package/dist/types/autoresearch/storage.d.ts +142 -0
  11. package/dist/types/autoresearch/tools/init-experiment.d.ts +31 -0
  12. package/dist/types/autoresearch/tools/log-experiment.d.ts +23 -0
  13. package/dist/types/autoresearch/tools/run-experiment.d.ts +8 -0
  14. package/dist/types/autoresearch/tools/update-notes.d.ts +12 -0
  15. package/dist/types/autoresearch/types.d.ts +154 -0
  16. package/dist/types/capability/context-file.d.ts +17 -0
  17. package/dist/types/capability/extension-module.d.ts +15 -0
  18. package/dist/types/capability/extension.d.ts +28 -0
  19. package/dist/types/capability/fs.d.ts +20 -0
  20. package/dist/types/capability/hook.d.ts +19 -0
  21. package/dist/types/capability/index.d.ts +80 -0
  22. package/dist/types/capability/instruction.d.ts +17 -0
  23. package/dist/types/capability/mcp.d.ts +45 -0
  24. package/dist/types/capability/prompt.d.ts +15 -0
  25. package/dist/types/capability/rule.d.ts +61 -0
  26. package/dist/types/capability/settings.d.ts +15 -0
  27. package/dist/types/capability/skill.d.ts +36 -0
  28. package/dist/types/capability/slash-command.d.ts +17 -0
  29. package/dist/types/capability/ssh.d.ts +23 -0
  30. package/dist/types/capability/system-prompt.d.ts +15 -0
  31. package/dist/types/capability/tool.d.ts +19 -0
  32. package/dist/types/capability/types.d.ts +154 -0
  33. package/dist/types/cli/agents-cli.d.ts +12 -0
  34. package/dist/types/cli/args.d.ts +52 -0
  35. package/dist/types/cli/auth-broker-cli.d.ts +25 -0
  36. package/dist/types/cli/auth-gateway-cli.d.ts +18 -0
  37. package/dist/types/cli/classify-install-target.d.ts +18 -0
  38. package/dist/types/cli/commands/init-xdg.d.ts +1 -0
  39. package/dist/types/cli/config-cli.d.ts +22 -0
  40. package/dist/types/cli/file-processor.d.ts +11 -0
  41. package/dist/types/cli/grep-cli.d.ts +17 -0
  42. package/dist/types/cli/grievances-cli.d.ts +37 -0
  43. package/dist/types/cli/initial-message.d.ts +17 -0
  44. package/dist/types/cli/list-models.d.ts +30 -0
  45. package/dist/types/cli/plugin-cli.d.ts +32 -0
  46. package/dist/types/cli/read-cli.d.ts +4 -0
  47. package/dist/types/cli/session-picker.d.ts +3 -0
  48. package/dist/types/cli/setup-cli.d.ts +24 -0
  49. package/dist/types/cli/shell-cli.d.ts +8 -0
  50. package/dist/types/cli/ssh-cli.d.ts +21 -0
  51. package/dist/types/cli/stats-cli.d.ts +17 -0
  52. package/dist/types/cli/update-cli.d.ts +20 -0
  53. package/dist/types/cli/web-search-cli.d.ts +20 -0
  54. package/dist/types/cli.d.ts +3 -0
  55. package/dist/types/commands/acp.d.ts +12 -0
  56. package/dist/types/commands/agents.d.ts +34 -0
  57. package/dist/types/commands/auth-broker.d.ts +54 -0
  58. package/dist/types/commands/auth-gateway.d.ts +32 -0
  59. package/dist/types/commands/commit.d.ts +27 -0
  60. package/dist/types/commands/config.d.ts +30 -0
  61. package/dist/types/commands/grep.d.ts +42 -0
  62. package/dist/types/commands/grievances.d.ts +40 -0
  63. package/dist/types/commands/launch.d.ts +118 -0
  64. package/dist/types/commands/plugin.d.ts +52 -0
  65. package/dist/types/commands/read.d.ts +15 -0
  66. package/dist/types/commands/setup.d.ts +25 -0
  67. package/dist/types/commands/shell.d.ts +21 -0
  68. package/dist/types/commands/ssh.d.ts +48 -0
  69. package/dist/types/commands/stats.d.ts +25 -0
  70. package/dist/types/commands/update.d.ts +20 -0
  71. package/dist/types/commands/web-search.d.ts +33 -0
  72. package/dist/types/commit/agentic/agent.d.ts +31 -0
  73. package/dist/types/commit/agentic/fallback.d.ts +5 -0
  74. package/dist/types/commit/agentic/index.d.ts +2 -0
  75. package/dist/types/commit/agentic/state.d.ts +58 -0
  76. package/dist/types/commit/agentic/tools/analyze-file.d.ts +19 -0
  77. package/dist/types/commit/agentic/tools/git-file-diff.d.ts +10 -0
  78. package/dist/types/commit/agentic/tools/git-hunk.d.ts +9 -0
  79. package/dist/types/commit/agentic/tools/git-overview.d.ts +9 -0
  80. package/dist/types/commit/agentic/tools/index.d.ts +16 -0
  81. package/dist/types/commit/agentic/tools/propose-changelog.d.ts +28 -0
  82. package/dist/types/commit/agentic/tools/propose-commit.d.ts +36 -0
  83. package/dist/types/commit/agentic/tools/recent-commits.d.ts +7 -0
  84. package/dist/types/commit/agentic/tools/schemas.d.ts +27 -0
  85. package/dist/types/commit/agentic/tools/split-commit.d.ts +53 -0
  86. package/dist/types/commit/agentic/topo-sort.d.ts +4 -0
  87. package/dist/types/commit/agentic/trivial.d.ts +7 -0
  88. package/dist/types/commit/agentic/validation.d.ts +20 -0
  89. package/dist/types/commit/analysis/conventional.d.ts +22 -0
  90. package/dist/types/commit/analysis/index.d.ts +4 -0
  91. package/dist/types/commit/analysis/scope.d.ts +6 -0
  92. package/dist/types/commit/analysis/summary.d.ts +19 -0
  93. package/dist/types/commit/analysis/validation.d.ts +8 -0
  94. package/dist/types/commit/changelog/detect.d.ts +2 -0
  95. package/dist/types/commit/changelog/generate.d.ts +30 -0
  96. package/dist/types/commit/changelog/index.d.ts +30 -0
  97. package/dist/types/commit/changelog/parse.d.ts +2 -0
  98. package/dist/types/commit/cli.d.ts +3 -0
  99. package/dist/types/commit/git/diff.d.ts +5 -0
  100. package/dist/types/commit/index.d.ts +4 -0
  101. package/dist/types/commit/map-reduce/index.d.ts +28 -0
  102. package/dist/types/commit/map-reduce/map-phase.d.ts +17 -0
  103. package/dist/types/commit/map-reduce/reduce-phase.d.ts +13 -0
  104. package/dist/types/commit/map-reduce/utils.d.ts +2 -0
  105. package/dist/types/commit/message.d.ts +2 -0
  106. package/dist/types/commit/model-selection.d.ts +15 -0
  107. package/dist/types/commit/pipeline.d.ts +5 -0
  108. package/dist/types/commit/shared-llm.d.ts +54 -0
  109. package/dist/types/commit/types.d.ts +78 -0
  110. package/dist/types/commit/utils/exclusions.d.ts +4 -0
  111. package/dist/types/commit/utils.d.ts +20 -0
  112. package/dist/types/config/config-file.d.ts +58 -0
  113. package/dist/types/config/file-lock.d.ts +6 -0
  114. package/dist/types/config/keybindings.d.ts +334 -0
  115. package/dist/types/config/model-equivalence.d.ts +24 -0
  116. package/dist/types/config/model-registry.d.ts +363 -0
  117. package/dist/types/config/model-resolver.d.ts +230 -0
  118. package/dist/types/config/models-config-schema.d.ts +503 -0
  119. package/dist/types/config/prompt-templates.d.ts +32 -0
  120. package/dist/types/config/resolve-config-value.d.ts +17 -0
  121. package/dist/types/config/settings-schema.d.ts +3361 -0
  122. package/dist/types/config/settings.d.ts +126 -0
  123. package/dist/types/config.d.ts +66 -0
  124. package/dist/types/cursor.d.ts +22 -0
  125. package/dist/types/dap/client.d.ts +38 -0
  126. package/dist/types/dap/config.d.ts +6 -0
  127. package/dist/types/dap/index.d.ts +4 -0
  128. package/dist/types/dap/session.d.ts +108 -0
  129. package/dist/types/dap/types.d.ts +524 -0
  130. package/dist/types/debug/index.d.ts +15 -0
  131. package/dist/types/debug/log-formatting.d.ts +4 -0
  132. package/dist/types/debug/log-viewer.d.ts +68 -0
  133. package/dist/types/debug/profiler.d.ts +24 -0
  134. package/dist/types/debug/raw-sse-buffer.d.ts +44 -0
  135. package/dist/types/debug/raw-sse.d.ts +16 -0
  136. package/dist/types/debug/report-bundle.d.ts +55 -0
  137. package/dist/types/debug/system-info.d.ts +26 -0
  138. package/dist/types/discovery/agents-md.d.ts +1 -0
  139. package/dist/types/discovery/agents.d.ts +12 -0
  140. package/dist/types/discovery/builtin.d.ts +1 -0
  141. package/dist/types/discovery/claude-plugins.d.ts +1 -0
  142. package/dist/types/discovery/claude.d.ts +1 -0
  143. package/dist/types/discovery/cline.d.ts +1 -0
  144. package/dist/types/discovery/codex.d.ts +1 -0
  145. package/dist/types/discovery/cursor.d.ts +16 -0
  146. package/dist/types/discovery/gemini.d.ts +1 -0
  147. package/dist/types/discovery/github.d.ts +1 -0
  148. package/dist/types/discovery/helpers.d.ts +267 -0
  149. package/dist/types/discovery/index.d.ts +51 -0
  150. package/dist/types/discovery/mcp-json.d.ts +1 -0
  151. package/dist/types/discovery/opencode.d.ts +1 -0
  152. package/dist/types/discovery/plugin-dir-roots.d.ts +15 -0
  153. package/dist/types/discovery/ssh.d.ts +1 -0
  154. package/dist/types/discovery/substitute-plugin-root.d.ts +5 -0
  155. package/dist/types/discovery/vscode.d.ts +1 -0
  156. package/dist/types/discovery/windsurf.d.ts +13 -0
  157. package/dist/types/edit/apply-patch/index.d.ts +35 -0
  158. package/dist/types/edit/apply-patch/parser.d.ts +34 -0
  159. package/dist/types/edit/diff.d.ts +59 -0
  160. package/dist/types/edit/file-read-cache.d.ts +25 -0
  161. package/dist/types/edit/index.d.ts +58 -0
  162. package/dist/types/edit/modes/apply-patch.d.ts +24 -0
  163. package/dist/types/edit/modes/patch.d.ts +99 -0
  164. package/dist/types/edit/modes/replace.d.ts +142 -0
  165. package/dist/types/edit/normalize.d.ts +43 -0
  166. package/dist/types/edit/notebook.d.ts +23 -0
  167. package/dist/types/edit/read-file.d.ts +2 -0
  168. package/dist/types/edit/renderer.d.ts +110 -0
  169. package/dist/types/edit/streaming.d.ts +59 -0
  170. package/dist/types/eval/backend.d.ts +40 -0
  171. package/dist/types/eval/index.d.ts +4 -0
  172. package/dist/types/eval/js/context-manager.d.ts +24 -0
  173. package/dist/types/eval/js/executor.d.ts +28 -0
  174. package/dist/types/eval/js/index.d.ts +10 -0
  175. package/dist/types/eval/js/shared/helpers.d.ts +38 -0
  176. package/dist/types/eval/js/shared/indirect-eval.d.ts +14 -0
  177. package/dist/types/eval/js/shared/prelude.d.ts +1 -0
  178. package/dist/types/eval/js/shared/rewrite-imports.d.ts +6 -0
  179. package/dist/types/eval/js/shared/runtime.d.ts +47 -0
  180. package/dist/types/eval/js/shared/types.d.ts +24 -0
  181. package/dist/types/eval/js/tool-bridge.d.ts +18 -0
  182. package/dist/types/eval/js/worker-core.d.ts +5 -0
  183. package/dist/types/eval/js/worker-entry.d.ts +1 -0
  184. package/dist/types/eval/js/worker-protocol.d.ts +77 -0
  185. package/dist/types/eval/py/display.d.ts +25 -0
  186. package/dist/types/eval/py/executor.d.ts +83 -0
  187. package/dist/types/eval/py/index.d.ts +10 -0
  188. package/dist/types/eval/py/kernel.d.ts +55 -0
  189. package/dist/types/eval/py/prelude.d.ts +1 -0
  190. package/dist/types/eval/py/runtime.d.ts +21 -0
  191. package/dist/types/eval/py/tool-bridge.d.ts +20 -0
  192. package/dist/types/eval/types.d.ts +52 -0
  193. package/dist/types/exa/factory.d.ts +13 -0
  194. package/dist/types/exa/index.d.ts +20 -0
  195. package/dist/types/exa/mcp-client.d.ts +45 -0
  196. package/dist/types/exa/render.d.ts +19 -0
  197. package/dist/types/exa/researcher.d.ts +9 -0
  198. package/dist/types/exa/search.d.ts +9 -0
  199. package/dist/types/exa/types.d.ts +155 -0
  200. package/dist/types/exa/websets.d.ts +9 -0
  201. package/dist/types/exec/bash-executor.d.ts +41 -0
  202. package/dist/types/exec/exec.d.ts +25 -0
  203. package/dist/types/exec/idle-timeout-watchdog.d.ts +18 -0
  204. package/dist/types/exec/non-interactive-env.d.ts +1 -0
  205. package/dist/types/export/custom-share.d.ts +20 -0
  206. package/dist/types/export/html/index.d.ts +10 -0
  207. package/dist/types/export/html/template.generated.d.ts +1 -0
  208. package/dist/types/export/html/template.macro.d.ts +5 -0
  209. package/dist/types/export/ttsr.d.ts +44 -0
  210. package/dist/types/extensibility/custom-commands/bundled/ci-green/index.d.ts +9 -0
  211. package/dist/types/extensibility/custom-commands/bundled/review/index.d.ts +10 -0
  212. package/dist/types/extensibility/custom-commands/index.d.ts +2 -0
  213. package/dist/types/extensibility/custom-commands/loader.d.ts +29 -0
  214. package/dist/types/extensibility/custom-commands/types.d.ts +106 -0
  215. package/dist/types/extensibility/custom-tools/index.d.ts +6 -0
  216. package/dist/types/extensibility/custom-tools/loader.d.ts +69 -0
  217. package/dist/types/extensibility/custom-tools/types.d.ts +226 -0
  218. package/dist/types/extensibility/custom-tools/wrapper.d.ts +23 -0
  219. package/dist/types/extensibility/extensions/compact-handler.d.ts +26 -0
  220. package/dist/types/extensibility/extensions/get-commands-handler.d.ts +29 -0
  221. package/dist/types/extensibility/extensions/index.d.ts +8 -0
  222. package/dist/types/extensibility/extensions/loader.d.ts +43 -0
  223. package/dist/types/extensibility/extensions/runner.d.ts +134 -0
  224. package/dist/types/extensibility/extensions/types.d.ts +864 -0
  225. package/dist/types/extensibility/extensions/wrapper.d.ts +54 -0
  226. package/dist/types/extensibility/hooks/index.d.ts +5 -0
  227. package/dist/types/extensibility/hooks/loader.d.ts +89 -0
  228. package/dist/types/extensibility/hooks/runner.d.ts +126 -0
  229. package/dist/types/extensibility/hooks/tool-wrapper.d.ts +25 -0
  230. package/dist/types/extensibility/hooks/types.d.ts +431 -0
  231. package/dist/types/extensibility/plugins/doctor.d.ts +3 -0
  232. package/dist/types/extensibility/plugins/git-url.d.ts +34 -0
  233. package/dist/types/extensibility/plugins/index.d.ts +7 -0
  234. package/dist/types/extensibility/plugins/installer.d.ts +5 -0
  235. package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +2 -0
  236. package/dist/types/extensibility/plugins/loader.d.ts +31 -0
  237. package/dist/types/extensibility/plugins/manager.d.ts +65 -0
  238. package/dist/types/extensibility/plugins/marketplace/cache.d.ts +41 -0
  239. package/dist/types/extensibility/plugins/marketplace/fetcher.d.ts +48 -0
  240. package/dist/types/extensibility/plugins/marketplace/index.d.ts +6 -0
  241. package/dist/types/extensibility/plugins/marketplace/manager.d.ts +57 -0
  242. package/dist/types/extensibility/plugins/marketplace/registry.d.ts +34 -0
  243. package/dist/types/extensibility/plugins/marketplace/source-resolver.d.ts +28 -0
  244. package/dist/types/extensibility/plugins/marketplace/types.d.ts +130 -0
  245. package/dist/types/extensibility/plugins/parser.d.ts +52 -0
  246. package/dist/types/extensibility/plugins/types.d.ts +149 -0
  247. package/dist/types/extensibility/shared-events.d.ts +279 -0
  248. package/dist/types/extensibility/skills.d.ts +57 -0
  249. package/dist/types/extensibility/slash-commands.d.ts +48 -0
  250. package/dist/types/extensibility/tool-proxy.d.ts +4 -0
  251. package/dist/types/extensibility/typebox.d.ts +155 -0
  252. package/dist/types/extensibility/utils.d.ts +12 -0
  253. package/dist/types/goals/index.d.ts +3 -0
  254. package/dist/types/goals/runtime.d.ts +63 -0
  255. package/dist/types/goals/state.d.ts +35 -0
  256. package/dist/types/goals/tools/goal-tool.d.ts +62 -0
  257. package/dist/types/hashline/anchors.d.ts +20 -0
  258. package/dist/types/hashline/apply.d.ts +14 -0
  259. package/dist/types/hashline/constants.d.ts +21 -0
  260. package/dist/types/hashline/diff-preview.d.ts +2 -0
  261. package/dist/types/hashline/diff.d.ts +17 -0
  262. package/dist/types/hashline/execute.d.ts +4 -0
  263. package/dist/types/hashline/hash.d.ts +149 -0
  264. package/dist/types/hashline/index.d.ts +13 -0
  265. package/dist/types/hashline/input.d.ts +11 -0
  266. package/dist/types/hashline/parser.d.ts +7 -0
  267. package/dist/types/hashline/prefixes.d.ts +7 -0
  268. package/dist/types/hashline/recovery.d.ts +22 -0
  269. package/dist/types/hashline/stream.d.ts +2 -0
  270. package/dist/types/hashline/types.d.ts +77 -0
  271. package/dist/types/hindsight/backend.d.ts +13 -0
  272. package/dist/types/hindsight/bank.d.ts +54 -0
  273. package/dist/types/hindsight/client.d.ts +224 -0
  274. package/dist/types/hindsight/config.d.ts +51 -0
  275. package/dist/types/hindsight/content.d.ts +70 -0
  276. package/dist/types/hindsight/index.d.ts +8 -0
  277. package/dist/types/hindsight/mental-models.d.ts +125 -0
  278. package/dist/types/hindsight/state.d.ts +99 -0
  279. package/dist/types/hindsight/transcript.d.ts +28 -0
  280. package/dist/types/index.d.ts +33 -0
  281. package/dist/types/internal-urls/agent-protocol.d.ts +12 -0
  282. package/dist/types/internal-urls/artifact-protocol.d.ts +6 -0
  283. package/dist/types/internal-urls/docs-index.generated.d.ts +2 -0
  284. package/dist/types/internal-urls/index.d.ts +22 -0
  285. package/dist/types/internal-urls/issue-pr-protocol.d.ts +17 -0
  286. package/dist/types/internal-urls/json-query.d.ts +30 -0
  287. package/dist/types/internal-urls/local-protocol.d.ts +39 -0
  288. package/dist/types/internal-urls/mcp-protocol.d.ts +12 -0
  289. package/dist/types/internal-urls/memory-protocol.d.ts +17 -0
  290. package/dist/types/internal-urls/omp-protocol.d.ts +12 -0
  291. package/dist/types/internal-urls/parse.d.ts +19 -0
  292. package/dist/types/internal-urls/registry-helpers.d.ts +10 -0
  293. package/dist/types/internal-urls/router.d.ts +14 -0
  294. package/dist/types/internal-urls/rule-protocol.d.ts +6 -0
  295. package/dist/types/internal-urls/skill-protocol.d.ts +13 -0
  296. package/dist/types/internal-urls/types.d.ts +105 -0
  297. package/dist/types/lsp/client.d.ts +65 -0
  298. package/dist/types/lsp/clients/biome-client.d.ts +16 -0
  299. package/dist/types/lsp/clients/index.d.ts +19 -0
  300. package/dist/types/lsp/clients/lsp-linter-client.d.ts +16 -0
  301. package/dist/types/lsp/clients/swiftlint-client.d.ts +20 -0
  302. package/dist/types/lsp/config.d.ts +65 -0
  303. package/dist/types/lsp/edits.d.ts +16 -0
  304. package/dist/types/lsp/index.d.ts +130 -0
  305. package/dist/types/lsp/lspmux.d.ts +58 -0
  306. package/dist/types/lsp/render.d.ts +32 -0
  307. package/dist/types/lsp/startup-events.d.ts +11 -0
  308. package/dist/types/lsp/types.d.ts +302 -0
  309. package/dist/types/lsp/utils.d.ts +108 -0
  310. package/dist/types/main.d.ts +17 -0
  311. package/dist/types/mcp/client.d.ts +74 -0
  312. package/dist/types/mcp/config-writer.d.ts +53 -0
  313. package/dist/types/mcp/config.d.ts +75 -0
  314. package/dist/types/mcp/discoverable-tool-metadata.d.ts +7 -0
  315. package/dist/types/mcp/index.d.ts +18 -0
  316. package/dist/types/mcp/json-rpc.d.ts +22 -0
  317. package/dist/types/mcp/loader.d.ts +43 -0
  318. package/dist/types/mcp/manager.d.ts +193 -0
  319. package/dist/types/mcp/oauth-discovery.d.ts +40 -0
  320. package/dist/types/mcp/oauth-flow.d.ts +59 -0
  321. package/dist/types/mcp/render.d.ts +25 -0
  322. package/dist/types/mcp/smithery-auth.d.ts +16 -0
  323. package/dist/types/mcp/smithery-connect.d.ts +38 -0
  324. package/dist/types/mcp/smithery-registry.d.ts +51 -0
  325. package/dist/types/mcp/tool-bridge.d.ts +86 -0
  326. package/dist/types/mcp/tool-cache.d.ts +8 -0
  327. package/dist/types/mcp/transports/http.d.ts +36 -0
  328. package/dist/types/mcp/transports/index.d.ts +5 -0
  329. package/dist/types/mcp/transports/stdio.d.ts +32 -0
  330. package/dist/types/mcp/types.d.ts +333 -0
  331. package/dist/types/memories/index.d.ts +28 -0
  332. package/dist/types/memories/storage.d.ts +110 -0
  333. package/dist/types/memory-backend/index.d.ts +4 -0
  334. package/dist/types/memory-backend/local-backend.d.ts +9 -0
  335. package/dist/types/memory-backend/off-backend.d.ts +7 -0
  336. package/dist/types/memory-backend/resolve.d.ts +15 -0
  337. package/dist/types/memory-backend/types.d.ts +61 -0
  338. package/dist/types/modes/acp/acp-agent.d.ts +61 -0
  339. package/dist/types/modes/acp/acp-client-bridge.d.ts +9 -0
  340. package/dist/types/modes/acp/acp-event-mapper.d.ts +20 -0
  341. package/dist/types/modes/acp/acp-mode.d.ts +3 -0
  342. package/dist/types/modes/acp/index.d.ts +2 -0
  343. package/dist/types/modes/acp/terminal-auth.d.ts +6 -0
  344. package/dist/types/modes/components/agent-dashboard.d.ts +21 -0
  345. package/dist/types/modes/components/assistant-message.d.ts +16 -0
  346. package/dist/types/modes/components/bash-execution.d.ts +29 -0
  347. package/dist/types/modes/components/bordered-loader.d.ts +11 -0
  348. package/dist/types/modes/components/branch-summary-message.d.ts +13 -0
  349. package/dist/types/modes/components/btw-panel.d.ts +16 -0
  350. package/dist/types/modes/components/compaction-summary-message.d.ts +13 -0
  351. package/dist/types/modes/components/countdown-timer.d.ts +14 -0
  352. package/dist/types/modes/components/custom-editor.d.ts +47 -0
  353. package/dist/types/modes/components/custom-message.d.ts +15 -0
  354. package/dist/types/modes/components/diff.d.ts +11 -0
  355. package/dist/types/modes/components/dynamic-border.d.ts +14 -0
  356. package/dist/types/modes/components/eval-execution.d.ts +23 -0
  357. package/dist/types/modes/components/execution-shared.d.ts +46 -0
  358. package/dist/types/modes/components/extensions/extension-dashboard.d.ts +26 -0
  359. package/dist/types/modes/components/extensions/extension-list.d.ts +39 -0
  360. package/dist/types/modes/components/extensions/index.d.ts +8 -0
  361. package/dist/types/modes/components/extensions/inspector-panel.d.ts +8 -0
  362. package/dist/types/modes/components/extensions/state-manager.d.ts +50 -0
  363. package/dist/types/modes/components/extensions/types.d.ts +151 -0
  364. package/dist/types/modes/components/footer.d.ts +30 -0
  365. package/dist/types/modes/components/history-search.d.ts +7 -0
  366. package/dist/types/modes/components/hook-editor.d.ts +18 -0
  367. package/dist/types/modes/components/hook-input.d.ts +15 -0
  368. package/dist/types/modes/components/hook-message.d.ts +15 -0
  369. package/dist/types/modes/components/hook-selector.d.ts +23 -0
  370. package/dist/types/modes/components/index.d.ts +35 -0
  371. package/dist/types/modes/components/keybinding-hints.d.ts +40 -0
  372. package/dist/types/modes/components/login-dialog.d.ts +32 -0
  373. package/dist/types/modes/components/mcp-add-wizard.d.ts +25 -0
  374. package/dist/types/modes/components/message-frame.d.ts +42 -0
  375. package/dist/types/modes/components/model-selector.d.ts +26 -0
  376. package/dist/types/modes/components/oauth-selector.d.ts +14 -0
  377. package/dist/types/modes/components/plugin-selector.d.ts +26 -0
  378. package/dist/types/modes/components/plugin-settings.d.ts +66 -0
  379. package/dist/types/modes/components/queue-mode-selector.d.ts +9 -0
  380. package/dist/types/modes/components/read-tool-group.d.ts +30 -0
  381. package/dist/types/modes/components/session-observer-overlay.d.ts +11 -0
  382. package/dist/types/modes/components/session-selector.d.ts +30 -0
  383. package/dist/types/modes/components/settings-defs.d.ts +50 -0
  384. package/dist/types/modes/components/settings-selector.d.ts +54 -0
  385. package/dist/types/modes/components/show-images-selector.d.ts +9 -0
  386. package/dist/types/modes/components/skill-message.d.ts +9 -0
  387. package/dist/types/modes/components/status-line/context-thresholds.d.ts +4 -0
  388. package/dist/types/modes/components/status-line/git-utils.d.ts +22 -0
  389. package/dist/types/modes/components/status-line/index.d.ts +4 -0
  390. package/dist/types/modes/components/status-line/presets.d.ts +3 -0
  391. package/dist/types/modes/components/status-line/segments.d.ts +5 -0
  392. package/dist/types/modes/components/status-line/separators.d.ts +3 -0
  393. package/dist/types/modes/components/status-line/token-rate.d.ts +10 -0
  394. package/dist/types/modes/components/status-line/types.d.ts +70 -0
  395. package/dist/types/modes/components/status-line-segment-editor.d.ts +24 -0
  396. package/dist/types/modes/components/status-line.d.ts +61 -0
  397. package/dist/types/modes/components/theme-selector.d.ts +10 -0
  398. package/dist/types/modes/components/thinking-selector.d.ts +10 -0
  399. package/dist/types/modes/components/todo-reminder.d.ts +13 -0
  400. package/dist/types/modes/components/tool-execution.d.ts +53 -0
  401. package/dist/types/modes/components/tree-selector.d.ts +31 -0
  402. package/dist/types/modes/components/ttsr-notification.d.ts +13 -0
  403. package/dist/types/modes/components/user-message-selector.d.ts +28 -0
  404. package/dist/types/modes/components/user-message.d.ts +8 -0
  405. package/dist/types/modes/components/visual-truncate.d.ts +19 -0
  406. package/dist/types/modes/components/welcome.d.ts +33 -0
  407. package/dist/types/modes/controllers/btw-controller.d.ts +10 -0
  408. package/dist/types/modes/controllers/command-controller-shared.d.ts +47 -0
  409. package/dist/types/modes/controllers/command-controller.d.ts +36 -0
  410. package/dist/types/modes/controllers/event-controller.d.ts +12 -0
  411. package/dist/types/modes/controllers/extension-ui-controller.d.ts +80 -0
  412. package/dist/types/modes/controllers/input-controller.d.ts +35 -0
  413. package/dist/types/modes/controllers/mcp-command-controller.d.ts +10 -0
  414. package/dist/types/modes/controllers/selector-controller.d.ts +45 -0
  415. package/dist/types/modes/controllers/ssh-command-controller.d.ts +10 -0
  416. package/dist/types/modes/controllers/todo-command-controller.d.ts +7 -0
  417. package/dist/types/modes/emoji-autocomplete.d.ts +16 -0
  418. package/dist/types/modes/index.d.ts +9 -0
  419. package/dist/types/modes/interactive-mode.d.ts +267 -0
  420. package/dist/types/modes/loop-limit.d.ts +22 -0
  421. package/dist/types/modes/oauth-manual-input.d.ts +8 -0
  422. package/dist/types/modes/print-mode.d.ts +27 -0
  423. package/dist/types/modes/prompt-action-autocomplete.d.ts +46 -0
  424. package/dist/types/modes/rpc/host-tools.d.ts +16 -0
  425. package/dist/types/modes/rpc/host-uris.d.ts +38 -0
  426. package/dist/types/modes/rpc/rpc-client.d.ts +249 -0
  427. package/dist/types/modes/rpc/rpc-mode.d.ts +17 -0
  428. package/dist/types/modes/rpc/rpc-types.d.ts +586 -0
  429. package/dist/types/modes/runtime-init.d.ts +21 -0
  430. package/dist/types/modes/session-observer-registry.d.ts +26 -0
  431. package/dist/types/modes/shared.d.ts +6 -0
  432. package/dist/types/modes/theme/defaults/index.d.ts +9436 -0
  433. package/dist/types/modes/theme/mermaid-cache.d.ts +9 -0
  434. package/dist/types/modes/theme/theme.d.ts +273 -0
  435. package/dist/types/modes/types.d.ts +274 -0
  436. package/dist/types/modes/utils/context-usage.d.ts +30 -0
  437. package/dist/types/modes/utils/hotkeys-markdown.d.ts +5 -0
  438. package/dist/types/modes/utils/keybinding-matchers.d.ts +10 -0
  439. package/dist/types/modes/utils/tools-markdown.d.ts +5 -0
  440. package/dist/types/modes/utils/ui-helpers.d.ts +49 -0
  441. package/dist/types/plan-mode/approved-plan.d.ts +29 -0
  442. package/dist/types/plan-mode/state.d.ts +6 -0
  443. package/dist/types/registry/agent-registry.d.ts +62 -0
  444. package/dist/types/sdk.d.ts +253 -0
  445. package/dist/types/secrets/index.d.ts +9 -0
  446. package/dist/types/secrets/obfuscator.d.ts +23 -0
  447. package/dist/types/secrets/regex.d.ts +2 -0
  448. package/dist/types/session/agent-session.d.ts +898 -0
  449. package/dist/types/session/agent-storage.d.ts +93 -0
  450. package/dist/types/session/artifacts.d.ts +61 -0
  451. package/dist/types/session/auth-broker-config.d.ts +13 -0
  452. package/dist/types/session/auth-storage.d.ts +6 -0
  453. package/dist/types/session/blob-store.d.ts +63 -0
  454. package/dist/types/session/client-bridge.d.ts +84 -0
  455. package/dist/types/session/history-storage.d.ts +16 -0
  456. package/dist/types/session/messages.d.ts +162 -0
  457. package/dist/types/session/session-dump-format.d.ts +22 -0
  458. package/dist/types/session/session-manager.d.ts +539 -0
  459. package/dist/types/session/session-storage.d.ts +82 -0
  460. package/dist/types/session/streaming-output.d.ts +185 -0
  461. package/dist/types/session/tool-choice-queue.d.ts +78 -0
  462. package/dist/types/slash-commands/acp-builtins.d.ts +18 -0
  463. package/dist/types/slash-commands/builtin-registry.d.ts +23 -0
  464. package/dist/types/slash-commands/helpers/context-report.d.ts +7 -0
  465. package/dist/types/slash-commands/helpers/format.d.ts +7 -0
  466. package/dist/types/slash-commands/helpers/marketplace-manager.d.ts +8 -0
  467. package/dist/types/slash-commands/helpers/mcp.d.ts +3 -0
  468. package/dist/types/slash-commands/helpers/parse.d.ts +33 -0
  469. package/dist/types/slash-commands/helpers/ssh.d.ts +3 -0
  470. package/dist/types/slash-commands/helpers/todo.d.ts +3 -0
  471. package/dist/types/slash-commands/helpers/usage-report.d.ts +7 -0
  472. package/dist/types/slash-commands/marketplace-install-parser.d.ts +33 -0
  473. package/dist/types/slash-commands/types.d.ts +119 -0
  474. package/dist/types/ssh/config-writer.d.ts +49 -0
  475. package/dist/types/ssh/connection-manager.d.ts +33 -0
  476. package/dist/types/ssh/ssh-executor.d.ts +37 -0
  477. package/dist/types/ssh/sshfs-mount.d.ts +6 -0
  478. package/dist/types/ssh/utils.d.ts +2 -0
  479. package/dist/types/stt/downloader.d.ts +9 -0
  480. package/dist/types/stt/index.d.ts +3 -0
  481. package/dist/types/stt/recorder.d.ts +13 -0
  482. package/dist/types/stt/setup.d.ts +18 -0
  483. package/dist/types/stt/stt-controller.d.ts +16 -0
  484. package/dist/types/stt/transcriber.d.ts +16 -0
  485. package/dist/types/system-prompt.d.ts +93 -0
  486. package/dist/types/task/agents.d.ts +28 -0
  487. package/dist/types/task/commands.d.ts +35 -0
  488. package/dist/types/task/discovery.d.ts +18 -0
  489. package/dist/types/task/executor.d.ts +106 -0
  490. package/dist/types/task/index.d.ts +38 -0
  491. package/dist/types/task/name-generator.d.ts +16 -0
  492. package/dist/types/task/omp-command.d.ts +7 -0
  493. package/dist/types/task/output-manager.d.ts +36 -0
  494. package/dist/types/task/parallel.d.ts +34 -0
  495. package/dist/types/task/render.d.ts +22 -0
  496. package/dist/types/task/simple-mode.d.ts +8 -0
  497. package/dist/types/task/subprocess-tool-registry.d.ts +72 -0
  498. package/dist/types/task/types.d.ts +251 -0
  499. package/dist/types/task/worktree.d.ts +95 -0
  500. package/dist/types/thinking.d.ts +30 -0
  501. package/dist/types/tool-discovery/tool-index.d.ts +107 -0
  502. package/dist/types/tools/archive-reader.d.ts +40 -0
  503. package/dist/types/tools/ask.d.ts +109 -0
  504. package/dist/types/tools/ast-edit.d.ts +72 -0
  505. package/dist/types/tools/ast-grep.d.ts +64 -0
  506. package/dist/types/tools/auto-generated-guard.d.ts +17 -0
  507. package/dist/types/tools/bash-command-fixup.d.ts +16 -0
  508. package/dist/types/tools/bash-interactive.d.ts +16 -0
  509. package/dist/types/tools/bash-interceptor.d.ts +24 -0
  510. package/dist/types/tools/bash-pty-selection.d.ts +7 -0
  511. package/dist/types/tools/bash-skill-urls.d.ts +31 -0
  512. package/dist/types/tools/bash.d.ts +130 -0
  513. package/dist/types/tools/browser/attach.d.ts +34 -0
  514. package/dist/types/tools/browser/launch.d.ts +60 -0
  515. package/dist/types/tools/browser/readable.d.ts +17 -0
  516. package/dist/types/tools/browser/registry.d.ts +42 -0
  517. package/dist/types/tools/browser/render.d.ts +50 -0
  518. package/dist/types/tools/browser/tab-protocol.d.ts +144 -0
  519. package/dist/types/tools/browser/tab-supervisor.d.ts +63 -0
  520. package/dist/types/tools/browser/tab-worker-entry.d.ts +1 -0
  521. package/dist/types/tools/browser/tab-worker.d.ts +19 -0
  522. package/dist/types/tools/browser.d.ts +114 -0
  523. package/dist/types/tools/calculator.d.ts +76 -0
  524. package/dist/types/tools/checkpoint.d.ts +63 -0
  525. package/dist/types/tools/conflict-detect.d.ts +205 -0
  526. package/dist/types/tools/context.d.ts +19 -0
  527. package/dist/types/tools/debug.d.ts +209 -0
  528. package/dist/types/tools/eval.d.ts +108 -0
  529. package/dist/types/tools/fetch.d.ts +61 -0
  530. package/dist/types/tools/file-recorder.d.ts +13 -0
  531. package/dist/types/tools/find.d.ts +88 -0
  532. package/dist/types/tools/fs-cache-invalidation.d.ts +15 -0
  533. package/dist/types/tools/gh-format.d.ts +6 -0
  534. package/dist/types/tools/gh-renderer.d.ts +25 -0
  535. package/dist/types/tools/gh.d.ts +356 -0
  536. package/dist/types/tools/github-cache.d.ts +103 -0
  537. package/dist/types/tools/grouped-file-output.d.ts +36 -0
  538. package/dist/types/tools/hindsight-recall.d.ts +23 -0
  539. package/dist/types/tools/hindsight-reflect.d.ts +25 -0
  540. package/dist/types/tools/hindsight-retain.d.ts +29 -0
  541. package/dist/types/tools/image-gen.d.ts +78 -0
  542. package/dist/types/tools/index.d.ts +244 -0
  543. package/dist/types/tools/inspect-image-renderer.d.ts +26 -0
  544. package/dist/types/tools/inspect-image.d.ts +31 -0
  545. package/dist/types/tools/irc.d.ts +79 -0
  546. package/dist/types/tools/job.d.ts +65 -0
  547. package/dist/types/tools/json-tree.d.ts +23 -0
  548. package/dist/types/tools/jtd-to-json-schema.d.ts +29 -0
  549. package/dist/types/tools/jtd-to-typescript.d.ts +26 -0
  550. package/dist/types/tools/jtd-utils.d.ts +42 -0
  551. package/dist/types/tools/list-limit.d.ts +12 -0
  552. package/dist/types/tools/match-line-format.d.ts +11 -0
  553. package/dist/types/tools/output-meta.d.ts +204 -0
  554. package/dist/types/tools/path-utils.d.ts +125 -0
  555. package/dist/types/tools/plan-mode-guard.d.ts +18 -0
  556. package/dist/types/tools/read.d.ts +85 -0
  557. package/dist/types/tools/recipe/index.d.ts +45 -0
  558. package/dist/types/tools/recipe/render.d.ts +36 -0
  559. package/dist/types/tools/recipe/runner.d.ts +60 -0
  560. package/dist/types/tools/recipe/runners/cargo.d.ts +16 -0
  561. package/dist/types/tools/recipe/runners/index.d.ts +2 -0
  562. package/dist/types/tools/recipe/runners/just.d.ts +2 -0
  563. package/dist/types/tools/recipe/runners/make.d.ts +2 -0
  564. package/dist/types/tools/recipe/runners/pkg.d.ts +2 -0
  565. package/dist/types/tools/recipe/runners/task.d.ts +2 -0
  566. package/dist/types/tools/render-mermaid.d.ts +37 -0
  567. package/dist/types/tools/render-utils.d.ts +148 -0
  568. package/dist/types/tools/renderers.d.ts +26 -0
  569. package/dist/types/tools/report-tool-issue.d.ts +123 -0
  570. package/dist/types/tools/resolve.d.ts +85 -0
  571. package/dist/types/tools/review.d.ts +50 -0
  572. package/dist/types/tools/search-tool-bm25.d.ts +65 -0
  573. package/dist/types/tools/search.d.ts +90 -0
  574. package/dist/types/tools/sqlite-reader.d.ts +93 -0
  575. package/dist/types/tools/ssh.d.ts +67 -0
  576. package/dist/types/tools/todo-write.d.ts +120 -0
  577. package/dist/types/tools/tool-errors.d.ts +33 -0
  578. package/dist/types/tools/tool-result.d.ts +30 -0
  579. package/dist/types/tools/tool-timeouts.d.ts +51 -0
  580. package/dist/types/tools/vim.d.ts +58 -0
  581. package/dist/types/tools/write.d.ts +59 -0
  582. package/dist/types/tools/yield.d.ts +25 -0
  583. package/dist/types/tui/code-cell.d.ts +32 -0
  584. package/dist/types/tui/file-list.d.ts +16 -0
  585. package/dist/types/tui/index.d.ts +10 -0
  586. package/dist/types/tui/output-block.d.ts +28 -0
  587. package/dist/types/tui/status-line.d.ts +18 -0
  588. package/dist/types/tui/tree-list.d.ts +19 -0
  589. package/dist/types/tui/types.d.ts +13 -0
  590. package/dist/types/tui/utils.d.ts +36 -0
  591. package/dist/types/utils/changelog.d.ts +20 -0
  592. package/dist/types/utils/clipboard.d.ts +20 -0
  593. package/dist/types/utils/command-args.d.ts +9 -0
  594. package/dist/types/utils/commit-message-generator.d.ts +7 -0
  595. package/dist/types/utils/edit-mode.d.ts +13 -0
  596. package/dist/types/utils/event-bus.d.ts +6 -0
  597. package/dist/types/utils/external-editor.d.ts +17 -0
  598. package/dist/types/utils/file-display-mode.d.ts +27 -0
  599. package/dist/types/utils/file-mentions.d.ts +11 -0
  600. package/dist/types/utils/git.d.ts +360 -0
  601. package/dist/types/utils/image-loading.d.ts +26 -0
  602. package/dist/types/utils/image-resize.d.ts +36 -0
  603. package/dist/types/utils/lang-from-path.d.ts +8 -0
  604. package/dist/types/utils/markit.d.ts +7 -0
  605. package/dist/types/utils/open.d.ts +2 -0
  606. package/dist/types/utils/session-color.d.ts +10 -0
  607. package/dist/types/utils/shell-snapshot.d.ts +5 -0
  608. package/dist/types/utils/sixel.d.ts +21 -0
  609. package/dist/types/utils/title-generator.d.ts +31 -0
  610. package/dist/types/utils/tool-choice.d.ts +6 -0
  611. package/dist/types/utils/tools-manager.d.ts +9 -0
  612. package/dist/types/vim/buffer.d.ts +41 -0
  613. package/dist/types/vim/commands.d.ts +6 -0
  614. package/dist/types/vim/engine.d.ts +47 -0
  615. package/dist/types/vim/parser.d.ts +3 -0
  616. package/dist/types/vim/render.d.ts +25 -0
  617. package/dist/types/vim/types.d.ts +182 -0
  618. package/dist/types/web/kagi.d.ts +21 -0
  619. package/dist/types/web/parallel.d.ts +57 -0
  620. package/dist/types/web/scrapers/artifacthub.d.ts +6 -0
  621. package/dist/types/web/scrapers/arxiv.d.ts +5 -0
  622. package/dist/types/web/scrapers/aur.d.ts +5 -0
  623. package/dist/types/web/scrapers/biorxiv.d.ts +5 -0
  624. package/dist/types/web/scrapers/bluesky.d.ts +5 -0
  625. package/dist/types/web/scrapers/brew.d.ts +5 -0
  626. package/dist/types/web/scrapers/cheatsh.d.ts +8 -0
  627. package/dist/types/web/scrapers/chocolatey.d.ts +5 -0
  628. package/dist/types/web/scrapers/choosealicense.d.ts +2 -0
  629. package/dist/types/web/scrapers/cisa-kev.d.ts +5 -0
  630. package/dist/types/web/scrapers/clojars.d.ts +5 -0
  631. package/dist/types/web/scrapers/coingecko.d.ts +5 -0
  632. package/dist/types/web/scrapers/crates-io.d.ts +5 -0
  633. package/dist/types/web/scrapers/crossref.d.ts +2 -0
  634. package/dist/types/web/scrapers/devto.d.ts +5 -0
  635. package/dist/types/web/scrapers/discogs.d.ts +8 -0
  636. package/dist/types/web/scrapers/discourse.d.ts +5 -0
  637. package/dist/types/web/scrapers/dockerhub.d.ts +5 -0
  638. package/dist/types/web/scrapers/docs-rs.d.ts +2 -0
  639. package/dist/types/web/scrapers/fdroid.d.ts +5 -0
  640. package/dist/types/web/scrapers/firefox-addons.d.ts +2 -0
  641. package/dist/types/web/scrapers/flathub.d.ts +2 -0
  642. package/dist/types/web/scrapers/github-gist.d.ts +5 -0
  643. package/dist/types/web/scrapers/github.d.ts +12 -0
  644. package/dist/types/web/scrapers/gitlab.d.ts +5 -0
  645. package/dist/types/web/scrapers/go-pkg.d.ts +5 -0
  646. package/dist/types/web/scrapers/hackage.d.ts +5 -0
  647. package/dist/types/web/scrapers/hackernews.d.ts +2 -0
  648. package/dist/types/web/scrapers/hex.d.ts +5 -0
  649. package/dist/types/web/scrapers/huggingface.d.ts +2 -0
  650. package/dist/types/web/scrapers/iacr.d.ts +5 -0
  651. package/dist/types/web/scrapers/index.d.ts +84 -0
  652. package/dist/types/web/scrapers/jetbrains-marketplace.d.ts +2 -0
  653. package/dist/types/web/scrapers/lemmy.d.ts +2 -0
  654. package/dist/types/web/scrapers/lobsters.d.ts +5 -0
  655. package/dist/types/web/scrapers/mastodon.d.ts +5 -0
  656. package/dist/types/web/scrapers/maven.d.ts +6 -0
  657. package/dist/types/web/scrapers/mdn.d.ts +2 -0
  658. package/dist/types/web/scrapers/metacpan.d.ts +5 -0
  659. package/dist/types/web/scrapers/musicbrainz.d.ts +5 -0
  660. package/dist/types/web/scrapers/npm.d.ts +5 -0
  661. package/dist/types/web/scrapers/nuget.d.ts +5 -0
  662. package/dist/types/web/scrapers/nvd.d.ts +5 -0
  663. package/dist/types/web/scrapers/ollama.d.ts +2 -0
  664. package/dist/types/web/scrapers/open-vsx.d.ts +5 -0
  665. package/dist/types/web/scrapers/opencorporates.d.ts +5 -0
  666. package/dist/types/web/scrapers/openlibrary.d.ts +5 -0
  667. package/dist/types/web/scrapers/orcid.d.ts +5 -0
  668. package/dist/types/web/scrapers/osv.d.ts +5 -0
  669. package/dist/types/web/scrapers/packagist.d.ts +5 -0
  670. package/dist/types/web/scrapers/pub-dev.d.ts +5 -0
  671. package/dist/types/web/scrapers/pubmed.d.ts +5 -0
  672. package/dist/types/web/scrapers/pypi.d.ts +5 -0
  673. package/dist/types/web/scrapers/rawg.d.ts +2 -0
  674. package/dist/types/web/scrapers/readthedocs.d.ts +2 -0
  675. package/dist/types/web/scrapers/reddit.d.ts +5 -0
  676. package/dist/types/web/scrapers/repology.d.ts +5 -0
  677. package/dist/types/web/scrapers/rfc.d.ts +5 -0
  678. package/dist/types/web/scrapers/rubygems.d.ts +5 -0
  679. package/dist/types/web/scrapers/searchcode.d.ts +2 -0
  680. package/dist/types/web/scrapers/sec-edgar.d.ts +5 -0
  681. package/dist/types/web/scrapers/semantic-scholar.d.ts +2 -0
  682. package/dist/types/web/scrapers/snapcraft.d.ts +2 -0
  683. package/dist/types/web/scrapers/sourcegraph.d.ts +2 -0
  684. package/dist/types/web/scrapers/spdx.d.ts +5 -0
  685. package/dist/types/web/scrapers/spotify.d.ts +8 -0
  686. package/dist/types/web/scrapers/stackoverflow.d.ts +6 -0
  687. package/dist/types/web/scrapers/terraform.d.ts +5 -0
  688. package/dist/types/web/scrapers/tldr.d.ts +7 -0
  689. package/dist/types/web/scrapers/twitter.d.ts +5 -0
  690. package/dist/types/web/scrapers/types.d.ts +77 -0
  691. package/dist/types/web/scrapers/utils.d.ts +26 -0
  692. package/dist/types/web/scrapers/vimeo.d.ts +5 -0
  693. package/dist/types/web/scrapers/vscode-marketplace.d.ts +5 -0
  694. package/dist/types/web/scrapers/w3c.d.ts +2 -0
  695. package/dist/types/web/scrapers/wikidata.d.ts +5 -0
  696. package/dist/types/web/scrapers/wikipedia.d.ts +5 -0
  697. package/dist/types/web/scrapers/youtube.d.ts +5 -0
  698. package/dist/types/web/search/index.d.ts +76 -0
  699. package/dist/types/web/search/provider.d.ts +20 -0
  700. package/dist/types/web/search/providers/anthropic.d.ts +27 -0
  701. package/dist/types/web/search/providers/base.d.ts +35 -0
  702. package/dist/types/web/search/providers/brave.d.ts +20 -0
  703. package/dist/types/web/search/providers/codex.d.ts +31 -0
  704. package/dist/types/web/search/providers/exa.d.ts +43 -0
  705. package/dist/types/web/search/providers/gemini.d.ts +60 -0
  706. package/dist/types/web/search/providers/jina.d.ts +25 -0
  707. package/dist/types/web/search/providers/kagi.d.ts +21 -0
  708. package/dist/types/web/search/providers/kimi.d.ts +18 -0
  709. package/dist/types/web/search/providers/parallel.d.ts +14 -0
  710. package/dist/types/web/search/providers/perplexity.d.ts +35 -0
  711. package/dist/types/web/search/providers/searxng.d.ts +43 -0
  712. package/dist/types/web/search/providers/synthetic.d.ts +24 -0
  713. package/dist/types/web/search/providers/tavily.d.ts +22 -0
  714. package/dist/types/web/search/providers/utils.d.ts +24 -0
  715. package/dist/types/web/search/providers/zai.d.ts +19 -0
  716. package/dist/types/web/search/render.d.ts +35 -0
  717. package/dist/types/web/search/types.d.ts +344 -0
  718. package/dist/types/web/search/utils.d.ts +4 -0
  719. package/dist/types/workspace-tree.d.ts +42 -0
  720. package/examples/custom-tools/README.md +3 -12
  721. package/examples/extensions/README.md +2 -15
  722. package/examples/extensions/api-demo.ts +1 -7
  723. package/package.json +124 -123
  724. package/src/autoresearch/tools/init-experiment.ts +11 -33
  725. package/src/autoresearch/tools/log-experiment.ts +10 -24
  726. package/src/autoresearch/tools/run-experiment.ts +1 -1
  727. package/src/autoresearch/tools/update-notes.ts +2 -9
  728. package/src/cli/auth-broker-cli.ts +746 -0
  729. package/src/cli/auth-gateway-cli.ts +342 -0
  730. package/src/cli/grievances-cli.ts +109 -16
  731. package/src/cli.ts +4 -2
  732. package/src/commands/auth-broker.ts +96 -0
  733. package/src/commands/auth-gateway.ts +61 -0
  734. package/src/commands/grievances.ts +13 -8
  735. package/src/commands/launch.ts +1 -1
  736. package/src/commit/agentic/agent.ts +2 -0
  737. package/src/commit/agentic/tools/analyze-file.ts +2 -2
  738. package/src/commit/agentic/tools/git-file-diff.ts +2 -2
  739. package/src/commit/agentic/tools/git-hunk.ts +3 -3
  740. package/src/commit/agentic/tools/git-overview.ts +2 -2
  741. package/src/commit/agentic/tools/propose-changelog.ts +1 -3
  742. package/src/commit/agentic/tools/recent-commits.ts +1 -1
  743. package/src/commit/agentic/tools/schemas.ts +1 -9
  744. package/src/config/mcp-schema.json +1 -1
  745. package/src/config/model-equivalence.ts +279 -174
  746. package/src/config/model-registry.ts +37 -6
  747. package/src/config/model-resolver.ts +13 -8
  748. package/src/config/models-config-schema.ts +8 -0
  749. package/src/config/settings-schema.ts +52 -0
  750. package/src/cursor.ts +1 -1
  751. package/src/debug/log-formatting.ts +1 -1
  752. package/src/debug/log-viewer.ts +1 -1
  753. package/src/debug/profiler.ts +4 -0
  754. package/src/debug/raw-sse-buffer.ts +100 -59
  755. package/src/debug/raw-sse.ts +1 -1
  756. package/src/discovery/agents.ts +15 -4
  757. package/src/edit/modes/apply-patch.ts +1 -5
  758. package/src/edit/modes/patch.ts +5 -5
  759. package/src/edit/modes/replace.ts +5 -5
  760. package/src/edit/normalize.ts +1 -1
  761. package/src/edit/renderer.ts +2 -1
  762. package/src/edit/streaming.ts +1 -1
  763. package/src/eval/index.ts +0 -2
  764. package/src/eval/js/shared/runtime.ts +25 -0
  765. package/src/eval/py/kernel.ts +1 -1
  766. package/src/exa/researcher.ts +4 -4
  767. package/src/exa/search.ts +10 -22
  768. package/src/exa/websets.ts +33 -33
  769. package/src/extensibility/typebox.ts +1 -1
  770. package/src/goals/tools/goal-tool.ts +3 -3
  771. package/src/hashline/index.ts +0 -1
  772. package/src/hashline/input.ts +8 -11
  773. package/src/hashline/parser.ts +6 -8
  774. package/src/index.ts +0 -3
  775. package/src/internal-urls/docs-index.generated.ts +21 -18
  776. package/src/internal-urls/index.ts +1 -1
  777. package/src/internal-urls/{pi-protocol.ts → omp-protocol.ts} +10 -10
  778. package/src/internal-urls/router.ts +3 -3
  779. package/src/internal-urls/types.ts +1 -1
  780. package/src/lsp/types.ts +8 -11
  781. package/src/main.ts +3 -0
  782. package/src/mcp/tool-bridge.ts +3 -3
  783. package/src/modes/acp/acp-agent.ts +89 -25
  784. package/src/modes/components/bash-execution.ts +1 -1
  785. package/src/modes/components/diff.ts +1 -2
  786. package/src/modes/components/eval-execution.ts +1 -1
  787. package/src/modes/components/oauth-selector.ts +38 -2
  788. package/src/modes/components/tool-execution.ts +1 -2
  789. package/src/modes/controllers/command-controller.ts +96 -34
  790. package/src/modes/controllers/input-controller.ts +4 -3
  791. package/src/modes/controllers/ssh-command-controller.ts +2 -0
  792. package/src/modes/data/emojis.json +1 -0
  793. package/src/modes/emoji-autocomplete.ts +285 -0
  794. package/src/modes/interactive-mode.ts +92 -19
  795. package/src/modes/print-mode.ts +3 -3
  796. package/src/modes/prompt-action-autocomplete.ts +14 -0
  797. package/src/modes/theme/theme-schema.json +1 -1
  798. package/src/plan-mode/approved-plan.ts +9 -0
  799. package/src/prompts/system/system-prompt.md +1 -1
  800. package/src/prompts/system/ttsr-tool-reminder.md +5 -0
  801. package/src/prompts/tools/eval.md +25 -26
  802. package/src/prompts/tools/hashline.md +1 -0
  803. package/src/prompts/tools/read.md +2 -2
  804. package/src/prompts/tools/resolve.md +1 -1
  805. package/src/prompts/tools/search.md +1 -1
  806. package/src/prompts/tools/web-search.md +1 -1
  807. package/src/sdk.ts +92 -7
  808. package/src/session/agent-session.ts +225 -77
  809. package/src/session/agent-storage.ts +7 -2
  810. package/src/session/auth-broker-config.ts +102 -0
  811. package/src/session/auth-storage.ts +7 -1
  812. package/src/session/streaming-output.ts +1 -1
  813. package/src/slash-commands/builtin-registry.ts +2 -0
  814. package/src/slash-commands/helpers/ssh.ts +2 -0
  815. package/src/ssh/connection-manager.ts +28 -7
  816. package/src/task/types.ts +10 -35
  817. package/src/tools/bash-interactive.ts +5 -2
  818. package/src/tools/bash-pty-selection.ts +14 -0
  819. package/src/tools/bash.ts +5 -4
  820. package/src/tools/browser.ts +12 -20
  821. package/src/tools/eval.ts +77 -100
  822. package/src/tools/gh.ts +21 -45
  823. package/src/tools/hindsight-recall.ts +1 -1
  824. package/src/tools/hindsight-reflect.ts +2 -2
  825. package/src/tools/hindsight-retain.ts +3 -7
  826. package/src/tools/index.ts +8 -1
  827. package/src/tools/inspect-image.ts +4 -1
  828. package/src/tools/irc.ts +4 -12
  829. package/src/tools/job.ts +3 -11
  830. package/src/tools/path-utils.ts +2 -2
  831. package/src/tools/read.ts +7 -4
  832. package/src/tools/report-tool-issue.ts +462 -17
  833. package/src/tools/resolve.ts +2 -7
  834. package/src/tools/search.ts +7 -0
  835. package/src/tools/todo-write.ts +8 -15
  836. package/src/tools/yield.ts +17 -5
  837. package/src/tui/code-cell.ts +18 -3
  838. package/src/utils/title-generator.ts +3 -0
  839. package/src/web/scrapers/searchcode.ts +1 -2
  840. package/src/web/search/index.ts +6 -6
  841. package/src/eval/eval.lark +0 -36
  842. package/src/eval/parse.ts +0 -407
  843. package/src/eval/sniff.ts +0 -28
  844. package/src/hashline/utils.ts +0 -3
@@ -0,0 +1,898 @@
1
+ /**
2
+ * AgentSession - Core abstraction for agent lifecycle and session management.
3
+ *
4
+ * This class is shared between all run modes (interactive, print, rpc).
5
+ * It encapsulates:
6
+ * - Agent state access
7
+ * - Event subscription with automatic session persistence
8
+ * - Model and thinking level management
9
+ * - Compaction (manual and auto)
10
+ * - Bash execution
11
+ * - Session switching and branching
12
+ *
13
+ * Modes use this class and add their own I/O layer on top.
14
+ */
15
+ import { type Agent, type AgentEvent, type AgentMessage, type AgentState, type AgentTool, ThinkingLevel } from "@oh-my-pi/pi-agent-core";
16
+ import { type CompactionResult } from "@oh-my-pi/pi-agent-core/compaction";
17
+ import type { AssistantMessage, Effort, ImageContent, Message, MessageAttribution, Model, ProviderSessionState, ServiceTier, SimpleStreamOptions, TextContent, ToolChoice, UsageReport } from "@oh-my-pi/pi-ai";
18
+ import { type AsyncJob, AsyncJobManager } from "../async";
19
+ import type { Rule } from "../capability/rule";
20
+ import { type ModelRegistry } from "../config/model-registry";
21
+ import { type ResolvedModelRoleValue } from "../config/model-resolver";
22
+ import { type PromptTemplate } from "../config/prompt-templates";
23
+ import type { Settings, SkillsSettings } from "../config/settings";
24
+ import { RawSseDebugBuffer } from "../debug/raw-sse-buffer";
25
+ import { type PythonResult } from "../eval/py/executor";
26
+ import { type BashResult } from "../exec/bash-executor";
27
+ import type { TtsrManager } from "../export/ttsr";
28
+ import type { LoadedCustomCommand } from "../extensibility/custom-commands";
29
+ import type { CustomTool } from "../extensibility/custom-tools/types";
30
+ import type { ExtensionRunner } from "../extensibility/extensions";
31
+ import type { CompactOptions, ContextUsage } from "../extensibility/extensions/types";
32
+ import type { Skill, SkillWarning } from "../extensibility/skills";
33
+ import { type FileSlashCommand } from "../extensibility/slash-commands";
34
+ import { GoalRuntime } from "../goals/runtime";
35
+ import type { Goal, GoalModeState } from "../goals/state";
36
+ import type { HindsightSessionState } from "../hindsight/state";
37
+ import { type DiscoverableMCPSearchIndex, type DiscoverableMCPTool } from "../mcp/discoverable-tool-metadata";
38
+ import type { PlanModeState } from "../plan-mode/state";
39
+ import { type AgentRegistry } from "../registry/agent-registry";
40
+ import { type SecretObfuscator } from "../secrets/obfuscator";
41
+ import { type DiscoverableTool, type DiscoverableToolSearchIndex } from "../tool-discovery/tool-index";
42
+ import type { CheckpointState } from "../tools/checkpoint";
43
+ import { type TodoItem, type TodoPhase } from "../tools/todo-write";
44
+ import type { ClientBridge } from "./client-bridge";
45
+ import { type CustomMessage } from "./messages";
46
+ import type { BranchSummaryEntry, NewSessionOptions, SessionContext, SessionManager } from "./session-manager";
47
+ import { ToolChoiceQueue } from "./tool-choice-queue";
48
+ /** Session-specific events that extend the core AgentEvent */
49
+ export type AgentSessionEvent = AgentEvent | {
50
+ type: "auto_compaction_start";
51
+ reason: "threshold" | "overflow" | "idle";
52
+ action: "context-full" | "handoff";
53
+ } | {
54
+ type: "auto_compaction_end";
55
+ action: "context-full" | "handoff";
56
+ result: CompactionResult | undefined;
57
+ aborted: boolean;
58
+ willRetry: boolean;
59
+ errorMessage?: string;
60
+ /** True when compaction was skipped for a benign reason (no model, no candidates, nothing to compact). */
61
+ skipped?: boolean;
62
+ } | {
63
+ type: "auto_retry_start";
64
+ attempt: number;
65
+ maxAttempts: number;
66
+ delayMs: number;
67
+ errorMessage: string;
68
+ } | {
69
+ type: "auto_retry_end";
70
+ success: boolean;
71
+ attempt: number;
72
+ finalError?: string;
73
+ } | {
74
+ type: "retry_fallback_applied";
75
+ from: string;
76
+ to: string;
77
+ role: string;
78
+ } | {
79
+ type: "retry_fallback_succeeded";
80
+ model: string;
81
+ role: string;
82
+ } | {
83
+ type: "ttsr_triggered";
84
+ rules: Rule[];
85
+ } | {
86
+ type: "todo_reminder";
87
+ todos: TodoItem[];
88
+ attempt: number;
89
+ maxAttempts: number;
90
+ } | {
91
+ type: "todo_auto_clear";
92
+ } | {
93
+ type: "irc_message";
94
+ message: CustomMessage;
95
+ } | {
96
+ type: "notice";
97
+ level: "info" | "warning" | "error";
98
+ message: string;
99
+ source?: string;
100
+ } | {
101
+ type: "thinking_level_changed";
102
+ thinkingLevel: ThinkingLevel | undefined;
103
+ } | {
104
+ type: "goal_updated";
105
+ goal: Goal | null;
106
+ state?: GoalModeState;
107
+ };
108
+ /** Listener function for agent session events */
109
+ export type AgentSessionEventListener = (event: AgentSessionEvent) => void;
110
+ export type AsyncJobSnapshotItem = Pick<AsyncJob, "id" | "type" | "status" | "label" | "startTime">;
111
+ export interface AsyncJobSnapshot {
112
+ running: AsyncJobSnapshotItem[];
113
+ recent: AsyncJobSnapshotItem[];
114
+ }
115
+ export interface AgentSessionConfig {
116
+ agent: Agent;
117
+ sessionManager: SessionManager;
118
+ settings: Settings;
119
+ /** Models to cycle through with Ctrl+P (from --models flag) */
120
+ scopedModels?: Array<{
121
+ model: Model;
122
+ thinkingLevel?: ThinkingLevel;
123
+ }>;
124
+ /** Initial session thinking selector. */
125
+ thinkingLevel?: ThinkingLevel;
126
+ /** Prompt templates for expansion */
127
+ promptTemplates?: PromptTemplate[];
128
+ /** File-based slash commands for expansion */
129
+ slashCommands?: FileSlashCommand[];
130
+ /** Extension runner (created in main.ts with wrapped tools) */
131
+ extensionRunner?: ExtensionRunner;
132
+ /** Loaded skills (already discovered by SDK) */
133
+ skills?: Skill[];
134
+ /** Skill loading warnings (already captured by SDK) */
135
+ skillWarnings?: SkillWarning[];
136
+ /** Custom commands (TypeScript slash commands) */
137
+ customCommands?: LoadedCustomCommand[];
138
+ skillsSettings?: SkillsSettings;
139
+ /** Model registry for API key resolution and model discovery */
140
+ modelRegistry: ModelRegistry;
141
+ /** Tool registry for LSP and settings */
142
+ toolRegistry?: Map<string, AgentTool>;
143
+ /** Current session pre-LLM message transform pipeline */
144
+ transformContext?: (messages: AgentMessage[], signal?: AbortSignal) => AgentMessage[] | Promise<AgentMessage[]>;
145
+ /** Provider payload hook used by the active session request path */
146
+ onPayload?: SimpleStreamOptions["onPayload"];
147
+ /** Provider response hook used by the active session request path */
148
+ onResponse?: SimpleStreamOptions["onResponse"];
149
+ /** Raw SSE hook used by the active session request path */
150
+ onSseEvent?: SimpleStreamOptions["onSseEvent"];
151
+ /** Per-session raw SSE diagnostic buffer */
152
+ rawSseDebugBuffer?: RawSseDebugBuffer;
153
+ /** Current session message-to-LLM conversion pipeline */
154
+ convertToLlm?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;
155
+ /** System prompt builder that can consider tool availability. Returns ordered provider-facing blocks. */
156
+ rebuildSystemPrompt?: (toolNames: string[], tools: Map<string, AgentTool>) => Promise<{
157
+ systemPrompt: string[];
158
+ }>;
159
+ /** Rebuild the SSH tool from current capability discovery results. */
160
+ reloadSshTool?: () => Promise<AgentTool | null>;
161
+ requestedToolNames?: ReadonlySet<string>;
162
+ /**
163
+ * Optional accessor for live MCP server instructions. Read by the session's
164
+ * `rebuildSystemPrompt`-skip optimization to detect server-side instruction
165
+ * changes (e.g. an MCP server upgrade) that would otherwise pass the tool-set
166
+ * signature comparison and silently keep a stale prompt cached.
167
+ */
168
+ getMcpServerInstructions?: () => Map<string, string> | undefined;
169
+ /** Enable hidden-by-default MCP tool discovery for this session. */
170
+ mcpDiscoveryEnabled?: boolean;
171
+ /** MCP tool names to activate for the current session when discovery mode is enabled. */
172
+ initialSelectedMCPToolNames?: string[];
173
+ /** Whether constructor-provided MCP defaults should be persisted immediately. */
174
+ persistInitialMCPToolSelection?: boolean;
175
+ /** MCP server names whose tools should seed discovery-mode sessions whenever those servers are connected. */
176
+ defaultSelectedMCPServerNames?: string[];
177
+ /** MCP tool names that should seed brand-new sessions created from this AgentSession. */
178
+ defaultSelectedMCPToolNames?: string[];
179
+ /** TTSR manager for time-traveling stream rules */
180
+ ttsrManager?: TtsrManager;
181
+ /** Secret obfuscator for deobfuscating streaming edit content */
182
+ obfuscator?: SecretObfuscator;
183
+ /** Logical owner for retained Python kernels created by this session. */
184
+ evalKernelOwnerId?: string;
185
+ /**
186
+ * AsyncJobManager that this session installed as the process-global instance.
187
+ * Only set for top-level sessions; subagents inherit the parent's manager and
188
+ * **MUST NOT** dispose it on their own teardown.
189
+ */
190
+ ownedAsyncJobManager?: AsyncJobManager;
191
+ /** Agent identity (registry id like "0-Main" or "3-Alice") used for IRC routing. */
192
+ agentId?: string;
193
+ /** Shared agent registry (for forwarding IRC observations to the main session UI). */
194
+ agentRegistry?: AgentRegistry;
195
+ /**
196
+ * Override the provider-facing session ID for all API requests from this session.
197
+ * When absent, `sessionManager.getSessionId()` is used. Needed when benchmark or
198
+ * SDK callers issue probes / prewarming with an explicit `--provider-session-id`
199
+ * so that credential sticky selection is consistent with the session's streaming calls.
200
+ */
201
+ providerSessionId?: string;
202
+ }
203
+ /** Options for AgentSession.prompt() */
204
+ export interface PromptOptions {
205
+ /** Whether to expand file-based prompt templates (default: true) */
206
+ expandPromptTemplates?: boolean;
207
+ /** Image attachments */
208
+ images?: ImageContent[];
209
+ /** When streaming, how to queue the message: "steer" (interrupt) or "followUp" (wait). */
210
+ streamingBehavior?: "steer" | "followUp";
211
+ /** Optional tool choice override for the next LLM call. */
212
+ toolChoice?: ToolChoice;
213
+ /** Send as developer/system message instead of user. Providers that support it use the developer role; others fall back to user. */
214
+ synthetic?: boolean;
215
+ /** Explicit billing/initiator attribution for the prompt. Defaults to user prompts as `user` and synthetic prompts as `agent`. */
216
+ attribution?: MessageAttribution;
217
+ /** Skip pre-send compaction checks for this prompt (internal use for maintenance flows). */
218
+ skipCompactionCheck?: boolean;
219
+ }
220
+ /** Result from a handoff operation. */
221
+ export interface HandoffResult {
222
+ document: string;
223
+ savedPath?: string;
224
+ }
225
+ export interface SessionHandoffOptions {
226
+ autoTriggered?: boolean;
227
+ signal?: AbortSignal;
228
+ }
229
+ /** Result from cycleModel() */
230
+ export interface ModelCycleResult {
231
+ model: Model;
232
+ thinkingLevel: ThinkingLevel | undefined;
233
+ /** Whether cycling through scoped models (--models flag) or all available */
234
+ isScoped: boolean;
235
+ }
236
+ /** Result from cycleRoleModels() */
237
+ export interface RoleModelCycleResult {
238
+ model: Model;
239
+ thinkingLevel: ThinkingLevel | undefined;
240
+ role: string;
241
+ }
242
+ /** Session statistics for /session command */
243
+ export interface SessionStats {
244
+ sessionFile: string | undefined;
245
+ sessionId: string;
246
+ userMessages: number;
247
+ assistantMessages: number;
248
+ toolCalls: number;
249
+ toolResults: number;
250
+ totalMessages: number;
251
+ tokens: {
252
+ input: number;
253
+ output: number;
254
+ cacheRead: number;
255
+ cacheWrite: number;
256
+ total: number;
257
+ };
258
+ premiumRequests: number;
259
+ cost: number;
260
+ }
261
+ export declare class AgentSession {
262
+ #private;
263
+ readonly agent: Agent;
264
+ readonly sessionManager: SessionManager;
265
+ readonly settings: Settings;
266
+ readonly configWarnings: string[];
267
+ readonly rawSseDebugBuffer: RawSseDebugBuffer;
268
+ constructor(config: AgentSessionConfig);
269
+ /** Model registry for API key resolution and model discovery */
270
+ get modelRegistry(): ModelRegistry;
271
+ /** Advance the tool-choice queue and return the next directive for the upcoming LLM call. */
272
+ nextToolChoice(): ToolChoice | undefined;
273
+ /**
274
+ * Force the next model call to target a specific active tool, then terminate
275
+ * the agent loop. Pushes a two-step sequence [forced, "none"] so the model
276
+ * calls exactly the forced tool once and then cannot call another.
277
+ */
278
+ setForcedToolChoice(toolName: string): void;
279
+ /** The tool-choice queue: forces forthcoming tool invocations and carries handlers. */
280
+ get toolChoiceQueue(): ToolChoiceQueue;
281
+ /** Peek the in-flight directive's invocation handler for use by the resolve tool. */
282
+ peekQueueInvoker(): ((input: unknown) => Promise<unknown> | unknown) | undefined;
283
+ peekStandingResolveHandler(): ((input: unknown) => Promise<unknown> | unknown) | undefined;
284
+ setStandingResolveHandler(handler: ((input: unknown) => Promise<unknown> | unknown) | null): void;
285
+ /** Provider-scoped mutable state store for transport/session caches. */
286
+ get providerSessionState(): Map<string, ProviderSessionState>;
287
+ getHindsightSessionState(): HindsightSessionState | undefined;
288
+ setHindsightSessionState(state: HindsightSessionState | undefined): HindsightSessionState | undefined;
289
+ /** TTSR manager for time-traveling stream rules */
290
+ get ttsrManager(): TtsrManager | undefined;
291
+ /** Whether a TTSR abort is pending (stream was aborted to inject rules) */
292
+ get isTtsrAbortPending(): boolean;
293
+ /** Whether the plan-mode → compaction transition's expected internal abort is
294
+ * pending. Consumed by `#handleAgentEvent` to stamp `SILENT_ABORT_MARKER`
295
+ * on the next aborted assistant message_end; cleared unconditionally by
296
+ * `InteractiveMode.#approvePlan`'s `finally` block. */
297
+ get isPlanCompactAbortPending(): boolean;
298
+ /** Arm the silent-abort marker for the next aborted assistant message_end.
299
+ * Caller MUST clear via `clearPlanCompactAbortPending()` in a `finally`
300
+ * to guarantee no leak. */
301
+ markPlanCompactAbortPending(): void;
302
+ /** Unconditionally clear the silent-abort flag. Idempotent: safe when the
303
+ * flag was never set OR was already consumed by `#handleAgentEvent`. */
304
+ clearPlanCompactAbortPending(): void;
305
+ /** Register a compact display string for a custom message that the caller is
306
+ * about to dispatch via `promptCustomMessage` / `sendCustomMessage`.
307
+ * Returns a stable tag the caller MUST embed in
308
+ * `CustomMessage.details.__pendingDisplayTag` so the agent-side
309
+ * `message_start` handler can remove the matching display entry when the
310
+ * queued message is consumed.
311
+ *
312
+ * Does NOT push to the agent's steering/followUp queue — that happens
313
+ * separately inside `sendCustomMessage`. */
314
+ enqueueCustomMessageDisplay(text: string, mode: "steer" | "followUp"): string;
315
+ getAsyncJobSnapshot(options?: {
316
+ recentLimit?: number;
317
+ }): AsyncJobSnapshot | null;
318
+ /**
319
+ * Emit a UI-only notice to the session. Surfaces in interactive mode as a
320
+ * `showWarning` / `showError` / `showStatus` line; non-interactive modes
321
+ * receive the event through the normal subscribe stream.
322
+ *
323
+ * Notices are NOT added to agent state and never reach the LLM — use this
324
+ * for out-of-band conditions the user should see but the model shouldn't
325
+ * react to (e.g. background queue flush failures).
326
+ */
327
+ emitNotice(level: "info" | "warning" | "error", message: string, source?: string): void;
328
+ /**
329
+ * Subscribe to agent events.
330
+ * Session persistence is handled internally (saves messages on message_end).
331
+ * Multiple listeners can be added. Returns unsubscribe function for this listener.
332
+ */
333
+ subscribe(listener: AgentSessionEventListener): () => void;
334
+ /**
335
+ * Remove all listeners, flush pending writes, and disconnect from agent.
336
+ * Call this when completely done with the session.
337
+ */
338
+ dispose(): Promise<void>;
339
+ /** Full agent state */
340
+ get state(): AgentState;
341
+ /** Current model (may be undefined if not yet selected) */
342
+ get model(): Model | undefined;
343
+ /** Current thinking level */
344
+ get thinkingLevel(): ThinkingLevel | undefined;
345
+ get serviceTier(): ServiceTier | undefined;
346
+ /** Whether agent is currently streaming a response */
347
+ get isStreaming(): boolean;
348
+ /** Wait until streaming and deferred recovery work are fully settled. */
349
+ waitForIdle(): Promise<void>;
350
+ /** Most recent assistant message in agent state. */
351
+ getLastAssistantMessage(): AssistantMessage | undefined;
352
+ /** Current effective system prompt blocks (includes any per-turn extension modifications) */
353
+ get systemPrompt(): string[];
354
+ /** Current retry attempt (0 if not retrying) */
355
+ get retryAttempt(): number;
356
+ /**
357
+ * Get the names of currently active tools.
358
+ * Returns the names of tools currently set on the agent.
359
+ */
360
+ getActiveToolNames(): string[];
361
+ /** Whether the edit tool is registered in this session. */
362
+ get hasEditTool(): boolean;
363
+ /**
364
+ * Get a tool by name from the registry.
365
+ */
366
+ getToolByName(name: string): AgentTool | undefined;
367
+ /**
368
+ * Get all configured tool names (built-in via --tools or default, plus custom tools).
369
+ */
370
+ getAllToolNames(): string[];
371
+ isMCPDiscoveryEnabled(): boolean;
372
+ /** @deprecated Use {@link getDiscoverableTools} with `{ source: "mcp" }` instead.
373
+ * Preserves the legacy `description`-bearing MCP shape for back-compat callers. */
374
+ getDiscoverableMCPTools(): DiscoverableMCPTool[];
375
+ /** @deprecated Use {@link getDiscoverableToolSearchIndex} instead.
376
+ * Returns the legacy MCP search index whose documents expose `tool.description`. */
377
+ getDiscoverableMCPSearchIndex(): DiscoverableMCPSearchIndex;
378
+ getSelectedMCPToolNames(): string[];
379
+ activateDiscoveredMCPTools(toolNames: string[]): Promise<string[]>;
380
+ isToolDiscoveryEnabled(): boolean;
381
+ getDiscoverableTools(filter?: {
382
+ source?: DiscoverableTool["source"];
383
+ }): DiscoverableTool[];
384
+ getDiscoverableToolSearchIndex(): DiscoverableToolSearchIndex;
385
+ getSelectedDiscoveredToolNames(): string[];
386
+ activateDiscoveredTools(toolNames: string[]): Promise<string[]>;
387
+ /**
388
+ * Reload the SSH tool from disk-backed capability discovery and make the
389
+ * refreshed definition visible to the next model call without restarting.
390
+ */
391
+ refreshSshTool(options?: {
392
+ activateIfAvailable?: boolean;
393
+ }): Promise<void>;
394
+ /**
395
+ * Set active tools by name.
396
+ * Only tools in the registry can be enabled. Unknown tool names are ignored.
397
+ * Also rebuilds the system prompt to reflect the new tool set.
398
+ * Changes take effect before the next model call.
399
+ */
400
+ setActiveToolsByName(toolNames: string[]): Promise<void>;
401
+ /** Rebuild the base system prompt using the current active tool set. */
402
+ refreshBaseSystemPrompt(): Promise<void>;
403
+ /**
404
+ * Replace MCP tools in the registry and recompute the visible MCP tool set immediately.
405
+ * This allows /mcp add/remove/reauth to take effect without restarting the session.
406
+ */
407
+ refreshMCPTools(mcpTools: CustomTool[]): Promise<void>;
408
+ /**
409
+ * Replace RPC host-owned tools and refresh the active tool set before the next model call.
410
+ */
411
+ refreshRpcHostTools(rpcTools: AgentTool[]): Promise<void>;
412
+ /** Whether auto-compaction is currently running */
413
+ get isCompacting(): boolean;
414
+ /** All messages including custom types like BashExecutionMessage */
415
+ get messages(): AgentMessage[];
416
+ buildDisplaySessionContext(): SessionContext;
417
+ /** Convert session messages using the same pre-LLM pipeline as the active session. */
418
+ convertMessagesToLlm(messages: AgentMessage[], signal?: AbortSignal): Promise<Message[]>;
419
+ /** Apply session-level stream hooks to a direct side request. */
420
+ prepareSimpleStreamOptions(options: SimpleStreamOptions, provider?: string): SimpleStreamOptions;
421
+ /** Current steering mode */
422
+ get steeringMode(): "all" | "one-at-a-time";
423
+ /** Current follow-up mode */
424
+ get followUpMode(): "all" | "one-at-a-time";
425
+ /** Current interrupt mode */
426
+ get interruptMode(): "immediate" | "wait";
427
+ /** Current session file path, or undefined if sessions are disabled */
428
+ get sessionFile(): string | undefined;
429
+ /** Current session ID */
430
+ get sessionId(): string;
431
+ /** Current session display name, if set */
432
+ get sessionName(): string | undefined;
433
+ /** Scoped models for cycling (from --models flag) */
434
+ get scopedModels(): ReadonlyArray<{
435
+ model: Model;
436
+ thinkingLevel?: ThinkingLevel;
437
+ }>;
438
+ /** Prompt templates */
439
+ getPlanModeState(): PlanModeState | undefined;
440
+ setPlanModeState(state: PlanModeState | undefined): void;
441
+ getGoalModeState(): GoalModeState | undefined;
442
+ setGoalModeState(state: GoalModeState | undefined): void;
443
+ get goalRuntime(): GoalRuntime;
444
+ markPlanReferenceSent(): void;
445
+ setPlanReferencePath(path: string): void;
446
+ get clientBridge(): ClientBridge | undefined;
447
+ setClientBridge(bridge: ClientBridge | undefined): void;
448
+ getCheckpointState(): CheckpointState | undefined;
449
+ setCheckpointState(state: CheckpointState | undefined): void;
450
+ /**
451
+ * Inject the plan mode context message into the conversation history.
452
+ */
453
+ sendPlanModeContext(options?: {
454
+ deliverAs?: "steer" | "followUp" | "nextTurn";
455
+ }): Promise<void>;
456
+ sendGoalModeContext(options?: {
457
+ deliverAs?: "steer" | "followUp" | "nextTurn";
458
+ }): Promise<void>;
459
+ resolveRoleModel(role: string): Model | undefined;
460
+ /**
461
+ * Resolve a role to its model AND thinking level.
462
+ * Unlike resolveRoleModel(), this preserves the thinking level suffix
463
+ * from role configuration (e.g., "anthropic/claude-sonnet-4-5:xhigh").
464
+ */
465
+ resolveRoleModelWithThinking(role: string): ResolvedModelRoleValue;
466
+ get promptTemplates(): ReadonlyArray<PromptTemplate>;
467
+ /** Replace file-based slash commands used for prompt expansion. */
468
+ setSlashCommands(slashCommands: FileSlashCommand[]): void;
469
+ /** Custom commands (TypeScript slash commands and MCP prompts) */
470
+ get customCommands(): ReadonlyArray<LoadedCustomCommand>;
471
+ /** Update the MCP prompt commands list. Called when server prompts are (re)loaded. */
472
+ setMCPPromptCommands(commands: LoadedCustomCommand[]): void;
473
+ /**
474
+ * Send a prompt to the agent.
475
+ * - Handles extension commands (registered via pi.registerCommand) immediately, even during streaming
476
+ * - Expands file-based prompt templates by default
477
+ * - During streaming, queues via steer() or followUp() based on streamingBehavior option
478
+ * - Validates model and API key before sending (when not streaming)
479
+ * @throws Error if streaming and no streamingBehavior specified
480
+ * @throws Error if no model selected or no API key available (when not streaming)
481
+ */
482
+ prompt(text: string, options?: PromptOptions): Promise<void>;
483
+ promptCustomMessage<T = unknown>(message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details" | "attribution">, options?: Pick<PromptOptions, "streamingBehavior" | "toolChoice">): Promise<void>;
484
+ /**
485
+ * Queue a steering message to interrupt the agent mid-run.
486
+ */
487
+ steer(text: string, images?: ImageContent[]): Promise<void>;
488
+ /**
489
+ * Queue a follow-up message to process after the agent would otherwise stop.
490
+ */
491
+ followUp(text: string, images?: ImageContent[]): Promise<void>;
492
+ queueDeferredMessage(message: CustomMessage): void;
493
+ /**
494
+ * Send a custom message to the session. Creates a CustomMessageEntry.
495
+ *
496
+ * Handles three cases:
497
+ * - Streaming: queue as steer/follow-up or store for next turn
498
+ * - Not streaming + triggerTurn: appends to state/session, starts new turn
499
+ * - Not streaming + no trigger: appends to state/session, no turn
500
+ */
501
+ sendCustomMessage<T = unknown>(message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details" | "attribution">, options?: {
502
+ triggerTurn?: boolean;
503
+ deliverAs?: "steer" | "followUp" | "nextTurn";
504
+ }): Promise<void>;
505
+ /**
506
+ * Send a user message to the agent. Always triggers a turn.
507
+ * When the agent is streaming, use deliverAs to specify how to queue the message.
508
+ *
509
+ * @param content User message content (string or content array)
510
+ * @param options.deliverAs Delivery mode when streaming: "steer" or "followUp"
511
+ */
512
+ sendUserMessage(content: string | (TextContent | ImageContent)[], options?: {
513
+ deliverAs?: "steer" | "followUp";
514
+ }): Promise<void>;
515
+ /**
516
+ * Clear queued messages and return them.
517
+ * Useful for restoring to editor when user aborts.
518
+ */
519
+ clearQueue(): {
520
+ steering: string[];
521
+ followUp: string[];
522
+ };
523
+ /** Number of pending messages (includes steering, follow-up, and next-turn messages) */
524
+ get queuedMessageCount(): number;
525
+ /** Get pending messages (read-only). Returns the public text-only view;
526
+ * internal `{text, tag?}` records are mapped to `.text` so callers
527
+ * (`updatePendingMessagesDisplay`, `restoreQueuedMessagesToEditor`) see
528
+ * the unchanged historical shape. */
529
+ getQueuedMessages(): {
530
+ steering: readonly string[];
531
+ followUp: readonly string[];
532
+ };
533
+ /**
534
+ * Pop the last queued message (steering first, then follow-up).
535
+ * Used by dequeue keybinding to restore messages to editor one at a time.
536
+ * Returns the popped entry's `.text`; the tag (if any) dies with the
537
+ * record — no orphan state can outlive the queue entry.
538
+ */
539
+ popLastQueuedMessage(): string | undefined;
540
+ get skillsSettings(): SkillsSettings | undefined;
541
+ /** Skills loaded by SDK (empty if --no-skills or skills: [] was passed) */
542
+ get skills(): readonly Skill[];
543
+ /** Skill loading warnings captured by SDK */
544
+ get skillWarnings(): readonly SkillWarning[];
545
+ getTodoPhases(): TodoPhase[];
546
+ setTodoPhases(phases: TodoPhase[]): void;
547
+ /**
548
+ * Abort current operation and wait for agent to become idle.
549
+ */
550
+ abort(options?: {
551
+ goalReason?: "interrupted" | "internal";
552
+ }): Promise<void>;
553
+ /**
554
+ * Start a new session, optionally with initial messages and parent tracking.
555
+ * Clears all messages and starts a new session.
556
+ * Listeners are preserved and will continue receiving events.
557
+ * @param options - Optional initial messages and parent session path
558
+ * @returns true if completed, false if cancelled by hook
559
+ */
560
+ newSession(options?: NewSessionOptions): Promise<boolean>;
561
+ /**
562
+ * Set a display name for the current session.
563
+ */
564
+ setSessionName(name: string, source?: "auto" | "user"): Promise<boolean>;
565
+ /**
566
+ * Fork the current session, creating a new session file with the exact same state.
567
+ * Copies all entries and artifacts to the new session.
568
+ * Unlike newSession(), this preserves all messages in the agent state.
569
+ * @returns true if completed, false if cancelled by hook or not persisting
570
+ */
571
+ fork(): Promise<boolean>;
572
+ /**
573
+ * Set model directly.
574
+ * Validates API key, saves to session and settings.
575
+ * @throws Error if no API key available for the model
576
+ */
577
+ setModel(model: Model, role?: string, options?: {
578
+ selector?: string;
579
+ thinkingLevel?: ThinkingLevel;
580
+ }): Promise<void>;
581
+ /**
582
+ * Set model temporarily (for this session only).
583
+ * Validates API key, saves to session log but NOT to settings.
584
+ * @throws Error if no API key available for the model
585
+ */
586
+ setModelTemporary(model: Model, thinkingLevel?: ThinkingLevel): Promise<void>;
587
+ /**
588
+ * Cycle to next/previous model.
589
+ * Uses scoped models (from --models flag) if available, otherwise all available models.
590
+ * @param direction - "forward" (default) or "backward"
591
+ * @returns The new model info, or undefined if only one model available
592
+ */
593
+ cycleModel(direction?: "forward" | "backward"): Promise<ModelCycleResult | undefined>;
594
+ /**
595
+ * Cycle through configured role models in a fixed order.
596
+ * Skips missing roles.
597
+ * @param roleOrder - Order of roles to cycle through (e.g., ["slow", "default", "smol"])
598
+ * @param options - Optional settings: `temporary` to not persist to settings
599
+ */
600
+ cycleRoleModels(roleOrder: readonly string[], options?: {
601
+ temporary?: boolean;
602
+ }): Promise<RoleModelCycleResult | undefined>;
603
+ /**
604
+ * Get all available models with valid API keys.
605
+ */
606
+ getAvailableModels(): Model[];
607
+ /**
608
+ * Set thinking level.
609
+ * Saves the effective metadata-clamped level to session and settings only if it changes.
610
+ */
611
+ setThinkingLevel(level: ThinkingLevel | undefined, persist?: boolean): void;
612
+ /**
613
+ * Cycle to next thinking level.
614
+ * @returns New level, or undefined if model doesn't support thinking
615
+ */
616
+ cycleThinkingLevel(): ThinkingLevel | undefined;
617
+ isFastModeEnabled(): boolean;
618
+ setServiceTier(serviceTier: ServiceTier | undefined): void;
619
+ setFastMode(enabled: boolean): void;
620
+ toggleFastMode(): boolean;
621
+ /**
622
+ * Get available thinking levels for current model.
623
+ */
624
+ getAvailableThinkingLevels(): ReadonlyArray<Effort>;
625
+ /**
626
+ * Set steering mode.
627
+ * Saves to settings.
628
+ */
629
+ setSteeringMode(mode: "all" | "one-at-a-time"): void;
630
+ /**
631
+ * Set follow-up mode.
632
+ * Saves to settings.
633
+ */
634
+ setFollowUpMode(mode: "all" | "one-at-a-time"): void;
635
+ /**
636
+ * Set interrupt mode.
637
+ * Saves to settings.
638
+ */
639
+ setInterruptMode(mode: "immediate" | "wait"): void;
640
+ /**
641
+ * Manually compact the session context.
642
+ * Aborts current agent operation first.
643
+ * @param customInstructions Optional instructions for the compaction summary
644
+ * @param options Optional callbacks for completion/error handling
645
+ */
646
+ compact(customInstructions?: string, options?: CompactOptions): Promise<CompactionResult>;
647
+ /**
648
+ * Cancel in-progress context maintenance (manual compaction, auto-compaction, or auto-handoff).
649
+ */
650
+ abortCompaction(): void;
651
+ /** Trigger idle compaction through the auto-compaction flow (with UI events). */
652
+ runIdleCompaction(): Promise<void>;
653
+ /**
654
+ * Cancel in-progress branch summarization.
655
+ */
656
+ abortBranchSummary(): void;
657
+ /**
658
+ * Cancel in-progress handoff generation.
659
+ */
660
+ abortHandoff(): void;
661
+ /**
662
+ * Check if handoff generation is in progress.
663
+ */
664
+ get isGeneratingHandoff(): boolean;
665
+ /**
666
+ * Generate a handoff document with a oneshot LLM call, then start a new session with it.
667
+ *
668
+ * @param customInstructions Optional focus for the handoff document
669
+ * @param options Handoff execution options
670
+ * @returns The handoff document text, or undefined if cancelled/failed
671
+ */
672
+ handoff(customInstructions?: string, options?: SessionHandoffOptions): Promise<HandoffResult | undefined>;
673
+ /**
674
+ * Toggle auto-compaction setting.
675
+ */
676
+ setAutoCompactionEnabled(enabled: boolean): void;
677
+ /** Whether auto-compaction is enabled */
678
+ get autoCompactionEnabled(): boolean;
679
+ /**
680
+ * Cancel in-progress retry.
681
+ */
682
+ abortRetry(): void;
683
+ /** Whether auto-retry is currently in progress */
684
+ get isRetrying(): boolean;
685
+ /** Whether auto-retry is enabled */
686
+ get autoRetryEnabled(): boolean;
687
+ /**
688
+ * Toggle auto-retry setting.
689
+ */
690
+ setAutoRetryEnabled(enabled: boolean): void;
691
+ /**
692
+ * Manually retry the last failed assistant turn.
693
+ * Removes the error message from agent state and re-attempts with a fresh retry budget.
694
+ * @returns true if retry was initiated, false if no failed turn to retry or agent is busy
695
+ */
696
+ retry(): Promise<boolean>;
697
+ /**
698
+ * Execute a bash command.
699
+ * Adds result to agent context and session.
700
+ * @param command The bash command to execute
701
+ * @param onChunk Optional streaming callback for output
702
+ * @param options.excludeFromContext If true, command output won't be sent to LLM (!! prefix)
703
+ */
704
+ executeBash(command: string, onChunk?: (chunk: string) => void, options?: {
705
+ excludeFromContext?: boolean;
706
+ }): Promise<BashResult>;
707
+ /**
708
+ * Record a bash execution result in session history.
709
+ * Used by executeBash and by extensions that handle bash execution themselves.
710
+ */
711
+ recordBashResult(command: string, result: BashResult, options?: {
712
+ excludeFromContext?: boolean;
713
+ }): void;
714
+ /**
715
+ * Cancel running bash command.
716
+ */
717
+ abortBash(): void;
718
+ /** Whether a bash command is currently running */
719
+ get isBashRunning(): boolean;
720
+ /** Whether there are pending bash messages waiting to be flushed */
721
+ get hasPendingBashMessages(): boolean;
722
+ /**
723
+ * Execute Python code in the shared kernel.
724
+ * Uses the same kernel session as eval's Python backend, allowing collaborative editing.
725
+ * @param code The Python code to execute
726
+ * @param onChunk Optional streaming callback for output
727
+ * @param options.excludeFromContext If true, execution won't be sent to LLM ($$ prefix)
728
+ */
729
+ executePython(code: string, onChunk?: (chunk: string) => void, options?: {
730
+ excludeFromContext?: boolean;
731
+ }): Promise<PythonResult>;
732
+ assertEvalExecutionAllowed(): void;
733
+ /**
734
+ * Track Python work started outside AgentSession.executePython so dispose can await and abort it too.
735
+ */
736
+ trackEvalExecution<T>(execution: Promise<T>, abortController: AbortController): Promise<T>;
737
+ /**
738
+ * Record a Python execution result in session history.
739
+ */
740
+ recordPythonResult(code: string, result: PythonResult, options?: {
741
+ excludeFromContext?: boolean;
742
+ }): void;
743
+ /**
744
+ * Cancel running Python execution.
745
+ */
746
+ abortEval(): void;
747
+ /** Whether a Python execution is currently running */
748
+ get isEvalRunning(): boolean;
749
+ /** Whether there are pending Python messages waiting to be flushed */
750
+ get hasPendingPythonMessages(): boolean;
751
+ /**
752
+ * Generate an ephemeral reply to a background message (e.g. an IRC ping from
753
+ * another agent) using this session's current model + system prompt + history.
754
+ *
755
+ * The reply is computed via a side-channel `streamSimple` call (analogous to
756
+ * `/btw`) so it never blocks on the recipient's in-flight tool calls. After
757
+ * the reply is generated, both the incoming question and the auto-reply are
758
+ * queued for injection into the recipient's persisted history so the model
759
+ * sees the exchange on its next turn. Injection happens immediately when the
760
+ * session is idle, otherwise it is deferred until streaming ends.
761
+ */
762
+ respondAsBackground(args: {
763
+ from: string;
764
+ message: string;
765
+ awaitReply?: boolean;
766
+ signal?: AbortSignal;
767
+ }): Promise<{
768
+ replyText: string | null;
769
+ }>;
770
+ /**
771
+ * Emit an IRC relay observation event on this session for UI rendering only.
772
+ * Does not persist the record to history. Public so other sessions can forward.
773
+ */
774
+ emitIrcRelayObservation(record: CustomMessage): void;
775
+ /**
776
+ * Run a single ephemeral side-channel turn against this session's current
777
+ * model + system prompt + history. No tools are used; the side request
778
+ * does not block on, or interfere with, any in-flight main turn. The
779
+ * session's history and persisted state are NOT modified by this call.
780
+ *
781
+ * Used by `respondAsBackground` (IRC) and `BtwController` (`/btw`) to share
782
+ * the snapshot + stream pipeline. The snapshot includes any in-flight
783
+ * streaming assistant text so the model sees the half-finished response
784
+ * rather than missing context.
785
+ */
786
+ runEphemeralTurn(args: {
787
+ promptText: string;
788
+ onTextDelta?: (delta: string) => void;
789
+ signal?: AbortSignal;
790
+ }): Promise<{
791
+ replyText: string;
792
+ assistantMessage: AssistantMessage;
793
+ }>;
794
+ /**
795
+ * Reload the current session from disk.
796
+ *
797
+ * Intended for extension commands and headless modes to re-read the current session
798
+ * file and re-emit session_switch hooks.
799
+ */
800
+ reload(): Promise<void>;
801
+ /**
802
+ * Switch to a different session file.
803
+ * Aborts current operation, loads messages, restores model/thinking.
804
+ * Listeners are preserved and will continue receiving events.
805
+ * @returns true if switch completed, false if cancelled by hook
806
+ */
807
+ switchSession(sessionPath: string): Promise<boolean>;
808
+ /**
809
+ * Create a branch from a specific entry.
810
+ * Emits before_branch/branch session events to hooks.
811
+ *
812
+ * @param entryId ID of the entry to branch from
813
+ * @returns Object with:
814
+ * - selectedText: The text of the selected user message (for editor pre-fill)
815
+ * - cancelled: True if a hook cancelled the branch
816
+ */
817
+ branch(entryId: string): Promise<{
818
+ selectedText: string;
819
+ cancelled: boolean;
820
+ }>;
821
+ /**
822
+ * Navigate to a different node in the session tree.
823
+ * Unlike branch() which creates a new session file, this stays in the same file.
824
+ *
825
+ * @param targetId The entry ID to navigate to
826
+ * @param options.summarize Whether user wants to summarize abandoned branch
827
+ * @param options.customInstructions Custom instructions for summarizer
828
+ * @returns Result with editorText (if user message) and cancelled status
829
+ */
830
+ navigateTree(targetId: string, options?: {
831
+ summarize?: boolean;
832
+ customInstructions?: string;
833
+ }): Promise<{
834
+ editorText?: string;
835
+ cancelled: boolean;
836
+ aborted?: boolean;
837
+ summaryEntry?: BranchSummaryEntry;
838
+ /** Raw session context built during navigation — pass to renderInitialMessages to skip a second O(N) walk. */
839
+ sessionContext?: SessionContext;
840
+ }>;
841
+ /**
842
+ * Get all user messages from session for branch selector.
843
+ */
844
+ getUserMessagesForBranching(): Array<{
845
+ entryId: string;
846
+ text: string;
847
+ }>;
848
+ /**
849
+ * Get session statistics.
850
+ */
851
+ getSessionStats(): SessionStats;
852
+ /**
853
+ * Get current context usage statistics.
854
+ * Uses the last assistant message's usage data when available,
855
+ * otherwise estimates tokens for all messages.
856
+ */
857
+ getContextUsage(): ContextUsage | undefined;
858
+ fetchUsageReports(signal?: AbortSignal): Promise<UsageReport[] | null>;
859
+ /**
860
+ * Export session to HTML.
861
+ * @param outputPath Optional output path (defaults to session directory)
862
+ * @returns Path to exported file
863
+ */
864
+ exportToHtml(outputPath?: string): Promise<string>;
865
+ /**
866
+ * Get text content of last assistant message.
867
+ * Useful for /copy command.
868
+ * @returns Text content, or undefined if no assistant message exists
869
+ */
870
+ getLastAssistantText(): string | undefined;
871
+ hasCopyCandidateAssistantMessage(): boolean;
872
+ /**
873
+ * Get text content of the most recent visible handoff message.
874
+ * Fresh handoff sessions store the handoff context as a custom message, not
875
+ * an assistant message, so callers that copy the "last" message can use this
876
+ * as a fallback before the new session has an assistant response.
877
+ */
878
+ getLastVisibleHandoffText(): string | undefined;
879
+ /**
880
+ * Format the entire session as plain text for clipboard export.
881
+ * Includes user messages, assistant text, thinking blocks, tool calls, and tool results.
882
+ */
883
+ formatSessionAsText(): string;
884
+ /**
885
+ * Format the conversation as compact context for subagents.
886
+ * Includes only user messages and assistant text responses.
887
+ * Excludes: system prompt, tool definitions, tool calls/results, thinking blocks.
888
+ */
889
+ formatCompactContext(): string;
890
+ /**
891
+ * Check if extensions have handlers for a specific event type.
892
+ */
893
+ hasExtensionHandlers(eventType: string): boolean;
894
+ /**
895
+ * Get the extension runner (for setting UI context and error handlers).
896
+ */
897
+ get extensionRunner(): ExtensionRunner | undefined;
898
+ }