@imdigitalashish/zpi 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/CHANGELOG.md +2801 -0
  2. package/README.md +95 -0
  3. package/dist/cli/args.d.ts +47 -0
  4. package/dist/cli/args.d.ts.map +1 -0
  5. package/dist/cli/args.js +293 -0
  6. package/dist/cli/args.js.map +1 -0
  7. package/dist/cli/config-selector.d.ts +14 -0
  8. package/dist/cli/config-selector.d.ts.map +1 -0
  9. package/dist/cli/config-selector.js +31 -0
  10. package/dist/cli/config-selector.js.map +1 -0
  11. package/dist/cli/file-processor.d.ts +15 -0
  12. package/dist/cli/file-processor.d.ts.map +1 -0
  13. package/dist/cli/file-processor.js +79 -0
  14. package/dist/cli/file-processor.js.map +1 -0
  15. package/dist/cli/list-models.d.ts +9 -0
  16. package/dist/cli/list-models.d.ts.map +1 -0
  17. package/dist/cli/list-models.js +92 -0
  18. package/dist/cli/list-models.js.map +1 -0
  19. package/dist/cli/session-picker.d.ts +9 -0
  20. package/dist/cli/session-picker.d.ts.map +1 -0
  21. package/dist/cli/session-picker.js +34 -0
  22. package/dist/cli/session-picker.js.map +1 -0
  23. package/dist/cli.d.ts +3 -0
  24. package/dist/cli.d.ts.map +1 -0
  25. package/dist/cli.js +11 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/config.d.ts +68 -0
  28. package/dist/config.d.ts.map +1 -0
  29. package/dist/config.js +203 -0
  30. package/dist/config.js.map +1 -0
  31. package/dist/core/agent-session.d.ts +571 -0
  32. package/dist/core/agent-session.d.ts.map +1 -0
  33. package/dist/core/agent-session.js +2353 -0
  34. package/dist/core/agent-session.js.map +1 -0
  35. package/dist/core/auth-storage.d.ts +129 -0
  36. package/dist/core/auth-storage.d.ts.map +1 -0
  37. package/dist/core/auth-storage.js +394 -0
  38. package/dist/core/auth-storage.js.map +1 -0
  39. package/dist/core/bash-executor.d.ts +47 -0
  40. package/dist/core/bash-executor.d.ts.map +1 -0
  41. package/dist/core/bash-executor.js +212 -0
  42. package/dist/core/bash-executor.js.map +1 -0
  43. package/dist/core/compaction/branch-summarization.d.ts +86 -0
  44. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  45. package/dist/core/compaction/branch-summarization.js +242 -0
  46. package/dist/core/compaction/branch-summarization.js.map +1 -0
  47. package/dist/core/compaction/compaction.d.ts +121 -0
  48. package/dist/core/compaction/compaction.d.ts.map +1 -0
  49. package/dist/core/compaction/compaction.js +607 -0
  50. package/dist/core/compaction/compaction.js.map +1 -0
  51. package/dist/core/compaction/index.d.ts +7 -0
  52. package/dist/core/compaction/index.d.ts.map +1 -0
  53. package/dist/core/compaction/index.js +7 -0
  54. package/dist/core/compaction/index.js.map +1 -0
  55. package/dist/core/compaction/utils.d.ts +35 -0
  56. package/dist/core/compaction/utils.d.ts.map +1 -0
  57. package/dist/core/compaction/utils.js +138 -0
  58. package/dist/core/compaction/utils.js.map +1 -0
  59. package/dist/core/defaults.d.ts +3 -0
  60. package/dist/core/defaults.d.ts.map +1 -0
  61. package/dist/core/defaults.js +2 -0
  62. package/dist/core/defaults.js.map +1 -0
  63. package/dist/core/diagnostics.d.ts +15 -0
  64. package/dist/core/diagnostics.d.ts.map +1 -0
  65. package/dist/core/diagnostics.js +2 -0
  66. package/dist/core/diagnostics.js.map +1 -0
  67. package/dist/core/event-bus.d.ts +9 -0
  68. package/dist/core/event-bus.d.ts.map +1 -0
  69. package/dist/core/event-bus.js +25 -0
  70. package/dist/core/event-bus.js.map +1 -0
  71. package/dist/core/exec.d.ts +29 -0
  72. package/dist/core/exec.d.ts.map +1 -0
  73. package/dist/core/exec.js +71 -0
  74. package/dist/core/exec.js.map +1 -0
  75. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  76. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  77. package/dist/core/export-html/ansi-to-html.js +249 -0
  78. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  79. package/dist/core/export-html/index.d.ts +34 -0
  80. package/dist/core/export-html/index.d.ts.map +1 -0
  81. package/dist/core/export-html/index.js +222 -0
  82. package/dist/core/export-html/index.js.map +1 -0
  83. package/dist/core/export-html/template.css +971 -0
  84. package/dist/core/export-html/template.html +54 -0
  85. package/dist/core/export-html/template.js +1586 -0
  86. package/dist/core/export-html/tool-renderer.d.ts +35 -0
  87. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  88. package/dist/core/export-html/tool-renderer.js +57 -0
  89. package/dist/core/export-html/tool-renderer.js.map +1 -0
  90. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  91. package/dist/core/export-html/vendor/marked.min.js +6 -0
  92. package/dist/core/extensions/index.d.ts +11 -0
  93. package/dist/core/extensions/index.d.ts.map +1 -0
  94. package/dist/core/extensions/index.js +9 -0
  95. package/dist/core/extensions/index.js.map +1 -0
  96. package/dist/core/extensions/loader.d.ts +25 -0
  97. package/dist/core/extensions/loader.d.ts.map +1 -0
  98. package/dist/core/extensions/loader.js +402 -0
  99. package/dist/core/extensions/loader.js.map +1 -0
  100. package/dist/core/extensions/runner.d.ts +146 -0
  101. package/dist/core/extensions/runner.d.ts.map +1 -0
  102. package/dist/core/extensions/runner.js +626 -0
  103. package/dist/core/extensions/runner.js.map +1 -0
  104. package/dist/core/extensions/types.d.ts +984 -0
  105. package/dist/core/extensions/types.d.ts.map +1 -0
  106. package/dist/core/extensions/types.js +35 -0
  107. package/dist/core/extensions/types.js.map +1 -0
  108. package/dist/core/extensions/wrapper.d.ts +27 -0
  109. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  110. package/dist/core/extensions/wrapper.js +102 -0
  111. package/dist/core/extensions/wrapper.js.map +1 -0
  112. package/dist/core/footer-data-provider.d.ts +32 -0
  113. package/dist/core/footer-data-provider.d.ts.map +1 -0
  114. package/dist/core/footer-data-provider.js +134 -0
  115. package/dist/core/footer-data-provider.js.map +1 -0
  116. package/dist/core/index.d.ts +9 -0
  117. package/dist/core/index.d.ts.map +1 -0
  118. package/dist/core/index.js +9 -0
  119. package/dist/core/index.js.map +1 -0
  120. package/dist/core/keybindings.d.ts +55 -0
  121. package/dist/core/keybindings.d.ts.map +1 -0
  122. package/dist/core/keybindings.js +153 -0
  123. package/dist/core/keybindings.js.map +1 -0
  124. package/dist/core/memory.d.ts +64 -0
  125. package/dist/core/memory.d.ts.map +1 -0
  126. package/dist/core/memory.js +247 -0
  127. package/dist/core/memory.js.map +1 -0
  128. package/dist/core/messages.d.ts +77 -0
  129. package/dist/core/messages.d.ts.map +1 -0
  130. package/dist/core/messages.js +149 -0
  131. package/dist/core/messages.js.map +1 -0
  132. package/dist/core/model-registry.d.ts +102 -0
  133. package/dist/core/model-registry.d.ts.map +1 -0
  134. package/dist/core/model-registry.js +515 -0
  135. package/dist/core/model-registry.js.map +1 -0
  136. package/dist/core/model-resolver.d.ts +104 -0
  137. package/dist/core/model-resolver.d.ts.map +1 -0
  138. package/dist/core/model-resolver.js +403 -0
  139. package/dist/core/model-resolver.js.map +1 -0
  140. package/dist/core/package-manager.d.ts +151 -0
  141. package/dist/core/package-manager.d.ts.map +1 -0
  142. package/dist/core/package-manager.js +1426 -0
  143. package/dist/core/package-manager.js.map +1 -0
  144. package/dist/core/prompt-templates.d.ts +50 -0
  145. package/dist/core/prompt-templates.d.ts.map +1 -0
  146. package/dist/core/prompt-templates.js +251 -0
  147. package/dist/core/prompt-templates.js.map +1 -0
  148. package/dist/core/resolve-config-value.d.ts +17 -0
  149. package/dist/core/resolve-config-value.d.ts.map +1 -0
  150. package/dist/core/resolve-config-value.js +59 -0
  151. package/dist/core/resolve-config-value.js.map +1 -0
  152. package/dist/core/resource-loader.d.ts +184 -0
  153. package/dist/core/resource-loader.d.ts.map +1 -0
  154. package/dist/core/resource-loader.js +673 -0
  155. package/dist/core/resource-loader.js.map +1 -0
  156. package/dist/core/sdk.d.ts +90 -0
  157. package/dist/core/sdk.d.ts.map +1 -0
  158. package/dist/core/sdk.js +238 -0
  159. package/dist/core/sdk.js.map +1 -0
  160. package/dist/core/session-manager.d.ts +323 -0
  161. package/dist/core/session-manager.d.ts.map +1 -0
  162. package/dist/core/session-manager.js +1091 -0
  163. package/dist/core/session-manager.js.map +1 -0
  164. package/dist/core/settings-manager.d.ts +230 -0
  165. package/dist/core/settings-manager.d.ts.map +1 -0
  166. package/dist/core/settings-manager.js +656 -0
  167. package/dist/core/settings-manager.js.map +1 -0
  168. package/dist/core/skills.d.ts +58 -0
  169. package/dist/core/skills.d.ts.map +1 -0
  170. package/dist/core/skills.js +364 -0
  171. package/dist/core/skills.js.map +1 -0
  172. package/dist/core/slash-commands.d.ts +15 -0
  173. package/dist/core/slash-commands.d.ts.map +1 -0
  174. package/dist/core/slash-commands.js +23 -0
  175. package/dist/core/slash-commands.js.map +1 -0
  176. package/dist/core/system-prompt.d.ts +26 -0
  177. package/dist/core/system-prompt.d.ts.map +1 -0
  178. package/dist/core/system-prompt.js +150 -0
  179. package/dist/core/system-prompt.js.map +1 -0
  180. package/dist/core/timings.d.ts +7 -0
  181. package/dist/core/timings.d.ts.map +1 -0
  182. package/dist/core/timings.js +25 -0
  183. package/dist/core/timings.js.map +1 -0
  184. package/dist/core/tools/bash.d.ts +55 -0
  185. package/dist/core/tools/bash.d.ts.map +1 -0
  186. package/dist/core/tools/bash.js +242 -0
  187. package/dist/core/tools/bash.js.map +1 -0
  188. package/dist/core/tools/edit-diff.d.ts +63 -0
  189. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  190. package/dist/core/tools/edit-diff.js +243 -0
  191. package/dist/core/tools/edit-diff.js.map +1 -0
  192. package/dist/core/tools/edit.d.ts +39 -0
  193. package/dist/core/tools/edit.d.ts.map +1 -0
  194. package/dist/core/tools/edit.js +146 -0
  195. package/dist/core/tools/edit.js.map +1 -0
  196. package/dist/core/tools/find.d.ts +39 -0
  197. package/dist/core/tools/find.d.ts.map +1 -0
  198. package/dist/core/tools/find.js +206 -0
  199. package/dist/core/tools/find.js.map +1 -0
  200. package/dist/core/tools/grep.d.ts +45 -0
  201. package/dist/core/tools/grep.d.ts.map +1 -0
  202. package/dist/core/tools/grep.js +239 -0
  203. package/dist/core/tools/grep.js.map +1 -0
  204. package/dist/core/tools/index.d.ts +102 -0
  205. package/dist/core/tools/index.d.ts.map +1 -0
  206. package/dist/core/tools/index.js +71 -0
  207. package/dist/core/tools/index.js.map +1 -0
  208. package/dist/core/tools/ls.d.ts +40 -0
  209. package/dist/core/tools/ls.d.ts.map +1 -0
  210. package/dist/core/tools/ls.js +118 -0
  211. package/dist/core/tools/ls.js.map +1 -0
  212. package/dist/core/tools/memory.d.ts +45 -0
  213. package/dist/core/tools/memory.d.ts.map +1 -0
  214. package/dist/core/tools/memory.js +346 -0
  215. package/dist/core/tools/memory.js.map +1 -0
  216. package/dist/core/tools/path-utils.d.ts +8 -0
  217. package/dist/core/tools/path-utils.d.ts.map +1 -0
  218. package/dist/core/tools/path-utils.js +81 -0
  219. package/dist/core/tools/path-utils.js.map +1 -0
  220. package/dist/core/tools/read.d.ts +39 -0
  221. package/dist/core/tools/read.d.ts.map +1 -0
  222. package/dist/core/tools/read.js +166 -0
  223. package/dist/core/tools/read.js.map +1 -0
  224. package/dist/core/tools/truncate.d.ts +70 -0
  225. package/dist/core/tools/truncate.d.ts.map +1 -0
  226. package/dist/core/tools/truncate.js +205 -0
  227. package/dist/core/tools/truncate.js.map +1 -0
  228. package/dist/core/tools/write.d.ts +29 -0
  229. package/dist/core/tools/write.d.ts.map +1 -0
  230. package/dist/core/tools/write.js +78 -0
  231. package/dist/core/tools/write.js.map +1 -0
  232. package/dist/index.d.ts +28 -0
  233. package/dist/index.d.ts.map +1 -0
  234. package/dist/index.js +43 -0
  235. package/dist/index.js.map +1 -0
  236. package/dist/main.d.ts +8 -0
  237. package/dist/main.d.ts.map +1 -0
  238. package/dist/main.js +651 -0
  239. package/dist/main.js.map +1 -0
  240. package/dist/migrations.d.ts +33 -0
  241. package/dist/migrations.d.ts.map +1 -0
  242. package/dist/migrations.js +261 -0
  243. package/dist/migrations.js.map +1 -0
  244. package/dist/modes/index.d.ts +9 -0
  245. package/dist/modes/index.d.ts.map +1 -0
  246. package/dist/modes/index.js +8 -0
  247. package/dist/modes/index.js.map +1 -0
  248. package/dist/modes/interactive/components/armin.d.ts +34 -0
  249. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  250. package/dist/modes/interactive/components/armin.js +333 -0
  251. package/dist/modes/interactive/components/armin.js.map +1 -0
  252. package/dist/modes/interactive/components/assistant-message.d.ts +16 -0
  253. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  254. package/dist/modes/interactive/components/assistant-message.js +96 -0
  255. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  256. package/dist/modes/interactive/components/bash-execution.d.ts +35 -0
  257. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  258. package/dist/modes/interactive/components/bash-execution.js +162 -0
  259. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  260. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  261. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  262. package/dist/modes/interactive/components/bordered-loader.js +51 -0
  263. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  264. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  265. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  266. package/dist/modes/interactive/components/branch-summary-message.js +44 -0
  267. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  268. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  269. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  270. package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
  271. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  272. package/dist/modes/interactive/components/config-selector.d.ts +71 -0
  273. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  274. package/dist/modes/interactive/components/config-selector.js +479 -0
  275. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  276. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  277. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  278. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  279. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  280. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  281. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  282. package/dist/modes/interactive/components/custom-editor.js +70 -0
  283. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  284. package/dist/modes/interactive/components/custom-message.d.ts +20 -0
  285. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  286. package/dist/modes/interactive/components/custom-message.js +79 -0
  287. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  288. package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  289. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  290. package/dist/modes/interactive/components/daxnuts.js +140 -0
  291. package/dist/modes/interactive/components/daxnuts.js.map +1 -0
  292. package/dist/modes/interactive/components/diff.d.ts +12 -0
  293. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  294. package/dist/modes/interactive/components/diff.js +133 -0
  295. package/dist/modes/interactive/components/diff.js.map +1 -0
  296. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  297. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  298. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  299. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  300. package/dist/modes/interactive/components/extension-editor.d.ts +17 -0
  301. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  302. package/dist/modes/interactive/components/extension-editor.js +102 -0
  303. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  304. package/dist/modes/interactive/components/extension-input.d.ts +23 -0
  305. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  306. package/dist/modes/interactive/components/extension-input.js +61 -0
  307. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  308. package/dist/modes/interactive/components/extension-selector.d.ts +24 -0
  309. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  310. package/dist/modes/interactive/components/extension-selector.js +78 -0
  311. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  312. package/dist/modes/interactive/components/footer.d.ts +26 -0
  313. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  314. package/dist/modes/interactive/components/footer.js +213 -0
  315. package/dist/modes/interactive/components/footer.js.map +1 -0
  316. package/dist/modes/interactive/components/index.d.ts +32 -0
  317. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  318. package/dist/modes/interactive/components/index.js +33 -0
  319. package/dist/modes/interactive/components/index.js.map +1 -0
  320. package/dist/modes/interactive/components/keybinding-hints.d.ts +41 -0
  321. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  322. package/dist/modes/interactive/components/keybinding-hints.js +61 -0
  323. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  324. package/dist/modes/interactive/components/login-dialog.d.ts +42 -0
  325. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  326. package/dist/modes/interactive/components/login-dialog.js +145 -0
  327. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  328. package/dist/modes/interactive/components/model-selector.d.ts +47 -0
  329. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  330. package/dist/modes/interactive/components/model-selector.js +271 -0
  331. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  332. package/dist/modes/interactive/components/oauth-selector.d.ts +19 -0
  333. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  334. package/dist/modes/interactive/components/oauth-selector.js +97 -0
  335. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  336. package/dist/modes/interactive/components/scoped-models-selector.d.ts +49 -0
  337. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  338. package/dist/modes/interactive/components/scoped-models-selector.js +275 -0
  339. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  340. package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  341. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  342. package/dist/modes/interactive/components/session-selector-search.js +155 -0
  343. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  344. package/dist/modes/interactive/components/session-selector.d.ts +95 -0
  345. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  346. package/dist/modes/interactive/components/session-selector.js +851 -0
  347. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  348. package/dist/modes/interactive/components/settings-selector.d.ts +58 -0
  349. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  350. package/dist/modes/interactive/components/settings-selector.js +299 -0
  351. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  352. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  353. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  354. package/dist/modes/interactive/components/show-images-selector.js +35 -0
  355. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  356. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  357. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  358. package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
  359. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  360. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  361. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  362. package/dist/modes/interactive/components/theme-selector.js +46 -0
  363. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  364. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  365. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  366. package/dist/modes/interactive/components/thinking-selector.js +47 -0
  367. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  368. package/dist/modes/interactive/components/tool-execution.d.ts +70 -0
  369. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  370. package/dist/modes/interactive/components/tool-execution.js +636 -0
  371. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  372. package/dist/modes/interactive/components/tree-selector.d.ts +68 -0
  373. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  374. package/dist/modes/interactive/components/tree-selector.js +934 -0
  375. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  376. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  377. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  378. package/dist/modes/interactive/components/user-message-selector.js +113 -0
  379. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  380. package/dist/modes/interactive/components/user-message.d.ts +8 -0
  381. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  382. package/dist/modes/interactive/components/user-message.js +16 -0
  383. package/dist/modes/interactive/components/user-message.js.map +1 -0
  384. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  385. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  386. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  387. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  388. package/dist/modes/interactive/interactive-mode.d.ts +316 -0
  389. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  390. package/dist/modes/interactive/interactive-mode.js +3848 -0
  391. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  392. package/dist/modes/interactive/theme/dark.json +85 -0
  393. package/dist/modes/interactive/theme/light.json +84 -0
  394. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  395. package/dist/modes/interactive/theme/theme.d.ts +78 -0
  396. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  397. package/dist/modes/interactive/theme/theme.js +944 -0
  398. package/dist/modes/interactive/theme/theme.js.map +1 -0
  399. package/dist/modes/print-mode.d.ts +28 -0
  400. package/dist/modes/print-mode.d.ts.map +1 -0
  401. package/dist/modes/print-mode.js +101 -0
  402. package/dist/modes/print-mode.js.map +1 -0
  403. package/dist/modes/rpc/rpc-client.d.ts +217 -0
  404. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  405. package/dist/modes/rpc/rpc-client.js +405 -0
  406. package/dist/modes/rpc/rpc-client.js.map +1 -0
  407. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  408. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  409. package/dist/modes/rpc/rpc-mode.js +511 -0
  410. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  411. package/dist/modes/rpc/rpc-types.d.ts +409 -0
  412. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  413. package/dist/modes/rpc/rpc-types.js +8 -0
  414. package/dist/modes/rpc/rpc-types.js.map +1 -0
  415. package/dist/utils/changelog.d.ts +21 -0
  416. package/dist/utils/changelog.d.ts.map +1 -0
  417. package/dist/utils/changelog.js +87 -0
  418. package/dist/utils/changelog.js.map +1 -0
  419. package/dist/utils/clipboard-image.d.ts +11 -0
  420. package/dist/utils/clipboard-image.d.ts.map +1 -0
  421. package/dist/utils/clipboard-image.js +162 -0
  422. package/dist/utils/clipboard-image.js.map +1 -0
  423. package/dist/utils/clipboard-native.d.ts +7 -0
  424. package/dist/utils/clipboard-native.d.ts.map +1 -0
  425. package/dist/utils/clipboard-native.js +14 -0
  426. package/dist/utils/clipboard-native.js.map +1 -0
  427. package/dist/utils/clipboard.d.ts +2 -0
  428. package/dist/utils/clipboard.d.ts.map +1 -0
  429. package/dist/utils/clipboard.js +67 -0
  430. package/dist/utils/clipboard.js.map +1 -0
  431. package/dist/utils/frontmatter.d.ts +8 -0
  432. package/dist/utils/frontmatter.d.ts.map +1 -0
  433. package/dist/utils/frontmatter.js +26 -0
  434. package/dist/utils/frontmatter.js.map +1 -0
  435. package/dist/utils/git.d.ts +26 -0
  436. package/dist/utils/git.d.ts.map +1 -0
  437. package/dist/utils/git.js +163 -0
  438. package/dist/utils/git.js.map +1 -0
  439. package/dist/utils/image-convert.d.ts +9 -0
  440. package/dist/utils/image-convert.d.ts.map +1 -0
  441. package/dist/utils/image-convert.js +35 -0
  442. package/dist/utils/image-convert.js.map +1 -0
  443. package/dist/utils/image-resize.d.ts +36 -0
  444. package/dist/utils/image-resize.d.ts.map +1 -0
  445. package/dist/utils/image-resize.js +181 -0
  446. package/dist/utils/image-resize.js.map +1 -0
  447. package/dist/utils/mime.d.ts +2 -0
  448. package/dist/utils/mime.d.ts.map +1 -0
  449. package/dist/utils/mime.js +26 -0
  450. package/dist/utils/mime.js.map +1 -0
  451. package/dist/utils/photon.d.ts +21 -0
  452. package/dist/utils/photon.d.ts.map +1 -0
  453. package/dist/utils/photon.js +121 -0
  454. package/dist/utils/photon.js.map +1 -0
  455. package/dist/utils/shell.d.ts +26 -0
  456. package/dist/utils/shell.d.ts.map +1 -0
  457. package/dist/utils/shell.js +186 -0
  458. package/dist/utils/shell.js.map +1 -0
  459. package/dist/utils/sleep.d.ts +5 -0
  460. package/dist/utils/sleep.d.ts.map +1 -0
  461. package/dist/utils/sleep.js +17 -0
  462. package/dist/utils/sleep.js.map +1 -0
  463. package/dist/utils/tools-manager.d.ts +3 -0
  464. package/dist/utils/tools-manager.d.ts.map +1 -0
  465. package/dist/utils/tools-manager.js +207 -0
  466. package/dist/utils/tools-manager.js.map +1 -0
  467. package/docs/compaction.md +390 -0
  468. package/docs/custom-provider.md +548 -0
  469. package/docs/development.md +69 -0
  470. package/docs/extensions.md +1935 -0
  471. package/docs/images/doom-extension.png +0 -0
  472. package/docs/images/exy.png +0 -0
  473. package/docs/images/interactive-mode.png +0 -0
  474. package/docs/images/tree-view.png +0 -0
  475. package/docs/json.md +79 -0
  476. package/docs/keybindings.md +174 -0
  477. package/docs/models.md +293 -0
  478. package/docs/packages.md +209 -0
  479. package/docs/prompt-templates.md +67 -0
  480. package/docs/providers.md +186 -0
  481. package/docs/rpc.md +1317 -0
  482. package/docs/sdk.md +968 -0
  483. package/docs/session.md +412 -0
  484. package/docs/settings.md +223 -0
  485. package/docs/shell-aliases.md +13 -0
  486. package/docs/skills.md +231 -0
  487. package/docs/terminal-setup.md +70 -0
  488. package/docs/termux.md +127 -0
  489. package/docs/themes.md +295 -0
  490. package/docs/tree.md +219 -0
  491. package/docs/tui.md +887 -0
  492. package/docs/windows.md +17 -0
  493. package/examples/README.md +25 -0
  494. package/examples/extensions/README.md +203 -0
  495. package/examples/extensions/antigravity-image-gen.ts +413 -0
  496. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  497. package/examples/extensions/bash-spawn-hook.ts +30 -0
  498. package/examples/extensions/bookmark.ts +50 -0
  499. package/examples/extensions/claude-rules.ts +86 -0
  500. package/examples/extensions/commands.ts +72 -0
  501. package/examples/extensions/confirm-destructive.ts +59 -0
  502. package/examples/extensions/custom-compaction.ts +114 -0
  503. package/examples/extensions/custom-footer.ts +64 -0
  504. package/examples/extensions/custom-header.ts +73 -0
  505. package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
  506. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  507. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  508. package/examples/extensions/custom-provider-gitlab-duo/index.ts +349 -0
  509. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  510. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  511. package/examples/extensions/custom-provider-qwen-cli/index.ts +345 -0
  512. package/examples/extensions/custom-provider-qwen-cli/package.json +16 -0
  513. package/examples/extensions/dirty-repo-guard.ts +56 -0
  514. package/examples/extensions/doom-overlay/README.md +46 -0
  515. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  516. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  517. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  518. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  519. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  520. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  521. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  522. package/examples/extensions/doom-overlay/index.ts +74 -0
  523. package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  524. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  525. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  526. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  527. package/examples/extensions/dynamic-resources/index.ts +15 -0
  528. package/examples/extensions/event-bus.ts +43 -0
  529. package/examples/extensions/file-trigger.ts +41 -0
  530. package/examples/extensions/git-checkpoint.ts +53 -0
  531. package/examples/extensions/handoff.ts +150 -0
  532. package/examples/extensions/hello.ts +25 -0
  533. package/examples/extensions/inline-bash.ts +94 -0
  534. package/examples/extensions/input-transform.ts +43 -0
  535. package/examples/extensions/interactive-shell.ts +196 -0
  536. package/examples/extensions/mac-system-theme.ts +47 -0
  537. package/examples/extensions/message-renderer.ts +59 -0
  538. package/examples/extensions/minimal-mode.ts +426 -0
  539. package/examples/extensions/modal-editor.ts +85 -0
  540. package/examples/extensions/model-status.ts +31 -0
  541. package/examples/extensions/notify.ts +55 -0
  542. package/examples/extensions/overlay-qa-tests.ts +881 -0
  543. package/examples/extensions/overlay-test.ts +150 -0
  544. package/examples/extensions/permission-gate.ts +34 -0
  545. package/examples/extensions/pirate.ts +47 -0
  546. package/examples/extensions/plan-mode/README.md +65 -0
  547. package/examples/extensions/plan-mode/index.ts +340 -0
  548. package/examples/extensions/plan-mode/utils.ts +168 -0
  549. package/examples/extensions/preset.ts +398 -0
  550. package/examples/extensions/protected-paths.ts +30 -0
  551. package/examples/extensions/qna.ts +119 -0
  552. package/examples/extensions/question.ts +264 -0
  553. package/examples/extensions/questionnaire.ts +427 -0
  554. package/examples/extensions/rainbow-editor.ts +88 -0
  555. package/examples/extensions/reload-runtime.ts +37 -0
  556. package/examples/extensions/rpc-demo.ts +124 -0
  557. package/examples/extensions/sandbox/index.ts +318 -0
  558. package/examples/extensions/sandbox/package-lock.json +92 -0
  559. package/examples/extensions/sandbox/package.json +19 -0
  560. package/examples/extensions/send-user-message.ts +97 -0
  561. package/examples/extensions/session-name.ts +27 -0
  562. package/examples/extensions/shutdown-command.ts +63 -0
  563. package/examples/extensions/snake.ts +343 -0
  564. package/examples/extensions/space-invaders.ts +560 -0
  565. package/examples/extensions/ssh.ts +220 -0
  566. package/examples/extensions/status-line.ts +40 -0
  567. package/examples/extensions/subagent/README.md +172 -0
  568. package/examples/extensions/subagent/agents/planner.md +37 -0
  569. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  570. package/examples/extensions/subagent/agents/scout.md +50 -0
  571. package/examples/extensions/subagent/agents/worker.md +24 -0
  572. package/examples/extensions/subagent/agents.ts +127 -0
  573. package/examples/extensions/subagent/index.ts +964 -0
  574. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  575. package/examples/extensions/subagent/prompts/implement.md +10 -0
  576. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  577. package/examples/extensions/summarize.ts +195 -0
  578. package/examples/extensions/system-prompt-header.ts +17 -0
  579. package/examples/extensions/timed-confirm.ts +70 -0
  580. package/examples/extensions/titlebar-spinner.ts +58 -0
  581. package/examples/extensions/todo.ts +299 -0
  582. package/examples/extensions/tool-override.ts +143 -0
  583. package/examples/extensions/tools.ts +146 -0
  584. package/examples/extensions/trigger-compact.ts +40 -0
  585. package/examples/extensions/truncated-tool.ts +192 -0
  586. package/examples/extensions/widget-placement.ts +17 -0
  587. package/examples/extensions/with-deps/index.ts +36 -0
  588. package/examples/extensions/with-deps/package-lock.json +31 -0
  589. package/examples/extensions/with-deps/package.json +22 -0
  590. package/examples/rpc-extension-ui.ts +632 -0
  591. package/examples/sdk/01-minimal.ts +22 -0
  592. package/examples/sdk/02-custom-model.ts +49 -0
  593. package/examples/sdk/03-custom-prompt.ts +55 -0
  594. package/examples/sdk/04-skills.ts +46 -0
  595. package/examples/sdk/05-tools.ts +56 -0
  596. package/examples/sdk/06-extensions.ts +88 -0
  597. package/examples/sdk/07-context-files.ts +40 -0
  598. package/examples/sdk/08-prompt-templates.ts +47 -0
  599. package/examples/sdk/09-api-keys-and-oauth.ts +48 -0
  600. package/examples/sdk/10-settings.ts +51 -0
  601. package/examples/sdk/11-sessions.ts +48 -0
  602. package/examples/sdk/12-full-control.ts +82 -0
  603. package/examples/sdk/README.md +144 -0
  604. package/package.json +96 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, readFileSync } from \"fs\";\r\nimport { homedir } from \"os\";\r\nimport { dirname, join, resolve } from \"path\";\r\nimport { fileURLToPath } from \"url\";\r\n\r\n// =============================================================================\r\n// Package Detection\r\n// =============================================================================\r\n\r\nconst __filename = fileURLToPath(import.meta.url);\r\nconst __dirname = dirname(__filename);\r\n\r\n/**\r\n * Detect if we're running as a Bun compiled binary.\r\n * Bun binaries have import.meta.url containing \"$bunfs\", \"~BUN\", or \"%7EBUN\" (Bun's virtual filesystem path)\r\n */\r\nexport const isBunBinary =\r\n\timport.meta.url.includes(\"$bunfs\") || import.meta.url.includes(\"~BUN\") || import.meta.url.includes(\"%7EBUN\");\r\n\r\n/** Detect if Bun is the runtime (compiled binary or bun run) */\r\nexport const isBunRuntime = !!process.versions.bun;\r\n\r\n// =============================================================================\r\n// Install Method Detection\r\n// =============================================================================\r\n\r\nexport type InstallMethod = \"bun-binary\" | \"npm\" | \"pnpm\" | \"yarn\" | \"bun\" | \"unknown\";\r\n\r\nexport function detectInstallMethod(): InstallMethod {\r\n\tif (isBunBinary) {\r\n\t\treturn \"bun-binary\";\r\n\t}\r\n\r\n\tconst resolvedPath = `${__dirname}\\0${process.execPath || \"\"}`.toLowerCase();\r\n\r\n\tif (resolvedPath.includes(\"/pnpm/\") || resolvedPath.includes(\"/.pnpm/\") || resolvedPath.includes(\"\\\\pnpm\\\\\")) {\r\n\t\treturn \"pnpm\";\r\n\t}\r\n\tif (resolvedPath.includes(\"/yarn/\") || resolvedPath.includes(\"/.yarn/\") || resolvedPath.includes(\"\\\\yarn\\\\\")) {\r\n\t\treturn \"yarn\";\r\n\t}\r\n\tif (isBunRuntime) {\r\n\t\treturn \"bun\";\r\n\t}\r\n\tif (resolvedPath.includes(\"/npm/\") || resolvedPath.includes(\"/node_modules/\") || resolvedPath.includes(\"\\\\npm\\\\\")) {\r\n\t\treturn \"npm\";\r\n\t}\r\n\r\n\treturn \"unknown\";\r\n}\r\n\r\nexport function getUpdateInstruction(packageName: string): string {\r\n\tconst method = detectInstallMethod();\r\n\tswitch (method) {\r\n\t\tcase \"bun-binary\":\r\n\t\t\treturn `Download from: https://github.com/imdigitalashish/zpi/releases/latest`;\r\n\t\tcase \"pnpm\":\r\n\t\t\treturn `Run: pnpm install -g ${packageName}`;\r\n\t\tcase \"yarn\":\r\n\t\t\treturn `Run: yarn global add ${packageName}`;\r\n\t\tcase \"bun\":\r\n\t\t\treturn `Run: bun install -g ${packageName}`;\r\n\t\tcase \"npm\":\r\n\t\t\treturn `Run: npm install -g ${packageName}`;\r\n\t\tdefault:\r\n\t\t\treturn `Run: npm install -g ${packageName}`;\r\n\t}\r\n}\r\n\r\n// =============================================================================\r\n// Package Asset Paths (shipped with executable)\r\n// =============================================================================\r\n\r\n/**\r\n * Get the base directory for resolving package assets (themes, package.json, README.md, CHANGELOG.md).\r\n * - For Bun binary: returns the directory containing the executable\r\n * - For Node.js (dist/): returns __dirname (the dist/ directory)\r\n * - For tsx (src/): returns parent directory (the package root)\r\n */\r\nexport function getPackageDir(): string {\r\n\t// Allow override via environment variable (useful for Nix/Guix where store paths tokenize poorly)\r\n\tconst envDir = process.env.PI_PACKAGE_DIR;\r\n\tif (envDir) {\r\n\t\tif (envDir === \"~\") return homedir();\r\n\t\tif (envDir.startsWith(\"~/\")) return homedir() + envDir.slice(1);\r\n\t\treturn envDir;\r\n\t}\r\n\r\n\tif (isBunBinary) {\r\n\t\t// Bun binary: process.execPath points to the compiled executable\r\n\t\treturn dirname(process.execPath);\r\n\t}\r\n\t// Node.js: walk up from __dirname until we find package.json\r\n\tlet dir = __dirname;\r\n\twhile (dir !== dirname(dir)) {\r\n\t\tif (existsSync(join(dir, \"package.json\"))) {\r\n\t\t\treturn dir;\r\n\t\t}\r\n\t\tdir = dirname(dir);\r\n\t}\r\n\t// Fallback (shouldn't happen)\r\n\treturn __dirname;\r\n}\r\n\r\n/**\r\n * Get path to built-in themes directory (shipped with package)\r\n * - For Bun binary: theme/ next to executable\r\n * - For Node.js (dist/): dist/modes/interactive/theme/\r\n * - For tsx (src/): src/modes/interactive/theme/\r\n */\r\nexport function getThemesDir(): string {\r\n\tif (isBunBinary) {\r\n\t\treturn join(dirname(process.execPath), \"theme\");\r\n\t}\r\n\t// Theme is in modes/interactive/theme/ relative to src/ or dist/\r\n\tconst packageDir = getPackageDir();\r\n\tconst srcOrDist = existsSync(join(packageDir, \"src\")) ? \"src\" : \"dist\";\r\n\treturn join(packageDir, srcOrDist, \"modes\", \"interactive\", \"theme\");\r\n}\r\n\r\n/**\r\n * Get path to HTML export template directory (shipped with package)\r\n * - For Bun binary: export-html/ next to executable\r\n * - For Node.js (dist/): dist/core/export-html/\r\n * - For tsx (src/): src/core/export-html/\r\n */\r\nexport function getExportTemplateDir(): string {\r\n\tif (isBunBinary) {\r\n\t\treturn join(dirname(process.execPath), \"export-html\");\r\n\t}\r\n\tconst packageDir = getPackageDir();\r\n\tconst srcOrDist = existsSync(join(packageDir, \"src\")) ? \"src\" : \"dist\";\r\n\treturn join(packageDir, srcOrDist, \"core\", \"export-html\");\r\n}\r\n\r\n/** Get path to package.json */\r\nexport function getPackageJsonPath(): string {\r\n\treturn join(getPackageDir(), \"package.json\");\r\n}\r\n\r\n/** Get path to README.md */\r\nexport function getReadmePath(): string {\r\n\treturn resolve(join(getPackageDir(), \"README.md\"));\r\n}\r\n\r\n/** Get path to docs directory */\r\nexport function getDocsPath(): string {\r\n\treturn resolve(join(getPackageDir(), \"docs\"));\r\n}\r\n\r\n/** Get path to examples directory */\r\nexport function getExamplesPath(): string {\r\n\treturn resolve(join(getPackageDir(), \"examples\"));\r\n}\r\n\r\n/** Get path to CHANGELOG.md */\r\nexport function getChangelogPath(): string {\r\n\treturn resolve(join(getPackageDir(), \"CHANGELOG.md\"));\r\n}\r\n\r\n// =============================================================================\r\n// App Config (from package.json piConfig)\r\n// =============================================================================\r\n\r\nconst pkg = JSON.parse(readFileSync(getPackageJsonPath(), \"utf-8\"));\r\n\r\nexport const APP_NAME: string = pkg.piConfig?.name || \"pi\";\r\nexport const CONFIG_DIR_NAME: string = pkg.piConfig?.configDir || \".pi\";\r\nexport const VERSION: string = pkg.version;\r\n\r\n// e.g., PI_CODING_AGENT_DIR or TAU_CODING_AGENT_DIR\r\nexport const ENV_AGENT_DIR = `${APP_NAME.toUpperCase()}_CODING_AGENT_DIR`;\r\n\r\nconst DEFAULT_SHARE_VIEWER_URL = \"https://pi.dev/session/\";\r\n\r\n/** Get the share viewer URL for a gist ID */\r\nexport function getShareViewerUrl(gistId: string): string {\r\n\tconst baseUrl = process.env.PI_SHARE_VIEWER_URL || DEFAULT_SHARE_VIEWER_URL;\r\n\treturn `${baseUrl}#${gistId}`;\r\n}\r\n\r\n// =============================================================================\r\n// User Config Paths (~/.pi/agent/*)\r\n// =============================================================================\r\n\r\n/** Get the agent config directory (e.g., ~/.pi/agent/) */\r\nexport function getAgentDir(): string {\r\n\tconst envDir = process.env[ENV_AGENT_DIR];\r\n\tif (envDir) {\r\n\t\t// Expand tilde to home directory\r\n\t\tif (envDir === \"~\") return homedir();\r\n\t\tif (envDir.startsWith(\"~/\")) return homedir() + envDir.slice(1);\r\n\t\treturn envDir;\r\n\t}\r\n\treturn join(homedir(), CONFIG_DIR_NAME, \"agent\");\r\n}\r\n\r\n/** Get path to user's custom themes directory */\r\nexport function getCustomThemesDir(): string {\r\n\treturn join(getAgentDir(), \"themes\");\r\n}\r\n\r\n/** Get path to models.json */\r\nexport function getModelsPath(): string {\r\n\treturn join(getAgentDir(), \"models.json\");\r\n}\r\n\r\n/** Get path to auth.json */\r\nexport function getAuthPath(): string {\r\n\treturn join(getAgentDir(), \"auth.json\");\r\n}\r\n\r\n/** Get path to settings.json */\r\nexport function getSettingsPath(): string {\r\n\treturn join(getAgentDir(), \"settings.json\");\r\n}\r\n\r\n/** Get path to tools directory */\r\nexport function getToolsDir(): string {\r\n\treturn join(getAgentDir(), \"tools\");\r\n}\r\n\r\n/** Get path to managed binaries directory (fd, rg) */\r\nexport function getBinDir(): string {\r\n\treturn join(getAgentDir(), \"bin\");\r\n}\r\n\r\n/** Get path to prompt templates directory */\r\nexport function getPromptsDir(): string {\r\n\treturn join(getAgentDir(), \"prompts\");\r\n}\r\n\r\n/** Get path to sessions directory */\r\nexport function getSessionsDir(): string {\r\n\treturn join(getAgentDir(), \"sessions\");\r\n}\r\n\r\n/** Get path to debug log file */\r\nexport function getDebugLogPath(): string {\r\n\treturn join(getAgentDir(), `${APP_NAME}-debug.log`);\r\n}\r\n"]}
