@aragon-agent/cli 0.6.46 → 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 +28 -0
  2. package/README.md +80 -12
  3. package/dist/agent/coalesce.d.ts +5 -1
  4. package/dist/agent/coalesce.js +13 -0
  5. package/dist/agent/controller.d.ts +41 -20
  6. package/dist/agent/controller.js +68 -15
  7. package/dist/agent/conversation-reset.d.ts +1 -1
  8. package/dist/agent/governance-wiring.d.ts +6 -6
  9. package/dist/agent/governance-wiring.js +4 -4
  10. package/dist/agent/headless.d.ts +5 -5
  11. package/dist/agent/headless.js +4 -4
  12. package/dist/agent/job-notices.d.ts +1 -1
  13. package/dist/agent/job-notices.js +1 -1
  14. package/dist/agent/kit-apply.d.ts +3 -3
  15. package/dist/agent/kit-apply.js +3 -3
  16. package/dist/agent/model-profile-settings.d.ts +2 -2
  17. package/dist/agent/model-profile-settings.js +6 -6
  18. package/dist/agent/prompt-options.d.ts +1 -1
  19. package/dist/agent/system-prompt.d.ts +1 -1
  20. package/dist/agent/user-attention.d.ts +17 -0
  21. package/dist/agent/user-attention.js +32 -0
  22. package/dist/{ui → app}/App.d.ts +9 -9
  23. package/dist/{ui → app}/App.js +113 -79
  24. package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
  25. package/dist/{ui → app}/use-startup-notices.js +2 -2
  26. package/dist/cli.js +31 -32
  27. package/dist/commands/agents-command.js +1 -1
  28. package/dist/commands/builtins.js +9 -9
  29. package/dist/commands/governance-command.js +2 -2
  30. package/dist/commands/governance-runs-table.js +1 -1
  31. package/dist/commands/kit-command.js +1 -1
  32. package/dist/commands/perf.d.ts +3 -3
  33. package/dist/commands/perf.js +1 -1
  34. package/dist/commands/registry.d.ts +8 -8
  35. package/dist/commands/skills.js +2 -2
  36. package/dist/commands/team-command.js +1 -1
  37. package/dist/compaction/archive.d.ts +1 -1
  38. package/dist/compaction/archive.js +1 -1
  39. package/dist/compaction/child.d.ts +3 -3
  40. package/dist/compaction/child.js +4 -4
  41. package/dist/compaction/command.js +5 -5
  42. package/dist/compaction/compactor.d.ts +6 -6
  43. package/dist/compaction/compactor.js +6 -6
  44. package/dist/compaction/context-command.js +1 -1
  45. package/dist/compaction/digest.js +1 -1
  46. package/dist/compaction/memory-input.js +1 -1
  47. package/dist/compaction/memory-validation.js +1 -1
  48. package/dist/compaction/memory.js +1 -1
  49. package/dist/compaction/summarize-call.js +1 -1
  50. package/dist/compaction/summary-prompt.js +1 -1
  51. package/dist/compaction/tail-budget.js +2 -2
  52. package/dist/compaction/wiring.d.ts +5 -5
  53. package/dist/compaction/wiring.js +2 -2
  54. package/dist/config/cli-commands.d.ts +1 -1
  55. package/dist/config/cli-commands.js +3 -3
  56. package/dist/config/env.d.ts +1 -1
  57. package/dist/config/env.js +4 -4
  58. package/dist/config/load.d.ts +2 -2
  59. package/dist/config/load.js +10 -31
  60. package/dist/config/migrate-state-out-of-config.js +1 -1
  61. package/dist/config/model-profile-store.d.ts +4 -54
  62. package/dist/config/model-profile-store.js +3 -3
  63. package/dist/config/prompt-history.js +1 -1
  64. package/dist/config/store.d.ts +2 -2
  65. package/dist/config/store.js +3 -3
  66. package/dist/diagnostics/doctor.js +4 -4
  67. package/dist/exec/bridge/decisions.d.ts +1 -1
  68. package/dist/exec/bridge/human-answers.d.ts +1 -1
  69. package/dist/exec/bridge/human-answers.js +1 -1
  70. package/dist/exec/bridge/protocol.d.ts +1 -1
  71. package/dist/exec/bridge/server.js +1 -1
  72. package/dist/exec/events.d.ts +2 -2
  73. package/dist/exec/index.d.ts +1 -1
  74. package/dist/exec/index.js +1 -1
  75. package/dist/exec/permission.js +1 -1
  76. package/dist/exec/runner.d.ts +3 -3
  77. package/dist/exec/runner.js +2 -2
  78. package/dist/exec/threads/runtime.js +1 -1
  79. package/dist/fast/digest.d.ts +1 -1
  80. package/dist/fast/digest.js +1 -1
  81. package/dist/fast/frames.d.ts +1 -1
  82. package/dist/fast/frames.js +1 -1
  83. package/dist/fast/prompt.d.ts +1 -1
  84. package/dist/fast/prompt.js +1 -1
  85. package/dist/fast/review-call.js +1 -1
  86. package/dist/fast/reviewer.d.ts +3 -3
  87. package/dist/fast/reviewer.js +1 -1
  88. package/dist/fast/summary-call.d.ts +3 -3
  89. package/dist/fast/summary-call.js +2 -2
  90. package/dist/fast/summary-prompt.d.ts +1 -1
  91. package/dist/fast/summary-prompt.js +1 -1
  92. package/dist/fast/wiring.d.ts +4 -4
  93. package/dist/fast/wiring.js +1 -1
  94. package/dist/governance/card-normalize.d.ts +1 -1
  95. package/dist/governance/copy.d.ts +1 -1
  96. package/dist/governance/copy.js +2 -2
  97. package/dist/governance/engine/artifact-persist.d.ts +1 -1
  98. package/dist/governance/engine/budget.d.ts +1 -1
  99. package/dist/governance/engine/budget.js +1 -1
  100. package/dist/governance/engine/cards.d.ts +1 -1
  101. package/dist/governance/engine/digest.js +1 -1
  102. package/dist/governance/engine/engine-core.d.ts +5 -5
  103. package/dist/governance/engine/engine-core.js +1 -1
  104. package/dist/governance/engine/engine.d.ts +1 -1
  105. package/dist/governance/engine/engine.js +1 -1
  106. package/dist/governance/engine/estimate.d.ts +1 -1
  107. package/dist/governance/engine/estimate.js +1 -1
  108. package/dist/governance/engine/inspector.js +2 -2
  109. package/dist/governance/engine/integration.d.ts +1 -1
  110. package/dist/governance/engine/lifecycle.d.ts +1 -1
  111. package/dist/governance/engine/lifecycle.js +1 -1
  112. package/dist/governance/engine/phase-members.d.ts +1 -1
  113. package/dist/governance/engine/phase-planner.d.ts +1 -1
  114. package/dist/governance/engine/phase-planner.js +1 -1
  115. package/dist/governance/engine/rebuild.d.ts +1 -1
  116. package/dist/governance/engine/report.d.ts +1 -1
  117. package/dist/governance/engine/report.js +1 -1
  118. package/dist/governance/engine/run-digest.d.ts +1 -1
  119. package/dist/governance/engine/spec-builder.d.ts +2 -2
  120. package/dist/governance/engine/spec-builder.js +2 -2
  121. package/dist/governance/engine/stage-runner.js +2 -2
  122. package/dist/governance/engine/start-input.d.ts +1 -1
  123. package/dist/governance/engine/start-input.js +1 -1
  124. package/dist/governance/engine/state-machine.d.ts +1 -1
  125. package/dist/governance/engine/state-machine.js +3 -3
  126. package/dist/governance/engine/submission-queries.d.ts +1 -1
  127. package/dist/governance/engine/submission-render.d.ts +1 -1
  128. package/dist/governance/engine/submissions.d.ts +1 -1
  129. package/dist/governance/engine/submissions.js +1 -1
  130. package/dist/governance/engine/visibility.d.ts +1 -1
  131. package/dist/governance/engine/visibility.js +1 -1
  132. package/dist/governance/posture-transition.d.ts +2 -2
  133. package/dist/governance/posture-transition.js +1 -1
  134. package/dist/governance/profiles.d.ts +1 -1
  135. package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
  136. package/dist/governance/prompts/orchestrator-block.js +2 -2
  137. package/dist/governance/prompts/plan-addendum.d.ts +1 -1
  138. package/dist/governance/prompts/plan-addendum.js +1 -1
  139. package/dist/governance/prompts/role-blocks.d.ts +2 -2
  140. package/dist/governance/prompts/role-blocks.js +1 -1
  141. package/dist/governance/report-reader.js +1 -1
  142. package/dist/governance/roles.d.ts +1 -1
  143. package/dist/governance/rules/claims.d.ts +1 -1
  144. package/dist/governance/rules/claims.js +1 -1
  145. package/dist/governance/rules/elimination.d.ts +1 -1
  146. package/dist/governance/rules/elimination.js +1 -1
  147. package/dist/governance/rules/failure-analysis.d.ts +2 -2
  148. package/dist/governance/rules/failure-analysis.js +1 -1
  149. package/dist/governance/rules/ledger-replay.d.ts +1 -1
  150. package/dist/governance/rules/ledger-state.d.ts +1 -1
  151. package/dist/governance/rules/ledger-state.js +1 -1
  152. package/dist/governance/rules/ledger.d.ts +2 -2
  153. package/dist/governance/rules/ledger.js +2 -2
  154. package/dist/governance/rules/rca.d.ts +1 -1
  155. package/dist/governance/rules/rca.js +1 -1
  156. package/dist/governance/rules/settlement.d.ts +2 -2
  157. package/dist/governance/rules/settlement.js +2 -2
  158. package/dist/governance/rules/suspicion.d.ts +1 -1
  159. package/dist/governance/store/artifacts.d.ts +1 -1
  160. package/dist/governance/store/artifacts.js +1 -1
  161. package/dist/governance/store/events-log.d.ts +1 -1
  162. package/dist/governance/store/run-store.d.ts +1 -1
  163. package/dist/governance/store/run-store.js +1 -1
  164. package/dist/governance/store/scoreboard-export.d.ts +1 -1
  165. package/dist/governance/tools/child-tools.d.ts +1 -1
  166. package/dist/governance/tools/guard.d.ts +1 -1
  167. package/dist/governance/tools/guard.js +1 -1
  168. package/dist/governance/tools/inspector-tools.d.ts +2 -2
  169. package/dist/governance/tools/inspector-tools.js +2 -2
  170. package/dist/governance/tools/lead-tools.d.ts +1 -1
  171. package/dist/governance/tools/lead-tools.js +1 -1
  172. package/dist/governance/tools/normalize-util.js +1 -1
  173. package/dist/governance/tools/scan-incomplete.js +1 -1
  174. package/dist/governance/tools/shared-tools.d.ts +1 -1
  175. package/dist/governance/tools/shared-tools.js +1 -1
  176. package/dist/governance/tools/submit-normalizers.d.ts +1 -1
  177. package/dist/governance/tools/submit-normalizers.js +1 -1
  178. package/dist/governance/tools/submit-tools.d.ts +1 -1
  179. package/dist/logging/cli-commands.js +1 -1
  180. package/dist/logging/install.d.ts +1 -1
  181. package/dist/logging/install.js +3 -3
  182. package/dist/logging/logger.d.ts +2 -2
  183. package/dist/logging/logger.js +31 -2
  184. package/dist/proc/kill-tree.js +1 -1
  185. package/dist/proc/log-mirror.js +1 -1
  186. package/dist/proc/log-ring.js +2 -2
  187. package/dist/proc/notices.d.ts +1 -1
  188. package/dist/proc/notices.js +2 -2
  189. package/dist/proc/prompt.d.ts +1 -1
  190. package/dist/proc/prompt.js +8 -5
  191. package/dist/proc/readiness.js +1 -1
  192. package/dist/proc/supervisor.d.ts +1 -1
  193. package/dist/proc/supervisor.js +10 -4
  194. package/dist/proc/wait-plan.d.ts +39 -0
  195. package/dist/proc/wait-plan.js +77 -0
  196. package/dist/proc/wait.d.ts +37 -4
  197. package/dist/proc/wait.js +68 -5
  198. package/dist/prompts/command.d.ts +1 -1
  199. package/dist/prompts/command.js +1 -1
  200. package/dist/prompts/normalize.d.ts +1 -1
  201. package/dist/prompts/normalize.js +1 -1
  202. package/dist/prompts/resolve.d.ts +1 -1
  203. package/dist/prompts/store.d.ts +2 -12
  204. package/dist/prompts/store.js +6 -60
  205. package/dist/session/checkpoint.d.ts +2 -2
  206. package/dist/session/checkpoint.js +2 -0
  207. package/dist/session/clear-archive.d.ts +2 -2
  208. package/dist/session/persist.d.ts +2 -2
  209. package/dist/session/persist.js +20 -3
  210. package/dist/session/startup-session.d.ts +2 -2
  211. package/dist/session/validate-session.js +6 -3
  212. package/dist/skills/service.d.ts +2 -2
  213. package/dist/team/bus.d.ts +1 -1
  214. package/dist/team/bus.js +1 -1
  215. package/dist/team/child-reviewer.d.ts +2 -2
  216. package/dist/team/child-reviewer.js +1 -1
  217. package/dist/team/comm-tools.js +1 -1
  218. package/dist/team/dispatch-gate.js +1 -1
  219. package/dist/team/forced-dispatch.js +1 -1
  220. package/dist/team/forced-mode.d.ts +1 -1
  221. package/dist/team/forced-prompt.d.ts +1 -1
  222. package/dist/team/forced-prompt.js +1 -1
  223. package/dist/team/normalize.d.ts +1 -1
  224. package/dist/team/normalize.js +1 -1
  225. package/dist/team/overseer.d.ts +3 -3
  226. package/dist/team/overseer.js +3 -3
  227. package/dist/team/prompt.d.ts +1 -1
  228. package/dist/team/prompt.js +1 -1
  229. package/dist/team/report.d.ts +2 -2
  230. package/dist/team/report.js +2 -2
  231. package/dist/team/retry.d.ts +1 -1
  232. package/dist/team/retry.js +1 -1
  233. package/dist/team/runtime.d.ts +4 -4
  234. package/dist/team/runtime.js +2 -2
  235. package/dist/team/settled.d.ts +2 -2
  236. package/dist/team/subagent.d.ts +4 -4
  237. package/dist/team/subagent.js +5 -5
  238. package/dist/team/task-tool.d.ts +1 -1
  239. package/dist/team/task-tool.js +1 -1
  240. package/dist/todo/normalize.d.ts +1 -1
  241. package/dist/todo/normalize.js +1 -1
  242. package/dist/todo/prompt.d.ts +1 -1
  243. package/dist/todo/prompt.js +1 -1
  244. package/dist/todo/store.d.ts +1 -1
  245. package/dist/todo/store.js +2 -2
  246. package/dist/todo/todo-tool.d.ts +1 -1
  247. package/dist/todo/todo-tool.js +2 -2
  248. package/dist/tools/bash-tool.d.ts +1 -1
  249. package/dist/tools/bash-tool.js +2 -2
  250. package/dist/tools/diff.d.ts +1 -1
  251. package/dist/tools/diff.js +1 -1
  252. package/dist/tools/file-change-store.d.ts +1 -1
  253. package/dist/tools/fs-tools.d.ts +2 -2
  254. package/dist/tools/fs-tools.js +1 -1
  255. package/dist/tools/index.d.ts +3 -3
  256. package/dist/tools/index.js +1 -1
  257. package/dist/tools/job-tools.d.ts +14 -3
  258. package/dist/tools/job-tools.js +158 -35
  259. package/dist/tools/plan-tools.d.ts +1 -1
  260. package/dist/tools/plan-tools.js +1 -1
  261. package/dist/tools/proc-tools.d.ts +1 -1
  262. package/dist/tools/proc-tools.js +2 -2
  263. package/dist/update/classify-failure.d.ts +1 -1
  264. package/dist/update/install-lock.js +1 -1
  265. package/dist/update/install-source.d.ts +1 -1
  266. package/dist/update/installer.js +2 -2
  267. package/dist/update/npm-view.d.ts +1 -1
  268. package/dist/update/npm-view.js +1 -1
  269. package/dist/update/registry.d.ts +1 -1
  270. package/dist/update/registry.js +1 -1
  271. package/dist/update/service.d.ts +2 -2
  272. package/dist/update/service.js +2 -2
  273. package/package.json +7 -7
  274. package/dist/agent/agent-mode.d.ts +0 -108
  275. package/dist/agent/agent-mode.js +0 -121
  276. package/dist/agent/entry-limits.d.ts +0 -65
  277. package/dist/agent/entry-limits.js +0 -133
  278. package/dist/agent/governance-view.d.ts +0 -40
  279. package/dist/agent/governance-view.js +0 -40
  280. package/dist/agent/invocation-card.d.ts +0 -77
  281. package/dist/agent/invocation-card.js +0 -169
  282. package/dist/agent/model-probe-limits.d.ts +0 -39
  283. package/dist/agent/model-probe-limits.js +0 -25
  284. package/dist/agent/model-probe.d.ts +0 -104
  285. package/dist/agent/model-probe.js +0 -391
  286. package/dist/agent/queued-messages.d.ts +0 -23
  287. package/dist/agent/queued-messages.js +0 -49
  288. package/dist/agent/reducer.d.ts +0 -837
  289. package/dist/agent/reducer.js +0 -1617
  290. package/dist/agent/retry-view.d.ts +0 -68
  291. package/dist/agent/retry-view.js +0 -95
  292. package/dist/agent/usage.d.ts +0 -47
  293. package/dist/agent/usage.js +0 -84
  294. package/dist/compaction/limits.d.ts +0 -61
  295. package/dist/compaction/limits.js +0 -64
  296. package/dist/compaction/meter.d.ts +0 -276
  297. package/dist/compaction/meter.js +0 -512
  298. package/dist/compaction/pressure.d.ts +0 -163
  299. package/dist/compaction/pressure.js +0 -199
  300. package/dist/compaction/reason-text.d.ts +0 -36
  301. package/dist/compaction/reason-text.js +0 -78
  302. package/dist/compaction/types.d.ts +0 -360
  303. package/dist/compaction/types.js +0 -22
  304. package/dist/config/governance-config.d.ts +0 -125
  305. package/dist/config/governance-config.js +0 -164
  306. package/dist/config/kit-resolution.d.ts +0 -93
  307. package/dist/config/kit-resolution.js +0 -226
  308. package/dist/config/model-kits.d.ts +0 -225
  309. package/dist/config/model-kits.js +0 -302
  310. package/dist/config/model-profile-resolution.d.ts +0 -28
  311. package/dist/config/model-profile-resolution.js +0 -88
  312. package/dist/config/model-profiles.d.ts +0 -103
  313. package/dist/config/model-profiles.js +0 -188
  314. package/dist/config/schema.d.ts +0 -1645
  315. package/dist/config/schema.js +0 -1377
  316. package/dist/fast/limits.d.ts +0 -152
  317. package/dist/fast/limits.js +0 -152
  318. package/dist/fast/resolve.d.ts +0 -44
  319. package/dist/fast/resolve.js +0 -107
  320. package/dist/fast/task-summary-types.d.ts +0 -66
  321. package/dist/fast/task-summary-types.js +0 -17
  322. package/dist/fast/types.d.ts +0 -141
  323. package/dist/fast/types.js +0 -14
  324. package/dist/governance/governed-dispatch.d.ts +0 -19
  325. package/dist/governance/governed-dispatch.js +0 -17
  326. package/dist/governance/limits.d.ts +0 -107
  327. package/dist/governance/limits.js +0 -131
  328. package/dist/governance/posture.d.ts +0 -35
  329. package/dist/governance/posture.js +0 -59
  330. package/dist/governance/rules/events-table.d.ts +0 -46
  331. package/dist/governance/rules/events-table.js +0 -94
  332. package/dist/governance/types.d.ts +0 -661
  333. package/dist/governance/types.js +0 -27
  334. package/dist/input/control-sequences.d.ts +0 -71
  335. package/dist/input/control-sequences.js +0 -222
  336. package/dist/input/csiu-keys.d.ts +0 -66
  337. package/dist/input/csiu-keys.js +0 -181
  338. package/dist/input/cursor-report.d.ts +0 -61
  339. package/dist/input/cursor-report.js +0 -97
  340. package/dist/input/enter-sequences.d.ts +0 -64
  341. package/dist/input/enter-sequences.js +0 -153
  342. package/dist/input/interrupt-gesture.d.ts +0 -18
  343. package/dist/input/interrupt-gesture.js +0 -19
  344. package/dist/input/keyboard-enhancement.d.ts +0 -42
  345. package/dist/input/keyboard-enhancement.js +0 -65
  346. package/dist/input/keymap.d.ts +0 -20
  347. package/dist/input/keymap.js +0 -99
  348. package/dist/input/limits.d.ts +0 -118
  349. package/dist/input/limits.js +0 -109
  350. package/dist/input/mouse-events.d.ts +0 -87
  351. package/dist/input/mouse-events.js +0 -212
  352. package/dist/input/paste-parse.d.ts +0 -83
  353. package/dist/input/paste-parse.js +0 -107
  354. package/dist/input/pointer-router.d.ts +0 -11
  355. package/dist/input/pointer-router.js +0 -14
  356. package/dist/input/stdin-filter.d.ts +0 -112
  357. package/dist/input/stdin-filter.js +0 -657
  358. package/dist/input/win32-input-mode.d.ts +0 -61
  359. package/dist/input/win32-input-mode.js +0 -269
  360. package/dist/logging/levels.d.ts +0 -40
  361. package/dist/logging/levels.js +0 -59
  362. package/dist/logging/secret-registry.d.ts +0 -32
  363. package/dist/logging/secret-registry.js +0 -73
  364. package/dist/proc/limits.d.ts +0 -200
  365. package/dist/proc/limits.js +0 -207
  366. package/dist/proc/progress.d.ts +0 -40
  367. package/dist/proc/progress.js +0 -135
  368. package/dist/proc/types.d.ts +0 -263
  369. package/dist/proc/types.js +0 -15
  370. package/dist/prompts/copy.d.ts +0 -89
  371. package/dist/prompts/copy.js +0 -131
  372. package/dist/prompts/fill.d.ts +0 -51
  373. package/dist/prompts/fill.js +0 -46
  374. package/dist/prompts/limits.d.ts +0 -53
  375. package/dist/prompts/limits.js +0 -53
  376. package/dist/prompts/search.d.ts +0 -58
  377. package/dist/prompts/search.js +0 -146
  378. package/dist/prompts/types.d.ts +0 -204
  379. package/dist/prompts/types.js +0 -13
  380. package/dist/team/activity.d.ts +0 -67
  381. package/dist/team/activity.js +0 -130
  382. package/dist/team/limits.d.ts +0 -308
  383. package/dist/team/limits.js +0 -330
  384. package/dist/team/model.d.ts +0 -104
  385. package/dist/team/model.js +0 -150
  386. package/dist/team/panel-rows.d.ts +0 -48
  387. package/dist/team/panel-rows.js +0 -75
  388. package/dist/team/timeline.d.ts +0 -74
  389. package/dist/team/timeline.js +0 -101
  390. package/dist/team/types.d.ts +0 -354
  391. package/dist/team/types.js +0 -13
  392. package/dist/todo/acceptance.d.ts +0 -120
  393. package/dist/todo/acceptance.js +0 -399
  394. package/dist/todo/follow-through.d.ts +0 -138
  395. package/dist/todo/follow-through.js +0 -248
  396. package/dist/todo/limits.d.ts +0 -152
  397. package/dist/todo/limits.js +0 -152
  398. package/dist/todo/panel-rows.d.ts +0 -45
  399. package/dist/todo/panel-rows.js +0 -70
  400. package/dist/todo/plan-sections.d.ts +0 -60
  401. package/dist/todo/plan-sections.js +0 -108
  402. package/dist/todo/row-window.d.ts +0 -51
  403. package/dist/todo/row-window.js +0 -107
  404. package/dist/todo/types.d.ts +0 -124
  405. package/dist/todo/types.js +0 -12
  406. package/dist/tools/human-input.d.ts +0 -212
  407. package/dist/tools/human-input.js +0 -265
  408. package/dist/tools/patch.d.ts +0 -115
  409. package/dist/tools/patch.js +0 -453
  410. package/dist/tools/terminal-output.d.ts +0 -115
  411. package/dist/tools/terminal-output.js +0 -201
  412. package/dist/tools/tool-output-store.d.ts +0 -68
  413. package/dist/tools/tool-output-store.js +0 -102
  414. package/dist/ui/ActivityLine.d.ts +0 -26
  415. package/dist/ui/ActivityLine.js +0 -48
  416. package/dist/ui/AutocompletePopup.d.ts +0 -23
  417. package/dist/ui/AutocompletePopup.js +0 -17
  418. package/dist/ui/BottomStatusRow.d.ts +0 -10
  419. package/dist/ui/BottomStatusRow.js +0 -9
  420. package/dist/ui/Composer.d.ts +0 -115
  421. package/dist/ui/Composer.js +0 -64
  422. package/dist/ui/GovernancePanel.d.ts +0 -50
  423. package/dist/ui/GovernancePanel.js +0 -77
  424. package/dist/ui/GovernanceRun.d.ts +0 -18
  425. package/dist/ui/GovernanceRun.js +0 -11
  426. package/dist/ui/Header.d.ts +0 -48
  427. package/dist/ui/Header.js +0 -27
  428. package/dist/ui/Logo.d.ts +0 -32
  429. package/dist/ui/Logo.js +0 -65
  430. package/dist/ui/Markdown.d.ts +0 -29
  431. package/dist/ui/Markdown.js +0 -116
  432. package/dist/ui/PromptCaret.d.ts +0 -11
  433. package/dist/ui/PromptCaret.js +0 -31
  434. package/dist/ui/PromptInput.d.ts +0 -192
  435. package/dist/ui/PromptInput.js +0 -689
  436. package/dist/ui/QueuePanel.d.ts +0 -8
  437. package/dist/ui/QueuePanel.js +0 -9
  438. package/dist/ui/QueueStatusRow.d.ts +0 -24
  439. package/dist/ui/QueueStatusRow.js +0 -51
  440. package/dist/ui/ScrollbackShell.d.ts +0 -132
  441. package/dist/ui/ScrollbackShell.js +0 -26
  442. package/dist/ui/SessionOpener.d.ts +0 -30
  443. package/dist/ui/SessionOpener.js +0 -12
  444. package/dist/ui/StatusBar.d.ts +0 -129
  445. package/dist/ui/StatusBar.js +0 -61
  446. package/dist/ui/TeamPanel.d.ts +0 -76
  447. package/dist/ui/TeamPanel.js +0 -103
  448. package/dist/ui/ToastStack.d.ts +0 -8
  449. package/dist/ui/ToastStack.js +0 -31
  450. package/dist/ui/TodoPanel.d.ts +0 -52
  451. package/dist/ui/TodoPanel.js +0 -214
  452. package/dist/ui/Transcript.d.ts +0 -105
  453. package/dist/ui/Transcript.js +0 -251
  454. package/dist/ui/UpdateLine.d.ts +0 -44
  455. package/dist/ui/UpdateLine.js +0 -129
  456. package/dist/ui/activity-phrases.d.ts +0 -33
  457. package/dist/ui/activity-phrases.js +0 -50
  458. package/dist/ui/capabilities.d.ts +0 -27
  459. package/dist/ui/capabilities.js +0 -65
  460. package/dist/ui/clipboard-task.d.ts +0 -29
  461. package/dist/ui/clipboard-task.js +0 -66
  462. package/dist/ui/clipboard.d.ts +0 -31
  463. package/dist/ui/clipboard.js +0 -157
  464. package/dist/ui/color-runtime.d.ts +0 -5
  465. package/dist/ui/color-runtime.js +0 -29
  466. package/dist/ui/composer-input.d.ts +0 -38
  467. package/dist/ui/composer-input.js +0 -79
  468. package/dist/ui/composer-limits.d.ts +0 -30
  469. package/dist/ui/composer-limits.js +0 -45
  470. package/dist/ui/composer-rows.d.ts +0 -73
  471. package/dist/ui/composer-rows.js +0 -129
  472. package/dist/ui/console-bridge.d.ts +0 -19
  473. package/dist/ui/console-bridge.js +0 -52
  474. package/dist/ui/density.d.ts +0 -26
  475. package/dist/ui/density.js +0 -34
  476. package/dist/ui/display-tab.d.ts +0 -51
  477. package/dist/ui/display-tab.js +0 -82
  478. package/dist/ui/editor-navigation.d.ts +0 -55
  479. package/dist/ui/editor-navigation.js +0 -96
  480. package/dist/ui/editor-reducer.d.ts +0 -108
  481. package/dist/ui/editor-reducer.js +0 -187
  482. package/dist/ui/enter-frames.d.ts +0 -47
  483. package/dist/ui/enter-frames.js +0 -117
  484. package/dist/ui/entries/AssistantEntry.d.ts +0 -37
  485. package/dist/ui/entries/AssistantEntry.js +0 -43
  486. package/dist/ui/entries/CompactionCard.d.ts +0 -88
  487. package/dist/ui/entries/CompactionCard.js +0 -222
  488. package/dist/ui/entries/DiffView.d.ts +0 -61
  489. package/dist/ui/entries/DiffView.js +0 -103
  490. package/dist/ui/entries/EntryFrame.d.ts +0 -23
  491. package/dist/ui/entries/EntryFrame.js +0 -6
  492. package/dist/ui/entries/FastCard.d.ts +0 -53
  493. package/dist/ui/entries/FastCard.js +0 -105
  494. package/dist/ui/entries/GovernanceCard.d.ts +0 -30
  495. package/dist/ui/entries/GovernanceCard.js +0 -32
  496. package/dist/ui/entries/InvocationCard.d.ts +0 -20
  497. package/dist/ui/entries/InvocationCard.js +0 -32
  498. package/dist/ui/entries/QueuedEntry.d.ts +0 -27
  499. package/dist/ui/entries/QueuedEntry.js +0 -33
  500. package/dist/ui/entries/RetryCard.d.ts +0 -56
  501. package/dist/ui/entries/RetryCard.js +0 -60
  502. package/dist/ui/entries/ServiceCard.d.ts +0 -82
  503. package/dist/ui/entries/ServiceCard.js +0 -151
  504. package/dist/ui/entries/TeamCard.d.ts +0 -55
  505. package/dist/ui/entries/TeamCard.js +0 -94
  506. package/dist/ui/entries/TodoCard.d.ts +0 -54
  507. package/dist/ui/entries/TodoCard.js +0 -98
  508. package/dist/ui/entries/ToolCard.d.ts +0 -81
  509. package/dist/ui/entries/ToolCard.js +0 -160
  510. package/dist/ui/entries/ToolPreview.d.ts +0 -59
  511. package/dist/ui/entries/ToolPreview.js +0 -208
  512. package/dist/ui/entries/UserEntry.d.ts +0 -36
  513. package/dist/ui/entries/UserEntry.js +0 -57
  514. package/dist/ui/exit-snapshot.d.ts +0 -43
  515. package/dist/ui/exit-snapshot.js +0 -26
  516. package/dist/ui/frame-differ.d.ts +0 -166
  517. package/dist/ui/frame-differ.js +0 -354
  518. package/dist/ui/frame-observer.d.ts +0 -17
  519. package/dist/ui/frame-observer.js +0 -94
  520. package/dist/ui/frame-parser.d.ts +0 -7
  521. package/dist/ui/frame-parser.js +0 -18
  522. package/dist/ui/gauge.d.ts +0 -39
  523. package/dist/ui/gauge.js +0 -55
  524. package/dist/ui/glyphs.d.ts +0 -178
  525. package/dist/ui/glyphs.js +0 -165
  526. package/dist/ui/governance-copy.d.ts +0 -69
  527. package/dist/ui/governance-copy.js +0 -104
  528. package/dist/ui/governance-status.d.ts +0 -145
  529. package/dist/ui/governance-status.js +0 -326
  530. package/dist/ui/gradient.d.ts +0 -11
  531. package/dist/ui/gradient.js +0 -50
  532. package/dist/ui/ink-runtime.d.ts +0 -4
  533. package/dist/ui/ink-runtime.js +0 -51
  534. package/dist/ui/interaction-copy.d.ts +0 -82
  535. package/dist/ui/interaction-copy.js +0 -38
  536. package/dist/ui/interaction-hints.d.ts +0 -44
  537. package/dist/ui/interaction-hints.js +0 -97
  538. package/dist/ui/layout/AppShell.d.ts +0 -17
  539. package/dist/ui/layout/AppShell.js +0 -6
  540. package/dist/ui/layout/Gutter.d.ts +0 -67
  541. package/dist/ui/layout/Gutter.js +0 -42
  542. package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
  543. package/dist/ui/layout/MeasuredEntry.js +0 -30
  544. package/dist/ui/layout/OverlayFrame.d.ts +0 -73
  545. package/dist/ui/layout/OverlayFrame.js +0 -110
  546. package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
  547. package/dist/ui/layout/ScrollIndicator.js +0 -22
  548. package/dist/ui/layout/ScrollViewport.d.ts +0 -40
  549. package/dist/ui/layout/ScrollViewport.js +0 -222
  550. package/dist/ui/layout/agents-board.d.ts +0 -102
  551. package/dist/ui/layout/agents-board.js +0 -389
  552. package/dist/ui/layout/autocomplete.d.ts +0 -18
  553. package/dist/ui/layout/autocomplete.js +0 -26
  554. package/dist/ui/layout/budget.d.ts +0 -43
  555. package/dist/ui/layout/budget.js +0 -52
  556. package/dist/ui/layout/cells.d.ts +0 -61
  557. package/dist/ui/layout/cells.js +0 -156
  558. package/dist/ui/layout/document-layout.d.ts +0 -13
  559. package/dist/ui/layout/document-layout.js +0 -10
  560. package/dist/ui/layout/follow-state.d.ts +0 -138
  561. package/dist/ui/layout/follow-state.js +0 -148
  562. package/dist/ui/layout/frame.d.ts +0 -36
  563. package/dist/ui/layout/frame.js +0 -39
  564. package/dist/ui/layout/governance-board.d.ts +0 -121
  565. package/dist/ui/layout/governance-board.js +0 -382
  566. package/dist/ui/layout/governance-card.d.ts +0 -53
  567. package/dist/ui/layout/governance-card.js +0 -134
  568. package/dist/ui/layout/governance-chip.d.ts +0 -38
  569. package/dist/ui/layout/governance-chip.js +0 -64
  570. package/dist/ui/layout/governance-panel.d.ts +0 -85
  571. package/dist/ui/layout/governance-panel.js +0 -358
  572. package/dist/ui/layout/governance-roster.d.ts +0 -65
  573. package/dist/ui/layout/governance-roster.js +0 -275
  574. package/dist/ui/layout/header-hints.d.ts +0 -90
  575. package/dist/ui/layout/header-hints.js +0 -110
  576. package/dist/ui/layout/header-left.d.ts +0 -115
  577. package/dist/ui/layout/header-left.js +0 -206
  578. package/dist/ui/layout/invocation-card.d.ts +0 -41
  579. package/dist/ui/layout/invocation-card.js +0 -91
  580. package/dist/ui/layout/kit-chip.d.ts +0 -50
  581. package/dist/ui/layout/kit-chip.js +0 -81
  582. package/dist/ui/layout/overlay-window.d.ts +0 -43
  583. package/dist/ui/layout/overlay-window.js +0 -51
  584. package/dist/ui/layout/queue-layout.d.ts +0 -19
  585. package/dist/ui/layout/queue-layout.js +0 -26
  586. package/dist/ui/layout/rail.d.ts +0 -7
  587. package/dist/ui/layout/rail.js +0 -16
  588. package/dist/ui/layout/scroll-indicator.d.ts +0 -27
  589. package/dist/ui/layout/scroll-indicator.js +0 -36
  590. package/dist/ui/layout/scroll.d.ts +0 -37
  591. package/dist/ui/layout/scroll.js +0 -99
  592. package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
  593. package/dist/ui/layout/scrollbar-geometry.js +0 -13
  594. package/dist/ui/layout/session-chip.d.ts +0 -52
  595. package/dist/ui/layout/session-chip.js +0 -64
  596. package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
  597. package/dist/ui/layout/shortcut-panel-layout.js +0 -321
  598. package/dist/ui/layout/status-detail-layout.d.ts +0 -9
  599. package/dist/ui/layout/status-detail-layout.js +0 -79
  600. package/dist/ui/layout/status-layout.d.ts +0 -139
  601. package/dist/ui/layout/status-layout.js +0 -253
  602. package/dist/ui/layout/task-summary-cell.d.ts +0 -61
  603. package/dist/ui/layout/task-summary-cell.js +0 -65
  604. package/dist/ui/layout/team-panel.d.ts +0 -18
  605. package/dist/ui/layout/team-panel.js +0 -25
  606. package/dist/ui/layout/team-row.d.ts +0 -139
  607. package/dist/ui/layout/team-row.js +0 -246
  608. package/dist/ui/layout/todo-layout.d.ts +0 -62
  609. package/dist/ui/layout/todo-layout.js +0 -102
  610. package/dist/ui/layout/useTerminalSize.d.ts +0 -13
  611. package/dist/ui/layout/useTerminalSize.js +0 -50
  612. package/dist/ui/layout/viewport-geometry.d.ts +0 -29
  613. package/dist/ui/layout/viewport-geometry.js +0 -28
  614. package/dist/ui/layout/virtual-window.d.ts +0 -112
  615. package/dist/ui/layout/virtual-window.js +0 -488
  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 -61
  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 -118
  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,187 +0,0 @@
