zerg-ztc 0.1.0

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 (411) hide show
  1. package/README.md +361 -0
  2. package/dist/App.d.ts +4 -0
  3. package/dist/App.d.ts.map +1 -0
  4. package/dist/App.js +499 -0
  5. package/dist/App.js.map +1 -0
  6. package/dist/agent/agent.d.ts +54 -0
  7. package/dist/agent/agent.d.ts.map +1 -0
  8. package/dist/agent/agent.js +347 -0
  9. package/dist/agent/agent.js.map +1 -0
  10. package/dist/agent/backends/anthropic.d.ts +13 -0
  11. package/dist/agent/backends/anthropic.d.ts.map +1 -0
  12. package/dist/agent/backends/anthropic.js +54 -0
  13. package/dist/agent/backends/anthropic.js.map +1 -0
  14. package/dist/agent/backends/gemini.d.ts +13 -0
  15. package/dist/agent/backends/gemini.d.ts.map +1 -0
  16. package/dist/agent/backends/gemini.js +71 -0
  17. package/dist/agent/backends/gemini.js.map +1 -0
  18. package/dist/agent/backends/inception.d.ts +12 -0
  19. package/dist/agent/backends/inception.d.ts.map +1 -0
  20. package/dist/agent/backends/inception.js +15 -0
  21. package/dist/agent/backends/inception.js.map +1 -0
  22. package/dist/agent/backends/index.d.ts +7 -0
  23. package/dist/agent/backends/index.d.ts.map +1 -0
  24. package/dist/agent/backends/index.js +6 -0
  25. package/dist/agent/backends/index.js.map +1 -0
  26. package/dist/agent/backends/openai.d.ts +12 -0
  27. package/dist/agent/backends/openai.d.ts.map +1 -0
  28. package/dist/agent/backends/openai.js +15 -0
  29. package/dist/agent/backends/openai.js.map +1 -0
  30. package/dist/agent/backends/openai_compatible.d.ts +17 -0
  31. package/dist/agent/backends/openai_compatible.d.ts.map +1 -0
  32. package/dist/agent/backends/openai_compatible.js +95 -0
  33. package/dist/agent/backends/openai_compatible.js.map +1 -0
  34. package/dist/agent/backends/types.d.ts +49 -0
  35. package/dist/agent/backends/types.d.ts.map +1 -0
  36. package/dist/agent/backends/types.js +2 -0
  37. package/dist/agent/backends/types.js.map +1 -0
  38. package/dist/agent/commands/clipboard.d.ts +3 -0
  39. package/dist/agent/commands/clipboard.d.ts.map +1 -0
  40. package/dist/agent/commands/clipboard.js +72 -0
  41. package/dist/agent/commands/clipboard.js.map +1 -0
  42. package/dist/agent/commands/config.d.ts +3 -0
  43. package/dist/agent/commands/config.d.ts.map +1 -0
  44. package/dist/agent/commands/config.js +120 -0
  45. package/dist/agent/commands/config.js.map +1 -0
  46. package/dist/agent/commands/debug.d.ts +3 -0
  47. package/dist/agent/commands/debug.d.ts.map +1 -0
  48. package/dist/agent/commands/debug.js +23 -0
  49. package/dist/agent/commands/debug.js.map +1 -0
  50. package/dist/agent/commands/emulation.d.ts +3 -0
  51. package/dist/agent/commands/emulation.d.ts.map +1 -0
  52. package/dist/agent/commands/emulation.js +78 -0
  53. package/dist/agent/commands/emulation.js.map +1 -0
  54. package/dist/agent/commands/execution.d.ts +3 -0
  55. package/dist/agent/commands/execution.d.ts.map +1 -0
  56. package/dist/agent/commands/execution.js +8 -0
  57. package/dist/agent/commands/execution.js.map +1 -0
  58. package/dist/agent/commands/help.d.ts +3 -0
  59. package/dist/agent/commands/help.d.ts.map +1 -0
  60. package/dist/agent/commands/help.js +19 -0
  61. package/dist/agent/commands/help.js.map +1 -0
  62. package/dist/agent/commands/history.d.ts +3 -0
  63. package/dist/agent/commands/history.d.ts.map +1 -0
  64. package/dist/agent/commands/history.js +12 -0
  65. package/dist/agent/commands/history.js.map +1 -0
  66. package/dist/agent/commands/index.d.ts +4 -0
  67. package/dist/agent/commands/index.d.ts.map +1 -0
  68. package/dist/agent/commands/index.js +19 -0
  69. package/dist/agent/commands/index.js.map +1 -0
  70. package/dist/agent/commands/model.d.ts +3 -0
  71. package/dist/agent/commands/model.d.ts.map +1 -0
  72. package/dist/agent/commands/model.js +10 -0
  73. package/dist/agent/commands/model.js.map +1 -0
  74. package/dist/agent/commands/models.d.ts +3 -0
  75. package/dist/agent/commands/models.d.ts.map +1 -0
  76. package/dist/agent/commands/models.js +110 -0
  77. package/dist/agent/commands/models.js.map +1 -0
  78. package/dist/agent/commands/permissions.d.ts +3 -0
  79. package/dist/agent/commands/permissions.d.ts.map +1 -0
  80. package/dist/agent/commands/permissions.js +58 -0
  81. package/dist/agent/commands/permissions.js.map +1 -0
  82. package/dist/agent/commands/retry.d.ts +3 -0
  83. package/dist/agent/commands/retry.d.ts.map +1 -0
  84. package/dist/agent/commands/retry.js +8 -0
  85. package/dist/agent/commands/retry.js.map +1 -0
  86. package/dist/agent/commands/shell.d.ts +4 -0
  87. package/dist/agent/commands/shell.d.ts.map +1 -0
  88. package/dist/agent/commands/shell.js +66 -0
  89. package/dist/agent/commands/shell.js.map +1 -0
  90. package/dist/agent/commands/skills.d.ts +3 -0
  91. package/dist/agent/commands/skills.d.ts.map +1 -0
  92. package/dist/agent/commands/skills.js +50 -0
  93. package/dist/agent/commands/skills.js.map +1 -0
  94. package/dist/agent/commands/status.d.ts +3 -0
  95. package/dist/agent/commands/status.d.ts.map +1 -0
  96. package/dist/agent/commands/status.js +18 -0
  97. package/dist/agent/commands/status.js.map +1 -0
  98. package/dist/agent/commands/types.d.ts +70 -0
  99. package/dist/agent/commands/types.d.ts.map +1 -0
  100. package/dist/agent/commands/types.js +2 -0
  101. package/dist/agent/commands/types.js.map +1 -0
  102. package/dist/agent/factory.d.ts +13 -0
  103. package/dist/agent/factory.d.ts.map +1 -0
  104. package/dist/agent/factory.js +46 -0
  105. package/dist/agent/factory.js.map +1 -0
  106. package/dist/agent/index.d.ts +14 -0
  107. package/dist/agent/index.d.ts.map +1 -0
  108. package/dist/agent/index.js +10 -0
  109. package/dist/agent/index.js.map +1 -0
  110. package/dist/agent/runtime/capabilities.d.ts +7 -0
  111. package/dist/agent/runtime/capabilities.d.ts.map +1 -0
  112. package/dist/agent/runtime/capabilities.js +8 -0
  113. package/dist/agent/runtime/capabilities.js.map +1 -0
  114. package/dist/agent/runtime/memory.d.ts +13 -0
  115. package/dist/agent/runtime/memory.d.ts.map +1 -0
  116. package/dist/agent/runtime/memory.js +13 -0
  117. package/dist/agent/runtime/memory.js.map +1 -0
  118. package/dist/agent/runtime/policy.d.ts +22 -0
  119. package/dist/agent/runtime/policy.d.ts.map +1 -0
  120. package/dist/agent/runtime/policy.js +29 -0
  121. package/dist/agent/runtime/policy.js.map +1 -0
  122. package/dist/agent/runtime/session.d.ts +11 -0
  123. package/dist/agent/runtime/session.d.ts.map +1 -0
  124. package/dist/agent/runtime/session.js +10 -0
  125. package/dist/agent/runtime/session.js.map +1 -0
  126. package/dist/agent/runtime/tracing.d.ts +13 -0
  127. package/dist/agent/runtime/tracing.d.ts.map +1 -0
  128. package/dist/agent/runtime/tracing.js +6 -0
  129. package/dist/agent/runtime/tracing.js.map +1 -0
  130. package/dist/agent/tools/file.d.ts +5 -0
  131. package/dist/agent/tools/file.d.ts.map +1 -0
  132. package/dist/agent/tools/file.js +162 -0
  133. package/dist/agent/tools/file.js.map +1 -0
  134. package/dist/agent/tools/index.d.ts +13 -0
  135. package/dist/agent/tools/index.d.ts.map +1 -0
  136. package/dist/agent/tools/index.js +34 -0
  137. package/dist/agent/tools/index.js.map +1 -0
  138. package/dist/agent/tools/search.d.ts +3 -0
  139. package/dist/agent/tools/search.d.ts.map +1 -0
  140. package/dist/agent/tools/search.js +124 -0
  141. package/dist/agent/tools/search.js.map +1 -0
  142. package/dist/agent/tools/shell.d.ts +3 -0
  143. package/dist/agent/tools/shell.d.ts.map +1 -0
  144. package/dist/agent/tools/shell.js +60 -0
  145. package/dist/agent/tools/shell.js.map +1 -0
  146. package/dist/agent/tools/skills.d.ts +3 -0
  147. package/dist/agent/tools/skills.d.ts.map +1 -0
  148. package/dist/agent/tools/skills.js +27 -0
  149. package/dist/agent/tools/skills.js.map +1 -0
  150. package/dist/agent/tools/types.d.ts +8 -0
  151. package/dist/agent/tools/types.d.ts.map +1 -0
  152. package/dist/agent/tools/types.js +2 -0
  153. package/dist/agent/tools/types.js.map +1 -0
  154. package/dist/agent/tools/zerg.d.ts +3 -0
  155. package/dist/agent/tools/zerg.d.ts.map +1 -0
  156. package/dist/agent/tools/zerg.js +47 -0
  157. package/dist/agent/tools/zerg.js.map +1 -0
  158. package/dist/cli.d.ts +3 -0
  159. package/dist/cli.d.ts.map +1 -0
  160. package/dist/cli.js +75 -0
  161. package/dist/cli.js.map +1 -0
  162. package/dist/components/FullScreen.d.ts +28 -0
  163. package/dist/components/FullScreen.d.ts.map +1 -0
  164. package/dist/components/FullScreen.js +40 -0
  165. package/dist/components/FullScreen.js.map +1 -0
  166. package/dist/components/Header.d.ts +10 -0
  167. package/dist/components/Header.d.ts.map +1 -0
  168. package/dist/components/Header.js +14 -0
  169. package/dist/components/Header.js.map +1 -0
  170. package/dist/components/InputArea.d.ts +24 -0
  171. package/dist/components/InputArea.d.ts.map +1 -0
  172. package/dist/components/InputArea.js +476 -0
  173. package/dist/components/InputArea.js.map +1 -0
  174. package/dist/components/MessageList.d.ts +12 -0
  175. package/dist/components/MessageList.d.ts.map +1 -0
  176. package/dist/components/MessageList.js +9 -0
  177. package/dist/components/MessageList.js.map +1 -0
  178. package/dist/components/StatusBar.d.ts +18 -0
  179. package/dist/components/StatusBar.d.ts.map +1 -0
  180. package/dist/components/StatusBar.js +21 -0
  181. package/dist/components/StatusBar.js.map +1 -0
  182. package/dist/components/index.d.ts +6 -0
  183. package/dist/components/index.d.ts.map +1 -0
  184. package/dist/components/index.js +7 -0
  185. package/dist/components/index.js.map +1 -0
  186. package/dist/config/types.d.ts +12 -0
  187. package/dist/config/types.d.ts.map +1 -0
  188. package/dist/config/types.js +2 -0
  189. package/dist/config/types.js.map +1 -0
  190. package/dist/config.d.ts +28 -0
  191. package/dist/config.d.ts.map +1 -0
  192. package/dist/config.js +155 -0
  193. package/dist/config.js.map +1 -0
  194. package/dist/debug/logger.d.ts +2 -0
  195. package/dist/debug/logger.d.ts.map +1 -0
  196. package/dist/debug/logger.js +15 -0
  197. package/dist/debug/logger.js.map +1 -0
  198. package/dist/emulation/catalog.d.ts +4 -0
  199. package/dist/emulation/catalog.d.ts.map +1 -0
  200. package/dist/emulation/catalog.js +68 -0
  201. package/dist/emulation/catalog.js.map +1 -0
  202. package/dist/emulation/trace_style.d.ts +3 -0
  203. package/dist/emulation/trace_style.d.ts.map +1 -0
  204. package/dist/emulation/trace_style.js +10 -0
  205. package/dist/emulation/trace_style.js.map +1 -0
  206. package/dist/emulation/types.d.ts +8 -0
  207. package/dist/emulation/types.d.ts.map +1 -0
  208. package/dist/emulation/types.js +2 -0
  209. package/dist/emulation/types.js.map +1 -0
  210. package/dist/skills/index.d.ts +5 -0
  211. package/dist/skills/index.d.ts.map +1 -0
  212. package/dist/skills/index.js +36 -0
  213. package/dist/skills/index.js.map +1 -0
  214. package/dist/skills/loader.d.ts +3 -0
  215. package/dist/skills/loader.d.ts.map +1 -0
  216. package/dist/skills/loader.js +137 -0
  217. package/dist/skills/loader.js.map +1 -0
  218. package/dist/skills/registry.d.ts +3 -0
  219. package/dist/skills/registry.d.ts.map +1 -0
  220. package/dist/skills/registry.js +5 -0
  221. package/dist/skills/registry.js.map +1 -0
  222. package/dist/skills/types.d.ts +11 -0
  223. package/dist/skills/types.d.ts.map +1 -0
  224. package/dist/skills/types.js +2 -0
  225. package/dist/skills/types.js.map +1 -0
  226. package/dist/types.d.ts +93 -0
  227. package/dist/types.d.ts.map +1 -0
  228. package/dist/types.js +5 -0
  229. package/dist/types.js.map +1 -0
  230. package/dist/ui/core/factory.d.ts +4 -0
  231. package/dist/ui/core/factory.d.ts.map +1 -0
  232. package/dist/ui/core/factory.js +7 -0
  233. package/dist/ui/core/factory.js.map +1 -0
  234. package/dist/ui/core/index.d.ts +5 -0
  235. package/dist/ui/core/index.d.ts.map +1 -0
  236. package/dist/ui/core/index.js +4 -0
  237. package/dist/ui/core/index.js.map +1 -0
  238. package/dist/ui/core/input.d.ts +22 -0
  239. package/dist/ui/core/input.d.ts.map +1 -0
  240. package/dist/ui/core/input.js +15 -0
  241. package/dist/ui/core/input.js.map +1 -0
  242. package/dist/ui/core/input_segments.d.ts +19 -0
  243. package/dist/ui/core/input_segments.d.ts.map +1 -0
  244. package/dist/ui/core/input_segments.js +367 -0
  245. package/dist/ui/core/input_segments.js.map +1 -0
  246. package/dist/ui/core/input_state.d.ts +24 -0
  247. package/dist/ui/core/input_state.d.ts.map +1 -0
  248. package/dist/ui/core/input_state.js +2 -0
  249. package/dist/ui/core/input_state.js.map +1 -0
  250. package/dist/ui/core/layout_yoga.d.ts +11 -0
  251. package/dist/ui/core/layout_yoga.d.ts.map +1 -0
  252. package/dist/ui/core/layout_yoga.js +102 -0
  253. package/dist/ui/core/layout_yoga.js.map +1 -0
  254. package/dist/ui/core/style.d.ts +3 -0
  255. package/dist/ui/core/style.d.ts.map +1 -0
  256. package/dist/ui/core/style.js +37 -0
  257. package/dist/ui/core/style.js.map +1 -0
  258. package/dist/ui/core/types.d.ts +50 -0
  259. package/dist/ui/core/types.d.ts.map +1 -0
  260. package/dist/ui/core/types.js +2 -0
  261. package/dist/ui/core/types.js.map +1 -0
  262. package/dist/ui/ink/index.d.ts +2 -0
  263. package/dist/ui/ink/index.d.ts.map +1 -0
  264. package/dist/ui/ink/index.js +2 -0
  265. package/dist/ui/ink/index.js.map +1 -0
  266. package/dist/ui/ink/render.d.ts +6 -0
  267. package/dist/ui/ink/render.d.ts.map +1 -0
  268. package/dist/ui/ink/render.js +14 -0
  269. package/dist/ui/ink/render.js.map +1 -0
  270. package/dist/ui/views/app.d.ts +28 -0
  271. package/dist/ui/views/app.d.ts.map +1 -0
  272. package/dist/ui/views/app.js +59 -0
  273. package/dist/ui/views/app.js.map +1 -0
  274. package/dist/ui/views/header.d.ts +11 -0
  275. package/dist/ui/views/header.d.ts.map +1 -0
  276. package/dist/ui/views/header.js +28 -0
  277. package/dist/ui/views/header.js.map +1 -0
  278. package/dist/ui/views/input_area.d.ts +45 -0
  279. package/dist/ui/views/input_area.d.ts.map +1 -0
  280. package/dist/ui/views/input_area.js +183 -0
  281. package/dist/ui/views/input_area.js.map +1 -0
  282. package/dist/ui/views/message_list.d.ts +12 -0
  283. package/dist/ui/views/message_list.d.ts.map +1 -0
  284. package/dist/ui/views/message_list.js +381 -0
  285. package/dist/ui/views/message_list.js.map +1 -0
  286. package/dist/ui/views/status_bar.d.ts +18 -0
  287. package/dist/ui/views/status_bar.d.ts.map +1 -0
  288. package/dist/ui/views/status_bar.js +72 -0
  289. package/dist/ui/views/status_bar.js.map +1 -0
  290. package/dist/ui/vue/index.d.ts +5 -0
  291. package/dist/ui/vue/index.d.ts.map +1 -0
  292. package/dist/ui/vue/index.js +50 -0
  293. package/dist/ui/vue/index.js.map +1 -0
  294. package/dist/utils/clipboard.d.ts +2 -0
  295. package/dist/utils/clipboard.d.ts.map +1 -0
  296. package/dist/utils/clipboard.js +39 -0
  297. package/dist/utils/clipboard.js.map +1 -0
  298. package/dist/utils/clipboard_image.d.ts +2 -0
  299. package/dist/utils/clipboard_image.d.ts.map +1 -0
  300. package/dist/utils/clipboard_image.js +37 -0
  301. package/dist/utils/clipboard_image.js.map +1 -0
  302. package/dist/utils/diff.d.ts +2 -0
  303. package/dist/utils/diff.d.ts.map +1 -0
  304. package/dist/utils/diff.js +49 -0
  305. package/dist/utils/diff.js.map +1 -0
  306. package/dist/utils/image_preview.d.ts +2 -0
  307. package/dist/utils/image_preview.d.ts.map +1 -0
  308. package/dist/utils/image_preview.js +37 -0
  309. package/dist/utils/image_preview.js.map +1 -0
  310. package/dist/utils/models.d.ts +8 -0
  311. package/dist/utils/models.d.ts.map +1 -0
  312. package/dist/utils/models.js +85 -0
  313. package/dist/utils/models.js.map +1 -0
  314. package/dist/utils/shell.d.ts +4 -0
  315. package/dist/utils/shell.d.ts.map +1 -0
  316. package/dist/utils/shell.js +57 -0
  317. package/dist/utils/shell.js.map +1 -0
  318. package/dist/utils/tool_summary.d.ts +3 -0
  319. package/dist/utils/tool_summary.d.ts.map +1 -0
  320. package/dist/utils/tool_summary.js +54 -0
  321. package/dist/utils/tool_summary.js.map +1 -0
  322. package/dist/utils/tool_trace.d.ts +9 -0
  323. package/dist/utils/tool_trace.d.ts.map +1 -0
  324. package/dist/utils/tool_trace.js +183 -0
  325. package/dist/utils/tool_trace.js.map +1 -0
  326. package/package.json +41 -0
  327. package/src/App.tsx +576 -0
  328. package/src/agent/agent.ts +407 -0
  329. package/src/agent/backends/anthropic.ts +76 -0
  330. package/src/agent/backends/gemini.ts +107 -0
  331. package/src/agent/backends/inception.ts +23 -0
  332. package/src/agent/backends/index.ts +16 -0
  333. package/src/agent/backends/openai.ts +23 -0
  334. package/src/agent/backends/openai_compatible.ts +131 -0
  335. package/src/agent/backends/types.ts +59 -0
  336. package/src/agent/commands/clipboard.ts +77 -0
  337. package/src/agent/commands/config.ts +130 -0
  338. package/src/agent/commands/debug.ts +23 -0
  339. package/src/agent/commands/emulation.ts +80 -0
  340. package/src/agent/commands/execution.ts +9 -0
  341. package/src/agent/commands/help.ts +20 -0
  342. package/src/agent/commands/history.ts +13 -0
  343. package/src/agent/commands/index.ts +40 -0
  344. package/src/agent/commands/model.ts +11 -0
  345. package/src/agent/commands/models.ts +116 -0
  346. package/src/agent/commands/permissions.ts +64 -0
  347. package/src/agent/commands/retry.ts +9 -0
  348. package/src/agent/commands/shell.ts +68 -0
  349. package/src/agent/commands/skills.ts +54 -0
  350. package/src/agent/commands/status.ts +19 -0
  351. package/src/agent/commands/types.ts +78 -0
  352. package/src/agent/factory.ts +60 -0
  353. package/src/agent/index.ts +20 -0
  354. package/src/agent/runtime/capabilities.ts +6 -0
  355. package/src/agent/runtime/memory.ts +23 -0
  356. package/src/agent/runtime/policy.ts +48 -0
  357. package/src/agent/runtime/session.ts +18 -0
  358. package/src/agent/runtime/tracing.ts +23 -0
  359. package/src/agent/tools/file.ts +173 -0
  360. package/src/agent/tools/index.ts +46 -0
  361. package/src/agent/tools/search.ts +137 -0
  362. package/src/agent/tools/shell.ts +65 -0
  363. package/src/agent/tools/skills.ts +28 -0
  364. package/src/agent/tools/types.ts +10 -0
  365. package/src/agent/tools/zerg.ts +50 -0
  366. package/src/cli.tsx +80 -0
  367. package/src/components/FullScreen.tsx +73 -0
  368. package/src/components/Header.tsx +27 -0
  369. package/src/components/InputArea.tsx +551 -0
  370. package/src/components/MessageList.tsx +25 -0
  371. package/src/components/StatusBar.tsx +49 -0
  372. package/src/components/index.tsx +6 -0
  373. package/src/config/types.ts +11 -0
  374. package/src/config.ts +178 -0
  375. package/src/debug/logger.ts +14 -0
  376. package/src/emulation/README.md +24 -0
  377. package/src/emulation/catalog.ts +82 -0
  378. package/src/emulation/trace_style.ts +8 -0
  379. package/src/emulation/types.ts +7 -0
  380. package/src/skills/index.ts +36 -0
  381. package/src/skills/loader.ts +135 -0
  382. package/src/skills/registry.ts +6 -0
  383. package/src/skills/types.ts +10 -0
  384. package/src/types.ts +83 -0
  385. package/src/ui/README.md +44 -0
  386. package/src/ui/core/factory.ts +9 -0
  387. package/src/ui/core/index.ts +4 -0
  388. package/src/ui/core/input.ts +38 -0
  389. package/src/ui/core/input_segments.ts +375 -0
  390. package/src/ui/core/input_state.ts +17 -0
  391. package/src/ui/core/layout_yoga.ts +122 -0
  392. package/src/ui/core/style.ts +38 -0
  393. package/src/ui/core/types.ts +53 -0
  394. package/src/ui/ink/index.tsx +1 -0
  395. package/src/ui/ink/render.tsx +49 -0
  396. package/src/ui/views/app.ts +99 -0
  397. package/src/ui/views/header.ts +42 -0
  398. package/src/ui/views/input_area.ts +244 -0
  399. package/src/ui/views/message_list.ts +427 -0
  400. package/src/ui/views/status_bar.ts +104 -0
  401. package/src/ui/vue/index.ts +53 -0
  402. package/src/utils/clipboard.ts +39 -0
  403. package/src/utils/clipboard_image.ts +40 -0
  404. package/src/utils/diff.ts +52 -0
  405. package/src/utils/image_preview.ts +36 -0
  406. package/src/utils/models.ts +98 -0
  407. package/src/utils/shell.ts +63 -0
  408. package/src/utils/tool_summary.ts +56 -0
  409. package/src/utils/tool_trace.ts +206 -0
  410. package/tsconfig.json +22 -0
  411. package/vite.config.ts +363 -0
