@yeshwanthyk/coding-agent 0.3.0 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/README.md +8 -6
  2. package/dist/adapters/acp/index.d.ts +10 -0
  3. package/dist/adapters/acp/index.d.ts.map +1 -0
  4. package/dist/adapters/acp/index.js +250 -0
  5. package/dist/adapters/acp/index.js.map +1 -0
  6. package/dist/adapters/acp/protocol.d.ts +171 -0
  7. package/dist/adapters/acp/protocol.d.ts.map +1 -0
  8. package/dist/adapters/acp/protocol.js +25 -0
  9. package/dist/adapters/acp/protocol.js.map +1 -0
  10. package/dist/adapters/acp/session.d.ts +33 -0
  11. package/dist/adapters/acp/session.d.ts.map +1 -0
  12. package/dist/adapters/acp/session.js +216 -0
  13. package/dist/adapters/acp/session.js.map +1 -0
  14. package/dist/adapters/acp/updates.d.ts +17 -0
  15. package/dist/adapters/acp/updates.d.ts.map +1 -0
  16. package/dist/adapters/acp/updates.js +62 -0
  17. package/dist/adapters/acp/updates.js.map +1 -0
  18. package/dist/adapters/cli/headless.d.ts +7 -0
  19. package/dist/adapters/cli/headless.d.ts.map +1 -0
  20. package/dist/adapters/cli/headless.js +93 -0
  21. package/dist/adapters/cli/headless.js.map +1 -0
  22. package/dist/adapters/cli/validate.d.ts +3 -0
  23. package/dist/adapters/cli/validate.d.ts.map +1 -0
  24. package/dist/adapters/cli/validate.js +40 -0
  25. package/dist/adapters/cli/validate.js.map +1 -0
  26. package/dist/adapters/tui/app.d.ts +8 -0
  27. package/dist/adapters/tui/app.d.ts.map +1 -0
  28. package/dist/adapters/tui/app.jsx +25 -0
  29. package/dist/adapters/tui/app.jsx.map +1 -0
  30. package/dist/agent-events.d.ts +63 -0
  31. package/dist/agent-events.d.ts.map +1 -0
  32. package/dist/agent-events.js +510 -0
  33. package/dist/agent-events.js.map +1 -0
  34. package/dist/args.d.ts +18 -0
  35. package/dist/args.d.ts.map +1 -0
  36. package/dist/args.js +87 -0
  37. package/dist/args.js.map +1 -0
  38. package/dist/autocomplete-commands.d.ts +26 -0
  39. package/dist/autocomplete-commands.d.ts.map +1 -0
  40. package/dist/autocomplete-commands.js +82 -0
  41. package/dist/autocomplete-commands.js.map +1 -0
  42. package/dist/commands.d.ts +10 -0
  43. package/dist/commands.d.ts.map +1 -0
  44. package/dist/commands.js +17 -0
  45. package/dist/commands.js.map +1 -0
  46. package/dist/compact-handler.d.ts +42 -0
  47. package/dist/compact-handler.d.ts.map +1 -0
  48. package/dist/compact-handler.js +211 -0
  49. package/dist/compact-handler.js.map +1 -0
  50. package/dist/components/Footer.d.ts +9 -0
  51. package/dist/components/Footer.d.ts.map +1 -0
  52. package/dist/components/Footer.jsx +36 -0
  53. package/dist/components/Footer.jsx.map +1 -0
  54. package/dist/components/Header.d.ts +23 -0
  55. package/dist/components/Header.d.ts.map +1 -0
  56. package/dist/components/Header.jsx +174 -0
  57. package/dist/components/Header.jsx.map +1 -0
  58. package/dist/components/MessageList.d.ts +19 -0
  59. package/dist/components/MessageList.d.ts.map +1 -0
  60. package/dist/components/MessageList.jsx +237 -0
  61. package/dist/components/MessageList.jsx.map +1 -0
  62. package/dist/config.d.ts +2 -0
  63. package/dist/config.d.ts.map +1 -0
  64. package/dist/config.js +2 -0
  65. package/dist/config.js.map +1 -0
  66. package/dist/domain/commands/builtin/clear.d.ts +3 -0
  67. package/dist/domain/commands/builtin/clear.d.ts.map +1 -0
  68. package/dist/domain/commands/builtin/clear.js +13 -0
  69. package/dist/domain/commands/builtin/clear.js.map +1 -0
  70. package/dist/domain/commands/builtin/compact.d.ts +3 -0
  71. package/dist/domain/commands/builtin/compact.d.ts.map +1 -0
  72. package/dist/domain/commands/builtin/compact.js +84 -0
  73. package/dist/domain/commands/builtin/compact.js.map +1 -0
  74. package/dist/domain/commands/builtin/conceal.d.ts +3 -0
  75. package/dist/domain/commands/builtin/conceal.d.ts.map +1 -0
  76. package/dist/domain/commands/builtin/conceal.js +8 -0
  77. package/dist/domain/commands/builtin/conceal.js.map +1 -0
  78. package/dist/domain/commands/builtin/diffwrap.d.ts +3 -0
  79. package/dist/domain/commands/builtin/diffwrap.d.ts.map +1 -0
  80. package/dist/domain/commands/builtin/diffwrap.js +8 -0
  81. package/dist/domain/commands/builtin/diffwrap.js.map +1 -0
  82. package/dist/domain/commands/builtin/editor.d.ts +3 -0
  83. package/dist/domain/commands/builtin/editor.d.ts.map +1 -0
  84. package/dist/domain/commands/builtin/editor.js +22 -0
  85. package/dist/domain/commands/builtin/editor.js.map +1 -0
  86. package/dist/domain/commands/builtin/exit.d.ts +3 -0
  87. package/dist/domain/commands/builtin/exit.d.ts.map +1 -0
  88. package/dist/domain/commands/builtin/exit.js +14 -0
  89. package/dist/domain/commands/builtin/exit.js.map +1 -0
  90. package/dist/domain/commands/builtin/followup.d.ts +3 -0
  91. package/dist/domain/commands/builtin/followup.d.ts.map +1 -0
  92. package/dist/domain/commands/builtin/followup.js +20 -0
  93. package/dist/domain/commands/builtin/followup.js.map +1 -0
  94. package/dist/domain/commands/builtin/index.d.ts +2 -0
  95. package/dist/domain/commands/builtin/index.d.ts.map +1 -0
  96. package/dist/domain/commands/builtin/index.js +29 -0
  97. package/dist/domain/commands/builtin/index.js.map +1 -0
  98. package/dist/domain/commands/builtin/login.d.ts +3 -0
  99. package/dist/domain/commands/builtin/login.d.ts.map +1 -0
  100. package/dist/domain/commands/builtin/login.js +92 -0
  101. package/dist/domain/commands/builtin/login.js.map +1 -0
  102. package/dist/domain/commands/builtin/model.d.ts +3 -0
  103. package/dist/domain/commands/builtin/model.d.ts.map +1 -0
  104. package/dist/domain/commands/builtin/model.js +53 -0
  105. package/dist/domain/commands/builtin/model.js.map +1 -0
  106. package/dist/domain/commands/builtin/status.d.ts +3 -0
  107. package/dist/domain/commands/builtin/status.d.ts.map +1 -0
  108. package/dist/domain/commands/builtin/status.js +30 -0
  109. package/dist/domain/commands/builtin/status.js.map +1 -0
  110. package/dist/domain/commands/builtin/steer.d.ts +3 -0
  111. package/dist/domain/commands/builtin/steer.d.ts.map +1 -0
  112. package/dist/domain/commands/builtin/steer.js +20 -0
  113. package/dist/domain/commands/builtin/steer.js.map +1 -0
  114. package/dist/domain/commands/builtin/theme.d.ts +3 -0
  115. package/dist/domain/commands/builtin/theme.d.ts.map +1 -0
  116. package/dist/domain/commands/builtin/theme.js +19 -0
  117. package/dist/domain/commands/builtin/theme.js.map +1 -0
  118. package/dist/domain/commands/builtin/thinking.d.ts +3 -0
  119. package/dist/domain/commands/builtin/thinking.d.ts.map +1 -0
  120. package/dist/domain/commands/builtin/thinking.js +16 -0
  121. package/dist/domain/commands/builtin/thinking.js.map +1 -0
  122. package/dist/domain/commands/helpers.d.ts +7 -0
  123. package/dist/domain/commands/helpers.d.ts.map +1 -0
  124. package/dist/domain/commands/helpers.js +34 -0
  125. package/dist/domain/commands/helpers.js.map +1 -0
  126. package/dist/domain/commands/registry.d.ts +10 -0
  127. package/dist/domain/commands/registry.d.ts.map +1 -0
  128. package/dist/domain/commands/registry.js +36 -0
  129. package/dist/domain/commands/registry.js.map +1 -0
  130. package/dist/domain/commands/types.d.ts +62 -0
  131. package/dist/domain/commands/types.d.ts.map +1 -0
  132. package/dist/domain/commands/types.js +2 -0
  133. package/dist/domain/commands/types.js.map +1 -0
  134. package/dist/domain/messaging/content.d.ts +37 -0
  135. package/dist/domain/messaging/content.d.ts.map +1 -0
  136. package/dist/domain/messaging/content.js +103 -0
  137. package/dist/domain/messaging/content.js.map +1 -0
  138. package/dist/editor.d.ts +26 -0
  139. package/dist/editor.d.ts.map +1 -0
  140. package/dist/editor.js +81 -0
  141. package/dist/editor.js.map +1 -0
  142. package/dist/extensibility/schema.d.ts +2 -0
  143. package/dist/extensibility/schema.d.ts.map +1 -0
  144. package/{src/extensibility/schema.ts → dist/extensibility/schema.js} +2 -1
  145. package/dist/extensibility/schema.js.map +1 -0
  146. package/dist/extensibility/validation.d.ts +2 -0
  147. package/dist/extensibility/validation.d.ts.map +1 -0
  148. package/{src/extensibility/validation.ts → dist/extensibility/validation.js} +2 -1
  149. package/dist/extensibility/validation.js.map +1 -0
  150. package/dist/hooks/index.d.ts +2 -0
  151. package/dist/hooks/index.d.ts.map +1 -0
  152. package/dist/hooks/index.js +2 -0
  153. package/dist/hooks/index.js.map +1 -0
  154. package/dist/hooks/useAgentEvents.d.ts +8 -0
  155. package/dist/hooks/useAgentEvents.d.ts.map +1 -0
  156. package/dist/hooks/useAgentEvents.js +22 -0
  157. package/dist/hooks/useAgentEvents.js.map +1 -0
  158. package/dist/hooks/useEditorBridge.d.ts +20 -0
  159. package/dist/hooks/useEditorBridge.d.ts.map +1 -0
  160. package/dist/hooks/useEditorBridge.js +80 -0
  161. package/dist/hooks/useEditorBridge.js.map +1 -0
  162. package/dist/hooks/useGitStatus.d.ts +2 -0
  163. package/dist/hooks/useGitStatus.d.ts.map +1 -0
  164. package/dist/hooks/useGitStatus.js +26 -0
  165. package/dist/hooks/useGitStatus.js.map +1 -0
  166. package/dist/hooks/usePromptQueue.d.ts +2 -0
  167. package/dist/hooks/usePromptQueue.d.ts.map +1 -0
  168. package/dist/hooks/usePromptQueue.js +2 -0
  169. package/dist/hooks/usePromptQueue.js.map +1 -0
  170. package/dist/hooks/useSessionController.d.ts +2 -0
  171. package/dist/hooks/useSessionController.d.ts.map +1 -0
  172. package/dist/hooks/useSessionController.js +2 -0
  173. package/dist/hooks/useSessionController.js.map +1 -0
  174. package/dist/hooks/useSpinner.d.ts +4 -0
  175. package/dist/hooks/useSpinner.d.ts.map +1 -0
  176. package/dist/hooks/useSpinner.js +25 -0
  177. package/dist/hooks/useSpinner.js.map +1 -0
  178. package/dist/hooks/useToastManager.d.ts +6 -0
  179. package/dist/hooks/useToastManager.d.ts.map +1 -0
  180. package/dist/hooks/useToastManager.js +22 -0
  181. package/dist/hooks/useToastManager.js.map +1 -0
  182. package/dist/index.d.ts +3 -0
  183. package/dist/index.d.ts.map +1 -0
  184. package/dist/index.js +156 -0
  185. package/dist/index.js.map +1 -0
  186. package/dist/keyboard-handler.d.ts +30 -0
  187. package/dist/keyboard-handler.d.ts.map +1 -0
  188. package/dist/keyboard-handler.js +96 -0
  189. package/dist/keyboard-handler.js.map +1 -0
  190. package/dist/profiler.d.ts +2 -0
  191. package/dist/profiler.d.ts.map +1 -0
  192. package/dist/profiler.js +41 -0
  193. package/dist/profiler.js.map +1 -0
  194. package/dist/runtime/context.d.ts +8 -0
  195. package/dist/runtime/context.d.ts.map +1 -0
  196. package/dist/runtime/context.jsx +11 -0
  197. package/dist/runtime/context.jsx.map +1 -0
  198. package/dist/runtime/factory.d.ts +12 -0
  199. package/dist/runtime/factory.d.ts.map +1 -0
  200. package/dist/runtime/factory.js +37 -0
  201. package/dist/runtime/factory.js.map +1 -0
  202. package/dist/runtime/git/git-info.d.ts +3 -0
  203. package/dist/runtime/git/git-info.d.ts.map +1 -0
  204. package/dist/runtime/git/git-info.js +29 -0
  205. package/dist/runtime/git/git-info.js.map +1 -0
  206. package/dist/runtime/session/session-controller.d.ts +48 -0
  207. package/dist/runtime/session/session-controller.d.ts.map +1 -0
  208. package/dist/runtime/session/session-controller.js +159 -0
  209. package/dist/runtime/session/session-controller.js.map +1 -0
  210. package/dist/session-manager.d.ts +2 -0
  211. package/dist/session-manager.d.ts.map +1 -0
  212. package/dist/session-manager.js +2 -0
  213. package/dist/session-manager.js.map +1 -0
  214. package/dist/session-picker.d.ts +6 -0
  215. package/dist/session-picker.d.ts.map +1 -0
  216. package/dist/session-picker.jsx +96 -0
  217. package/dist/session-picker.jsx.map +1 -0
  218. package/dist/shell-runner.d.ts +21 -0
  219. package/dist/shell-runner.d.ts.map +1 -0
  220. package/dist/shell-runner.js +106 -0
  221. package/dist/shell-runner.js.map +1 -0
  222. package/dist/syntax-highlighting.d.ts +4 -0
  223. package/dist/syntax-highlighting.d.ts.map +1 -0
  224. package/dist/syntax-highlighting.js +108 -0
  225. package/dist/syntax-highlighting.js.map +1 -0
  226. package/dist/theme-names.d.ts +7 -0
  227. package/dist/theme-names.d.ts.map +1 -0
  228. package/dist/theme-names.js +38 -0
  229. package/dist/theme-names.js.map +1 -0
  230. package/dist/tool-ui-contracts.d.ts +30 -0
  231. package/dist/tool-ui-contracts.d.ts.map +1 -0
  232. package/dist/tool-ui-contracts.js +53 -0
  233. package/dist/tool-ui-contracts.js.map +1 -0
  234. package/dist/tui-open-rendering.d.ts +37 -0
  235. package/dist/tui-open-rendering.d.ts.map +1 -0
  236. package/dist/tui-open-rendering.jsx +462 -0
  237. package/dist/tui-open-rendering.jsx.map +1 -0
  238. package/dist/types.d.ts +117 -0
  239. package/dist/types.d.ts.map +1 -0
  240. package/dist/types.js +4 -0
  241. package/dist/types.js.map +1 -0
  242. package/dist/ui/app-shell/TuiApp.d.ts +6 -0
  243. package/dist/ui/app-shell/TuiApp.d.ts.map +1 -0
  244. package/dist/ui/app-shell/TuiApp.jsx +480 -0
  245. package/dist/ui/app-shell/TuiApp.jsx.map +1 -0
  246. package/dist/ui/clipboard/osc52.d.ts +2 -0
  247. package/dist/ui/clipboard/osc52.d.ts.map +1 -0
  248. package/dist/ui/clipboard/osc52.js +19 -0
  249. package/dist/ui/clipboard/osc52.js.map +1 -0
  250. package/dist/ui/components/modals/ConfirmModal.d.ts +8 -0
  251. package/dist/ui/components/modals/ConfirmModal.d.ts.map +1 -0
  252. package/dist/ui/components/modals/ConfirmModal.jsx +39 -0
  253. package/dist/ui/components/modals/ConfirmModal.jsx.map +1 -0
  254. package/dist/ui/components/modals/EditorModal.d.ts +8 -0
  255. package/dist/ui/components/modals/EditorModal.d.ts.map +1 -0
  256. package/dist/ui/components/modals/EditorModal.jsx +23 -0
  257. package/dist/ui/components/modals/EditorModal.jsx.map +1 -0
  258. package/dist/ui/components/modals/InputModal.d.ts +8 -0
  259. package/dist/ui/components/modals/InputModal.d.ts.map +1 -0
  260. package/dist/ui/components/modals/InputModal.jsx +15 -0
  261. package/dist/ui/components/modals/InputModal.jsx.map +1 -0
  262. package/dist/ui/components/modals/ModalContainer.d.ts +8 -0
  263. package/dist/ui/components/modals/ModalContainer.d.ts.map +1 -0
  264. package/dist/ui/components/modals/ModalContainer.jsx +34 -0
  265. package/dist/ui/components/modals/ModalContainer.jsx.map +1 -0
  266. package/dist/ui/components/modals/SelectModal.d.ts +8 -0
  267. package/dist/ui/components/modals/SelectModal.d.ts.map +1 -0
  268. package/dist/ui/components/modals/SelectModal.jsx +32 -0
  269. package/dist/ui/components/modals/SelectModal.jsx.map +1 -0
  270. package/{src/ui/components/modals/index.ts → dist/ui/components/modals/index.d.ts} +5 -4
  271. package/dist/ui/components/modals/index.d.ts.map +1 -0
  272. package/dist/ui/components/modals/index.js +5 -0
  273. package/dist/ui/components/modals/index.js.map +1 -0
  274. package/dist/ui/features/composer/Composer.d.ts +16 -0
  275. package/dist/ui/features/composer/Composer.d.ts.map +1 -0
  276. package/dist/ui/features/composer/Composer.jsx +39 -0
  277. package/dist/ui/features/composer/Composer.jsx.map +1 -0
  278. package/dist/ui/features/composer/SlashCommandHandler.d.ts +14 -0
  279. package/dist/ui/features/composer/SlashCommandHandler.d.ts.map +1 -0
  280. package/dist/ui/features/composer/SlashCommandHandler.js +43 -0
  281. package/dist/ui/features/composer/SlashCommandHandler.js.map +1 -0
  282. package/dist/ui/features/composer/keyboard.d.ts +3 -0
  283. package/dist/ui/features/composer/keyboard.d.ts.map +1 -0
  284. package/dist/ui/features/composer/keyboard.js +3 -0
  285. package/dist/ui/features/composer/keyboard.js.map +1 -0
  286. package/dist/ui/features/main-view/MainView.d.ts +52 -0
  287. package/dist/ui/features/main-view/MainView.d.ts.map +1 -0
  288. package/dist/ui/features/main-view/MainView.jsx +269 -0
  289. package/dist/ui/features/main-view/MainView.jsx.map +1 -0
  290. package/dist/ui/features/message-pane/MessagePane.d.ts +15 -0
  291. package/dist/ui/features/message-pane/MessagePane.d.ts.map +1 -0
  292. package/dist/ui/features/message-pane/MessagePane.jsx +7 -0
  293. package/dist/ui/features/message-pane/MessagePane.jsx.map +1 -0
  294. package/dist/ui/hooks/useModals.d.ts +35 -0
  295. package/dist/ui/hooks/useModals.d.ts.map +1 -0
  296. package/dist/ui/hooks/useModals.js +36 -0
  297. package/dist/ui/hooks/useModals.js.map +1 -0
  298. package/dist/ui/state/app-store.d.ts +42 -0
  299. package/dist/ui/state/app-store.d.ts.map +1 -0
  300. package/dist/ui/state/app-store.js +28 -0
  301. package/dist/ui/state/app-store.js.map +1 -0
  302. package/dist/utils.d.ts +3 -0
  303. package/dist/utils.d.ts.map +1 -0
  304. package/dist/utils.js +3 -0
  305. package/dist/utils.js.map +1 -0
  306. package/package.json +20 -7
  307. package/src/adapters/acp/index.ts +0 -305
  308. package/src/adapters/acp/protocol.ts +0 -191
  309. package/src/adapters/acp/session.ts +0 -289
  310. package/src/adapters/acp/updates.ts +0 -96
  311. package/src/adapters/cli/headless.ts +0 -112
  312. package/src/adapters/cli/validate.ts +0 -50
  313. package/src/adapters/tui/app.tsx +0 -39
  314. package/src/agent-events.ts +0 -671
  315. package/src/args.ts +0 -102
  316. package/src/autocomplete-commands.ts +0 -102
  317. package/src/commands.ts +0 -23
  318. package/src/compact-handler.ts +0 -272
  319. package/src/components/Footer.tsx +0 -49
  320. package/src/components/Header.tsx +0 -218
  321. package/src/components/MessageList.tsx +0 -380
  322. package/src/config.ts +0 -1
  323. package/src/domain/commands/builtin/clear.ts +0 -14
  324. package/src/domain/commands/builtin/compact.ts +0 -96
  325. package/src/domain/commands/builtin/conceal.ts +0 -9
  326. package/src/domain/commands/builtin/diffwrap.ts +0 -9
  327. package/src/domain/commands/builtin/editor.ts +0 -24
  328. package/src/domain/commands/builtin/exit.ts +0 -14
  329. package/src/domain/commands/builtin/followup.ts +0 -24
  330. package/src/domain/commands/builtin/index.ts +0 -29
  331. package/src/domain/commands/builtin/login.ts +0 -118
  332. package/src/domain/commands/builtin/model.ts +0 -66
  333. package/src/domain/commands/builtin/status.ts +0 -32
  334. package/src/domain/commands/builtin/steer.ts +0 -24
  335. package/src/domain/commands/builtin/theme.ts +0 -23
  336. package/src/domain/commands/builtin/thinking.ts +0 -16
  337. package/src/domain/commands/helpers.ts +0 -41
  338. package/src/domain/commands/registry.ts +0 -42
  339. package/src/domain/commands/types.ts +0 -69
  340. package/src/domain/messaging/content.ts +0 -117
  341. package/src/editor.ts +0 -103
  342. package/src/hooks/index.ts +0 -1
  343. package/src/hooks/useAgentEvents.ts +0 -28
  344. package/src/hooks/useEditorBridge.ts +0 -101
  345. package/src/hooks/useGitStatus.ts +0 -28
  346. package/src/hooks/usePromptQueue.ts +0 -7
  347. package/src/hooks/useSessionController.ts +0 -5
  348. package/src/hooks/useSpinner.ts +0 -28
  349. package/src/hooks/useToastManager.ts +0 -26
  350. package/src/index.ts +0 -188
  351. package/src/keyboard-handler.ts +0 -134
  352. package/src/profiler.ts +0 -40
  353. package/src/runtime/context.tsx +0 -16
  354. package/src/runtime/factory.ts +0 -63
  355. package/src/runtime/git/git-info.ts +0 -25
  356. package/src/runtime/session/session-controller.ts +0 -208
  357. package/src/session-manager.ts +0 -1
  358. package/src/session-picker.tsx +0 -134
  359. package/src/shell-runner.ts +0 -134
  360. package/src/syntax-highlighting.ts +0 -114
  361. package/src/theme-names.ts +0 -37
  362. package/src/tool-ui-contracts.ts +0 -77
  363. package/src/tui-open-rendering.tsx +0 -565
  364. package/src/types.ts +0 -89
  365. package/src/ui/app-shell/TuiApp.tsx +0 -586
  366. package/src/ui/clipboard/osc52.ts +0 -18
  367. package/src/ui/components/modals/ConfirmModal.tsx +0 -52
  368. package/src/ui/components/modals/EditorModal.tsx +0 -39
  369. package/src/ui/components/modals/InputModal.tsx +0 -30
  370. package/src/ui/components/modals/ModalContainer.tsx +0 -67
  371. package/src/ui/components/modals/SelectModal.tsx +0 -48
  372. package/src/ui/features/composer/Composer.tsx +0 -73
  373. package/src/ui/features/composer/SlashCommandHandler.ts +0 -58
  374. package/src/ui/features/composer/keyboard.ts +0 -3
  375. package/src/ui/features/main-view/MainView.tsx +0 -367
  376. package/src/ui/features/message-pane/MessagePane.tsx +0 -34
  377. package/src/ui/hooks/useModals.ts +0 -74
  378. package/src/ui/state/app-store.ts +0 -67
  379. package/src/utils.ts +0 -14
