indusagi-coding-agent 0.1.59 → 0.1.60

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 (1162) hide show
  1. package/CHANGELOG.md +55 -48
  2. package/CREDITS.md +19 -0
  3. package/NOTICE +7 -0
  4. package/README.md +65 -63
  5. package/dist/entry.js +19250 -0
  6. package/dist/types/addons/addons.test.d.ts +21 -0
  7. package/dist/types/addons/contract.d.ts +640 -0
  8. package/dist/types/addons/dispatch/event-dispatcher.d.ts +140 -0
  9. package/dist/types/addons/dispatch/index.d.ts +23 -0
  10. package/dist/types/addons/dispatch/tool-interceptor.d.ts +128 -0
  11. package/dist/types/addons/host.d.ts +246 -0
  12. package/dist/types/addons/index.d.ts +51 -0
  13. package/dist/types/addons/manifest.d.ts +56 -0
  14. package/dist/types/addons/sandbox.d.ts +103 -0
  15. package/dist/types/addons/surface.d.ts +42 -0
  16. package/dist/types/boot/auth-vault.d.ts +29 -0
  17. package/dist/types/boot/boot.d.ts +26 -0
  18. package/dist/types/boot/boot.test.d.ts +15 -0
  19. package/dist/types/boot/contract.d.ts +234 -0
  20. package/dist/types/boot/index.d.ts +20 -0
  21. package/dist/types/boot/invocation.d.ts +40 -0
  22. package/dist/types/boot/invocation.test.d.ts +8 -0
  23. package/dist/types/boot/runners/index.d.ts +11 -0
  24. package/dist/types/boot/runners/link-runner.d.ts +20 -0
  25. package/dist/types/boot/runners/oneshot-runner.d.ts +19 -0
  26. package/dist/types/boot/runners/registry.d.ts +30 -0
  27. package/dist/types/boot/runners/repl-runner.d.ts +19 -0
  28. package/dist/types/boot/runners/session-persist.test.d.ts +10 -0
  29. package/dist/types/boot/runners/session.d.ts +45 -0
  30. package/dist/types/boot/stages.d.ts +92 -0
  31. package/dist/types/boot/upgrade/apply.d.ts +45 -0
  32. package/dist/types/boot/upgrade/index.d.ts +13 -0
  33. package/dist/types/boot/upgrade/upgrades.d.ts +126 -0
  34. package/dist/types/briefing/briefing.test.d.ts +15 -0
  35. package/dist/types/briefing/compose.d.ts +37 -0
  36. package/dist/types/briefing/contract.d.ts +686 -0
  37. package/dist/types/briefing/index.d.ts +27 -0
  38. package/dist/types/briefing/macros.d.ts +206 -0
  39. package/dist/types/briefing/skills.d.ts +67 -0
  40. package/dist/types/capability-deck/bridge-ledger/index.d.ts +25 -0
  41. package/dist/types/capability-deck/bridge-ledger/key.d.ts +65 -0
  42. package/dist/types/capability-deck/bridge-ledger/ledger.d.ts +129 -0
  43. package/dist/types/capability-deck/bridge-ledger/network.d.ts +115 -0
  44. package/dist/types/capability-deck/builtin-bridge.d.ts +114 -0
  45. package/dist/types/capability-deck/capability-deck.test.d.ts +18 -0
  46. package/dist/types/capability-deck/cards/bg-process-card.d.ts +99 -0
  47. package/dist/types/capability-deck/cards/index.d.ts +30 -0
  48. package/dist/types/capability-deck/cards/memory-card.d.ts +69 -0
  49. package/dist/types/capability-deck/cards/saas-card.d.ts +78 -0
  50. package/dist/types/capability-deck/cards/task-card.d.ts +82 -0
  51. package/dist/types/capability-deck/cards/todo-card.d.ts +78 -0
  52. package/dist/types/capability-deck/contract.d.ts +317 -0
  53. package/dist/types/capability-deck/index.d.ts +46 -0
  54. package/dist/types/capability-deck/manifest.d.ts +60 -0
  55. package/dist/types/capability-deck/provision.d.ts +76 -0
  56. package/dist/types/channels/channels.test.d.ts +15 -0
  57. package/dist/types/channels/contract.d.ts +489 -0
  58. package/dist/types/channels/framer.d.ts +49 -0
  59. package/dist/types/channels/index.d.ts +24 -0
  60. package/dist/types/channels/link/dialog.d.ts +138 -0
  61. package/dist/types/channels/link/driver.d.ts +81 -0
  62. package/dist/types/channels/link/index.d.ts +13 -0
  63. package/dist/types/channels/link/server.d.ts +70 -0
  64. package/dist/types/channels/oneshot.d.ts +37 -0
  65. package/dist/types/channels/ops.d.ts +89 -0
  66. package/dist/types/channels/session-ops.d.ts +80 -0
  67. package/dist/types/conductor/catalog/catalog.d.ts +87 -0
  68. package/dist/types/conductor/catalog/index.d.ts +14 -0
  69. package/dist/types/conductor/catalog/matcher.d.ts +47 -0
  70. package/dist/types/conductor/conductor.d.ts +157 -0
  71. package/dist/types/conductor/conductor.test.d.ts +10 -0
  72. package/dist/types/conductor/contract.d.ts +547 -0
  73. package/dist/types/conductor/index.d.ts +23 -0
  74. package/dist/types/conductor/signal-hub/hub.d.ts +83 -0
  75. package/dist/types/conductor/signal-hub/index.d.ts +19 -0
  76. package/dist/types/conductor/signal-hub/translate.d.ts +74 -0
  77. package/dist/types/conductor/skill-parse/index.d.ts +10 -0
  78. package/dist/types/conductor/skill-parse/parse.d.ts +67 -0
  79. package/dist/types/conductor/submit.test.d.ts +28 -0
  80. package/dist/types/conductor/transcript-store/index.d.ts +16 -0
  81. package/dist/types/conductor/transcript-store/serialize.d.ts +106 -0
  82. package/dist/types/conductor/transcript-store/store.d.ts +170 -0
  83. package/dist/types/console/components/Banner.d.ts +54 -0
  84. package/dist/types/console/components/Composer.d.ts +37 -0
  85. package/dist/types/console/components/StatusBar.d.ts +31 -0
  86. package/dist/types/console/components/TerminalConsole.d.ts +32 -0
  87. package/dist/types/console/console.test.d.ts +19 -0
  88. package/dist/types/console/contract.d.ts +562 -0
  89. package/dist/types/console/index.d.ts +31 -0
  90. package/dist/types/console/input/complete.d.ts +120 -0
  91. package/dist/types/console/input/dir-reader.d.ts +28 -0
  92. package/dist/types/console/input/index.d.ts +24 -0
  93. package/dist/types/console/input/input.test.d.ts +14 -0
  94. package/dist/types/console/input/keymap.d.ts +184 -0
  95. package/dist/types/console/input/paste.d.ts +131 -0
  96. package/dist/types/console/mount.d.ts +53 -0
  97. package/dist/types/console/overlays/auth.d.ts +31 -0
  98. package/dist/types/console/overlays/host.d.ts +44 -0
  99. package/dist/types/console/overlays/index.d.ts +13 -0
  100. package/dist/types/console/overlays/pickers.d.ts +37 -0
  101. package/dist/types/console/overlays/sessions.d.ts +29 -0
  102. package/dist/types/console/reducer.d.ts +51 -0
  103. package/dist/types/console/slash/builtins.d.ts +33 -0
  104. package/dist/types/console/slash/commands/dynamic.d.ts +57 -0
  105. package/dist/types/console/slash/commands/dynamic.test.d.ts +9 -0
  106. package/dist/types/console/slash/commands/integrations.d.ts +28 -0
  107. package/dist/types/console/slash/commands/integrations.test.d.ts +18 -0
  108. package/dist/types/console/slash/commands/shared.d.ts +72 -0
  109. package/dist/types/console/slash/commands/transcript.d.ts +24 -0
  110. package/dist/types/console/slash/commands/transcript.test.d.ts +10 -0
  111. package/dist/types/console/slash/commands/workbench.d.ts +21 -0
  112. package/dist/types/console/slash/commands/workbench.test.d.ts +10 -0
  113. package/dist/types/console/slash/index.d.ts +34 -0
  114. package/dist/types/console/slash/registry.d.ts +90 -0
  115. package/dist/types/console/slash/resolve.d.ts +109 -0
  116. package/dist/types/console/slash/slash.test.d.ts +18 -0
  117. package/dist/types/console/startup.d.ts +119 -0
  118. package/dist/types/console/theme/adapter.d.ts +60 -0
  119. package/dist/types/console/theme/index.d.ts +18 -0
  120. package/dist/types/console/theme/palette.d.ts +42 -0
  121. package/dist/types/console/theme/resolve.d.ts +45 -0
  122. package/dist/types/console/theme/theme.test.d.ts +16 -0
  123. package/dist/types/console/theme/tokens.d.ts +40 -0
  124. package/dist/types/entry.d.ts +17 -0
  125. package/dist/types/index.d.ts +24 -0
  126. package/dist/types/insight/channel.d.ts +45 -0
  127. package/dist/types/insight/contract.d.ts +411 -0
  128. package/dist/types/insight/index.d.ts +26 -0
  129. package/dist/types/insight/insight.test.d.ts +17 -0
  130. package/dist/types/insight/recorder.d.ts +63 -0
  131. package/dist/types/insight/redaction.d.ts +44 -0
  132. package/dist/types/insight/replay.d.ts +77 -0
  133. package/dist/types/insight/sampling.d.ts +84 -0
  134. package/dist/types/insight/serialize.d.ts +54 -0
  135. package/dist/types/insight/sinks/console.d.ts +36 -0
  136. package/dist/types/insight/sinks/file.d.ts +37 -0
  137. package/dist/types/insight/sinks/index.d.ts +16 -0
  138. package/dist/types/insight/sinks/stream.d.ts +53 -0
  139. package/dist/types/kit/clipboard-image.d.ts +40 -0
  140. package/dist/types/kit/external-editor.d.ts +35 -0
  141. package/dist/types/kit/image.d.ts +102 -0
  142. package/dist/types/kit/index.d.ts +29 -0
  143. package/dist/types/kit/kit.test.d.ts +13 -0
  144. package/dist/types/kit/shell.d.ts +50 -0
  145. package/dist/types/kit/tool-fetch.d.ts +165 -0
  146. package/dist/types/launch/catalog.d.ts +51 -0
  147. package/dist/types/launch/contract.d.ts +385 -0
  148. package/dist/types/launch/credentials.d.ts +112 -0
  149. package/dist/types/launch/index.d.ts +28 -0
  150. package/dist/types/launch/invocation/attachments.d.ts +72 -0
  151. package/dist/types/launch/invocation/flags.d.ts +59 -0
  152. package/dist/types/launch/invocation/index.d.ts +23 -0
  153. package/dist/types/launch/invocation/read.d.ts +52 -0
  154. package/dist/types/launch/invocation/usage.d.ts +25 -0
  155. package/dist/types/launch/launch.test.d.ts +20 -0
  156. package/dist/types/launch/oauth.d.ts +88 -0
  157. package/dist/types/launch/packages.d.ts +75 -0
  158. package/dist/types/launch/packages.test.d.ts +15 -0
  159. package/dist/types/launch/pickers.d.ts +97 -0
  160. package/dist/types/runtime-bridge/bridges/_drive.d.ts +74 -0
  161. package/dist/types/runtime-bridge/bridges/builtins.d.ts +77 -0
  162. package/dist/types/runtime-bridge/bridges/claude-cli.d.ts +37 -0
  163. package/dist/types/runtime-bridge/bridges/codex-cli.d.ts +27 -0
  164. package/dist/types/runtime-bridge/bridges/index.d.ts +15 -0
  165. package/dist/types/runtime-bridge/bridges/indusagi-cli.d.ts +36 -0
  166. package/dist/types/runtime-bridge/broker.d.ts +182 -0
  167. package/dist/types/runtime-bridge/contract.d.ts +436 -0
  168. package/dist/types/runtime-bridge/index.d.ts +21 -0
  169. package/dist/types/runtime-bridge/runtime-bridge.test.d.ts +17 -0
  170. package/dist/types/runtime-bridge/sink.d.ts +59 -0
  171. package/dist/types/sessions/contract.d.ts +79 -0
  172. package/dist/types/sessions/index.d.ts +11 -0
  173. package/dist/types/sessions/library.d.ts +95 -0
  174. package/dist/types/sessions/sessions.test.d.ts +11 -0
  175. package/dist/types/settings/contract.d.ts +116 -0
  176. package/dist/types/settings/index.d.ts +13 -0
  177. package/dist/types/settings/manager.d.ts +109 -0
  178. package/dist/types/settings/settings.test.d.ts +16 -0
  179. package/dist/types/transcript-export/index.d.ts +20 -0
  180. package/dist/types/transcript-export/publish.d.ts +81 -0
  181. package/dist/types/transcript-export/sgr.d.ts +90 -0
  182. package/dist/types/transcript-export/template.d.ts +64 -0
  183. package/dist/types/transcript-export/theme-bridge.d.ts +99 -0
  184. package/dist/types/transcript-export/transcript-export.test.d.ts +16 -0
  185. package/dist/types/window-budget/budget/estimate.d.ts +47 -0
  186. package/dist/types/window-budget/budget/gate.d.ts +37 -0
  187. package/dist/types/window-budget/budget/index.d.ts +14 -0
  188. package/dist/types/window-budget/budget/slice.d.ts +38 -0
  189. package/dist/types/window-budget/condenser.d.ts +59 -0
  190. package/dist/types/window-budget/contract.d.ts +182 -0
  191. package/dist/types/window-budget/index.d.ts +15 -0
  192. package/dist/types/window-budget/summarize/condense.d.ts +70 -0
  193. package/dist/types/window-budget/summarize/index.d.ts +12 -0
  194. package/dist/types/window-budget/summarize/prompt.d.ts +56 -0
  195. package/dist/types/window-budget/window-budget.test.d.ts +18 -0
  196. package/dist/types/workspace/brand.d.ts +20 -0
  197. package/dist/types/workspace/index.d.ts +11 -0
  198. package/dist/types/workspace/locator.d.ts +50 -0
  199. package/dist/types/workspace/runtime-detect.d.ts +56 -0
  200. package/package.json +43 -62
  201. package/LICENSE +0 -8
  202. package/LICENSE-THIRD-PARTY.txt +0 -30
  203. package/demos/README.md +0 -12
  204. package/dist/cli.d.ts +0 -3
  205. package/dist/cli.d.ts.map +0 -1
  206. package/dist/cli.js +0 -30
  207. package/dist/cli.js.map +0 -1
  208. package/dist/command-line/args.d.ts +0 -59
  209. package/dist/command-line/args.d.ts.map +0 -1
  210. package/dist/command-line/args.js +0 -332
  211. package/dist/command-line/args.js.map +0 -1
  212. package/dist/command-line/config-selector.d.ts +0 -17
  213. package/dist/command-line/config-selector.d.ts.map +0 -1
  214. package/dist/command-line/config-selector.js +0 -34
  215. package/dist/command-line/config-selector.js.map +0 -1
  216. package/dist/command-line/file-processor.d.ts +0 -15
  217. package/dist/command-line/file-processor.d.ts.map +0 -1
  218. package/dist/command-line/file-processor.js +0 -73
  219. package/dist/command-line/file-processor.js.map +0 -1
  220. package/dist/command-line/list-models.d.ts +0 -9
  221. package/dist/command-line/list-models.d.ts.map +0 -1
  222. package/dist/command-line/list-models.js +0 -74
  223. package/dist/command-line/list-models.js.map +0 -1
  224. package/dist/command-line/login-handler.d.ts +0 -94
  225. package/dist/command-line/login-handler.d.ts.map +0 -1
  226. package/dist/command-line/login-handler.js +0 -794
  227. package/dist/command-line/login-handler.js.map +0 -1
  228. package/dist/command-line/session-picker.d.ts +0 -10
  229. package/dist/command-line/session-picker.d.ts.map +0 -1
  230. package/dist/command-line/session-picker.js +0 -60
  231. package/dist/command-line/session-picker.js.map +0 -1
  232. package/dist/config.d.ts +0 -31
  233. package/dist/config.d.ts.map +0 -1
  234. package/dist/config.js +0 -143
  235. package/dist/config.js.map +0 -1
  236. package/dist/dev/observe-deep.d.ts +0 -2
  237. package/dist/dev/observe-deep.d.ts.map +0 -1
  238. package/dist/dev/observe-deep.js +0 -333
  239. package/dist/dev/observe-deep.js.map +0 -1
  240. package/dist/dev/observe-smoke.d.ts +0 -2
  241. package/dist/dev/observe-smoke.d.ts.map +0 -1
  242. package/dist/dev/observe-smoke.js +0 -264
  243. package/dist/dev/observe-smoke.js.map +0 -1
  244. package/dist/helpers/array.d.ts +0 -438
  245. package/dist/helpers/array.d.ts.map +0 -1
  246. package/dist/helpers/array.js +0 -692
  247. package/dist/helpers/array.js.map +0 -1
  248. package/dist/helpers/changelog.d.ts +0 -20
  249. package/dist/helpers/changelog.d.ts.map +0 -1
  250. package/dist/helpers/changelog.js +0 -79
  251. package/dist/helpers/changelog.js.map +0 -1
  252. package/dist/helpers/clipboard-image.d.ts +0 -11
  253. package/dist/helpers/clipboard-image.d.ts.map +0 -1
  254. package/dist/helpers/clipboard-image.js +0 -111
  255. package/dist/helpers/clipboard-image.js.map +0 -1
  256. package/dist/helpers/clipboard.d.ts +0 -2
  257. package/dist/helpers/clipboard.d.ts.map +0 -1
  258. package/dist/helpers/clipboard.js +0 -72
  259. package/dist/helpers/clipboard.js.map +0 -1
  260. package/dist/helpers/color-formatter.d.ts +0 -318
  261. package/dist/helpers/color-formatter.d.ts.map +0 -1
  262. package/dist/helpers/color-formatter.js +0 -469
  263. package/dist/helpers/color-formatter.js.map +0 -1
  264. package/dist/helpers/data-transformer.d.ts +0 -391
  265. package/dist/helpers/data-transformer.d.ts.map +0 -1
  266. package/dist/helpers/data-transformer.js +0 -604
  267. package/dist/helpers/data-transformer.js.map +0 -1
  268. package/dist/helpers/date-formatter.d.ts +0 -316
  269. package/dist/helpers/date-formatter.d.ts.map +0 -1
  270. package/dist/helpers/date-formatter.js +0 -553
  271. package/dist/helpers/date-formatter.js.map +0 -1
  272. package/dist/helpers/error-handler.d.ts +0 -541
  273. package/dist/helpers/error-handler.d.ts.map +0 -1
  274. package/dist/helpers/error-handler.js +0 -726
  275. package/dist/helpers/error-handler.js.map +0 -1
  276. package/dist/helpers/file-operations.d.ts +0 -324
  277. package/dist/helpers/file-operations.d.ts.map +0 -1
  278. package/dist/helpers/file-operations.js +0 -543
  279. package/dist/helpers/file-operations.js.map +0 -1
  280. package/dist/helpers/frontmatter.d.ts +0 -273
  281. package/dist/helpers/frontmatter.d.ts.map +0 -1
  282. package/dist/helpers/frontmatter.js +0 -580
  283. package/dist/helpers/frontmatter.js.map +0 -1
  284. package/dist/helpers/git.d.ts +0 -2
  285. package/dist/helpers/git.d.ts.map +0 -1
  286. package/dist/helpers/git.js +0 -6
  287. package/dist/helpers/git.js.map +0 -1
  288. package/dist/helpers/image-convert.d.ts +0 -9
  289. package/dist/helpers/image-convert.d.ts.map +0 -1
  290. package/dist/helpers/image-convert.js +0 -41
  291. package/dist/helpers/image-convert.js.map +0 -1
  292. package/dist/helpers/image-resize.d.ts +0 -19
  293. package/dist/helpers/image-resize.d.ts.map +0 -1
  294. package/dist/helpers/image-resize.js +0 -143
  295. package/dist/helpers/image-resize.js.map +0 -1
  296. package/dist/helpers/json-formatter.d.ts +0 -267
  297. package/dist/helpers/json-formatter.d.ts.map +0 -1
  298. package/dist/helpers/json-formatter.js +0 -533
  299. package/dist/helpers/json-formatter.js.map +0 -1
  300. package/dist/helpers/logger.d.ts +0 -176
  301. package/dist/helpers/logger.d.ts.map +0 -1
  302. package/dist/helpers/logger.js +0 -346
  303. package/dist/helpers/logger.js.map +0 -1
  304. package/dist/helpers/markdown-formatter.d.ts +0 -235
  305. package/dist/helpers/markdown-formatter.d.ts.map +0 -1
  306. package/dist/helpers/markdown-formatter.js +0 -633
  307. package/dist/helpers/markdown-formatter.js.map +0 -1
  308. package/dist/helpers/mime.d.ts +0 -3
  309. package/dist/helpers/mime.d.ts.map +0 -1
  310. package/dist/helpers/mime.js +0 -46
  311. package/dist/helpers/mime.js.map +0 -1
  312. package/dist/helpers/open-auth-url.d.ts +0 -2
  313. package/dist/helpers/open-auth-url.d.ts.map +0 -1
  314. package/dist/helpers/open-auth-url.js +0 -59
  315. package/dist/helpers/open-auth-url.js.map +0 -1
  316. package/dist/helpers/path-validator.d.ts +0 -603
  317. package/dist/helpers/path-validator.d.ts.map +0 -1
  318. package/dist/helpers/path-validator.js +0 -895
  319. package/dist/helpers/path-validator.js.map +0 -1
  320. package/dist/helpers/photon.d.ts +0 -10
  321. package/dist/helpers/photon.d.ts.map +0 -1
  322. package/dist/helpers/photon.js +0 -132
  323. package/dist/helpers/photon.js.map +0 -1
  324. package/dist/helpers/shell.d.ts +0 -10
  325. package/dist/helpers/shell.d.ts.map +0 -1
  326. package/dist/helpers/shell.js +0 -142
  327. package/dist/helpers/shell.js.map +0 -1
  328. package/dist/helpers/sleep.d.ts +0 -5
  329. package/dist/helpers/sleep.d.ts.map +0 -1
  330. package/dist/helpers/sleep.js +0 -41
  331. package/dist/helpers/sleep.js.map +0 -1
  332. package/dist/helpers/string-formatter.d.ts +0 -609
  333. package/dist/helpers/string-formatter.d.ts.map +0 -1
  334. package/dist/helpers/string-formatter.js +0 -807
  335. package/dist/helpers/string-formatter.js.map +0 -1
  336. package/dist/helpers/tools-manager.d.ts +0 -5
  337. package/dist/helpers/tools-manager.d.ts.map +0 -1
  338. package/dist/helpers/tools-manager.js +0 -161
  339. package/dist/helpers/tools-manager.js.map +0 -1
  340. package/dist/helpers/type-guards.d.ts +0 -634
  341. package/dist/helpers/type-guards.d.ts.map +0 -1
  342. package/dist/helpers/type-guards.js +0 -671
  343. package/dist/helpers/type-guards.js.map +0 -1
  344. package/dist/index.d.ts +0 -41
  345. package/dist/index.d.ts.map +0 -1
  346. package/dist/index.js +0 -40
  347. package/dist/index.js.map +0 -1
  348. package/dist/interfaces/index.d.ts +0 -16
  349. package/dist/interfaces/index.d.ts.map +0 -1
  350. package/dist/interfaces/index.js +0 -14
  351. package/dist/interfaces/index.js.map +0 -1
  352. package/dist/interfaces/print-mode.d.ts +0 -561
  353. package/dist/interfaces/print-mode.d.ts.map +0 -1
  354. package/dist/interfaces/print-mode.js +0 -633
  355. package/dist/interfaces/print-mode.js.map +0 -1
  356. package/dist/interfaces/react-ink/adapters/command-router.d.ts +0 -19
  357. package/dist/interfaces/react-ink/adapters/command-router.d.ts.map +0 -1
  358. package/dist/interfaces/react-ink/adapters/command-router.js +0 -674
  359. package/dist/interfaces/react-ink/adapters/command-router.js.map +0 -1
  360. package/dist/interfaces/react-ink/adapters/session-events.d.ts +0 -5
  361. package/dist/interfaces/react-ink/adapters/session-events.d.ts.map +0 -1
  362. package/dist/interfaces/react-ink/adapters/session-events.js +0 -255
  363. package/dist/interfaces/react-ink/adapters/session-events.js.map +0 -1
  364. package/dist/interfaces/react-ink/adapters/session-history.d.ts +0 -14
  365. package/dist/interfaces/react-ink/adapters/session-history.d.ts.map +0 -1
  366. package/dist/interfaces/react-ink/adapters/session-history.js +0 -83
  367. package/dist/interfaces/react-ink/adapters/session-history.js.map +0 -1
  368. package/dist/interfaces/react-ink/adapters/tool-state.d.ts +0 -4
  369. package/dist/interfaces/react-ink/adapters/tool-state.d.ts.map +0 -1
  370. package/dist/interfaces/react-ink/adapters/tool-state.js +0 -67
  371. package/dist/interfaces/react-ink/adapters/tool-state.js.map +0 -1
  372. package/dist/interfaces/react-ink/components/AppShell.d.ts +0 -17
  373. package/dist/interfaces/react-ink/components/AppShell.d.ts.map +0 -1
  374. package/dist/interfaces/react-ink/components/AppShell.js +0 -1535
  375. package/dist/interfaces/react-ink/components/AppShell.js.map +0 -1
  376. package/dist/interfaces/react-ink/components/ChangelogBlock.d.ts +0 -9
  377. package/dist/interfaces/react-ink/components/ChangelogBlock.d.ts.map +0 -1
  378. package/dist/interfaces/react-ink/components/ChangelogBlock.js +0 -58
  379. package/dist/interfaces/react-ink/components/ChangelogBlock.js.map +0 -1
  380. package/dist/interfaces/react-ink/components/DisplayBlockView.d.ts +0 -9
  381. package/dist/interfaces/react-ink/components/DisplayBlockView.d.ts.map +0 -1
  382. package/dist/interfaces/react-ink/components/DisplayBlockView.js +0 -11
  383. package/dist/interfaces/react-ink/components/DisplayBlockView.js.map +0 -1
  384. package/dist/interfaces/react-ink/components/Footer.d.ts +0 -12
  385. package/dist/interfaces/react-ink/components/Footer.d.ts.map +0 -1
  386. package/dist/interfaces/react-ink/components/Footer.js +0 -88
  387. package/dist/interfaces/react-ink/components/Footer.js.map +0 -1
  388. package/dist/interfaces/react-ink/components/Header.d.ts +0 -14
  389. package/dist/interfaces/react-ink/components/Header.d.ts.map +0 -1
  390. package/dist/interfaces/react-ink/components/Header.js +0 -24
  391. package/dist/interfaces/react-ink/components/Header.js.map +0 -1
  392. package/dist/interfaces/react-ink/components/MessageList.d.ts +0 -14
  393. package/dist/interfaces/react-ink/components/MessageList.d.ts.map +0 -1
  394. package/dist/interfaces/react-ink/components/MessageList.js +0 -43
  395. package/dist/interfaces/react-ink/components/MessageList.js.map +0 -1
  396. package/dist/interfaces/react-ink/components/MessageRow.d.ts +0 -13
  397. package/dist/interfaces/react-ink/components/MessageRow.d.ts.map +0 -1
  398. package/dist/interfaces/react-ink/components/MessageRow.js +0 -35
  399. package/dist/interfaces/react-ink/components/MessageRow.js.map +0 -1
  400. package/dist/interfaces/react-ink/components/PromptInput.d.ts +0 -35
  401. package/dist/interfaces/react-ink/components/PromptInput.d.ts.map +0 -1
  402. package/dist/interfaces/react-ink/components/PromptInput.js +0 -458
  403. package/dist/interfaces/react-ink/components/PromptInput.js.map +0 -1
  404. package/dist/interfaces/react-ink/components/StartupDiagnosticsBlock.d.ts +0 -9
  405. package/dist/interfaces/react-ink/components/StartupDiagnosticsBlock.d.ts.map +0 -1
  406. package/dist/interfaces/react-ink/components/StartupDiagnosticsBlock.js +0 -14
  407. package/dist/interfaces/react-ink/components/StartupDiagnosticsBlock.js.map +0 -1
  408. package/dist/interfaces/react-ink/components/StatusLine.d.ts +0 -10
  409. package/dist/interfaces/react-ink/components/StatusLine.d.ts.map +0 -1
  410. package/dist/interfaces/react-ink/components/StatusLine.js +0 -39
  411. package/dist/interfaces/react-ink/components/StatusLine.js.map +0 -1
  412. package/dist/interfaces/react-ink/components/TaskPanel.d.ts +0 -10
  413. package/dist/interfaces/react-ink/components/TaskPanel.d.ts.map +0 -1
  414. package/dist/interfaces/react-ink/components/TaskPanel.js +0 -23
  415. package/dist/interfaces/react-ink/components/TaskPanel.js.map +0 -1
  416. package/dist/interfaces/react-ink/components/ToolEventBlock.d.ts +0 -18
  417. package/dist/interfaces/react-ink/components/ToolEventBlock.d.ts.map +0 -1
  418. package/dist/interfaces/react-ink/components/ToolEventBlock.js +0 -61
  419. package/dist/interfaces/react-ink/components/ToolEventBlock.js.map +0 -1
  420. package/dist/interfaces/react-ink/components/dialogs/DialogFrame.d.ts +0 -9
  421. package/dist/interfaces/react-ink/components/dialogs/DialogFrame.d.ts.map +0 -1
  422. package/dist/interfaces/react-ink/components/dialogs/DialogFrame.js +0 -6
  423. package/dist/interfaces/react-ink/components/dialogs/DialogFrame.js.map +0 -1
  424. package/dist/interfaces/react-ink/components/dialogs/LoginDialog.d.ts +0 -15
  425. package/dist/interfaces/react-ink/components/dialogs/LoginDialog.d.ts.map +0 -1
  426. package/dist/interfaces/react-ink/components/dialogs/LoginDialog.js +0 -10
  427. package/dist/interfaces/react-ink/components/dialogs/LoginDialog.js.map +0 -1
  428. package/dist/interfaces/react-ink/components/dialogs/ModelDialog.d.ts +0 -10
  429. package/dist/interfaces/react-ink/components/dialogs/ModelDialog.d.ts.map +0 -1
  430. package/dist/interfaces/react-ink/components/dialogs/ModelDialog.js +0 -64
  431. package/dist/interfaces/react-ink/components/dialogs/ModelDialog.js.map +0 -1
  432. package/dist/interfaces/react-ink/components/dialogs/OAuthDialog.d.ts +0 -10
  433. package/dist/interfaces/react-ink/components/dialogs/OAuthDialog.d.ts.map +0 -1
  434. package/dist/interfaces/react-ink/components/dialogs/OAuthDialog.js +0 -24
  435. package/dist/interfaces/react-ink/components/dialogs/OAuthDialog.js.map +0 -1
  436. package/dist/interfaces/react-ink/components/dialogs/ScopedModelsDialog.d.ts +0 -10
  437. package/dist/interfaces/react-ink/components/dialogs/ScopedModelsDialog.d.ts.map +0 -1
  438. package/dist/interfaces/react-ink/components/dialogs/ScopedModelsDialog.js +0 -95
  439. package/dist/interfaces/react-ink/components/dialogs/ScopedModelsDialog.js.map +0 -1
  440. package/dist/interfaces/react-ink/components/dialogs/SelectableDialog.d.ts +0 -17
  441. package/dist/interfaces/react-ink/components/dialogs/SelectableDialog.d.ts.map +0 -1
  442. package/dist/interfaces/react-ink/components/dialogs/SelectableDialog.js +0 -66
  443. package/dist/interfaces/react-ink/components/dialogs/SelectableDialog.js.map +0 -1
  444. package/dist/interfaces/react-ink/components/dialogs/SessionDialog.d.ts +0 -11
  445. package/dist/interfaces/react-ink/components/dialogs/SessionDialog.d.ts.map +0 -1
  446. package/dist/interfaces/react-ink/components/dialogs/SessionDialog.js +0 -10
  447. package/dist/interfaces/react-ink/components/dialogs/SessionDialog.js.map +0 -1
  448. package/dist/interfaces/react-ink/components/dialogs/SettingsDialog.d.ts +0 -15
  449. package/dist/interfaces/react-ink/components/dialogs/SettingsDialog.d.ts.map +0 -1
  450. package/dist/interfaces/react-ink/components/dialogs/SettingsDialog.js +0 -79
  451. package/dist/interfaces/react-ink/components/dialogs/SettingsDialog.js.map +0 -1
  452. package/dist/interfaces/react-ink/components/dialogs/StartupSessionPicker.d.ts +0 -10
  453. package/dist/interfaces/react-ink/components/dialogs/StartupSessionPicker.d.ts.map +0 -1
  454. package/dist/interfaces/react-ink/components/dialogs/StartupSessionPicker.js +0 -99
  455. package/dist/interfaces/react-ink/components/dialogs/StartupSessionPicker.js.map +0 -1
  456. package/dist/interfaces/react-ink/components/dialogs/ThemeDialog.d.ts +0 -8
  457. package/dist/interfaces/react-ink/components/dialogs/ThemeDialog.d.ts.map +0 -1
  458. package/dist/interfaces/react-ink/components/dialogs/ThemeDialog.js +0 -7
  459. package/dist/interfaces/react-ink/components/dialogs/ThemeDialog.js.map +0 -1
  460. package/dist/interfaces/react-ink/components/dialogs/TreeDialog.d.ts +0 -9
  461. package/dist/interfaces/react-ink/components/dialogs/TreeDialog.d.ts.map +0 -1
  462. package/dist/interfaces/react-ink/components/dialogs/TreeDialog.js +0 -7
  463. package/dist/interfaces/react-ink/components/dialogs/TreeDialog.js.map +0 -1
  464. package/dist/interfaces/react-ink/components/dialogs/UserMessageDialog.d.ts +0 -9
  465. package/dist/interfaces/react-ink/components/dialogs/UserMessageDialog.d.ts.map +0 -1
  466. package/dist/interfaces/react-ink/components/dialogs/UserMessageDialog.js +0 -7
  467. package/dist/interfaces/react-ink/components/dialogs/UserMessageDialog.js.map +0 -1
  468. package/dist/interfaces/react-ink/components/extensions/ExtensionComponentHost.d.ts +0 -30
  469. package/dist/interfaces/react-ink/components/extensions/ExtensionComponentHost.d.ts.map +0 -1
  470. package/dist/interfaces/react-ink/components/extensions/ExtensionComponentHost.js +0 -106
  471. package/dist/interfaces/react-ink/components/extensions/ExtensionComponentHost.js.map +0 -1
  472. package/dist/interfaces/react-ink/components/extensions/ExtensionDialogs.d.ts +0 -20
  473. package/dist/interfaces/react-ink/components/extensions/ExtensionDialogs.d.ts.map +0 -1
  474. package/dist/interfaces/react-ink/components/extensions/ExtensionDialogs.js +0 -145
  475. package/dist/interfaces/react-ink/components/extensions/ExtensionDialogs.js.map +0 -1
  476. package/dist/interfaces/react-ink/components/messages/AssistantMessage.d.ts +0 -12
  477. package/dist/interfaces/react-ink/components/messages/AssistantMessage.d.ts.map +0 -1
  478. package/dist/interfaces/react-ink/components/messages/AssistantMessage.js +0 -20
  479. package/dist/interfaces/react-ink/components/messages/AssistantMessage.js.map +0 -1
  480. package/dist/interfaces/react-ink/components/messages/BashMessage.d.ts +0 -9
  481. package/dist/interfaces/react-ink/components/messages/BashMessage.d.ts.map +0 -1
  482. package/dist/interfaces/react-ink/components/messages/BashMessage.js +0 -11
  483. package/dist/interfaces/react-ink/components/messages/BashMessage.js.map +0 -1
  484. package/dist/interfaces/react-ink/components/messages/BranchSummaryMessage.d.ts +0 -9
  485. package/dist/interfaces/react-ink/components/messages/BranchSummaryMessage.d.ts.map +0 -1
  486. package/dist/interfaces/react-ink/components/messages/BranchSummaryMessage.js +0 -6
  487. package/dist/interfaces/react-ink/components/messages/BranchSummaryMessage.js.map +0 -1
  488. package/dist/interfaces/react-ink/components/messages/CompactionMessage.d.ts +0 -9
  489. package/dist/interfaces/react-ink/components/messages/CompactionMessage.d.ts.map +0 -1
  490. package/dist/interfaces/react-ink/components/messages/CompactionMessage.js +0 -6
  491. package/dist/interfaces/react-ink/components/messages/CompactionMessage.js.map +0 -1
  492. package/dist/interfaces/react-ink/components/messages/CustomMessage.d.ts +0 -10
  493. package/dist/interfaces/react-ink/components/messages/CustomMessage.d.ts.map +0 -1
  494. package/dist/interfaces/react-ink/components/messages/CustomMessage.js +0 -9
  495. package/dist/interfaces/react-ink/components/messages/CustomMessage.js.map +0 -1
  496. package/dist/interfaces/react-ink/components/messages/SkillInvocationMessage.d.ts +0 -8
  497. package/dist/interfaces/react-ink/components/messages/SkillInvocationMessage.d.ts.map +0 -1
  498. package/dist/interfaces/react-ink/components/messages/SkillInvocationMessage.js +0 -10
  499. package/dist/interfaces/react-ink/components/messages/SkillInvocationMessage.js.map +0 -1
  500. package/dist/interfaces/react-ink/components/messages/ToolCallMessage.d.ts +0 -9
  501. package/dist/interfaces/react-ink/components/messages/ToolCallMessage.d.ts.map +0 -1
  502. package/dist/interfaces/react-ink/components/messages/ToolCallMessage.js +0 -8
  503. package/dist/interfaces/react-ink/components/messages/ToolCallMessage.js.map +0 -1
  504. package/dist/interfaces/react-ink/components/messages/ToolResultBlock.d.ts +0 -12
  505. package/dist/interfaces/react-ink/components/messages/ToolResultBlock.d.ts.map +0 -1
  506. package/dist/interfaces/react-ink/components/messages/ToolResultBlock.js +0 -8
  507. package/dist/interfaces/react-ink/components/messages/ToolResultBlock.js.map +0 -1
  508. package/dist/interfaces/react-ink/components/messages/UserMessage.d.ts +0 -10
  509. package/dist/interfaces/react-ink/components/messages/UserMessage.d.ts.map +0 -1
  510. package/dist/interfaces/react-ink/components/messages/UserMessage.js +0 -7
  511. package/dist/interfaces/react-ink/components/messages/UserMessage.js.map +0 -1
  512. package/dist/interfaces/react-ink/hooks/use-agent-session.d.ts +0 -8
  513. package/dist/interfaces/react-ink/hooks/use-agent-session.d.ts.map +0 -1
  514. package/dist/interfaces/react-ink/hooks/use-agent-session.js +0 -34
  515. package/dist/interfaces/react-ink/hooks/use-agent-session.js.map +0 -1
  516. package/dist/interfaces/react-ink/hooks/use-app-keybindings.d.ts +0 -12
  517. package/dist/interfaces/react-ink/hooks/use-app-keybindings.d.ts.map +0 -1
  518. package/dist/interfaces/react-ink/hooks/use-app-keybindings.js +0 -17
  519. package/dist/interfaces/react-ink/hooks/use-app-keybindings.js.map +0 -1
  520. package/dist/interfaces/react-ink/hooks/use-footer-data.d.ts +0 -7
  521. package/dist/interfaces/react-ink/hooks/use-footer-data.d.ts.map +0 -1
  522. package/dist/interfaces/react-ink/hooks/use-footer-data.js +0 -17
  523. package/dist/interfaces/react-ink/hooks/use-footer-data.js.map +0 -1
  524. package/dist/interfaces/react-ink/hooks/use-prompt-submit.d.ts +0 -17
  525. package/dist/interfaces/react-ink/hooks/use-prompt-submit.d.ts.map +0 -1
  526. package/dist/interfaces/react-ink/hooks/use-prompt-submit.js +0 -66
  527. package/dist/interfaces/react-ink/hooks/use-prompt-submit.js.map +0 -1
  528. package/dist/interfaces/react-ink/hooks/use-session-history.d.ts +0 -8
  529. package/dist/interfaces/react-ink/hooks/use-session-history.d.ts.map +0 -1
  530. package/dist/interfaces/react-ink/hooks/use-session-history.js +0 -8
  531. package/dist/interfaces/react-ink/hooks/use-session-history.js.map +0 -1
  532. package/dist/interfaces/react-ink/index.d.ts +0 -8
  533. package/dist/interfaces/react-ink/index.d.ts.map +0 -1
  534. package/dist/interfaces/react-ink/index.js +0 -8
  535. package/dist/interfaces/react-ink/index.js.map +0 -1
  536. package/dist/interfaces/react-ink/interactive-mode.d.ts +0 -24
  537. package/dist/interfaces/react-ink/interactive-mode.d.ts.map +0 -1
  538. package/dist/interfaces/react-ink/interactive-mode.js +0 -57
  539. package/dist/interfaces/react-ink/interactive-mode.js.map +0 -1
  540. package/dist/interfaces/react-ink/render-root.d.ts +0 -19
  541. package/dist/interfaces/react-ink/render-root.d.ts.map +0 -1
  542. package/dist/interfaces/react-ink/render-root.js +0 -6
  543. package/dist/interfaces/react-ink/render-root.js.map +0 -1
  544. package/dist/interfaces/react-ink/state/reducer.d.ts +0 -51
  545. package/dist/interfaces/react-ink/state/reducer.d.ts.map +0 -1
  546. package/dist/interfaces/react-ink/state/reducer.js +0 -122
  547. package/dist/interfaces/react-ink/state/reducer.js.map +0 -1
  548. package/dist/interfaces/react-ink/state/store.d.ts +0 -4
  549. package/dist/interfaces/react-ink/state/store.d.ts.map +0 -1
  550. package/dist/interfaces/react-ink/state/store.js +0 -5
  551. package/dist/interfaces/react-ink/state/store.js.map +0 -1
  552. package/dist/interfaces/react-ink/state/ui-state.d.ts +0 -5
  553. package/dist/interfaces/react-ink/state/ui-state.d.ts.map +0 -1
  554. package/dist/interfaces/react-ink/state/ui-state.js +0 -20
  555. package/dist/interfaces/react-ink/state/ui-state.js.map +0 -1
  556. package/dist/interfaces/react-ink/theme-adapter.d.ts +0 -4
  557. package/dist/interfaces/react-ink/theme-adapter.d.ts.map +0 -1
  558. package/dist/interfaces/react-ink/theme-adapter.js +0 -15
  559. package/dist/interfaces/react-ink/theme-adapter.js.map +0 -1
  560. package/dist/interfaces/react-ink/types.d.ts +0 -51
  561. package/dist/interfaces/react-ink/types.d.ts.map +0 -1
  562. package/dist/interfaces/react-ink/types.js +0 -2
  563. package/dist/interfaces/react-ink/types.js.map +0 -1
  564. package/dist/interfaces/react-ink/utils/changelog.d.ts +0 -7
  565. package/dist/interfaces/react-ink/utils/changelog.d.ts.map +0 -1
  566. package/dist/interfaces/react-ink/utils/changelog.js +0 -40
  567. package/dist/interfaces/react-ink/utils/changelog.js.map +0 -1
  568. package/dist/interfaces/react-ink/utils/key-data.d.ts +0 -22
  569. package/dist/interfaces/react-ink/utils/key-data.d.ts.map +0 -1
  570. package/dist/interfaces/react-ink/utils/key-data.js +0 -123
  571. package/dist/interfaces/react-ink/utils/key-data.js.map +0 -1
  572. package/dist/interfaces/react-ink/utils/message-groups.d.ts +0 -26
  573. package/dist/interfaces/react-ink/utils/message-groups.d.ts.map +0 -1
  574. package/dist/interfaces/react-ink/utils/message-groups.js +0 -230
  575. package/dist/interfaces/react-ink/utils/message-groups.js.map +0 -1
  576. package/dist/interfaces/react-ink/utils/prompt-autocomplete.d.ts +0 -20
  577. package/dist/interfaces/react-ink/utils/prompt-autocomplete.d.ts.map +0 -1
  578. package/dist/interfaces/react-ink/utils/prompt-autocomplete.js +0 -46
  579. package/dist/interfaces/react-ink/utils/prompt-autocomplete.js.map +0 -1
  580. package/dist/interfaces/react-ink/utils/selection-dialog.d.ts +0 -3
  581. package/dist/interfaces/react-ink/utils/selection-dialog.d.ts.map +0 -1
  582. package/dist/interfaces/react-ink/utils/selection-dialog.js +0 -18
  583. package/dist/interfaces/react-ink/utils/selection-dialog.js.map +0 -1
  584. package/dist/interfaces/react-ink/utils/session-actions.d.ts +0 -10
  585. package/dist/interfaces/react-ink/utils/session-actions.d.ts.map +0 -1
  586. package/dist/interfaces/react-ink/utils/session-actions.js +0 -66
  587. package/dist/interfaces/react-ink/utils/session-actions.js.map +0 -1
  588. package/dist/interfaces/react-ink/utils/slash-commands.d.ts +0 -10
  589. package/dist/interfaces/react-ink/utils/slash-commands.d.ts.map +0 -1
  590. package/dist/interfaces/react-ink/utils/slash-commands.js +0 -111
  591. package/dist/interfaces/react-ink/utils/slash-commands.js.map +0 -1
  592. package/dist/interfaces/react-ink/utils/startup-diagnostics.d.ts +0 -7
  593. package/dist/interfaces/react-ink/utils/startup-diagnostics.d.ts.map +0 -1
  594. package/dist/interfaces/react-ink/utils/startup-diagnostics.js +0 -111
  595. package/dist/interfaces/react-ink/utils/startup-diagnostics.js.map +0 -1
  596. package/dist/interfaces/react-ink/utils/tool-display.d.ts +0 -22
  597. package/dist/interfaces/react-ink/utils/tool-display.d.ts.map +0 -1
  598. package/dist/interfaces/react-ink/utils/tool-display.js +0 -349
  599. package/dist/interfaces/react-ink/utils/tool-display.js.map +0 -1
  600. package/dist/interfaces/service-api/rpc-client.d.ts +0 -1129
  601. package/dist/interfaces/service-api/rpc-client.d.ts.map +0 -1
  602. package/dist/interfaces/service-api/rpc-client.js +0 -1333
  603. package/dist/interfaces/service-api/rpc-client.js.map +0 -1
  604. package/dist/interfaces/service-api/rpc-mode.d.ts +0 -813
  605. package/dist/interfaces/service-api/rpc-mode.d.ts.map +0 -1
  606. package/dist/interfaces/service-api/rpc-mode.js +0 -1229
  607. package/dist/interfaces/service-api/rpc-mode.js.map +0 -1
  608. package/dist/interfaces/service-api/rpc-types.d.ts +0 -392
  609. package/dist/interfaces/service-api/rpc-types.d.ts.map +0 -1
  610. package/dist/interfaces/service-api/rpc-types.js +0 -22
  611. package/dist/interfaces/service-api/rpc-types.js.map +0 -1
  612. package/dist/interfaces/shared.d.ts +0 -386
  613. package/dist/interfaces/shared.d.ts.map +0 -1
  614. package/dist/interfaces/shared.js +0 -543
  615. package/dist/interfaces/shared.js.map +0 -1
  616. package/dist/interfaces/theme/dark.json +0 -91
  617. package/dist/interfaces/theme/light.json +0 -90
  618. package/dist/interfaces/theme/theme-schema.json +0 -339
  619. package/dist/interfaces/theme/theme.d.ts +0 -500
  620. package/dist/interfaces/theme/theme.d.ts.map +0 -1
  621. package/dist/interfaces/theme/theme.js +0 -1511
  622. package/dist/interfaces/theme/theme.js.map +0 -1
  623. package/dist/main.d.ts +0 -8
  624. package/dist/main.d.ts.map +0 -1
  625. package/dist/main.js +0 -750
  626. package/dist/main.js.map +0 -1
  627. package/dist/migrations.d.ts +0 -8
  628. package/dist/migrations.d.ts.map +0 -1
  629. package/dist/migrations.js +0 -206
  630. package/dist/migrations.js.map +0 -1
  631. package/dist/observe.d.ts +0 -2
  632. package/dist/observe.d.ts.map +0 -1
  633. package/dist/observe.js +0 -2
  634. package/dist/observe.js.map +0 -1
  635. package/dist/runtime/agent-session.d.ts +0 -988
  636. package/dist/runtime/agent-session.d.ts.map +0 -1
  637. package/dist/runtime/agent-session.js +0 -3114
  638. package/dist/runtime/agent-session.js.map +0 -1
  639. package/dist/runtime/auth-storage.d.ts +0 -53
  640. package/dist/runtime/auth-storage.d.ts.map +0 -1
  641. package/dist/runtime/auth-storage.js +0 -378
  642. package/dist/runtime/auth-storage.js.map +0 -1
  643. package/dist/runtime/bash-executor.d.ts +0 -16
  644. package/dist/runtime/bash-executor.d.ts.map +0 -1
  645. package/dist/runtime/bash-executor.js +0 -270
  646. package/dist/runtime/bash-executor.js.map +0 -1
  647. package/dist/runtime/context-compression/branch-summarization.d.ts +0 -86
  648. package/dist/runtime/context-compression/branch-summarization.d.ts.map +0 -1
  649. package/dist/runtime/context-compression/branch-summarization.js +0 -242
  650. package/dist/runtime/context-compression/branch-summarization.js.map +0 -1
  651. package/dist/runtime/context-compression/compaction.d.ts +0 -121
  652. package/dist/runtime/context-compression/compaction.d.ts.map +0 -1
  653. package/dist/runtime/context-compression/compaction.js +0 -607
  654. package/dist/runtime/context-compression/compaction.js.map +0 -1
  655. package/dist/runtime/context-compression/index.d.ts +0 -35
  656. package/dist/runtime/context-compression/index.d.ts.map +0 -1
  657. package/dist/runtime/context-compression/index.js +0 -33
  658. package/dist/runtime/context-compression/index.js.map +0 -1
  659. package/dist/runtime/context-compression/utils.d.ts +0 -17
  660. package/dist/runtime/context-compression/utils.d.ts.map +0 -1
  661. package/dist/runtime/context-compression/utils.js +0 -117
  662. package/dist/runtime/context-compression/utils.js.map +0 -1
  663. package/dist/runtime/diagnostics.d.ts +0 -206
  664. package/dist/runtime/diagnostics.d.ts.map +0 -1
  665. package/dist/runtime/diagnostics.js +0 -144
  666. package/dist/runtime/diagnostics.js.map +0 -1
  667. package/dist/runtime/discover-packages.d.ts +0 -2
  668. package/dist/runtime/discover-packages.d.ts.map +0 -1
  669. package/dist/runtime/discover-packages.js +0 -59
  670. package/dist/runtime/discover-packages.js.map +0 -1
  671. package/dist/runtime/event-bus.d.ts +0 -9
  672. package/dist/runtime/event-bus.d.ts.map +0 -1
  673. package/dist/runtime/event-bus.js +0 -29
  674. package/dist/runtime/event-bus.js.map +0 -1
  675. package/dist/runtime/exec.d.ts +0 -13
  676. package/dist/runtime/exec.d.ts.map +0 -1
  677. package/dist/runtime/exec.js +0 -62
  678. package/dist/runtime/exec.js.map +0 -1
  679. package/dist/runtime/footer-data-provider.d.ts +0 -19
  680. package/dist/runtime/footer-data-provider.d.ts.map +0 -1
  681. package/dist/runtime/footer-data-provider.js +0 -122
  682. package/dist/runtime/footer-data-provider.js.map +0 -1
  683. package/dist/runtime/html-export/ansi-to-html.d.ts +0 -26
  684. package/dist/runtime/html-export/ansi-to-html.d.ts.map +0 -1
  685. package/dist/runtime/html-export/ansi-to-html.js +0 -253
  686. package/dist/runtime/html-export/ansi-to-html.js.map +0 -1
  687. package/dist/runtime/html-export/ansi-to-html.ts +0 -262
  688. package/dist/runtime/html-export/index.d.ts +0 -162
  689. package/dist/runtime/html-export/index.d.ts.map +0 -1
  690. package/dist/runtime/html-export/index.js +0 -350
  691. package/dist/runtime/html-export/index.js.map +0 -1
  692. package/dist/runtime/html-export/index.ts +0 -432
  693. package/dist/runtime/html-export/template.css +0 -905
  694. package/dist/runtime/html-export/template.html +0 -76
  695. package/dist/runtime/html-export/template.js +0 -1549
  696. package/dist/runtime/html-export/tool-renderer.d.ts +0 -18
  697. package/dist/runtime/html-export/tool-renderer.d.ts.map +0 -1
  698. package/dist/runtime/html-export/tool-renderer.js +0 -45
  699. package/dist/runtime/html-export/tool-renderer.js.map +0 -1
  700. package/dist/runtime/html-export/tool-renderer.ts +0 -80
  701. package/dist/runtime/html-export/vendor/highlight.min.js +0 -1244
  702. package/dist/runtime/html-export/vendor/marked.min.js +0 -74
  703. package/dist/runtime/index.d.ts +0 -35
  704. package/dist/runtime/index.d.ts.map +0 -1
  705. package/dist/runtime/index.js +0 -35
  706. package/dist/runtime/index.js.map +0 -1
  707. package/dist/runtime/keybindings.d.ts +0 -20
  708. package/dist/runtime/keybindings.d.ts.map +0 -1
  709. package/dist/runtime/keybindings.js +0 -109
  710. package/dist/runtime/keybindings.js.map +0 -1
  711. package/dist/runtime/lifecycle/index.d.ts +0 -4
  712. package/dist/runtime/lifecycle/index.d.ts.map +0 -1
  713. package/dist/runtime/lifecycle/index.js +0 -3
  714. package/dist/runtime/lifecycle/index.js.map +0 -1
  715. package/dist/runtime/lifecycle/loader.d.ts +0 -6
  716. package/dist/runtime/lifecycle/loader.d.ts.map +0 -1
  717. package/dist/runtime/lifecycle/loader.js +0 -179
  718. package/dist/runtime/lifecycle/loader.js.map +0 -1
  719. package/dist/runtime/lifecycle/runner.d.ts +0 -14
  720. package/dist/runtime/lifecycle/runner.d.ts.map +0 -1
  721. package/dist/runtime/lifecycle/runner.js +0 -58
  722. package/dist/runtime/lifecycle/runner.js.map +0 -1
  723. package/dist/runtime/lifecycle/types.d.ts +0 -139
  724. package/dist/runtime/lifecycle/types.d.ts.map +0 -1
  725. package/dist/runtime/lifecycle/types.js +0 -2
  726. package/dist/runtime/lifecycle/types.js.map +0 -1
  727. package/dist/runtime/messages.d.ts +0 -2
  728. package/dist/runtime/messages.d.ts.map +0 -1
  729. package/dist/runtime/messages.js +0 -2
  730. package/dist/runtime/messages.js.map +0 -1
  731. package/dist/runtime/model-registry.d.ts +0 -62
  732. package/dist/runtime/model-registry.d.ts.map +0 -1
  733. package/dist/runtime/model-registry.js +0 -446
  734. package/dist/runtime/model-registry.js.map +0 -1
  735. package/dist/runtime/model-resolver.d.ts +0 -35
  736. package/dist/runtime/model-resolver.d.ts.map +0 -1
  737. package/dist/runtime/model-resolver.js +0 -232
  738. package/dist/runtime/model-resolver.js.map +0 -1
  739. package/dist/runtime/observe.d.ts +0 -50
  740. package/dist/runtime/observe.d.ts.map +0 -1
  741. package/dist/runtime/observe.js +0 -233
  742. package/dist/runtime/observe.js.map +0 -1
  743. package/dist/runtime/package-manager.d.ts +0 -103
  744. package/dist/runtime/package-manager.d.ts.map +0 -1
  745. package/dist/runtime/package-manager.js +0 -583
  746. package/dist/runtime/package-manager.js.map +0 -1
  747. package/dist/runtime/plugins/index.d.ts +0 -13
  748. package/dist/runtime/plugins/index.d.ts.map +0 -1
  749. package/dist/runtime/plugins/index.js +0 -23
  750. package/dist/runtime/plugins/index.js.map +0 -1
  751. package/dist/runtime/plugins/loader.d.ts +0 -19
  752. package/dist/runtime/plugins/loader.d.ts.map +0 -1
  753. package/dist/runtime/plugins/loader.js +0 -415
  754. package/dist/runtime/plugins/loader.js.map +0 -1
  755. package/dist/runtime/plugins/runner.d.ts +0 -107
  756. package/dist/runtime/plugins/runner.d.ts.map +0 -1
  757. package/dist/runtime/plugins/runner.js +0 -468
  758. package/dist/runtime/plugins/runner.js.map +0 -1
  759. package/dist/runtime/plugins/types.d.ts +0 -862
  760. package/dist/runtime/plugins/types.d.ts.map +0 -1
  761. package/dist/runtime/plugins/types.js +0 -32
  762. package/dist/runtime/plugins/types.js.map +0 -1
  763. package/dist/runtime/plugins/wrapper.d.ts +0 -29
  764. package/dist/runtime/plugins/wrapper.d.ts.map +0 -1
  765. package/dist/runtime/plugins/wrapper.js +0 -129
  766. package/dist/runtime/plugins/wrapper.js.map +0 -1
  767. package/dist/runtime/prompt-templates.d.ts +0 -18
  768. package/dist/runtime/prompt-templates.d.ts.map +0 -1
  769. package/dist/runtime/prompt-templates.js +0 -203
  770. package/dist/runtime/prompt-templates.js.map +0 -1
  771. package/dist/runtime/providers/adapters/claude-cli-adapter.d.ts +0 -19
  772. package/dist/runtime/providers/adapters/claude-cli-adapter.d.ts.map +0 -1
  773. package/dist/runtime/providers/adapters/claude-cli-adapter.js +0 -242
  774. package/dist/runtime/providers/adapters/claude-cli-adapter.js.map +0 -1
  775. package/dist/runtime/providers/adapters/codex-cli-adapter.d.ts +0 -18
  776. package/dist/runtime/providers/adapters/codex-cli-adapter.d.ts.map +0 -1
  777. package/dist/runtime/providers/adapters/codex-cli-adapter.js +0 -177
  778. package/dist/runtime/providers/adapters/codex-cli-adapter.js.map +0 -1
  779. package/dist/runtime/providers/adapters/indusagi-cli-adapter.d.ts +0 -21
  780. package/dist/runtime/providers/adapters/indusagi-cli-adapter.d.ts.map +0 -1
  781. package/dist/runtime/providers/adapters/indusagi-cli-adapter.js +0 -162
  782. package/dist/runtime/providers/adapters/indusagi-cli-adapter.js.map +0 -1
  783. package/dist/runtime/providers/adapters/utils.d.ts +0 -12
  784. package/dist/runtime/providers/adapters/utils.d.ts.map +0 -1
  785. package/dist/runtime/providers/adapters/utils.js +0 -122
  786. package/dist/runtime/providers/adapters/utils.js.map +0 -1
  787. package/dist/runtime/providers/builtins.d.ts +0 -3
  788. package/dist/runtime/providers/builtins.d.ts.map +0 -1
  789. package/dist/runtime/providers/builtins.js +0 -88
  790. package/dist/runtime/providers/builtins.js.map +0 -1
  791. package/dist/runtime/providers/provider-adapter-registry.d.ts +0 -11
  792. package/dist/runtime/providers/provider-adapter-registry.d.ts.map +0 -1
  793. package/dist/runtime/providers/provider-adapter-registry.js +0 -36
  794. package/dist/runtime/providers/provider-adapter-registry.js.map +0 -1
  795. package/dist/runtime/providers/provider-adapter.d.ts +0 -33
  796. package/dist/runtime/providers/provider-adapter.d.ts.map +0 -1
  797. package/dist/runtime/providers/provider-adapter.js +0 -2
  798. package/dist/runtime/providers/provider-adapter.js.map +0 -1
  799. package/dist/runtime/providers/provider-service.d.ts +0 -33
  800. package/dist/runtime/providers/provider-service.d.ts.map +0 -1
  801. package/dist/runtime/providers/provider-service.js +0 -157
  802. package/dist/runtime/providers/provider-service.js.map +0 -1
  803. package/dist/runtime/providers/types.d.ts +0 -29
  804. package/dist/runtime/providers/types.d.ts.map +0 -1
  805. package/dist/runtime/providers/types.js +0 -9
  806. package/dist/runtime/providers/types.js.map +0 -1
  807. package/dist/runtime/resource-loader.d.ts +0 -180
  808. package/dist/runtime/resource-loader.d.ts.map +0 -1
  809. package/dist/runtime/resource-loader.js +0 -530
  810. package/dist/runtime/resource-loader.js.map +0 -1
  811. package/dist/runtime/sdk.d.ts +0 -65
  812. package/dist/runtime/sdk.d.ts.map +0 -1
  813. package/dist/runtime/sdk.js +0 -402
  814. package/dist/runtime/sdk.js.map +0 -1
  815. package/dist/runtime/session-manager.d.ts +0 -448
  816. package/dist/runtime/session-manager.d.ts.map +0 -1
  817. package/dist/runtime/session-manager.js +0 -1177
  818. package/dist/runtime/session-manager.js.map +0 -1
  819. package/dist/runtime/settings-manager.d.ts +0 -234
  820. package/dist/runtime/settings-manager.d.ts.map +0 -1
  821. package/dist/runtime/settings-manager.js +0 -298
  822. package/dist/runtime/settings-manager.js.map +0 -1
  823. package/dist/runtime/skills.d.ts +0 -33
  824. package/dist/runtime/skills.d.ts.map +0 -1
  825. package/dist/runtime/skills.js +0 -277
  826. package/dist/runtime/skills.js.map +0 -1
  827. package/dist/runtime/subagents.d.ts +0 -29
  828. package/dist/runtime/subagents.d.ts.map +0 -1
  829. package/dist/runtime/subagents.js +0 -163
  830. package/dist/runtime/subagents.js.map +0 -1
  831. package/dist/runtime/system-prompt.d.ts +0 -16
  832. package/dist/runtime/system-prompt.d.ts.map +0 -1
  833. package/dist/runtime/system-prompt.js +0 -275
  834. package/dist/runtime/system-prompt.js.map +0 -1
  835. package/dist/runtime/task-session-manager.d.ts +0 -55
  836. package/dist/runtime/task-session-manager.d.ts.map +0 -1
  837. package/dist/runtime/task-session-manager.js +0 -410
  838. package/dist/runtime/task-session-manager.js.map +0 -1
  839. package/dist/runtime/timings.d.ts +0 -4
  840. package/dist/runtime/timings.d.ts.map +0 -1
  841. package/dist/runtime/timings.js +0 -41
  842. package/dist/runtime/timings.js.map +0 -1
  843. package/dist/runtime/todo-store.d.ts +0 -20
  844. package/dist/runtime/todo-store.d.ts.map +0 -1
  845. package/dist/runtime/todo-store.js +0 -60
  846. package/dist/runtime/todo-store.js.map +0 -1
  847. package/dist/runtime/tooling/bash.d.ts +0 -2
  848. package/dist/runtime/tooling/bash.d.ts.map +0 -1
  849. package/dist/runtime/tooling/bash.js +0 -2
  850. package/dist/runtime/tooling/bash.js.map +0 -1
  851. package/dist/runtime/tooling/bg-process.d.ts +0 -44
  852. package/dist/runtime/tooling/bg-process.d.ts.map +0 -1
  853. package/dist/runtime/tooling/bg-process.js +0 -55
  854. package/dist/runtime/tooling/bg-process.js.map +0 -1
  855. package/dist/runtime/tooling/composio-compat.d.ts +0 -169
  856. package/dist/runtime/tooling/composio-compat.d.ts.map +0 -1
  857. package/dist/runtime/tooling/composio-compat.js +0 -163
  858. package/dist/runtime/tooling/composio-compat.js.map +0 -1
  859. package/dist/runtime/tooling/edit-diff.d.ts +0 -9
  860. package/dist/runtime/tooling/edit-diff.d.ts.map +0 -1
  861. package/dist/runtime/tooling/edit-diff.js +0 -2
  862. package/dist/runtime/tooling/edit-diff.js.map +0 -1
  863. package/dist/runtime/tooling/edit.d.ts +0 -2
  864. package/dist/runtime/tooling/edit.d.ts.map +0 -1
  865. package/dist/runtime/tooling/edit.js +0 -2
  866. package/dist/runtime/tooling/edit.js.map +0 -1
  867. package/dist/runtime/tooling/find.d.ts +0 -2
  868. package/dist/runtime/tooling/find.d.ts.map +0 -1
  869. package/dist/runtime/tooling/find.js +0 -2
  870. package/dist/runtime/tooling/find.js.map +0 -1
  871. package/dist/runtime/tooling/grep.d.ts +0 -2
  872. package/dist/runtime/tooling/grep.d.ts.map +0 -1
  873. package/dist/runtime/tooling/grep.js +0 -2
  874. package/dist/runtime/tooling/grep.js.map +0 -1
  875. package/dist/runtime/tooling/index.d.ts +0 -248
  876. package/dist/runtime/tooling/index.d.ts.map +0 -1
  877. package/dist/runtime/tooling/index.js +0 -325
  878. package/dist/runtime/tooling/index.js.map +0 -1
  879. package/dist/runtime/tooling/ls.d.ts +0 -2
  880. package/dist/runtime/tooling/ls.d.ts.map +0 -1
  881. package/dist/runtime/tooling/ls.js +0 -2
  882. package/dist/runtime/tooling/ls.js.map +0 -1
  883. package/dist/runtime/tooling/memory.d.ts +0 -132
  884. package/dist/runtime/tooling/memory.d.ts.map +0 -1
  885. package/dist/runtime/tooling/memory.js +0 -171
  886. package/dist/runtime/tooling/memory.js.map +0 -1
  887. package/dist/runtime/tooling/path-utils.d.ts +0 -2
  888. package/dist/runtime/tooling/path-utils.d.ts.map +0 -1
  889. package/dist/runtime/tooling/path-utils.js +0 -2
  890. package/dist/runtime/tooling/path-utils.js.map +0 -1
  891. package/dist/runtime/tooling/read.d.ts +0 -2
  892. package/dist/runtime/tooling/read.d.ts.map +0 -1
  893. package/dist/runtime/tooling/read.js +0 -2
  894. package/dist/runtime/tooling/read.js.map +0 -1
  895. package/dist/runtime/tooling/registry.d.ts +0 -18
  896. package/dist/runtime/tooling/registry.d.ts.map +0 -1
  897. package/dist/runtime/tooling/registry.js +0 -166
  898. package/dist/runtime/tooling/registry.js.map +0 -1
  899. package/dist/runtime/tooling/task.d.ts +0 -37
  900. package/dist/runtime/tooling/task.d.ts.map +0 -1
  901. package/dist/runtime/tooling/task.js +0 -65
  902. package/dist/runtime/tooling/task.js.map +0 -1
  903. package/dist/runtime/tooling/todo.d.ts +0 -34
  904. package/dist/runtime/tooling/todo.d.ts.map +0 -1
  905. package/dist/runtime/tooling/todo.js +0 -96
  906. package/dist/runtime/tooling/todo.js.map +0 -1
  907. package/dist/runtime/tooling/truncate.d.ts +0 -2
  908. package/dist/runtime/tooling/truncate.d.ts.map +0 -1
  909. package/dist/runtime/tooling/truncate.js +0 -2
  910. package/dist/runtime/tooling/truncate.js.map +0 -1
  911. package/dist/runtime/tooling/webfetch.d.ts +0 -2
  912. package/dist/runtime/tooling/webfetch.d.ts.map +0 -1
  913. package/dist/runtime/tooling/webfetch.js +0 -2
  914. package/dist/runtime/tooling/webfetch.js.map +0 -1
  915. package/dist/runtime/tooling/websearch.d.ts +0 -2
  916. package/dist/runtime/tooling/websearch.d.ts.map +0 -1
  917. package/dist/runtime/tooling/websearch.js +0 -2
  918. package/dist/runtime/tooling/websearch.js.map +0 -1
  919. package/dist/runtime/tooling/write.d.ts +0 -2
  920. package/dist/runtime/tooling/write.d.ts.map +0 -1
  921. package/dist/runtime/tooling/write.js +0 -2
  922. package/dist/runtime/tooling/write.js.map +0 -1
  923. package/dist/telemetry/core/config.d.ts +0 -28
  924. package/dist/telemetry/core/config.d.ts.map +0 -1
  925. package/dist/telemetry/core/config.js +0 -150
  926. package/dist/telemetry/core/config.js.map +0 -1
  927. package/dist/telemetry/core/event-bus.d.ts +0 -15
  928. package/dist/telemetry/core/event-bus.d.ts.map +0 -1
  929. package/dist/telemetry/core/event-bus.js +0 -37
  930. package/dist/telemetry/core/event-bus.js.map +0 -1
  931. package/dist/telemetry/core/index.d.ts +0 -12
  932. package/dist/telemetry/core/index.d.ts.map +0 -1
  933. package/dist/telemetry/core/index.js +0 -14
  934. package/dist/telemetry/core/index.js.map +0 -1
  935. package/dist/telemetry/core/observability.d.ts +0 -63
  936. package/dist/telemetry/core/observability.d.ts.map +0 -1
  937. package/dist/telemetry/core/observability.js +0 -127
  938. package/dist/telemetry/core/observability.js.map +0 -1
  939. package/dist/telemetry/core/span.d.ts +0 -37
  940. package/dist/telemetry/core/span.d.ts.map +0 -1
  941. package/dist/telemetry/core/span.js +0 -90
  942. package/dist/telemetry/core/span.js.map +0 -1
  943. package/dist/telemetry/core/tracer.d.ts +0 -22
  944. package/dist/telemetry/core/tracer.d.ts.map +0 -1
  945. package/dist/telemetry/core/tracer.js +0 -79
  946. package/dist/telemetry/core/tracer.js.map +0 -1
  947. package/dist/telemetry/core/types.d.ts +0 -155
  948. package/dist/telemetry/core/types.d.ts.map +0 -1
  949. package/dist/telemetry/core/types.js +0 -38
  950. package/dist/telemetry/core/types.js.map +0 -1
  951. package/dist/telemetry/exporters/base-exporter.d.ts +0 -16
  952. package/dist/telemetry/exporters/base-exporter.d.ts.map +0 -1
  953. package/dist/telemetry/exporters/base-exporter.js +0 -26
  954. package/dist/telemetry/exporters/base-exporter.js.map +0 -1
  955. package/dist/telemetry/exporters/console-exporter.d.ts +0 -22
  956. package/dist/telemetry/exporters/console-exporter.d.ts.map +0 -1
  957. package/dist/telemetry/exporters/console-exporter.js +0 -80
  958. package/dist/telemetry/exporters/console-exporter.js.map +0 -1
  959. package/dist/telemetry/exporters/file-exporter.d.ts +0 -31
  960. package/dist/telemetry/exporters/file-exporter.d.ts.map +0 -1
  961. package/dist/telemetry/exporters/file-exporter.js +0 -120
  962. package/dist/telemetry/exporters/file-exporter.js.map +0 -1
  963. package/dist/telemetry/exporters/index.d.ts +0 -12
  964. package/dist/telemetry/exporters/index.d.ts.map +0 -1
  965. package/dist/telemetry/exporters/index.js +0 -11
  966. package/dist/telemetry/exporters/index.js.map +0 -1
  967. package/dist/telemetry/exporters/langfuse-exporter.d.ts +0 -27
  968. package/dist/telemetry/exporters/langfuse-exporter.d.ts.map +0 -1
  969. package/dist/telemetry/exporters/langfuse-exporter.js +0 -146
  970. package/dist/telemetry/exporters/langfuse-exporter.js.map +0 -1
  971. package/dist/telemetry/exporters/sentry-exporter.d.ts +0 -22
  972. package/dist/telemetry/exporters/sentry-exporter.d.ts.map +0 -1
  973. package/dist/telemetry/exporters/sentry-exporter.js +0 -121
  974. package/dist/telemetry/exporters/sentry-exporter.js.map +0 -1
  975. package/dist/telemetry/index.d.ts +0 -3
  976. package/dist/telemetry/index.d.ts.map +0 -1
  977. package/dist/telemetry/index.js +0 -3
  978. package/dist/telemetry/index.js.map +0 -1
  979. package/dist/vendor/observe/adapters/agent-event-adapter.d.ts +0 -28
  980. package/dist/vendor/observe/adapters/agent-event-adapter.d.ts.map +0 -1
  981. package/dist/vendor/observe/adapters/agent-event-adapter.js +0 -136
  982. package/dist/vendor/observe/adapters/agent-event-adapter.js.map +0 -1
  983. package/dist/vendor/observe/adapters/ai-stream-adapter.d.ts +0 -24
  984. package/dist/vendor/observe/adapters/ai-stream-adapter.d.ts.map +0 -1
  985. package/dist/vendor/observe/adapters/ai-stream-adapter.js +0 -118
  986. package/dist/vendor/observe/adapters/ai-stream-adapter.js.map +0 -1
  987. package/dist/vendor/observe/artifacts/content-store.d.ts +0 -12
  988. package/dist/vendor/observe/artifacts/content-store.d.ts.map +0 -1
  989. package/dist/vendor/observe/artifacts/content-store.js +0 -2
  990. package/dist/vendor/observe/artifacts/content-store.js.map +0 -1
  991. package/dist/vendor/observe/artifacts/file-content-store.d.ts +0 -16
  992. package/dist/vendor/observe/artifacts/file-content-store.d.ts.map +0 -1
  993. package/dist/vendor/observe/artifacts/file-content-store.js +0 -43
  994. package/dist/vendor/observe/artifacts/file-content-store.js.map +0 -1
  995. package/dist/vendor/observe/batcher.d.ts +0 -27
  996. package/dist/vendor/observe/batcher.d.ts.map +0 -1
  997. package/dist/vendor/observe/batcher.js +0 -66
  998. package/dist/vendor/observe/batcher.js.map +0 -1
  999. package/dist/vendor/observe/client/artifacts-manager.d.ts +0 -29
  1000. package/dist/vendor/observe/client/artifacts-manager.d.ts.map +0 -1
  1001. package/dist/vendor/observe/client/artifacts-manager.js +0 -120
  1002. package/dist/vendor/observe/client/artifacts-manager.js.map +0 -1
  1003. package/dist/vendor/observe/client/datasets-manager.d.ts +0 -16
  1004. package/dist/vendor/observe/client/datasets-manager.d.ts.map +0 -1
  1005. package/dist/vendor/observe/client/datasets-manager.js +0 -27
  1006. package/dist/vendor/observe/client/datasets-manager.js.map +0 -1
  1007. package/dist/vendor/observe/client/experiments-manager.d.ts +0 -61
  1008. package/dist/vendor/observe/client/experiments-manager.d.ts.map +0 -1
  1009. package/dist/vendor/observe/client/experiments-manager.js +0 -132
  1010. package/dist/vendor/observe/client/experiments-manager.js.map +0 -1
  1011. package/dist/vendor/observe/client/index.d.ts +0 -9
  1012. package/dist/vendor/observe/client/index.d.ts.map +0 -1
  1013. package/dist/vendor/observe/client/index.js +0 -9
  1014. package/dist/vendor/observe/client/index.js.map +0 -1
  1015. package/dist/vendor/observe/client/observe-client.d.ts +0 -30
  1016. package/dist/vendor/observe/client/observe-client.d.ts.map +0 -1
  1017. package/dist/vendor/observe/client/observe-client.js +0 -22
  1018. package/dist/vendor/observe/client/observe-client.js.map +0 -1
  1019. package/dist/vendor/observe/client/prompts-manager.d.ts +0 -17
  1020. package/dist/vendor/observe/client/prompts-manager.d.ts.map +0 -1
  1021. package/dist/vendor/observe/client/prompts-manager.js +0 -38
  1022. package/dist/vendor/observe/client/prompts-manager.js.map +0 -1
  1023. package/dist/vendor/observe/client/scores-manager.d.ts +0 -10
  1024. package/dist/vendor/observe/client/scores-manager.d.ts.map +0 -1
  1025. package/dist/vendor/observe/client/scores-manager.js +0 -15
  1026. package/dist/vendor/observe/client/scores-manager.js.map +0 -1
  1027. package/dist/vendor/observe/client/sessions-manager.d.ts +0 -15
  1028. package/dist/vendor/observe/client/sessions-manager.d.ts.map +0 -1
  1029. package/dist/vendor/observe/client/sessions-manager.js +0 -24
  1030. package/dist/vendor/observe/client/sessions-manager.js.map +0 -1
  1031. package/dist/vendor/observe/client/traces-manager.d.ts +0 -23
  1032. package/dist/vendor/observe/client/traces-manager.d.ts.map +0 -1
  1033. package/dist/vendor/observe/client/traces-manager.js +0 -39
  1034. package/dist/vendor/observe/client/traces-manager.js.map +0 -1
  1035. package/dist/vendor/observe/console-exporter.d.ts +0 -11
  1036. package/dist/vendor/observe/console-exporter.d.ts.map +0 -1
  1037. package/dist/vendor/observe/console-exporter.js +0 -18
  1038. package/dist/vendor/observe/console-exporter.js.map +0 -1
  1039. package/dist/vendor/observe/context.d.ts +0 -4
  1040. package/dist/vendor/observe/context.d.ts.map +0 -1
  1041. package/dist/vendor/observe/context.js +0 -9
  1042. package/dist/vendor/observe/context.js.map +0 -1
  1043. package/dist/vendor/observe/entities/artifacts.d.ts +0 -46
  1044. package/dist/vendor/observe/entities/artifacts.d.ts.map +0 -1
  1045. package/dist/vendor/observe/entities/artifacts.js +0 -2
  1046. package/dist/vendor/observe/entities/artifacts.js.map +0 -1
  1047. package/dist/vendor/observe/entities/datasets.d.ts +0 -37
  1048. package/dist/vendor/observe/entities/datasets.d.ts.map +0 -1
  1049. package/dist/vendor/observe/entities/datasets.js +0 -2
  1050. package/dist/vendor/observe/entities/datasets.js.map +0 -1
  1051. package/dist/vendor/observe/entities/experiments.d.ts +0 -66
  1052. package/dist/vendor/observe/entities/experiments.d.ts.map +0 -1
  1053. package/dist/vendor/observe/entities/experiments.js +0 -2
  1054. package/dist/vendor/observe/entities/experiments.js.map +0 -1
  1055. package/dist/vendor/observe/entities/index.d.ts +0 -9
  1056. package/dist/vendor/observe/entities/index.d.ts.map +0 -1
  1057. package/dist/vendor/observe/entities/index.js +0 -9
  1058. package/dist/vendor/observe/entities/index.js.map +0 -1
  1059. package/dist/vendor/observe/entities/prompts.d.ts +0 -25
  1060. package/dist/vendor/observe/entities/prompts.d.ts.map +0 -1
  1061. package/dist/vendor/observe/entities/prompts.js +0 -2
  1062. package/dist/vendor/observe/entities/prompts.js.map +0 -1
  1063. package/dist/vendor/observe/entities/scores.d.ts +0 -28
  1064. package/dist/vendor/observe/entities/scores.d.ts.map +0 -1
  1065. package/dist/vendor/observe/entities/scores.js +0 -2
  1066. package/dist/vendor/observe/entities/scores.js.map +0 -1
  1067. package/dist/vendor/observe/entities/sessions.d.ts +0 -36
  1068. package/dist/vendor/observe/entities/sessions.d.ts.map +0 -1
  1069. package/dist/vendor/observe/entities/sessions.js +0 -2
  1070. package/dist/vendor/observe/entities/sessions.js.map +0 -1
  1071. package/dist/vendor/observe/entities/shared.d.ts +0 -26
  1072. package/dist/vendor/observe/entities/shared.d.ts.map +0 -1
  1073. package/dist/vendor/observe/entities/shared.js +0 -2
  1074. package/dist/vendor/observe/entities/shared.js.map +0 -1
  1075. package/dist/vendor/observe/entities/traces.d.ts +0 -59
  1076. package/dist/vendor/observe/entities/traces.d.ts.map +0 -1
  1077. package/dist/vendor/observe/entities/traces.js +0 -2
  1078. package/dist/vendor/observe/entities/traces.js.map +0 -1
  1079. package/dist/vendor/observe/exporter.d.ts +0 -2
  1080. package/dist/vendor/observe/exporter.d.ts.map +0 -1
  1081. package/dist/vendor/observe/exporter.js +0 -2
  1082. package/dist/vendor/observe/exporter.js.map +0 -1
  1083. package/dist/vendor/observe/file-exporter.d.ts +0 -16
  1084. package/dist/vendor/observe/file-exporter.d.ts.map +0 -1
  1085. package/dist/vendor/observe/file-exporter.js +0 -39
  1086. package/dist/vendor/observe/file-exporter.js.map +0 -1
  1087. package/dist/vendor/observe/global.d.ts +0 -6
  1088. package/dist/vendor/observe/global.d.ts.map +0 -1
  1089. package/dist/vendor/observe/global.js +0 -17
  1090. package/dist/vendor/observe/global.js.map +0 -1
  1091. package/dist/vendor/observe/index.d.ts +0 -24
  1092. package/dist/vendor/observe/index.d.ts.map +0 -1
  1093. package/dist/vendor/observe/index.js +0 -24
  1094. package/dist/vendor/observe/index.js.map +0 -1
  1095. package/dist/vendor/observe/noop.d.ts +0 -17
  1096. package/dist/vendor/observe/noop.d.ts.map +0 -1
  1097. package/dist/vendor/observe/noop.js +0 -80
  1098. package/dist/vendor/observe/noop.js.map +0 -1
  1099. package/dist/vendor/observe/privacy.d.ts +0 -18
  1100. package/dist/vendor/observe/privacy.d.ts.map +0 -1
  1101. package/dist/vendor/observe/privacy.js +0 -160
  1102. package/dist/vendor/observe/privacy.js.map +0 -1
  1103. package/dist/vendor/observe/query/simple-query-client.d.ts +0 -11
  1104. package/dist/vendor/observe/query/simple-query-client.d.ts.map +0 -1
  1105. package/dist/vendor/observe/query/simple-query-client.js +0 -31
  1106. package/dist/vendor/observe/query/simple-query-client.js.map +0 -1
  1107. package/dist/vendor/observe/replay/session-replay.d.ts +0 -20
  1108. package/dist/vendor/observe/replay/session-replay.d.ts.map +0 -1
  1109. package/dist/vendor/observe/replay/session-replay.js +0 -180
  1110. package/dist/vendor/observe/replay/session-replay.js.map +0 -1
  1111. package/dist/vendor/observe/runtime.d.ts +0 -27
  1112. package/dist/vendor/observe/runtime.d.ts.map +0 -1
  1113. package/dist/vendor/observe/runtime.js +0 -177
  1114. package/dist/vendor/observe/runtime.js.map +0 -1
  1115. package/dist/vendor/observe/server/dashboard-html.d.ts +0 -6
  1116. package/dist/vendor/observe/server/dashboard-html.d.ts.map +0 -1
  1117. package/dist/vendor/observe/server/dashboard-html.js +0 -305
  1118. package/dist/vendor/observe/server/dashboard-html.js.map +0 -1
  1119. package/dist/vendor/observe/server/http-observe-server.d.ts +0 -62
  1120. package/dist/vendor/observe/server/http-observe-server.d.ts.map +0 -1
  1121. package/dist/vendor/observe/server/http-observe-server.js +0 -418
  1122. package/dist/vendor/observe/server/http-observe-server.js.map +0 -1
  1123. package/dist/vendor/observe/server/in-memory-observe-server.d.ts +0 -20
  1124. package/dist/vendor/observe/server/in-memory-observe-server.d.ts.map +0 -1
  1125. package/dist/vendor/observe/server/in-memory-observe-server.js +0 -76
  1126. package/dist/vendor/observe/server/in-memory-observe-server.js.map +0 -1
  1127. package/dist/vendor/observe/span.d.ts +0 -45
  1128. package/dist/vendor/observe/span.d.ts.map +0 -1
  1129. package/dist/vendor/observe/span.js +0 -110
  1130. package/dist/vendor/observe/span.js.map +0 -1
  1131. package/dist/vendor/observe/store/contracts.d.ts +0 -59
  1132. package/dist/vendor/observe/store/contracts.d.ts.map +0 -1
  1133. package/dist/vendor/observe/store/contracts.js +0 -2
  1134. package/dist/vendor/observe/store/contracts.js.map +0 -1
  1135. package/dist/vendor/observe/store/file-control-plane-store.d.ts +0 -33
  1136. package/dist/vendor/observe/store/file-control-plane-store.d.ts.map +0 -1
  1137. package/dist/vendor/observe/store/file-control-plane-store.js +0 -146
  1138. package/dist/vendor/observe/store/file-control-plane-store.js.map +0 -1
  1139. package/dist/vendor/observe/store/in-memory-control-plane-store.d.ts +0 -84
  1140. package/dist/vendor/observe/store/in-memory-control-plane-store.d.ts.map +0 -1
  1141. package/dist/vendor/observe/store/in-memory-control-plane-store.js +0 -447
  1142. package/dist/vendor/observe/store/in-memory-control-plane-store.js.map +0 -1
  1143. package/dist/vendor/observe/store/index.d.ts +0 -4
  1144. package/dist/vendor/observe/store/index.d.ts.map +0 -1
  1145. package/dist/vendor/observe/store/index.js +0 -4
  1146. package/dist/vendor/observe/store/index.js.map +0 -1
  1147. package/dist/vendor/observe/types.d.ts +0 -246
  1148. package/dist/vendor/observe/types.d.ts.map +0 -1
  1149. package/dist/vendor/observe/types.js +0 -152
  1150. package/dist/vendor/observe/types.js.map +0 -1
  1151. package/dist/vendor/observe/worker/in-memory-observe-worker.d.ts +0 -25
  1152. package/dist/vendor/observe/worker/in-memory-observe-worker.d.ts.map +0 -1
  1153. package/dist/vendor/observe/worker/in-memory-observe-worker.js +0 -82
  1154. package/dist/vendor/observe/worker/in-memory-observe-worker.js.map +0 -1
  1155. package/guides/CLAUDE_CODEX_CLI_INTEGRATION_PLAN.md +0 -321
  1156. package/guides/INDUSAGI_MONO_MIT_REMOVAL_GUIDE.md +0 -2132
  1157. package/guides/INDUSVX_OBSERVE_FULL_INTEGRATION_REPORT.md +0 -543
  1158. package/guides/OBSERVE_DEEP_VALIDATION.md +0 -252
  1159. package/guides/OBSERVE_LOCAL_TESTING.md +0 -183
  1160. package/guides/OPTION3_PROVIDER_ADAPTER_RUNTIME_PLAN.md +0 -370
  1161. package/guides/SAME_TO_SAME_PARITY_REPORT.md +0 -312
  1162. package/tasks/patch-indusagi-react-host.mjs +0 -247
