indusagi-coding-agent 0.1.0 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/CHANGELOG.md +2249 -2249
  2. package/README.md +54 -546
  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 +122 -121
  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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/config.d.ts +66 -0
  28. package/dist/config.d.ts.map +1 -0
  29. package/dist/config.js +1 -0
  30. package/dist/config.js.map +1 -0
  31. package/dist/core/agent-session.d.ts +588 -0
  32. package/dist/core/agent-session.d.ts.map +1 -0
  33. package/dist/core/agent-session.js +118 -98
  34. package/dist/core/agent-session.js.map +1 -0
  35. package/dist/core/auth-storage.d.ts +107 -0
  36. package/dist/core/auth-storage.d.ts.map +1 -0
  37. package/dist/core/auth-storage.js +5 -2
  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 +1 -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 +31 -30
  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 +82 -81
  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 +1 -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 +3 -2
  58. package/dist/core/compaction/utils.js.map +1 -0
  59. package/dist/core/diagnostics.d.ts +15 -0
  60. package/dist/core/diagnostics.d.ts.map +1 -0
  61. package/dist/core/diagnostics.js +1 -0
  62. package/dist/core/diagnostics.js.map +1 -0
  63. package/dist/core/event-bus.d.ts +9 -0
  64. package/dist/core/event-bus.d.ts.map +1 -0
  65. package/dist/core/event-bus.js +1 -0
  66. package/dist/core/event-bus.js.map +1 -0
  67. package/dist/core/exec.d.ts +29 -0
  68. package/dist/core/exec.d.ts.map +1 -0
  69. package/dist/core/exec.js +1 -0
  70. package/dist/core/exec.js.map +1 -0
  71. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  72. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  73. package/dist/core/export-html/ansi-to-html.js +1 -0
  74. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  75. package/dist/core/export-html/index.d.ts +34 -0
  76. package/dist/core/export-html/index.d.ts.map +1 -0
  77. package/dist/core/export-html/index.js +1 -0
  78. package/dist/core/export-html/index.js.map +1 -0
  79. package/dist/core/export-html/template.css +905 -905
  80. package/dist/core/export-html/template.html +54 -54
  81. package/dist/core/export-html/template.js +1549 -1549
  82. package/dist/core/export-html/tool-renderer.d.ts +35 -0
  83. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  84. package/dist/core/export-html/tool-renderer.js +1 -0
  85. package/dist/core/export-html/tool-renderer.js.map +1 -0
  86. package/dist/core/export-html/vendor/highlight.min.js +1212 -1212
  87. package/dist/core/export-html/vendor/marked.min.js +6 -6
  88. package/dist/core/extensions/index.d.ts +10 -0
  89. package/dist/core/extensions/index.d.ts.map +1 -0
  90. package/dist/core/extensions/index.js +1 -0
  91. package/dist/core/extensions/index.js.map +1 -0
  92. package/dist/core/extensions/loader.d.ts +25 -0
  93. package/dist/core/extensions/loader.d.ts.map +1 -0
  94. package/dist/core/extensions/loader.js +1 -0
  95. package/dist/core/extensions/loader.js.map +1 -0
  96. package/dist/core/extensions/runner.d.ts +104 -0
  97. package/dist/core/extensions/runner.d.ts.map +1 -0
  98. package/dist/core/extensions/runner.js +20 -13
  99. package/dist/core/extensions/runner.js.map +1 -0
  100. package/dist/core/extensions/types.d.ts +834 -0
  101. package/dist/core/extensions/types.d.ts.map +1 -0
  102. package/dist/core/extensions/types.js +1 -0
  103. package/dist/core/extensions/types.js.map +1 -0
  104. package/dist/core/extensions/wrapper.d.ts +27 -0
  105. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  106. package/dist/core/extensions/wrapper.js +1 -0
  107. package/dist/core/extensions/wrapper.js.map +1 -0
  108. package/dist/core/footer-data-provider.d.ts +32 -0
  109. package/dist/core/footer-data-provider.d.ts.map +1 -0
  110. package/dist/core/footer-data-provider.js +6 -5
  111. package/dist/core/footer-data-provider.js.map +1 -0
  112. package/dist/core/index.d.ts +9 -0
  113. package/dist/core/index.d.ts.map +1 -0
  114. package/dist/core/index.js +1 -0
  115. package/dist/core/index.js.map +1 -0
  116. package/dist/core/keybindings.d.ts +55 -0
  117. package/dist/core/keybindings.d.ts.map +1 -0
  118. package/dist/core/keybindings.js +3 -0
  119. package/dist/core/keybindings.js.map +1 -0
  120. package/dist/core/messages.d.ts +77 -0
  121. package/dist/core/messages.d.ts.map +1 -0
  122. package/dist/core/messages.js +8 -7
  123. package/dist/core/messages.js.map +1 -0
  124. package/dist/core/model-registry.d.ts +99 -0
  125. package/dist/core/model-registry.d.ts.map +1 -0
  126. package/dist/core/model-registry.js +7 -4
  127. package/dist/core/model-registry.js.map +1 -0
  128. package/dist/core/model-resolver.d.ts +76 -0
  129. package/dist/core/model-resolver.d.ts.map +1 -0
  130. package/dist/core/model-resolver.js +1 -0
  131. package/dist/core/model-resolver.js.map +1 -0
  132. package/dist/core/package-manager.d.ts +134 -0
  133. package/dist/core/package-manager.d.ts.map +1 -0
  134. package/dist/core/package-manager.js +6 -0
  135. package/dist/core/package-manager.js.map +1 -0
  136. package/dist/core/prompt-templates.d.ts +50 -0
  137. package/dist/core/prompt-templates.d.ts.map +1 -0
  138. package/dist/core/prompt-templates.js +1 -0
  139. package/dist/core/prompt-templates.js.map +1 -0
  140. package/dist/core/resource-loader.d.ts +160 -0
  141. package/dist/core/resource-loader.d.ts.map +1 -0
  142. package/dist/core/resource-loader.js +35 -0
  143. package/dist/core/resource-loader.js.map +1 -0
  144. package/dist/core/sdk.d.ts +90 -0
  145. package/dist/core/sdk.d.ts.map +1 -0
  146. package/dist/core/sdk.js +1 -0
  147. package/dist/core/sdk.js.map +1 -0
  148. package/dist/core/session-manager.d.ts +321 -0
  149. package/dist/core/session-manager.d.ts.map +1 -0
  150. package/dist/core/session-manager.js +11 -6
  151. package/dist/core/session-manager.js.map +1 -0
  152. package/dist/core/settings-manager.d.ts +173 -0
  153. package/dist/core/settings-manager.d.ts.map +1 -0
  154. package/dist/core/settings-manager.js +7 -0
  155. package/dist/core/settings-manager.js.map +1 -0
  156. package/dist/core/skills.d.ts +58 -0
  157. package/dist/core/skills.d.ts.map +1 -0
  158. package/dist/core/skills.js +1 -0
  159. package/dist/core/skills.js.map +1 -0
  160. package/dist/core/system-prompt.d.ts +24 -0
  161. package/dist/core/system-prompt.d.ts.map +1 -0
  162. package/dist/core/system-prompt.js +17 -16
  163. package/dist/core/system-prompt.js.map +1 -0
  164. package/dist/core/timings.d.ts +7 -0
  165. package/dist/core/timings.d.ts.map +1 -0
  166. package/dist/core/timings.js +1 -0
  167. package/dist/core/timings.js.map +1 -0
  168. package/dist/core/tools/bash.d.ts +44 -0
  169. package/dist/core/tools/bash.d.ts.map +1 -0
  170. package/dist/core/tools/bash.js +1 -0
  171. package/dist/core/tools/bash.js.map +1 -0
  172. package/dist/core/tools/edit-diff.d.ts +63 -0
  173. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  174. package/dist/core/tools/edit-diff.js +1 -0
  175. package/dist/core/tools/edit-diff.js.map +1 -0
  176. package/dist/core/tools/edit.d.ts +37 -0
  177. package/dist/core/tools/edit.d.ts.map +1 -0
  178. package/dist/core/tools/edit.js +1 -0
  179. package/dist/core/tools/edit.js.map +1 -0
  180. package/dist/core/tools/find.d.ts +37 -0
  181. package/dist/core/tools/find.d.ts.map +1 -0
  182. package/dist/core/tools/find.js +1 -0
  183. package/dist/core/tools/find.js.map +1 -0
  184. package/dist/core/tools/grep.d.ts +43 -0
  185. package/dist/core/tools/grep.d.ts.map +1 -0
  186. package/dist/core/tools/grep.js +1 -0
  187. package/dist/core/tools/grep.js.map +1 -0
  188. package/dist/core/tools/index.d.ts +73 -0
  189. package/dist/core/tools/index.d.ts.map +1 -0
  190. package/dist/core/tools/index.js +1 -0
  191. package/dist/core/tools/index.js.map +1 -0
  192. package/dist/core/tools/ls.d.ts +38 -0
  193. package/dist/core/tools/ls.d.ts.map +1 -0
  194. package/dist/core/tools/ls.js +1 -0
  195. package/dist/core/tools/ls.js.map +1 -0
  196. package/dist/core/tools/path-utils.d.ts +8 -0
  197. package/dist/core/tools/path-utils.d.ts.map +1 -0
  198. package/dist/core/tools/path-utils.js +1 -0
  199. package/dist/core/tools/path-utils.js.map +1 -0
  200. package/dist/core/tools/read.d.ts +37 -0
  201. package/dist/core/tools/read.d.ts.map +1 -0
  202. package/dist/core/tools/read.js +1 -0
  203. package/dist/core/tools/read.js.map +1 -0
  204. package/dist/core/tools/truncate.d.ts +70 -0
  205. package/dist/core/tools/truncate.d.ts.map +1 -0
  206. package/dist/core/tools/truncate.js +1 -0
  207. package/dist/core/tools/truncate.js.map +1 -0
  208. package/dist/core/tools/write.d.ts +27 -0
  209. package/dist/core/tools/write.d.ts.map +1 -0
  210. package/dist/core/tools/write.js +1 -0
  211. package/dist/core/tools/write.js.map +1 -0
  212. package/dist/index.d.ts +27 -0
  213. package/dist/index.d.ts.map +1 -0
  214. package/dist/index.js +1 -0
  215. package/dist/index.js.map +1 -0
  216. package/dist/main.d.ts +8 -0
  217. package/dist/main.d.ts.map +1 -0
  218. package/dist/main.js +1 -0
  219. package/dist/main.js.map +1 -0
  220. package/dist/migrations.d.ts +33 -0
  221. package/dist/migrations.d.ts.map +1 -0
  222. package/dist/migrations.js +1 -0
  223. package/dist/migrations.js.map +1 -0
  224. package/dist/modes/index.d.ts +9 -0
  225. package/dist/modes/index.d.ts.map +1 -0
  226. package/dist/modes/index.js +1 -0
  227. package/dist/modes/index.js.map +1 -0
  228. package/dist/modes/interactive/components/armin.d.ts +34 -0
  229. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  230. package/dist/modes/interactive/components/armin.js +11 -6
  231. package/dist/modes/interactive/components/armin.js.map +1 -0
  232. package/dist/modes/interactive/components/assistant-message.d.ts +16 -0
  233. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  234. package/dist/modes/interactive/components/assistant-message.js +5 -0
  235. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  236. package/dist/modes/interactive/components/bash-execution.d.ts +35 -0
  237. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  238. package/dist/modes/interactive/components/bash-execution.js +11 -4
  239. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  240. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  241. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  242. package/dist/modes/interactive/components/bordered-loader.js +4 -0
  243. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  244. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  245. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  246. package/dist/modes/interactive/components/branch-summary-message.js +4 -1
  247. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  248. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  249. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  250. package/dist/modes/interactive/components/compaction-summary-message.js +4 -1
  251. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  252. package/dist/modes/interactive/components/config-selector.d.ts +71 -0
  253. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  254. package/dist/modes/interactive/components/config-selector.js +16 -6
  255. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  256. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  257. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  258. package/dist/modes/interactive/components/countdown-timer.js +6 -0
  259. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  260. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  261. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  262. package/dist/modes/interactive/components/custom-editor.js +9 -1
  263. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  264. package/dist/modes/interactive/components/custom-message.d.ts +20 -0
  265. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  266. package/dist/modes/interactive/components/custom-message.js +7 -1
  267. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  268. package/dist/modes/interactive/components/diff.d.ts +12 -0
  269. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  270. package/dist/modes/interactive/components/diff.js +1 -0
  271. package/dist/modes/interactive/components/diff.js.map +1 -0
  272. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  273. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  274. package/dist/modes/interactive/components/dynamic-border.js +2 -0
  275. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  276. package/dist/modes/interactive/components/extension-editor.d.ts +17 -0
  277. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  278. package/dist/modes/interactive/components/extension-editor.js +6 -0
  279. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  280. package/dist/modes/interactive/components/extension-input.d.ts +23 -0
  281. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  282. package/dist/modes/interactive/components/extension-input.js +9 -2
  283. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  284. package/dist/modes/interactive/components/extension-selector.d.ts +24 -0
  285. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  286. package/dist/modes/interactive/components/extension-selector.js +9 -1
  287. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  288. package/dist/modes/interactive/components/footer.d.ts +26 -0
  289. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  290. package/dist/modes/interactive/components/footer.js +4 -1
  291. package/dist/modes/interactive/components/footer.js.map +1 -0
  292. package/dist/modes/interactive/components/index.d.ts +31 -0
  293. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  294. package/dist/modes/interactive/components/index.js +1 -0
  295. package/dist/modes/interactive/components/index.js.map +1 -0
  296. package/dist/modes/interactive/components/keybinding-hints.d.ts +41 -0
  297. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  298. package/dist/modes/interactive/components/keybinding-hints.js +1 -0
  299. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  300. package/dist/modes/interactive/components/login-dialog.d.ts +42 -0
  301. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  302. package/dist/modes/interactive/components/login-dialog.js +10 -3
  303. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  304. package/dist/modes/interactive/components/model-selector.d.ts +47 -0
  305. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  306. package/dist/modes/interactive/components/model-selector.js +21 -8
  307. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  308. package/dist/modes/interactive/components/oauth-selector.d.ts +19 -0
  309. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  310. package/dist/modes/interactive/components/oauth-selector.js +8 -2
  311. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  312. package/dist/modes/interactive/components/scoped-models-selector.d.ts +49 -0
  313. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  314. package/dist/modes/interactive/components/scoped-models-selector.js +14 -9
  315. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  316. package/dist/modes/interactive/components/session-selector-search.d.ts +21 -0
  317. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  318. package/dist/modes/interactive/components/session-selector-search.js +1 -0
  319. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  320. package/dist/modes/interactive/components/session-selector.d.ts +85 -0
  321. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  322. package/dist/modes/interactive/components/session-selector.js +53 -31
  323. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  324. package/dist/modes/interactive/components/settings-selector.d.ts +49 -0
  325. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  326. package/dist/modes/interactive/components/settings-selector.js +3 -0
  327. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  328. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  329. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  330. package/dist/modes/interactive/components/show-images-selector.js +2 -0
  331. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  332. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  333. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  334. package/dist/modes/interactive/components/skill-invocation-message.js +4 -1
  335. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  336. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  337. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  338. package/dist/modes/interactive/components/theme-selector.js +3 -0
  339. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  340. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  341. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  342. package/dist/modes/interactive/components/thinking-selector.js +2 -0
  343. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  344. package/dist/modes/interactive/components/tool-execution.d.ts +70 -0
  345. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  346. package/dist/modes/interactive/components/tool-execution.js +19 -6
  347. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  348. package/dist/modes/interactive/components/tree-selector.d.ts +62 -0
  349. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  350. package/dist/modes/interactive/components/tree-selector.js +28 -13
  351. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  352. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  353. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  354. package/dist/modes/interactive/components/user-message-selector.js +7 -3
  355. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  356. package/dist/modes/interactive/components/user-message.d.ts +8 -0
  357. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  358. package/dist/modes/interactive/components/user-message.js +1 -0
  359. package/dist/modes/interactive/components/user-message.js.map +1 -0
  360. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  361. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  362. package/dist/modes/interactive/components/visual-truncate.js +1 -0
  363. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  364. package/dist/modes/interactive/interactive-mode.d.ts +323 -0
  365. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  366. package/dist/modes/interactive/interactive-mode.js +124 -101
  367. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  368. package/dist/modes/interactive/theme/dark.json +85 -85
  369. package/dist/modes/interactive/theme/light.json +84 -84
  370. package/dist/modes/interactive/theme/theme-schema.json +335 -335
  371. package/dist/modes/interactive/theme/theme.d.ts +78 -0
  372. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  373. package/dist/modes/interactive/theme/theme.js +6 -0
  374. package/dist/modes/interactive/theme/theme.js.map +1 -0
  375. package/dist/modes/print-mode.d.ts +28 -0
  376. package/dist/modes/print-mode.d.ts.map +1 -0
  377. package/dist/modes/print-mode.js +1 -0
  378. package/dist/modes/print-mode.js.map +1 -0
  379. package/dist/modes/rpc/rpc-client.d.ts +209 -0
  380. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  381. package/dist/modes/rpc/rpc-client.js +8 -6
  382. package/dist/modes/rpc/rpc-client.js.map +1 -0
  383. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  384. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  385. package/dist/modes/rpc/rpc-mode.js +1 -0
  386. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  387. package/dist/modes/rpc/rpc-types.d.ts +373 -0
  388. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  389. package/dist/modes/rpc/rpc-types.js +1 -0
  390. package/dist/modes/rpc/rpc-types.js.map +1 -0
  391. package/dist/utils/changelog.d.ts +21 -0
  392. package/dist/utils/changelog.d.ts.map +1 -0
  393. package/dist/utils/changelog.js +1 -0
  394. package/dist/utils/changelog.js.map +1 -0
  395. package/dist/utils/clipboard-image.d.ts +11 -0
  396. package/dist/utils/clipboard-image.d.ts.map +1 -0
  397. package/dist/utils/clipboard-image.js +1 -0
  398. package/dist/utils/clipboard-image.js.map +1 -0
  399. package/dist/utils/clipboard.d.ts +2 -0
  400. package/dist/utils/clipboard.d.ts.map +1 -0
  401. package/dist/utils/clipboard.js +1 -0
  402. package/dist/utils/clipboard.js.map +1 -0
  403. package/dist/utils/frontmatter.d.ts +8 -0
  404. package/dist/utils/frontmatter.d.ts.map +1 -0
  405. package/dist/utils/frontmatter.js +1 -0
  406. package/dist/utils/frontmatter.js.map +1 -0
  407. package/dist/utils/git.d.ts +2 -0
  408. package/dist/utils/git.d.ts.map +1 -0
  409. package/dist/utils/git.js +1 -0
  410. package/dist/utils/git.js.map +1 -0
  411. package/dist/utils/image-convert.d.ts +9 -0
  412. package/dist/utils/image-convert.d.ts.map +1 -0
  413. package/dist/utils/image-convert.js +1 -0
  414. package/dist/utils/image-convert.js.map +1 -0
  415. package/dist/utils/image-resize.d.ts +36 -0
  416. package/dist/utils/image-resize.d.ts.map +1 -0
  417. package/dist/utils/image-resize.js +1 -0
  418. package/dist/utils/image-resize.js.map +1 -0
  419. package/dist/utils/mime.d.ts +2 -0
  420. package/dist/utils/mime.d.ts.map +1 -0
  421. package/dist/utils/mime.js +1 -0
  422. package/dist/utils/mime.js.map +1 -0
  423. package/dist/utils/photon.d.ts +21 -0
  424. package/dist/utils/photon.d.ts.map +1 -0
  425. package/dist/utils/photon.js +1 -0
  426. package/dist/utils/photon.js.map +1 -0
  427. package/dist/utils/shell.d.ts +27 -0
  428. package/dist/utils/shell.d.ts.map +1 -0
  429. package/dist/utils/shell.js +1 -0
  430. package/dist/utils/shell.js.map +1 -0
  431. package/dist/utils/sleep.d.ts +5 -0
  432. package/dist/utils/sleep.d.ts.map +1 -0
  433. package/dist/utils/sleep.js +1 -0
  434. package/dist/utils/sleep.js.map +1 -0
  435. package/dist/utils/tools-manager.d.ts +3 -0
  436. package/dist/utils/tools-manager.d.ts.map +1 -0
  437. package/dist/utils/tools-manager.js +1 -0
  438. package/dist/utils/tools-manager.js.map +1 -0
  439. package/docs/compaction.md +390 -390
  440. package/docs/custom-provider.md +538 -538
  441. package/docs/development.md +69 -69
  442. package/docs/extensions.md +1733 -1733
  443. package/docs/json.md +79 -79
  444. package/docs/keybindings.md +162 -162
  445. package/docs/models.md +193 -193
  446. package/docs/packages.md +163 -163
  447. package/docs/prompt-templates.md +67 -67
  448. package/docs/providers.md +147 -147
  449. package/docs/rpc.md +1048 -1048
  450. package/docs/sdk.md +957 -957
  451. package/docs/session.md +412 -412
  452. package/docs/settings.md +216 -216
  453. package/docs/shell-aliases.md +13 -13
  454. package/docs/skills.md +226 -226
  455. package/docs/terminal-setup.md +65 -65
  456. package/docs/themes.md +295 -295
  457. package/docs/tree.md +219 -219
  458. package/docs/tui.md +887 -887
  459. package/docs/windows.md +17 -17
  460. package/examples/README.md +25 -25
  461. package/examples/extensions/README.md +192 -192
  462. package/examples/extensions/antigravity-image-gen.ts +414 -414
  463. package/examples/extensions/auto-commit-on-exit.ts +49 -49
  464. package/examples/extensions/bookmark.ts +50 -50
  465. package/examples/extensions/claude-rules.ts +86 -86
  466. package/examples/extensions/confirm-destructive.ts +59 -59
  467. package/examples/extensions/custom-compaction.ts +115 -115
  468. package/examples/extensions/custom-footer.ts +65 -65
  469. package/examples/extensions/custom-header.ts +73 -73
  470. package/examples/extensions/custom-provider-anthropic/index.ts +605 -605
  471. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -24
  472. package/examples/extensions/custom-provider-anthropic/package.json +19 -19
  473. package/examples/extensions/custom-provider-gitlab-duo/index.ts +350 -350
  474. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -16
  475. package/examples/extensions/custom-provider-gitlab-duo/test.ts +83 -83
  476. package/examples/extensions/dirty-repo-guard.ts +56 -56
  477. package/examples/extensions/doom-overlay/README.md +46 -46
  478. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -21
  479. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  480. package/examples/extensions/doom-overlay/doom/build.sh +152 -152
  481. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -72
  482. package/examples/extensions/doom-overlay/doom-component.ts +133 -133
  483. package/examples/extensions/doom-overlay/doom-engine.ts +173 -173
  484. package/examples/extensions/doom-overlay/doom-keys.ts +105 -105
  485. package/examples/extensions/doom-overlay/index.ts +74 -74
  486. package/examples/extensions/doom-overlay/wad-finder.ts +51 -51
  487. package/examples/extensions/event-bus.ts +43 -43
  488. package/examples/extensions/file-trigger.ts +41 -41
  489. package/examples/extensions/git-checkpoint.ts +53 -53
  490. package/examples/extensions/handoff.ts +151 -151
  491. package/examples/extensions/hello.ts +25 -25
  492. package/examples/extensions/inline-bash.ts +94 -94
  493. package/examples/extensions/input-transform.ts +43 -43
  494. package/examples/extensions/interactive-shell.ts +196 -196
  495. package/examples/extensions/mac-system-theme.ts +47 -47
  496. package/examples/extensions/message-renderer.ts +60 -60
  497. package/examples/extensions/modal-editor.ts +86 -86
  498. package/examples/extensions/model-status.ts +31 -31
  499. package/examples/extensions/notify.ts +25 -25
  500. package/examples/extensions/overlay-qa-tests.ts +882 -882
  501. package/examples/extensions/overlay-test.ts +151 -151
  502. package/examples/extensions/permission-gate.ts +34 -34
  503. package/examples/extensions/pirate.ts +47 -47
  504. package/examples/extensions/plan-mode/README.md +65 -65
  505. package/examples/extensions/plan-mode/index.ts +341 -341
  506. package/examples/extensions/plan-mode/utils.ts +168 -168
  507. package/examples/extensions/preset.ts +399 -399
  508. package/examples/extensions/protected-paths.ts +30 -30
  509. package/examples/extensions/qna.ts +120 -120
  510. package/examples/extensions/question.ts +265 -265
  511. package/examples/extensions/questionnaire.ts +428 -428
  512. package/examples/extensions/rainbow-editor.ts +88 -88
  513. package/examples/extensions/sandbox/index.ts +318 -318
  514. package/examples/extensions/sandbox/package-lock.json +92 -92
  515. package/examples/extensions/sandbox/package.json +19 -19
  516. package/examples/extensions/send-user-message.ts +97 -97
  517. package/examples/extensions/session-name.ts +27 -27
  518. package/examples/extensions/shutdown-command.ts +63 -63
  519. package/examples/extensions/snake.ts +344 -344
  520. package/examples/extensions/space-invaders.ts +561 -561
  521. package/examples/extensions/ssh.ts +220 -220
  522. package/examples/extensions/status-line.ts +40 -40
  523. package/examples/extensions/subagent/README.md +172 -172
  524. package/examples/extensions/subagent/agents/planner.md +37 -37
  525. package/examples/extensions/subagent/agents/reviewer.md +35 -35
  526. package/examples/extensions/subagent/agents/scout.md +50 -50
  527. package/examples/extensions/subagent/agents/worker.md +24 -24
  528. package/examples/extensions/subagent/agents.ts +127 -127
  529. package/examples/extensions/subagent/index.ts +964 -964
  530. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -10
  531. package/examples/extensions/subagent/prompts/implement.md +10 -10
  532. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -9
  533. package/examples/extensions/summarize.ts +196 -196
  534. package/examples/extensions/timed-confirm.ts +70 -70
  535. package/examples/extensions/todo.ts +300 -300
  536. package/examples/extensions/tool-override.ts +144 -144
  537. package/examples/extensions/tools.ts +147 -147
  538. package/examples/extensions/trigger-compact.ts +40 -40
  539. package/examples/extensions/truncated-tool.ts +193 -193
  540. package/examples/extensions/widget-placement.ts +17 -17
  541. package/examples/extensions/with-deps/index.ts +36 -36
  542. package/examples/extensions/with-deps/package-lock.json +31 -31
  543. package/examples/extensions/with-deps/package.json +22 -22
  544. package/examples/sdk/01-minimal.ts +22 -22
  545. package/examples/sdk/02-custom-model.ts +50 -50
  546. package/examples/sdk/03-custom-prompt.ts +55 -55
  547. package/examples/sdk/04-skills.ts +46 -46
  548. package/examples/sdk/05-tools.ts +56 -56
  549. package/examples/sdk/06-extensions.ts +88 -88
  550. package/examples/sdk/07-context-files.ts +40 -40
  551. package/examples/sdk/08-prompt-templates.ts +47 -47
  552. package/examples/sdk/09-api-keys-and-oauth.ts +48 -48
  553. package/examples/sdk/10-settings.ts +38 -38
  554. package/examples/sdk/11-sessions.ts +48 -48
  555. package/examples/sdk/12-full-control.ts +82 -82
  556. package/examples/sdk/13-codex-oauth.ts +37 -37
  557. package/examples/sdk/README.md +144 -144
  558. package/package.json +87 -85
