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
@@ -3,42 +3,157 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.measureTuiLiveFrameHeight = measureTuiLiveFrameHeight;
6
7
  exports.renderTuiUiFrame = renderTuiUiFrame;
8
+ exports.renderTuiLiveFrame = renderTuiLiveFrame;
7
9
  const string_width_1 = __importDefault(require("string-width"));
8
10
  const frame_1 = require("../tui-core/frame");
9
11
  const ui_view_model_1 = require("../runtime/ui-view-model");
10
12
  const format_1 = require("../services/format");
11
13
  const state_1 = require("./state");
14
+ const transcript_layout_1 = require("./transcript-layout");
12
15
  const MIN_WIDTH = 24;
13
16
  const MIN_HEIGHT = 8;
14
- const PROMPT_TOP_ROWS = 3;
17
+ const PROMPT_BORDER_ROWS = 2;
18
+ const MAX_TIMELINE_ROWS = 6;
19
+ const STATUS_ROWS = 1;
20
+ /**
21
+ * Compute a dynamic layout budget for the given terminal height and prompt.
22
+ *
23
+ * The prompt box grows with the number of prompt lines (multi-line prompts get
24
+ * a taller box); the timeline strip appears only when there is activity to show
25
+ * (tools running / subtasks). Remaining rows go to the transcript, which is the
26
+ * scrollable history region. For a single-line prompt with no activity this
27
+ * collapses to the original fixed layout (prompt = 3 rows at the bottom).
28
+ */
29
+ function computeBudget(height, promptValue, timelineCount) {
30
+ const totalPromptLines = Math.max(1, promptValue.split('\n').length);
31
+ const maxPromptLines = Math.max(1, height - PROMPT_BORDER_ROWS - STATUS_ROWS);
32
+ const promptLineCount = Math.min(totalPromptLines, maxPromptLines);
33
+ const promptRows = PROMPT_BORDER_ROWS + promptLineCount;
34
+ const maxTimelineRows = Math.max(0, height - promptRows - STATUS_ROWS);
35
+ const timelineRows = timelineCount > 0
36
+ ? Math.min(MAX_TIMELINE_ROWS, timelineCount, maxTimelineRows)
37
+ : 0;
38
+ const transcriptRows = Math.max(0, height - promptRows - STATUS_ROWS - timelineRows);
39
+ return { promptLineCount, promptRows, timelineRows, transcriptRows };
40
+ }
41
+ function countTimelineEntries(state) {
42
+ return activeSubtaskTimelineEntries(state).length + activeToolStarts(state).length;
43
+ }
44
+ function activeToolStarts(state) {
45
+ const finishedCallIds = new Set(state.runtimeToolEvents
46
+ .filter(event => event.type === 'finished')
47
+ .map(event => event.callId));
48
+ return state.runtimeToolEvents.filter(event => event.type === 'started' && !finishedCallIds.has(event.callId));
49
+ }
50
+ function activeSubtaskTimelineEntries(state) {
51
+ return state.subtaskTimeline.filter(entry => entry.state === 'queued' || entry.state === 'running');
52
+ }
53
+ /**
54
+ * Measure the cursor-owned live block. Idle TUI state stays compact like an
55
+ * ordinary shell prompt; streaming transcript and overlays grow the block only
56
+ * as needed, up to the surface's viewport-derived limit.
57
+ */
58
+ function measureTuiLiveFrameHeight(state, width, maxHeight, options = {}) {
59
+ const safeWidth = Math.max(MIN_WIDTH, Math.floor(width));
60
+ const transcriptWidth = resolveTranscriptWidth(safeWidth, options.transcriptWidth);
61
+ const safeMaxHeight = Math.max(MIN_HEIGHT, Math.floor(maxHeight));
62
+ if (state.overlay)
63
+ return safeMaxHeight;
64
+ const promptLines = Math.min(Math.max(1, state.prompt.value.split('\n').length), Math.max(1, safeMaxHeight - PROMPT_BORDER_ROWS - STATUS_ROWS));
65
+ const promptRows = PROMPT_BORDER_ROWS + promptLines;
66
+ const timelineRows = Math.min(MAX_TIMELINE_ROWS, countTimelineEntries(state));
67
+ const fixedRows = promptRows + STATUS_ROWS + timelineRows;
68
+ const transcriptRows = (0, state_1.liveTuiTranscriptRecords)(state)
69
+ .flatMap(entry => layoutRecord(entry, transcriptWidth, options))
70
+ .length;
71
+ return Math.min(safeMaxHeight, Math.max(MIN_HEIGHT, fixedRows + transcriptRows));
72
+ }
15
73
  function renderTuiUiFrame(state, options) {
16
74
  const width = Math.max(MIN_WIDTH, Math.floor(options.width));
17
75
  const height = Math.max(MIN_HEIGHT, Math.floor(options.height));
18
76
  const frame = (0, frame_1.createTuiFrame)(width, height);
19
- const promptTop = height - PROMPT_TOP_ROWS;
77
+ const budget = computeBudget(height, state.prompt.value, countTimelineEntries(state));
78
+ // Honour an explicit cap on the transcript region (used by a test to pin a
79
+ // small tail); otherwise the whole transcript region is used.
80
+ const transcriptRows = Math.max(0, Math.min(options.maxTranscriptRows ?? budget.transcriptRows, budget.transcriptRows));
81
+ const promptTop = height - budget.promptRows;
20
82
  const statusRow = promptTop - 1;
21
- const transcriptRows = Math.max(0, Math.min(options.maxTranscriptRows ?? statusRow, statusRow));
22
- renderTranscript(frame, state, transcriptRows);
83
+ const timelineTop = statusRow - budget.timelineRows;
84
+ renderTranscript(frame, state, 0, transcriptRows, options);
85
+ if (budget.timelineRows > 0)
86
+ renderTimeline(frame, state, timelineTop, budget.timelineRows);
23
87
  renderStatus(frame, state, statusRow);
24
- renderPrompt(frame, state, promptTop);
25
- renderOverlay(frame, state, transcriptRows);
26
- const cursorColumn = promptCursorColumn(state.prompt.value, state.prompt.cursor, width);
27
- (0, frame_1.setFrameCursor)(frame, promptTop + 1, cursorColumn, true);
88
+ renderPrompt(frame, state, promptTop, width, budget.promptLineCount);
89
+ // Overlay covers the region above status (transcript + timeline).
90
+ renderOverlay(frame, state, statusRow);
28
91
  return frame;
29
92
  }