@@ -1,1535 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { spawnSync } from "node:child_process";
3
- import { readFileSync, unlinkSync, writeFileSync } from "node:fs";
4
- import { tmpdir } from "node:os";
5
- import { join } from "node:path";
6
- import { useEffect, useMemo, useReducer, useRef, useState } from "react";
7
- import { Box, Text, useApp } from "ink";
8
- import { matchesKey } from "indusagi/tui";
9
- import { LoginDialog, MessageList, ModelDialog, OAuthDialog, ScopedModelsDialog, SessionDialog, SettingsDialog, StatusLine, TaskPanel, ThemeDialog, TreeDialog, UserMessageDialog, } from "indusagi/react-ink";
10
- import { APP_NAME, VERSION, getAuthPath } from "../../../config.js";
11
- import { extensionForImageMimeType, readClipboardImage } from "../../../helpers/clipboard-image.js";
12
- import { openAuthUrl } from "../../../helpers/open-auth-url.js";
13
- import { KeybindingsManager } from "../../../runtime/keybindings.js";
14
- import { resolveModelScope } from "../../../runtime/model-resolver.js";
15
- import { getAvailableThemes, getAvailableThemesWithPaths, getEditorTheme, getThemeByName, setTheme, setThemeInstance, theme as extensionTheme, Theme, } from "../../theme/theme.js";
16
- import { flattenSessionTree, listAllSessions, listCurrentSessions, listUserMessages } from "../adapters/session-history.js";
17
- import { uiReducer } from "../state/reducer.js";
18
- import { createUiStore } from "../state/store.js";
19
- import { createThemeAdapter } from "../theme-adapter.js";
20
- import { deleteSessionAtPath, renameSessionAtPath } from "../utils/session-actions.js";
21
- import { Header } from "./Header.js";
22
- import { Footer } from "./Footer.js";
23
- import { PromptInput } from "./PromptInput.js";
24
- import { useAgentSession } from "../hooks/use-agent-session.js";
25
- import { useAppKeybindings } from "../hooks/use-app-keybindings.js";
26
- import { useFooterData } from "../hooks/use-footer-data.js";
27
- import { usePromptSubmit } from "../hooks/use-prompt-submit.js";
28
- import { createExtensionTuiBridge, createHostedExtensionComponent, createHostedExtensionComponentFromParts, ExtensionComponentHost, } from "./extensions/ExtensionComponentHost.js";
29
- import { ExtensionSelectDialog, ExtensionTextDialog } from "./extensions/ExtensionDialogs.js";
30
- function safeTextValue(value) {
31
- if (value === undefined || value === null) {
32
- return "";
33
- }
34
- if (typeof value === "string") {
35
- return value;
36
- }
37
- if (typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" || typeof value === "symbol" || typeof value === "function") {
38
- return String(value);
39
- }
40
- if (typeof value === "object" && Object.prototype.hasOwnProperty.call(value, "$$typeof")) {
41
- return "[UI element]";
42
- }
43
- try {
44
- const serialized = JSON.stringify(value);
45
- if (typeof serialized === "string") {
46
- const trimmed = serialized.trim();
47
- if (trimmed.length > 0) {
48
- return trimmed;
49
- }
50
- }
51
- }
52
- catch {
53
- return String(value);
54
- }
55
- return String(value);
56
- }
57
- function safeStatusText(value) {
58
- if (value === undefined) {
59
- return undefined;
60
- }
61
- return safeTextValue(value);
62
- }
63
- function truncateWidgetLines(lines, maxLines = 10) {
64
- const normalized = lines.map((line) => safeWidgetLine(line));
65
- if (normalized.length <= maxLines) {
66
- return normalized;
67
- }
68
- return [...normalized.slice(0, maxLines), `... ${normalized.length - maxLines} more line(s)`];
69
- }
70
- function safeWidgetLine(line) {
71
- if (line === undefined) {
72
- return "";
73
- }
74
- if (line === null) {
75
- return "null";
76
- }
77
- if (typeof line === "string") {
78
- return line;
79
- }
80
- if (typeof line === "number" || typeof line === "boolean" || typeof line === "bigint" || typeof line === "symbol" || typeof line === "function") {
81
- return String(line);
82
- }
83
- if (typeof line === "object" && Object.prototype.hasOwnProperty.call(line, "$$typeof")) {
84
- return "[UI element]";
85
- }
86
- try {
87
- const serialized = JSON.stringify(line);
88
- if (typeof serialized === "string") {
89
- const trimmed = serialized.trim();
90
- if (trimmed.length > 0) {
91
- return trimmed;
92
- }
93
- }
94
- }
95
- catch {
96
- return String(line);
97
- }
98
- return String(line);
99
- }
100
- function renderTextLines(lines, prefix) {
101
- if (lines.length === 0) {
102
- return null;
103
- }
104
- return (_jsx(Box, { flexDirection: "column", children: lines.map((line, index) => (_jsx(Text, { children: line.length > 0 ? line : " " }, `${prefix}:${index}`))) }));
105
- }
106
- function writeTerminalTitle(title) {
107
- if (!process.stdout.isTTY) {
108
- return;
109
- }
110
- process.stdout.write(`\u001B]0;${title}\u0007`);
111
- }
112
- function buildSettingsItems(session, state, onRefresh, setError) {
113
- const booleanValues = ["enabled", "disabled"];
114
- const visibilityValues = ["visible", "hidden"];
115
- return [
116
- {
117
- id: "autocompact",
118
- label: "Auto-compact",
119
- description: "Automatically compact conversation context when it grows too large.",
120
- value: session.autoCompactionEnabled ? "enabled" : "disabled",
121
- values: booleanValues,
122
- onChange: (value) => {
123
- session.setAutoCompactionEnabled(value === "enabled");
124
- onRefresh();
125
- },
126
- },
127
- {
128
- id: "images",
129
- label: "Show images",
130
- description: "Render inline image placeholders and image content in the UI.",
131
- value: state.showImages ? "enabled" : "disabled",
132
- values: booleanValues,
133
- onChange: (value) => {
134
- session.settingsManager.setShowImages(value === "enabled");
135
- onRefresh();
136
- },
137
- },
138
- {
139
- id: "image-resize",
140
- label: "Auto-resize images",
141
- description: "Resize large images before sending them to providers.",
142
- value: session.settingsManager.getImageAutoResize() ? "enabled" : "disabled",
143
- values: booleanValues,
144
- onChange: (value) => {
145
- session.settingsManager.setImageAutoResize(value === "enabled");
146
- onRefresh();
147
- },
148
- },
149
- {
150
- id: "block-images",
151
- label: "Block images",
152
- description: "Prevent images from being sent to model providers.",
153
- value: session.settingsManager.getBlockImages() ? "enabled" : "disabled",
154
- values: booleanValues,
155
- onChange: (value) => {
156
- session.settingsManager.setBlockImages(value === "enabled");
157
- onRefresh();
158
- },
159
- },
160
- {
161
- id: "skills",
162
- label: "Skill commands",
163
- description: "Register skills as /skill:name slash commands.",
164
- value: session.settingsManager.getEnableSkillCommands() ? "enabled" : "disabled",
165
- values: booleanValues,
166
- onChange: (value) => {
167
- session.settingsManager.setEnableSkillCommands(value === "enabled");
168
- onRefresh();
169
- },
170
- },
171
- {
172
- id: "steering-mode",
173
- label: "Steering mode",
174
- description: "Choose whether queued steering messages are delivered one-by-one or all at once.",
175
- value: session.steeringMode,
176
- values: ["one-at-a-time", "all"],
177
- onChange: (value) => {
178
- session.setSteeringMode(value);
179
- onRefresh();
180
- },
181
- },
182
- {
183
- id: "follow-up-mode",
184
- label: "Follow-up mode",
185
- description: "Choose whether queued follow-up messages are delivered one-by-one or all at once.",
186
- value: session.followUpMode,
187
- values: ["one-at-a-time", "all"],
188
- onChange: (value) => {
189
- session.setFollowUpMode(value);
190
- onRefresh();
191
- },
192
- },
193
- {
194
- id: "thinking-level",
195
- label: "Thinking level",
196
- description: "Control reasoning depth for models that support thinking.",
197
- value: session.thinkingLevel,
198
- values: session.getAvailableThinkingLevels(),
199
- onChange: (value) => {
200
- session.setThinkingLevel(value);
201
- onRefresh();
202
- },
203
- },
204
- {
205
- id: "theme",
206
- label: "Theme",
207
- description: "Choose the color theme for the interface.",
208
- value: session.settingsManager.getTheme() ?? state.themeName,
209
- values: getAvailableThemes(),
210
- onChange: (value) => {
211
- const result = setTheme(value, true);
212
- if (!result.success) {
213
- setError(result.error ?? `Unable to load theme "${value}".`);
214
- return;
215
- }
216
- session.settingsManager.setTheme(value);
217
- onRefresh();
218
- },
219
- },
220
- {
221
- id: "thinking-blocks",
222
- label: "Thinking blocks",
223
- description: "Show or hide thinking blocks inside assistant responses.",
224
- value: state.showThinking ? "visible" : "hidden",
225
- values: visibilityValues,
226
- onChange: (value) => {
227
- session.settingsManager.setHideThinkingBlock(value === "hidden");
228
- onRefresh();
229
- },
230
- },
231
- {
232
- id: "collapse-changelog",
233
- label: "Collapse changelog",
234
- description: "Prefer a condensed changelog after updates.",
235
- value: session.settingsManager.getCollapseChangelog() ? "enabled" : "disabled",
236
- values: booleanValues,
237
- onChange: (value) => {
238
- session.settingsManager.setCollapseChangelog(value === "enabled");
239
- onRefresh();
240
- },
241
- },
242
- {
243
- id: "quiet-startup",
244
- label: "Quiet startup",
245
- description: "Reduce startup noise and status output when the app launches.",
246
- value: session.settingsManager.getQuietStartup() ? "enabled" : "disabled",
247
- values: booleanValues,
248
- onChange: (value) => {
249
- session.settingsManager.setQuietStartup(value === "enabled");
250
- onRefresh();
251
- },
252
- },
253
- {
254
- id: "double-escape",
255
- label: "Double-escape action",
256
- description: "Choose what happens when Escape is pressed twice with an empty prompt.",
257
- value: session.settingsManager.getDoubleEscapeAction(),
258
- values: ["tree", "fork"],
259
- onChange: (value) => {
260
- session.settingsManager.setDoubleEscapeAction(value);
261
- onRefresh();
262
- },
263
- },
264
- {
265
- id: "cursor",
266
- label: "Hardware cursor",
267
- description: "Show the terminal cursor while keeping IME-friendly positioning.",
268
- value: session.settingsManager.getShowHardwareCursor() ? "enabled" : "disabled",
269
- values: booleanValues,
270
- onChange: (value) => {
271
- session.settingsManager.setShowHardwareCursor(value === "enabled");
272
- onRefresh();
273
- },
274
- },
275
- {
276
- id: "editor-padding",
277
- label: "Editor padding",
278
- description: "Horizontal padding for the prompt editor.",
279
- value: String(session.settingsManager.getEditorPaddingX()),
280
- values: ["0", "1", "2", "3"],
281
- onChange: (value) => {
282
- session.settingsManager.setEditorPaddingX(Number.parseInt(value, 10));
283
- onRefresh();
284
- },
285
- },
286
- ];
287
- }
288
- export function AppShell({ context, footerDataProvider, initialImages, initialMessage, initialMessages, startupChangelog, startupDiagnostics, startupNotices, verbose, }) {
289
- const { exit } = useApp();
290
- const keybindings = useMemo(() => KeybindingsManager.create(), []);
291
- const [state, dispatch] = useReducer(uiReducer, context.session, createUiStore);
292
- const overlayRef = useRef(state.overlay);
293
- const oauthResolverRef = useRef(null);
294
- const startupRanRef = useRef(false);
295
- const displayBlockIdRef = useRef(0);
296
- const [terminalRows, setTerminalRows] = useState(process.stdout.rows ?? 40);
297
- const [terminalColumns, setTerminalColumns] = useState(process.stdout.columns ?? 80);
298
- const [displayBlocks, setDisplayBlocks] = useState([]);
299
- const [extensionHeader, setExtensionHeader] = useState(null);
300
- const [extensionFooter, setExtensionFooter] = useState(null);
301
- const [extensionWidgetsAbove, setExtensionWidgetsAbove] = useState(() => new Map());
302
- const [extensionWidgetsBelow, setExtensionWidgetsBelow] = useState(() => new Map());
303
- const [extensionOverlayState, setExtensionOverlayState] = useState({ kind: "none" });
304
- const [extensionEditor, setExtensionEditor] = useState(null);
305
- const [extensionWorkingMessage, setExtensionWorkingMessage] = useState();
306
- const [toolOutputExpanded, setToolOutputExpanded] = useState(false);
307
- const [compactionQueuedMessages, setCompactionQueuedMessages] = useState([]);
308
- const [currentSessions, setCurrentSessions] = useState([]);
309
- const [layoutEpoch, setLayoutEpoch] = useState(0);
310
- const [startupDismissed, setStartupDismissed] = useState(context.session.messages.length > 0);
311
- const extensionOverlayRef = useRef({ kind: "none" });
312
- const extensionUiContextRef = useRef(undefined);
313
- const inputRef = useRef(state.input);
314
- const customTerminalTitleRef = useRef(null);
315
- const setStatus = (text, kind = "info") => {
316
- dispatch({ type: "set-status", status: { text: safeTextValue(text), kind } });
317
- };
318
- const setError = (text) => {
319
- dispatch({ type: "set-status", status: { text: safeTextValue(text), kind: "error" } });
320
- };
321
- const clearStatus = () => {
322
- dispatch({ type: "set-status", status: undefined });
323
- };
324
- const setOverlay = (overlay) => {
325
- dispatch({ type: "set-overlay", overlay });
326
- };
327
- const closeOverlay = () => {
328
- oauthResolverRef.current = null;
329
- dispatch({ type: "close-overlay" });
330
- };
331
- const setInput = (value, cursorOffset) => {
332
- dispatch({ type: "set-input", value, cursorOffset });
333
- };
334
- inputRef.current = state.input;
335
- const appendDisplayBlock = (block) => {
336
- const timestamp = Date.now();
337
- displayBlockIdRef.current += 1;
338
- setDisplayBlocks((current) => [
339
- ...current,
340
- {
341
- ...block,
342
- id: `${block.kind}:${timestamp}:${displayBlockIdRef.current}`,
343
- timestamp,
344
- },
345
- ]);
346
- };
347
- const handleExit = () => {
348
- context.requestExit();
349
- exit();
350
- };
351
- const isExtensionCommand = (text) => {
352
- if (!text.startsWith("/")) {
353
- return false;
354
- }
355
- const extensionRunner = context.session.extensionRunner;
356
- if (!extensionRunner) {
357
- return false;
358
- }
359
- const spaceIndex = text.indexOf(" ");
360
- const commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);
361
- return Boolean(extensionRunner.getCommand(commandName));
362
- };
363
- const flushCompactionQueueRef = useRef(null);
364
- const { snapshot, toolExecutions, refresh } = useAgentSession(context.session, (status) => {
365
- dispatch({ type: "set-status", status });
366
- }, (event) => {
367
- if (event.type === "session_compact") {
368
- void flushCompactionQueueRef.current?.();
369
- }
370
- if (event.type === "auto_compaction_end" && !event.aborted && event.result) {
371
- void flushCompactionQueueRef.current?.();
372
- }
373
- });
374
- useEffect(() => {
375
- dispatch({ type: "set-tool-executions", toolExecutions });
376
- }, [toolExecutions]);
377
- const refreshSessionView = () => {
378
- dispatch({ type: "set-tool-executions", toolExecutions: {} });
379
- refresh();
380
- };
381
- const resetSessionView = () => {
382
- setDisplayBlocks([]);
383
- refreshSessionView();
384
- };
385
- const triggerFooterRefresh = () => {
386
- dispatch({ type: "footer-tick" });
387
- };
388
- const pendingMessages = [
389
- ...context.session.getSteeringMessages().map((text, index) => ({
390
- id: `session-steer-${index}-${text}`,
391
- mode: "steer",
392
- text,
393
- source: "session",
394
- })),
395
- ...context.session.getFollowUpMessages().map((text, index) => ({
396
- id: `session-follow-${index}-${text}`,
397
- mode: "followUp",
398
- text,
399
- source: "session",
400
- })),
401
- ...compactionQueuedMessages.map((message) => ({
402
- id: message.id,
403
- mode: message.mode,
404
- text: message.text,
405
- source: "compaction",
406
- })),
407
- ];
408
- const restoreQueuedMessagesToPrompt = (options) => {
409
- const { steering, followUp } = context.session.clearQueue();
410
- const queuedMessages = [
411
- ...steering,
412
- ...followUp,
413
- ...compactionQueuedMessages.map((message) => message.text),
414
- ];
415
- setCompactionQueuedMessages([]);
416
- if (queuedMessages.length === 0) {
417
- if (options?.abort) {
418
- void context.session.abort();
419
- }
420
- return 0;
421
- }
422
- const combinedText = [...queuedMessages, options?.currentText ?? state.input]
423
- .filter((value) => value.trim().length > 0)
424
- .join("\n\n");
425
- setInput(combinedText);
426
- if (options?.abort) {
427
- void context.session.abort();
428
- }
429
- return queuedMessages.length;
430
- };
431
- const queueCompactionMessage = (text, mode) => {
432
- setCompactionQueuedMessages((current) => [
433
- ...current,
434
- {
435
- id: `${mode}:${Date.now()}:${current.length}`,
436
- text,
437
- mode,
438
- },
439
- ]);
440
- };
441
- const flushCompactionQueue = async () => {
442
- if (compactionQueuedMessages.length === 0) {
443
- return;
444
- }
445
- const queuedMessages = [...compactionQueuedMessages];
446
- setCompactionQueuedMessages([]);
447
- const restoreQueue = (error) => {
448
- setCompactionQueuedMessages(queuedMessages);
449
- setError(`Failed to send queued message${queuedMessages.length === 1 ? "" : "s"}: ${error instanceof Error ? error.message : String(error)}`);
450
- };
451
- try {
452
- const firstPromptIndex = queuedMessages.findIndex((message) => !isExtensionCommand(message.text));
453
- if (firstPromptIndex === -1) {
454
- for (const message of queuedMessages) {
455
- await context.session.prompt(message.text);
456
- }
457
- return;
458
- }
459
- for (const message of queuedMessages.slice(0, firstPromptIndex)) {
460
- await context.session.prompt(message.text);
461
- }
462
- const firstPrompt = queuedMessages[firstPromptIndex];
463
- const rest = queuedMessages.slice(firstPromptIndex + 1);
464
- await context.session.prompt(firstPrompt.text);
465
- for (const message of rest) {
466
- if (isExtensionCommand(message.text)) {
467
- await context.session.prompt(message.text);
468
- continue;
469
- }
470
- await context.session.prompt(message.text, {
471
- streamingBehavior: message.mode === "followUp" ? "followUp" : "steer",
472
- });
473
- }
474
- setStatus(`Flushed ${queuedMessages.length} queued message${queuedMessages.length === 1 ? "" : "s"} after compaction.`, "success");
475
- }
476
- catch (error) {
477
- restoreQueue(error);
478
- }
479
- };
480
- flushCompactionQueueRef.current = flushCompactionQueue;
481
- const cycleModel = async (direction) => {
482
- try {
483
- const result = await context.session.cycleModel(direction);
484
- if (!result) {
485
- setStatus(context.session.scopedModels.length > 0 ? "Only one model in scope." : "Only one model available.", "warning");
486
- return;
487
- }
488
- refresh();
489
- setStatus(`Switched to ${result.model.provider}/${result.model.id}.`, "success");
490
- }
491
- catch (error) {
492
- setError(error instanceof Error ? error.message : String(error));
493
- }
494
- };
495
- const toggleThinkingVisibility = () => {
496
- const nextShowThinking = !state.showThinking;
497
- context.session.settingsManager.setHideThinkingBlock(!nextShowThinking);
498
- dispatch({ type: "set-show-thinking", value: nextShowThinking });
499
- setStatus(`Thinking blocks ${nextShowThinking ? "visible" : "hidden"}.`, "success");
500
- };
501
- const toggleToolOutputExpansion = () => {
502
- setToolOutputExpanded((current) => {
503
- const next = !current;
504
- setStatus(`Tool outputs ${next ? "expanded" : "collapsed"}.`, "success");
505
- return next;
506
- });
507
- };
508
- const openExternalEditor = async () => {
509
- const editorCommand = process.env.VISUAL || process.env.EDITOR;
510
- if (!editorCommand) {
511
- setStatus("Set $VISUAL or $EDITOR to use the external editor shortcut.", "warning");
512
- return;
513
- }
514
- const tempFile = join(tmpdir(), `indusagi-editor-${Date.now()}.md`);
515
- const currentText = state.input;
516
- try {
517
- writeFileSync(tempFile, currentText, "utf-8");
518
- process.stdout.write("\u001B[?25h");
519
- const [editor, ...editorArgs] = editorCommand.split(" ").filter(Boolean);
520
- const result = spawnSync(editor, [...editorArgs, tempFile], {
521
- stdio: "inherit",
522
- });
523
- if (result.status === 0) {
524
- const nextText = readFileSync(tempFile, "utf-8").replace(/\n$/, "");
525
- setInput(nextText, nextText.length);
526
- setStatus("Updated prompt from external editor.", "success");
527
- }
528
- }
529
- catch (error) {
530
- setError(`External editor failed: ${error instanceof Error ? error.message : String(error)}`);
531
- }
532
- finally {
533
- try {
534
- unlinkSync(tempFile);
535
- }
536
- catch { }
537
- process.stdout.write("\u001B[?25l");
538
- }
539
- };
540
- const dequeueQueuedMessages = () => {
541
- const restored = restoreQueuedMessagesToPrompt();
542
- if (restored === 0) {
543
- setStatus("No queued messages to restore.", "warning");
544
- return;
545
- }
546
- setStatus(`Restored ${restored} queued message${restored === 1 ? "" : "s"} to the prompt.`, "success");
547
- };
548
- const pasteClipboardImage = async () => {
549
- try {
550
- const image = await readClipboardImage();
551
- if (!image) {
552
- setStatus("No image was found in the clipboard.", "warning");
553
- return;
554
- }
555
- const extension = extensionForImageMimeType(image.mimeType) ?? "png";
556
- const filePath = join(tmpdir(), `indusagi-clipboard-${crypto.randomUUID()}.${extension}`);
557
- writeFileSync(filePath, Buffer.from(image.bytes));
558
- const nextValue = state.input.length > 0 && !/\s$/.test(state.input)
559
- ? `${state.input} ${filePath}`
560
- : `${state.input}${filePath}`;
561
- setInput(nextValue, nextValue.length);
562
- setStatus("Inserted clipboard image path into the prompt.", "success");
563
- }
564
- catch (error) {
565
- setStatus(`Unable to paste clipboard image: ${error instanceof Error ? error.message : String(error)}`, "warning");
566
- }
567
- };
568
- const suspendTerminal = () => {
569
- if (process.platform === "win32") {
570
- setStatus("Suspend is not available on Windows terminals.", "warning");
571
- return;
572
- }
573
- process.once("SIGCONT", () => {
574
- refresh();
575
- triggerFooterRefresh();
576
- setStatus("Resumed terminal session.", "success");
577
- });
578
- process.stdout.write("\u001B[?25h");
579
- process.kill(0, "SIGTSTP");
580
- };
581
- const restoreDefaultTerminalTitle = () => {
582
- customTerminalTitleRef.current = null;
583
- const sessionName = context.session.sessionManager.getSessionName();
584
- writeTerminalTitle(sessionName ? `${APP_NAME} ${VERSION} - ${sessionName}` : `${APP_NAME} ${VERSION}`);
585
- };
586
- const cancelExtensionOverlay = () => {
587
- const current = extensionOverlayRef.current;
588
- switch (current.kind) {
589
- case "select":
590
- current.resolve(undefined);
591
- break;
592
- case "confirm":
593
- current.resolve(false);
594
- break;
595
- case "input":
596
- case "editor":
597
- current.resolve(undefined);
598
- break;
599
- case "custom":
600
- current.cancel();
601
- break;
602
- case "none":
603
- break;
604
- }
605
- setExtensionOverlayState({ kind: "none" });
606
- };
607
- const resetExtensionUi = () => {
608
- cancelExtensionOverlay();
609
- setExtensionEditor(null);
610
- setExtensionHeader(null);
611
- setExtensionFooter(null);
612
- setExtensionWidgetsAbove(new Map());
613
- setExtensionWidgetsBelow(new Map());
614
- setExtensionWorkingMessage(undefined);
615
- footerDataProvider.clearExtensionStatuses();
616
- triggerFooterRefresh();
617
- restoreDefaultTerminalTitle();
618
- };
619
- useEffect(() => {
620
- overlayRef.current = state.overlay;
621
- }, [state.overlay]);
622
- useEffect(() => {
623
- extensionOverlayRef.current = extensionOverlayState;
624
- }, [extensionOverlayState]);
625
- useEffect(() => {
626
- const onResize = () => {
627
- setTerminalRows(process.stdout.rows ?? 40);
628
- setTerminalColumns(process.stdout.columns ?? 80);
629
- };
630
- process.stdout.on("resize", onResize);
631
- return () => {
632
- process.stdout.off("resize", onResize);
633
- };
634
- }, []);
635
- const footerData = useFooterData(footerDataProvider, state.footerTick);
636
- const theme = createThemeAdapter(state.themeName);
637
- const showStartupDiagnostics = !startupDismissed;
638
- const previousStartupDiagnosticsRef = useRef(showStartupDiagnostics);
639
- function handleOAuthOverlayChange(partial) {
640
- const current = overlayRef.current;
641
- if (current.kind !== "oauth")
642
- return;
643
- const next = { ...current, ...partial };
644
- overlayRef.current = next;
645
- setOverlay(next);
646
- }
647
- async function startOAuthLogin(provider) {
648
- const initial = {
649
- kind: "oauth",
650
- providerId: provider.id,
651
- providerName: provider.label,
652
- mode: "oauth",
653
- inputLabel: "Authorization code",
654
- inputValue: "",
655
- accountId: "default",
656
- accountName: "Default",
657
- progress: `Credentials will be saved to ${getAuthPath()}.`,
658
- };
659
- overlayRef.current = initial;
660
- setOverlay(initial);
661
- try {
662
- await context.session.modelRegistry.authStorage.login(provider.id, {
663
- onAuth: (authInfo) => {
664
- const opened = openAuthUrl(authInfo.url);
665
- handleOAuthOverlayChange({
666
- authInfo,
667
- progress: opened
668
- ? "Opened the login URL in Chrome. Complete login there, then paste the code if prompted."
669
- : "Open the URL in your browser, then paste the code.",
670
- });
671
- },
672
- onPrompt: (prompt) => new Promise((resolve) => {
673
- oauthResolverRef.current = resolve;
674
- handleOAuthOverlayChange({ prompt, inputLabel: prompt.message, inputValue: "" });
675
- }),
676
- onManualCodeInput: () => new Promise((resolve) => {
677
- oauthResolverRef.current = resolve;
678
- handleOAuthOverlayChange({
679
- prompt: { message: "Paste the authorization code:" },
680
- inputLabel: "Authorization code",
681
- inputValue: "",
682
- });
683
- }),
684
- onProgress: (message) => {
685
- handleOAuthOverlayChange({ progress: message });
686
- },
687
- }, "default", "Default");
688
- context.session.modelRegistry.refresh();
689
- closeOverlay();
690
- refresh();
691
- setStatus(`Logged in to ${provider.id}.`, "success");
692
- }
693
- catch (error) {
694
- closeOverlay();
695
- setError(error instanceof Error ? error.message : String(error));
696
- }
697
- }
698
- const { submitPrompt } = usePromptSubmit({
699
- session: context.session,
700
- dispatch,
701
- routerContext: {
702
- setStatus,
703
- setError,
704
- clearStatus,
705
- setOverlay,
706
- closeOverlay,
707
- setInput,
708
- appendDisplayBlock,
709
- startOAuthLogin,
710
- resetSessionView,
711
- refreshSessionView,
712
- onBeforeReload: resetExtensionUi,
713
- onExit: handleExit,
714
- },
715
- onAfterSubmit: refresh,
716
- onQueueDuringCompaction: queueCompactionMessage,
717
- onShouldRunDuringCompaction: isExtensionCommand,
718
- });
719
- const submitPromptRef = useRef(submitPrompt);
720
- const submitPromptWithStartupDismiss = async (input, mode = "followUp") => {
721
- if (!startupDismissed && input.trim().length > 0) {
722
- setStartupDismissed(true);
723
- }
724
- await submitPrompt(input, mode);
725
- };
726
- submitPromptRef.current = submitPromptWithStartupDismiss;
727
- const handleExtensionShortcutKeyData = async (data) => {
728
- const extensionRunner = context.session.extensionRunner;
729
- if (!extensionRunner) {
730
- return false;
731
- }
732
- const shortcuts = extensionRunner.getShortcuts(keybindings.getEffectiveConfig());
733
- if (shortcuts.size === 0) {
734
- return false;
735
- }
736
- const shortcutContext = {
737
- ui: extensionUiContextRef.current ?? {
738
- select: async () => undefined,
739
- confirm: async () => false,
740
- input: async () => undefined,
741
- notify: () => { },
742
- setStatus: () => { },
743
- setWorkingMessage: () => { },
744
- setWidget: () => { },
745
- setFooter: () => { },
746
- setHeader: () => { },
747
- setTitle: () => { },
748
- custom: async () => undefined,
749
- setEditorText: () => { },
750
- getEditorText: () => inputRef.current,
751
- editor: async () => undefined,
752
- setEditorComponent: () => { },
753
- get theme() {
754
- return extensionTheme;
755
- },
756
- getAllThemes: () => [],
757
- getTheme: () => undefined,
758
- setTheme: () => ({ success: false, error: "Extension UI is not ready yet." }),
759
- },
760
- hasUI: true,
761
- cwd: process.cwd(),
762
- sessionManager: context.session.sessionManager,
763
- modelRegistry: context.session.modelRegistry,
764
- model: context.session.model,
765
- isIdle: () => !context.session.isStreaming,
766
- abort: () => {
767
- void context.session.abort();
768
- },
769
- hasPendingMessages: () => context.session.pendingMessageCount > 0,
770
- shutdown: handleExit,
771
- getContextUsage: () => context.session.getContextUsage(),
772
- compact: (options) => {
773
- void (async () => {
774
- try {
775
- const result = await context.session.compact(options?.customInstructions);
776
- refreshSessionView();
777
- options?.onComplete?.(result);
778
- }
779
- catch (error) {
780
- const resolvedError = error instanceof Error ? error : new Error(String(error));
781
- options?.onError?.(resolvedError);
782
- }
783
- })();
784
- },
785
- };
786
- for (const [shortcutKey, shortcut] of shortcuts) {
787
- if (!matchesKey(data, shortcutKey)) {
788
- continue;
789
- }
790
- try {
791
- await Promise.resolve(shortcut.handler(shortcutContext));
792
- }
793
- catch (error) {
794
- setError(`Shortcut handler error: ${error instanceof Error ? error.message : String(error)}`);
795
- }
796
- return true;
797
- }
798
- return false;
799
- };
800
- useEffect(() => {
801
- if (customTerminalTitleRef.current) {
802
- return;
803
- }
804
- restoreDefaultTerminalTitle();
805
- }, [snapshot.sessionName]);
806
- useEffect(() => {
807
- if (extensionOverlayState.kind === "none") {
808
- return;
809
- }
810
- const timeoutAt = extensionOverlayState.kind === "select" ||
811
- extensionOverlayState.kind === "confirm" ||
812
- extensionOverlayState.kind === "input" ||
813
- extensionOverlayState.kind === "editor"
814
- ? extensionOverlayState.timeoutAt
815
- : undefined;
816
- if (!timeoutAt) {
817
- return;
818
- }
819
- const remaining = timeoutAt - Date.now();
820
- if (remaining <= 0) {
821
- cancelExtensionOverlay();
822
- return;
823
- }
824
- const timer = setTimeout(() => {
825
- cancelExtensionOverlay();
826
- }, remaining);
827
- return () => {
828
- clearTimeout(timer);
829
- };
830
- }, [extensionOverlayState]);
831
- useEffect(() => {
832
- if (!extensionEditor) {
833
- return;
834
- }
835
- if (extensionEditor.component.getText() !== state.input) {
836
- extensionEditor.component.setText(state.input);
837
- extensionEditor.bridge.requestRender?.();
838
- }
839
- }, [extensionEditor, state.input]);
840
- useEffect(() => {
841
- const buildExtensionUiContext = () => ({
842
- select: (title, options, opts) => new Promise((resolve) => {
843
- if (opts?.signal?.aborted) {
844
- resolve(undefined);
845
- return;
846
- }
847
- const finalize = (() => {
848
- let settled = false;
849
- return (value) => {
850
- if (settled) {
851
- return;
852
- }
853
- settled = true;
854
- opts?.signal?.removeEventListener("abort", onAbort);
855
- setExtensionOverlayState({ kind: "none" });
856
- resolve(value);
857
- };
858
- })();
859
- const onAbort = () => {
860
- finalize(undefined);
861
- };
862
- cancelExtensionOverlay();
863
- opts?.signal?.addEventListener("abort", onAbort, { once: true });
864
- setExtensionOverlayState({
865
- kind: "select",
866
- title,
867
- options,
868
- timeoutAt: opts?.timeout ? Date.now() + opts.timeout : undefined,
869
- resolve: finalize,
870
- });
871
- }),
872
- confirm: (title, message, opts) => new Promise((resolve) => {
873
- if (opts?.signal?.aborted) {
874
- resolve(false);
875
- return;
876
- }
877
- const finalize = (() => {
878
- let settled = false;
879
- return (value) => {
880
- if (settled) {
881
- return;
882
- }
883
- settled = true;
884
- opts?.signal?.removeEventListener("abort", onAbort);
885
- setExtensionOverlayState({ kind: "none" });
886
- resolve(value);
887
- };
888
- })();
889
- const onAbort = () => {
890
- finalize(false);
891
- };
892
- cancelExtensionOverlay();
893
- opts?.signal?.addEventListener("abort", onAbort, { once: true });
894
- setExtensionOverlayState({
895
- kind: "confirm",
896
- title,
897
- message,
898
- timeoutAt: opts?.timeout ? Date.now() + opts.timeout : undefined,
899
- resolve: finalize,
900
- });
901
- }),
902
- input: (title, placeholder, opts) => new Promise((resolve) => {
903
- if (opts?.signal?.aborted) {
904
- resolve(undefined);
905
- return;
906
- }
907
- const finalize = (() => {
908
- let settled = false;
909
- return (value) => {
910
- if (settled) {
911
- return;
912
- }
913
- settled = true;
914
- opts?.signal?.removeEventListener("abort", onAbort);
915
- setExtensionOverlayState({ kind: "none" });
916
- resolve(value);
917
- };
918
- })();
919
- const onAbort = () => {
920
- finalize(undefined);
921
- };
922
- cancelExtensionOverlay();
923
- opts?.signal?.addEventListener("abort", onAbort, { once: true });
924
- setExtensionOverlayState({
925
- kind: "input",
926
- title,
927
- placeholder,
928
- timeoutAt: opts?.timeout ? Date.now() + opts.timeout : undefined,
929
- resolve: finalize,
930
- });
931
- }),
932
- notify: (message, type) => {
933
- const normalizedMessage = safeTextValue(message);
934
- if (type === "error") {
935
- setError(normalizedMessage);
936
- return;
937
- }
938
- if (type === "warning") {
939
- setStatus(normalizedMessage, "warning");
940
- return;
941
- }
942
- setStatus(normalizedMessage, "info");
943
- },
944
- setStatus: (key, text) => {
945
- footerDataProvider.setExtensionStatus(key, safeStatusText(text));
946
- triggerFooterRefresh();
947
- },
948
- setWorkingMessage: (message) => {
949
- setExtensionWorkingMessage(message ? safeTextValue(message) : message);
950
- },
951
- setWidget: (key, content, options) => {
952
- const placement = options?.placement ?? "aboveEditor";
953
- const updateMap = placement === "belowEditor" ? setExtensionWidgetsBelow : setExtensionWidgetsAbove;
954
- const clearOtherMap = placement === "belowEditor" ? setExtensionWidgetsAbove : setExtensionWidgetsBelow;
955
- clearOtherMap((current) => {
956
- if (!current.has(key)) {
957
- return current;
958
- }
959
- const next = new Map(current);
960
- next.delete(key);
961
- return next;
962
- });
963
- updateMap((current) => {
964
- const next = new Map(current);
965
- if (content === undefined) {
966
- next.delete(key);
967
- return next;
968
- }
969
- if (Array.isArray(content)) {
970
- next.set(key, { kind: "lines", lines: truncateWidgetLines(content) });
971
- return next;
972
- }
973
- try {
974
- next.set(key, {
975
- kind: "component",
976
- hosted: createHostedExtensionComponent((tui) => content(tui, extensionTheme)),
977
- });
978
- }
979
- catch (error) {
980
- setError(`Failed to render extension widget "${key}": ${error instanceof Error ? error.message : String(error)}`);
981
- }
982
- return next;
983
- });
984
- },
985
- setFooter: (factory) => {
986
- if (!factory) {
987
- setExtensionFooter(null);
988
- return;
989
- }
990
- try {
991
- setExtensionFooter(createHostedExtensionComponent((tui) => factory(tui, extensionTheme, footerDataProvider)));
992
- }
993
- catch (error) {
994
- setError(`Failed to render extension footer: ${error instanceof Error ? error.message : String(error)}`);
995
- }
996
- },
997
- setHeader: (factory) => {
998
- if (!factory) {
999
- setExtensionHeader(null);
1000
- return;
1001
- }
1002
- try {
1003
- setExtensionHeader(createHostedExtensionComponent((tui) => factory(tui, extensionTheme)));
1004
- }
1005
- catch (error) {
1006
- setError(`Failed to render extension header: ${error instanceof Error ? error.message : String(error)}`);
1007
- }
1008
- },
1009
- setTitle: (title) => {
1010
- customTerminalTitleRef.current = title;
1011
- writeTerminalTitle(title);
1012
- },
1013
- custom: async (factory, options) => new Promise((resolve, reject) => {
1014
- let overlayHandleHidden = false;
1015
- const finish = (() => {
1016
- let settled = false;
1017
- return (value) => {
1018
- if (settled) {
1019
- return;
1020
- }
1021
- settled = true;
1022
- setExtensionOverlayState({ kind: "none" });
1023
- resolve(value);
1024
- };
1025
- })();
1026
- const cancel = () => {
1027
- setExtensionOverlayState({ kind: "none" });
1028
- resolve(undefined);
1029
- };
1030
- cancelExtensionOverlay();
1031
- const bridge = createExtensionTuiBridge();
1032
- Promise.resolve(factory(bridge, extensionTheme, keybindings, finish))
1033
- .then((component) => {
1034
- const hosted = createHostedExtensionComponentFromParts(component, bridge);
1035
- const handle = {
1036
- hide: () => {
1037
- overlayHandleHidden = true;
1038
- setExtensionOverlayState((current) => current.kind === "custom"
1039
- ? { ...current, hidden: true }
1040
- : current);
1041
- },
1042
- setHidden: (hidden) => {
1043
- overlayHandleHidden = hidden;
1044
- setExtensionOverlayState((current) => current.kind === "custom"
1045
- ? { ...current, hidden }
1046
- : current);
1047
- },
1048
- isHidden: () => overlayHandleHidden,
1049
- };
1050
- options?.onHandle?.(handle);
1051
- setExtensionOverlayState({
1052
- kind: "custom",
1053
- hosted,
1054
- mode: options?.overlay === true ? "overlay" : "inline",
1055
- hidden: false,
1056
- cancel: () => {
1057
- cancel();
1058
- },
1059
- });
1060
- })
1061
- .catch((error) => {
1062
- setExtensionOverlayState({ kind: "none" });
1063
- reject(error);
1064
- });
1065
- }),
1066
- setEditorText: (text) => {
1067
- setInput(text);
1068
- },
1069
- getEditorText: () => inputRef.current,
1070
- editor: (title, prefill) => new Promise((resolve) => {
1071
- const finalize = (() => {
1072
- let settled = false;
1073
- return (value) => {
1074
- if (settled) {
1075
- return;
1076
- }
1077
- settled = true;
1078
- setExtensionOverlayState({ kind: "none" });
1079
- resolve(value);
1080
- };
1081
- })();
1082
- cancelExtensionOverlay();
1083
- setExtensionOverlayState({
1084
- kind: "editor",
1085
- title,
1086
- prefill,
1087
- resolve: finalize,
1088
- });
1089
- }),
1090
- setEditorComponent: (factory) => {
1091
- if (!factory) {
1092
- setExtensionEditor(null);
1093
- return;
1094
- }
1095
- try {
1096
- const hosted = createHostedExtensionComponent((tui) => {
1097
- const editor = factory(tui, getEditorTheme(), keybindings);
1098
- editor.onSubmit = (text) => {
1099
- void submitPromptRef.current(text, "steer");
1100
- };
1101
- editor.onChange = (text) => {
1102
- dispatch({ type: "set-input", value: text, cursorOffset: text.length });
1103
- };
1104
- editor.setText(inputRef.current);
1105
- return editor;
1106
- });
1107
- setExtensionEditor(hosted);
1108
- }
1109
- catch (error) {
1110
- setError(`Failed to enable extension editor: ${error instanceof Error ? error.message : String(error)}`);
1111
- }
1112
- },
1113
- get theme() {
1114
- return extensionTheme;
1115
- },
1116
- getAllThemes: () => getAvailableThemesWithPaths(),
1117
- getTheme: (name) => getThemeByName(name),
1118
- setTheme: (themeOrName) => {
1119
- if (themeOrName instanceof Theme) {
1120
- setThemeInstance(themeOrName);
1121
- if (themeOrName.name) {
1122
- context.session.settingsManager.setTheme(themeOrName.name);
1123
- dispatch({ type: "set-theme-name", themeName: themeOrName.name });
1124
- }
1125
- triggerFooterRefresh();
1126
- refresh();
1127
- return { success: true };
1128
- }
1129
- const result = setTheme(themeOrName, true);
1130
- if (result.success) {
1131
- context.session.settingsManager.setTheme(themeOrName);
1132
- dispatch({ type: "set-theme-name", themeName: themeOrName });
1133
- triggerFooterRefresh();
1134
- refresh();
1135
- }
1136
- return result;
1137
- },
1138
- });
1139
- const uiContext = buildExtensionUiContext();
1140
- extensionUiContextRef.current = uiContext;
1141
- void context.session.bindExtensions({
1142
- uiContext,
1143
- commandContextActions: {
1144
- waitForIdle: () => context.session.agent.waitForIdle(),
1145
- newSession: async (options) => {
1146
- const started = await context.session.newSession({ parentSession: options?.parentSession });
1147
- if (!started) {
1148
- return { cancelled: true };
1149
- }
1150
- if (options?.setup) {
1151
- await options.setup(context.session.sessionManager);
1152
- }
1153
- resetSessionView();
1154
- setInput("");
1155
- setStatus("New session started.", "success");
1156
- return { cancelled: false };
1157
- },
1158
- fork: async (entryId) => {
1159
- const result = await context.session.fork(entryId);
1160
- if (result.cancelled) {
1161
- return { cancelled: true };
1162
- }
1163
- resetSessionView();
1164
- setInput(result.selectedText);
1165
- setStatus("Forked to new session.", "success");
1166
- return { cancelled: false };
1167
- },
1168
- navigateTree: async (targetId, options) => {
1169
- const result = await context.session.navigateTree(targetId, {
1170
- summarize: options?.summarize,
1171
- customInstructions: options?.customInstructions,
1172
- replaceInstructions: options?.replaceInstructions,
1173
- label: options?.label,
1174
- });
1175
- if (result.cancelled) {
1176
- return { cancelled: true };
1177
- }
1178
- resetSessionView();
1179
- if (result.editorText) {
1180
- setInput(result.editorText);
1181
- }
1182
- setStatus("Navigated to selected point.", "success");
1183
- return { cancelled: false };
1184
- },
1185
- },
1186
- shutdownHandler: handleExit,
1187
- onError: (error) => {
1188
- setError(`Extension error in ${error.extensionPath}: ${error.error}`);
1189
- },
1190
- onHookError: (error) => {
1191
- setError(`Hook error in ${error.hookPath}: ${error.error}`);
1192
- },
1193
- });
1194
- return () => {
1195
- resetExtensionUi();
1196
- };
1197
- }, [context.session, footerDataProvider, keybindings]);
1198
- useEffect(() => {
1199
- if (startupRanRef.current)
1200
- return;
1201
- startupRanRef.current = true;
1202
- void (async () => {
1203
- try {
1204
- if (initialMessage) {
1205
- setStatus("Sending startup prompt...", "busy");
1206
- await context.session.prompt(initialMessage, { images: initialImages });
1207
- }
1208
- if (initialMessages) {
1209
- for (const message of initialMessages) {
1210
- await context.session.prompt(message);
1211
- }
1212
- }
1213
- if (initialMessage || (initialMessages && initialMessages.length > 0)) {
1214
- setStatus("Startup prompt completed.", "success");
1215
- }
1216
- }
1217
- catch (error) {
1218
- setError(error instanceof Error ? error.message : String(error));
1219
- }
1220
- finally {
1221
- refresh();
1222
- }
1223
- })();
1224
- }, [context.session, initialImages, initialMessage, initialMessages, refresh]);
1225
- const extensionUiActive = Boolean(extensionEditor) ||
1226
- (extensionOverlayState.kind !== "none" &&
1227
- !(extensionOverlayState.kind === "custom" && extensionOverlayState.hidden));
1228
- useAppKeybindings({
1229
- session: context.session,
1230
- overlayActive: state.overlay.kind !== "none" || extensionUiActive,
1231
- onExit: handleExit,
1232
- onOpenSettings: () => setOverlay({ kind: "settings" }),
1233
- onOpenResume: () => {
1234
- setOverlay({ kind: "session" });
1235
- },
1236
- onStatus: setStatus,
1237
- });
1238
- useEffect(() => {
1239
- if (state.overlay.kind !== "session") {
1240
- return;
1241
- }
1242
- let cancelled = false;
1243
- void listCurrentSessions(context.session)
1244
- .then((sessions) => {
1245
- if (!cancelled) {
1246
- setCurrentSessions(sessions);
1247
- }
1248
- })
1249
- .catch((error) => {
1250
- if (!cancelled) {
1251
- setError(error instanceof Error ? error.message : String(error));
1252
- }
1253
- });
1254
- return () => {
1255
- cancelled = true;
1256
- };
1257
- }, [context.session, state.overlay.kind]);
1258
- const settingsItems = useMemo(() => buildSettingsItems(context.session, state, () => dispatch({ type: "footer-tick" }), setError), [context.session, state]);
1259
- const maxItems = Math.max(10, terminalRows - (state.overlay.kind === "none" ? 14 : 24));
1260
- const effectiveStatus = state.status ??
1261
- (extensionWorkingMessage &&
1262
- (snapshot.isStreaming || snapshot.isCompacting || snapshot.isBashRunning || snapshot.pendingToolCallCount > 0)
1263
- ? { kind: "busy", text: extensionWorkingMessage }
1264
- : undefined);
1265
- let overlay = null;
1266
- let extensionOverlay = null;
1267
- switch (state.overlay.kind) {
1268
- case "settings":
1269
- overlay = (_jsx(SettingsDialog, { items: settingsItems, onClose: closeOverlay }));
1270
- break;
1271
- case "model":
1272
- overlay = (_jsx(ModelDialog, { models: context.session.modelRegistry.getAvailable(), onClose: closeOverlay, onSelect: async (model) => {
1273
- try {
1274
- await context.session.setModel(model);
1275
- closeOverlay();
1276
- refresh();
1277
- setStatus(`Model set to ${model.provider}/${model.id}.`, "success");
1278
- }
1279
- catch (error) {
1280
- setError(error instanceof Error ? error.message : String(error));
1281
- }
1282
- }, search: state.overlay.search }));
1283
- break;
1284
- case "scopedModels":
1285
- const scopedModelsOverlay = state.overlay;
1286
- overlay = (_jsx(ScopedModelsDialog, { models: scopedModelsOverlay.models, onClose: closeOverlay, onSave: async (selectedIds) => {
1287
- try {
1288
- const allIds = scopedModelsOverlay.models.map((model) => `${model.provider}/${model.id}`);
1289
- if (selectedIds.length === 0 || selectedIds.length === allIds.length) {
1290
- context.session.settingsManager.setEnabledModels(undefined);
1291
- context.session.setScopedModels([]);
1292
- closeOverlay();
1293
- refresh();
1294
- setStatus("Scoped model filter cleared. Ctrl+P will cycle all available models.", "success");
1295
- return;
1296
- }
1297
- const resolved = await resolveModelScope(selectedIds, context.session.modelRegistry);
1298
- context.session.settingsManager.setEnabledModels(selectedIds);
1299
- context.session.setScopedModels(resolved.map((entry) => ({
1300
- model: entry.model,
1301
- thinkingLevel: entry.thinkingLevel ?? context.session.thinkingLevel,
1302
- })));
1303
- closeOverlay();
1304
- refresh();
1305
- setStatus(`Scoped model cycling to ${selectedIds.length} model(s).`, "success");
1306
- }
1307
- catch (error) {
1308
- setError(error instanceof Error ? error.message : String(error));
1309
- }
1310
- }, selectedIds: scopedModelsOverlay.selectedIds }));
1311
- break;
1312
- case "theme":
1313
- overlay = (_jsx(ThemeDialog, { themes: getAvailableThemes(), onClose: closeOverlay, onSelect: (themeName) => {
1314
- const result = setTheme(themeName, true);
1315
- if (!result.success) {
1316
- setError(result.error ?? `Unable to load theme "${themeName}".`);
1317
- return;
1318
- }
1319
- context.session.settingsManager.setTheme(themeName);
1320
- dispatch({ type: "set-theme-name", themeName });
1321
- dispatch({ type: "footer-tick" });
1322
- closeOverlay();
1323
- setStatus(`Theme set to ${themeName}.`, "success");
1324
- } }));
1325
- break;
1326
- case "session":
1327
- overlay = (_jsx(SessionDialog, { onClose: closeOverlay, currentSessionPath: context.session.sessionFile, onDeleteSession: async (item) => {
1328
- try {
1329
- if (item.path === context.session.sessionFile) {
1330
- setStatus("Cannot delete the current active session from the picker.", "warning");
1331
- return;
1332
- }
1333
- await deleteSessionAtPath(item.path);
1334
- setCurrentSessions((sessions) => sessions.filter((session) => session.path !== item.path));
1335
- setStatus("Deleted session.", "success");
1336
- }
1337
- catch (error) {
1338
- setError(error instanceof Error ? error.message : String(error));
1339
- }
1340
- }, onLoadAllSessions: (onProgress) => listAllSessions(onProgress), onRenameSession: async (item, name) => {
1341
- try {
1342
- const resolvedName = await renameSessionAtPath(item.path, name);
1343
- setCurrentSessions((sessions) => sessions.map((session) => session.path === item.path
1344
- ? { ...session, name: resolvedName, modified: new Date(), lastModified: Date.now() }
1345
- : session));
1346
- if (item.path === context.session.sessionFile)
1347
- refresh();
1348
- setStatus(`Renamed session to ${resolvedName}.`, "success");
1349
- }
1350
- catch (error) {
1351
- setError(error instanceof Error ? error.message : String(error));
1352
- }
1353
- }, onSelect: async (item) => {
1354
- try {
1355
- await context.session.switchSession(item.path);
1356
- closeOverlay();
1357
- resetSessionView();
1358
- setStatus("Resumed session.", "success");
1359
- }
1360
- catch (error) {
1361
- setError(error instanceof Error ? error.message : String(error));
1362
- }
1363
- }, currentSessions: currentSessions }));
1364
- break;
1365
- case "tree":
1366
- overlay = (_jsx(TreeDialog, { items: state.overlay.items, onClose: closeOverlay, onSelect: async (item) => {
1367
- if (!item.id) {
1368
- setError("Navigation before the first message is not supported yet.");
1369
- return;
1370
- }
1371
- try {
1372
- const result = await context.session.navigateTree(item.id);
1373
- closeOverlay();
1374
- resetSessionView();
1375
- if (result.editorText) {
1376
- setInput(result.editorText);
1377
- }
1378
- setStatus("Navigated to the selected point.", "success");
1379
- }
1380
- catch (error) {
1381
- setError(error instanceof Error ? error.message : String(error));
1382
- }
1383
- } }));
1384
- break;
1385
- case "userMessage":
1386
- overlay = (_jsx(UserMessageDialog, { items: state.overlay.items, onClose: closeOverlay, onSelect: async (item) => {
1387
- try {
1388
- const result = await context.session.fork(item.entryId);
1389
- closeOverlay();
1390
- resetSessionView();
1391
- if (!result.cancelled) {
1392
- setInput(result.selectedText);
1393
- setStatus("Forked to a new session branch.", "success");
1394
- }
1395
- }
1396
- catch (error) {
1397
- setError(error instanceof Error ? error.message : String(error));
1398
- }
1399
- } }));
1400
- break;
1401
- case "login":
1402
- overlay = (_jsx(LoginDialog, { mode: "login", onClose: closeOverlay, onSelect: async (provider) => {
1403
- if (provider.authKind === "oauth") {
1404
- await startOAuthLogin(provider);
1405
- return;
1406
- }
1407
- setOverlay({
1408
- kind: "oauth",
1409
- providerId: provider.id,
1410
- providerName: provider.label,
1411
- mode: "apiKey",
1412
- inputLabel: `API key for ${provider.id}`,
1413
- inputValue: "",
1414
- accountId: "default",
1415
- accountName: "Default",
1416
- progress: `Credentials will be saved to ${getAuthPath()}.`,
1417
- });
1418
- }, providers: state.overlay.providers }));
1419
- break;
1420
- case "logout":
1421
- overlay = (_jsx(LoginDialog, { mode: "logout", accounts: state.overlay.accounts, onClose: closeOverlay, onSelect: (account) => {
1422
- context.session.modelRegistry.authStorage.logout(account.provider, account.accountId);
1423
- context.session.modelRegistry.refresh();
1424
- closeOverlay();
1425
- refresh();
1426
- setStatus(`Removed saved credential ${account.label}.`, "success");
1427
- } }));
1428
- break;
1429
- case "oauth":
1430
- const oauthState = state.overlay;
1431
- overlay = (_jsx(OAuthDialog, { state: oauthState, onChange: handleOAuthOverlayChange, onClose: closeOverlay, onSubmit: async () => {
1432
- if (oauthResolverRef.current) {
1433
- const resolve = oauthResolverRef.current;
1434
- oauthResolverRef.current = null;
1435
- const value = oauthState.inputValue;
1436
- handleOAuthOverlayChange({ inputValue: "", prompt: undefined });
1437
- resolve(value);
1438
- return;
1439
- }
1440
- if (oauthState.mode === "apiKey") {
1441
- const value = oauthState.inputValue.trim();
1442
- if (!value) {
1443
- setError("API key cannot be empty.");
1444
- return;
1445
- }
1446
- context.session.modelRegistry.authStorage.set(oauthState.providerId, "default", {
1447
- type: "api_key",
1448
- key: value,
1449
- accountId: "default",
1450
- accountName: "Default",
1451
- });
1452
- context.session.modelRegistry.refresh();
1453
- closeOverlay();
1454
- refresh();
1455
- setStatus(`Saved API key for ${oauthState.providerId}.`, "success");
1456
- }
1457
- } }));
1458
- break;
1459
- case "none":
1460
- break;
1461
- }
1462
- switch (extensionOverlayState.kind) {
1463
- case "select":
1464
- extensionOverlay = (_jsx(ExtensionSelectDialog, { onClose: () => extensionOverlayState.resolve(undefined), onSelect: (value) => extensionOverlayState.resolve(value), options: extensionOverlayState.options, timeoutAt: extensionOverlayState.timeoutAt, title: extensionOverlayState.title }));
1465
- break;
1466
- case "confirm":
1467
- extensionOverlay = (_jsx(ExtensionSelectDialog, { onClose: () => extensionOverlayState.resolve(false), onSelect: (value) => extensionOverlayState.resolve(value === "Yes"), options: ["Yes", "No"], timeoutAt: extensionOverlayState.timeoutAt, title: `${extensionOverlayState.title}\n${extensionOverlayState.message}` }));
1468
- break;
1469
- case "input":
1470
- extensionOverlay = (_jsx(ExtensionTextDialog, { onClose: () => extensionOverlayState.resolve(undefined), onSubmit: (value) => extensionOverlayState.resolve(value), placeholder: extensionOverlayState.placeholder, timeoutAt: extensionOverlayState.timeoutAt, title: extensionOverlayState.title }));
1471
- break;
1472
- case "editor":
1473
- extensionOverlay = (_jsx(ExtensionTextDialog, { multiline: true, onClose: () => extensionOverlayState.resolve(undefined), onSubmit: (value) => extensionOverlayState.resolve(value), prefill: extensionOverlayState.prefill, timeoutAt: extensionOverlayState.timeoutAt, title: extensionOverlayState.title }));
1474
- break;
1475
- case "custom":
1476
- if (extensionOverlayState.mode === "overlay" && !extensionOverlayState.hidden) {
1477
- extensionOverlay = (_jsx(ExtensionComponentHost, { active: true, hosted: extensionOverlayState.hosted, width: terminalColumns }));
1478
- }
1479
- break;
1480
- case "none":
1481
- break;
1482
- }
1483
- useEffect(() => {
1484
- if (!startupDismissed && snapshot.messages.length > 0) {
1485
- setStartupDismissed(true);
1486
- }
1487
- }, [snapshot.messages.length, startupDismissed]);
1488
- useEffect(() => {
1489
- const nextShowThinking = !context.session.settingsManager.getHideThinkingBlock();
1490
- const nextShowImages = context.session.settingsManager.getShowImages();
1491
- const nextThemeName = context.session.settingsManager.getTheme() ?? "dark";
1492
- if (state.showThinking !== nextShowThinking) {
1493
- dispatch({ type: "set-show-thinking", value: nextShowThinking });
1494
- }
1495
- if (state.showImages !== nextShowImages) {
1496
- dispatch({ type: "set-show-images", value: nextShowImages });
1497
- }
1498
- if (state.themeName !== nextThemeName) {
1499
- dispatch({ type: "set-theme-name", themeName: nextThemeName });
1500
- }
1501
- }, [context.session, state.footerTick, state.showImages, state.showThinking, state.themeName]);
1502
- useEffect(() => {
1503
- if (previousStartupDiagnosticsRef.current && !showStartupDiagnostics && process.stdout.isTTY) {
1504
- process.stdout.write("\u001B[2J\u001B[3J\u001B[H");
1505
- setLayoutEpoch((current) => current + 1);
1506
- }
1507
- previousStartupDiagnosticsRef.current = showStartupDiagnostics;
1508
- }, [showStartupDiagnostics]);
1509
- return (_jsxs(Box, { flexDirection: "column", children: [extensionHeader ? (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: _jsx(ExtensionComponentHost, { hosted: extensionHeader, width: terminalColumns }) })) : (_jsx(Header, { collapseChangelog: context.session.settingsManager.getCollapseChangelog(), sessionName: snapshot.sessionName, showBranding: Boolean(verbose) || !context.session.settingsManager.getQuietStartup(), startupChangelog: startupChangelog, startupDiagnostics: showStartupDiagnostics ? startupDiagnostics : undefined, startupNotices: startupNotices, theme: theme })), _jsx(MessageList, { displayBlocks: displayBlocks, expandToolOutputs: toolOutputExpanded, maxItems: maxItems, messages: snapshot.messages, showImages: state.showImages, showThinking: state.showThinking, theme: theme }), _jsx(TaskPanel, { expandToolOutputs: toolOutputExpanded, pendingMessages: pendingMessages, snapshot: snapshot, theme: theme, toolExecutions: state.toolExecutions }), _jsx(StatusLine, { snapshot: snapshot, status: effectiveStatus, theme: theme }), Array.from(extensionWidgetsAbove.entries()).map(([key, widget]) => widget.kind === "lines" ? (_jsx(Box, { marginTop: 1, children: renderTextLines(widget.lines, `widget-above:${key}`) }, `widget-above:${key}`)) : (_jsx(Box, { marginTop: 1, children: _jsx(ExtensionComponentHost, { hosted: widget.hosted, maxLines: 10, width: terminalColumns }) }, `widget-above:${key}`))), extensionEditor ? (_jsx(Box, { marginTop: 1, children: _jsx(ExtensionComponentHost, { active: true, hosted: extensionEditor, onKeyData: handleExtensionShortcutKeyData, width: terminalColumns }) })) : extensionOverlayState.kind === "custom" &&
1510
- extensionOverlayState.mode === "inline" &&
1511
- !extensionOverlayState.hidden ? (_jsx(Box, { marginTop: 1, children: _jsx(ExtensionComponentHost, { active: true, hosted: extensionOverlayState.hosted, width: terminalColumns }) })) : (_jsx(PromptInput, { cursorOffset: state.cursorOffset, disabled: state.overlay.kind !== "none" || extensionUiActive, dispatch: dispatch, input: state.input, keybindings: keybindings, onCancelActiveWork: async (kind) => {
1512
- if (kind === "bash") {
1513
- context.session.abortBash();
1514
- setStatus("Cancelled bash command.", "warning");
1515
- return;
1516
- }
1517
- if (context.session.isCompacting) {
1518
- context.session.abortCompaction();
1519
- setStatus("Cancelling compaction...", "warning");
1520
- return;
1521
- }
1522
- const restored = restoreQueuedMessagesToPrompt({ abort: true });
1523
- refresh();
1524
- if (restored > 0) {
1525
- setStatus(`Cancelled active work and restored ${restored} queued message${restored === 1 ? "" : "s"}.`, "warning");
1526
- }
1527
- else {
1528
- setStatus("Cancelled active work.", "warning");
1529
- }
1530
- }, onCycleModel: cycleModel, onDequeue: dequeueQueuedMessages, onExit: handleExit, onExternalEditor: openExternalEditor, onKeyData: handleExtensionShortcutKeyData, onOpenModelSelector: () => setOverlay({ kind: "model" }), onOpenFork: () => setOverlay({ kind: "userMessage", items: listUserMessages(context.session) }), onOpenTree: () => setOverlay({ kind: "tree", items: flattenSessionTree(context.session) }), onPasteClipboardImage: pasteClipboardImage, onStatus: setStatus, onSubmit: (value) => submitPromptWithStartupDismiss(value ?? state.input, "steer"), onSubmitFollowUp: (value) => submitPromptWithStartupDismiss(value ?? state.input, "followUp"), onSubmitSteer: (value) => submitPromptWithStartupDismiss(value ?? state.input, "steer"), onSuspend: suspendTerminal, onThinkingLevelChange: (level) => {
1531
- refresh();
1532
- setStatus(`Thinking level: ${level}`, "success");
1533
- }, onToggleThinkingVisibility: toggleThinkingVisibility, onToggleToolExpansion: toggleToolOutputExpansion, session: context.session, theme: theme })), Array.from(extensionWidgetsBelow.entries()).map(([key, widget]) => widget.kind === "lines" ? (_jsx(Box, { marginTop: 1, children: renderTextLines(widget.lines, `widget-below:${key}`) }, `widget-below:${key}`)) : (_jsx(Box, { marginTop: 1, children: _jsx(ExtensionComponentHost, { hosted: widget.hosted, maxLines: 10, width: terminalColumns }) }, `widget-below:${key}`))), extensionFooter ? (_jsx(ExtensionComponentHost, { hosted: extensionFooter, width: terminalColumns })) : (_jsx(Footer, { availableProviderCount: footerData.availableProviderCount, branch: footerData.branch, extensionStatuses: footerData.extensionStatuses, snapshot: snapshot, theme: theme })), overlay, extensionOverlay, state.overlay.kind === "none" && extensionOverlayState.kind === "none" ? null : (_jsx(Text, { children: theme.muted("Dialogs pause typing in the main prompt until they close.") }))] }, layoutEpoch));
1534
- }
1535
- //# sourceMappingURL=AppShell.js.map