@@ -0,0 +1,323 @@
1
+ /**
2
+ * Interactive mode for the coding agent.
3
+ * Handles TUI rendering and user interaction, delegating business logic to AgentSession.
4
+ */
5
+ import { type ImageContent } from "indusagi/ai";
6
+ import { type AgentSession } from "../../core/agent-session.js";
7
+ /**
8
+ * Options for InteractiveMode initialization.
9
+ */
10
+ export interface InteractiveModeOptions {
11
+ /** Providers that were migrated to auth.json (shows warning) */
12
+ migratedProviders?: string[];
13
+ /** Warning message if session model couldn't be restored */
14
+ modelFallbackMessage?: string;
15
+ /** Initial message to send on startup (can include @file content) */
16
+ initialMessage?: string;
17
+ /** Images to attach to the initial message */
18
+ initialImages?: ImageContent[];
19
+ /** Additional messages to send after the initial message */
20
+ initialMessages?: string[];
21
+ /** Force verbose startup (overrides quietStartup setting) */
22
+ verbose?: boolean;
23
+ }
24
+ export declare class InteractiveMode {
25
+ private options;
26
+ private session;
27
+ private ui;
28
+ private chatContainer;
29
+ private pendingMessagesContainer;
30
+ private statusContainer;
31
+ private defaultEditor;
32
+ private editor;
33
+ private autocompleteProvider;
34
+ private fdPath;
35
+ private editorContainer;
36
+ private footer;
37
+ private footerDataProvider;
38
+ private keybindings;
39
+ private version;
40
+ private isInitialized;
41
+ private onInputCallback?;
42
+ private loadingAnimation;
43
+ private pendingWorkingMessage;
44
+ private readonly defaultWorkingMessage;
45
+ private lastSigintTime;
46
+ private lastEscapeTime;
47
+ private changelogMarkdown;
48
+ private lastStatusSpacer;
49
+ private lastStatusText;
50
+ private streamingComponent;
51
+ private streamingMessage;
52
+ private pendingTools;
53
+ private toolOutputExpanded;
54
+ private hideThinkingBlock;
55
+ private skillCommands;
56
+ private unsubscribe?;
57
+ private isBashMode;
58
+ private bashComponent;
59
+ private pendingBashComponents;
60
+ private autoCompactionLoader;
61
+ private autoCompactionEscapeHandler?;
62
+ private retryLoader;
63
+ private retryEscapeHandler?;
64
+ private compactionQueuedMessages;
65
+ private shutdownRequested;
66
+ private extensionSelector;
67
+ private extensionInput;
68
+ private extensionEditor;
69
+ private extensionWidgetsAbove;
70
+ private extensionWidgetsBelow;
71
+ private widgetContainerAbove;
72
+ private widgetContainerBelow;
73
+ private customFooter;
74
+ private builtInHeader;
75
+ private customHeader;
76
+ private get agent();
77
+ private get sessionManager();
78
+ private get settingsManager();
79
+ constructor(session: AgentSession, options?: InteractiveModeOptions);
80
+ private setupAutocomplete;
81
+ private rebuildAutocomplete;
82
+ init(): Promise<void>;
83
+ /**
84
+ * Update terminal title with session name and cwd.
85
+ */
86
+ private updateTerminalTitle;
87
+ /**
88
+ * Run the interactive mode. This is the main entry point.
89
+ * Initializes the UI, shows warnings, processes initial messages, and starts the interactive loop.
90
+ */
91
+ run(): Promise<void>;
92
+ /**
93
+ * Check npm registry for a newer version.
94
+ */
95
+ private checkForNewVersion;
96
+ /**
97
+ * Get changelog entries to display on startup.
98
+ * Only shows new entries since last seen version, skips for resumed sessions.
99
+ */
100
+ private getChangelogForDisplay;
101
+ private getMarkdownThemeWithSettings;
102
+ private formatDisplayPath;
103
+ /**
104
+ * Get a short path relative to the package root for display.
105
+ */
106
+ private getShortPath;
107
+ private getDisplaySourceInfo;
108
+ private getScopeGroup;
109
+ private isPackageSource;
110
+ private buildScopeGroups;
111
+ private formatScopeGroups;
112
+ /**
113
+ * Find metadata for a path, checking parent directories if exact match fails.
114
+ * Package manager stores metadata for directories, but we display file paths.
115
+ */
116
+ private findMetadata;
117
+ /**
118
+ * Format a path with its source/scope info from metadata.
119
+ */
120
+ private formatPathWithSource;
121
+ /**
122
+ * Format resource diagnostics with nice collision display using metadata.
123
+ */
124
+ private formatDiagnostics;
125
+ private showLoadedResources;
126
+ /**
127
+ * Initialize the extension system with TUI-based UI context.
128
+ */
129
+ private initExtensions;
130
+ /**
131
+ * Get a registered tool definition by name (for custom rendering).
132
+ */
133
+ private getRegisteredToolDefinition;
134
+ /**
135
+ * Set up keyboard shortcuts registered by extensions.
136
+ */
137
+ private setupExtensionShortcuts;
138
+ /**
139
+ * Set extension status text in the footer.
140
+ */
141
+ private setExtensionStatus;
142
+ /**
143
+ * Set an extension widget (string array or custom component).
144
+ */
145
+ private setExtensionWidget;
146
+ private clearExtensionWidgets;
147
+ private resetExtensionUI;
148
+ private static readonly MAX_WIDGET_LINES;
149
+ /**
150
+ * Render all extension widgets to the widget container.
151
+ */
152
+ private renderWidgets;
153
+ private renderWidgetContainer;
154
+ /**
155
+ * Set a custom footer component, or restore the built-in footer.
156
+ */
157
+ private setExtensionFooter;
158
+ /**
159
+ * Set a custom header component, or restore the built-in header.
160
+ */
161
+ private setExtensionHeader;
162
+ /**
163
+ * Create the ExtensionUIContext for extensions.
164
+ */
165
+ private createExtensionUIContext;
166
+ /**
167
+ * Show a selector for extensions.
168
+ */
169
+ private showExtensionSelector;
170
+ /**
171
+ * Hide the extension selector.
172
+ */
173
+ private hideExtensionSelector;
174
+ /**
175
+ * Show a confirmation dialog for extensions.
176
+ */
177
+ private showExtensionConfirm;
178
+ /**
179
+ * Show a text input for extensions.
180
+ */
181
+ private showExtensionInput;
182
+ /**
183
+ * Hide the extension input.
184
+ */
185
+ private hideExtensionInput;
186
+ /**
187
+ * Show a multi-line editor for extensions (with Ctrl+G support).
188
+ */
189
+ private showExtensionEditor;
190
+ /**
191
+ * Hide the extension editor.
192
+ */
193
+ private hideExtensionEditor;
194
+ /**
195
+ * Set a custom editor component from an extension.
196
+ * Pass undefined to restore the default editor.
197
+ */
198
+ private setCustomEditorComponent;
199
+ /**
200
+ * Show a notification for extensions.
201
+ */
202
+ private showExtensionNotify;
203
+ /** Show a custom component with keyboard focus. Overlay mode renders on top of existing content. */
204
+ private showExtensionCustom;
205
+ /**
206
+ * Show an extension error in the UI.
207
+ */
208
+ private showExtensionError;
209
+ private setupKeyHandlers;
210
+ private handleClipboardImagePaste;
211
+ private setupEditorSubmitHandler;
212
+ private subscribeToAgent;
213
+ private handleEvent;
214
+ /** Extract text content from a user message */
215
+ private getUserMessageText;
216
+ /**
217
+ * Show a status message in the chat.
218
+ *
219
+ * If multiple status messages are emitted back-to-back (without anything else being added to the chat),
220
+ * we update the previous status line instead of appending new ones to avoid log spam.
221
+ */
222
+ private showStatus;
223
+ private addMessageToChat;
224
+ /**
225
+ * Render session context to chat. Used for initial load and rebuild after compaction.
226
+ * @param sessionContext Session context to render
227
+ * @param options.updateFooter Update footer state
228
+ * @param options.populateHistory Add user messages to editor history
229
+ */
230
+ private renderSessionContext;
231
+ renderInitialMessages(): void;
232
+ getUserInput(): Promise<string>;
233
+ private rebuildChatFromMessages;
234
+ private handleCtrlC;
235
+ private handleCtrlD;
236
+ /**
237
+ * Gracefully shutdown the agent.
238
+ * Emits shutdown event to extensions, then exits.
239
+ */
240
+ private isShuttingDown;
241
+ private shutdown;
242
+ /**
243
+ * Check if shutdown was requested and perform shutdown if so.
244
+ */
245
+ private checkShutdownRequested;
246
+ private handleCtrlZ;
247
+ private handleFollowUp;
248
+ private handleDequeue;
249
+ private updateEditorBorderColor;
250
+ private cycleThinkingLevel;
251
+ private cycleModel;
252
+ private toggleToolOutputExpansion;
253
+ private toggleThinkingBlockVisibility;
254
+ private openExternalEditor;
255
+ clearEditor(): void;
256
+ showError(errorMessage: string): void;
257
+ showWarning(warningMessage: string): void;
258
+ showNewVersionNotification(newVersion: string): void;
259
+ /**
260
+ * Get all queued messages (read-only).
261
+ * Combines session queue and compaction queue.
262
+ */
263
+ private getAllQueuedMessages;
264
+ /**
265
+ * Clear all queued messages and return their contents.
266
+ * Clears both session queue and compaction queue.
267
+ */
268
+ private clearAllQueues;
269
+ private updatePendingMessagesDisplay;
270
+ private restoreQueuedMessagesToEditor;
271
+ private queueCompactionMessage;
272
+ private isExtensionCommand;
273
+ private flushCompactionQueue;
274
+ /** Move pending bash components from pending area to chat */
275
+ private flushPendingBashComponents;
276
+ /**
277
+ * Shows a selector component in place of the editor.
278
+ * @param create Factory that receives a `done` callback and returns the component and focus target
279
+ */
280
+ private showSelector;
281
+ private showSettingsSelector;
282
+ private handleModelCommand;
283
+ private findExactModelMatch;
284
+ private getModelCandidates;
285
+ /** Update the footer's available provider count from current model candidates */
286
+ private updateAvailableProviderCount;
287
+ private showModelSelector;
288
+ private showModelsSelector;
289
+ private showUserMessageSelector;
290
+ private showTreeSelector;
291
+ private showSessionSelector;
292
+ private handleResumeSession;
293
+ private showOAuthSelector;
294
+ private showLoginDialog;
295
+ private handleReloadCommand;
296
+ private handleExportCommand;
297
+ private handleShareCommand;
298
+ private handleCopyCommand;
299
+ private handleNameCommand;
300
+ private handleSessionCommand;
301
+ private handleChangelogCommand;
302
+ /**
303
+ * Capitalize keybinding for display (e.g., "ctrl+c" -> "Ctrl+C").
304
+ */
305
+ private capitalizeKey;
306
+ /**
307
+ * Get capitalized display string for an app keybinding action.
308
+ */
309
+ private getAppKeyDisplay;
310
+ /**
311
+ * Get capitalized display string for an editor keybinding action.
312
+ */
313
+ private getEditorKeyDisplay;
314
+ private handleHotkeysCommand;
315
+ private handleClearCommand;
316
+ private handleDebugCommand;
317
+ private handleArminSaysHi;
318
+ private handleBashCommand;
319
+ private handleCompactCommand;
320
+ private executeCompaction;
321
+ stop(): void;
322
+ }
323
+ //# sourceMappingURL=interactive-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,76 @@ function isExpandable(obj) {
50
50
  return typeof obj === "object" && obj !== null && "setExpanded" in obj && typeof obj.setExpanded === "function";
