@vaclav-synacek/pi-coding-agent-termux 0.45.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 (478) hide show
  1. package/CHANGELOG.md +1961 -0
  2. package/README.md +1392 -0
  3. package/dist/cli/args.d.ts +42 -0
  4. package/dist/cli/args.d.ts.map +1 -0
  5. package/dist/cli/args.js +248 -0
  6. package/dist/cli/args.js.map +1 -0
  7. package/dist/cli/file-processor.d.ts +15 -0
  8. package/dist/cli/file-processor.d.ts.map +1 -0
  9. package/dist/cli/file-processor.js +79 -0
  10. package/dist/cli/file-processor.js.map +1 -0
  11. package/dist/cli/list-models.d.ts +9 -0
  12. package/dist/cli/list-models.d.ts.map +1 -0
  13. package/dist/cli/list-models.js +92 -0
  14. package/dist/cli/list-models.js.map +1 -0
  15. package/dist/cli/session-picker.d.ts +9 -0
  16. package/dist/cli/session-picker.d.ts.map +1 -0
  17. package/dist/cli/session-picker.js +32 -0
  18. package/dist/cli/session-picker.js.map +1 -0
  19. package/dist/cli.d.ts +3 -0
  20. package/dist/cli.d.ts.map +1 -0
  21. package/dist/cli.js +10 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/config.d.ts +61 -0
  24. package/dist/config.d.ts.map +1 -0
  25. package/dist/config.js +141 -0
  26. package/dist/config.js.map +1 -0
  27. package/dist/core/agent-session.d.ts +523 -0
  28. package/dist/core/agent-session.d.ts.map +1 -0
  29. package/dist/core/agent-session.js +1795 -0
  30. package/dist/core/agent-session.js.map +1 -0
  31. package/dist/core/auth-storage.d.ts +112 -0
  32. package/dist/core/auth-storage.d.ts.map +1 -0
  33. package/dist/core/auth-storage.js +297 -0
  34. package/dist/core/auth-storage.js.map +1 -0
  35. package/dist/core/bash-executor.d.ts +47 -0
  36. package/dist/core/bash-executor.d.ts.map +1 -0
  37. package/dist/core/bash-executor.js +211 -0
  38. package/dist/core/bash-executor.js.map +1 -0
  39. package/dist/core/compaction/branch-summarization.d.ts +84 -0
  40. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  41. package/dist/core/compaction/branch-summarization.js +235 -0
  42. package/dist/core/compaction/branch-summarization.js.map +1 -0
  43. package/dist/core/compaction/compaction.d.ts +110 -0
  44. package/dist/core/compaction/compaction.d.ts.map +1 -0
  45. package/dist/core/compaction/compaction.js +559 -0
  46. package/dist/core/compaction/compaction.js.map +1 -0
  47. package/dist/core/compaction/index.d.ts +7 -0
  48. package/dist/core/compaction/index.d.ts.map +1 -0
  49. package/dist/core/compaction/index.js +7 -0
  50. package/dist/core/compaction/index.js.map +1 -0
  51. package/dist/core/compaction/utils.d.ts +35 -0
  52. package/dist/core/compaction/utils.d.ts.map +1 -0
  53. package/dist/core/compaction/utils.js +138 -0
  54. package/dist/core/compaction/utils.js.map +1 -0
  55. package/dist/core/event-bus.d.ts +9 -0
  56. package/dist/core/event-bus.d.ts.map +1 -0
  57. package/dist/core/event-bus.js +25 -0
  58. package/dist/core/event-bus.js.map +1 -0
  59. package/dist/core/exec.d.ts +29 -0
  60. package/dist/core/exec.d.ts.map +1 -0
  61. package/dist/core/exec.js +71 -0
  62. package/dist/core/exec.js.map +1 -0
  63. package/dist/core/export-html/index.d.ts +17 -0
  64. package/dist/core/export-html/index.d.ts.map +1 -0
  65. package/dist/core/export-html/index.js +193 -0
  66. package/dist/core/export-html/index.js.map +1 -0
  67. package/dist/core/export-html/template.css +910 -0
  68. package/dist/core/export-html/template.html +54 -0
  69. package/dist/core/export-html/template.js +1329 -0
  70. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  71. package/dist/core/export-html/vendor/marked.min.js +6 -0
  72. package/dist/core/extensions/index.d.ts +10 -0
  73. package/dist/core/extensions/index.d.ts.map +1 -0
  74. package/dist/core/extensions/index.js +9 -0
  75. package/dist/core/extensions/index.js.map +1 -0
  76. package/dist/core/extensions/loader.d.ts +25 -0
  77. package/dist/core/extensions/loader.d.ts.map +1 -0
  78. package/dist/core/extensions/loader.js +383 -0
  79. package/dist/core/extensions/loader.js.map +1 -0
  80. package/dist/core/extensions/runner.d.ts +89 -0
  81. package/dist/core/extensions/runner.d.ts.map +1 -0
  82. package/dist/core/extensions/runner.js +406 -0
  83. package/dist/core/extensions/runner.js.map +1 -0
  84. package/dist/core/extensions/types.d.ts +654 -0
  85. package/dist/core/extensions/types.d.ts.map +1 -0
  86. package/dist/core/extensions/types.js +32 -0
  87. package/dist/core/extensions/types.js.map +1 -0
  88. package/dist/core/extensions/wrapper.d.ts +27 -0
  89. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  90. package/dist/core/extensions/wrapper.js +102 -0
  91. package/dist/core/extensions/wrapper.js.map +1 -0
  92. package/dist/core/footer-data-provider.d.ts +25 -0
  93. package/dist/core/footer-data-provider.d.ts.map +1 -0
  94. package/dist/core/footer-data-provider.js +121 -0
  95. package/dist/core/footer-data-provider.js.map +1 -0
  96. package/dist/core/index.d.ts +9 -0
  97. package/dist/core/index.d.ts.map +1 -0
  98. package/dist/core/index.js +9 -0
  99. package/dist/core/index.js.map +1 -0
  100. package/dist/core/keybindings.d.ts +59 -0
  101. package/dist/core/keybindings.d.ts.map +1 -0
  102. package/dist/core/keybindings.js +151 -0
  103. package/dist/core/keybindings.js.map +1 -0
  104. package/dist/core/messages.d.ts +77 -0
  105. package/dist/core/messages.d.ts.map +1 -0
  106. package/dist/core/messages.js +123 -0
  107. package/dist/core/messages.js.map +1 -0
  108. package/dist/core/model-registry.d.ts +57 -0
  109. package/dist/core/model-registry.d.ts.map +1 -0
  110. package/dist/core/model-registry.js +314 -0
  111. package/dist/core/model-registry.js.map +1 -0
  112. package/dist/core/model-resolver.d.ts +76 -0
  113. package/dist/core/model-resolver.d.ts.map +1 -0
  114. package/dist/core/model-resolver.js +308 -0
  115. package/dist/core/model-resolver.js.map +1 -0
  116. package/dist/core/prompt-templates.d.ts +40 -0
  117. package/dist/core/prompt-templates.d.ts.map +1 -0
  118. package/dist/core/prompt-templates.js +197 -0
  119. package/dist/core/prompt-templates.js.map +1 -0
  120. package/dist/core/sdk.d.ts +181 -0
  121. package/dist/core/sdk.d.ts.map +1 -0
  122. package/dist/core/sdk.js +466 -0
  123. package/dist/core/sdk.js.map +1 -0
  124. package/dist/core/session-manager.d.ts +313 -0
  125. package/dist/core/session-manager.d.ts.map +1 -0
  126. package/dist/core/session-manager.js +996 -0
  127. package/dist/core/session-manager.js.map +1 -0
  128. package/dist/core/settings-manager.d.ts +138 -0
  129. package/dist/core/settings-manager.d.ts.map +1 -0
  130. package/dist/core/settings-manager.js +327 -0
  131. package/dist/core/settings-manager.js.map +1 -0
  132. package/dist/core/skills.d.ts +50 -0
  133. package/dist/core/skills.d.ts.map +1 -0
  134. package/dist/core/skills.js +338 -0
  135. package/dist/core/skills.js.map +1 -0
  136. package/dist/core/system-prompt.d.ts +48 -0
  137. package/dist/core/system-prompt.d.ts.map +1 -0
  138. package/dist/core/system-prompt.js +224 -0
  139. package/dist/core/system-prompt.js.map +1 -0
  140. package/dist/core/timings.d.ts +7 -0
  141. package/dist/core/timings.d.ts.map +1 -0
  142. package/dist/core/timings.js +25 -0
  143. package/dist/core/timings.js.map +1 -0
  144. package/dist/core/tools/bash.d.ts +42 -0
  145. package/dist/core/tools/bash.d.ts.map +1 -0
  146. package/dist/core/tools/bash.js +223 -0
  147. package/dist/core/tools/bash.js.map +1 -0
  148. package/dist/core/tools/edit-diff.d.ts +33 -0
  149. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  150. package/dist/core/tools/edit-diff.js +171 -0
  151. package/dist/core/tools/edit-diff.js.map +1 -0
  152. package/dist/core/tools/edit.d.ts +37 -0
  153. package/dist/core/tools/edit.d.ts.map +1 -0
  154. package/dist/core/tools/edit.js +143 -0
  155. package/dist/core/tools/edit.js.map +1 -0
  156. package/dist/core/tools/find.d.ts +37 -0
  157. package/dist/core/tools/find.d.ts.map +1 -0
  158. package/dist/core/tools/find.js +206 -0
  159. package/dist/core/tools/find.js.map +1 -0
  160. package/dist/core/tools/grep.d.ts +43 -0
  161. package/dist/core/tools/grep.d.ts.map +1 -0
  162. package/dist/core/tools/grep.js +239 -0
  163. package/dist/core/tools/grep.js.map +1 -0
  164. package/dist/core/tools/index.d.ts +70 -0
  165. package/dist/core/tools/index.d.ts.map +1 -0
  166. package/dist/core/tools/index.js +56 -0
  167. package/dist/core/tools/index.js.map +1 -0
  168. package/dist/core/tools/ls.d.ts +38 -0
  169. package/dist/core/tools/ls.d.ts.map +1 -0
  170. package/dist/core/tools/ls.js +118 -0
  171. package/dist/core/tools/ls.js.map +1 -0
  172. package/dist/core/tools/path-utils.d.ts +8 -0
  173. package/dist/core/tools/path-utils.d.ts.map +1 -0
  174. package/dist/core/tools/path-utils.js +53 -0
  175. package/dist/core/tools/path-utils.js.map +1 -0
  176. package/dist/core/tools/read.d.ts +37 -0
  177. package/dist/core/tools/read.d.ts.map +1 -0
  178. package/dist/core/tools/read.js +165 -0
  179. package/dist/core/tools/read.js.map +1 -0
  180. package/dist/core/tools/truncate.d.ts +70 -0
  181. package/dist/core/tools/truncate.d.ts.map +1 -0
  182. package/dist/core/tools/truncate.js +205 -0
  183. package/dist/core/tools/truncate.js.map +1 -0
  184. package/dist/core/tools/write.d.ts +27 -0
  185. package/dist/core/tools/write.d.ts.map +1 -0
  186. package/dist/core/tools/write.js +78 -0
  187. package/dist/core/tools/write.js.map +1 -0
  188. package/dist/index.d.ts +19 -0
  189. package/dist/index.d.ts.map +1 -0
  190. package/dist/index.js +35 -0
  191. package/dist/index.js.map +1 -0
  192. package/dist/main.d.ts +8 -0
  193. package/dist/main.d.ts.map +1 -0
  194. package/dist/main.js +354 -0
  195. package/dist/main.js.map +1 -0
  196. package/dist/migrations.d.ts +33 -0
  197. package/dist/migrations.d.ts.map +1 -0
  198. package/dist/migrations.js +261 -0
  199. package/dist/migrations.js.map +1 -0
  200. package/dist/modes/index.d.ts +9 -0
  201. package/dist/modes/index.d.ts.map +1 -0
  202. package/dist/modes/index.js +8 -0
  203. package/dist/modes/index.js.map +1 -0
  204. package/dist/modes/interactive/components/armin.d.ts +34 -0
  205. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  206. package/dist/modes/interactive/components/armin.js +333 -0
  207. package/dist/modes/interactive/components/armin.js.map +1 -0
  208. package/dist/modes/interactive/components/assistant-message.d.ts +15 -0
  209. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  210. package/dist/modes/interactive/components/assistant-message.js +89 -0
  211. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  212. package/dist/modes/interactive/components/bash-execution.d.ts +35 -0
  213. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  214. package/dist/modes/interactive/components/bash-execution.js +161 -0
  215. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  216. package/dist/modes/interactive/components/bordered-loader.d.ts +12 -0
  217. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  218. package/dist/modes/interactive/components/bordered-loader.js +30 -0
  219. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  220. package/dist/modes/interactive/components/branch-summary-message.d.ts +15 -0
  221. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  222. package/dist/modes/interactive/components/branch-summary-message.js +39 -0
  223. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  224. package/dist/modes/interactive/components/compaction-summary-message.d.ts +15 -0
  225. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  226. package/dist/modes/interactive/components/compaction-summary-message.js +40 -0
  227. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  228. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  229. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  230. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  231. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  232. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  233. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  234. package/dist/modes/interactive/components/custom-editor.js +69 -0
  235. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  236. package/dist/modes/interactive/components/custom-message.d.ts +19 -0
  237. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  238. package/dist/modes/interactive/components/custom-message.js +84 -0
  239. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  240. package/dist/modes/interactive/components/diff.d.ts +12 -0
  241. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  242. package/dist/modes/interactive/components/diff.js +133 -0
  243. package/dist/modes/interactive/components/diff.js.map +1 -0
  244. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  245. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  246. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  247. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  248. package/dist/modes/interactive/components/extension-editor.d.ts +15 -0
  249. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  250. package/dist/modes/interactive/components/extension-editor.js +96 -0
  251. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  252. package/dist/modes/interactive/components/extension-input.d.ts +20 -0
  253. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  254. package/dist/modes/interactive/components/extension-input.js +51 -0
  255. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  256. package/dist/modes/interactive/components/extension-selector.d.ts +24 -0
  257. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  258. package/dist/modes/interactive/components/extension-selector.js +73 -0
  259. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  260. package/dist/modes/interactive/components/footer.d.ts +26 -0
  261. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  262. package/dist/modes/interactive/components/footer.js +207 -0
  263. package/dist/modes/interactive/components/footer.js.map +1 -0
  264. package/dist/modes/interactive/components/index.d.ts +29 -0
  265. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  266. package/dist/modes/interactive/components/index.js +30 -0
  267. package/dist/modes/interactive/components/index.js.map +1 -0
  268. package/dist/modes/interactive/components/login-dialog.d.ts +39 -0
  269. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  270. package/dist/modes/interactive/components/login-dialog.js +135 -0
  271. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  272. package/dist/modes/interactive/components/model-selector.d.ts +35 -0
  273. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  274. package/dist/modes/interactive/components/model-selector.js +211 -0
  275. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  276. package/dist/modes/interactive/components/oauth-selector.d.ts +19 -0
  277. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  278. package/dist/modes/interactive/components/oauth-selector.js +98 -0
  279. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  280. package/dist/modes/interactive/components/scoped-models-selector.d.ts +46 -0
  281. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  282. package/dist/modes/interactive/components/scoped-models-selector.js +258 -0
  283. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  284. package/dist/modes/interactive/components/session-selector.d.ts +44 -0
  285. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  286. package/dist/modes/interactive/components/session-selector.js +311 -0
  287. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  288. package/dist/modes/interactive/components/settings-selector.d.ts +43 -0
  289. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  290. package/dist/modes/interactive/components/settings-selector.js +219 -0
  291. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  292. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  293. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  294. package/dist/modes/interactive/components/show-images-selector.js +35 -0
  295. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  296. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  297. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  298. package/dist/modes/interactive/components/theme-selector.js +46 -0
  299. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  300. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  301. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  302. package/dist/modes/interactive/components/thinking-selector.js +47 -0
  303. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  304. package/dist/modes/interactive/components/tool-execution.d.ts +70 -0
  305. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  306. package/dist/modes/interactive/components/tool-execution.js +606 -0
  307. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  308. package/dist/modes/interactive/components/tree-selector.d.ts +52 -0
  309. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  310. package/dist/modes/interactive/components/tree-selector.js +745 -0
  311. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  312. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  313. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  314. package/dist/modes/interactive/components/user-message-selector.js +113 -0
  315. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  316. package/dist/modes/interactive/components/user-message.d.ts +8 -0
  317. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  318. package/dist/modes/interactive/components/user-message.js +16 -0
  319. package/dist/modes/interactive/components/user-message.js.map +1 -0
  320. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  321. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  322. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  323. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  324. package/dist/modes/interactive/interactive-mode.d.ts +261 -0
  325. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  326. package/dist/modes/interactive/interactive-mode.js +3194 -0
  327. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  328. package/dist/modes/interactive/theme/dark.json +85 -0
  329. package/dist/modes/interactive/theme/light.json +84 -0
  330. package/dist/modes/interactive/theme/theme-schema.json +308 -0
  331. package/dist/modes/interactive/theme/theme.d.ts +71 -0
  332. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  333. package/dist/modes/interactive/theme/theme.js +893 -0
  334. package/dist/modes/interactive/theme/theme.js.map +1 -0
  335. package/dist/modes/print-mode.d.ts +28 -0
  336. package/dist/modes/print-mode.d.ts.map +1 -0
  337. package/dist/modes/print-mode.js +140 -0
  338. package/dist/modes/print-mode.js.map +1 -0
  339. package/dist/modes/rpc/rpc-client.d.ts +209 -0
  340. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  341. package/dist/modes/rpc/rpc-client.js +392 -0
  342. package/dist/modes/rpc/rpc-client.js.map +1 -0
  343. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  344. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  345. package/dist/modes/rpc/rpc-mode.js +486 -0
  346. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  347. package/dist/modes/rpc/rpc-types.d.ts +372 -0
  348. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  349. package/dist/modes/rpc/rpc-types.js +8 -0
  350. package/dist/modes/rpc/rpc-types.js.map +1 -0
  351. package/dist/utils/changelog.d.ts +21 -0
  352. package/dist/utils/changelog.d.ts.map +1 -0
  353. package/dist/utils/changelog.js +87 -0
  354. package/dist/utils/changelog.js.map +1 -0
  355. package/dist/utils/clipboard-image.d.ts +11 -0
  356. package/dist/utils/clipboard-image.d.ts.map +1 -0
  357. package/dist/utils/clipboard-image.js +129 -0
  358. package/dist/utils/clipboard-image.js.map +1 -0
  359. package/dist/utils/clipboard.d.ts +2 -0
  360. package/dist/utils/clipboard.d.ts.map +1 -0
  361. package/dist/utils/clipboard.js +73 -0
  362. package/dist/utils/clipboard.js.map +1 -0
  363. package/dist/utils/image-convert.d.ts +9 -0
  364. package/dist/utils/image-convert.d.ts.map +1 -0
  365. package/dist/utils/image-convert.js +31 -0
  366. package/dist/utils/image-convert.js.map +1 -0
  367. package/dist/utils/image-resize.d.ts +36 -0
  368. package/dist/utils/image-resize.d.ts.map +1 -0
  369. package/dist/utils/image-resize.js +188 -0
  370. package/dist/utils/image-resize.js.map +1 -0
  371. package/dist/utils/mime.d.ts +2 -0
  372. package/dist/utils/mime.d.ts.map +1 -0
  373. package/dist/utils/mime.js +26 -0
  374. package/dist/utils/mime.js.map +1 -0
  375. package/dist/utils/shell.d.ts +26 -0
  376. package/dist/utils/shell.d.ts.map +1 -0
  377. package/dist/utils/shell.js +151 -0
  378. package/dist/utils/shell.js.map +1 -0
  379. package/dist/utils/tools-manager.d.ts +3 -0
  380. package/dist/utils/tools-manager.d.ts.map +1 -0
  381. package/dist/utils/tools-manager.js +187 -0
  382. package/dist/utils/tools-manager.js.map +1 -0
  383. package/dist/utils/vips.d.ts +11 -0
  384. package/dist/utils/vips.d.ts.map +1 -0
  385. package/dist/utils/vips.js +35 -0
  386. package/dist/utils/vips.js.map +1 -0
  387. package/docs/compaction.md +388 -0
  388. package/docs/extensions.md +1524 -0
  389. package/docs/rpc.md +1046 -0
  390. package/docs/sdk.md +1024 -0
  391. package/docs/session.md +255 -0
  392. package/docs/skills.md +317 -0
  393. package/docs/theme.md +617 -0
  394. package/docs/tree.md +201 -0
  395. package/docs/tui.md +797 -0
  396. package/examples/README.md +24 -0
  397. package/examples/extensions/README.md +168 -0
  398. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  399. package/examples/extensions/chalk-logger.ts +26 -0
  400. package/examples/extensions/claude-rules.ts +86 -0
  401. package/examples/extensions/confirm-destructive.ts +59 -0
  402. package/examples/extensions/custom-compaction.ts +114 -0
  403. package/examples/extensions/custom-footer.ts +64 -0
  404. package/examples/extensions/custom-header.ts +72 -0
  405. package/examples/extensions/dirty-repo-guard.ts +56 -0
  406. package/examples/extensions/doom-overlay/README.md +46 -0
  407. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  408. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  409. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  410. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  411. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  412. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  413. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  414. package/examples/extensions/doom-overlay/index.ts +74 -0
  415. package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  416. package/examples/extensions/file-trigger.ts +41 -0
  417. package/examples/extensions/git-checkpoint.ts +53 -0
  418. package/examples/extensions/handoff.ts +150 -0
  419. package/examples/extensions/hello.ts +25 -0
  420. package/examples/extensions/interactive-shell.ts +196 -0
  421. package/examples/extensions/mac-system-theme.ts +47 -0
  422. package/examples/extensions/modal-editor.ts +85 -0
  423. package/examples/extensions/model-status.ts +31 -0
  424. package/examples/extensions/notify.ts +25 -0
  425. package/examples/extensions/overlay-qa-tests.ts +881 -0
  426. package/examples/extensions/overlay-test.ts +145 -0
  427. package/examples/extensions/permission-gate.ts +34 -0
  428. package/examples/extensions/pirate.ts +47 -0
  429. package/examples/extensions/plan-mode/README.md +65 -0
  430. package/examples/extensions/plan-mode/index.ts +340 -0
  431. package/examples/extensions/plan-mode/utils.ts +168 -0
  432. package/examples/extensions/preset.ts +398 -0
  433. package/examples/extensions/protected-paths.ts +30 -0
  434. package/examples/extensions/qna.ts +119 -0
  435. package/examples/extensions/question.ts +277 -0
  436. package/examples/extensions/questionnaire.ts +427 -0
  437. package/examples/extensions/rainbow-editor.ts +95 -0
  438. package/examples/extensions/sandbox/index.ts +318 -0
  439. package/examples/extensions/sandbox/package-lock.json +92 -0
  440. package/examples/extensions/sandbox/package.json +19 -0
  441. package/examples/extensions/send-user-message.ts +97 -0
  442. package/examples/extensions/shutdown-command.ts +63 -0
  443. package/examples/extensions/snake.ts +343 -0
  444. package/examples/extensions/ssh.ts +220 -0
  445. package/examples/extensions/status-line.ts +40 -0
  446. package/examples/extensions/subagent/README.md +172 -0
  447. package/examples/extensions/subagent/agents/planner.md +37 -0
  448. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  449. package/examples/extensions/subagent/agents/scout.md +50 -0
  450. package/examples/extensions/subagent/agents/worker.md +24 -0
  451. package/examples/extensions/subagent/agents.ts +156 -0
  452. package/examples/extensions/subagent/index.ts +963 -0
  453. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  454. package/examples/extensions/subagent/prompts/implement.md +10 -0
  455. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  456. package/examples/extensions/summarize.ts +195 -0
  457. package/examples/extensions/timed-confirm.ts +70 -0
  458. package/examples/extensions/todo.ts +299 -0
  459. package/examples/extensions/tool-override.ts +143 -0
  460. package/examples/extensions/tools.ts +146 -0
  461. package/examples/extensions/truncated-tool.ts +192 -0
  462. package/examples/extensions/with-deps/index.ts +36 -0
  463. package/examples/extensions/with-deps/package-lock.json +31 -0
  464. package/examples/extensions/with-deps/package.json +22 -0
  465. package/examples/sdk/01-minimal.ts +22 -0
  466. package/examples/sdk/02-custom-model.ts +49 -0
  467. package/examples/sdk/03-custom-prompt.ts +44 -0
  468. package/examples/sdk/04-skills.ts +47 -0
  469. package/examples/sdk/05-tools.ts +56 -0
  470. package/examples/sdk/06-extensions.ts +79 -0
  471. package/examples/sdk/07-context-files.ts +36 -0
  472. package/examples/sdk/08-prompt-templates.ts +42 -0
  473. package/examples/sdk/09-api-keys-and-oauth.ts +55 -0
  474. package/examples/sdk/10-settings.ts +38 -0
  475. package/examples/sdk/11-sessions.ts +48 -0
  476. package/examples/sdk/12-full-control.ts +72 -0
  477. package/examples/sdk/README.md +150 -0
  478. package/package.json +88 -0