30
- function renderTranscript(frame, state, maxRows) {
31
- const entries = [
32
- ...(0, state_1.staticTuiTranscriptEntries)(state),
33
- ...(0, state_1.liveTuiTranscriptEntries)(state),
93
+ /**
94
+ * Render the live-region frame for InlineTerminalSurface.
95
+ *
96
+ * This frame contains ONLY the ephemeral content that sits at the bottom of
97
+ * the terminal: live (uncommitted) transcript entries, timeline (if any),
98
+ * overlay (if active), status bar, and prompt. Committed transcript entries are
99
+ * written to scrollback by surface.commit() and are NOT included in this frame.
100
+ *
101
+ * The frame height should be sized to fill the terminal viewport's bottom band
102
+ * (see InlineTerminalSurface.getLiveBandRows); the dynamic budget allocates the
103
+ * band rows between transcript / timeline / status / prompt.
104
+ */
105
+ function renderTuiLiveFrame(state, options) {
106
+ const width = Math.max(MIN_WIDTH, Math.floor(options.width));
107
+ const height = Math.max(MIN_HEIGHT, Math.floor(options.height));
108
+ const frame = (0, frame_1.createTuiFrame)(width, height);
109
+ const budget = computeBudget(height, state.prompt.value, countTimelineEntries(state));
110
+ const promptTop = height - budget.promptRows;
111
+ const statusRow = promptTop - 1;
112
+ const timelineTop = statusRow - budget.timelineRows;
113
+ renderLiveTranscript(frame, state, 0, budget.transcriptRows, options);
114
+ if (budget.timelineRows > 0)
115
+ renderTimeline(frame, state, timelineTop, budget.timelineRows);
116
+ renderStatus(frame, state, statusRow);
117
+ renderPrompt(frame, state, promptTop, width, budget.promptLineCount);
118
+ renderOverlay(frame, state, statusRow);
119
+ return frame;
120
+ }
121
+ /** Render (live) transcript entries into [startRow, startRow + maxRows). */
122
+ function renderLiveTranscript(frame, state, startRow, maxRows, options) {
123
+ const width = resolveTranscriptWidth(frame.width, options.transcriptWidth);
124
+ const rows = (0, state_1.liveTuiTranscriptRecords)(state)
125
+ .flatMap(entry => layoutRecord(entry, width, options));
126
+ const visible = rows.slice(Math.max(0, rows.length - maxRows));
127
+ visible.forEach((row, index) => {
128
+ (0, transcript_layout_1.writeStyledRowToFrame)(frame, startRow + index, row);
129
+ });
130
+ }
131
+ function renderTranscript(frame, state, startRow, maxRows, options) {
132
+ const width = resolveTranscriptWidth(frame.width, options.transcriptWidth);
133
+ const records = [
134
+ ...(0, state_1.staticTuiTranscriptRecords)(state),
135
+ ...(0, state_1.liveTuiTranscriptRecords)(state),
34
136
  ];
35
- const lines = entries.flatMap(entry => formatTranscriptEntry(entry, frame.width));
36
- const maxOffset = Math.max(0, lines.length - maxRows);
37
- const scrollOffset = Math.min(Math.max(0, state.transcriptScrollOffset), maxOffset);
38
- const start = Math.max(0, lines.length - maxRows - scrollOffset);
39
- const visible = lines.slice(start, start + maxRows);
137
+ const rows = records.flatMap(entry => layoutRecord(entry, width, options));
138
+ const visible = rows.slice(Math.max(0, rows.length - maxRows));
139
+ visible.forEach((row, index) => {
140
+ (0, transcript_layout_1.writeStyledRowToFrame)(frame, startRow + index, row);
141
+ });
142
+ }
143
+ /** Render the activity timeline (subtasks + running tools) just above status. */
144
+ function renderTimeline(frame, state, top, maxRows) {
145
+ const items = [];
146
+ for (const t of activeSubtaskTimelineEntries(state)) {
147
+ const mark = t.state === 'running' ? '▶' : '◦';
148
+ const label = t.summary ?? t.objective ?? t.role;
149
+ items.push(`${mark} ${t.taskId.slice(0, 8)} ${t.state} ${truncateCells(label, 24)}`);
150
+ }
151
+ for (const e of activeToolStarts(state)) {
152
+ items.push(`⚙ #${e.sequence} ${e.name} running`);
153
+ }
154
+ const visible = items.slice(-maxRows);
40
155
  visible.forEach((line, index) => {
41
- (0, frame_1.writeFrameText)(frame, index, 0, line);
156
+ (0, frame_1.writeFrameText)(frame, top + index, 0, truncateCells(line, frame.width));
42
157
  });
43
158
  }
44
159
  function renderStatus(frame, state, row) {
@@ -46,19 +161,81 @@ function renderStatus(frame, state, row) {
46
161
  return;
47
162
  const left = state.processing ? 'working' : 'ready';
48
163
  const right = state.statusMessage ? state.statusMessage : '';
164
+ const activity = [];
165
+ if (state.statusState.activeTools > 0)
166
+ activity.push(`tools:${state.statusState.activeTools}`);
167
+ if (state.statusState.activeSubtasks > 0)
168
+ activity.push(`sub:${state.statusState.activeSubtasks}`);
169
+ const activityStr = activity.length ? `[${activity.join(' ')}] ` : '';
170
+ const rightFull = right ? `${right} ${activityStr}`.trimEnd() : activityStr.trimEnd();
49
171
  const available = Math.max(0, frame.width - (0, string_width_1.default)(left) - 1);
50
- const status = right
51
- ? `${left}${' '.repeat(Math.max(1, available - (0, string_width_1.default)(right)))}${truncateCells(right, available)}`
172
+ const status = rightFull
173
+ ? `${left}${' '.repeat(Math.max(1, available - (0, string_width_1.default)(rightFull)))}${truncateCells(rightFull, available)}`
52
174
  : left;
53
175
  (0, frame_1.writeFrameText)(frame, row, 0, truncateCells(status, frame.width));
54
176
  }
55
- function renderPrompt(frame, state, top) {
56
- const width = frame.width;
57
- (0, frame_1.writeFrameText)(frame, top, 0, `┌${'─'.repeat(width - 2)}┐`);
58
- (0, frame_1.writeFrameText)(frame, top + 1, 0, '│ ');
59
- (0, frame_1.writeFrameText)(frame, top + 1, 2, truncateCells(`› ${state.prompt.value}`, width - 4));
60
- (0, frame_1.writeFrameText)(frame, top + 1, width - 1, '│');
61
- (0, frame_1.writeFrameText)(frame, top + 2, 0, `└${'─'.repeat(width - 2)}┘`);
177
+ /**
178
+ * Render a bounded prompt viewport. The underlying prompt value is never
179
+ * truncated; only the lines around the cursor are painted when the terminal is
180
+ * too short to show the full multi-line value.
181
+ */
182
+ function renderPrompt(frame, state, top, width, visibleLineCount) {
183
+ const value = state.prompt.value;
184
+ const lines = value.split('\n');
185
+ const innerWidth = Math.max(0, width - 2);
186
+ const { line: cursorLine, col: cursorCol } = lineColOfCursor(value, state.prompt.cursor);
187
+ const viewportStart = Math.max(0, Math.min(cursorLine, lines.length - visibleLineCount));
188
+ const viewportLines = lines.slice(viewportStart, viewportStart + visibleLineCount);
189
+ (0, frame_1.writeFrameText)(frame, top, 0, `┌${'─'.repeat(innerWidth)}┐`);
190
+ for (let i = 0; i < viewportLines.length; i++) {
191
+ const absoluteLine = viewportStart + i;
192
+ const prefix = absoluteLine === 0 ? '› ' : ' ';
193
+ const fixed = ` ${prefix}`;
194
+ const bodyWidth = Math.max(0, innerWidth - (0, string_width_1.default)(fixed) - 1);
195
+ const viewport = absoluteLine === cursorLine
196
+ ? promptLineViewport(viewportLines[i], cursorCol, bodyWidth)
197
+ : { text: truncateCells(viewportLines[i], bodyWidth), cursorCells: 0 };
198
+ const content = `${fixed}${viewport.text}`;
199
+ const padding = ' '.repeat(Math.max(0, innerWidth - (0, string_width_1.default)(content)));
200
+ (0, frame_1.writeFrameText)(frame, top + 1 + i, 0, `│${content}${padding}│`);
201
+ }
202
+ (0, frame_1.writeFrameText)(frame, top + 1 + viewportLines.length, 0, `└${'─'.repeat(innerWidth)}┘`);
203
+ const cursorPrefix = cursorLine === 0 ? '› ' : ' ';
204
+ const cursorFixed = ` ${cursorPrefix}`;
205
+ const cursorBodyWidth = Math.max(0, innerWidth - (0, string_width_1.default)(cursorFixed) - 1);
206
+ const cursorViewport = promptLineViewport(lines[cursorLine], cursorCol, cursorBodyWidth);
207
+ const cursorColumn = 1 + (0, string_width_1.default)(cursorFixed) + cursorViewport.cursorCells;
208
+ (0, frame_1.setFrameCursor)(frame, top + 1 + cursorLine - viewportStart, cursorColumn, true);
209
+ }
210
+ function promptLineViewport(value, cursor, width) {
211
+ if (width <= 0)
212
+ return { text: '', cursorCells: 0 };
213
+ const safeCursor = Math.max(0, Math.min(cursor, value.length));
214
+ const before = Array.from(graphemeIterate(value.slice(0, safeCursor)));
215
+ const after = value.slice(safeCursor);
216
+ let visibleBefore = before.join('');
217
+ let marker = '';
218
+ if ((0, string_width_1.default)(visibleBefore) > width) {
219
+ marker = '…';
220
+ const available = Math.max(0, width - (0, string_width_1.default)(marker));
221
+ let used = 0;
222
+ const tail = [];
223
+ for (let index = before.length - 1; index >= 0; index -= 1) {
224
+ const grapheme = before[index];
225
+ const graphemeWidth = Math.max(0, (0, string_width_1.default)(grapheme));
226
+ if (used + graphemeWidth > available)
227
+ break;
228
+ tail.unshift(grapheme);
229
+ used += graphemeWidth;
230
+ }
231
+ visibleBefore = tail.join('');
232
+ }
233
+ const left = `${marker}${visibleBefore}`;
234
+ const visibleAfter = truncateCells(after, Math.max(0, width - (0, string_width_1.default)(left)));
235
+ return {
236
+ text: `${left}${visibleAfter}`,
237
+ cursorCells: (0, string_width_1.default)(left),
238
+ };
62
239
  }
63
240
  function renderOverlay(frame, state, maxRows) {
64
241
  if (!state.overlay || maxRows <= 0)
@@ -175,7 +352,7 @@ function renderOverlay(frame, state, maxRows) {
175
352
  'Shortcuts',
176
353
  '/ commands @ files ? shortcuts',
177
354
  'Enter submit/select Tab complete Esc cancel',
178
- 'PageUp/PageDown transcript history Ctrl+C interrupt / twice exits',
355
+ 'scroll terminal (↑/↓) to review history Ctrl+C interrupt / twice exits',
179
356
  ].map(row => truncateCells(row, frame.width));
180
357
  rows.slice(0, maxRows).forEach((line, index) => {
181
358
  (0, frame_1.writeFrameText)(frame, index, 0, line);
@@ -192,62 +369,20 @@ function pickerStartIndex(selectedIndex, visibleCount, total) {
192
369
  const desired = selectedIndex - halfWindow;
193
370
  return Math.min(total - visibleCount, Math.max(0, desired));
194
371
  }
195
- function formatTranscriptEntry(entry, width) {
196
- const prefix = transcriptPrefix(entry);
197
- const rawLines = entry.content.split('\n');
198
- const lines = rawLines.length > 0 ? rawLines : [''];
199
- return lines.flatMap((line, index) => {
200
- const text = `${index === 0 ? prefix : ' '}${line}`;
201
- return wrapCells(text, width);
202
- });
203
- }
204
- function transcriptPrefix(entry) {
205
- switch (entry.role) {
206
- case 'user':
207
- return '› ';
208
- case 'tool':
209
- return '• ';
210
- case 'error':
211
- return '! ';
212
- case 'command':
213
- return '/ ';
214
- case 'status':
215
- return '= ';
216
- case 'assistant':
217
- case 'system':
218
- default:
219
- return '';
220
- }
372
+ function layoutRecord(entry, width, options) {
373
+ return options.layoutTranscriptRecord?.(entry, width)
374
+ ?? (0, transcript_layout_1.layoutTranscriptEntry)(entry, { width, theme: options.theme });
221
375
  }
222
- function promptCursorColumn(value, cursor, width) {
223
- const prompt = (0, ui_view_model_1.createPromptState)({ value, cursor });
224
- return Math.min(width - 2, 4 + (0, string_width_1.default)(prompt.textBeforeCursor));
225
- }
226
- function wrapCells(value, width) {
227
- if (width <= 0)
228
- return [''];
229
- const rows = [];
230
- let current = '';
231
- let currentWidth = 0;
232
- for (const char of Array.from(value)) {
233
- const charWidth = Math.max(0, (0, string_width_1.default)(char));
234
- if (currentWidth > 0 && currentWidth + charWidth > width) {
235
- rows.push(current);
236
- current = '';
237
- currentWidth = 0;
238
- }
239
- current += char;
240
- currentWidth += charWidth;
241
- }
242
- rows.push(current);
243
- return rows;
376
+ function resolveTranscriptWidth(frameWidth, requested) {
377
+ const normalized = requested === undefined ? frameWidth : Math.floor(requested);
378
+ return Math.max(1, Math.min(frameWidth, normalized));
244
379
  }
245
380
  function truncateCells(value, width) {
246
381
  if (width <= 0)
247
382
  return '';
248
383
  let output = '';
249
384
  let used = 0;
250
- for (const char of Array.from(value)) {
385
+ for (const char of graphemeIterate(value)) {
251
386
  const charWidth = Math.max(0, (0, string_width_1.default)(char));
252
387
  if (used + charWidth > width)
253
388
  break;
@@ -256,4 +391,32 @@ function truncateCells(value, width) {
256
391
  }
257
392
  return output;
258
393
  }
394
+ /** Map an absolute character cursor to {line, col} within a multi-line value. */
395
+ function lineColOfCursor(value, cursor) {
396
+ const lines = value.split('\n');
397
+ const safeCursor = Math.max(0, Math.min(cursor, value.length));
398
+ let offset = 0;
399
+ for (let i = 0; i < lines.length; i++) {
400
+ const lineLen = lines[i].length;
401
+ if (safeCursor <= offset + lineLen) {
402
+ return { line: i, col: safeCursor - offset };
403
+ }
404
+ offset += lineLen + 1; // +1 for the newline separator
405
+ }
406
+ const last = lines.length - 1;
407
+ return { line: last, col: lines[last].length };
408
+ }
409
+ /** Iterate by grapheme cluster (not code point) to preserve ZWJ emoji etc. */
410
+ function* graphemeIterate(text) {
411
+ const Segmenter = Intl.Segmenter;
412
+ if (Segmenter) {
413
+ const segmenter = new Segmenter(undefined, { granularity: 'grapheme' });
414
+ for (const part of segmenter.segment(text)) {
415
+ yield part.segment;
416
+ }
417
+ }
418
+ else {
419
+ yield* Array.from(text);
420
+ }
421
+ }
259
422
  //# sourceMappingURL=layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/tui-ui/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/tui-ui/layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * TuiRenderScheduler — coalesces redundant renders and caps stream paint rate.
3
+ *
4
+ * Priority model:
5
+ * - `immediate`: input, permission, cursor, overlay, resize. At most one
6
+ * paint per event-loop tick (multiple immediate requests merge).
7
+ * - `stream`: streaming assistant/tool deltas. Capped at ~30 FPS; multiple
8
+ * deltas between frames are merged (latest state wins).
9
+ *
10
+ * Commit effects bypass the scheduler entirely; they go through the surface
11
+ * FIFO queue. After a commit, an immediate live paint is requested.
12
+ *
13
+ * Timer deps are injectable for fake-timer testing. No real sleeps.
14
+ */
15
+ export interface TuiRenderSchedulerDeps {
16
+ now: () => number;
17
+ queueMicrotask: (callback: () => void) => void;
18
+ setTimeout: (callback: () => void, delay: number) => unknown;
19
+ clearTimeout: (timer: unknown) => void;
20
+ }
21
+ export interface TuiRenderScheduler {
22
+ /** Request a paint at the given priority. */
23
+ request(priority: 'stream' | 'immediate'): void;
24
+ /** Flush any pending paint synchronously (for lifecycle / tests). */
25
+ flush(): void;
26
+ /** Stop the scheduler and clear any pending timers. */
27
+ stop(): void;
28
+ /** Performance counters (test/debug only, zeroed on stop). */
29
+ readonly counters: TuiRenderSchedulerCounters;
30
+ }
31
+ export interface TuiRenderSchedulerCounters {
32
+ paintCount: number;
33
+ requestCount: number;
34
+ coalescedCount: number;
35
+ }
36
+ export declare function createTuiRenderScheduler(paint: () => void, deps?: Partial<TuiRenderSchedulerDeps>): TuiRenderScheduler;
37
+ //# sourceMappingURL=render-scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-scheduler.d.ts","sourceRoot":"","sources":["../../src/tui-ui/render-scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC/C,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7D,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,CAAC;IAChD,qEAAqE;IACrE,KAAK,IAAI,IAAI,CAAC;IACd,uDAAuD;IACvD,IAAI,IAAI,IAAI,CAAC;IACb,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;CAC/C;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAKD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,IAAI,EACjB,IAAI,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACrC,kBAAkB,CA6GpB"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ /**
3
+ * TuiRenderScheduler — coalesces redundant renders and caps stream paint rate.
4
+ *
5
+ * Priority model:
6
+ * - `immediate`: input, permission, cursor, overlay, resize. At most one
7
+ * paint per event-loop tick (multiple immediate requests merge).
8
+ * - `stream`: streaming assistant/tool deltas. Capped at ~30 FPS; multiple
9
+ * deltas between frames are merged (latest state wins).
10
+ *
11
+ * Commit effects bypass the scheduler entirely; they go through the surface
12
+ * FIFO queue. After a commit, an immediate live paint is requested.
13
+ *
14
+ * Timer deps are injectable for fake-timer testing. No real sleeps.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.createTuiRenderScheduler = createTuiRenderScheduler;
18
+ const STREAM_FPS = 30;
19
+ const STREAM_FRAME_MS = 1000 / STREAM_FPS; // ~33.3ms
20
+ function createTuiRenderScheduler(paint, deps) {
21
+ const now = deps?.now ?? (() => Date.now());
22
+ const queueMicrotaskFn = deps?.queueMicrotask ?? queueMicrotask;
23
+ const setTimeoutFn = deps?.setTimeout ?? ((cb, ms) => setTimeout(cb, ms));
24
+ const clearTimeoutFn = deps?.clearTimeout ?? ((timer) => clearTimeout(timer));
25
+ let pendingImmediate = false;
26
+ let pendingStreamTimer = null;
27
+ let lastStreamPaintTime = 0;
28
+ let stopped = false;
29
+ const counters = {
30
+ paintCount: 0,
31
+ requestCount: 0,
32
+ coalescedCount: 0,
33
+ };
34
+ function doPaint() {
35
+ counters.paintCount += 1;
36
+ paint();
37
+ }
38
+ function executeImmediate() {
39
+ pendingImmediate = false;
40
+ // Cancel any pending stream paint — immediate supersedes it.
41
+ if (pendingStreamTimer !== null) {
42
+ clearTimeoutFn(pendingStreamTimer);
43
+ pendingStreamTimer = null;
44
+ }
45
+ doPaint();
46
+ }
47
+ function executeStream() {
48
+ pendingStreamTimer = null;
49
+ lastStreamPaintTime = now();
50
+ doPaint();
51
+ }
52
+ const scheduler = {
53
+ request(priority) {
54
+ if (stopped)
55
+ return;
56
+ counters.requestCount += 1;
57
+ if (priority === 'immediate') {
58
+ if (pendingImmediate) {
59
+ // Same-tick coalescing: already have a pending immediate.
60
+ counters.coalescedCount += 1;
61
+ return;
62
+ }
63
+ pendingImmediate = true;
64
+ queueMicrotaskFn(executeImmediate);
65
+ return;
66
+ }
67
+ // Stream priority: FPS cap.
68
+ if (pendingImmediate) {
69
+ // Immediate already scheduled; no need for separate stream paint.
70
+ counters.coalescedCount += 1;
71
+ return;
72
+ }
73
+ if (pendingStreamTimer !== null) {
74
+ // Already waiting for a stream frame; merge.
75
+ counters.coalescedCount += 1;
76
+ return;
77
+ }
78
+ const elapsed = now() - lastStreamPaintTime;
79
+ const remaining = STREAM_FRAME_MS - elapsed;
80
+ if (remaining <= 0) {
81
+ // Enough time has passed; paint on next microtask.
82
+ pendingStreamTimer = setTimeoutFn(executeStream, 0);
83
+ }
84
+ else {
85
+ pendingStreamTimer = setTimeoutFn(executeStream, remaining);
86
+ }
87
+ },
88
+ flush() {
89
+ if (stopped)
90
+ return;
91
+ const hasPending = pendingImmediate || pendingStreamTimer !== null;
92
+ // Cancel pending timers.
93
+ if (pendingStreamTimer !== null) {
94
+ clearTimeoutFn(pendingStreamTimer);
95
+ pendingStreamTimer = null;
96
+ }
97
+ pendingImmediate = false;
98
+ // Only paint if there was a pending request.
99
+ if (hasPending) {
100
+ doPaint();
101
+ }
102
+ },
103
+ stop() {
104
+ stopped = true;
105
+ if (pendingStreamTimer !== null) {
106
+ clearTimeoutFn(pendingStreamTimer);
107
+ pendingStreamTimer = null;
108
+ }
109
+ pendingImmediate = false;
110
+ counters.paintCount = 0;
111
+ counters.requestCount = 0;
112
+ counters.coalescedCount = 0;
113
+ },
114
+ counters,
115
+ };
116
+ return scheduler;
117
+ }
118
+ //# sourceMappingURL=render-scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-scheduler.js","sourceRoot":"","sources":["../../src/tui-ui/render-scheduler.ts"],"names":[],"mappings":"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"}