@@ -0,0 +1,183 @@
1
+ import { box, text } from '../core/index.js';
2
+ const suggestionLines = 4;
3
+ const promptPrefix = '❯ ';
4
+ const promptWidth = promptPrefix.length;
5
+ function badgeLabel(segment) {
6
+ switch (segment.type) {
7
+ case 'paste': {
8
+ const lines = segment.text.split('\n').length;
9
+ return `[pasted ${lines} line${lines === 1 ? '' : 's'}]`;
10
+ }
11
+ case 'file':
12
+ return `[file ${segment.path}]`;
13
+ case 'image':
14
+ return `[image ${segment.path}]`;
15
+ default:
16
+ return '';
17
+ }
18
+ }
19
+ function badgePreview(segment) {
20
+ switch (segment.type) {
21
+ case 'paste': {
22
+ const lines = segment.text.split('\n');
23
+ const previewLines = lines.slice(0, 3).join('\n');
24
+ const suffix = lines.length > 3 ? '\n…' : '';
25
+ return { type: 'paste', preview: previewLines + suffix, full: segment.text };
26
+ }
27
+ case 'image':
28
+ return { type: 'image', preview: `Image: ${segment.path}`, full: segment.path, path: segment.path };
29
+ case 'file':
30
+ return { type: 'file', preview: `File: ${segment.path}`, full: segment.path, path: segment.path };
31
+ default:
32
+ return { type: 'file', preview: 'File: (unknown)', full: '' };
33
+ }
34
+ }
35
+ export function buildRenderTokens(segments) {
36
+ return segments.map(segment => {
37
+ if (segment.type === 'text') {
38
+ return { text: segment.text };
39
+ }
40
+ const badge = badgePreview(segment);
41
+ return { text: badgeLabel(segment), style: { color: 'yellow', dimColor: true, badge } };
42
+ });
43
+ }
44
+ export function wrapInputSegments(segments, cursor, cols, prefixWidth = promptWidth) {
45
+ const wrapWidth = Math.max(10, cols - prefixWidth - 2);
46
+ const tokens = buildRenderTokens(segments);
47
+ let cursorPos = 0;
48
+ let pos = 0;
49
+ for (let i = 0; i < segments.length; i += 1) {
50
+ const segment = segments[i];
51
+ const tokenText = tokens[i].text;
52
+ if (i === cursor.index) {
53
+ if (segment.type === 'text') {
54
+ cursorPos = pos + cursor.offset;
55
+ }
56
+ else {
57
+ cursorPos = pos + (cursor.offset > 0 ? tokenText.length : 0);
58
+ }
59
+ }
60
+ pos += tokenText.length;
61
+ }
62
+ if (cursor.index === segments.length) {
63
+ cursorPos = pos;
64
+ }
65
+ const lines = [[]];
66
+ let lineIndex = 0;
67
+ let col = 0;
68
+ let cursorLine = 0;
69
+ let cursorCol = 0;
70
+ let globalPos = 0;
71
+ for (const token of tokens) {
72
+ const textValue = token.text || '';
73
+ for (let i = 0; i < textValue.length; i += 1) {
74
+ if (globalPos === cursorPos) {
75
+ cursorLine = lineIndex;
76
+ cursorCol = col;
77
+ }
78
+ const ch = textValue[i];
79
+ if (ch === '\n') {
80
+ lineIndex += 1;
81
+ lines.push([]);
82
+ col = 0;
83
+ globalPos += 1;
84
+ continue;
85
+ }
86
+ if (col >= wrapWidth) {
87
+ lineIndex += 1;
88
+ lines.push([]);
89
+ col = 0;
90
+ }
91
+ lines[lineIndex].push({ text: ch, style: token.style });
92
+ col += 1;
93
+ globalPos += 1;
94
+ }
95
+ }
96
+ if (cursorPos === globalPos) {
97
+ cursorLine = lineIndex;
98
+ cursorCol = col;
99
+ }
100
+ return { lines, cursorLine, cursorCol };
101
+ }
102
+ export function estimateInputLines(segments, cols) {
103
+ return wrapInputSegments(segments, { index: segments.length, offset: 0 }, cols).lines.length;
104
+ }
105
+ export function buildInputAreaView({ state, placeholder, disabled = false, commands = [], cols = 80, badgePreview, showBadgePreview = false, debug = false, renderContent = true }) {
106
+ if (!renderContent) {
107
+ return box([text('')], { flexDirection: 'column', flexShrink: 0, height: 5 });
108
+ }
109
+ const truncate = (value, max) => (value.length > max ? `${value.slice(0, max - 1)}…` : value);
110
+ const promptColor = disabled ? 'gray' : 'blue';
111
+ const plainText = state.segments.length === 1 && state.segments[0].type === 'text'
112
+ ? state.segments[0].text
113
+ : '';
114
+ const isCommandMode = plainText.startsWith('/');
115
+ const commandQuery = isCommandMode ? plainText.slice(1).trim() : '';
116
+ const commandMatches = isCommandMode
117
+ ? commands.filter(c => c.name.startsWith(commandQuery)).slice(0, suggestionLines)
118
+ : [];
119
+ let inputLines = [];
120
+ if (disabled) {
121
+ inputLines = [
122
+ box([
123
+ text(promptPrefix, { color: promptColor, bold: true }),
124
+ text(placeholder, { color: 'gray', dimColor: true })
125
+ ], { flexDirection: 'row' })
126
+ ];
127
+ }
128
+ else if (state.segments.length === 0) {
129
+ inputLines = [
130
+ box([
131
+ text(promptPrefix, { color: promptColor, bold: true }),
132
+ box([
133
+ text(' ', { inverse: true }),
134
+ text(placeholder, { color: 'gray', dimColor: true })
135
+ ], { flexDirection: 'row' })
136
+ ], { flexDirection: 'row' })
137
+ ];
138
+ }
139
+ else {
140
+ const wrapped = wrapInputSegments(state.segments, state.cursor, cols, promptWidth);
141
+ inputLines = wrapped.lines.map((line, index) => {
142
+ const prefix = index === 0 ? promptPrefix : ' ';
143
+ const segments = [text(prefix, { color: promptColor, bold: index === 0 })];
144
+ line.forEach((token, tokenIndex) => {
145
+ if (index === wrapped.cursorLine && tokenIndex === wrapped.cursorCol) {
146
+ segments.push(text(token.text || ' ', { inverse: true, ...token.style }));
147
+ }
148
+ else {
149
+ segments.push(text(token.text, token.style));
150
+ }
151
+ });
152
+ if (index === wrapped.cursorLine && wrapped.cursorCol === line.length) {
153
+ segments.push(text(' ', { inverse: true }));
154
+ }
155
+ return box(segments, { flexDirection: 'row' });
156
+ });
157
+ }
158
+ const inputLine = box(inputLines, {
159
+ flexDirection: 'column',
160
+ paddingX: 1,
161
+ borderStyle: debug ? 'round' : undefined,
162
+ borderColor: debug ? (disabled ? 'gray' : 'blue') : undefined
163
+ });
164
+ const suggestions = box(Array.from({ length: suggestionLines }).map((_, index) => {
165
+ const cmd = commandMatches[index];
166
+ if (!cmd)
167
+ return text(' ');
168
+ const usage = cmd.usage ? ` ${truncate(cmd.usage, 36)}` : '';
169
+ return box([
170
+ text(`/${cmd.name}`, { color: 'cyan', bold: true }),
171
+ text(usage, { color: 'white' }),
172
+ text(` — ${truncate(cmd.description, 48)}`, { color: 'gray', dimColor: true })
173
+ ], { flexDirection: 'row' });
174
+ }), { flexDirection: 'column', paddingX: 2 });
175
+ const previewLines = showBadgePreview && badgePreview && badgePreview.length > 0
176
+ ? box(badgePreview.map(line => text(line, { color: 'gray', dimColor: true })), {
177
+ flexDirection: 'column',
178
+ paddingX: 2
179
+ })
180
+ : null;
181
+ return box(previewLines ? [inputLine, previewLines, suggestions] : [inputLine, suggestions], { flexDirection: 'column', flexShrink: 0 });
182
+ }
183
+ //# sourceMappingURL=input_area.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input_area.js","sourceRoot":"","sources":["../../../src/ui/views/input_area.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Message } from '../../types.js';
2
+ import { LayoutNode } from '../core/index.js';
3
+ interface MessageListProps {
4
+ messages: Message[];
5
+ height: number;
6
+ maxMessages?: number;
7
+ debug?: boolean;
8
+ expandToolOutputs?: boolean;
9
+ }
10
+ export declare function buildMessageListView({ messages, height, maxMessages, debug, expandToolOutputs }: MessageListProps): LayoutNode;
11
+ export {};
12
+ //# sourceMappingURL=message_list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_list.d.ts","sourceRoot":"","sources":["../../../src/ui/views/message_list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAoXzD,UAAU,gBAAgB;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,MAAM,EACN,WAAgB,EAChB,KAAa,EACb,iBAAyB,EAC1B,EAAE,gBAAgB,GAAG,UAAU,CAuC/B"}
@@ -0,0 +1,381 @@
1
+ import { box, text } from '../core/index.js';
2
+ function formatTime(date) {
3
+ return date.toLocaleTimeString('en-US', {
4
+ hour: '2-digit',
5
+ minute: '2-digit',
6
+ hour12: false
7
+ });
8
+ }
9
+ function toDate(value) {
10
+ if (!value)
11
+ return null;
12
+ if (value instanceof Date)
13
+ return value;
14
+ const parsed = new Date(value);
15
+ if (Number.isNaN(parsed.getTime()))
16
+ return null;
17
+ return parsed;
18
+ }
19
+ function truncate(str, maxLen) {
20
+ if (str.length <= maxLen)
21
+ return str;
22
+ return str.slice(0, maxLen - 3) + '...';
23
+ }
24
+ const roleConfigs = {
25
+ user: { icon: '❯', color: 'blue', label: 'You' },
26
+ assistant: { icon: '◆', color: 'magenta', label: 'Zerg' },
27
+ tool: { icon: '⏺', color: 'yellow', label: 'Trace' },
28
+ system: { icon: '●', color: 'gray', label: 'System' }
29
+ };
30
+ function toolCallView(tool) {
31
+ const statusIcons = {
32
+ pending: '○',
33
+ running: '◐',
34
+ complete: '●',
35
+ error: '✗'
36
+ };
37
+ const statusColors = {
38
+ pending: 'gray',
39
+ running: 'yellow',
40
+ complete: 'green',
41
+ error: 'red'
42
+ };
43
+ const icon = statusIcons[tool.status];
44
+ const color = statusColors[tool.status];
45
+ let duration = '';
46
+ const started = toDate(tool.startedAt);
47
+ const completed = toDate(tool.completedAt);
48
+ if (started && completed) {
49
+ const ms = completed.getTime() - started.getTime();
50
+ duration = ms < 1000 ? `${ms}ms` : `${(ms / 1000).toFixed(1)}s`;
51
+ }
52
+ const extra = tool.result ? renderToolResult(tool) : null;
53
+ return box([
54
+ box([
55
+ text(`${icon} `, { color }),
56
+ text(tool.name, { color: 'cyan', bold: true }),
57
+ text(` (${tool.id.slice(0, 8)})`, { color: 'gray', dimColor: true }),
58
+ duration ? text(` [${duration}]`, { color: 'gray', dimColor: true }) : text('', {})
59
+ ], { flexDirection: 'row' }),
60
+ tool.result
61
+ ? extra || box([
62
+ text('→ ', { color: 'green' }),
63
+ text(truncate(tool.result, 80))
64
+ ], { flexDirection: 'row', marginLeft: 2 })
65
+ : box([], {}),
66
+ tool.error
67
+ ? box([
68
+ text('✗ ', { color: 'red' }),
69
+ text(truncate(tool.error, 80), { color: 'red' })
70
+ ], { flexDirection: 'row', marginLeft: 2 })
71
+ : box([], {})
72
+ ], { flexDirection: 'column', marginLeft: 2 });
73
+ }
74
+ function parseJson(raw) {
75
+ if (!raw)
76
+ return null;
77
+ try {
78
+ const data = JSON.parse(raw);
79
+ if (data && typeof data === 'object')
80
+ return data;
81
+ }
82
+ catch {
83
+ return null;
84
+ }
85
+ return null;
86
+ }
87
+ function renderDiffLines(diff, maxLines = 12) {
88
+ const lines = diff.split('\n').slice(0, maxLines);
89
+ return box(lines.map(line => {
90
+ if (line.startsWith('+')) {
91
+ return text(line, { color: 'green' });
92
+ }
93
+ if (line.startsWith('-')) {
94
+ return text(line, { color: 'red' });
95
+ }
96
+ return text(line, { color: 'gray', dimColor: true });
97
+ }), { flexDirection: 'column', marginLeft: 2 });
98
+ }
99
+ function renderToolResult(tool) {
100
+ const parsed = parseJson(tool.result);
101
+ if (!parsed)
102
+ return null;
103
+ if (tool.name === 'read_file') {
104
+ const path = String(parsed.path || '');
105
+ const size = parsed.size ? `${parsed.size} bytes` : 'unknown size';
106
+ const content = String(parsed.content || '');
107
+ const truncatedFlag = parsed.truncated ? ' (truncated)' : '';
108
+ const previewLines = content.split('\n').slice(0, 6);
109
+ return box([
110
+ box([
111
+ text('→ ', { color: 'green' }),
112
+ text(`Read ${path} (${size})${truncatedFlag}`, { color: 'green' })
113
+ ], { flexDirection: 'row', marginLeft: 2 }),
114
+ box(previewLines.map(line => text(line, { color: 'gray' })), { flexDirection: 'column', marginLeft: 4 })
115
+ ], { flexDirection: 'column' });
116
+ }
117
+ if (tool.name === 'write_file') {
118
+ const path = String(parsed.path || '');
119
+ const action = String(parsed.action || 'written');
120
+ const diff = typeof parsed.diff === 'string' ? parsed.diff : '';
121
+ return box([
122
+ box([
123
+ text('→ ', { color: 'green' }),
124
+ text(`Wrote ${path} (${action})`, { color: 'green' })
125
+ ], { flexDirection: 'row', marginLeft: 2 }),
126
+ diff ? renderDiffLines(diff) : box([text('(no diff)', { color: 'gray', dimColor: true })], { marginLeft: 4 })
127
+ ], { flexDirection: 'column' });
128
+ }
129
+ if (tool.name === 'search') {
130
+ const path = String(parsed.path || '');
131
+ const count = Number(parsed.count || 0);
132
+ const matches = Array.isArray(parsed.matches) ? parsed.matches : [];
133
+ const preview = matches.slice(0, 6).map((entry) => {
134
+ if (entry && typeof entry === 'object') {
135
+ const row = entry;
136
+ const file = String(row.path || '');
137
+ const line = row.line ? `:${row.line}` : '';
138
+ const textValue = String(row.text || '');
139
+ return `${file}${line} ${textValue}`.trim();
140
+ }
141
+ return '';
142
+ }).filter(Boolean);
143
+ return box([
144
+ box([
145
+ text('→ ', { color: 'green' }),
146
+ text(`Found ${count} matches${path ? ` in ${path}` : ''}`, { color: 'green' })
147
+ ], { flexDirection: 'row', marginLeft: 2 }),
148
+ box(preview.map(line => text(line, { color: 'gray' })), { flexDirection: 'column', marginLeft: 4 })
149
+ ], { flexDirection: 'column' });
150
+ }
151
+ if (tool.name === 'list_directory') {
152
+ const path = String(parsed.path || '');
153
+ const entries = Array.isArray(parsed.entries) ? parsed.entries : [];
154
+ const names = entries
155
+ .map(entry => entry && typeof entry === 'object' && 'name' in entry ? String(entry.name) : '')
156
+ .filter(Boolean)
157
+ .slice(0, 8);
158
+ return box([
159
+ box([
160
+ text('→ ', { color: 'green' }),
161
+ text(`Listed ${path} (${entries.length} items)`, { color: 'green' })
162
+ ], { flexDirection: 'row', marginLeft: 2 }),
163
+ box(names.map(name => text(`- ${name}`, { color: 'gray' })), { flexDirection: 'column', marginLeft: 4 })
164
+ ], { flexDirection: 'column' });
165
+ }
166
+ return null;
167
+ }
168
+ function renderInlineMarkdown(line) {
169
+ const parts = [];
170
+ let rest = line;
171
+ let matchedBold = false;
172
+ const pushPlain = (text) => {
173
+ if (text)
174
+ parts.push({ text });
175
+ };
176
+ while (rest.length > 0) {
177
+ const boldStart = rest.indexOf('**');
178
+ if (boldStart === -1) {
179
+ pushPlain(rest);
180
+ break;
181
+ }
182
+ pushPlain(rest.slice(0, boldStart));
183
+ const afterStart = rest.slice(boldStart + 2);
184
+ const boldEnd = afterStart.indexOf('**');
185
+ if (boldEnd === -1) {
186
+ pushPlain(rest);
187
+ break;
188
+ }
189
+ const boldText = afterStart.slice(0, boldEnd);
190
+ if (boldText) {
191
+ matchedBold = true;
192
+ parts.push({ text: boldText, bold: true });
193
+ }
194
+ rest = afterStart.slice(boldEnd + 2);
195
+ }
196
+ if (!matchedBold && line.includes('**')) {
197
+ return text(line.replace(/\*\*/g, ''), {});
198
+ }
199
+ return box(parts.map(part => text(part.text, { bold: part.bold, dimColor: part.dim })), { flexDirection: 'row' });
200
+ }
201
+ function renderMarkdownLine(line) {
202
+ const trimmed = line.trimStart();
203
+ if (trimmed.startsWith('### ')) {
204
+ return text(trimmed.slice(4), { bold: true, color: 'cyan' });
205
+ }
206
+ if (trimmed.startsWith('## ')) {
207
+ return text(trimmed.slice(3), { bold: true, color: 'cyan' });
208
+ }
209
+ if (trimmed.startsWith('# ')) {
210
+ return text(trimmed.slice(2), { bold: true, color: 'cyan' });
211
+ }
212
+ return renderInlineMarkdown(line);
213
+ }
214
+ function isTableSeparator(line) {
215
+ const trimmed = line.trim();
216
+ return trimmed.startsWith('|') && trimmed.endsWith('|') && /^[|\-\s:]+$/.test(trimmed);
217
+ }
218
+ function splitTableRow(line) {
219
+ const trimmed = line.trim();
220
+ const parts = trimmed.replace(/^\|/, '').replace(/\|$/, '').split('|');
221
+ return parts.map(part => part.replace(/\*\*/g, '').trim());
222
+ }
223
+ function renderTable(lines) {
224
+ if (lines.length < 2)
225
+ return [];
226
+ const header = splitTableRow(lines[0]);
227
+ const rows = lines.slice(2).map(splitTableRow);
228
+ const allRows = [header, ...rows];
229
+ const widths = [];
230
+ allRows.forEach(row => {
231
+ row.forEach((cell, idx) => {
232
+ const len = cell.length;
233
+ widths[idx] = Math.max(widths[idx] || 0, len);
234
+ });
235
+ });
236
+ const formatRow = (row) => {
237
+ const cells = row.map((cell, idx) => cell.padEnd(widths[idx] || 0));
238
+ return `| ${cells.join(' | ')} |`;
239
+ };
240
+ const rendered = [];
241
+ rendered.push(text(formatRow(header), { bold: true }));
242
+ const sep = `| ${widths.map(w => '-'.repeat(Math.max(3, w))).join(' | ')} |`;
243
+ rendered.push(text(sep, { color: 'gray', dimColor: true }));
244
+ rows.forEach(row => {
245
+ rendered.push(text(formatRow(row), { color: 'gray' }));
246
+ });
247
+ return rendered;
248
+ }
249
+ function renderMarkdownLines(lines) {
250
+ const normalized = [];
251
+ lines.forEach(line => {
252
+ if (line.includes('||') && line.includes('|')) {
253
+ const segments = line.split('||').map(segment => segment.trim()).filter(Boolean);
254
+ segments.forEach(segment => {
255
+ let out = segment;
256
+ if (!out.startsWith('|'))
257
+ out = `| ${out}`;
258
+ if (!out.endsWith('|'))
259
+ out = `${out} |`;
260
+ normalized.push(out);
261
+ });
262
+ }
263
+ else {
264
+ normalized.push(line);
265
+ }
266
+ });
267
+ const nodes = [];
268
+ let i = 0;
269
+ while (i < normalized.length) {
270
+ const line = normalized[i];
271
+ const next = normalized[i + 1];
272
+ if (line && next && line.includes('|') && isTableSeparator(next)) {
273
+ const tableLines = [line, next];
274
+ let j = i + 2;
275
+ while (j < normalized.length && normalized[j].includes('|')) {
276
+ tableLines.push(normalized[j]);
277
+ j += 1;
278
+ }
279
+ nodes.push(...renderTable(tableLines));
280
+ i = j;
281
+ continue;
282
+ }
283
+ nodes.push(renderMarkdownLine(line));
284
+ i += 1;
285
+ }
286
+ return nodes;
287
+ }
288
+ function messageView(message, expandToolOutputs = false) {
289
+ const config = roleConfigs[message.role];
290
+ const toolOutput = message.metadata && message.metadata.toolOutput;
291
+ const content = toolOutput && expandToolOutputs && toolOutput.full
292
+ ? toolOutput.full
293
+ : toolOutput && toolOutput.preview
294
+ ? toolOutput.preview
295
+ : message.content;
296
+ const lines = content.split('\n');
297
+ return box([
298
+ box([
299
+ text(`${config.icon} ${config.label}`, { color: config.color, bold: true }),
300
+ text(` • ${formatTime(message.timestamp)}`, { color: 'gray', dimColor: true }),
301
+ message.isStreaming ? text(' ▌', { color: 'yellow', bold: true }) : text('', {})
302
+ ], { flexDirection: 'row' }),
303
+ box(renderMarkdownLines(lines), { flexDirection: 'column', marginLeft: 2 }),
304
+ message.toolCalls && message.toolCalls.length > 0
305
+ ? box(message.toolCalls.map(tool => toolCallView(tool)), { flexDirection: 'column' })
306
+ : box([], {})
307
+ ], { flexDirection: 'column', marginY: 1 });
308
+ }
309
+ function estimateMessageLines(message) {
310
+ const toolOutput = message.metadata && message.metadata.toolOutput;
311
+ const content = toolOutput && toolOutput.preview ? toolOutput.preview : message.content;
312
+ const contentLines = content.split('\n').length;
313
+ const toolLines = message.toolCalls ? message.toolCalls.length * 3 : 0;
314
+ const headerLines = 1;
315
+ const margins = 2;
316
+ return headerLines + contentLines + toolLines + margins;
317
+ }
318
+ function clipMessage(message, available) {
319
+ if (available <= 0)
320
+ return null;
321
+ const headerLines = 1;
322
+ const margins = 2;
323
+ const remaining = available - headerLines - margins;
324
+ if (remaining <= 0)
325
+ return null;
326
+ const toolOutput = message.metadata && message.metadata.toolOutput;
327
+ const content = toolOutput && toolOutput.preview ? toolOutput.preview : message.content;
328
+ const lines = content.split('\n');
329
+ if (lines.length <= remaining) {
330
+ return message;
331
+ }
332
+ const clippedLines = lines.slice(-remaining);
333
+ if (clippedLines.length > 0) {
334
+ clippedLines[0] = `... ${clippedLines[0]}`;
335
+ }
336
+ return {
337
+ ...message,
338
+ content: clippedLines.join('\n'),
339
+ toolCalls: []
340
+ };
341
+ }
342
+ export function buildMessageListView({ messages, height, maxMessages = 50, debug = false, expandToolOutputs = false }) {
343
+ const recentMessages = messages.slice(-maxMessages);
344
+ const visibleMessages = [];
345
+ let remaining = height;
346
+ for (let i = recentMessages.length - 1; i >= 0; i -= 1) {
347
+ const msg = recentMessages[i];
348
+ const estimate = estimateMessageLines(msg);
349
+ if (estimate <= remaining) {
350
+ visibleMessages.unshift(msg);
351
+ remaining -= estimate;
352
+ continue;
353
+ }
354
+ if (visibleMessages.length === 0) {
355
+ const clipped = clipMessage(msg, remaining);
356
+ if (clipped) {
357
+ visibleMessages.unshift(clipped);
358
+ }
359
+ }
360
+ break;
361
+ }
362
+ return box([
363
+ box([], { flexGrow: 1 }),
364
+ box(visibleMessages.map(msg => messageView(msg, expandToolOutputs)), { flexDirection: 'column' }),
365
+ messages.length === 0
366
+ ? box([text('No messages yet. Type something to begin.', { color: 'gray', dimColor: true })], {
367
+ flexGrow: 1,
368
+ alignItems: 'center',
369
+ justifyContent: 'center'
370
+ })
371
+ : box([], {})
372
+ ], {
373
+ flexDirection: 'column',
374
+ height,
375
+ paddingX: 1,
376
+ flexGrow: 1,
377
+ borderStyle: debug ? 'single' : undefined,
378
+ borderColor: debug ? 'gray' : undefined
379
+ });
380
+ }
381
+ //# sourceMappingURL=message_list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_list.js","sourceRoot":"","sources":["../../../src/ui/views/message_list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { AgentState } from '../../types.js';
2
+ import { LayoutNode } from '../core/index.js';
3
+ interface StatusBarProps {
4
+ state: AgentState;
5
+ sessionId?: string;
6
+ version?: string;
7
+ connectionStatus?: 'connected' | 'disconnected' | 'connecting';
8
+ contextLength?: number;
9
+ contextEstimated?: boolean;
10
+ provider?: string;
11
+ model?: string;
12
+ emulationId?: string;
13
+ toast?: string | null;
14
+ debug?: boolean;
15
+ }
16
+ export declare function buildStatusBarView({ state, sessionId, version, connectionStatus, contextLength, contextEstimated, provider, model, emulationId, toast, debug }: StatusBarProps): LayoutNode;
17
+ export {};
18
+ //# sourceMappingURL=status_bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status_bar.d.ts","sourceRoot":"","sources":["../../../src/ui/views/status_bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEzD,UAAU,cAAc;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,WAAW,GAAG,cAAc,GAAG,YAAY,CAAC;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAaD,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,SAAS,EACT,OAAiB,EACjB,gBAA8B,EAC9B,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,KAAK,EACL,KAAa,EACd,EAAE,cAAc,GAAG,UAAU,CA+D7B"}