@@ -0,0 +1,523 @@
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, AgentEvent, AgentMessage, AgentState, AgentTool, ThinkingLevel } from "@mariozechner/pi-agent-core";
16
+ import type { ImageContent, Model, TextContent } from "@mariozechner/pi-ai";
17
+ import { type BashResult } from "./bash-executor.js";
18
+ import { type CompactionResult } from "./compaction/index.js";
19
+ import type { ExtensionRunner } from "./extensions/index.js";
20
+ import type { CustomMessage } from "./messages.js";
21
+ import type { ModelRegistry } from "./model-registry.js";
22
+ import { type PromptTemplate } from "./prompt-templates.js";
23
+ import type { BranchSummaryEntry, NewSessionOptions, SessionManager } from "./session-manager.js";
24
+ import type { SettingsManager, SkillsSettings } from "./settings-manager.js";
25
+ import type { Skill, SkillWarning } from "./skills.js";
26
+ import type { BashOperations } from "./tools/bash.js";
27
+ /** Session-specific events that extend the core AgentEvent */
28
+ export type AgentSessionEvent = AgentEvent | {
29
+ type: "auto_compaction_start";
30
+ reason: "threshold" | "overflow";
31
+ } | {
32
+ type: "auto_compaction_end";
33
+ result: CompactionResult | undefined;
34
+ aborted: boolean;
35
+ willRetry: boolean;
36
+ } | {
37
+ type: "auto_retry_start";
38
+ attempt: number;
39
+ maxAttempts: number;
40
+ delayMs: number;
41
+ errorMessage: string;
42
+ } | {
43
+ type: "auto_retry_end";
44
+ success: boolean;
45
+ attempt: number;
46
+ finalError?: string;
47
+ };
48
+ /** Listener function for agent session events */
49
+ export type AgentSessionEventListener = (event: AgentSessionEvent) => void;
50
+ export interface AgentSessionConfig {
51
+ agent: Agent;
52
+ sessionManager: SessionManager;
53
+ settingsManager: SettingsManager;
54
+ /** Models to cycle through with Ctrl+P (from --models flag) */
55
+ scopedModels?: Array<{
56
+ model: Model<any>;
57
+ thinkingLevel: ThinkingLevel;
58
+ }>;
59
+ /** File-based prompt templates for expansion */
60
+ promptTemplates?: PromptTemplate[];
61
+ /** Extension runner (created in sdk.ts with wrapped tools) */
62
+ extensionRunner?: ExtensionRunner;
63
+ /** Loaded skills (already discovered by SDK) */
64
+ skills?: Skill[];
65
+ /** Skill loading warnings (already captured by SDK) */
66
+ skillWarnings?: SkillWarning[];
67
+ skillsSettings?: Required<SkillsSettings>;
68
+ /** Model registry for API key resolution and model discovery */
69
+ modelRegistry: ModelRegistry;
70
+ /** Tool registry for extension getTools/setTools - maps name to tool */
71
+ toolRegistry?: Map<string, AgentTool>;
72
+ /** Function to rebuild system prompt when tools change */
73
+ rebuildSystemPrompt?: (toolNames: string[]) => string;
74
+ }
75
+ /** Options for AgentSession.prompt() */
76
+ export interface PromptOptions {
77
+ /** Whether to expand file-based prompt templates (default: true) */
78
+ expandPromptTemplates?: boolean;
79
+ /** Image attachments */
80
+ images?: ImageContent[];
81
+ /** When streaming, how to queue the message: "steer" (interrupt) or "followUp" (wait). Required if streaming. */
82
+ streamingBehavior?: "steer" | "followUp";
83
+ }
84
+ /** Result from cycleModel() */
85
+ export interface ModelCycleResult {
86
+ model: Model<any>;
87
+ thinkingLevel: ThinkingLevel;
88
+ /** Whether cycling through scoped models (--models flag) or all available */
89
+ isScoped: boolean;
90
+ }
91
+ /** Session statistics for /session command */
92
+ export interface SessionStats {
93
+ sessionFile: string | undefined;
94
+ sessionId: string;
95
+ userMessages: number;
96
+ assistantMessages: number;
97
+ toolCalls: number;
98
+ toolResults: number;
99
+ totalMessages: number;
100
+ tokens: {
101
+ input: number;
102
+ output: number;
103
+ cacheRead: number;
104
+ cacheWrite: number;
105
+ total: number;
106
+ };
107
+ cost: number;
108
+ }
109
+ export declare class AgentSession {
110
+ readonly agent: Agent;
111
+ readonly sessionManager: SessionManager;
112
+ readonly settingsManager: SettingsManager;
113
+ private _scopedModels;
114
+ private _promptTemplates;
115
+ private _unsubscribeAgent?;
116
+ private _eventListeners;
117
+ /** Tracks pending steering messages for UI display. Removed when delivered. */
118
+ private _steeringMessages;
119
+ /** Tracks pending follow-up messages for UI display. Removed when delivered. */
120
+ private _followUpMessages;
121
+ /** Messages queued to be included with the next user prompt as context ("asides"). */
122
+ private _pendingNextTurnMessages;
123
+ private _compactionAbortController;
124
+ private _autoCompactionAbortController;
125
+ private _branchSummaryAbortController;
126
+ private _retryAbortController;
127
+ private _retryAttempt;
128
+ private _retryPromise;
129
+ private _retryResolve;
130
+ private _bashAbortController;
131
+ private _pendingBashMessages;
132
+ private _extensionRunner;
133
+ private _turnIndex;
134
+ private _skills;
135
+ private _skillWarnings;
136
+ private _skillsSettings;
137
+ private _modelRegistry;
138
+ private _toolRegistry;
139
+ private _rebuildSystemPrompt?;
140
+ private _baseSystemPrompt;
141
+ constructor(config: AgentSessionConfig);
142
+ /** Model registry for API key resolution and model discovery */
143
+ get modelRegistry(): ModelRegistry;
144
+ /** Emit an event to all listeners */
145
+ private _emit;
146
+ private _lastAssistantMessage;
147
+ /** Internal handler for agent events - shared by subscribe and reconnect */
148
+ private _handleAgentEvent;
149
+ /** Resolve the pending retry promise */
150
+ private _resolveRetry;
151
+ /** Extract text content from a message */
152
+ private _getUserMessageText;
153
+ /** Find the last assistant message in agent state (including aborted ones) */
154
+ private _findLastAssistantMessage;
155
+ private _emitExtensionEvent;
156
+ /**
157
+ * Subscribe to agent events.
158
+ * Session persistence is handled internally (saves messages on message_end).
159
+ * Multiple listeners can be added. Returns unsubscribe function for this listener.
160
+ */
161
+ subscribe(listener: AgentSessionEventListener): () => void;
162
+ /**
163
+ * Temporarily disconnect from agent events.
164
+ * User listeners are preserved and will receive events again after resubscribe().
165
+ * Used internally during operations that need to pause event processing.
166
+ */
167
+ private _disconnectFromAgent;
168
+ /**
169
+ * Reconnect to agent events after _disconnectFromAgent().
170
+ * Preserves all existing listeners.
171
+ */
172
+ private _reconnectToAgent;
173
+ /**
174
+ * Remove all listeners and disconnect from agent.
175
+ * Call this when completely done with the session.
176
+ */
177
+ dispose(): void;
178
+ /** Full agent state */
179
+ get state(): AgentState;
180
+ /** Current model (may be undefined if not yet selected) */
181
+ get model(): Model<any> | undefined;
182
+ /** Current thinking level */
183
+ get thinkingLevel(): ThinkingLevel;
184
+ /** Whether agent is currently streaming a response */
185
+ get isStreaming(): boolean;
186
+ /** Current retry attempt (0 if not retrying) */
187
+ get retryAttempt(): number;
188
+ /**
189
+ * Get the names of currently active tools.
190
+ * Returns the names of tools currently set on the agent.
191
+ */
192
+ getActiveToolNames(): string[];
193
+ /**
194
+ * Get all configured tools with name and description.
195
+ */
196
+ getAllTools(): Array<{
197
+ name: string;
198
+ description: string;
199
+ }>;
200
+ /**
201
+ * Set active tools by name.
202
+ * Only tools in the registry can be enabled. Unknown tool names are ignored.
203
+ * Also rebuilds the system prompt to reflect the new tool set.
204
+ * Changes take effect on the next agent turn.
205
+ */
206
+ setActiveToolsByName(toolNames: string[]): void;
207
+ /** Whether auto-compaction is currently running */
208
+ get isCompacting(): boolean;
209
+ /** All messages including custom types like BashExecutionMessage */
210
+ get messages(): AgentMessage[];
211
+ /** Current steering mode */
212
+ get steeringMode(): "all" | "one-at-a-time";
213
+ /** Current follow-up mode */
214
+ get followUpMode(): "all" | "one-at-a-time";
215
+ /** Current session file path, or undefined if sessions are disabled */
216
+ get sessionFile(): string | undefined;
217
+ /** Current session ID */
218
+ get sessionId(): string;
219
+ /** Scoped models for cycling (from --models flag) */
220
+ get scopedModels(): ReadonlyArray<{
221
+ model: Model<any>;
222
+ thinkingLevel: ThinkingLevel;
223
+ }>;
224
+ /** Update scoped models for cycling */
225
+ setScopedModels(scopedModels: Array<{
226
+ model: Model<any>;
227
+ thinkingLevel: ThinkingLevel;
228
+ }>): void;
229
+ /** File-based prompt templates */
230
+ get promptTemplates(): ReadonlyArray<PromptTemplate>;
231
+ /**
232
+ * Send a prompt to the agent.
233
+ * - Handles extension commands (registered via pi.registerCommand) immediately, even during streaming
234
+ * - Expands file-based prompt templates by default
235
+ * - During streaming, queues via steer() or followUp() based on streamingBehavior option
236
+ * - Validates model and API key before sending (when not streaming)
237
+ * @throws Error if streaming and no streamingBehavior specified
238
+ * @throws Error if no model selected or no API key available (when not streaming)
239
+ */
240
+ prompt(text: string, options?: PromptOptions): Promise<void>;
241
+ private _tryExecuteExtensionCommand;
242
+ /**
243
+ * Queue a steering message to interrupt the agent mid-run.
244
+ * Delivered after current tool execution, skips remaining tools.
245
+ * Expands file-based prompt templates. Errors on extension commands.
246
+ * @throws Error if text is an extension command
247
+ */
248
+ steer(text: string): Promise<void>;
249
+ /**
250
+ * Queue a follow-up message to be processed after the agent finishes.
251
+ * Delivered only when agent has no more tool calls or steering messages.
252
+ * Expands file-based prompt templates. Errors on extension commands.
253
+ * @throws Error if text is an extension command
254
+ */
255
+ followUp(text: string): Promise<void>;
256
+ private _queueSteer;
257
+ private _queueFollowUp;
258
+ /**
259
+ * Throw an error if the text is an extension command.
260
+ */
261
+ private _throwIfExtensionCommand;
262
+ /**
263
+ * Send a custom message to the session. Creates a CustomMessageEntry.
264
+ *
265
+ * Handles three cases:
266
+ * - Streaming: queues message, processed when loop pulls from queue
267
+ * - Not streaming + triggerTurn: appends to state/session, starts new turn
268
+ * - Not streaming + no trigger: appends to state/session, no turn
269
+ *
270
+ * @param message Custom message with customType, content, display, details
271
+ * @param options.triggerTurn If true and not streaming, triggers a new LLM turn
272
+ * @param options.deliverAs Delivery mode: "steer", "followUp", or "nextTurn"
273
+ */
274
+ sendCustomMessage<T = unknown>(message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details">, options?: {
275
+ triggerTurn?: boolean;
276
+ deliverAs?: "steer" | "followUp" | "nextTurn";
277
+ }): Promise<void>;
278
+ /**
279
+ * Send a user message to the agent. Always triggers a turn.
280
+ * When the agent is streaming, use deliverAs to specify how to queue the message.
281
+ *
282
+ * @param content User message content (string or content array)
283
+ * @param options.deliverAs Delivery mode when streaming: "steer" or "followUp"
284
+ */
285
+ sendUserMessage(content: string | (TextContent | ImageContent)[], options?: {
286
+ deliverAs?: "steer" | "followUp";
287
+ }): Promise<void>;
288
+ /**
289
+ * Clear all queued messages and return them.
290
+ * Useful for restoring to editor when user aborts.
291
+ * @returns Object with steering and followUp arrays
292
+ */
293
+ clearQueue(): {
294
+ steering: string[];
295
+ followUp: string[];
296
+ };
297
+ /** Number of pending messages (includes both steering and follow-up) */
298
+ get pendingMessageCount(): number;
299
+ /** Get pending steering messages (read-only) */
300
+ getSteeringMessages(): readonly string[];
301
+ /** Get pending follow-up messages (read-only) */
302
+ getFollowUpMessages(): readonly string[];
303
+ get skillsSettings(): Required<SkillsSettings> | undefined;
304
+ /** Skills loaded by SDK (empty if --no-skills or skills: [] was passed) */
305
+ get skills(): readonly Skill[];
306
+ /** Skill loading warnings captured by SDK */
307
+ get skillWarnings(): readonly SkillWarning[];
308
+ /**
309
+ * Abort current operation and wait for agent to become idle.
310
+ */
311
+ abort(): Promise<void>;
312
+ /**
313
+ * Start a new session, optionally with initial messages and parent tracking.
314
+ * Clears all messages and starts a new session.
315
+ * Listeners are preserved and will continue receiving events.
316
+ * @param options - Optional initial messages and parent session path
317
+ * @returns true if completed, false if cancelled by extension
318
+ */
319
+ newSession(options?: NewSessionOptions): Promise<boolean>;
320
+ private _emitModelSelect;
321
+ /**
322
+ * Set model directly.
323
+ * Validates API key, saves to session and settings.
324
+ * @throws Error if no API key available for the model
325
+ */
326
+ setModel(model: Model<any>): Promise<void>;
327
+ /**
328
+ * Cycle to next/previous model.
329
+ * Uses scoped models (from --models flag) if available, otherwise all available models.
330
+ * @param direction - "forward" (default) or "backward"
331
+ * @returns The new model info, or undefined if only one model available
332
+ */
333
+ cycleModel(direction?: "forward" | "backward"): Promise<ModelCycleResult | undefined>;
334
+ private _cycleScopedModel;
335
+ private _cycleAvailableModel;
336
+ /**
337
+ * Get all available models with valid API keys.
338
+ */
339
+ getAvailableModels(): Promise<Model<any>[]>;
340
+ /**
341
+ * Set thinking level.
342
+ * Clamps to model capabilities based on available thinking levels.
343
+ * Saves to session and settings.
344
+ */
345
+ setThinkingLevel(level: ThinkingLevel): void;
346
+ /**
347
+ * Cycle to next thinking level.
348
+ * @returns New level, or undefined if model doesn't support thinking
349
+ */
350
+ cycleThinkingLevel(): ThinkingLevel | undefined;
351
+ /**
352
+ * Get available thinking levels for current model.
353
+ * The provider will clamp to what the specific model supports internally.
354
+ */
355
+ getAvailableThinkingLevels(): ThinkingLevel[];
356
+ /**
357
+ * Check if current model supports xhigh thinking level.
358
+ */
359
+ supportsXhighThinking(): boolean;
360
+ /**
361
+ * Check if current model supports thinking/reasoning.
362
+ */
363
+ supportsThinking(): boolean;
364
+ private _clampThinkingLevel;
365
+ /**
366
+ * Set steering message mode.
367
+ * Saves to settings.
368
+ */
369
+ setSteeringMode(mode: "all" | "one-at-a-time"): void;
370
+ /**
371
+ * Set follow-up message mode.
372
+ * Saves to settings.
373
+ */
374
+ setFollowUpMode(mode: "all" | "one-at-a-time"): void;
375
+ /**
376
+ * Manually compact the session context.
377
+ * Aborts current agent operation first.
378
+ * @param customInstructions Optional instructions for the compaction summary
379
+ */
380
+ compact(customInstructions?: string): Promise<CompactionResult>;
381
+ /**
382
+ * Cancel in-progress compaction (manual or auto).
383
+ */
384
+ abortCompaction(): void;
385
+ /**
386
+ * Cancel in-progress branch summarization.
387
+ */
388
+ abortBranchSummary(): void;
389
+ private _checkCompaction;
390
+ private _runAutoCompaction;
391
+ /**
392
+ * Toggle auto-compaction setting.
393
+ */
394
+ setAutoCompactionEnabled(enabled: boolean): void;
395
+ /** Whether auto-compaction is enabled */
396
+ get autoCompactionEnabled(): boolean;
397
+ /**
398
+ * Check if an error is retryable (overloaded, rate limit, server errors).
399
+ * Context overflow errors are NOT retryable (handled by compaction instead).
400
+ */
401
+ private _isRetryableError;
402
+ private _handleRetryableError;
403
+ /**
404
+ * Sleep helper that respects abort signal.
405
+ */
406
+ private _sleep;
407
+ /**
408
+ * Cancel in-progress retry.
409
+ */
410
+ abortRetry(): void;
411
+ private waitForRetry;
412
+ /** Whether auto-retry is currently in progress */
413
+ get isRetrying(): boolean;
414
+ /** Whether auto-retry is enabled */
415
+ get autoRetryEnabled(): boolean;
416
+ /**
417
+ * Toggle auto-retry setting.
418
+ */
419
+ setAutoRetryEnabled(enabled: boolean): void;
420
+ /**
421
+ * Execute a bash command.
422
+ * Adds result to agent context and session.
423
+ * @param command The bash command to execute
424
+ * @param onChunk Optional streaming callback for output
425
+ * @param options.excludeFromContext If true, command output won't be sent to LLM (!! prefix)
426
+ * @param options.operations Custom BashOperations for remote execution
427
+ */
428
+ executeBash(command: string, onChunk?: (chunk: string) => void, options?: {
429
+ excludeFromContext?: boolean;
430
+ operations?: BashOperations;
431
+ }): Promise<BashResult>;
432
+ /**
433
+ * Record a bash execution result in session history.
434
+ * Used by executeBash and by extensions that handle bash execution themselves.
435
+ */
436
+ recordBashResult(command: string, result: BashResult, options?: {
437
+ excludeFromContext?: boolean;
438
+ }): void;
439
+ /**
440
+ * Cancel running bash command.
441
+ */
442
+ abortBash(): void;
443
+ /** Whether a bash command is currently running */
444
+ get isBashRunning(): boolean;
445
+ /** Whether there are pending bash messages waiting to be flushed */
446
+ get hasPendingBashMessages(): boolean;
447
+ /**
448
+ * Flush pending bash messages to agent state and session.
449
+ * Called after agent turn completes to maintain proper message ordering.
450
+ */
451
+ private _flushPendingBashMessages;
452
+ /**
453
+ * Switch to a different session file.
454
+ * Aborts current operation, loads messages, restores model/thinking.
455
+ * Listeners are preserved and will continue receiving events.
456
+ * @returns true if switch completed, false if cancelled by extension
457
+ */
458
+ switchSession(sessionPath: string): Promise<boolean>;
459
+ /**
460
+ * Create a fork from a specific entry.
461
+ * Emits before_fork/fork session events to extensions.
462
+ *
463
+ * @param entryId ID of the entry to fork from
464
+ * @returns Object with:
465
+ * - selectedText: The text of the selected user message (for editor pre-fill)
466
+ * - cancelled: True if an extension cancelled the fork
467
+ */
468
+ fork(entryId: string): Promise<{
469
+ selectedText: string;
470
+ cancelled: boolean;
471
+ }>;
472
+ /**
473
+ * Navigate to a different node in the session tree.
474
+ * Unlike fork() which creates a new session file, this stays in the same file.
475
+ *
476
+ * @param targetId The entry ID to navigate to
477
+ * @param options.summarize Whether user wants to summarize abandoned branch
478
+ * @param options.customInstructions Custom instructions for summarizer
479
+ * @returns Result with editorText (if user message) and cancelled status
480
+ */
481
+ navigateTree(targetId: string, options?: {
482
+ summarize?: boolean;
483
+ customInstructions?: string;
484
+ }): Promise<{
485
+ editorText?: string;
486
+ cancelled: boolean;
487
+ aborted?: boolean;
488
+ summaryEntry?: BranchSummaryEntry;
489
+ }>;
490
+ /**
491
+ * Get all user messages from session for fork selector.
492
+ */
493
+ getUserMessagesForForking(): Array<{
494
+ entryId: string;
495
+ text: string;
496
+ }>;
497
+ private _extractUserMessageText;
498
+ /**
499
+ * Get session statistics.
500
+ */
501
+ getSessionStats(): SessionStats;
502
+ /**
503
+ * Export session to HTML.
504
+ * @param outputPath Optional output path (defaults to session directory)
505
+ * @returns Path to exported file
506
+ */
507
+ exportToHtml(outputPath?: string): Promise<string>;
508
+ /**
509
+ * Get text content of last assistant message.
510
+ * Useful for /copy command.
511
+ * @returns Text content, or undefined if no assistant message exists
512
+ */
513
+ getLastAssistantText(): string | undefined;
514
+ /**
515
+ * Check if extensions have handlers for a specific event type.
516
+ */
517
+ hasExtensionHandlers(eventType: string): boolean;
518
+ /**
519
+ * Get the extension runner (for setting UI context and error handlers).
520
+ */
521
+ get extensionRunner(): ExtensionRunner | undefined;
522
+ }
523
+ //# sourceMappingURL=agent-session.d.ts.map