@@ -0,0 +1,269 @@
1
+ import { TextareaRenderable } from "@opentui/core";
2
+ import { useTerminalDimensions } from "@opentui/solid";
3
+ import { CombinedAutocompleteProvider, ToastViewport, copyToClipboard, useRenderer, useTheme, } from "@yeshwanthyk/open-tui";
4
+ import { createSignal, createEffect, onMount } from "solid-js";
5
+ import { createAutocompleteCommands } from "../../../autocomplete-commands.js";
6
+ import { Footer } from "../../../components/Footer.js";
7
+ import { Header } from "../../../components/Header.js";
8
+ import { useGitStatus } from "../../../hooks/useGitStatus.js";
9
+ import { useSpinner } from "../../../hooks/useSpinner.js";
10
+ import { useToastManager } from "../../../hooks/useToastManager.js";
11
+ import { useEditorBridge } from "../../../hooks/useEditorBridge.js";
12
+ import { MessagePane } from "../message-pane/MessagePane.js";
13
+ import { Composer } from "../composer/Composer.js";
14
+ import { createComposerKeyboardHandler } from "../composer/keyboard.js";
15
+ export function MainView(props) {
16
+ const { theme } = useTheme();
17
+ const dimensions = useTerminalDimensions();
18
+ let textareaRef;
19
+ const lastCtrlC = { current: 0 };
20
+ const branch = useGitStatus();
21
+ const spinnerFrame = useSpinner(() => props.activityState);
22
+ const renderer = useRenderer();
23
+ const { toasts, pushToast } = useToastManager();
24
+ const shownValidationKeys = new Set();
25
+ createEffect(() => {
26
+ const issues = props.validationIssues ?? [];
27
+ const showList = issues.slice(0, 3);
28
+ for (const issue of showList) {
29
+ const key = `${issue.severity}:${issue.path}:${issue.message}`;
30
+ if (shownValidationKeys.has(key))
31
+ continue;
32
+ shownValidationKeys.add(key);
33
+ console.error(`[marvin][extension][${issue.kind}] ${issue.path}: ${issue.message}`);
34
+ pushToast({
35
+ title: issue.severity === "error" ? "Extension error" : "Extension warning",
36
+ message: `${issue.path}: ${issue.message}`,
37
+ variant: issue.severity === "error" ? "error" : "warning",
38
+ }, 6000);
39
+ }
40
+ });
41
+ const { openBuffer, editFile } = useEditorBridge({
42
+ editor: props.editor,
43
+ renderer,
44
+ pushToast,
45
+ isResponding: () => props.isResponding,
46
+ onSubmit: (text) => props.onSubmit(text),
47
+ });
48
+ const builtInAutocomplete = createAutocompleteCommands(() => ({ currentProvider: props.provider }));
49
+ const customAutocomplete = Array.from(props.customCommands.values()).map((cmd) => ({
50
+ name: cmd.name,
51
+ description: cmd.description,
52
+ }));
53
+ const autocompleteProvider = new CombinedAutocompleteProvider([...builtInAutocomplete, ...customAutocomplete], process.cwd());
54
+ const [autocompleteItems, setAutocompleteItems] = createSignal([]);
55
+ const [autocompletePrefix, setAutocompletePrefix] = createSignal("");
56
+ const [autocompleteIndex, setAutocompleteIndex] = createSignal(0);
57
+ const [showAutocomplete, setShowAutocomplete] = createSignal(false);
58
+ const [isBashMode, setIsBashMode] = createSignal(false);
59
+ let suppressNextAutocompleteUpdate = false;
60
+ const updateAutocomplete = (text, cursorLine, cursorCol) => {
61
+ const lines = text.split("\n");
62
+ const currentLine = lines[cursorLine] ?? "";
63
+ const beforeCursor = currentLine.slice(0, cursorCol);
64
+ if (beforeCursor.trim() === "") {
65
+ setShowAutocomplete(false);
66
+ setAutocompleteItems([]);
67
+ return;
68
+ }
69
+ const result = autocompleteProvider.getSuggestions(lines, cursorLine, cursorCol);
70
+ if (result && result.items.length > 0) {
71
+ const prevPrefix = autocompletePrefix();
72
+ const newItems = result.items.slice(0, 30);
73
+ setAutocompleteItems(newItems);
74
+ setAutocompletePrefix(result.prefix);
75
+ if (result.prefix !== prevPrefix) {
76
+ setAutocompleteIndex(0);
77
+ }
78
+ else {
79
+ setAutocompleteIndex((i) => Math.min(i, newItems.length - 1));
80
+ }
81
+ setShowAutocomplete(true);
82
+ }
83
+ else {
84
+ setShowAutocomplete(false);
85
+ setAutocompleteItems([]);
86
+ }
87
+ };
88
+ const applyAutocomplete = () => {
89
+ if (!showAutocomplete() || !textareaRef)
90
+ return false;
91
+ const items = autocompleteItems();
92
+ const idx = autocompleteIndex();
93
+ if (idx < 0 || idx >= items.length)
94
+ return false;
95
+ const cursor = textareaRef.logicalCursor;
96
+ const text = textareaRef.plainText;
97
+ const lines = text.split("\n");
98
+ const result = autocompleteProvider.applyCompletion(lines, cursor.row, cursor.col, items[idx], autocompletePrefix());
99
+ const newText = result.lines.join("\n");
100
+ if (newText === text) {
101
+ setShowAutocomplete(false);
102
+ setAutocompleteItems([]);
103
+ return false;
104
+ }
105
+ suppressNextAutocompleteUpdate = true;
106
+ textareaRef.replaceText(newText);
107
+ textareaRef.editBuffer.setCursorToLineCol(result.cursorLine, result.cursorCol);
108
+ setShowAutocomplete(false);
109
+ setAutocompleteItems([]);
110
+ return true;
111
+ };
112
+ onMount(() => {
113
+ textareaRef?.focus();
114
+ });
115
+ const exitApp = async () => {
116
+ try {
117
+ renderer.destroy();
118
+ await props.onBeforeExit?.();
119
+ }
120
+ finally {
121
+ process.exit(0);
122
+ }
123
+ };
124
+ props.exitHandlerRef.current = exitApp;
125
+ props.setEditorTextRef.current = (text) => textareaRef?.setText(text);
126
+ props.getEditorTextRef.current = () => textareaRef?.plainText ?? "";
127
+ props.showToastRef.current = (title, message, variant = "info") => {
128
+ pushToast({ title, message, variant }, 3000);
129
+ };
130
+ const copySelectionToClipboard = () => {
131
+ const sel = renderer.getSelection();
132
+ if (!sel)
133
+ return;
134
+ const text = sel.getSelectedText();
135
+ if (!text || text.length === 0)
136
+ return;
137
+ copyToClipboard(text);
138
+ pushToast({ title: "Copied to clipboard", variant: "success" }, 1500);
139
+ renderer.clearSelection();
140
+ };
141
+ const openEditorFromTui = async () => {
142
+ if (!textareaRef)
143
+ return;
144
+ setShowAutocomplete(false);
145
+ setAutocompleteItems([]);
146
+ textareaRef.clear();
147
+ const content = await openBuffer("");
148
+ if (content === undefined)
149
+ return;
150
+ suppressNextAutocompleteUpdate = true;
151
+ textareaRef.setText(content);
152
+ textareaRef.focus();
153
+ const lines = content.split("\n");
154
+ const lastLine = Math.max(0, lines.length - 1);
155
+ const lastCol = lines[lastLine]?.length ?? 0;
156
+ textareaRef.editBuffer.setCursorToLineCol(lastLine, lastCol);
157
+ updateAutocomplete(content, lastLine, lastCol);
158
+ };
159
+ props.editorOpenRef.current = openEditorFromTui;
160
+ const handleEditFile = (filePath, line) => {
161
+ void editFile(filePath, line);
162
+ };
163
+ let prevContextWindow = props.contextWindow;
164
+ createEffect(() => {
165
+ const newWindow = props.contextWindow;
166
+ const oldWindow = prevContextWindow;
167
+ prevContextWindow = newWindow;
168
+ if (oldWindow <= 0 || newWindow >= oldWindow)
169
+ return;
170
+ const tokens = props.contextTokens;
171
+ if (tokens <= 0)
172
+ return;
173
+ const usagePct = (tokens / newWindow) * 100;
174
+ const remaining = newWindow - tokens;
175
+ const formatK = (n) => (n >= 1000 ? `${Math.round(n / 1000)}k` : String(n));
176
+ if (usagePct > 100) {
177
+ pushToast({
178
+ title: `Context overflow: ${formatK(tokens)}/${formatK(newWindow)}`,
179
+ message: "Run /compact before continuing",
180
+ variant: "error",
181
+ }, 5000);
182
+ }
183
+ else if (usagePct > 85) {
184
+ pushToast({
185
+ title: `Context near limit: ${formatK(tokens)}/${formatK(newWindow)}`,
186
+ message: `${formatK(remaining)} remaining`,
187
+ variant: "warning",
188
+ }, 4000);
189
+ }
190
+ });
191
+ const [expandedToolIds, setExpandedToolIds] = createSignal(new Set());
192
+ const isToolExpanded = (id) => expandedToolIds().has(id);
193
+ const toggleToolExpanded = (id) => setExpandedToolIds((prev) => {
194
+ const next = new Set(prev);
195
+ if (next.has(id))
196
+ next.delete(id);
197
+ else
198
+ next.add(id);
199
+ return next;
200
+ });
201
+ const toggleLastToolExpanded = () => {
202
+ const last = props.toolBlocks[props.toolBlocks.length - 1];
203
+ if (last)
204
+ toggleToolExpanded(last.id);
205
+ };
206
+ const [expandedThinkingIds, setExpandedThinkingIds] = createSignal(new Set());
207
+ const isThinkingExpanded = (id) => expandedThinkingIds().has(id);
208
+ const toggleThinkingExpanded = (id) => setExpandedThinkingIds((prev) => {
209
+ const next = new Set(prev);
210
+ if (next.has(id))
211
+ next.delete(id);
212
+ else
213
+ next.add(id);
214
+ return next;
215
+ });
216
+ const handleKeyDown = createComposerKeyboardHandler({
217
+ showAutocomplete,
218
+ autocompleteItems,
219
+ setAutocompleteIndex,
220
+ setShowAutocomplete,
221
+ applyAutocomplete,
222
+ isResponding: () => props.isResponding,
223
+ retryStatus: () => props.retryStatus,
224
+ onAbort: props.onAbort,
225
+ onToggleThinking: props.onToggleThinking,
226
+ onCycleModel: props.onCycleModel,
227
+ onCycleThinking: props.onCycleThinking,
228
+ toggleLastToolExpanded,
229
+ copySelectionToClipboard,
230
+ clearEditor: () => textareaRef?.clear(),
231
+ setEditorText: (text) => textareaRef?.setText(text),
232
+ lastCtrlC,
233
+ onExit: exitApp,
234
+ });
235
+ const handleComposerContentChange = () => {
236
+ if (!textareaRef)
237
+ return;
238
+ if (suppressNextAutocompleteUpdate) {
239
+ suppressNextAutocompleteUpdate = false;
240
+ return;
241
+ }
242
+ const text = textareaRef.plainText;
243
+ setIsBashMode(text.trimStart().startsWith("!"));
244
+ const cursor = textareaRef.logicalCursor;
245
+ updateAutocomplete(text, cursor.row, cursor.col);
246
+ };
247
+ return (<box flexDirection="column" width={dimensions().width} height={dimensions().height} onMouseUp={() => {
248
+ const sel = renderer.getSelection();
249
+ if (sel && sel.getSelectedText())
250
+ copySelectionToClipboard();
251
+ }}>
252
+ <Header modelId={props.modelId} thinking={props.thinking} contextTokens={props.contextTokens} contextWindow={props.contextWindow} queueCounts={props.queueCounts} activityState={props.activityState} retryStatus={props.retryStatus} lspActive={props.lspActive} spinnerFrame={spinnerFrame()} lsp={props.lsp}/>
253
+ <MessagePane messages={props.messages} toolBlocks={props.toolBlocks} thinkingVisible={props.thinkingVisible} diffWrapMode={props.diffWrapMode} concealMarkdown={props.concealMarkdown} isToolExpanded={isToolExpanded} toggleToolExpanded={toggleToolExpanded} isThinkingExpanded={isThinkingExpanded} toggleThinkingExpanded={toggleThinkingExpanded} onEditFile={handleEditFile}/>
254
+ <Composer theme={theme} isBashMode={isBashMode} showAutocomplete={showAutocomplete} autocompleteItems={autocompleteItems} autocompleteIndex={autocompleteIndex} textareaRef={(ref) => {
255
+ textareaRef = ref;
256
+ ref.focus();
257
+ }} onContentChange={handleComposerContentChange} onSubmit={() => {
258
+ if (!textareaRef)
259
+ return;
260
+ props.onSubmit(textareaRef.plainText, () => {
261
+ textareaRef?.clear();
262
+ setIsBashMode(false);
263
+ });
264
+ }} onKeyDown={handleKeyDown} terminalWidth={() => dimensions().width}/>
265
+ <Footer branch={branch()} bashMode={isBashMode()}/>
266
+ <ToastViewport toasts={toasts()}/>
267
+ </box>);
268
+ }
269
+ //# sourceMappingURL=MainView.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainView.jsx","sourceRoot":"","sources":["../../../../src/ui/features/main-view/MainView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ToolBlock, UIMessage } from "../../../types.js";
2
+ export interface MessagePaneProps {
3
+ messages: UIMessage[];
4
+ toolBlocks: ToolBlock[];
5
+ thinkingVisible: boolean;
6
+ diffWrapMode: "word" | "none";
7
+ concealMarkdown: boolean;
8
+ isToolExpanded: (id: string) => boolean;
9
+ toggleToolExpanded: (id: string) => void;
10
+ isThinkingExpanded: (id: string) => boolean;
11
+ toggleThinkingExpanded: (id: string) => void;
12
+ onEditFile: (filePath: string, line?: number) => void;
13
+ }
14
+ export declare function MessagePane(props: MessagePaneProps): any;
15
+ //# sourceMappingURL=MessagePane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessagePane.d.ts","sourceRoot":"","sources":["../../../../src/ui/features/message-pane/MessagePane.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAG7D,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,eAAe,EAAE,OAAO,CAAA;IACxB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;IACvC,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;IAC3C,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACrD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,OAiBlD"}
@@ -0,0 +1,7 @@
1
+ import { MessageList } from "../../../components/MessageList.js";
2
+ export function MessagePane(props) {
3
+ return (<scrollbox stickyScroll stickyStart="bottom" flexGrow={props.messages.length > 0 ? 1 : 0} flexShrink={1}>
4
+ <MessageList messages={props.messages} toolBlocks={props.toolBlocks} thinkingVisible={props.thinkingVisible} diffWrapMode={props.diffWrapMode} concealMarkdown={props.concealMarkdown} isToolExpanded={props.isToolExpanded} toggleToolExpanded={props.toggleToolExpanded} isThinkingExpanded={props.isThinkingExpanded} toggleThinkingExpanded={props.toggleThinkingExpanded} onEditFile={props.onEditFile}/>
5
+ </scrollbox>);
6
+ }
7
+ //# sourceMappingURL=MessagePane.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessagePane.jsx","sourceRoot":"","sources":["../../../../src/ui/features/message-pane/MessagePane.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAehE,MAAM,UAAU,WAAW,CAAC,KAAuB;IAClD,OAAO,CACN,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACvG;GAAA,CAAC,WAAW,CACX,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CACzB,UAAU,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAC7B,eAAe,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CACvC,YAAY,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CACjC,eAAe,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CACvC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CACrC,kBAAkB,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAC7C,kBAAkB,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAC7C,sBAAsB,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CACrD,UAAU,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAE/B;EAAA,EAAE,SAAS,CAAC,CACZ,CAAA;AACF,CAAC"}
@@ -0,0 +1,35 @@
1
+ export type ModalType = "select" | "input" | "confirm" | "editor" | null;
2
+ export interface SelectModalState {
3
+ type: "select";
4
+ title: string;
5
+ options: string[];
6
+ resolve: (value: string | undefined) => void;
7
+ }
8
+ export interface InputModalState {
9
+ type: "input";
10
+ title: string;
11
+ placeholder?: string;
12
+ resolve: (value: string | undefined) => void;
13
+ }
14
+ export interface ConfirmModalState {
15
+ type: "confirm";
16
+ title: string;
17
+ message: string;
18
+ resolve: (confirmed: boolean) => void;
19
+ }
20
+ export interface EditorModalState {
21
+ type: "editor";
22
+ title: string;
23
+ initialText?: string;
24
+ resolve: (value: string | undefined) => void;
25
+ }
26
+ export type ModalState = SelectModalState | InputModalState | ConfirmModalState | EditorModalState | null;
27
+ export declare function useModals(): {
28
+ modalState: import("solid-js").Accessor<ModalState>;
29
+ showSelect: (title: string, options: string[]) => Promise<string | undefined>;
30
+ showInput: (title: string, placeholder?: string) => Promise<string | undefined>;
31
+ showConfirm: (title: string, message: string) => Promise<boolean>;
32
+ showEditor: (title: string, initialText?: string) => Promise<string | undefined>;
33
+ closeModal: () => void;
34
+ };
35
+ //# sourceMappingURL=useModals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useModals.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useModals.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAA;AAExE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;CAC5C;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;CAC5C;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;CAC5C;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,IAAI,CAAA;AAEzG,wBAAgB,SAAS;;wBAGG,MAAM,WAAW,MAAM,EAAE,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;uBAMxD,MAAM,gBAAgB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;yBAMxD,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;wBAM3C,MAAM,gBAAgB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;EAkBrF"}
@@ -0,0 +1,36 @@
1
+ import { createSignal } from "solid-js";
2
+ export function useModals() {
3
+ const [modalState, setModalState] = createSignal(null);
4
+ const showSelect = (title, options) => {
5
+ return new Promise((resolve) => {
6
+ setModalState({ type: "select", title, options, resolve });
7
+ });
8
+ };
9
+ const showInput = (title, placeholder) => {
10
+ return new Promise((resolve) => {
11
+ setModalState({ type: "input", title, placeholder, resolve });
12
+ });
13
+ };
14
+ const showConfirm = (title, message) => {
15
+ return new Promise((resolve) => {
16
+ setModalState({ type: "confirm", title, message, resolve });
17
+ });
18
+ };
19
+ const showEditor = (title, initialText) => {
20
+ return new Promise((resolve) => {
21
+ setModalState({ type: "editor", title, initialText, resolve });
22
+ });
23
+ };
24
+ const closeModal = () => {
25
+ setModalState(null);
26
+ };
27
+ return {
28
+ modalState,
29
+ showSelect,
30
+ showInput,
31
+ showConfirm,
32
+ showEditor,
33
+ closeModal,
34
+ };
35
+ }
36
+ //# sourceMappingURL=useModals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useModals.js","sourceRoot":"","sources":["../../../src/ui/hooks/useModals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAkCvC,MAAM,UAAU,SAAS;IACxB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,YAAY,CAAa,IAAI,CAAC,CAAA;IAElE,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,OAAiB,EAA+B,EAAE;QACpF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;IACH,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,WAAoB,EAA+B,EAAE;QACtF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,OAAe,EAAoB,EAAE;QACxE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,WAAoB,EAA+B,EAAE;QACvF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACvB,aAAa,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,OAAO;QACN,UAAU;QACV,UAAU;QACV,SAAS;QACT,WAAW;QACX,UAAU;QACV,UAAU;KACV,CAAA;AACF,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { type Accessor, type Setter } from "solid-js";
2
+ import type { ThinkingLevel } from "@yeshwanthyk/agent-core";
3
+ import type { KnownProvider } from "@yeshwanthyk/ai";
4
+ import type { ActivityState, ToolBlock, UIMessage } from "../../types.js";
5
+ import type { QueueCounts } from "@yeshwanthyk/runtime-effect/session/prompt-queue.js";
6
+ interface SignalRef<T> {
7
+ value: Accessor<T>;
8
+ set: Setter<T>;
9
+ }
10
+ export interface AppStore {
11
+ theme: SignalRef<string>;
12
+ messages: SignalRef<UIMessage[]>;
13
+ toolBlocks: SignalRef<ToolBlock[]>;
14
+ isResponding: SignalRef<boolean>;
15
+ activityState: SignalRef<ActivityState>;
16
+ thinkingVisible: SignalRef<boolean>;
17
+ diffWrapMode: SignalRef<"word" | "none">;
18
+ concealMarkdown: SignalRef<boolean>;
19
+ displayModelId: SignalRef<string>;
20
+ displayThinking: SignalRef<ThinkingLevel>;
21
+ displayContextWindow: SignalRef<number>;
22
+ contextTokens: SignalRef<number>;
23
+ cacheStats: SignalRef<{
24
+ cacheRead: number;
25
+ input: number;
26
+ } | null>;
27
+ retryStatus: SignalRef<string | null>;
28
+ turnCount: SignalRef<number>;
29
+ lspActive: SignalRef<boolean>;
30
+ queueCounts: SignalRef<QueueCounts>;
31
+ currentProvider: SignalRef<KnownProvider>;
32
+ }
33
+ export interface AppStoreConfig {
34
+ initialTheme: string;
35
+ initialModelId: string;
36
+ initialThinking: ThinkingLevel;
37
+ initialContextWindow: number;
38
+ initialProvider: KnownProvider;
39
+ }
40
+ export declare const createAppStore: (config: AppStoreConfig) => AppStore;
41
+ export {};
42
+ //# sourceMappingURL=app-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-store.d.ts","sourceRoot":"","sources":["../../../src/ui/state/app-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAA;AAEtF,UAAU,SAAS,CAAC,CAAC;IACpB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IAClB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;CACd;AAOD,MAAM,WAAW,QAAQ;IACxB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACxB,QAAQ,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;IAChC,UAAU,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;IAClC,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAChC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,CAAA;IACvC,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IACnC,YAAY,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;IACxC,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IACnC,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACjC,eAAe,EAAE,SAAS,CAAC,aAAa,CAAC,CAAA;IACzC,oBAAoB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACvC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IAChC,UAAU,EAAE,SAAS,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAClE,WAAW,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACrC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IAC5B,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC7B,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;IACnC,eAAe,EAAE,SAAS,CAAC,aAAa,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,cAAc;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,aAAa,CAAA;IAC9B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,eAAe,EAAE,aAAa,CAAA;CAC9B;AAED,eAAO,MAAM,cAAc,GAAI,QAAQ,cAAc,KAAG,QAqBvD,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { createSignal } from "solid-js";
2
+ const createSignalRef = (initial) => {
3
+ const [value, set] = createSignal(initial);
4
+ return { value, set };
5
+ };
6
+ export const createAppStore = (config) => {
7
+ return {
8
+ theme: createSignalRef(config.initialTheme),
9
+ messages: createSignalRef([]),
10
+ toolBlocks: createSignalRef([]),
11
+ isResponding: createSignalRef(false),
12
+ activityState: createSignalRef("idle"),
13
+ thinkingVisible: createSignalRef(true),
14
+ diffWrapMode: createSignalRef("word"),
15
+ concealMarkdown: createSignalRef(true),
16
+ displayModelId: createSignalRef(config.initialModelId),
17
+ displayThinking: createSignalRef(config.initialThinking),
18
+ displayContextWindow: createSignalRef(config.initialContextWindow),
19
+ contextTokens: createSignalRef(0),
20
+ cacheStats: createSignalRef(null),
21
+ retryStatus: createSignalRef(null),
22
+ turnCount: createSignalRef(0),
23
+ lspActive: createSignalRef(false),
24
+ queueCounts: createSignalRef({ steer: 0, followUp: 0 }),
25
+ currentProvider: createSignalRef(config.initialProvider),
26
+ };
27
+ };
28
+ //# sourceMappingURL=app-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-store.js","sourceRoot":"","sources":["../../../src/ui/state/app-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,MAAM,UAAU,CAAA;AAWnE,MAAM,eAAe,GAAG,CAAK,OAAU,EAAgB,EAAE;IACxD,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAC1C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACtB,CAAC,CAAA;AA+BD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAsB,EAAY,EAAE;IAClE,OAAO;QACN,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC;QAC3C,QAAQ,EAAE,eAAe,CAAc,EAAE,CAAC;QAC1C,UAAU,EAAE,eAAe,CAAc,EAAE,CAAC;QAC5C,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC;QACpC,aAAa,EAAE,eAAe,CAAgB,MAAM,CAAC;QACrD,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC;QACtC,YAAY,EAAE,eAAe,CAAkB,MAAM,CAAC;QACtD,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC;QACtC,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC;QACtD,eAAe,EAAE,eAAe,CAAgB,MAAM,CAAC,eAAe,CAAC;QACvE,oBAAoB,EAAE,eAAe,CAAC,MAAM,CAAC,oBAAoB,CAAC;QAClE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;QACjC,UAAU,EAAE,eAAe,CAA8C,IAAI,CAAC;QAC9E,WAAW,EAAE,eAAe,CAAgB,IAAI,CAAC;QACjD,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;QAC7B,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC;QACjC,WAAW,EAAE,eAAe,CAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACpE,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC;KACxD,CAAA;AACF,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { MESSAGE_CAP, appendWithCap, extractOrderedBlocks, extractThinking, extractToolCalls, extractText, getEditDiffText, getToolText, type ExtractedToolCall, type OrderedBlock, } from "./domain/messaging/content.js";
2
+ export { findGitHeadPath, getCurrentBranch } from "./runtime/git/git-info.js";
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,YAAY,GACjB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA"}
package/dist/utils.js ADDED
@@ -0,0 +1,3 @@
1
+ export { MESSAGE_CAP, appendWithCap, extractOrderedBlocks, extractThinking, extractToolCalls, extractText, getEditDiffText, getToolText, } from "./domain/messaging/content.js";
2
+ export { findGitHeadPath, getCurrentBranch } from "./runtime/git/git-info.js";
3
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,WAAW,GAGX,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA"}
package/package.json CHANGED
@@ -1,19 +1,31 @@
1
1
  {
2
2
  "name": "@yeshwanthyk/coding-agent",
3
- "version": "0.3.0",
3
+ "version": "0.3.3",
4
4
  "type": "module",
5
5
  "bin": {
6
- "marvin": "./src/index.ts"
6
+ "marvin": "./dist/index.js"
7
+ },
8
+ "main": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ },
15
+ "./package.json": "./package.json"
7
16
  },
