openhorse 0.2.19 → 0.2.22

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 (423) hide show
  1. package/dist/agents/coordinator.d.ts.map +1 -1
  2. package/dist/agents/fork.d.ts.map +1 -1
  3. package/dist/agents/fork.js +0 -1
  4. package/dist/agents/fork.js.map +1 -1
  5. package/dist/agents/worker-pool.d.ts.map +1 -1
  6. package/dist/agents/worker-pool.js +3 -1
  7. package/dist/agents/worker-pool.js.map +1 -1
  8. package/dist/cli.js +28 -3
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/index.d.ts.map +1 -1
  11. package/dist/commands/index.js +202 -77
  12. package/dist/commands/index.js.map +1 -1
  13. package/dist/commands/parser.d.ts.map +1 -1
  14. package/dist/commands/parser.js +8 -3
  15. package/dist/commands/parser.js.map +1 -1
  16. package/dist/commands/types.d.ts +2 -0
  17. package/dist/commands/types.d.ts.map +1 -1
  18. package/dist/commands/types.js.map +1 -1
  19. package/dist/core/checkpoint.d.ts.map +1 -1
  20. package/dist/core/checkpoint.js +3 -0
  21. package/dist/core/checkpoint.js.map +1 -1
  22. package/dist/core/cost-tracker.d.ts +45 -5
  23. package/dist/core/cost-tracker.d.ts.map +1 -1
  24. package/dist/core/cost-tracker.js +78 -13
  25. package/dist/core/cost-tracker.js.map +1 -1
  26. package/dist/framework/index.d.ts +1 -1
  27. package/dist/framework/index.d.ts.map +1 -1
  28. package/dist/framework/index.js.map +1 -1
  29. package/dist/framework/prompt.d.ts.map +1 -1
  30. package/dist/framework/prompt.js +16 -0
  31. package/dist/framework/prompt.js.map +1 -1
  32. package/dist/framework/query.d.ts +25 -0
  33. package/dist/framework/query.d.ts.map +1 -1
  34. package/dist/framework/query.js +196 -56
  35. package/dist/framework/query.js.map +1 -1
  36. package/dist/framework/store.d.ts +6 -1
  37. package/dist/framework/store.d.ts.map +1 -1
  38. package/dist/framework/store.js +10 -1
  39. package/dist/framework/store.js.map +1 -1
  40. package/dist/harness/context-harness.d.ts.map +1 -1
  41. package/dist/harness/context-harness.js +6 -1
  42. package/dist/harness/context-harness.js.map +1 -1
  43. package/dist/harness/ledger.d.ts +1 -0
  44. package/dist/harness/ledger.d.ts.map +1 -1
  45. package/dist/harness/ledger.js +12 -0
  46. package/dist/harness/ledger.js.map +1 -1
  47. package/dist/harness/safety.d.ts +2 -0
  48. package/dist/harness/safety.d.ts.map +1 -1
  49. package/dist/harness/safety.js +27 -3
  50. package/dist/harness/safety.js.map +1 -1
  51. package/dist/index.d.ts +2 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/init.d.ts +1 -1
  54. package/dist/init.d.ts.map +1 -1
  55. package/dist/init.js +1 -1
  56. package/dist/init.js.map +1 -1
  57. package/dist/ink-ui/components/Markdown.d.ts +1 -1
  58. package/dist/ink-ui/components/Markdown.d.ts.map +1 -1
  59. package/dist/ink-ui/components/Markdown.js +1 -1
  60. package/dist/ink-ui/components/Markdown.js.map +1 -1
  61. package/dist/ink-ui/components/StatusLine.d.ts.map +1 -1
  62. package/dist/ink-ui/components/StatusLine.js +0 -2
  63. package/dist/ink-ui/components/StatusLine.js.map +1 -1
  64. package/dist/ink-ui/runtime/grapheme.d.ts +9 -8
  65. package/dist/ink-ui/runtime/grapheme.d.ts.map +1 -1
  66. package/dist/ink-ui/runtime/grapheme.js +14 -60
  67. package/dist/ink-ui/runtime/grapheme.js.map +1 -1
  68. package/dist/ink-ui/runtime/input-buffer.d.ts +9 -31
  69. package/dist/ink-ui/runtime/input-buffer.d.ts.map +1 -1
  70. package/dist/ink-ui/runtime/input-buffer.js +15 -162
  71. package/dist/ink-ui/runtime/input-buffer.js.map +1 -1
  72. package/dist/ink-ui/runtime/native-cursor.js +0 -25
  73. package/dist/ink-ui/runtime/native-cursor.js.map +1 -1
  74. package/dist/ink-ui/runtime/prompt-layout.d.ts +9 -29
  75. package/dist/ink-ui/runtime/prompt-layout.d.ts.map +1 -1
  76. package/dist/ink-ui/runtime/prompt-layout.js +18 -166
  77. package/dist/ink-ui/runtime/prompt-layout.js.map +1 -1
  78. package/dist/ink-ui/runtime/transcript-state.d.ts.map +1 -1
  79. package/dist/ink-ui/runtime/transcript-state.js +2 -0
  80. package/dist/ink-ui/runtime/transcript-state.js.map +1 -1
  81. package/dist/ink-ui/screens/ReplScreen.d.ts.map +1 -1
  82. package/dist/ink-ui/screens/ReplScreen.js +23 -5
  83. package/dist/ink-ui/screens/ReplScreen.js.map +1 -1
  84. package/dist/memory/entrypoint.js +1 -1
  85. package/dist/memory/entrypoint.js.map +1 -1
  86. package/dist/memory/storage.js +1 -1
  87. package/dist/memory/storage.js.map +1 -1
  88. package/dist/memory/store.d.ts +1 -0
  89. package/dist/memory/store.d.ts.map +1 -1
  90. package/dist/memory/store.js +9 -0
  91. package/dist/memory/store.js.map +1 -1
  92. package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
  93. package/dist/runtime/agent-runtime-controller.js +25 -0
  94. package/dist/runtime/agent-runtime-controller.js.map +1 -1
  95. package/dist/runtime/agent-runtime-protocol.d.ts +4 -1
  96. package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
  97. package/dist/runtime/agent-runtime-protocol.js +6 -0
  98. package/dist/runtime/agent-runtime-protocol.js.map +1 -1
  99. package/dist/runtime/chat-controller.d.ts +27 -0
  100. package/dist/runtime/chat-controller.d.ts.map +1 -1
  101. package/dist/runtime/chat-controller.js +374 -88
  102. package/dist/runtime/chat-controller.js.map +1 -1
  103. package/dist/runtime/composer/buffer.d.ts +43 -0
  104. package/dist/runtime/composer/buffer.d.ts.map +1 -0
  105. package/dist/runtime/composer/buffer.js +176 -0
  106. package/dist/runtime/composer/buffer.js.map +1 -0
  107. package/dist/runtime/composer/grapheme.d.ts +19 -0
  108. package/dist/runtime/composer/grapheme.d.ts.map +1 -0
  109. package/dist/runtime/composer/grapheme.js +73 -0
  110. package/dist/runtime/composer/grapheme.js.map +1 -0
  111. package/dist/runtime/composer/history.d.ts +39 -0
  112. package/dist/runtime/composer/history.d.ts.map +1 -0
  113. package/dist/runtime/composer/history.js +91 -0
  114. package/dist/runtime/composer/history.js.map +1 -0
  115. package/dist/runtime/composer/layout.d.ts +40 -0
  116. package/dist/runtime/composer/layout.d.ts.map +1 -0
  117. package/dist/runtime/composer/layout.js +174 -0
  118. package/dist/runtime/composer/layout.js.map +1 -0
  119. package/dist/runtime/rich-text/ansi-parser.d.ts +31 -0
  120. package/dist/runtime/rich-text/ansi-parser.d.ts.map +1 -0
  121. package/dist/runtime/rich-text/ansi-parser.js +310 -0
  122. package/dist/runtime/rich-text/ansi-parser.js.map +1 -0
  123. package/dist/runtime/rich-text/layout.d.ts +12 -0
  124. package/dist/runtime/rich-text/layout.d.ts.map +1 -0
  125. package/dist/runtime/rich-text/layout.js +362 -0
  126. package/dist/runtime/rich-text/layout.js.map +1 -0
  127. package/dist/runtime/rich-text/markdown-parser.d.ts +17 -0
  128. package/dist/runtime/rich-text/markdown-parser.d.ts.map +1 -0
  129. package/dist/runtime/rich-text/markdown-parser.js +218 -0
  130. package/dist/runtime/rich-text/markdown-parser.js.map +1 -0
  131. package/dist/runtime/rich-text/sanitizer.d.ts +18 -0
  132. package/dist/runtime/rich-text/sanitizer.d.ts.map +1 -0
  133. package/dist/runtime/rich-text/sanitizer.js +32 -0
  134. package/dist/runtime/rich-text/sanitizer.js.map +1 -0
  135. package/dist/runtime/rich-text/types.d.ts +59 -0
  136. package/dist/runtime/rich-text/types.d.ts.map +1 -0
  137. package/dist/runtime/rich-text/types.js +17 -0
  138. package/dist/runtime/rich-text/types.js.map +1 -0
  139. package/dist/runtime/subagents/budget.d.ts +118 -0
  140. package/dist/runtime/subagents/budget.d.ts.map +1 -0
  141. package/dist/runtime/subagents/budget.js +173 -0
  142. package/dist/runtime/subagents/budget.js.map +1 -0
  143. package/dist/runtime/subagents/child-executor-guard.d.ts +60 -0
  144. package/dist/runtime/subagents/child-executor-guard.d.ts.map +1 -0
  145. package/dist/runtime/subagents/child-executor-guard.js +219 -0
  146. package/dist/runtime/subagents/child-executor-guard.js.map +1 -0
  147. package/dist/runtime/subagents/context-builder.d.ts +34 -0
  148. package/dist/runtime/subagents/context-builder.d.ts.map +1 -0
  149. package/dist/runtime/subagents/context-builder.js +99 -0
  150. package/dist/runtime/subagents/context-builder.js.map +1 -0
  151. package/dist/runtime/subagents/index.d.ts +21 -0
  152. package/dist/runtime/subagents/index.d.ts.map +1 -0
  153. package/dist/runtime/subagents/index.js +62 -0
  154. package/dist/runtime/subagents/index.js.map +1 -0
  155. package/dist/runtime/subagents/policy.d.ts +68 -0
  156. package/dist/runtime/subagents/policy.d.ts.map +1 -0
  157. package/dist/runtime/subagents/policy.js +230 -0
  158. package/dist/runtime/subagents/policy.js.map +1 -0
  159. package/dist/runtime/subagents/presets.d.ts +44 -0
  160. package/dist/runtime/subagents/presets.d.ts.map +1 -0
  161. package/dist/runtime/subagents/presets.js +148 -0
  162. package/dist/runtime/subagents/presets.js.map +1 -0
  163. package/dist/runtime/subagents/production.d.ts +44 -0
  164. package/dist/runtime/subagents/production.d.ts.map +1 -0
  165. package/dist/runtime/subagents/production.js +143 -0
  166. package/dist/runtime/subagents/production.js.map +1 -0
  167. package/dist/runtime/subagents/provider-gate.d.ts +99 -0
  168. package/dist/runtime/subagents/provider-gate.d.ts.map +1 -0
  169. package/dist/runtime/subagents/provider-gate.js +186 -0
  170. package/dist/runtime/subagents/provider-gate.js.map +1 -0
  171. package/dist/runtime/subagents/result-parser.d.ts +40 -0
  172. package/dist/runtime/subagents/result-parser.d.ts.map +1 -0
  173. package/dist/runtime/subagents/result-parser.js +240 -0
  174. package/dist/runtime/subagents/result-parser.js.map +1 -0
  175. package/dist/runtime/subagents/runner.d.ts +53 -0
  176. package/dist/runtime/subagents/runner.d.ts.map +1 -0
  177. package/dist/runtime/subagents/runner.js +172 -0
  178. package/dist/runtime/subagents/runner.js.map +1 -0
  179. package/dist/runtime/subagents/runtime-integration.d.ts +73 -0
  180. package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -0
  181. package/dist/runtime/subagents/runtime-integration.js +148 -0
  182. package/dist/runtime/subagents/runtime-integration.js.map +1 -0
  183. package/dist/runtime/subagents/supervisor.d.ts +79 -0
  184. package/dist/runtime/subagents/supervisor.d.ts.map +1 -0
  185. package/dist/runtime/subagents/supervisor.js +301 -0
  186. package/dist/runtime/subagents/supervisor.js.map +1 -0
  187. package/dist/runtime/subagents/tool.d.ts +38 -0
  188. package/dist/runtime/subagents/tool.d.ts.map +1 -0
  189. package/dist/runtime/subagents/tool.js +171 -0
  190. package/dist/runtime/subagents/tool.js.map +1 -0
  191. package/dist/runtime/subagents/types.d.ts +152 -0
  192. package/dist/runtime/subagents/types.d.ts.map +1 -0
  193. package/dist/runtime/subagents/types.js +56 -0
  194. package/dist/runtime/subagents/types.js.map +1 -0
  195. package/dist/runtime/ui-events.d.ts +18 -0
  196. package/dist/runtime/ui-events.d.ts.map +1 -1
  197. package/dist/runtime/ui-events.js.map +1 -1
  198. package/dist/runtime/ui-view-model.d.ts +44 -1
  199. package/dist/runtime/ui-view-model.d.ts.map +1 -1
  200. package/dist/runtime/ui-view-model.js +90 -37
  201. package/dist/runtime/ui-view-model.js.map +1 -1
  202. package/dist/sdk/query.d.ts.map +1 -1
  203. package/dist/sdk/query.js +0 -1
  204. package/dist/sdk/query.js.map +1 -1
  205. package/dist/services/auto-fix/autoFixHook.d.ts.map +1 -1
  206. package/dist/services/auto-fix/autoFixHook.js +3 -2
  207. package/dist/services/auto-fix/autoFixHook.js.map +1 -1
  208. package/dist/services/auto-fix/autoFixRunner.d.ts +2 -2
  209. package/dist/services/auto-fix/autoFixRunner.d.ts.map +1 -1
  210. package/dist/services/auto-fix/autoFixRunner.js +2 -2
  211. package/dist/services/auto-fix/autoFixRunner.js.map +1 -1
  212. package/dist/services/compact/auto-compact.d.ts +15 -2
  213. package/dist/services/compact/auto-compact.d.ts.map +1 -1
  214. package/dist/services/compact/auto-compact.js +59 -27
  215. package/dist/services/compact/auto-compact.js.map +1 -1
  216. package/dist/services/compact/compact.d.ts +2 -0
  217. package/dist/services/compact/compact.d.ts.map +1 -1
  218. package/dist/services/compact/compact.js +22 -5
  219. package/dist/services/compact/compact.js.map +1 -1
  220. package/dist/services/compact/coordinator.d.ts +26 -0
  221. package/dist/services/compact/coordinator.d.ts.map +1 -0
  222. package/dist/services/compact/coordinator.js +44 -0
  223. package/dist/services/compact/coordinator.js.map +1 -0
  224. package/dist/services/compact/index.d.ts +1 -0
  225. package/dist/services/compact/index.d.ts.map +1 -1
  226. package/dist/services/compact/index.js +3 -1
  227. package/dist/services/compact/index.js.map +1 -1
  228. package/dist/services/compact/summary-generator.d.ts +6 -2
  229. package/dist/services/compact/summary-generator.d.ts.map +1 -1
  230. package/dist/services/compact/summary-generator.js +73 -32
  231. package/dist/services/compact/summary-generator.js.map +1 -1
  232. package/dist/services/concurrent-sessions.d.ts.map +1 -1
  233. package/dist/services/concurrent-sessions.js +3 -0
  234. package/dist/services/concurrent-sessions.js.map +1 -1
  235. package/dist/services/config-dir.d.ts +11 -1
  236. package/dist/services/config-dir.d.ts.map +1 -1
  237. package/dist/services/config-dir.js +19 -2
  238. package/dist/services/config-dir.js.map +1 -1
  239. package/dist/services/config.d.ts +13 -4
  240. package/dist/services/config.d.ts.map +1 -1
  241. package/dist/services/config.js +85 -4
  242. package/dist/services/config.js.map +1 -1
  243. package/dist/services/doctor.d.ts +2 -0
  244. package/dist/services/doctor.d.ts.map +1 -1
  245. package/dist/services/doctor.js +9 -2
  246. package/dist/services/doctor.js.map +1 -1
  247. package/dist/services/global-config.d.ts +33 -1
  248. package/dist/services/global-config.d.ts.map +1 -1
  249. package/dist/services/global-config.js +3 -0
  250. package/dist/services/global-config.js.map +1 -1
  251. package/dist/services/llm.d.ts +21 -4
  252. package/dist/services/llm.d.ts.map +1 -1
  253. package/dist/services/llm.js +75 -9
  254. package/dist/services/llm.js.map +1 -1
  255. package/dist/services/mcp/transports.d.ts +2 -0
  256. package/dist/services/mcp/transports.d.ts.map +1 -1
  257. package/dist/services/mcp/transports.js +23 -2
  258. package/dist/services/mcp/transports.js.map +1 -1
  259. package/dist/services/memory.d.ts.map +1 -1
  260. package/dist/services/memory.js.map +1 -1
  261. package/dist/services/model-context.d.ts +36 -0
  262. package/dist/services/model-context.d.ts.map +1 -1
  263. package/dist/services/model-context.js +243 -31
  264. package/dist/services/model-context.js.map +1 -1
  265. package/dist/services/redaction.js +1 -1
  266. package/dist/services/redaction.js.map +1 -1
  267. package/dist/services/session-memory/sessionMemory.js +1 -1
  268. package/dist/services/session-memory/sessionMemory.js.map +1 -1
  269. package/dist/services/session-storage.d.ts +39 -1
  270. package/dist/services/session-storage.d.ts.map +1 -1
  271. package/dist/services/session-storage.js +156 -28
  272. package/dist/services/session-storage.js.map +1 -1
  273. package/dist/services/task-manager.d.ts +2 -0
  274. package/dist/services/task-manager.d.ts.map +1 -1
  275. package/dist/services/task-manager.js +13 -0
  276. package/dist/services/task-manager.js.map +1 -1
  277. package/dist/services/usage-state.d.ts +55 -5
  278. package/dist/services/usage-state.d.ts.map +1 -1
  279. package/dist/services/usage-state.js +188 -59
  280. package/dist/services/usage-state.js.map +1 -1
  281. package/dist/services/verification-profile.d.ts.map +1 -1
  282. package/dist/services/verification-profile.js +3 -2
  283. package/dist/services/verification-profile.js.map +1 -1
  284. package/dist/services/workspace-diff.d.ts.map +1 -1
  285. package/dist/services/workspace-diff.js +34 -3
  286. package/dist/services/workspace-diff.js.map +1 -1
  287. package/dist/services/yaml-config.js +1 -1
  288. package/dist/skills/loader.d.ts +1 -1
  289. package/dist/skills/loader.d.ts.map +1 -1
  290. package/dist/skills/loader.js +1 -1
  291. package/dist/skills/loader.js.map +1 -1
  292. package/dist/skills/registry.d.ts +1 -1
  293. package/dist/skills/registry.d.ts.map +1 -1
  294. package/dist/skills/registry.js +1 -1
  295. package/dist/skills/registry.js.map +1 -1
  296. package/dist/skills/runtime.d.ts +9 -5
  297. package/dist/skills/runtime.d.ts.map +1 -1
  298. package/dist/skills/runtime.js +157 -12
  299. package/dist/skills/runtime.js.map +1 -1
  300. package/dist/terminal-ui/launch.d.ts +20 -3
  301. package/dist/terminal-ui/launch.d.ts.map +1 -1
  302. package/dist/terminal-ui/launch.js +86 -25
  303. package/dist/terminal-ui/launch.js.map +1 -1
  304. package/dist/terminal-ui/raw-editor.d.ts +9 -0
  305. package/dist/terminal-ui/raw-editor.d.ts.map +1 -1
  306. package/dist/terminal-ui/raw-editor.js +207 -30
  307. package/dist/terminal-ui/raw-editor.js.map +1 -1
  308. package/dist/tools/bash_security.d.ts.map +1 -1
  309. package/dist/tools/bash_security.js +14 -5
  310. package/dist/tools/bash_security.js.map +1 -1
  311. package/dist/tools/index.d.ts.map +1 -1
  312. package/dist/tools/index.js +51 -24
  313. package/dist/tools/index.js.map +1 -1
  314. package/dist/tools/lsp.js.map +1 -1
  315. package/dist/tools/plan.d.ts.map +1 -1
  316. package/dist/tools/plan.js +7 -0
  317. package/dist/tools/plan.js.map +1 -1
  318. package/dist/tools/web.d.ts +10 -0
  319. package/dist/tools/web.d.ts.map +1 -1
  320. package/dist/tools/web.js +84 -4
  321. package/dist/tools/web.js.map +1 -1
  322. package/dist/tui-core/frame.d.ts +13 -1
  323. package/dist/tui-core/frame.d.ts.map +1 -1
  324. package/dist/tui-core/frame.js +61 -8
  325. package/dist/tui-core/frame.js.map +1 -1
  326. package/dist/tui-core/input-parser.d.ts +1 -1
  327. package/dist/tui-core/input-parser.d.ts.map +1 -1
  328. package/dist/tui-core/input-parser.js +20 -1
  329. package/dist/tui-core/input-parser.js.map +1 -1
  330. package/dist/tui-core/style.d.ts +103 -0
  331. package/dist/tui-core/style.d.ts.map +1 -0
  332. package/dist/tui-core/style.js +269 -0
  333. package/dist/tui-core/style.js.map +1 -0
  334. package/dist/tui-core/terminal-writer.d.ts.map +1 -1
  335. package/dist/tui-core/terminal-writer.js +16 -3
  336. package/dist/tui-core/terminal-writer.js.map +1 -1
  337. package/dist/tui-ui/inline-surface.d.ts +185 -0
  338. package/dist/tui-ui/inline-surface.d.ts.map +1 -0
  339. package/dist/tui-ui/inline-surface.js +615 -0
  340. package/dist/tui-ui/inline-surface.js.map +1 -0
  341. package/dist/tui-ui/launch.d.ts +1 -0
  342. package/dist/tui-ui/launch.d.ts.map +1 -1
  343. package/dist/tui-ui/launch.js +398 -69
  344. package/dist/tui-ui/launch.js.map +1 -1
  345. package/dist/tui-ui/layout.d.ts +51 -2
  346. package/dist/tui-ui/layout.d.ts.map +1 -1
  347. package/dist/tui-ui/layout.js +240 -77
  348. package/dist/tui-ui/layout.js.map +1 -1
  349. package/dist/tui-ui/render-scheduler.d.ts +37 -0
  350. package/dist/tui-ui/render-scheduler.d.ts.map +1 -0
  351. package/dist/tui-ui/render-scheduler.js +118 -0
  352. package/dist/tui-ui/render-scheduler.js.map +1 -0
  353. package/dist/tui-ui/runner.d.ts +78 -5
  354. package/dist/tui-ui/runner.d.ts.map +1 -1
  355. package/dist/tui-ui/runner.js +317 -22
  356. package/dist/tui-ui/runner.js.map +1 -1
  357. package/dist/tui-ui/state.d.ts +38 -7
  358. package/dist/tui-ui/state.d.ts.map +1 -1
  359. package/dist/tui-ui/state.js +199 -40
  360. package/dist/tui-ui/state.js.map +1 -1
  361. package/dist/tui-ui/theme.d.ts +13 -0
  362. package/dist/tui-ui/theme.d.ts.map +1 -0
  363. package/dist/tui-ui/theme.js +20 -0
  364. package/dist/tui-ui/theme.js.map +1 -0
  365. package/dist/tui-ui/transcript-cache.d.ts +35 -0
  366. package/dist/tui-ui/transcript-cache.d.ts.map +1 -0
  367. package/dist/tui-ui/transcript-cache.js +74 -0
  368. package/dist/tui-ui/transcript-cache.js.map +1 -0
  369. package/dist/tui-ui/transcript-layout.d.ts +21 -0
  370. package/dist/tui-ui/transcript-layout.d.ts.map +1 -0
  371. package/dist/tui-ui/transcript-layout.js +398 -0
  372. package/dist/tui-ui/transcript-layout.js.map +1 -0
  373. package/dist/ui/box.d.ts.map +1 -1
  374. package/dist/ui/box.js +0 -11
  375. package/dist/ui/box.js.map +1 -1
  376. package/dist/ui/command-panel.d.ts.map +1 -1
  377. package/dist/ui/command-panel.js +1 -3
  378. package/dist/ui/command-panel.js.map +1 -1
  379. package/dist/ui/file-completion.js +1 -1
  380. package/dist/ui/file-completion.js.map +1 -1
  381. package/dist/ui/markdown.d.ts.map +1 -1
  382. package/dist/ui/markdown.js +1 -2
  383. package/dist/ui/markdown.js.map +1 -1
  384. package/dist/ui/multiline-input.d.ts.map +1 -1
  385. package/dist/ui/multiline-input.js +1 -2
  386. package/dist/ui/multiline-input.js.map +1 -1
  387. package/dist/ui/progress.d.ts.map +1 -1
  388. package/dist/ui/progress.js +0 -3
  389. package/dist/ui/progress.js.map +1 -1
  390. package/dist/ui/status-bar.d.ts +1 -1
  391. package/dist/ui/status-bar.d.ts.map +1 -1
  392. package/dist/ui/status-bar.js +2 -16
  393. package/dist/ui/status-bar.js.map +1 -1
  394. package/dist/ui/stream-markdown.d.ts +3 -0
  395. package/dist/ui/stream-markdown.d.ts.map +1 -1
  396. package/dist/ui/stream-markdown.js +0 -6
  397. package/dist/ui/stream-markdown.js.map +1 -1
  398. package/dist/ui/tool-preview.d.ts.map +1 -1
  399. package/dist/ui/tool-preview.js +0 -1
  400. package/dist/ui/tool-preview.js.map +1 -1
  401. package/dist/ui-v2/components/shell.d.ts.map +1 -1
  402. package/dist/ui-v2/components/shell.js +0 -8
  403. package/dist/ui-v2/components/shell.js.map +1 -1
  404. package/package.json +1 -1
  405. package/dist/cli-dbg.js +0 -717
  406. package/dist/cli-debug.d.ts +0 -7
  407. package/dist/cli-debug.d.ts.map +0 -1
  408. package/dist/cli-debug.js +0 -717
  409. package/dist/cli-debug.js.map +0 -1
  410. package/dist/cli-debug2.d.ts +0 -7
  411. package/dist/cli-debug2.d.ts.map +0 -1
  412. package/dist/cli-debug2.js +0 -717
  413. package/dist/cli-debug2.js.map +0 -1
  414. package/dist/cli-debug3.d.ts +0 -7
  415. package/dist/cli-debug3.d.ts.map +0 -1
  416. package/dist/cli-debug3.js +0 -719
  417. package/dist/cli-debug3.js.map +0 -1
  418. package/dist/cli-ink.d.ts +0 -8
  419. package/dist/cli-ink.d.ts.map +0 -1
  420. package/dist/cli-ink.js +0 -32
  421. package/dist/cli-ink.js.map +0 -1
  422. package/dist/cli-patch.js +0 -716
  423. package/dist/cli-test.js +0 -726
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.launchTuiUI = launchTuiUI;
4
+ exports.statusSnapshotString = statusSnapshotString;
4
5
  const agent_runtime_controller_1 = require("../runtime/agent-runtime-controller");