51
51
  }
52
52
  export class InteractiveMode {
53
+ options;
54
+ session;
55
+ ui;
56
+ chatContainer;
57
+ pendingMessagesContainer;
58
+ statusContainer;
59
+ defaultEditor;
60
+ editor;
61
+ autocompleteProvider;
62
+ fdPath;
63
+ editorContainer;
64
+ footer;
65
+ footerDataProvider;
66
+ keybindings;
67
+ version;
68
+ isInitialized = false;
69
+ onInputCallback;
70
+ loadingAnimation = undefined;
71
+ pendingWorkingMessage = undefined;
72
+ defaultWorkingMessage = "Working...";
73
+ lastSigintTime = 0;
74
+ lastEscapeTime = 0;
75
+ changelogMarkdown = undefined;
76
+ // Status line tracking (for mutating immediately-sequential status updates)
77
+ lastStatusSpacer = undefined;
78
+ lastStatusText = undefined;
79
+ // Streaming message tracking
80
+ streamingComponent = undefined;
81
+ streamingMessage = undefined;
82
+ // Tool execution tracking: toolCallId -> component
83
+ pendingTools = new Map();
84
+ // Tool output expansion state
85
+ toolOutputExpanded = false;
86
+ // Thinking block visibility state
87
+ hideThinkingBlock = false;
88
+ // Skill commands: command name -> skill file path
89
+ skillCommands = new Map();
90
+ // Agent subscription unsubscribe function
91
+ unsubscribe;
92
+ // Track if editor is in bash mode (text starts with !)
93
+ isBashMode = false;
94
+ // Track current bash execution component
95
+ bashComponent = undefined;
96
+ // Track pending bash components (shown in pending area, moved to chat on submit)
97
+ pendingBashComponents = [];
98
+ // Auto-compaction state
99
+ autoCompactionLoader = undefined;
100
+ autoCompactionEscapeHandler;
101
+ // Auto-retry state
102
+ retryLoader = undefined;
103
+ retryEscapeHandler;
104
+ // Messages queued while compaction is running
105
+ compactionQueuedMessages = [];
106
+ // Shutdown state
107
+ shutdownRequested = false;
108
+ // Extension UI state
109
+ extensionSelector = undefined;
110
+ extensionInput = undefined;
111
+ extensionEditor = undefined;
112
+ // Extension widgets (components rendered above/below the editor)
113
+ extensionWidgetsAbove = new Map();
114
+ extensionWidgetsBelow = new Map();
115
+ widgetContainerAbove;
116
+ widgetContainerBelow;
117
+ // Custom footer from extension (undefined = use built-in footer)
118
+ customFooter = undefined;
119
+ // Built-in header (logo + keybinding hints + changelog)
120
+ builtInHeader = undefined;
121
+ // Custom header from extension (undefined = use built-in header)
122
+ customHeader = undefined;
53
123
  // Convenience accessors
54
124
  get agent() {
55
125
  return this.session.agent;
@@ -62,59 +132,6 @@ export class InteractiveMode {
62
132
  }
63
133
  constructor(session, options = {}) {
64
134
  this.options = options;
65
- this.isInitialized = false;
66
- this.loadingAnimation = undefined;
67
- this.pendingWorkingMessage = undefined;
68
- this.defaultWorkingMessage = "Working...";
69
- this.lastSigintTime = 0;
70
- this.lastEscapeTime = 0;
71
- this.changelogMarkdown = undefined;
72
- // Status line tracking (for mutating immediately-sequential status updates)
73
- this.lastStatusSpacer = undefined;
74
- this.lastStatusText = undefined;
75
- // Streaming message tracking
76
- this.streamingComponent = undefined;
77
- this.streamingMessage = undefined;
78
- // Tool execution tracking: toolCallId -> component
79
- this.pendingTools = new Map();
80
- // Tool output expansion state
81
- this.toolOutputExpanded = false;
82
- // Thinking block visibility state
83
- this.hideThinkingBlock = false;
84
- // Skill commands: command name -> skill file path
85
- this.skillCommands = new Map();
86
- // Track if editor is in bash mode (text starts with !)
87
- this.isBashMode = false;
88
- // Track current bash execution component
89
- this.bashComponent = undefined;
90
- // Track pending bash components (shown in pending area, moved to chat on submit)
91
- this.pendingBashComponents = [];
92
- // Auto-compaction state
93
- this.autoCompactionLoader = undefined;
94
- // Auto-retry state
95
- this.retryLoader = undefined;
96
- // Messages queued while compaction is running
97
- this.compactionQueuedMessages = [];
98
- // Shutdown state
99
- this.shutdownRequested = false;
100
- // Extension UI state
101
- this.extensionSelector = undefined;
102
- this.extensionInput = undefined;
103
- this.extensionEditor = undefined;
104
- // Extension widgets (components rendered above/below the editor)
105
- this.extensionWidgetsAbove = new Map();
106
- this.extensionWidgetsBelow = new Map();
107
- // Custom footer from extension (undefined = use built-in footer)
108
- this.customFooter = undefined;
109
- // Built-in header (logo + keybinding hints + changelog)
110
- this.builtInHeader = undefined;
111
- // Custom header from extension (undefined = use built-in header)
112
- this.customHeader = undefined;
113
- /**
114
- * Gracefully shutdown the agent.
115
- * Emits shutdown event to extensions, then exits.
116
- */
117
- this.isShuttingDown = false;
118
135
  this.session = session;
119
136
  this.version = VERSION;
120
137
  this.ui = new TUI(new ProcessTerminal(), this.settingsManager.getShowHardwareCursor());
@@ -938,7 +955,7 @@ export class InteractiveMode {
938
955
  }
939
956
  }
940
957
  // Maximum total widget lines to prevent viewport overflow
941
- static { this.MAX_WIDGET_LINES = 10; }
958
+ static MAX_WIDGET_LINES = 10;
942
959
  /**
943
960
  * Render all extension widgets to the widget container.
944
961
  */
@@ -2045,6 +2062,11 @@ export class InteractiveMode {
2045
2062
  // Only called when editor is empty (enforced by CustomEditor)
2046
2063
  void this.shutdown();
2047
2064
  }
2065
+ /**
2066
+ * Gracefully shutdown the agent.
2067
+ * Emits shutdown event to extensions, then exits.
2068
+ */
2069
+ isShuttingDown = false;
2048
2070
  async shutdown() {
2049
2071
  if (this.isShuttingDown)
2050
2072
  return;
@@ -3316,59 +3338,59 @@ export class InteractiveMode {
3316
3338
  const externalEditor = this.getAppKeyDisplay("externalEditor");
3317
3339
  const followUp = this.getAppKeyDisplay("followUp");
3318
3340
  const dequeue = this.getAppKeyDisplay("dequeue");
3319
- let hotkeys = `
3320
- **Navigation**
3321
- | Key | Action |
3322
- |-----|--------|
3323
- | \`Arrow keys\` | Move cursor / browse history (Up when empty) |
3324
- | \`${cursorWordLeft}\` / \`${cursorWordRight}\` | Move by word |
3325
- | \`${cursorLineStart}\` | Start of line |
3326
- | \`${cursorLineEnd}\` | End of line |
3327
- | \`${pageUp}\` / \`${pageDown}\` | Scroll by page |
3328
-
3329
- **Editing**
3330
- | Key | Action |
3331
- |-----|--------|
3332
- | \`${submit}\` | Send message |
3333
- | \`${newLine}\` | New line${process.platform === "win32" ? " (Ctrl+Enter on Windows Terminal)" : ""} |
3334
- | \`${deleteWordBackward}\` | Delete word backwards |
3335
- | \`${deleteWordForward}\` | Delete word forwards |
3336
- | \`${deleteToLineStart}\` | Delete to start of line |
3337
- | \`${deleteToLineEnd}\` | Delete to end of line |
3338
- | \`${yank}\` | Paste the most-recently-deleted text |
3339
- | \`${yankPop}\` | Cycle through the deleted text after pasting |
3340
- | \`${undo}\` | Undo |
3341
-
3342
- **Other**
3343
- | Key | Action |
3344
- |-----|--------|
3345
- | \`${tab}\` | Path completion / accept autocomplete |
3346
- | \`${interrupt}\` | Cancel autocomplete / abort streaming |
3347
- | \`${clear}\` | Clear editor (first) / exit (second) |
3348
- | \`${exit}\` | Exit (when editor is empty) |
3349
- | \`${suspend}\` | Suspend to background |
3350
- | \`${cycleThinkingLevel}\` | Cycle thinking level |
3351
- | \`${cycleModelForward}\` | Cycle models |
3352
- | \`${selectModel}\` | Open model selector |
3353
- | \`${expandTools}\` | Toggle tool output expansion |
3354
- | \`${toggleThinking}\` | Toggle thinking block visibility |
3355
- | \`${externalEditor}\` | Edit message in external editor |
3356
- | \`${followUp}\` | Queue follow-up message |
3357
- | \`${dequeue}\` | Restore queued messages |
3358
- | \`Ctrl+V\` | Paste image from clipboard |
3359
- | \`/\` | Slash commands |
3360
- | \`!\` | Run bash command |
3361
- | \`!!\` | Run bash command (excluded from context) |
3341
+ let hotkeys = `
3342
+ **Navigation**
3343
+ | Key | Action |
3344
+ |-----|--------|
3345
+ | \`Arrow keys\` | Move cursor / browse history (Up when empty) |
3346
+ | \`${cursorWordLeft}\` / \`${cursorWordRight}\` | Move by word |
3347
+ | \`${cursorLineStart}\` | Start of line |
3348
+ | \`${cursorLineEnd}\` | End of line |
3349
+ | \`${pageUp}\` / \`${pageDown}\` | Scroll by page |
3350
+
3351
+ **Editing**
3352
+ | Key | Action |
3353
+ |-----|--------|
3354
+ | \`${submit}\` | Send message |
3355
+ | \`${newLine}\` | New line${process.platform === "win32" ? " (Ctrl+Enter on Windows Terminal)" : ""} |
3356
+ | \`${deleteWordBackward}\` | Delete word backwards |
3357
+ | \`${deleteWordForward}\` | Delete word forwards |
3358
+ | \`${deleteToLineStart}\` | Delete to start of line |
3359
+ | \`${deleteToLineEnd}\` | Delete to end of line |
3360
+ | \`${yank}\` | Paste the most-recently-deleted text |
3361
+ | \`${yankPop}\` | Cycle through the deleted text after pasting |
3362
+ | \`${undo}\` | Undo |
3363
+
3364
+ **Other**
3365
+ | Key | Action |
3366
+ |-----|--------|
3367
+ | \`${tab}\` | Path completion / accept autocomplete |
3368
+ | \`${interrupt}\` | Cancel autocomplete / abort streaming |
3369
+ | \`${clear}\` | Clear editor (first) / exit (second) |
3370
+ | \`${exit}\` | Exit (when editor is empty) |
3371
+ | \`${suspend}\` | Suspend to background |
3372
+ | \`${cycleThinkingLevel}\` | Cycle thinking level |
3373
+ | \`${cycleModelForward}\` | Cycle models |
3374
+ | \`${selectModel}\` | Open model selector |
3375
+ | \`${expandTools}\` | Toggle tool output expansion |
3376
+ | \`${toggleThinking}\` | Toggle thinking block visibility |
3377
+ | \`${externalEditor}\` | Edit message in external editor |
3378
+ | \`${followUp}\` | Queue follow-up message |
3379
+ | \`${dequeue}\` | Restore queued messages |
3380
+ | \`Ctrl+V\` | Paste image from clipboard |
3381
+ | \`/\` | Slash commands |
3382
+ | \`!\` | Run bash command |
3383
+ | \`!!\` | Run bash command (excluded from context) |
3362
3384
  `;
3363
3385
  // Add extension-registered shortcuts
3364
3386
  const extensionRunner = this.session.extensionRunner;
3365
3387
  if (extensionRunner) {
3366
3388
  const shortcuts = extensionRunner.getShortcuts(this.keybindings.getEffectiveConfig());
3367
3389
  if (shortcuts.size > 0) {
3368
- hotkeys += `
3369
- **Extensions**
3370
- | Key | Action |
3371
- |-----|--------|
3390
+ hotkeys += `
3391
+ **Extensions**
3392
+ | Key | Action |
3393
+ |-----|--------|
3372
3394
  `;
3373
3395
  for (const [key, shortcut] of shortcuts) {
3374
3396
  const description = shortcut.description ?? shortcut.extensionPath;
@@ -3574,3 +3596,4 @@ export class InteractiveMode {
3574
3596
  }
3575
3597
  }
3576
3598
  }
3599
+ //# sourceMappingURL=interactive-mode.js.map