@@ -0,0 +1,571 @@
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 ContextUsage, type ExtensionCommandContextActions, type ExtensionErrorListener, ExtensionRunner, type ExtensionUIContext, type InputSource, type ShutdownHandler, type ToolDefinition, type ToolInfo } 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 { ResourceLoader } from "./resource-loader.js";
24
+ import type { BranchSummaryEntry, SessionManager } from "./session-manager.js";
25
+ import type { SettingsManager } from "./settings-manager.js";
26
+ import type { BashOperations } from "./tools/bash.js";
27
+ /** Parsed skill block from a user message */
28
+ export interface ParsedSkillBlock {
29
+ name: string;
30
+ location: string;
31
+ content: string;
32
+ userMessage: string | undefined;
33
+ }
34
+ /**
35
+ * Parse a skill block from message text.
36
+ * Returns null if the text doesn't contain a skill block.
37
+ */
38
+ export declare function parseSkillBlock(text: string): ParsedSkillBlock | null;
39
+ /** Session-specific events that extend the core AgentEvent */
40
+ export type AgentSessionEvent = AgentEvent | {
41
+ type: "auto_compaction_start";
42
+ reason: "threshold" | "overflow";
43
+ } | {
44
+ type: "auto_compaction_end";
45
+ result: CompactionResult | undefined;
46
+ aborted: boolean;
47
+ willRetry: boolean;
48
+ errorMessage?: string;
49
+ } | {
50
+ type: "auto_retry_start";
51
+ attempt: number;
52
+ maxAttempts: number;
53
+ delayMs: number;
54
+ errorMessage: string;
55
+ } | {
56
+ type: "auto_retry_end";
57
+ success: boolean;
58
+ attempt: number;
59
+ finalError?: string;
60
+ };
61
+ /** Listener function for agent session events */
62
+ export type AgentSessionEventListener = (event: AgentSessionEvent) => void;
63
+ export interface AgentSessionConfig {
64
+ agent: Agent;
65
+ sessionManager: SessionManager;
66
+ settingsManager: SettingsManager;
67
+ cwd: string;
68
+ /** Models to cycle through with Ctrl+P (from --models flag) */
69
+ scopedModels?: Array<{
70
+ model: Model<any>;
71
+ thinkingLevel: ThinkingLevel;
72
+ }>;
73
+ /** Resource loader for skills, prompts, themes, context files, system prompt */
74
+ resourceLoader: ResourceLoader;
75
+ /** SDK custom tools registered outside extensions */
76
+ customTools?: ToolDefinition[];
77
+ /** Model registry for API key resolution and model discovery */
78
+ modelRegistry: ModelRegistry;
79
+ /** Initial active built-in tool names. Default: [read, bash, edit, write] */
80
+ initialActiveToolNames?: string[];
81
+ /** Override base tools (useful for custom runtimes). */
82
+ baseToolsOverride?: Record<string, AgentTool>;
83
+ /** Mutable ref used by Agent to access the current ExtensionRunner */
84
+ extensionRunnerRef?: {
85
+ current?: ExtensionRunner;
86
+ };
87
+ }
88
+ export interface ExtensionBindings {
89
+ uiContext?: ExtensionUIContext;
90
+ commandContextActions?: ExtensionCommandContextActions;
91
+ shutdownHandler?: ShutdownHandler;
92
+ onError?: ExtensionErrorListener;
93
+ }
94
+ /** Options for AgentSession.prompt() */
95
+ export interface PromptOptions {
96
+ /** Whether to expand file-based prompt templates (default: true) */
97
+ expandPromptTemplates?: boolean;
98
+ /** Image attachments */
99
+ images?: ImageContent[];
100
+ /** When streaming, how to queue the message: "steer" (interrupt) or "followUp" (wait). Required if streaming. */
101
+ streamingBehavior?: "steer" | "followUp";
102
+ /** Source of input for extension input event handlers. Defaults to "interactive". */
103
+ source?: InputSource;
104
+ }
105
+ /** Result from cycleModel() */
106
+ export interface ModelCycleResult {
107
+ model: Model<any>;
108
+ thinkingLevel: ThinkingLevel;
109
+ /** Whether cycling through scoped models (--models flag) or all available */
110
+ isScoped: boolean;
111
+ }
112
+ /** Session statistics for /session command */
113
+ export interface SessionStats {
114
+ sessionFile: string | undefined;
115
+ sessionId: string;
116
+ userMessages: number;
117
+ assistantMessages: number;
118
+ toolCalls: number;
119
+ toolResults: number;
120
+ totalMessages: number;
121
+ tokens: {
122
+ input: number;
123
+ output: number;
124
+ cacheRead: number;
125
+ cacheWrite: number;
126
+ total: number;
127
+ };
128
+ cost: number;
129
+ }
130
+ export declare class AgentSession {
131
+ readonly agent: Agent;
132
+ readonly sessionManager: SessionManager;
133
+ readonly settingsManager: SettingsManager;
134
+ private _scopedModels;
135
+ private _unsubscribeAgent?;
136
+ private _eventListeners;
137
+ /** Tracks pending steering messages for UI display. Removed when delivered. */
138
+ private _steeringMessages;
139
+ /** Tracks pending follow-up messages for UI display. Removed when delivered. */
140
+ private _followUpMessages;
141
+ /** Messages queued to be included with the next user prompt as context ("asides"). */
142
+ private _pendingNextTurnMessages;
143
+ private _compactionAbortController;
144
+ private _autoCompactionAbortController;
145
+ private _branchSummaryAbortController;
146
+ private _retryAbortController;
147
+ private _retryAttempt;
148
+ private _retryPromise;
149
+ private _retryResolve;
150
+ private _bashAbortController;
151
+ private _pendingBashMessages;
152
+ private _extensionRunner;
153
+ private _turnIndex;
154
+ private _resourceLoader;
155
+ private _customTools;
156
+ private _baseToolRegistry;
157
+ private _cwd;
158
+ private _extensionRunnerRef?;
159
+ private _initialActiveToolNames?;
160
+ private _baseToolsOverride?;
161
+ private _extensionUIContext?;
162
+ private _extensionCommandContextActions?;
163
+ private _extensionShutdownHandler?;
164
+ private _extensionErrorListener?;
165
+ private _extensionErrorUnsubscriber?;
166
+ private _modelRegistry;
167
+ private _toolRegistry;
168
+ private _baseSystemPrompt;
169
+ constructor(config: AgentSessionConfig);
170
+ /** Model registry for API key resolution and model discovery */
171
+ get modelRegistry(): ModelRegistry;
172
+ /** Emit an event to all listeners */
173
+ private _emit;
174
+ private _lastAssistantMessage;
175
+ /** Internal handler for agent events - shared by subscribe and reconnect */
176
+ private _handleAgentEvent;
177
+ /** Resolve the pending retry promise */
178
+ private _resolveRetry;
179
+ /** Extract text content from a message */
180
+ private _getUserMessageText;
181
+ /** Find the last assistant message in agent state (including aborted ones) */
182
+ private _findLastAssistantMessage;
183
+ private _emitExtensionEvent;
184
+ /**
185
+ * Subscribe to agent events.
186
+ * Session persistence is handled internally (saves messages on message_end).
187
+ * Multiple listeners can be added. Returns unsubscribe function for this listener.
188
+ */
189
+ subscribe(listener: AgentSessionEventListener): () => void;
190
+ /**
191
+ * Temporarily disconnect from agent events.
192
+ * User listeners are preserved and will receive events again after resubscribe().
193
+ * Used internally during operations that need to pause event processing.
194
+ */
195
+ private _disconnectFromAgent;
196
+ /**
197
+ * Reconnect to agent events after _disconnectFromAgent().
198
+ * Preserves all existing listeners.
199
+ */
200
+ private _reconnectToAgent;
201
+ /**
202
+ * Remove all listeners and disconnect from agent.
203
+ * Call this when completely done with the session.
204
+ */
205
+ dispose(): void;
206
+ /** Full agent state */
207
+ get state(): AgentState;
208
+ /** Current model (may be undefined if not yet selected) */
209
+ get model(): Model<any> | undefined;
210
+ /** Current thinking level */
211
+ get thinkingLevel(): ThinkingLevel;
212
+ /** Whether agent is currently streaming a response */
213
+ get isStreaming(): boolean;
214
+ /** Current effective system prompt (includes any per-turn extension modifications) */
215
+ get systemPrompt(): string;
216
+ /** Current retry attempt (0 if not retrying) */
217
+ get retryAttempt(): number;
218
+ /**
219
+ * Get the names of currently active tools.
220
+ * Returns the names of tools currently set on the agent.
221
+ */
222
+ getActiveToolNames(): string[];
223
+ /**
224
+ * Get all configured tools with name, description, and parameter schema.
225
+ */
226
+ getAllTools(): ToolInfo[];
227
+ /**
228
+ * Set active tools by name.
229
+ * Only tools in the registry can be enabled. Unknown tool names are ignored.
230
+ * Also rebuilds the system prompt to reflect the new tool set.
231
+ * Changes take effect on the next agent turn.
232
+ */
233
+ setActiveToolsByName(toolNames: string[]): void;
234
+ /** Whether auto-compaction is currently running */
235
+ get isCompacting(): boolean;
236
+ /** All messages including custom types like BashExecutionMessage */
237
+ get messages(): AgentMessage[];
238
+ /** Current steering mode */
239
+ get steeringMode(): "all" | "one-at-a-time";
240
+ /** Current follow-up mode */
241
+ get followUpMode(): "all" | "one-at-a-time";
242
+ /** Current session file path, or undefined if sessions are disabled */
243
+ get sessionFile(): string | undefined;
244
+ /** Current session ID */
245
+ get sessionId(): string;
246
+ /** Current session display name, if set */
247
+ get sessionName(): string | undefined;
248
+ /** Scoped models for cycling (from --models flag) */
249
+ get scopedModels(): ReadonlyArray<{
250
+ model: Model<any>;
251
+ thinkingLevel: ThinkingLevel;
252
+ }>;
253
+ /** Update scoped models for cycling */
254
+ setScopedModels(scopedModels: Array<{
255
+ model: Model<any>;
256
+ thinkingLevel: ThinkingLevel;
257
+ }>): void;
258
+ /** File-based prompt templates */
259
+ get promptTemplates(): ReadonlyArray<PromptTemplate>;
260
+ private _rebuildSystemPrompt;
261
+ /**
262
+ * Send a prompt to the agent.
263
+ * - Handles extension commands (registered via pi.registerCommand) immediately, even during streaming
264
+ * - Expands file-based prompt templates by default
265
+ * - During streaming, queues via steer() or followUp() based on streamingBehavior option
266
+ * - Validates model and API key before sending (when not streaming)
267
+ * @throws Error if streaming and no streamingBehavior specified
268
+ * @throws Error if no model selected or no API key available (when not streaming)
269
+ */
270
+ prompt(text: string, options?: PromptOptions): Promise<void>;
271
+ private _tryExecuteExtensionCommand;
272
+ /**
273
+ * Expand skill commands (/skill:name args) to their full content.
274
+ * Returns the expanded text, or the original text if not a skill command or skill not found.
275
+ * Emits errors via extension runner if file read fails.
276
+ */
277
+ private _expandSkillCommand;
278
+ /**
279
+ * Queue a steering message to interrupt the agent mid-run.
280
+ * Delivered after current tool execution, skips remaining tools.
281
+ * Expands skill commands and prompt templates. Errors on extension commands.
282
+ * @param images Optional image attachments to include with the message
283
+ * @throws Error if text is an extension command
284
+ */
285
+ steer(text: string, images?: ImageContent[]): Promise<void>;
286
+ /**
287
+ * Queue a follow-up message to be processed after the agent finishes.
288
+ * Delivered only when agent has no more tool calls or steering messages.
289
+ * Expands skill commands and prompt templates. Errors on extension commands.
290
+ * @param images Optional image attachments to include with the message
291
+ * @throws Error if text is an extension command
292
+ */
293
+ followUp(text: string, images?: ImageContent[]): Promise<void>;
294
+ private _queueSteer;
295
+ private _queueFollowUp;
296
+ /**
297
+ * Throw an error if the text is an extension command.
298
+ */
299
+ private _throwIfExtensionCommand;
300
+ /**
301
+ * Send a custom message to the session. Creates a CustomMessageEntry.
302
+ *
303
+ * Handles three cases:
304
+ * - Streaming: queues message, processed when loop pulls from queue
305
+ * - Not streaming + triggerTurn: appends to state/session, starts new turn
306
+ * - Not streaming + no trigger: appends to state/session, no turn
307
+ *
308
+ * @param message Custom message with customType, content, display, details
309
+ * @param options.triggerTurn If true and not streaming, triggers a new LLM turn
310
+ * @param options.deliverAs Delivery mode: "steer", "followUp", or "nextTurn"
311
+ */
312
+ sendCustomMessage<T = unknown>(message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details">, options?: {
313
+ triggerTurn?: boolean;
314
+ deliverAs?: "steer" | "followUp" | "nextTurn";
315
+ }): Promise<void>;
316
+ /**
317
+ * Send a user message to the agent. Always triggers a turn.
318
+ * When the agent is streaming, use deliverAs to specify how to queue the message.
319
+ *
320
+ * @param content User message content (string or content array)
321
+ * @param options.deliverAs Delivery mode when streaming: "steer" or "followUp"
322
+ */
323
+ sendUserMessage(content: string | (TextContent | ImageContent)[], options?: {
324
+ deliverAs?: "steer" | "followUp";
325
+ }): Promise<void>;
326
+ /**
327
+ * Clear all queued messages and return them.
328
+ * Useful for restoring to editor when user aborts.
329
+ * @returns Object with steering and followUp arrays
330
+ */
331
+ clearQueue(): {
332
+ steering: string[];
333
+ followUp: string[];
334
+ };
335
+ /** Number of pending messages (includes both steering and follow-up) */
336
+ get pendingMessageCount(): number;
337
+ /** Get pending steering messages (read-only) */
338
+ getSteeringMessages(): readonly string[];
339
+ /** Get pending follow-up messages (read-only) */
340
+ getFollowUpMessages(): readonly string[];
341
+ get resourceLoader(): ResourceLoader;
342
+ /**
343
+ * Abort current operation and wait for agent to become idle.
344
+ */
345
+ abort(): Promise<void>;
346
+ /**
347
+ * Start a new session, optionally with initial messages and parent tracking.
348
+ * Clears all messages and starts a new session.
349
+ * Listeners are preserved and will continue receiving events.
350
+ * @param options.parentSession - Optional parent session path for tracking
351
+ * @param options.setup - Optional callback to initialize session (e.g., append messages)
352
+ * @returns true if completed, false if cancelled by extension
353
+ */
354
+ newSession(options?: {
355
+ parentSession?: string;
356
+ setup?: (sessionManager: SessionManager) => Promise<void>;
357
+ }): Promise<boolean>;
358
+ private _emitModelSelect;
359
+ /**
360
+ * Set model directly.
361
+ * Validates API key, saves to session and settings.
362
+ * @throws Error if no API key available for the model
363
+ */
364
+ setModel(model: Model<any>): Promise<void>;
365
+ /**
366
+ * Cycle to next/previous model.
367
+ * Uses scoped models (from --models flag) if available, otherwise all available models.
368
+ * @param direction - "forward" (default) or "backward"
369
+ * @returns The new model info, or undefined if only one model available
370
+ */
371
+ cycleModel(direction?: "forward" | "backward"): Promise<ModelCycleResult | undefined>;
372
+ private _getScopedModelsWithApiKey;
373
+ private _cycleScopedModel;
374
+ private _cycleAvailableModel;
375
+ /**
376
+ * Set thinking level.
377
+ * Clamps to model capabilities based on available thinking levels.
378
+ * Saves to session and settings only if the level actually changes.
379
+ */
380
+ setThinkingLevel(level: ThinkingLevel): void;
381
+ /**
382
+ * Cycle to next thinking level.
383
+ * @returns New level, or undefined if model doesn't support thinking
384
+ */
385
+ cycleThinkingLevel(): ThinkingLevel | undefined;
386
+ /**
387
+ * Get available thinking levels for current model.
388
+ * The provider will clamp to what the specific model supports internally.
389
+ */
390
+ getAvailableThinkingLevels(): ThinkingLevel[];
391
+ /**
392
+ * Check if current model supports xhigh thinking level.
393
+ */
394
+ supportsXhighThinking(): boolean;
395
+ /**
396
+ * Check if current model supports thinking/reasoning.
397
+ */
398
+ supportsThinking(): boolean;
399
+ private _clampThinkingLevel;
400
+ /**
401
+ * Set steering message mode.
402
+ * Saves to settings.
403
+ */
404
+ setSteeringMode(mode: "all" | "one-at-a-time"): void;
405
+ /**
406
+ * Set follow-up message mode.
407
+ * Saves to settings.
408
+ */
409
+ setFollowUpMode(mode: "all" | "one-at-a-time"): void;
410
+ /**
411
+ * Manually compact the session context.
412
+ * Aborts current agent operation first.
413
+ * @param customInstructions Optional instructions for the compaction summary
414
+ */
415
+ compact(customInstructions?: string): Promise<CompactionResult>;
416
+ /**
417
+ * Cancel in-progress compaction (manual or auto).
418
+ */
419
+ abortCompaction(): void;
420
+ /**
421
+ * Cancel in-progress branch summarization.
422
+ */
423
+ abortBranchSummary(): void;
424
+ private _checkCompaction;
425
+ private _runAutoCompaction;
426
+ /**
427
+ * Toggle auto-compaction setting.
428
+ */
429
+ setAutoCompactionEnabled(enabled: boolean): void;
430
+ /** Whether auto-compaction is enabled */
431
+ get autoCompactionEnabled(): boolean;
432
+ bindExtensions(bindings: ExtensionBindings): Promise<void>;
433
+ private extendResourcesFromExtensions;
434
+ private buildExtensionResourcePaths;
435
+ private getExtensionSourceLabel;
436
+ private _applyExtensionBindings;
437
+ private _bindExtensionCore;
438
+ private _buildRuntime;
439
+ reload(): Promise<void>;
440
+ /**
441
+ * Check if an error is retryable (overloaded, rate limit, server errors).
442
+ * Context overflow errors are NOT retryable (handled by compaction instead).
443
+ */
444
+ private _isRetryableError;
445
+ private _handleRetryableError;
446
+ /**
447
+ * Cancel in-progress retry.
448
+ */
449
+ abortRetry(): void;
450
+ private waitForRetry;
451
+ /** Whether auto-retry is currently in progress */
452
+ get isRetrying(): boolean;
453
+ /** Whether auto-retry is enabled */
454
+ get autoRetryEnabled(): boolean;
455
+ /**
456
+ * Toggle auto-retry setting.
457
+ */
458
+ setAutoRetryEnabled(enabled: boolean): void;
459
+ /**
460
+ * Execute a bash command.
461
+ * Adds result to agent context and session.
462
+ * @param command The bash command to execute
463
+ * @param onChunk Optional streaming callback for output
464
+ * @param options.excludeFromContext If true, command output won't be sent to LLM (!! prefix)
465
+ * @param options.operations Custom BashOperations for remote execution
466
+ */
467
+ executeBash(command: string, onChunk?: (chunk: string) => void, options?: {
468
+ excludeFromContext?: boolean;
469
+ operations?: BashOperations;
470
+ }): Promise<BashResult>;
471
+ /**
472
+ * Record a bash execution result in session history.
473
+ * Used by executeBash and by extensions that handle bash execution themselves.
474
+ */
475
+ recordBashResult(command: string, result: BashResult, options?: {
476
+ excludeFromContext?: boolean;
477
+ }): void;
478
+ /**
479
+ * Cancel running bash command.
480
+ */
481
+ abortBash(): void;
482
+ /** Whether a bash command is currently running */
483
+ get isBashRunning(): boolean;
484
+ /** Whether there are pending bash messages waiting to be flushed */
485
+ get hasPendingBashMessages(): boolean;
486
+ /**
487
+ * Flush pending bash messages to agent state and session.
488
+ * Called after agent turn completes to maintain proper message ordering.
489
+ */
490
+ private _flushPendingBashMessages;
491
+ /**
492
+ * Switch to a different session file.
493
+ * Aborts current operation, loads messages, restores model/thinking.
494
+ * Listeners are preserved and will continue receiving events.
495
+ * @returns true if switch completed, false if cancelled by extension
496
+ */
497
+ switchSession(sessionPath: string): Promise<boolean>;
498
+ /**
499
+ * Set a display name for the current session.
500
+ */
501
+ setSessionName(name: string): void;
502
+ /**
503
+ * Create a fork from a specific entry.
504
+ * Emits before_fork/fork session events to extensions.
505
+ *
506
+ * @param entryId ID of the entry to fork from
507
+ * @returns Object with:
508
+ * - selectedText: The text of the selected user message (for editor pre-fill)
509
+ * - cancelled: True if an extension cancelled the fork
510
+ */
511
+ fork(entryId: string): Promise<{
512
+ selectedText: string;
513
+ cancelled: boolean;
514
+ }>;
515
+ /**
516
+ * Navigate to a different node in the session tree.
517
+ * Unlike fork() which creates a new session file, this stays in the same file.
518
+ *
519
+ * @param targetId The entry ID to navigate to
520
+ * @param options.summarize Whether user wants to summarize abandoned branch
521
+ * @param options.customInstructions Custom instructions for summarizer
522
+ * @param options.replaceInstructions If true, customInstructions replaces the default prompt
523
+ * @param options.label Label to attach to the branch summary entry
524
+ * @returns Result with editorText (if user message) and cancelled status
525
+ */
526
+ navigateTree(targetId: string, options?: {
527
+ summarize?: boolean;
528
+ customInstructions?: string;
529
+ replaceInstructions?: boolean;
530
+ label?: string;
531
+ }): Promise<{
532
+ editorText?: string;
533
+ cancelled: boolean;
534
+ aborted?: boolean;
535
+ summaryEntry?: BranchSummaryEntry;
536
+ }>;
537
+ /**
538
+ * Get all user messages from session for fork selector.
539
+ */
540
+ getUserMessagesForForking(): Array<{
541
+ entryId: string;
542
+ text: string;
543
+ }>;
544
+ private _extractUserMessageText;
545
+ /**
546
+ * Get session statistics.
547
+ */
548
+ getSessionStats(): SessionStats;
549
+ getContextUsage(): ContextUsage | undefined;
550
+ /**
551
+ * Export session to HTML.
552
+ * @param outputPath Optional output path (defaults to session directory)
553
+ * @returns Path to exported file
554
+ */
555
+ exportToHtml(outputPath?: string): Promise<string>;
556
+ /**
557
+ * Get text content of last assistant message.
558
+ * Useful for /copy command.
559
+ * @returns Text content, or undefined if no assistant message exists
560
+ */
561
+ getLastAssistantText(): string | undefined;
562
+ /**
563
+ * Check if extensions have handlers for a specific event type.
564
+ */
565
+ hasExtensionHandlers(eventType: string): boolean;
566
+ /**
567
+ * Get the extension runner (for setting UI context and error handlers).
568
+ */
569
+ get extensionRunner(): ExtensionRunner | undefined;
570
+ }
571
+ //# sourceMappingURL=agent-session.d.ts.map