@aragon-agent/cli 0.6.47 → 0.6.48

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 (775) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +27 -6
  3. package/dist/agent/coalesce.d.ts +1 -1
  4. package/dist/agent/controller.d.ts +21 -21
  5. package/dist/agent/controller.js +13 -13
  6. package/dist/agent/conversation-reset.d.ts +1 -1
  7. package/dist/agent/governance-wiring.d.ts +6 -6
  8. package/dist/agent/governance-wiring.js +4 -4
  9. package/dist/agent/headless.d.ts +5 -5
  10. package/dist/agent/headless.js +4 -4
  11. package/dist/agent/job-notices.d.ts +1 -1
  12. package/dist/agent/job-notices.js +1 -1
  13. package/dist/agent/kit-apply.d.ts +3 -3
  14. package/dist/agent/kit-apply.js +3 -3
  15. package/dist/agent/model-profile-settings.d.ts +2 -2
  16. package/dist/agent/model-profile-settings.js +6 -6
  17. package/dist/agent/prompt-options.d.ts +1 -1
  18. package/dist/agent/system-prompt.d.ts +1 -1
  19. package/dist/{ui → app}/App.d.ts +9 -9
  20. package/dist/{ui → app}/App.js +79 -79
  21. package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
  22. package/dist/{ui → app}/use-startup-notices.js +2 -2
  23. package/dist/cli.js +29 -29
  24. package/dist/commands/agents-command.js +1 -1
  25. package/dist/commands/builtins.js +9 -9
  26. package/dist/commands/governance-command.js +2 -2
  27. package/dist/commands/governance-runs-table.js +1 -1
  28. package/dist/commands/kit-command.js +1 -1
  29. package/dist/commands/perf.d.ts +3 -3
  30. package/dist/commands/perf.js +1 -1
  31. package/dist/commands/registry.d.ts +8 -8
  32. package/dist/commands/skills.js +2 -2
  33. package/dist/commands/team-command.js +1 -1
  34. package/dist/compaction/archive.d.ts +1 -1
  35. package/dist/compaction/archive.js +1 -1
  36. package/dist/compaction/child.d.ts +3 -3
  37. package/dist/compaction/child.js +4 -4
  38. package/dist/compaction/command.js +5 -5
  39. package/dist/compaction/compactor.d.ts +6 -6
  40. package/dist/compaction/compactor.js +6 -6
  41. package/dist/compaction/context-command.js +1 -1
  42. package/dist/compaction/digest.js +1 -1
  43. package/dist/compaction/memory-input.js +1 -1
  44. package/dist/compaction/memory-validation.js +1 -1
  45. package/dist/compaction/memory.js +1 -1
  46. package/dist/compaction/summarize-call.js +1 -1
  47. package/dist/compaction/summary-prompt.js +1 -1
  48. package/dist/compaction/tail-budget.js +2 -2
  49. package/dist/compaction/wiring.d.ts +5 -5
  50. package/dist/compaction/wiring.js +2 -2
  51. package/dist/config/cli-commands.d.ts +1 -1
  52. package/dist/config/cli-commands.js +3 -3
  53. package/dist/config/env.d.ts +1 -1
  54. package/dist/config/env.js +4 -4
  55. package/dist/config/load.d.ts +2 -2
  56. package/dist/config/load.js +6 -6
  57. package/dist/config/migrate-state-out-of-config.js +1 -1
  58. package/dist/config/model-profile-store.d.ts +4 -54
  59. package/dist/config/model-profile-store.js +3 -3
  60. package/dist/config/prompt-history.js +1 -1
  61. package/dist/config/store.d.ts +2 -2
  62. package/dist/config/store.js +3 -3
  63. package/dist/diagnostics/doctor.js +4 -4
  64. package/dist/exec/bridge/decisions.d.ts +1 -1
  65. package/dist/exec/bridge/human-answers.d.ts +1 -1
  66. package/dist/exec/bridge/human-answers.js +1 -1
  67. package/dist/exec/bridge/protocol.d.ts +1 -1
  68. package/dist/exec/bridge/server.js +1 -1
  69. package/dist/exec/events.d.ts +2 -2
  70. package/dist/exec/index.d.ts +1 -1
  71. package/dist/exec/index.js +1 -1
  72. package/dist/exec/permission.js +1 -1
  73. package/dist/exec/runner.d.ts +3 -3
  74. package/dist/exec/runner.js +2 -2
  75. package/dist/exec/threads/runtime.js +1 -1
  76. package/dist/fast/digest.d.ts +1 -1
  77. package/dist/fast/digest.js +1 -1
  78. package/dist/fast/frames.d.ts +1 -1
  79. package/dist/fast/frames.js +1 -1
  80. package/dist/fast/prompt.d.ts +1 -1
  81. package/dist/fast/prompt.js +1 -1
  82. package/dist/fast/review-call.js +1 -1
  83. package/dist/fast/reviewer.d.ts +3 -3
  84. package/dist/fast/reviewer.js +1 -1
  85. package/dist/fast/summary-call.d.ts +3 -3
  86. package/dist/fast/summary-call.js +2 -2
  87. package/dist/fast/summary-prompt.d.ts +1 -1
  88. package/dist/fast/summary-prompt.js +1 -1
  89. package/dist/fast/wiring.d.ts +4 -4
  90. package/dist/fast/wiring.js +1 -1
  91. package/dist/governance/card-normalize.d.ts +1 -1
  92. package/dist/governance/copy.d.ts +1 -1
  93. package/dist/governance/copy.js +2 -2
  94. package/dist/governance/engine/artifact-persist.d.ts +1 -1
  95. package/dist/governance/engine/budget.d.ts +1 -1
  96. package/dist/governance/engine/budget.js +1 -1
  97. package/dist/governance/engine/cards.d.ts +1 -1
  98. package/dist/governance/engine/digest.js +1 -1
  99. package/dist/governance/engine/engine-core.d.ts +5 -5
  100. package/dist/governance/engine/engine-core.js +1 -1
  101. package/dist/governance/engine/engine.d.ts +1 -1
  102. package/dist/governance/engine/engine.js +1 -1
  103. package/dist/governance/engine/estimate.d.ts +1 -1
  104. package/dist/governance/engine/estimate.js +1 -1
  105. package/dist/governance/engine/inspector.js +2 -2
  106. package/dist/governance/engine/integration.d.ts +1 -1
  107. package/dist/governance/engine/lifecycle.d.ts +1 -1
  108. package/dist/governance/engine/lifecycle.js +1 -1
  109. package/dist/governance/engine/phase-members.d.ts +1 -1
  110. package/dist/governance/engine/phase-planner.d.ts +1 -1
  111. package/dist/governance/engine/phase-planner.js +1 -1
  112. package/dist/governance/engine/rebuild.d.ts +1 -1
  113. package/dist/governance/engine/report.d.ts +1 -1
  114. package/dist/governance/engine/report.js +1 -1
  115. package/dist/governance/engine/run-digest.d.ts +1 -1
  116. package/dist/governance/engine/spec-builder.d.ts +2 -2
  117. package/dist/governance/engine/spec-builder.js +2 -2
  118. package/dist/governance/engine/stage-runner.js +2 -2
  119. package/dist/governance/engine/start-input.d.ts +1 -1
  120. package/dist/governance/engine/start-input.js +1 -1
  121. package/dist/governance/engine/state-machine.d.ts +1 -1
  122. package/dist/governance/engine/state-machine.js +3 -3
  123. package/dist/governance/engine/submission-queries.d.ts +1 -1
  124. package/dist/governance/engine/submission-render.d.ts +1 -1
  125. package/dist/governance/engine/submissions.d.ts +1 -1
  126. package/dist/governance/engine/submissions.js +1 -1
  127. package/dist/governance/engine/visibility.d.ts +1 -1
  128. package/dist/governance/engine/visibility.js +1 -1
  129. package/dist/governance/posture-transition.d.ts +2 -2
  130. package/dist/governance/posture-transition.js +1 -1
  131. package/dist/governance/profiles.d.ts +1 -1
  132. package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
  133. package/dist/governance/prompts/orchestrator-block.js +2 -2
  134. package/dist/governance/prompts/plan-addendum.d.ts +1 -1
  135. package/dist/governance/prompts/plan-addendum.js +1 -1
  136. package/dist/governance/prompts/role-blocks.d.ts +2 -2
  137. package/dist/governance/prompts/role-blocks.js +1 -1
  138. package/dist/governance/report-reader.js +1 -1
  139. package/dist/governance/roles.d.ts +1 -1
  140. package/dist/governance/rules/claims.d.ts +1 -1
  141. package/dist/governance/rules/claims.js +1 -1
  142. package/dist/governance/rules/elimination.d.ts +1 -1
  143. package/dist/governance/rules/elimination.js +1 -1
  144. package/dist/governance/rules/failure-analysis.d.ts +2 -2
  145. package/dist/governance/rules/failure-analysis.js +1 -1
  146. package/dist/governance/rules/ledger-replay.d.ts +1 -1
  147. package/dist/governance/rules/ledger-state.d.ts +1 -1
  148. package/dist/governance/rules/ledger-state.js +1 -1
  149. package/dist/governance/rules/ledger.d.ts +2 -2
  150. package/dist/governance/rules/ledger.js +2 -2
  151. package/dist/governance/rules/rca.d.ts +1 -1
  152. package/dist/governance/rules/rca.js +1 -1
  153. package/dist/governance/rules/settlement.d.ts +2 -2
  154. package/dist/governance/rules/settlement.js +2 -2
  155. package/dist/governance/rules/suspicion.d.ts +1 -1
  156. package/dist/governance/store/artifacts.d.ts +1 -1
  157. package/dist/governance/store/artifacts.js +1 -1
  158. package/dist/governance/store/events-log.d.ts +1 -1
  159. package/dist/governance/store/run-store.d.ts +1 -1
  160. package/dist/governance/store/run-store.js +1 -1
  161. package/dist/governance/store/scoreboard-export.d.ts +1 -1
  162. package/dist/governance/tools/child-tools.d.ts +1 -1
  163. package/dist/governance/tools/guard.d.ts +1 -1
  164. package/dist/governance/tools/guard.js +1 -1
  165. package/dist/governance/tools/inspector-tools.d.ts +2 -2
  166. package/dist/governance/tools/inspector-tools.js +2 -2
  167. package/dist/governance/tools/lead-tools.d.ts +1 -1
  168. package/dist/governance/tools/lead-tools.js +1 -1
  169. package/dist/governance/tools/normalize-util.js +1 -1
  170. package/dist/governance/tools/scan-incomplete.js +1 -1
  171. package/dist/governance/tools/shared-tools.d.ts +1 -1
  172. package/dist/governance/tools/shared-tools.js +1 -1
  173. package/dist/governance/tools/submit-normalizers.d.ts +1 -1
  174. package/dist/governance/tools/submit-normalizers.js +1 -1
  175. package/dist/governance/tools/submit-tools.d.ts +1 -1
  176. package/dist/logging/cli-commands.js +1 -1
  177. package/dist/logging/install.d.ts +1 -1
  178. package/dist/logging/install.js +3 -3
  179. package/dist/logging/logger.d.ts +2 -2
  180. package/dist/logging/logger.js +31 -2
  181. package/dist/proc/kill-tree.js +1 -1
  182. package/dist/proc/log-mirror.js +1 -1
  183. package/dist/proc/log-ring.js +2 -2
  184. package/dist/proc/notices.d.ts +1 -1
  185. package/dist/proc/notices.js +2 -2
  186. package/dist/proc/prompt.d.ts +1 -1
  187. package/dist/proc/prompt.js +1 -1
  188. package/dist/proc/readiness.js +1 -1
  189. package/dist/proc/supervisor.d.ts +1 -1
  190. package/dist/proc/supervisor.js +3 -3
  191. package/dist/proc/wait.d.ts +1 -1
  192. package/dist/proc/wait.js +1 -1
  193. package/dist/prompts/command.d.ts +1 -1
  194. package/dist/prompts/command.js +1 -1
  195. package/dist/prompts/normalize.d.ts +1 -1
  196. package/dist/prompts/normalize.js +1 -1
  197. package/dist/prompts/resolve.d.ts +1 -1
  198. package/dist/prompts/store.d.ts +2 -12
  199. package/dist/prompts/store.js +6 -60
  200. package/dist/session/checkpoint.d.ts +2 -2
  201. package/dist/session/clear-archive.d.ts +2 -2
  202. package/dist/session/persist.d.ts +2 -2
  203. package/dist/session/persist.js +1 -1
  204. package/dist/session/startup-session.d.ts +2 -2
  205. package/dist/session/validate-session.js +3 -3
  206. package/dist/skills/service.d.ts +2 -2
  207. package/dist/team/bus.d.ts +1 -1
  208. package/dist/team/bus.js +1 -1
  209. package/dist/team/child-reviewer.d.ts +2 -2
  210. package/dist/team/child-reviewer.js +1 -1
  211. package/dist/team/comm-tools.js +1 -1
  212. package/dist/team/dispatch-gate.js +1 -1
  213. package/dist/team/forced-dispatch.js +1 -1
  214. package/dist/team/forced-mode.d.ts +1 -1
  215. package/dist/team/forced-prompt.d.ts +1 -1
  216. package/dist/team/forced-prompt.js +1 -1
  217. package/dist/team/normalize.d.ts +1 -1
  218. package/dist/team/normalize.js +1 -1
  219. package/dist/team/overseer.d.ts +3 -3
  220. package/dist/team/overseer.js +3 -3
  221. package/dist/team/prompt.d.ts +1 -1
  222. package/dist/team/prompt.js +1 -1
  223. package/dist/team/report.d.ts +2 -2
  224. package/dist/team/report.js +2 -2
  225. package/dist/team/retry.d.ts +1 -1
  226. package/dist/team/retry.js +1 -1
  227. package/dist/team/runtime.d.ts +4 -4
  228. package/dist/team/runtime.js +2 -2
  229. package/dist/team/settled.d.ts +2 -2
  230. package/dist/team/subagent.d.ts +4 -4
  231. package/dist/team/subagent.js +5 -5
  232. package/dist/team/task-tool.d.ts +1 -1
  233. package/dist/team/task-tool.js +1 -1
  234. package/dist/todo/normalize.d.ts +1 -1
  235. package/dist/todo/normalize.js +1 -1
  236. package/dist/todo/prompt.d.ts +1 -1
  237. package/dist/todo/prompt.js +1 -1
  238. package/dist/todo/store.d.ts +1 -1
  239. package/dist/todo/store.js +2 -2
  240. package/dist/todo/todo-tool.d.ts +1 -1
  241. package/dist/todo/todo-tool.js +2 -2
  242. package/dist/tools/bash-tool.d.ts +1 -1
  243. package/dist/tools/bash-tool.js +2 -2
  244. package/dist/tools/diff.d.ts +1 -1
  245. package/dist/tools/diff.js +1 -1
  246. package/dist/tools/file-change-store.d.ts +1 -1
  247. package/dist/tools/fs-tools.d.ts +2 -2
  248. package/dist/tools/fs-tools.js +1 -1
  249. package/dist/tools/index.d.ts +3 -3
  250. package/dist/tools/index.js +1 -1
  251. package/dist/tools/job-tools.d.ts +2 -2
  252. package/dist/tools/job-tools.js +4 -4
  253. package/dist/tools/plan-tools.d.ts +1 -1
  254. package/dist/tools/plan-tools.js +1 -1
  255. package/dist/tools/proc-tools.d.ts +1 -1
  256. package/dist/tools/proc-tools.js +2 -2
  257. package/dist/update/classify-failure.d.ts +1 -1
  258. package/dist/update/install-lock.js +1 -1
  259. package/dist/update/install-source.d.ts +1 -1
  260. package/dist/update/installer.js +2 -2
  261. package/dist/update/npm-view.d.ts +1 -1
  262. package/dist/update/npm-view.js +1 -1
  263. package/dist/update/registry.d.ts +1 -1
  264. package/dist/update/registry.js +1 -1
  265. package/dist/update/service.d.ts +2 -2
  266. package/dist/update/service.js +2 -2
  267. package/package.json +7 -7
  268. package/dist/agent/agent-mode.d.ts +0 -108
  269. package/dist/agent/agent-mode.js +0 -121
  270. package/dist/agent/entry-limits.d.ts +0 -65
  271. package/dist/agent/entry-limits.js +0 -133
  272. package/dist/agent/governance-view.d.ts +0 -40
  273. package/dist/agent/governance-view.js +0 -40
  274. package/dist/agent/invocation-card.d.ts +0 -77
  275. package/dist/agent/invocation-card.js +0 -169
  276. package/dist/agent/model-probe-limits.d.ts +0 -39
  277. package/dist/agent/model-probe-limits.js +0 -25
  278. package/dist/agent/model-probe.d.ts +0 -104
  279. package/dist/agent/model-probe.js +0 -391
  280. package/dist/agent/queued-messages.d.ts +0 -23
  281. package/dist/agent/queued-messages.js +0 -49
  282. package/dist/agent/reducer.d.ts +0 -857
  283. package/dist/agent/reducer.js +0 -1646
  284. package/dist/agent/retry-view.d.ts +0 -68
  285. package/dist/agent/retry-view.js +0 -95
  286. package/dist/agent/usage.d.ts +0 -47
  287. package/dist/agent/usage.js +0 -84
  288. package/dist/compaction/limits.d.ts +0 -61
  289. package/dist/compaction/limits.js +0 -64
  290. package/dist/compaction/meter.d.ts +0 -276
  291. package/dist/compaction/meter.js +0 -512
  292. package/dist/compaction/pressure.d.ts +0 -163
  293. package/dist/compaction/pressure.js +0 -199
  294. package/dist/compaction/reason-text.d.ts +0 -36
  295. package/dist/compaction/reason-text.js +0 -78
  296. package/dist/compaction/types.d.ts +0 -360
  297. package/dist/compaction/types.js +0 -22
  298. package/dist/config/governance-config.d.ts +0 -125
  299. package/dist/config/governance-config.js +0 -164
  300. package/dist/config/kit-resolution.d.ts +0 -93
  301. package/dist/config/kit-resolution.js +0 -226
  302. package/dist/config/model-kits.d.ts +0 -225
  303. package/dist/config/model-kits.js +0 -302
  304. package/dist/config/model-profile-resolution.d.ts +0 -28
  305. package/dist/config/model-profile-resolution.js +0 -88
  306. package/dist/config/model-profiles.d.ts +0 -103
  307. package/dist/config/model-profiles.js +0 -188
  308. package/dist/config/schema.d.ts +0 -1645
  309. package/dist/config/schema.js +0 -1383
  310. package/dist/fast/limits.d.ts +0 -152
  311. package/dist/fast/limits.js +0 -152
  312. package/dist/fast/resolve.d.ts +0 -44
  313. package/dist/fast/resolve.js +0 -107
  314. package/dist/fast/task-summary-types.d.ts +0 -66
  315. package/dist/fast/task-summary-types.js +0 -17
  316. package/dist/fast/types.d.ts +0 -141
  317. package/dist/fast/types.js +0 -14
  318. package/dist/governance/governed-dispatch.d.ts +0 -19
  319. package/dist/governance/governed-dispatch.js +0 -17
  320. package/dist/governance/limits.d.ts +0 -107
  321. package/dist/governance/limits.js +0 -131
  322. package/dist/governance/posture.d.ts +0 -35
  323. package/dist/governance/posture.js +0 -59
  324. package/dist/governance/rules/events-table.d.ts +0 -46
  325. package/dist/governance/rules/events-table.js +0 -94
  326. package/dist/governance/types.d.ts +0 -661
  327. package/dist/governance/types.js +0 -27
  328. package/dist/input/control-sequences.d.ts +0 -71
  329. package/dist/input/control-sequences.js +0 -222
  330. package/dist/input/csiu-keys.d.ts +0 -66
  331. package/dist/input/csiu-keys.js +0 -181
  332. package/dist/input/cursor-report.d.ts +0 -61
  333. package/dist/input/cursor-report.js +0 -97
  334. package/dist/input/enter-sequences.d.ts +0 -64
  335. package/dist/input/enter-sequences.js +0 -153
  336. package/dist/input/interrupt-gesture.d.ts +0 -18
  337. package/dist/input/interrupt-gesture.js +0 -19
  338. package/dist/input/keyboard-enhancement.d.ts +0 -42
  339. package/dist/input/keyboard-enhancement.js +0 -65
  340. package/dist/input/keymap.d.ts +0 -20
  341. package/dist/input/keymap.js +0 -99
  342. package/dist/input/limits.d.ts +0 -118
  343. package/dist/input/limits.js +0 -109
  344. package/dist/input/mouse-events.d.ts +0 -87
  345. package/dist/input/mouse-events.js +0 -212
  346. package/dist/input/paste-parse.d.ts +0 -83
  347. package/dist/input/paste-parse.js +0 -107
  348. package/dist/input/pointer-router.d.ts +0 -11
  349. package/dist/input/pointer-router.js +0 -14
  350. package/dist/input/stdin-filter.d.ts +0 -112
  351. package/dist/input/stdin-filter.js +0 -657
  352. package/dist/input/win32-input-mode.d.ts +0 -61
  353. package/dist/input/win32-input-mode.js +0 -269
  354. package/dist/logging/levels.d.ts +0 -40
  355. package/dist/logging/levels.js +0 -59
  356. package/dist/logging/secret-registry.d.ts +0 -32
  357. package/dist/logging/secret-registry.js +0 -73
  358. package/dist/proc/limits.d.ts +0 -214
  359. package/dist/proc/limits.js +0 -221
  360. package/dist/proc/progress.d.ts +0 -47
  361. package/dist/proc/progress.js +0 -163
  362. package/dist/proc/types.d.ts +0 -269
  363. package/dist/proc/types.js +0 -15
  364. package/dist/proc/wait-view.d.ts +0 -65
  365. package/dist/proc/wait-view.js +0 -66
  366. package/dist/prompts/copy.d.ts +0 -89
  367. package/dist/prompts/copy.js +0 -131
  368. package/dist/prompts/fill.d.ts +0 -51
  369. package/dist/prompts/fill.js +0 -46
  370. package/dist/prompts/limits.d.ts +0 -53
  371. package/dist/prompts/limits.js +0 -53
  372. package/dist/prompts/search.d.ts +0 -58
  373. package/dist/prompts/search.js +0 -146
  374. package/dist/prompts/types.d.ts +0 -204
  375. package/dist/prompts/types.js +0 -13
  376. package/dist/team/activity.d.ts +0 -67
  377. package/dist/team/activity.js +0 -130
  378. package/dist/team/limits.d.ts +0 -308
  379. package/dist/team/limits.js +0 -330
  380. package/dist/team/model.d.ts +0 -104
  381. package/dist/team/model.js +0 -150
  382. package/dist/team/panel-rows.d.ts +0 -48
  383. package/dist/team/panel-rows.js +0 -75
  384. package/dist/team/timeline.d.ts +0 -74
  385. package/dist/team/timeline.js +0 -101
  386. package/dist/team/types.d.ts +0 -354
  387. package/dist/team/types.js +0 -13
  388. package/dist/todo/acceptance.d.ts +0 -120
  389. package/dist/todo/acceptance.js +0 -399
  390. package/dist/todo/follow-through.d.ts +0 -138
  391. package/dist/todo/follow-through.js +0 -248
  392. package/dist/todo/limits.d.ts +0 -152
  393. package/dist/todo/limits.js +0 -152
  394. package/dist/todo/panel-rows.d.ts +0 -45
  395. package/dist/todo/panel-rows.js +0 -70
  396. package/dist/todo/plan-sections.d.ts +0 -60
  397. package/dist/todo/plan-sections.js +0 -108
  398. package/dist/todo/row-window.d.ts +0 -51
  399. package/dist/todo/row-window.js +0 -107
  400. package/dist/todo/types.d.ts +0 -124
  401. package/dist/todo/types.js +0 -12
  402. package/dist/tools/human-input.d.ts +0 -212
  403. package/dist/tools/human-input.js +0 -265
  404. package/dist/tools/patch.d.ts +0 -115
  405. package/dist/tools/patch.js +0 -453
  406. package/dist/tools/terminal-output.d.ts +0 -115
  407. package/dist/tools/terminal-output.js +0 -201
  408. package/dist/tools/tool-output-store.d.ts +0 -68
  409. package/dist/tools/tool-output-store.js +0 -102
  410. package/dist/ui/ActivityLine.d.ts +0 -26
  411. package/dist/ui/ActivityLine.js +0 -51
  412. package/dist/ui/AutocompletePopup.d.ts +0 -23
  413. package/dist/ui/AutocompletePopup.js +0 -17
  414. package/dist/ui/BottomStatusRow.d.ts +0 -10
  415. package/dist/ui/BottomStatusRow.js +0 -9
  416. package/dist/ui/Composer.d.ts +0 -115
  417. package/dist/ui/Composer.js +0 -64
  418. package/dist/ui/GovernancePanel.d.ts +0 -50
  419. package/dist/ui/GovernancePanel.js +0 -77
  420. package/dist/ui/GovernanceRun.d.ts +0 -18
  421. package/dist/ui/GovernanceRun.js +0 -11
  422. package/dist/ui/Header.d.ts +0 -48
  423. package/dist/ui/Header.js +0 -27
  424. package/dist/ui/Logo.d.ts +0 -32
  425. package/dist/ui/Logo.js +0 -65
  426. package/dist/ui/Markdown.d.ts +0 -29
  427. package/dist/ui/Markdown.js +0 -116
  428. package/dist/ui/PromptCaret.d.ts +0 -11
  429. package/dist/ui/PromptCaret.js +0 -31
  430. package/dist/ui/PromptInput.d.ts +0 -192
  431. package/dist/ui/PromptInput.js +0 -689
  432. package/dist/ui/QueuePanel.d.ts +0 -8
  433. package/dist/ui/QueuePanel.js +0 -9
  434. package/dist/ui/QueueStatusRow.d.ts +0 -24
  435. package/dist/ui/QueueStatusRow.js +0 -51
  436. package/dist/ui/ScrollbackShell.d.ts +0 -132
  437. package/dist/ui/ScrollbackShell.js +0 -26
  438. package/dist/ui/SessionOpener.d.ts +0 -30
  439. package/dist/ui/SessionOpener.js +0 -12
  440. package/dist/ui/StatusBar.d.ts +0 -130
  441. package/dist/ui/StatusBar.js +0 -61
  442. package/dist/ui/TeamPanel.d.ts +0 -76
  443. package/dist/ui/TeamPanel.js +0 -103
  444. package/dist/ui/ToastStack.d.ts +0 -8
  445. package/dist/ui/ToastStack.js +0 -31
  446. package/dist/ui/TodoPanel.d.ts +0 -52
  447. package/dist/ui/TodoPanel.js +0 -214
  448. package/dist/ui/Transcript.d.ts +0 -105
  449. package/dist/ui/Transcript.js +0 -258
  450. package/dist/ui/UpdateLine.d.ts +0 -44
  451. package/dist/ui/UpdateLine.js +0 -129
  452. package/dist/ui/activity-phrases.d.ts +0 -33
  453. package/dist/ui/activity-phrases.js +0 -50
  454. package/dist/ui/capabilities.d.ts +0 -27
  455. package/dist/ui/capabilities.js +0 -65
  456. package/dist/ui/clipboard-task.d.ts +0 -29
  457. package/dist/ui/clipboard-task.js +0 -66
  458. package/dist/ui/clipboard.d.ts +0 -31
  459. package/dist/ui/clipboard.js +0 -157
  460. package/dist/ui/color-runtime.d.ts +0 -5
  461. package/dist/ui/color-runtime.js +0 -29
  462. package/dist/ui/composer-input.d.ts +0 -38
  463. package/dist/ui/composer-input.js +0 -79
  464. package/dist/ui/composer-limits.d.ts +0 -30
  465. package/dist/ui/composer-limits.js +0 -45
  466. package/dist/ui/composer-rows.d.ts +0 -73
  467. package/dist/ui/composer-rows.js +0 -129
  468. package/dist/ui/console-bridge.d.ts +0 -19
  469. package/dist/ui/console-bridge.js +0 -52
  470. package/dist/ui/density.d.ts +0 -26
  471. package/dist/ui/density.js +0 -34
  472. package/dist/ui/display-tab.d.ts +0 -51
  473. package/dist/ui/display-tab.js +0 -82
  474. package/dist/ui/editor-navigation.d.ts +0 -55
  475. package/dist/ui/editor-navigation.js +0 -96
  476. package/dist/ui/editor-reducer.d.ts +0 -108
  477. package/dist/ui/editor-reducer.js +0 -187
  478. package/dist/ui/enter-frames.d.ts +0 -47
  479. package/dist/ui/enter-frames.js +0 -117
  480. package/dist/ui/entries/AssistantEntry.d.ts +0 -37
  481. package/dist/ui/entries/AssistantEntry.js +0 -43
  482. package/dist/ui/entries/CompactionCard.d.ts +0 -88
  483. package/dist/ui/entries/CompactionCard.js +0 -222
  484. package/dist/ui/entries/DiffView.d.ts +0 -61
  485. package/dist/ui/entries/DiffView.js +0 -103
  486. package/dist/ui/entries/EntryFrame.d.ts +0 -23
  487. package/dist/ui/entries/EntryFrame.js +0 -6
  488. package/dist/ui/entries/FastCard.d.ts +0 -53
  489. package/dist/ui/entries/FastCard.js +0 -105
  490. package/dist/ui/entries/GovernanceCard.d.ts +0 -30
  491. package/dist/ui/entries/GovernanceCard.js +0 -32
  492. package/dist/ui/entries/InvocationCard.d.ts +0 -20
  493. package/dist/ui/entries/InvocationCard.js +0 -32
  494. package/dist/ui/entries/QueuedEntry.d.ts +0 -27
  495. package/dist/ui/entries/QueuedEntry.js +0 -33
  496. package/dist/ui/entries/RetryCard.d.ts +0 -56
  497. package/dist/ui/entries/RetryCard.js +0 -60
  498. package/dist/ui/entries/ServiceCard.d.ts +0 -82
  499. package/dist/ui/entries/ServiceCard.js +0 -151
  500. package/dist/ui/entries/TeamCard.d.ts +0 -55
  501. package/dist/ui/entries/TeamCard.js +0 -94
  502. package/dist/ui/entries/TodoCard.d.ts +0 -54
  503. package/dist/ui/entries/TodoCard.js +0 -98
  504. package/dist/ui/entries/ToolCard.d.ts +0 -81
  505. package/dist/ui/entries/ToolCard.js +0 -169
  506. package/dist/ui/entries/ToolPreview.d.ts +0 -59
  507. package/dist/ui/entries/ToolPreview.js +0 -208
  508. package/dist/ui/entries/UserEntry.d.ts +0 -36
  509. package/dist/ui/entries/UserEntry.js +0 -57
  510. package/dist/ui/entries/WaitCard.d.ts +0 -37
  511. package/dist/ui/entries/WaitCard.js +0 -92
  512. package/dist/ui/exit-snapshot.d.ts +0 -43
  513. package/dist/ui/exit-snapshot.js +0 -26
  514. package/dist/ui/frame-differ.d.ts +0 -166
  515. package/dist/ui/frame-differ.js +0 -354
  516. package/dist/ui/frame-observer.d.ts +0 -17
  517. package/dist/ui/frame-observer.js +0 -94
  518. package/dist/ui/frame-parser.d.ts +0 -7
  519. package/dist/ui/frame-parser.js +0 -18
  520. package/dist/ui/gauge.d.ts +0 -39
  521. package/dist/ui/gauge.js +0 -55
  522. package/dist/ui/glyphs.d.ts +0 -178
  523. package/dist/ui/glyphs.js +0 -165
  524. package/dist/ui/governance-copy.d.ts +0 -69
  525. package/dist/ui/governance-copy.js +0 -104
  526. package/dist/ui/governance-status.d.ts +0 -145
  527. package/dist/ui/governance-status.js +0 -326
  528. package/dist/ui/gradient.d.ts +0 -11
  529. package/dist/ui/gradient.js +0 -50
  530. package/dist/ui/ink-runtime.d.ts +0 -4
  531. package/dist/ui/ink-runtime.js +0 -51
  532. package/dist/ui/interaction-copy.d.ts +0 -84
  533. package/dist/ui/interaction-copy.js +0 -41
  534. package/dist/ui/interaction-hints.d.ts +0 -44
  535. package/dist/ui/interaction-hints.js +0 -97
  536. package/dist/ui/layout/AppShell.d.ts +0 -17
  537. package/dist/ui/layout/AppShell.js +0 -6
  538. package/dist/ui/layout/Gutter.d.ts +0 -67
  539. package/dist/ui/layout/Gutter.js +0 -42
  540. package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
  541. package/dist/ui/layout/MeasuredEntry.js +0 -30
  542. package/dist/ui/layout/OverlayFrame.d.ts +0 -73
  543. package/dist/ui/layout/OverlayFrame.js +0 -110
  544. package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
  545. package/dist/ui/layout/ScrollIndicator.js +0 -22
  546. package/dist/ui/layout/ScrollViewport.d.ts +0 -40
  547. package/dist/ui/layout/ScrollViewport.js +0 -222
  548. package/dist/ui/layout/agents-board.d.ts +0 -102
  549. package/dist/ui/layout/agents-board.js +0 -389
  550. package/dist/ui/layout/autocomplete.d.ts +0 -18
  551. package/dist/ui/layout/autocomplete.js +0 -26
  552. package/dist/ui/layout/budget.d.ts +0 -43
  553. package/dist/ui/layout/budget.js +0 -52
  554. package/dist/ui/layout/cells.d.ts +0 -61
  555. package/dist/ui/layout/cells.js +0 -156
  556. package/dist/ui/layout/document-layout.d.ts +0 -13
  557. package/dist/ui/layout/document-layout.js +0 -10
  558. package/dist/ui/layout/follow-state.d.ts +0 -138
  559. package/dist/ui/layout/follow-state.js +0 -148
  560. package/dist/ui/layout/frame.d.ts +0 -36
  561. package/dist/ui/layout/frame.js +0 -39
  562. package/dist/ui/layout/governance-board.d.ts +0 -121
  563. package/dist/ui/layout/governance-board.js +0 -382
  564. package/dist/ui/layout/governance-card.d.ts +0 -53
  565. package/dist/ui/layout/governance-card.js +0 -134
  566. package/dist/ui/layout/governance-chip.d.ts +0 -38
  567. package/dist/ui/layout/governance-chip.js +0 -64
  568. package/dist/ui/layout/governance-panel.d.ts +0 -85
  569. package/dist/ui/layout/governance-panel.js +0 -358
  570. package/dist/ui/layout/governance-roster.d.ts +0 -65
  571. package/dist/ui/layout/governance-roster.js +0 -275
  572. package/dist/ui/layout/header-hints.d.ts +0 -90
  573. package/dist/ui/layout/header-hints.js +0 -110
  574. package/dist/ui/layout/header-left.d.ts +0 -115
  575. package/dist/ui/layout/header-left.js +0 -206
  576. package/dist/ui/layout/invocation-card.d.ts +0 -41
  577. package/dist/ui/layout/invocation-card.js +0 -91
  578. package/dist/ui/layout/kit-chip.d.ts +0 -50
  579. package/dist/ui/layout/kit-chip.js +0 -81
  580. package/dist/ui/layout/overlay-window.d.ts +0 -43
  581. package/dist/ui/layout/overlay-window.js +0 -51
  582. package/dist/ui/layout/queue-layout.d.ts +0 -19
  583. package/dist/ui/layout/queue-layout.js +0 -26
  584. package/dist/ui/layout/rail.d.ts +0 -7
  585. package/dist/ui/layout/rail.js +0 -16
  586. package/dist/ui/layout/scroll-indicator.d.ts +0 -27
  587. package/dist/ui/layout/scroll-indicator.js +0 -36
  588. package/dist/ui/layout/scroll.d.ts +0 -37
  589. package/dist/ui/layout/scroll.js +0 -99
  590. package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
  591. package/dist/ui/layout/scrollbar-geometry.js +0 -13
  592. package/dist/ui/layout/session-chip.d.ts +0 -52
  593. package/dist/ui/layout/session-chip.js +0 -64
  594. package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
  595. package/dist/ui/layout/shortcut-panel-layout.js +0 -321
  596. package/dist/ui/layout/status-detail-layout.d.ts +0 -9
  597. package/dist/ui/layout/status-detail-layout.js +0 -79
  598. package/dist/ui/layout/status-layout.d.ts +0 -140
  599. package/dist/ui/layout/status-layout.js +0 -262
  600. package/dist/ui/layout/task-summary-cell.d.ts +0 -61
  601. package/dist/ui/layout/task-summary-cell.js +0 -65
  602. package/dist/ui/layout/team-panel.d.ts +0 -18
  603. package/dist/ui/layout/team-panel.js +0 -25
  604. package/dist/ui/layout/team-row.d.ts +0 -139
  605. package/dist/ui/layout/team-row.js +0 -246
  606. package/dist/ui/layout/todo-layout.d.ts +0 -62
  607. package/dist/ui/layout/todo-layout.js +0 -102
  608. package/dist/ui/layout/useTerminalSize.d.ts +0 -13
  609. package/dist/ui/layout/useTerminalSize.js +0 -50
  610. package/dist/ui/layout/viewport-geometry.d.ts +0 -29
  611. package/dist/ui/layout/viewport-geometry.js +0 -28
  612. package/dist/ui/layout/virtual-window.d.ts +0 -112
  613. package/dist/ui/layout/virtual-window.js +0 -494
  614. package/dist/ui/layout/wait-bar.d.ts +0 -34
  615. package/dist/ui/layout/wait-bar.js +0 -48
  616. package/dist/ui/layout/wrap-rows.d.ts +0 -26
  617. package/dist/ui/layout/wrap-rows.js +0 -88
  618. package/dist/ui/live-clamp.d.ts +0 -14
  619. package/dist/ui/live-clamp.js +0 -46
  620. package/dist/ui/markdown-blocks.d.ts +0 -107
  621. package/dist/ui/markdown-blocks.js +0 -240
  622. package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
  623. package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
  624. package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
  625. package/dist/ui/overlays/ConfirmDialog.js +0 -44
  626. package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
  627. package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
  628. package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
  629. package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
  630. package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
  631. package/dist/ui/overlays/HelpOverlay.js +0 -232
  632. package/dist/ui/overlays/KitEditor.d.ts +0 -23
  633. package/dist/ui/overlays/KitEditor.js +0 -101
  634. package/dist/ui/overlays/KitManager.d.ts +0 -23
  635. package/dist/ui/overlays/KitManager.js +0 -104
  636. package/dist/ui/overlays/KitPicker.d.ts +0 -49
  637. package/dist/ui/overlays/KitPicker.js +0 -58
  638. package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
  639. package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
  640. package/dist/ui/overlays/ModelPicker.d.ts +0 -26
  641. package/dist/ui/overlays/ModelPicker.js +0 -63
  642. package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
  643. package/dist/ui/overlays/ModelProfileEditor.js +0 -168
  644. package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
  645. package/dist/ui/overlays/ModelProfilePicker.js +0 -231
  646. package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
  647. package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
  648. package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
  649. package/dist/ui/overlays/PromptEditorPage.js +0 -227
  650. package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
  651. package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
  652. package/dist/ui/overlays/PromptPicker.d.ts +0 -36
  653. package/dist/ui/overlays/PromptPicker.js +0 -129
  654. package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
  655. package/dist/ui/overlays/PromptTextArea.js +0 -141
  656. package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
  657. package/dist/ui/overlays/QuestionOverlay.js +0 -258
  658. package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
  659. package/dist/ui/overlays/QueueOverlay.js +0 -79
  660. package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
  661. package/dist/ui/overlays/SettingsScreen.js +0 -1037
  662. package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
  663. package/dist/ui/overlays/ShortcutPanel.js +0 -106
  664. package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
  665. package/dist/ui/overlays/TeamFanoutPage.js +0 -90
  666. package/dist/ui/overlays/governance-settings.d.ts +0 -79
  667. package/dist/ui/overlays/governance-settings.js +0 -140
  668. package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
  669. package/dist/ui/overlays/kit-picker-state.js +0 -136
  670. package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
  671. package/dist/ui/overlays/kit-settings-state.js +0 -268
  672. package/dist/ui/overlays/model-probe-view.d.ts +0 -128
  673. package/dist/ui/overlays/model-probe-view.js +0 -225
  674. package/dist/ui/overlays/model-profile-state.d.ts +0 -177
  675. package/dist/ui/overlays/model-profile-state.js +0 -301
  676. package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
  677. package/dist/ui/overlays/prompt-library-state.js +0 -335
  678. package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
  679. package/dist/ui/overlays/prompt-picker-state.js +0 -98
  680. package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
  681. package/dist/ui/overlays/team-fanout-state.js +0 -155
  682. package/dist/ui/overlays/use-model-probe.d.ts +0 -30
  683. package/dist/ui/overlays/use-model-probe.js +0 -109
  684. package/dist/ui/palettes.d.ts +0 -112
  685. package/dist/ui/palettes.js +0 -130
  686. package/dist/ui/paste-frames.d.ts +0 -91
  687. package/dist/ui/paste-frames.js +0 -117
  688. package/dist/ui/paste-tokens.d.ts +0 -90
  689. package/dist/ui/paste-tokens.js +0 -147
  690. package/dist/ui/render-cache.d.ts +0 -81
  691. package/dist/ui/render-cache.js +0 -196
  692. package/dist/ui/render-governor.d.ts +0 -54
  693. package/dist/ui/render-governor.js +0 -78
  694. package/dist/ui/run-metrics.d.ts +0 -23
  695. package/dist/ui/run-metrics.js +0 -27
  696. package/dist/ui/run-status-row.d.ts +0 -63
  697. package/dist/ui/run-status-row.js +0 -54
  698. package/dist/ui/screen.d.ts +0 -107
  699. package/dist/ui/screen.js +0 -234
  700. package/dist/ui/scrollback/LiveTail.d.ts +0 -115
  701. package/dist/ui/scrollback/LiveTail.js +0 -48
  702. package/dist/ui/scrollback/band.d.ts +0 -114
  703. package/dist/ui/scrollback/band.js +0 -143
  704. package/dist/ui/scrollback/budget.d.ts +0 -90
  705. package/dist/ui/scrollback/budget.js +0 -100
  706. package/dist/ui/scrollback/canvas.d.ts +0 -100
  707. package/dist/ui/scrollback/canvas.js +0 -114
  708. package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
  709. package/dist/ui/scrollback/cursor-probe.js +0 -133
  710. package/dist/ui/scrollback/drain.d.ts +0 -32
  711. package/dist/ui/scrollback/drain.js +0 -64
  712. package/dist/ui/scrollback/exit-summary.d.ts +0 -23
  713. package/dist/ui/scrollback/exit-summary.js +0 -25
  714. package/dist/ui/scrollback/limits.d.ts +0 -98
  715. package/dist/ui/scrollback/limits.js +0 -98
  716. package/dist/ui/scrollback/live-preview.d.ts +0 -34
  717. package/dist/ui/scrollback/live-preview.js +0 -130
  718. package/dist/ui/scrollback/overflow-print.d.ts +0 -108
  719. package/dist/ui/scrollback/overflow-print.js +0 -120
  720. package/dist/ui/scrollback/renderer.d.ts +0 -48
  721. package/dist/ui/scrollback/renderer.js +0 -186
  722. package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
  723. package/dist/ui/scrollback/scrollback-writer.js +0 -648
  724. package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
  725. package/dist/ui/scrollback/settled-boundary.js +0 -109
  726. package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
  727. package/dist/ui/scrollback/tail-anchor.js +0 -79
  728. package/dist/ui/scrollback/tail-window.d.ts +0 -73
  729. package/dist/ui/scrollback/tail-window.js +0 -89
  730. package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
  731. package/dist/ui/scrollback/use-scrollback-view.js +0 -601
  732. package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
  733. package/dist/ui/scrollback/writer-shapes.js +0 -159
  734. package/dist/ui/scrollbar-controller.d.ts +0 -30
  735. package/dist/ui/scrollbar-controller.js +0 -124
  736. package/dist/ui/selection/highlight.d.ts +0 -39
  737. package/dist/ui/selection/highlight.js +0 -64
  738. package/dist/ui/selection/screen-mirror.d.ts +0 -24
  739. package/dist/ui/selection/screen-mirror.js +0 -35
  740. package/dist/ui/selection/selection-controller.d.ts +0 -104
  741. package/dist/ui/selection/selection-controller.js +0 -372
  742. package/dist/ui/selection/selection.d.ts +0 -90
  743. package/dist/ui/selection/selection.js +0 -223
  744. package/dist/ui/shortcuts.d.ts +0 -81
  745. package/dist/ui/shortcuts.js +0 -221
  746. package/dist/ui/status-feedback.d.ts +0 -35
  747. package/dist/ui/status-feedback.js +0 -38
  748. package/dist/ui/stdout-frame-writer.d.ts +0 -74
  749. package/dist/ui/stdout-frame-writer.js +0 -155
  750. package/dist/ui/team-status.d.ts +0 -166
  751. package/dist/ui/team-status.js +0 -252
  752. package/dist/ui/terminal-plan.d.ts +0 -52
  753. package/dist/ui/terminal-plan.js +0 -49
  754. package/dist/ui/theme.d.ts +0 -96
  755. package/dist/ui/theme.js +0 -130
  756. package/dist/ui/transcript-text.d.ts +0 -41
  757. package/dist/ui/transcript-text.js +0 -282
  758. package/dist/ui/use-height-store.d.ts +0 -31
  759. package/dist/ui/use-height-store.js +0 -76
  760. package/dist/ui/use-render-governor.d.ts +0 -39
  761. package/dist/ui/use-render-governor.js +0 -57
  762. package/dist/ui/use-wheel-routing.d.ts +0 -57
  763. package/dist/ui/use-wheel-routing.js +0 -152
  764. package/dist/ui/win-vt-force.d.ts +0 -136
  765. package/dist/ui/win-vt-force.js +0 -237
  766. package/dist/ui/win-vt-input.d.ts +0 -57
  767. package/dist/ui/win-vt-input.js +0 -62
  768. package/dist/update/limits.d.ts +0 -111
  769. package/dist/update/limits.js +0 -111
  770. package/dist/update/semver.d.ts +0 -89
  771. package/dist/update/semver.js +0 -295
  772. package/dist/update/types.d.ts +0 -169
  773. package/dist/update/types.js +0 -68
  774. /package/dist/{ui → app}/session-bridge.d.ts +0 -0
  775. /package/dist/{ui → app}/session-bridge.js +0 -0