1
- /**
2
- * Composer editor state — F3 of tui-input-flicker-fix (§3.4).
3
- *
4
- * Ink creates its container with tag `0` — a LEGACY React root
5
- * (`ink/build/ink.js:59-61`). In a legacy root, `setState` called outside a
6
- * React event handler is NOT batched: each call schedules and immediately
7
- * flushes a synchronous render. `useInput`'s callback runs from a stdin
8
- * `'data'` listener, which is outside React entirely, so `PromptInput.insert`'s
9
- * five `setState` calls became five commits, five whole-tree Yoga layouts, and
10
- * — through Ink's 32 ms leading+trailing throttle — TWO full-frame repaints per
11
- * printable character (§2 R3). The flicker got worse the faster the user typed,
12
- * which is exactly what the report described.
13
- *
14
- * Collapsing the five always-together pieces of state into one reducer makes a
15
- * keystroke cost one commit. `fileMatches` deliberately stays a separate
16
- * `useState` in the component: it is written from the debounced async glob
17
- * effect, not from the key handler, so folding it in here would couple two
18
- * unrelated update sources.
19
- *
20
- * THE RULE A REVIEWER SHOULD CHECK LINE BY LINE: every branch of the `useInput`
21
- * callback performs at most ONE `dispatch` and then returns.
22
- *
23
- * Extracted from the component so it is unit-testable without mounting Ink.
24
- */
25
- import { expandRangeOverTokens, formatPasteToken, makePasteRecord, referencedIds, shouldCollapse, snapOutOfToken, } from './paste-tokens.js';
26
- import { snapGrapheme, stepGrapheme } from './editor-navigation.js';
27
- const NO_PASTES = new Map();
28
- export const INITIAL_EDITOR_STATE = {
29
- buffer: '',
30
- cursor: 0,
31
- historyIndex: null,
32
- dismissed: false,
33
- sel: 0,
34
- pastes: NO_PASTES,
35
- };
36
- /**
37
- * The three flags `resetDraftFlags()` used to clear with three separate
38
- * `setState` calls.
39
- *
40
- * Every action that CHANGES THE BUFFER resets them, and that is the pre-existing
41
- * semantics rather than a new rule: an edit invalidates the history cursor (the
42
- * draft is no longer the recalled entry), un-dismisses the popup (the user is
43
- * typing again, so suggestions should come back), and re-homes the selection
44
- * (the candidate list is about to be recomputed).
45
- */
46
- const DRAFT_FLAGS = {
47
- historyIndex: null, dismissed: false, sel: 0, preferredVisualColumn: undefined,
48
- };
49
- /**
50
- * Drop payloads the buffer no longer references (I-7).
51
- *
52
- * A WRAPPER, NOT A LINE IN ONE BRANCH (P1-6). v1 of the design pruned only inside
53
- * `input`, which leaves `replace` (the action behind `Ctrl+U` / `Ctrl+K` /
54
- * `Ctrl+W` and every `applyEdit`), `backspace` and `recall` able to delete a token
55
- * without releasing its payload. A rule the body contradicts is worse than no
56
- * rule, because the next reader trusts the invariant.
57
- *
58
- * `moveCursor`, `select` and `dismiss` do not change the buffer and are left
59
- * alone, which keeps their "return the same object so React bails out" property.
60
- */
61
- function withPrune(next) {
62
- if (next.pastes.size === 0)
63
- return next;
64
- const live = referencedIds(next.buffer);
65
- // EVERY held id is tested, rather than `live.size === next.pastes.size`.
66
- // Equal counts do not mean equal sets: `referencedIds` reads the BUFFER, which
67
- // can name an id this map never held — a user who types `[Pasted text #99 +2
68
- // lines]` by hand, or edits the number inside a real token. One such id
69
- // balances out one deleted token and the cheap check then returns early with a
70
- // payload the buffer no longer references, which is the leak I-7 forbids.
71
- let stale = false;
72
- for (const id of next.pastes.keys()) {
73
- if (!live.has(id)) {
74
- stale = true;
75
- break;
76
- }
77
- }
78
- if (!stale)
79
- return next;
80
- const kept = new Map();
81
- for (const [id, record] of next.pastes)
82
- if (live.has(id))
83
- kept.set(id, record);
84
- return { ...next, pastes: kept };
85
- }
86
- export function editorReducer(state, action) {
87
- switch (action.type) {
88
- case 'adopt':
89
- return withPrune(action.state);
90
- case 'insert': {
91
- // D-8: typing can never land INSIDE a token. A no-op on a buffer with no
92
- // tokens, which is every buffer until the first collapse.
93
- const cursor = snapOutOfToken(state.buffer, snapGrapheme(state.buffer, state.cursor));
94
- const buffer = state.buffer.slice(0, cursor) + action.text + state.buffer.slice(cursor);
95
- return withPrune({
96
- ...state,
97
- ...DRAFT_FLAGS,
98
- buffer,
99
- cursor: snapGrapheme(buffer, cursor + action.text.length, true),
100
- });
101
- }
102
- case 'replace':
103
- return withPrune({
104
- ...state,
105
- ...DRAFT_FLAGS,
106
- buffer: action.buffer,
107
- cursor: snapGrapheme(action.buffer, action.cursor),
108
- });
109
- case 'backspace':
110
- case 'delete': {
111
- const cursor = snapGrapheme(state.buffer, state.cursor);
112
- const backwards = action.type === 'backspace';
113
- if (backwards ? cursor <= 0 : cursor >= state.buffer.length)
114
- return state;
115
- // G5: one `Backspace` immediately after `...lines]` removes the whole
116
- // token and releases its payload, in ONE dispatch.
117
- const other = stepGrapheme(state.buffer, cursor, backwards ? 'left' : 'right');
118
- const range = expandRangeOverTokens(state.buffer, backwards ? other : cursor, backwards ? cursor : other);
119
- const buffer = state.buffer.slice(0, range.from) + state.buffer.slice(range.to);
120
- return withPrune({
121
- ...state,
122
- ...DRAFT_FLAGS,
123
- buffer,
124
- cursor: snapGrapheme(buffer, range.from),
125
- });
126
- }
127
- case 'input': {
128
- let buffer = state.buffer;
129
- let cursor = snapOutOfToken(buffer, snapGrapheme(buffer, state.cursor));
130
- let pastes = null;
131
- for (const segment of action.segments) {
132
- const collapse = segment.kind === 'paste' && shouldCollapse(segment.text);
133
- let text = segment.text;
134
- if (collapse) {
135
- const record = makePasteRecord(segment.id, segment.text);
136
- text = formatPasteToken(record);
137
- pastes = pastes ?? new Map(state.pastes);
138
- pastes.set(record.id, record);
139
- }
140
- buffer = buffer.slice(0, cursor) + text + buffer.slice(cursor);
141
- cursor = snapGrapheme(buffer, cursor + text.length, true);
142
- }
143
- return withPrune({
144
- ...state,
145
- ...DRAFT_FLAGS,
146
- buffer,
147
- cursor,
148
- ...(pastes ? { pastes } : {}),
149
- });
150
- }
151
- case 'moveCursor': {
152
- // NO DRAFT-FLAG RESET. Moving the caret is not an edit: clearing
153
- // `historyIndex` here would end a history walk the moment the user pressed
154
- // ← to look at what they recalled.
155
- const cursor = snapGrapheme(state.buffer, action.cursor);
156
- const preferredVisualColumn = action.preferredVisualColumn;
157
- return state.cursor === cursor && state.preferredVisualColumn === preferredVisualColumn
158
- ? state : { ...state, cursor, preferredVisualColumn };
159
- }
160
- case 'recall':
161
- // `historyIndex` is SET, not reset, which is why recall cannot reuse
162
- // `replace` — the two differ in exactly the field that keeps the walk
163
- // alive. `dismissed` is forced TRUE (history-recall-autocomplete-popup):
164
- // recalled content is not a query the user is typing, so the suggestion
165
- // popup must not appear over it - while it is visible it owns Up/Down and
166
- // the second Up moves the highlight instead of stepping history. Any
167
- // buffer edit (insert / backspace / replace / input ...) re-arms the
168
- // popup through DRAFT_FLAGS, so typing over a recall restores them. The
169
- // same gate covers the `@file` popup, which shares `dismissed`.
170
- // `sel` is still LEFT ALONE: invisible while dismissed, re-homed by the
171
- // next buffer change; touching it would only widen the diff (K-7 note).
172
- return withPrune({
173
- ...state,
174
- buffer: action.buffer,
175
- cursor: snapGrapheme(action.buffer, action.cursor),
176
- preferredVisualColumn: undefined,
177
- historyIndex: action.historyIndex,
178
- dismissed: true,
179
- });
180
- case 'select':
181
- return state.sel === action.sel ? state : { ...state, sel: action.sel };
182
- case 'dismiss':
183
- return state.dismissed ? state : { ...state, dismissed: true };
184
- case 'clear':
185
- return INITIAL_EDITOR_STATE;
186
- }
187
- }
@@ -1,47 +0,0 @@
1
- export type ComposerFrame = {
2
- kind: 'text';
3
- text: string;
4
- } | {
5
- kind: 'paste';
6
- text: string;
7
- } | {
8
- kind: 'newline';
9
- } | {
10
- kind: 'submit';
11
- };
12
- /** True when this `input` carries at least one Enter frame -- the branch guard. */
13
- export declare function hasEnterFrame(input: string): boolean;
14
- /**
15
- * Decode paste regions before interpreting CR/LF or newline frames as keys.
16
- * Paste IDs remain the caller's responsibility.
17
- */
18
- export declare function splitEnterFrames(input: string): ComposerFrame[];
19
- /**
20
- * Merge newline runs with the paste frames that share the same `input`.
21
- *
22
- * Ink drains its buffer in one size-less `read()`, so the filter's TWO writes
23
- * (one per frame family) can arrive as ONE chunk carrying both a paste frame
24
- * and an Enter frame. Neither splitter alone preserves that order --
25
- * `splitPasteFrames` sanitises `\n` out of its text runs, and this module's
26
- * spans treat a paste payload as ordinary text -- so the merge walks the
27
- * ORIGINAL string once: paste frames become paste segments (payload through
28
- * `sanitisePaste`, as `splitPasteFrames` does), and the spans between them are
29
- * segmented with the SAME walker `splitEnterFrames` uses, which is what keeps
30
- * the two views from disagreeing about where a newline sits.
31
- *
32
- * Paste segments carry NO id here (P1-5); the caller assigns one per segment
33
- * only when it builds the reducer's action.
34
- */
35
- export declare function mergeWithPasteRuns(input: string, runs: ComposerFrame[]): ComposerFrame[];
36
- /**
37
- * Remove every Enter frame for a consumer that has no newline model of its
38
- * own, replacing each frame with `'\n'` (tui-shift-enter-copy-queue 3.5, the
39
- * I-12 analogue for this frame family).
40
- *
41
- * NO OTHER SANITISATION, unlike `stripPasteFrames`: the overlay call sites wrap
42
- * this INSIDE their existing `stripPasteFrames(...)` call, and the composite
43
- * keeps that function's byte-level guarantees. Composed the other way round a
44
- * lone NUL frame would survive as its payload letter; composed this way the
45
- * frame's newline lands exactly where a bare Ctrl+J lands today.
46
- */
47
- export declare function stripEnterFrames(input: string): string;
@@ -1,117 +0,0 @@
1
- import { ENTER_NEWLINE_FRAME, PASTE_CLOSE, PASTE_OPEN } from '../input/limits.js';
2
- import { sanitisePaste } from '../input/paste-parse.js';
3
- import { sanitiseTyped } from './paste-frames.js';
4
- /** True when this `input` carries at least one Enter frame -- the branch guard. */
5
- export function hasEnterFrame(input) {
6
- return input.includes(ENTER_NEWLINE_FRAME);
7
- }
8
- /**
9
- * Split one paste-free span into ordered text, newline and submit intents.
10
- *
11
- * Every newline source -- frame or bare `\n` -- yields ONE
12
- * `{ kind: 'newline' }` segment, so the editor's existing `input`
13
- * action inserts it through the same path typing uses and the draft's row
14
- * budget applies unchanged. Non-newline text is accumulated and passed through
15
- * `sanitiseTyped` (I-14): a chunk that carries a frame can also carry the
16
- * keystrokes that arrived beside it, and a coalesced CR must not be spliced
17
- * back into the draft raw.
18
- */
19
- function splitEnterSpan(span) {
20
- const segments = [];
21
- let text = '';
22
- const pushText = () => {
23
- const clean = sanitiseTyped(text);
24
- if (clean.length > 0)
25
- segments.push({ kind: 'text', text: clean });
26
- text = '';
27
- };
28
- let i = 0;
29
- while (i < span.length) {
30
- if (span.startsWith(ENTER_NEWLINE_FRAME, i)) {
31
- pushText();
32
- segments.push({ kind: 'newline' });
33
- i += ENTER_NEWLINE_FRAME.length;
34
- continue;
35
- }
36
- if (span[i] === '\r') {
37
- pushText();
38
- segments.push({ kind: 'submit' });
39
- i += 1;
40
- continue;
41
- }
42
- if (span[i] === '\n') {
43
- pushText();
44
- segments.push({ kind: 'newline' });
45
- i += 1;
46
- continue;
47
- }
48
- text += span[i];
49
- i += 1;
50
- }
51
- pushText();
52
- return segments;
53
- }
54
- /**
55
- * Decode paste regions before interpreting CR/LF or newline frames as keys.
56
- * Paste IDs remain the caller's responsibility.
57
- */
58
- export function splitEnterFrames(input) {
59
- return input.includes(PASTE_OPEN)
60
- ? mergeWithPasteRuns(input, []) : splitEnterSpan(input);
61
- }
62
- /**
63
- * Merge newline runs with the paste frames that share the same `input`.
64
- *
65
- * Ink drains its buffer in one size-less `read()`, so the filter's TWO writes
66
- * (one per frame family) can arrive as ONE chunk carrying both a paste frame
67
- * and an Enter frame. Neither splitter alone preserves that order --
68
- * `splitPasteFrames` sanitises `\n` out of its text runs, and this module's
69
- * spans treat a paste payload as ordinary text -- so the merge walks the
70
- * ORIGINAL string once: paste frames become paste segments (payload through
71
- * `sanitisePaste`, as `splitPasteFrames` does), and the spans between them are
72
- * segmented with the SAME walker `splitEnterFrames` uses, which is what keeps
73
- * the two views from disagreeing about where a newline sits.
74
- *
75
- * Paste segments carry NO id here (P1-5); the caller assigns one per segment
76
- * only when it builds the reducer's action.
77
- */
78
- export function mergeWithPasteRuns(input, runs) {
79
- if (!input.includes(PASTE_OPEN))
80
- return runs;
81
- const merged = [];
82
- let i = 0;
83
- while (i < input.length) {
84
- const open = input.indexOf(PASTE_OPEN, i);
85
- if (open === -1) {
86
- merged.push(...splitEnterSpan(input.slice(i)));
87
- break;
88
- }
89
- merged.push(...splitEnterSpan(input.slice(i, open)));
90
- const bodyStart = open + PASTE_OPEN.length;
91
- const close = input.indexOf(PASTE_CLOSE, bodyStart);
92
- const body = close === -1 ? input.slice(bodyStart) : input.slice(bodyStart, close);
93
- const payload = sanitisePaste(body);
94
- if (payload.length > 0)
95
- merged.push({ kind: 'paste', text: payload });
96
- if (close === -1)
97
- break;
98
- i = close + PASTE_CLOSE.length;
99
- }
100
- return merged;
101
- }
102
- /**
103
- * Remove every Enter frame for a consumer that has no newline model of its
104
- * own, replacing each frame with `'\n'` (tui-shift-enter-copy-queue 3.5, the
105
- * I-12 analogue for this frame family).
106
- *
107
- * NO OTHER SANITISATION, unlike `stripPasteFrames`: the overlay call sites wrap
108
- * this INSIDE their existing `stripPasteFrames(...)` call, and the composite
109
- * keeps that function's byte-level guarantees. Composed the other way round a
110
- * lone NUL frame would survive as its payload letter; composed this way the
111
- * frame's newline lands exactly where a bare Ctrl+J lands today.
112
- */
113
- export function stripEnterFrames(input) {
114
- if (!hasEnterFrame(input))
115
- return input;
116
- return input.split(ENTER_NEWLINE_FRAME).join('\n');
117
- }
@@ -1,37 +0,0 @@
1
- /**
2
- * Render a streaming assistant entry: an optional collapsible thinking block
3
- * above the markdown-rendered answer text. Empty entries render nothing (a turn
4
- * that only produced tool calls has no assistant text).
5
- *
6
- * The role glyph and spacing belong to `EntryFrame` (§4.3) — including the
7
- * streaming spinner, which IS the role marker while text is arriving.
8
- *
9
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3):
10
- * every prop here is a scalar except `theme` and `caps`, both of which are
11
- * `useMemo`d in `App.tsx` and therefore referentially stable across frames
12
- * (I-L2-1, asserted by `render-memo.test.tsx`). If either ever becomes a fresh
13
- * object per render this boundary silently becomes a no-op — which is exactly
14
- * why that assertion exists rather than a comment.
15
- */
16
- import React from 'react';
17
- import type { Theme } from '../theme.js';
18
- import type { TermCapabilities } from '../capabilities.js';
19
- interface AssistantEntryProps {
20
- text: string;
21
- thinking?: string;
22
- thinkingOpen: boolean;
23
- thinkingVisible: boolean;
24
- streaming: boolean;
25
- aborted?: boolean;
26
- /**
27
- * Sealed reasoning time (§3.1.2). OMITTED WHEN UNKNOWN rather than printed as
28
- * `0s`: a session restored from a file written by an older build has none, and
29
- * `thought for 0s` is a lie where a bare `thought` is merely terse.
30
- */
31
- thinkingMs?: number;
32
- theme: Theme;
33
- caps: TermCapabilities;
34
- }
35
- declare function AssistantEntryImpl(props: AssistantEntryProps): React.ReactElement | null;
36
- export declare const AssistantEntry: React.MemoExoticComponent<typeof AssistantEntryImpl>;
37
- export {};
@@ -1,43 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * Render a streaming assistant entry: an optional collapsible thinking block
4
- * above the markdown-rendered answer text. Empty entries render nothing (a turn
5
- * that only produced tool calls has no assistant text).
6
- *
7
- * The role glyph and spacing belong to `EntryFrame` (§4.3) — including the
8
- * streaming spinner, which IS the role marker while text is arriving.
9
- *
10
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3):
11
- * every prop here is a scalar except `theme` and `caps`, both of which are
12
- * `useMemo`d in `App.tsx` and therefore referentially stable across frames
13
- * (I-L2-1, asserted by `render-memo.test.tsx`). If either ever becomes a fresh
14
- * object per render this boundary silently becomes a no-op — which is exactly
15
- * why that assertion exists rather than a comment.
16
- */
17
- import React from 'react';
18
- import { Box, Text } from 'ink';
19
- import { pickGlyphs } from '../glyphs.js';
20
- import { Markdown } from '../Markdown.js';
21
- import { splitLinesCached } from '../render-cache.js';
22
- import { clampLiveText } from '../live-clamp.js';
23
- import { formatDuration } from '../../agent/usage.js';
24
- function AssistantEntryImpl(props) {
25
- const { text, thinking, thinkingOpen, thinkingVisible, streaming, aborted, thinkingMs, theme, caps, } = props;
26
- const glyphs = pickGlyphs(caps);
27
- const hasThinking = !!thinking && thinking.trim().length > 0;
28
- const hasText = text.trim().length > 0;
29
- if (!hasThinking && !hasText && !streaming)
30
- return null;
31
- // The thinking block is clamped to its TAIL while streaming even in
32
- // full-screen mode: it is scratch reasoning the user reads the newest end of,
33
- // and an unbounded one is the single easiest way to push a live entry past the
34
- // whole viewport.
35
- const thinkingRows = streaming ? STREAMING_THINKING_ROWS : undefined;
36
- const clampedThinking = hasThinking && thinkingRows !== undefined
37
- ? clampLiveText(thinking, thinkingRows)
38
- : { text: thinking ?? '', hiddenRows: 0 };
39
- return (_jsxs(Box, { flexDirection: "column", children: [hasThinking && thinkingVisible && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { wrap: "truncate", color: theme.thinking, children: [glyphs.thinking, " thinking", thinkingOpen ? glyphs.ellipsis : ''] }), _jsxs(Box, { flexDirection: "column", marginLeft: 2, children: [clampedThinking.hiddenRows > 0 && (_jsxs(Text, { color: theme.muted, children: [glyphs.ellipsis, " ", clampedThinking.hiddenRows, " earlier", ' ', clampedThinking.hiddenRows === 1 ? 'line' : 'lines'] })), splitLinesCached(clampedThinking.text).map((line, i) => (_jsx(Text, { color: theme.thinking, dimColor: true, children: line }, i)))] })] })), hasThinking && !thinkingVisible && !streaming && (_jsxs(Text, { wrap: "truncate", color: theme.muted, children: [glyphs.thinking, " thought", thinkingMs !== undefined ? ` for ${formatDuration(thinkingMs)}` : '', ` ${glyphs.midDot} ctrl+t to show`] })), (hasText || streaming) && (_jsxs(Box, { flexDirection: "column", children: [hasText ? (_jsx(Markdown, { text: text, theme: theme, caps: caps })) : (_jsx(Text, { color: theme.muted, children: glyphs.ellipsis })), aborted && _jsx(Text, { color: theme.noticeWarn, children: "[aborted]" })] }))] }));
40
- }
41
- /** Rows of live thinking kept on screen while an answer streams. */
42
- const STREAMING_THINKING_ROWS = 24;
43
- export const AssistantEntry = React.memo(AssistantEntryImpl);
@@ -1,88 +0,0 @@
1
- /**
2
- * CompactionCard — one context compaction in the transcript
3
- * (context-auto-compaction §6.3).
4
- *
5
- * ASCII ONLY: every glyph comes from `pickGlyphs`, INCLUDING THE ARROW. The mock
6
- * in the design shows `112 -> 9 messages`; that arrow is `glyphs.arrowRight`, the
7
- * one `StatusBar` already uses, not a literal — `ui/` is inside
8
- * `glyphs.test.ts::inScope`, so a literal here fails the scan (P2-7).
9
- *
10
- * EXPANDABLE, UNLIKE `FastCard`. A critique is already clamped to
11
- * `fast.reviewMaxChars` before it reaches its card, so there is nothing hidden
12
- * for Ctrl+O to reveal; a summary is up to `summaryMaxChars` and there genuinely
13
- * is more to see. That is why `App`'s Ctrl+O predicate had to learn about this
14
- * kind — without it the card renders a hint that does nothing and expands an
15
- * older tool card instead (C-15 / P1-8 / AC-21).
16
- *
17
- * EVERY STRING DESCRIBES THE HISTORY, NEVER THE SCREEN (§6.4 / P2-9).
18
- * `/clear screen` empties the transcript view but not `messages`, so this card
19
- * can legitimately report a message count the visible rows do not add up to.
20
- * Nothing here says "above" or "earlier in this transcript". `/clear` itself is
21
- * the conversation boundary now: it drops the history and this card with it.
22
- */
23
- import React from 'react';
24
- import type { Theme } from '../theme.js';
25
- import type { TermCapabilities } from '../capabilities.js';
26
- import type { CompactionDecision, CompactionMode, CompactionPhase, CompactionUiTrigger } from '../../compaction/types.js';
27
- export interface CompactionCardProps {
28
- decision?: CompactionDecision;
29
- memoryVersion?: 2;
30
- index: number;
31
- trigger: CompactionUiTrigger;
32
- mode: CompactionMode;
33
- applied: boolean;
34
- reason?: string;
35
- messagesBefore: number;
36
- messagesAfter: number;
37
- tokensBefore: number;
38
- tokensAfter: number;
39
- summary?: string;
40
- model: string;
41
- durationMs?: number;
42
- /** The live card's stage, so "compacting" also says WHAT (never-fires C). */
43
- phase?: CompactionPhase;
44
- /** Set when this cut existed only because `keepRecentTurns` was relaxed (B). */
45
- keepRelaxed?: boolean;
46
- retainedTurns?: number;
47
- /** Messages the relaxed cut left verbatim, which is not the same as turns. */
48
- retainedMessages?: number;
49
- keepRecentTurnsUsed?: number;
50
- /** Messages the digest left out and therefore cannot be quoted (A1). */
51
- elidedMessages?: number;
52
- /**
53
- * Wall-clock since the card opened, LIVE ONLY
54
- * (context-auto-compaction-hardening §3.6 / W5).
55
- *
56
- * Rendered in the position `durationMs` occupies once settled, so the number
57
- * does not move when the card settles. Only the single live card receives it,
58
- * so exactly one memoized card re-renders per second.
59
- */
60
- elapsedMs?: number;
61
- /** Set when tail relief clipped the retained turns (W2). */
62
- tailRelief?: {
63
- messages: number;
64
- charsRemoved: number;
65
- };
66
- live: boolean;
67
- expanded?: boolean;
68
- reducedMotion?: boolean;
69
- theme: Theme;
70
- caps: TermCapabilities;
71
- }
72
- /**
73
- * The card's colour.
74
- *
75
- * `truncated` is a WARNING rather than the accent, because it is a real and
76
- * bounded data loss the user is entitled to notice; `applied: false` is an error
77
- * because the run is still at the occupancy that triggered it.
78
- */
79
- export declare function compactionCardColor(props: Pick<CompactionCardProps, 'live' | 'applied' | 'mode'>, theme: Theme): string | undefined;
80
- declare function CompactionCardImpl(props: CompactionCardProps): React.ReactElement;
81
- /**
82
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
83
- * `mapEntry` already preserves object identity for untouched entries, so the
84
- * props below are stable references on a settled card, and `theme` / `caps` are
85
- * `useMemo`d in `App.tsx` (I-L2-1).
86
- */
87
- export declare const CompactionCard: React.MemoExoticComponent<typeof CompactionCardImpl>;
88
- export {};