6
+ const util_1 = require("util");
5
7
  const ui_events_1 = require("../runtime/ui-events");
8
+ const ui_view_model_1 = require("../runtime/ui-view-model");
6
9
  const runner_1 = require("./runner");
7
- const ENTER_ALT_SCREEN = '\x1b[?1049h';
8
- const EXIT_ALT_SCREEN = '\x1b[?1049l';
9
- const ENABLE_BRACKETED_PASTE = '\x1b[?2004h';
10
+ const inline_surface_1 = require("./inline-surface");
10
11
  const DISABLE_BRACKETED_PASTE = '\x1b[?2004l';
11
12
  const SHOW_CURSOR = '\x1b[?25h';
12
- const HIDE_CURSOR = '\x1b[?25l';
13
+ const ENABLE_AUTOWRAP = '\x1b[?7h';
13
14
  async function launchTuiUI(runtime, options = {}) {
14
15
  const input = options.input ?? process.stdin;
15
16
  const output = options.output ?? process.stdout;
@@ -18,9 +19,14 @@ async function launchTuiUI(runtime, options = {}) {
18
19
  }
19
20
  let runner;
20
21
  let controller;
22
+ let surface;
23
+ let systemId = null;
21
24
  let stopping = false;
22
25
  let settled = false;
23
26
  let resolveLaunch = null;
27
+ // Once guard: shared cleanup promise so concurrent stop calls share one execution.
28
+ let cleanupPromise = null;
29
+ let restoreConsole = null;
24
30
  const dimensions = () => {
25
31
  const size = readTtyDimensions(output);
26
32
  return {
@@ -34,31 +40,216 @@ async function launchTuiUI(runtime, options = {}) {
34
40
  settled = true;
35
41
  resolveLaunch?.();
36
42
  };
37
- const cleanup = async () => {
38
- input.off('data', handleData);
39
- output.off('resize', handleResize);
40
- process.off('SIGWINCH', handleResize);
41
- process.off('SIGINT', handleSigint);
42
- if (typeof input.setRawMode === 'function') {
43
- try {
43
+ /**
44
+ * Emergency terminal restore — independent of runner/controller/surface.
45
+ * Used when cleanup cannot complete normally (renderer error, partial init).
46
+ * Must not throw; all operations are best-effort with optional guards.
47
+ */
48
+ const emergencyRestore = () => {
49
+ try {
50
+ if (typeof input.setRawMode === 'function') {
44
51
  input.setRawMode(false);
45
52
  }
53
+ }
54
+ catch {
55
+ /* best effort */
56
+ }
57
+ try {
58
+ input.pause();
59
+ }
60
+ catch {
61
+ /* best effort */
62
+ }
63
+ try {
64
+ output.write(`${SHOW_CURSOR}${ENABLE_AUTOWRAP}${DISABLE_BRACKETED_PASTE}\n`);
65
+ }
66
+ catch {
67
+ /* best effort */
68
+ }
69
+ };
70
+ /** Route process-level rejection feedback through the owned TUI surface. */
71
+ const onUnhandledRejection = (reason) => {
72
+ if (stopping)
73
+ return;
74
+ const message = reason instanceof Error ? reason.message : String(reason);
75
+ runner.dispatch({ type: 'setStatus', message: `Unhandled rejection: ${message}` });
76
+ };
77
+ /**
78
+ * Once-guarded cleanup. Multiple concurrent calls (SIGINT, SIGTERM, runtime
79
+ * shutdown, renderer error) all share the same promise. Only the first call
80
+ * executes; subsequent calls await the same promise.
81
+ */
82
+ const cleanup = () => {
83
+ if (cleanupPromise)
84
+ return cleanupPromise;
85
+ cleanupPromise = (async () => {
86
+ // Clear any pending resize debounce timer.
87
+ if (resizeDebounceTimer !== null) {
88
+ clearTimeout(resizeDebounceTimer);
89
+ resizeDebounceTimer = null;
90
+ }
91
+ // Remove listeners first to prevent re-entrancy.
92
+ try {
93
+ input.off('data', handleData);
94
+ }
46
95
  catch {
47
- // best effort terminal restoration
96
+ /* ok */
48
97
  }
49
- }
50
- input.pause();
51
- output.write(`${SHOW_CURSOR}${DISABLE_BRACKETED_PASTE}${EXIT_ALT_SCREEN}`);
52
- await runtime.shutdown();
98
+ try {
99
+ output.off('resize', handleResize);
100
+ }
101
+ catch {
102
+ /* ok */
103
+ }
104
+ try {
105
+ process.off('SIGWINCH', handleResize);
106
+ }
107
+ catch {
108
+ /* ok */
109
+ }
110
+ try {
111
+ process.off('SIGINT', handleSigint);
112
+ }
113
+ catch {
114
+ /* ok */
115
+ }
116
+ try {
117
+ process.off('SIGTERM', handleSigterm);
118
+ }
119
+ catch {
120
+ /* ok */
121
+ }
122
+ try {
123
+ process.off('SIGHUP', handleSighup);
124
+ }
125
+ catch {
126
+ /* ok */
127
+ }
128
+ try {
129
+ process.off('unhandledRejection', onUnhandledRejection);
130
+ }
131
+ catch {
132
+ /* ok */
133
+ }
134
+ // Stop active turn (controller may not exist if init failed).
135
+ if (controller) {
136
+ try {
137
+ await controller.stopActiveTurn();
138
+ }
139
+ catch {
140
+ /* best effort — don't block cleanup */
141
+ }
142
+ }
143
+ // Restore raw mode.
144
+ try {
145
+ if (typeof input.setRawMode === 'function') {
146
+ input.setRawMode(false);
147
+ }
148
+ }
149
+ catch {
150
+ /* best effort */
151
+ }
152
+ try {
153
+ input.pause();
154
+ }
155
+ catch {
156
+ /* best effort */
157
+ }
158
+ // Stop scheduler before surface cleanup (prevents pending renders).
159
+ if (runner) {
160
+ try {
161
+ runner.getScheduler().stop();
162
+ }
163
+ catch {
164
+ /* best effort */
165
+ }
166
+ }
167
+ // Flush surface queue to ensure all pending writes complete.
168
+ if (surface) {
169
+ try {
170
+ await surface.flush();
171
+ }
172
+ catch {
173
+ /* best effort */
174
+ }
175
+ }
176
+ // Unmount surface (clears ephemeral live region only).
177
+ if (surface) {
178
+ try {
179
+ await surface.unmount();
180
+ }
181
+ catch {
182
+ /* best effort */
183
+ }
184
+ }
185
+ restoreConsole?.();
186
+ restoreConsole = null;
187
+ // Restore terminal state: cursor, autowrap, bracketed paste.
188
+ // NO alternate-screen exit, NO full clear, NO erasing committed scrollback.
189
+ try {
190
+ output.write(`${SHOW_CURSOR}${ENABLE_AUTOWRAP}${DISABLE_BRACKETED_PASTE}`);
191
+ }
192
+ catch {
193
+ /* best effort */
194
+ }
195
+ // Runtime shutdown last; preserves original exit code/signal semantics.
196
+ try {
197
+ await runtime.shutdown();
198
+ }
199
+ catch {
200
+ /* best effort */
201
+ }
202
+ })();
203
+ return cleanupPromise;
53
204
  };
205
+ /**
206
+ * Initiate graceful stop. Once-guarded: only the first call proceeds.
207
+ * Uses async/await so finishLaunch() runs in the same microtask chain
208
+ * as cleanup completion.
209
+ */
54
210
  const stop = async () => {
55
211
  if (stopping)
56
212
  return;
57
213
  stopping = true;
58
- await controller.stopActiveTurn();
59
- await cleanup();
214
+ try {
215
+ await cleanup();
216
+ }
217
+ catch {
218
+ // Cleanup error must not mask the original error.
219
+ // Emergency restore as fallback.
220
+ emergencyRestore();
221
+ }
60
222
  finishLaunch();
61
223
  };
224
+ /**
225
+ * Handle renderer-layer errors. Emergency restore first, then report.
226
+ */
227
+ const failRenderer = (error) => {
228
+ if (stopping)
229
+ return;
230
+ stopping = true;
231
+ // Emergency restore independent of partially-constructed objects.
232
+ emergencyRestore();
233
+ // Report sanitized renderer-layer error to stderr.
234
+ try {
235
+ const message = error instanceof Error ? error.message : String(error);
236
+ process.stderr.write(`\nTUI renderer error: ${message}\n`);
237
+ }
238
+ catch {
239
+ /* best effort */
240
+ }
241
+ // Attempt full cleanup (may partially fail — that's ok).
242
+ // Ensure finishLaunch() runs on both success and rejection so the error
243
+ // path always completes and no unhandled promise rejection escapes.
244
+ void cleanup()
245
+ .catch(() => {
246
+ // Cleanup failure must not mask the original renderer error.
247
+ emergencyRestore();
248
+ })
249
+ .finally(() => {
250
+ finishLaunch();
251
+ });
252
+ };
62
253
  const consumeSessionPickerSelection = (inputValue) => {
63
254
  const overlay = runner.getState().overlay;
64
255
  if (overlay?.type !== 'sessions')
@@ -72,7 +263,12 @@ async function launchTuiUI(runtime, options = {}) {
72
263
  runner.events.append({ role: 'error', content: 'No session selected.' });
73
264
  return '';
74
265
  }
75
- return { type: 'select_session', sessionId: selected.id, allProjects: request.allProjects, source: 'picker' };
266
+ return {
267
+ type: 'select_session',
268
+ sessionId: selected.id,
269
+ allProjects: request.allProjects,
270
+ source: 'picker',
271
+ };
76
272
  }
77
273
  if (trimmed.startsWith('/'))
78
274
  return trimmed;
@@ -84,11 +280,27 @@ async function launchTuiUI(runtime, options = {}) {
84
280
  runner.events.append({ role: 'error', content: `No session at index ${numeric[1]}.` });
85
281
  return '';
86
282
  }
87
- return { type: 'select_session', sessionId: selected.id, allProjects: request.allProjects, source: 'picker' };
283
+ return {
284
+ type: 'select_session',
285
+ sessionId: selected.id,
286
+ allProjects: request.allProjects,
287
+ source: 'picker',
288
+ };
88
289
  }
89
- return { type: 'select_session', sessionId: trimmed, allProjects: request.allProjects, source: 'picker' };
290
+ return {
291
+ type: 'select_session',
292
+ sessionId: trimmed,
293
+ allProjects: request.allProjects,
294
+ source: 'picker',
295
+ };
90
296
  };
91
297
  const submit = (rawInput) => {
298
+ // Finalize the initial system message so it can be committed to scrollback
299
+ // and the commit boundary can advance past it.
300
+ if (systemId !== null) {
301
+ runner.events.finalize(systemId);
302
+ systemId = null; // Only finalize once.
303
+ }
92
304
  const selectedInput = consumeSessionPickerSelection(rawInput);
93
305
  const runtimeInput = typeof selectedInput === 'string'
94
306
  ? { type: 'submit', text: selectedInput.trim(), source: 'composer' }
@@ -109,74 +321,191 @@ async function launchTuiUI(runtime, options = {}) {
109
321
  const result = controller.handle({ type: 'interrupt', source: 'keyboard' });
110
322
  if (result.type === 'exit_requested') {
111
323
  void stop();
324
+ return;
112
325
  }
326
+ // Visual feedback: show interrupt/exit-prompt warning in the status bar
327
+ runner.dispatch({
328
+ type: 'setStatus',
329
+ message: result.type === 'interrupted'
330
+ ? '⚠️ Interrupted — press Ctrl+C again to force exit'
331
+ : '⚠️ Press Ctrl+C again to exit',
332
+ });
113
333
  };
114
334
  const handleData = (chunk) => {
115
335
  if (!stopping) {
116
336
  runner.feedInput(chunk);
117
337
  }
118
338
  };
339
+ let resizeDebounceTimer = null;
340
+ const RESIZE_DEBOUNCE_MS = 100;
119
341
  const handleResize = () => {
120
342
  if (stopping)
121
343
  return;
122
- const { width, height } = dimensions();
123
- runner.resize(width, height);
344
+ runner.beginResize(dimensions().width);
345
+ if (resizeDebounceTimer !== null) {
346
+ clearTimeout(resizeDebounceTimer);
347
+ }
348
+ resizeDebounceTimer = setTimeout(() => {
349
+ resizeDebounceTimer = null;
350
+ if (stopping)
351
+ return;
352
+ const { width, height } = dimensions();
353
+ runner.resize(width, height);
354
+ }, RESIZE_DEBOUNCE_MS);
124
355
  };
125
356
  const handleSigint = () => {
126
357
  handleCtrlC();
127
358
  };
128
- output.write(`${ENTER_ALT_SCREEN}${ENABLE_BRACKETED_PASTE}${HIDE_CURSOR}`);
129
- const { width, height } = dimensions();
130
- runner = new runner_1.TuiRunner({
131
- output,
132
- width,
133
- height,
134
- cwd: runtime.cwd,
135
- onSubmit: submit,
136
- onCtrlC: handleCtrlC,
137
- onPermissionDecision: (requestId, approved) => {
138
- controller.handle({
139
- type: 'permission_decision',
140
- requestId,
141
- approved,
142
- source: 'keyboard',
359
+ // SIGTERM/SIGHUP: direct cancel + cleanup (no "double Ctrl+C" product semantics).
360
+ const handleSigterm = () => {
361
+ void stop();
362
+ };
363
+ const handleSighup = () => {
364
+ void stop();
365
+ };
366
+ try {
367
+ // Primary-screen inline surface: no alternate screen (1049).
368
+ const { width, height } = dimensions();
369
+ surface = new inline_surface_1.InlineTerminalSurface({ output });
370
+ // Mount enters the same serialized queue as subsequent paints. Start it
371
+ // synchronously so input listeners are installed in this turn; awaiting it
372
+ // here creates a window where early keystrokes are dropped.
373
+ void surface.mount(width, height).catch(error => failRenderer(error));
374
+ // surface.mount() enables bracketed paste and hides cursor; no need for
375
+ // redundant output.write of those sequences.
376
+ runner = new runner_1.TuiRunner({
377
+ output,
378
+ width,
379
+ height,
380
+ cwd: runtime.cwd,
381
+ onSubmit: submit,
382
+ onCtrlC: handleCtrlC,
383
+ onPermissionDecision: (requestId, approved) => {
384
+ controller.handle({
385
+ type: 'permission_decision',
386
+ requestId,
387
+ approved,
388
+ source: 'keyboard',
389
+ });
390
+ },
391
+ surface,
392
+ onSurfaceError: failRenderer,
393
+ });
394
+ restoreConsole = installTuiConsoleBridge(runner.events, () => stopping);
395
+ const dispatchStatusSnapshot = (phase) => {
396
+ const runtimeSnapshot = runtime.store.getSnapshot();
397
+ const snapshot = (0, ui_view_model_1.createStatusSnapshot)({
398
+ renderer: 'tui',
399
+ model: runtimeSnapshot.currentModel || runtime.config.model,
400
+ sessionId: runtime.getSession()?.id,
401
+ context: runtimeSnapshot.contextUsage ?? undefined,
402
+ runningState: phase,
403
+ tokens: tokensFromRuntime(runtime),
143
404
  });
144
- },
145
- });
146
- controller = new agent_runtime_controller_1.AgentRuntimeController({
147
- runtime,
148
- events: runner.events,
149
- uiCapabilities: (0, ui_events_1.resolveUiRendererCapabilities)(undefined, 'tui'),
150
- uiRenderer: 'tui',
151
- useRuntimeToolPermissions: true,
152
- runningStatus: () => statusSnapshot(runtime, 'running'),
153
- readyStatus: () => statusSnapshot(runtime, 'ready'),
154
- });
155
- runner.events.append({
156
- role: 'system',
157
- content: `OPENHORSE v${runtime.version}\nProject ${runtime.cwd}\n/ commands @ files ? shortcuts Ctrl+C twice exits`,
158
- });
159
- runner.events.setStatus(statusSnapshot(runtime, 'ready'));
160
- input.resume();
161
- if (typeof input.setRawMode === 'function') {
162
- input.setRawMode(true);
405
+ runner.dispatch({ type: 'setStatusSnapshot', snapshot, phase });
406
+ return statusSnapshotString(runtime);
407
+ };
408
+ controller = new agent_runtime_controller_1.AgentRuntimeController({
409
+ runtime,
410
+ events: runner.events,
411
+ uiCapabilities: (0, ui_events_1.resolveUiRendererCapabilities)(undefined, 'tui'),
412
+ uiRenderer: 'tui',
413
+ useRuntimeToolPermissions: true,
414
+ runningStatus: () => dispatchStatusSnapshot('running'),
415
+ readyStatus: () => dispatchStatusSnapshot('ready'),
416
+ });
417
+ // The initial system message stays live (not finalized) so it's visible
418
+ // in the live region rather than scrolling off into shell scrollback.
419
+ // It's finalized when the user submits their first input.
420
+ systemId = runner.events.append({
421
+ role: 'system',
422
+ content: `OPENHORSE v${runtime.version}\nProject ${runtime.cwd}\n/ commands @ files ? shortcuts Ctrl+C twice exits`,
423
+ live: true,
424
+ });
425
+ runner.events.setStatus(statusSnapshotString(runtime));
426
+ dispatchStatusSnapshot('ready');
427
+ input.resume();
428
+ if (typeof input.setRawMode === 'function') {
429
+ input.setRawMode(true);
430
+ }
431
+ input.on('data', handleData);
432
+ output.on('resize', handleResize);
433
+ process.on('SIGWINCH', handleResize);
434
+ process.on('SIGINT', handleSigint);
435
+ process.on('SIGTERM', handleSigterm);
436
+ process.on('SIGHUP', handleSighup);
437
+ process.on('unhandledRejection', onUnhandledRejection);
438
+ await new Promise(resolve => {
439
+ resolveLaunch = resolve;
440
+ });
441
+ }
442
+ catch (error) {
443
+ failRenderer(error);
444
+ throw error;
163
445
  }
164
- input.on('data', handleData);
165
- output.on('resize', handleResize);
166
- process.on('SIGWINCH', handleResize);
167
- process.on('SIGINT', handleSigint);
168
- await new Promise(resolve => {
169
- resolveLaunch = resolve;
170
- });
171
446
  }
172
- function statusSnapshot(runtime, left) {
173
- const snapshot = runtime.store.getSnapshot();
174
- const session = runtime.getSession()?.id.slice(0, 8) ?? 'none';
447
+ function installTuiConsoleBridge(events, isStopping) {
448
+ const originalLog = console.log;
449
+ const originalInfo = console.info;
450
+ const originalDebug = console.debug;
451
+ const originalWarn = console.warn;
452
+ const originalError = console.error;
453
+ const publish = (role, args) => {
454
+ if (isStopping())
455
+ return;
456
+ const content = stripTerminalControlSequences((0, util_1.format)(...args)).trimEnd();
457
+ if (!content)
458
+ return;
459
+ const id = events.append({ role, content });
460
+ events.finalize(id);
461
+ };
462
+ const log = (...args) => publish('system', args);
463
+ const info = (...args) => publish('system', args);
464
+ const debug = (...args) => publish('system', args);
465
+ const warn = (...args) => publish('system', args);
466
+ const error = (...args) => publish('error', args);
467
+ console.log = log;
468
+ console.info = info;
469
+ console.debug = debug;
470
+ console.warn = warn;
471
+ console.error = error;
472
+ return () => {
473
+ console.log = originalLog;
474
+ console.info = originalInfo;
475
+ console.debug = originalDebug;
476
+ console.warn = originalWarn;
477
+ console.error = originalError;
478
+ };
479
+ }
480
+ function stripTerminalControlSequences(value) {
481
+ return value
482
+ .replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, '')
483
+ .replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g, '');
484
+ }
485
+ function tokensFromRuntime(rt) {
486
+ const snapshot = rt.store.getSnapshot();
487
+ const usage = snapshot.tokenUsage;
488
+ return {
489
+ input: usage?.promptTokens,
490
+ output: usage?.completionTokens,
491
+ contextPercent: snapshot.contextUsage?.percent,
492
+ };
493
+ }
494
+ function statusSnapshotString(rt) {
495
+ const snapshot = rt.store.getSnapshot();
496
+ const session = rt.getSession()?.id.slice(0, 8) ?? 'none';
175
497
  const tokens = snapshot.tokenUsage
176
498
  ? `${((snapshot.tokenUsage.promptTokens + snapshot.tokenUsage.completionTokens) / 1000).toFixed(1)}K`
177
499
  : '0.0K';
178
- const cost = snapshot.costTracker.getSessionStats().totalCost;
179
- return `${left} model=${snapshot.currentModel || runtime.config.model} session=${session} tokens=${tokens} cost=$${cost.toFixed(4)}`;
500
+ const context = (0, ui_view_model_1.contextUsageStatusText)(snapshot.contextUsage);
501
+ return [
502
+ `model=${snapshot.currentModel || rt.config.model}`,
503
+ context,
504
+ `session=${session}`,
505
+ `tokens=${tokens}`,
506
+ ]
507
+ .filter(Boolean)
508
+ .join(' ');
180
509
  }
181
510
  function readTtyDimensions(output) {
182
511
  const getWindowSize = output.getWindowSize;
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/tui-ui/launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/tui-ui/launch.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,58 @@
1
1
  import { type TuiFrame } from '../tui-core/frame';
2
- import { type TuiUiState } from './state';
3
- export interface TuiLayoutOptions {
2
+ import type { StyledRow, TuiTheme } from '../tui-core/style';
3
+ import { type TuiTranscriptRecord, type TuiUiState } from './state';
4
+ export type TranscriptRecordLayout = (entry: TuiTranscriptRecord, width: number) => StyledRow[];
5
+ export interface TuiTranscriptLayoutOptions {
6
+ /** Transcript content width; production uses the surface safe width. */
7
+ transcriptWidth?: number;
8
+ theme?: TuiTheme;
9
+ /** Runner-provided cached layout. Pure render callers use the shared default. */
10
+ layoutTranscriptRecord?: TranscriptRecordLayout;
11
+ }
12
+ export interface TuiLayoutOptions extends TuiTranscriptLayoutOptions {
4
13
  width: number;
5
14
  height: number;
6
15
  maxTranscriptRows?: number;
7
16
  }
17
+ /**
18
+ * Options for the live-region-only layout (renderTuiLiveFrame).
19
+ * This function produces a frame for the inline surface's live region only,
20
+ * containing: live transcript entries, timeline (if any), overlay, status, and
21
+ * prompt. Committed (static) transcript entries are handled by surface.commit()
22
+ * separately and are NOT included in this frame.
23
+ */
24
+ export interface TuiLiveLayoutOptions extends TuiTranscriptLayoutOptions {
25
+ width: number;
26
+ /** Height of the live region (the inline surface bottom band). */
27
+ height: number;
28
+ }
29
+ export interface TuiLayoutBudget {
30
+ promptLineCount: number;
31
+ /** Rows consumed by the prompt box (2 borders + N content lines). */
32
+ promptRows: number;
33
+ /** Rows consumed by the timeline strip (0 when there is no activity). */
34
+ timelineRows: number;
35
+ /** Rows available for the (live) transcript region at the top. */
36
+ transcriptRows: number;
37
+ }
38
+ /**
39
+ * Measure the cursor-owned live block. Idle TUI state stays compact like an
40
+ * ordinary shell prompt; streaming transcript and overlays grow the block only
41
+ * as needed, up to the surface's viewport-derived limit.
42
+ */
43
+ export declare function measureTuiLiveFrameHeight(state: TuiUiState, width: number, maxHeight: number, options?: TuiTranscriptLayoutOptions): number;
8
44
  export declare function renderTuiUiFrame(state: TuiUiState, options: TuiLayoutOptions): TuiFrame;
45
+ /**
46
+ * Render the live-region frame for InlineTerminalSurface.
47
+ *
48
+ * This frame contains ONLY the ephemeral content that sits at the bottom of
49
+ * the terminal: live (uncommitted) transcript entries, timeline (if any),
50
+ * overlay (if active), status bar, and prompt. Committed transcript entries are
51
+ * written to scrollback by surface.commit() and are NOT included in this frame.
52
+ *
53
+ * The frame height should be sized to fill the terminal viewport's bottom band
54
+ * (see InlineTerminalSurface.getLiveBandRows); the dynamic budget allocates the
55
+ * band rows between transcript / timeline / status / prompt.
56
+ */
57
+ export declare function renderTuiLiveFrame(state: TuiUiState, options: TuiLiveLayoutOptions): TuiFrame;
9
58
  //# sourceMappingURL=layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/tui-ui/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAkD,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAQlG,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,QAAQ,CAiBvF"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/tui-ui/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAkD,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAM7D,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,MAAM,KACV,SAAS,EAAE,CAAC;AAEjB,MAAM,WAAW,0BAA0B;IACzC,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,iFAAiF;IACjF,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAED,MAAM,WAAW,gBAAiB,SAAQ,0BAA0B;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAqB,SAAQ,0BAA0B;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;CACxB;AA2CD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,0BAA+B,GACvC,MAAM,CAkBR;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,QAAQ,CAqBvF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAiB7F"}