@@ -1,127 +0,0 @@
1
- /**
2
- * Byte shapes of the native-scroll writer (tui-native-terminal-scroll §4.3 /
3
- * Appendix A). Stateless string assembly only — the state machine that decides
4
- * WHICH shape to emit lives in `scrollback-writer.ts`.
5
- *
6
- * THE WHITELIST (I-S5 / I-S6). Every byte produced here is drawn from: SGR, CUU,
7
- * CUD, CR, CRLF, ED0, EL0, DEC 2026 and DECTCEM. There is no absolute CUP, no
8
- * scroll region, no `CSI S/T`, no `ED2/ED3`. Relative addressing is what makes the
9
- * geometry independent of the terminal scrolling underneath it (spec appendix B).
10
- *
11
- * Each row is `SGR0 · text · SGR0`: the leading reset stops one row's style leaking
12
- * into the next, and the trailing one stops a background-colour-erase terminal from
13
- * painting the following ED0/EL0 in the row's last colour.
14
- */
15
- export declare const SGR0 = "\u001B[0m";
16
- /** First write of a session: the cursor is already on a fresh line at column 0. */
17
- export declare function seedBytes(input: {
18
- lines: readonly string[];
19
- statics: readonly string[];
20
- sync: boolean;
21
- /** After a foreign write the cursor may sit mid-line; start on a new one (RV-11). */
22
- reseed: boolean;
23
- }): string;
24
- /**
25
- * CUD(n): move down n rows WITHOUT writing a single cell.
26
- *
27
- * This is how the canvas spends its `gap` (D3). A blank row that is never written
28
- * cannot be pushed into the scrollback by a later overflow, which is the whole
29
- * reason the gap is not a run of `\r\n` (I-B3). The sequence is already whitelisted
30
- * (`diffBytes` uses it to step between changed rows); this is the same CUD used to
31
- * skip empty space instead.
32
- */
33
- export declare function skipRows(rows: number): string;
34
- /**
35
- * First canvas batch (or the first one after a reset): the screen below the cursor
36
- * is assumed empty, so there is nothing to erase — only `[gap][content][region]` to
37
- * write, ending with the cursor parked on the last row.
38
- */
39
- export declare function canvasSeedBytes(input: {
40
- /**
41
- * Rows to descend from the cursor to the canvas top, when the canvas is shorter
42
- * than the space measured below the cursor.
43
- *
44
- * Non-zero only on a terminal taller than the start-of-canvas cap: the canvas then
45
- * begins BELOW the cursor, and a seed that started writing at the cursor would park
46
- * the region low and leave the top of the canvas empty for the whole session.
47
- */
48
- downToTop: number;
49
- /** Blank rows to skip before the first content row. */
50
- gap: number;
51
- /** Content rows, already clipped, oldest first. */
52
- held: readonly string[];
53
- /** The live region. */
54
- lines: readonly string[];
55
- sync: boolean;
56
- /** After a foreign write the cursor may sit mid-line; start on a new one. */
57
- reseed: boolean;
58
- }): string;
59
- /**
60
- * Redraw the whole canvas: erase the previous one, then write `[gap][content][region]`.
61
- *
62
- * ORDER IS SEMANTICS: `ED0`, then the gap, then the content, then the region. Moving
63
- * the gap after the content puts the blank space back between the reply and the
64
- * composer, which is the exact defect this feature fixes (M1 in the spec).
65
- *
66
- * `held` is the FULL content sequence, not the part that will still be on screen: the
67
- * rows that do not fit are supposed to leave through the bottom, and the terminal can
68
- * only scroll away what it was given.
69
- */
70
- export declare function canvasBytes(input: {
71
- /** Previous canvas height: the erase distance. */
72
- eraseUp: number;
73
- gap: number;
74
- held: readonly string[];
75
- lines: readonly string[];
76
- sync: boolean;
77
- }): string;
78
- /** Erase exactly the previous live region, print static rows, redraw the region. */
79
- export declare function fullBytes(input: {
80
- lines: readonly string[];
81
- statics: readonly string[];
82
- /** Rows between the region top and the parked cursor. */
83
- eraseUp: number;
84
- sync: boolean;
85
- }): string;
86
- /**
87
- * Fill the screen down to the LAST row before the first batch (D4 rung 2 / §4.3).
88
- *
89
- * This is the fallback for a terminal that never answers `ESC[6n`: from any row, a
90
- * run of `rows - 1` line feeds is guaranteed to leave the cursor on the bottom row
91
- * (extra feeds only scroll, which is why the count is the caller's business). It is
92
- * written ONCE, before anything else, so the rows it scrolls away are the host's old
93
- * output — which is still in the scrollback — and never this session's content.
94
- *
95
- * The argument is the NUMBER OF LINE FEEDS, not the terminal height: `cli.tsx` passes
96
- * `rows - 1`. Naming it after the height instead made the caller subtract twice and
97
- * left the cursor one row short of the bottom.
98
- */
99
- export declare function fillBytes(count: number): string;
100
- /** Same height, no static rows: rewrite only the rows that changed. `''` if none did. */
101
- export declare function diffBytes(input: {
102
- lines: readonly string[];
103
- prev: readonly string[];
104
- sync: boolean;
105
- }): string;
106
- /**
107
- * Exit: erase the live region, flush leftover static rows, print the summary.
108
- * `eraseUp < 0` means the geometry is unknown (a foreign write intervened), in
109
- * which case the only safe move is to start on a fresh line and erase nothing.
110
- */
111
- export declare function finalizeBytes(input: {
112
- eraseUp: number;
113
- statics: readonly string[];
114
- summary: readonly string[];
115
- }): string;
116
- /**
117
- * Cut a row to `maxCols` DISPLAY columns (I-S13), keeping SGR / OSC 8 intact.
118
- *
119
- * Returns the input unchanged (same reference) when it already fits, which is the
120
- * overwhelmingly common case. Width is measured the way Ink measures it
121
- * (`string-width` over the ANSI-stripped text): that is the number Ink used to
122
- * wrap, so a disagreement with the terminal is the only way a row can exceed it.
123
- */
124
- export declare function clipLine(line: string, maxCols: number): {
125
- text: string;
126
- clipped: boolean;
127
- };
@@ -1,159 +0,0 @@
1
- /**
2
- * Byte shapes of the native-scroll writer (tui-native-terminal-scroll §4.3 /
3
- * Appendix A). Stateless string assembly only — the state machine that decides
4
- * WHICH shape to emit lives in `scrollback-writer.ts`.
5
- *
6
- * THE WHITELIST (I-S5 / I-S6). Every byte produced here is drawn from: SGR, CUU,
7
- * CUD, CR, CRLF, ED0, EL0, DEC 2026 and DECTCEM. There is no absolute CUP, no
8
- * scroll region, no `CSI S/T`, no `ED2/ED3`. Relative addressing is what makes the
9
- * geometry independent of the terminal scrolling underneath it (spec appendix B).
10
- *
11
- * Each row is `SGR0 · text · SGR0`: the leading reset stops one row's style leaking
12
- * into the next, and the trailing one stops a background-colour-erase terminal from
13
- * painting the following ED0/EL0 in the row's last colour.
14
- */
15
- import stringWidth from 'string-width';
16
- import stripAnsi from 'strip-ansi';
17
- const CSI = '\x1b[';
18
- export const SGR0 = `${CSI}0m`;
19
- const ED0 = `${CSI}J`;
20
- const EL0 = `${CSI}K`;
21
- const SYNC_BEGIN = `${CSI}?2026h`;
22
- const SYNC_END = `${CSI}?2026l`;
23
- const SHOW_CURSOR = `${CSI}?25h`;
24
- const OSC8_CLOSE = '\x1b]8;;\x07';
25
- const up = (n) => (n > 0 ? `${CSI}${n}A` : '');
26
- const down = (n) => (n > 0 ? `${CSI}${n}B` : '');
27
- const row = (text) => SGR0 + text + SGR0 + '\r\n';
28
- const rows = (list) => list.map(row).join('');
29
- const wrapSync = (payload, sync) => sync ? SYNC_BEGIN + payload + SYNC_END : payload;
30
- /** First write of a session: the cursor is already on a fresh line at column 0. */
31
- export function seedBytes(input) {
32
- const lead = input.reseed ? '\r\n' : '';
33
- return wrapSync(lead + '\r' + SGR0 + rows(input.statics) + rows(input.lines), input.sync);
34
- }
35
- /**
36
- * CUD(n): move down n rows WITHOUT writing a single cell.
37
- *
38
- * This is how the canvas spends its `gap` (D3). A blank row that is never written
39
- * cannot be pushed into the scrollback by a later overflow, which is the whole
40
- * reason the gap is not a run of `\r\n` (I-B3). The sequence is already whitelisted
41
- * (`diffBytes` uses it to step between changed rows); this is the same CUD used to
42
- * skip empty space instead.
43
- */
44
- export function skipRows(rows) {
45
- return down(Math.max(0, Math.floor(Number.isFinite(rows) ? rows : 0)));
46
- }
47
- /**
48
- * First canvas batch (or the first one after a reset): the screen below the cursor
49
- * is assumed empty, so there is nothing to erase — only `[gap][content][region]` to
50
- * write, ending with the cursor parked on the last row.
51
- */
52
- export function canvasSeedBytes(input) {
53
- const lead = input.reseed ? '\r\n' : '';
54
- const skip = skipRows(input.downToTop) + skipRows(input.gap);
55
- return wrapSync(lead + '\r' + SGR0 + skip + rows(input.held) + rows(input.lines), input.sync);
56
- }
57
- /**
58
- * Redraw the whole canvas: erase the previous one, then write `[gap][content][region]`.
59
- *
60
- * ORDER IS SEMANTICS: `ED0`, then the gap, then the content, then the region. Moving
61
- * the gap after the content puts the blank space back between the reply and the
62
- * composer, which is the exact defect this feature fixes (M1 in the spec).
63
- *
64
- * `held` is the FULL content sequence, not the part that will still be on screen: the
65
- * rows that do not fit are supposed to leave through the bottom, and the terminal can
66
- * only scroll away what it was given.
67
- */
68
- export function canvasBytes(input) {
69
- return wrapSync(up(input.eraseUp) + '\r' + SGR0 + ED0 + skipRows(input.gap) +
70
- rows(input.held) + rows(input.lines), input.sync);
71
- }
72
- /** Erase exactly the previous live region, print static rows, redraw the region. */
73
- export function fullBytes(input) {
74
- return wrapSync(up(input.eraseUp) + '\r' + SGR0 + ED0 + rows(input.statics) + rows(input.lines), input.sync);
75
- }
76
- /**
77
- * Fill the screen down to the LAST row before the first batch (D4 rung 2 / §4.3).
78
- *
79
- * This is the fallback for a terminal that never answers `ESC[6n`: from any row, a
80
- * run of `rows - 1` line feeds is guaranteed to leave the cursor on the bottom row
81
- * (extra feeds only scroll, which is why the count is the caller's business). It is
82
- * written ONCE, before anything else, so the rows it scrolls away are the host's old
83
- * output — which is still in the scrollback — and never this session's content.
84
- *
85
- * The argument is the NUMBER OF LINE FEEDS, not the terminal height: `cli.tsx` passes
86
- * `rows - 1`. Naming it after the height instead made the caller subtract twice and
87
- * left the cursor one row short of the bottom.
88
- */
89
- export function fillBytes(count) {
90
- return '\r\n'.repeat(Math.max(0, Math.floor(count)));
91
- }
92
- /** Same height, no static rows: rewrite only the rows that changed. `''` if none did. */
93
- export function diffBytes(input) {
94
- const { lines, prev } = input;
95
- const height = lines.length;
96
- let out = '';
97
- let cursor = -1;
98
- for (let i = 0; i < height; i += 1) {
99
- if (lines[i] === prev[i])
100
- continue;
101
- // Paint, THEN clear the tail: never ESC[2K first, which would blank the row
102
- // the user is looking at for the instant between the two writes.
103
- out += (cursor < 0 ? up(height - i) : down(i - cursor)) + '\r' + SGR0 + lines[i] + SGR0 + EL0;
104
- cursor = i;
105
- }
106
- if (cursor < 0)
107
- return '';
108
- // Park on the row below the region, column 0 (I-S4).
109
- return wrapSync(out + down(height - cursor) + '\r', input.sync);
110
- }
111
- /**
112
- * Exit: erase the live region, flush leftover static rows, print the summary.
113
- * `eraseUp < 0` means the geometry is unknown (a foreign write intervened), in
114
- * which case the only safe move is to start on a fresh line and erase nothing.
115
- */
116
- export function finalizeBytes(input) {
117
- const head = input.eraseUp < 0 ? '\r\n' : up(input.eraseUp) + '\r' + SGR0 + ED0;
118
- return head + rows(input.statics) + rows(input.summary) + SHOW_CURSOR;
119
- }
120
- const ESCAPE = /(\x1b\[[0-?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\))/;
121
- const segmenter = typeof Intl !== 'undefined' && 'Segmenter' in Intl
122
- ? new Intl.Segmenter(undefined, { granularity: 'grapheme' })
123
- : null;
124
- function graphemes(text) {
125
- return segmenter ? Array.from(segmenter.segment(text), (part) => part.segment) : Array.from(text);
126
- }
127
- /**
128
- * Cut a row to `maxCols` DISPLAY columns (I-S13), keeping SGR / OSC 8 intact.
129
- *
130
- * Returns the input unchanged (same reference) when it already fits, which is the
131
- * overwhelmingly common case. Width is measured the way Ink measures it
132
- * (`string-width` over the ANSI-stripped text): that is the number Ink used to
133
- * wrap, so a disagreement with the terminal is the only way a row can exceed it.
134
- */
135
- export function clipLine(line, maxCols) {
136
- if (maxCols < 1)
137
- return { text: '', clipped: line.length > 0 };
138
- if (stringWidth(stripAnsi(line)) <= maxCols)
139
- return { text: line, clipped: false };
140
- let out = '';
141
- let width = 0;
142
- let linkOpen = false;
143
- for (const part of line.split(ESCAPE)) {
144
- if (part.startsWith('\x1b')) {
145
- out += part;
146
- if (part.startsWith('\x1b]8;'))
147
- linkOpen = !/^\x1b\]8;[^;]*;(?:\x07|\x1b\\)$/.test(part);
148
- continue;
149
- }
150
- for (const glyph of graphemes(part)) {
151
- const glyphWidth = stringWidth(glyph);
152
- if (width + glyphWidth > maxCols)
153
- return { text: out + SGR0 + (linkOpen ? OSC8_CLOSE : ''), clipped: true };
154
- out += glyph;
155
- width += glyphWidth;
156
- }
157
- }
158
- return { text: out, clipped: false };
159
- }
@@ -1,30 +0,0 @@
1
- import type { MouseEvent } from '../input/mouse-events.js';
2
- import { type ScrollbarGeometry } from './layout/scrollbar-geometry.js';
3
- export interface ScrollbarController {
4
- handle(event: MouseEvent): boolean;
5
- cancel(): void;
6
- dispose(): void;
7
- isCaptured(): boolean;
8
- }
9
- export interface ScrollbarOptions {
10
- getGeometry(): ScrollbarGeometry | null;
11
- setOffset(offset: number): void;
12
- page(direction: 'pageUp' | 'pageDown'): void;
13
- onHold(held: boolean): void;
14
- onStart(): void;
15
- isEnabled(): boolean;
16
- }
17
- export interface ScrollbarBridge {
18
- controller: ScrollbarController | null;
19
- geometry: ScrollbarGeometry | null;
20
- frameReady: boolean;
21
- isEnabled(): boolean;
22
- onStart?: () => void;
23
- onGeometry?: () => void;
24
- requestRedraw?: () => void;
25
- invalidate(): void;
26
- }
27
- /** Build the late-bound terminal bridge; no scroll position is owned here. */
28
- export declare function createScrollbarBridge(isEnabled: () => boolean): ScrollbarBridge;
29
- /** Own one pointer gesture and bounded timers; positioning remains in the viewport. */
30
- export declare function createScrollbarController(options: ScrollbarOptions): ScrollbarController;
@@ -1,124 +0,0 @@
1
- import { offsetForThumb } from './layout/scrollbar-geometry.js';
2
- /** Build the late-bound terminal bridge; no scroll position is owned here. */
3
- export function createScrollbarBridge(isEnabled) {
4
- const bridge = {
5
- controller: null, geometry: null, frameReady: false, isEnabled,
6
- invalidate: () => { bridge.frameReady = false; bridge.controller?.cancel(); },
7
- };
8
- return bridge;
9
- }
10
- /** Own one pointer gesture and bounded timers; positioning remains in the viewport. */
11
- export function createScrollbarController(options) {
12
- return new ScrollbarGesture(options);
13
- }
14
- class ScrollbarGesture {
15
- options;
16
- capture = null;
17
- timer = null;
18
- watchdog = null;
19
- swallowLate = false;
20
- disposed = false;
21
- constructor(options) {
22
- this.options = options;
23
- }
24
- isCaptured() { return this.capture !== null; }
25
- cancel() {
26
- if (this.timer)
27
- clearTimeout(this.timer);
28
- if (this.watchdog)
29
- clearTimeout(this.watchdog);
30
- this.timer = this.watchdog = null;
31
- const held = this.capture !== null;
32
- this.capture = null;
33
- if (held) {
34
- this.swallowLate = true;
35
- this.options.onHold(false);
36
- }
37
- }
38
- dispose() { this.cancel(); this.disposed = true; }
39
- armWatchdog() {
40
- if (this.watchdog)
41
- clearTimeout(this.watchdog);
42
- this.watchdog = setTimeout(() => this.cancel(), 30000);
43
- this.watchdog.unref?.();
44
- }
45
- flush() {
46
- if (this.timer)
47
- clearTimeout(this.timer);
48
- this.timer = null;
49
- const g = this.options.getGeometry();
50
- if (!this.capture || !g || !this.options.isEnabled() ||
51
- g.revision !== this.capture.revision) {
52
- this.cancel();
53
- return;
54
- }
55
- const y = this.capture.pendingY;
56
- this.capture.pendingY = null;
57
- if (y !== null)
58
- this.options.setOffset(offsetForThumb({ geometry: g,
59
- pointerY: y, grabRow: this.capture.grabRow }));
60
- }
61
- move(y) {
62
- if (!this.capture || this.capture.kind !== 'thumb' || y === this.capture.lastPointerY)
63
- return;
64
- this.capture.lastPointerY = y;
65
- this.capture.pendingY = y;
66
- if (!this.timer) {
67
- this.timer = setTimeout(() => this.flush(), 16);
68
- this.timer.unref?.();
69
- }
70
- }
71
- press(event) {
72
- this.cancel();
73
- this.swallowLate = false;
74
- const g = this.options.getGeometry();
75
- if (!g || !this.canPress(event, g))
76
- return false;
77
- const row = event.y - g.trackTop;
78
- const thumb = g.thumb;
79
- const inside = thumb && row >= thumb.start && row < thumb.start + thumb.size;
80
- this.capture = { kind: inside && g.trackRows > thumb.size ? 'thumb' : 'track',
81
- grabRow: inside ? row - thumb.start : 0, revision: g.revision,
82
- lastPointerY: event.y, pendingY: null };
83
- this.options.onStart();
84
- this.options.onHold(true);
85
- this.armWatchdog();
86
- if (thumb && !inside)
87
- this.options.page(row < thumb.start ? 'pageUp' : 'pageDown');
88
- return true;
89
- }
90
- canPress(event, g) {
91
- const plainLeft = event.button === 0 && !event.shift && !event.alt && !event.ctrl;
92
- const inTrack = event.x === g.trackCol && event.y >= g.trackTop &&
93
- event.y < g.trackTop + g.trackRows;
94
- return this.options.isEnabled() && plainLeft && inTrack;
95
- }
96
- handle(event) {
97
- if (this.disposed)
98
- return false;
99
- if (event.kind === 'wheel')
100
- return this.capture !== null;
101
- if (![event.x, event.y].every(Number.isFinite))
102
- return this.capture !== null;
103
- if (event.kind === 'press')
104
- return this.press(event);
105
- if (!this.capture)
106
- return this.swallowLate;
107
- if (event.button !== 0) {
108
- this.cancel();
109
- return false;
110
- }
111
- if (!this.options.isEnabled()) {
112
- this.cancel();
113
- return true;
114
- }
115
- this.move(event.y);
116
- if (event.kind === 'release') {
117
- this.flush();
118
- this.cancel();
119
- }
120
- else
121
- this.armWatchdog();
122
- return true;
123
- }
124
- }
@@ -1,39 +0,0 @@
1
- /**
2
- * The row painter (tui-selection-and-scroll-follow §4.4.4). PURE — strings in,
3
- * strings out.
4
- *
5
- * It runs inside the frame differ's `decorate` hook rather than in React (D-6):
6
- * a re-render per drag event goes through the render governor and the whole
7
- * component tree, while this repaints one to three rows with no commit at all.
8
- */
9
- import type { Theme } from '../theme.js';
10
- import type { TermCapabilities } from '../capabilities.js';
11
- /**
12
- * The SGR sequence that opens a highlighted run.
13
- *
14
- * TRUECOLOR OR REVERSE VIDEO, WITH NOTHING IN BETWEEN, and that is deliberate.
15
- * `getTheme` degrades every palette colour to the terminal's depth, so below
16
- * ansi-256 `theme.selectionBg` is a CHALK COLOUR NAME (`'blue'`) rather than a
17
- * hex triple — and a name cannot be turned into an escape sequence here without
18
- * duplicating chalk's own table. Reverse video is what a terminal that shallow
19
- * would render anyway, it needs no colour support at all, and it is exactly what
20
- * the emulator's own selection looks like. The `HEX` test is therefore both the
21
- * colour-depth check and the type check.
22
- */
23
- export declare function selectionOpen(theme: Theme, caps: TermCapabilities): string;
24
- /**
25
- * Paint `[from, to)` of one frame line.
26
- *
27
- * `to` is already clamped to the terminal width by the caller, so `Infinity`
28
- * never reaches here.
29
- *
30
- * STRIPPING SGR INSIDE THE SELECTION IS NOT LAZINESS. An inner `\x1b[0m` — which
31
- * `Markdown` and `cli-highlight` emit constantly — would cancel the highlight
32
- * attribute mid-run and leave holes in it. Terminals repaint selected text in
33
- * the selection's own colours for exactly this reason.
34
- *
35
- * `pad` is what gives a multi-row selection a straight right edge over short
36
- * lines, and it measures with `columnsOf` — the same oracle `sliceColumns`
37
- * charges with — rather than reaching for a third width function (I-12).
38
- */
39
- export declare function paintRow(line: string, from: number, to: number, open: string): string;
@@ -1,64 +0,0 @@
1
- /**
2
- * The row painter (tui-selection-and-scroll-follow §4.4.4). PURE — strings in,
3
- * strings out.
4
- *
5
- * It runs inside the frame differ's `decorate` hook rather than in React (D-6):
6
- * a re-render per drag event goes through the render governor and the whole
7
- * component tree, while this repaints one to three rows with no commit at all.
8
- */
9
- import stripAnsi from 'strip-ansi';
10
- import { columnsOf, sliceColumns } from './selection.js';
11
- const CSI = '\x1b[';
12
- const SGR_RESET = `${CSI}0m`;
13
- /** Reverse video — the universal fallback, and what a monochrome terminal gets. */
14
- const REVERSE = `${CSI}7m`;
15
- const HEX = /^#[0-9a-f]{6}$/i;
16
- function rgb(hex) {
17
- const n = Number.parseInt(hex.slice(1), 16);
18
- return `${(n >> 16) & 0xff};${(n >> 8) & 0xff};${n & 0xff}`;
19
- }
20
- /**
21
- * The SGR sequence that opens a highlighted run.
22
- *
23
- * TRUECOLOR OR REVERSE VIDEO, WITH NOTHING IN BETWEEN, and that is deliberate.
24
- * `getTheme` degrades every palette colour to the terminal's depth, so below
25
- * ansi-256 `theme.selectionBg` is a CHALK COLOUR NAME (`'blue'`) rather than a
26
- * hex triple — and a name cannot be turned into an escape sequence here without
27
- * duplicating chalk's own table. Reverse video is what a terminal that shallow
28
- * would render anyway, it needs no colour support at all, and it is exactly what
29
- * the emulator's own selection looks like. The `HEX` test is therefore both the
30
- * colour-depth check and the type check.
31
- */
32
- export function selectionOpen(theme, caps) {
33
- if (caps.colorLevel < 2)
34
- return REVERSE;
35
- const bg = theme.selectionBg;
36
- const fg = theme.selectionFg;
37
- if (!bg || !fg || !HEX.test(bg) || !HEX.test(fg))
38
- return REVERSE;
39
- return `${CSI}48;2;${rgb(bg)}m${CSI}38;2;${rgb(fg)}m`;
40
- }
41
- /**
42
- * Paint `[from, to)` of one frame line.
43
- *
44
- * `to` is already clamped to the terminal width by the caller, so `Infinity`
45
- * never reaches here.
46
- *
47
- * STRIPPING SGR INSIDE THE SELECTION IS NOT LAZINESS. An inner `\x1b[0m` — which
48
- * `Markdown` and `cli-highlight` emit constantly — would cancel the highlight
49
- * attribute mid-run and leave holes in it. Terminals repaint selected text in
50
- * the selection's own colours for exactly this reason.
51
- *
52
- * `pad` is what gives a multi-row selection a straight right edge over short
53
- * lines, and it measures with `columnsOf` — the same oracle `sliceColumns`
54
- * charges with — rather than reaching for a third width function (I-12).
55
- */
56
- export function paintRow(line, from, to, open) {
57
- if (!(to > from))
58
- return line;
59
- const head = sliceColumns(line, 0, from);
60
- const mid = stripAnsi(sliceColumns(line, from, to));
61
- const pad = ' '.repeat(Math.max(0, to - from - columnsOf(mid)));
62
- const tail = sliceColumns(line, to);
63
- return `${head}${open}${mid}${pad}${SGR_RESET}${tail}`;
64
- }
@@ -1,24 +0,0 @@
1
- /**
2
- * The screen mirror (tui-selection-and-scroll-follow §7) — the single source of
3
- * truth for what text is on which row.
4
- *
5
- * I-4 RIDES ON THIS OBJECT. The highlight and the clipboard both read the rows
6
- * stored here, written by the same `decorate` call, so whatever changes under a
7
- * selection is simultaneously what is highlighted and what would be copied. What
8
- * you see is what you get BY CONSTRUCTION, rather than by a staleness check that
9
- * can be wrong.
10
- *
11
- * `plain` is computed LAZILY. `decorate` runs on every frame Ink produces —
12
- * 15-30 times a second during a run — while a copy happens when a human releases
13
- * a mouse button, so stripping every row eagerly would spend H regex passes per
14
- * frame to serve an event that may never come. The cache is dropped by `set`, so
15
- * the laziness is invisible to callers and cannot go stale.
16
- */
17
- export interface ScreenMirror {
18
- /** Last frame, ANSI intact — what `decorate` paints over. */
19
- readonly raw: readonly string[];
20
- /** The same rows, ANSI stripped — what `selectedText` reads. */
21
- readonly plain: readonly string[];
22
- set(lines: readonly string[]): void;
23
- }
24
- export declare function createScreenMirror(): ScreenMirror;
@@ -1,35 +0,0 @@
1
- /**
2
- * The screen mirror (tui-selection-and-scroll-follow §7) — the single source of
3
- * truth for what text is on which row.
4
- *
5
- * I-4 RIDES ON THIS OBJECT. The highlight and the clipboard both read the rows
6
- * stored here, written by the same `decorate` call, so whatever changes under a
7
- * selection is simultaneously what is highlighted and what would be copied. What
8
- * you see is what you get BY CONSTRUCTION, rather than by a staleness check that
9
- * can be wrong.
10
- *
11
- * `plain` is computed LAZILY. `decorate` runs on every frame Ink produces —
12
- * 15-30 times a second during a run — while a copy happens when a human releases
13
- * a mouse button, so stripping every row eagerly would spend H regex passes per
14
- * frame to serve an event that may never come. The cache is dropped by `set`, so
15
- * the laziness is invisible to callers and cannot go stale.
16
- */
17
- import stripAnsi from 'strip-ansi';
18
- export function createScreenMirror() {
19
- let raw = [];
20
- let plain = null;
21
- return {
22
- get raw() {
23
- return raw;
24
- },
25
- get plain() {
26
- if (plain === null)
27
- plain = raw.map((line) => stripAnsi(line));
28
- return plain;
29
- },
30
- set(lines) {
31
- raw = lines;
32
- plain = null;
33
- },
34
- };
35
- }