8
17
  "files": [
9
- "src",
18
+ "dist",
10
19
  "README.md",
11
20
  "CHANGELOG.md",
12
21
  "package.json"
13
22
  ],
14
23
  "scripts": {
24
+ "clean": "rm -rf dist",
15
25
  "test": "bun test tests",
16
- "build": "bun scripts/build.ts"
26
+ "build": "tsc -b tsconfig.build.json --force && tsc-alias -p tsconfig.alias.json",
27
+ "build:binary": "bun scripts/build.ts",
28
+ "prepublishOnly": "npm run build -w @yeshwanthyk/open-tui && npm run clean && npm run build"
17
29
  },
18
30
  "engines": {
19
31
  "node": ">=20.0.0",
@@ -24,8 +36,8 @@
24
36
  "@yeshwanthyk/ai": "^0.1.0",
25
37
  "@yeshwanthyk/base-tools": "^0.1.0",
26
38
  "@yeshwanthyk/lsp": "^0.1.0",
27
- "@yeshwanthyk/runtime-effect": "^0.1.0",
28
- "@yeshwanthyk/open-tui": "^0.1.0",
39
+ "@yeshwanthyk/runtime-effect": "^0.1.1",
40
+ "@yeshwanthyk/open-tui": "^0.1.2",
29
41
  "@opentui/core": "0.1.63",
30
42
  "@opentui/solid": "0.1.63",
31
43
  "chalk": "^5.6.2",
@@ -37,6 +49,7 @@
37
49
  "@babel/core": "^7.28.5",
38
50
  "@babel/preset-typescript": "^7.28.5",
39
51
  "@types/bun": "^1.3.5",
40
- "babel-preset-solid": "1.9.9"
52
+ "babel-preset-solid": "1.9.9",
53
+ "tsc-alias": "^1.8.16"
41
54
  }
42
55
  }