@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,96 +0,0 @@
1
- /**
2
- * Theme — palette + symbols used across the Ink component tree (spec §3.2).
3
- *
4
- * A real theming engine: distinct `WARM` / `COOL` / `LIGHT` hex palettes, an
5
- * `auto` resolution that is deterministic (`auto -> warm`, since terminals
6
- * cannot reliably report their background), color degradation across terminal
7
- * depth (truecolor -> 256 -> 16 -> monochrome), and an ASCII symbol swap for
8
- * terminals without Unicode support.
9
- *
10
- * Two things used to live here and no longer do (spec §4.1 / §4.5):
11
- * - the three symbol tables moved to `glyphs.ts`, which is now the single
12
- * source of truth for every user-visible character. `symbols` is a VIEW of
13
- * `pickGlyphs(caps)`, so every existing `theme.symbols.x` consumer is
14
- * unchanged;
15
- * - the palette data moved to `palettes.ts`.
16
- */
17
- import type { ThemeName } from '../config/schema.js';
18
- import type { TermCapabilities } from './capabilities.js';
19
- import { type Glyphs } from './glyphs.js';
20
- /** A resolved color: a hex/name string, or `undefined` (Ink renders plain). */
21
- type Color = string | undefined;
22
- /**
23
- * Retained name for the symbol view on `Theme`. It is exactly `Glyphs`: the
24
- * split is by ownership (glyphs.ts owns the data), not by shape.
25
- */
26
- export type ThemeSymbols = Glyphs;
27
- export interface Theme {
28
- name: ThemeName;
29
- symbols: ThemeSymbols;
30
- primary: Color;
31
- accent: Color;
32
- user: Color;
33
- assistant: Color;
34
- thinking: Color;
35
- toolPending: Color;
36
- toolRunning: Color;
37
- toolDone: Color;
38
- toolError: Color;
39
- noticeInfo: Color;
40
- noticeWarn: Color;
41
- noticeError: Color;
42
- muted: Color;
43
- border: Color;
44
- code: Color;
45
- /** Composer border while the input holds a draft. */
46
- focusBorder: Color;
47
- /** Composer border while idle and empty (matches the legacy `border`). */
48
- idleBorder: Color;
49
- /** Hint lines, collapse notices, and the off-bottom indicator. */
50
- hintFg: Color;
51
- /** Single-color wordmark fallback below ansi-256. */
52
- logoShadow: Color;
53
- /**
54
- * Drag-selection highlight (tui-selection-and-scroll-follow §4.4.4).
55
- *
56
- * Degraded like every other colour here, which means that below ansi-256 these
57
- * are chalk colour NAMES rather than hex triples. `highlight.ts` tests for a
58
- * hex shape and falls back to plain reverse video otherwise — the fallback a
59
- * terminal that shallow would render anyway, and what the emulator's own
60
- * selection looks like.
61
- */
62
- selectionBg: Color;
63
- selectionFg: Color;
64
- gradient: string[];
65
- gauge: {
66
- track: Color;
67
- low: Color;
68
- mid: Color;
69
- high: Color;
70
- };
71
- diff: {
72
- add: Color;
73
- remove: Color;
74
- meta: Color;
75
- context: Color;
76
- };
77
- toast: {
78
- info: Color;
79
- warn: Color;
80
- error: Color;
81
- success: Color;
82
- };
83
- chip: {
84
- fg: Color;
85
- bg: Color;
86
- };
87
- /**
88
- * The GOVERN posture colour (governance-mode section 10.7). Hex above ansi-256 and
89
- * `undefined` at level 0 like every other token, but PINNED to `magenta` at 16 colours
90
- * instead of the nearest-ANSI search: that search lands COOL's teal on cyan, which is
91
- * `user`'s colour, and the badge exists to be unmistakable.
92
- */
93
- governAccent: Color;
94
- }
95
- export declare function getTheme(name: ThemeName, caps: TermCapabilities): Theme;
96
- export {};
package/dist/ui/theme.js DELETED
@@ -1,130 +0,0 @@
1
- /**
2
- * Theme — palette + symbols used across the Ink component tree (spec §3.2).
3
- *
4
- * A real theming engine: distinct `WARM` / `COOL` / `LIGHT` hex palettes, an
5
- * `auto` resolution that is deterministic (`auto -> warm`, since terminals
6
- * cannot reliably report their background), color degradation across terminal
7
- * depth (truecolor -> 256 -> 16 -> monochrome), and an ASCII symbol swap for
8
- * terminals without Unicode support.
9
- *
10
- * Two things used to live here and no longer do (spec §4.1 / §4.5):
11
- * - the three symbol tables moved to `glyphs.ts`, which is now the single
12
- * source of truth for every user-visible character. `symbols` is a VIEW of
13
- * `pickGlyphs(caps)`, so every existing `theme.symbols.x` consumer is
14
- * unchanged;
15
- * - the palette data moved to `palettes.ts`.
16
- */
17
- import { pickGlyphs } from './glyphs.js';
18
- import { resolvePalette } from './palettes.js';
19
- // ---------------------------------------------------------------------------
20
- // Color degradation (truecolor -> 256 -> 16 -> monochrome)
21
- // ---------------------------------------------------------------------------
22
- /** The 16 standard ANSI colours as chalk names + representative RGB. */
23
- const ANSI16 = [
24
- ['black', [0, 0, 0]],
25
- ['red', [205, 49, 49]],
26
- ['green', [13, 188, 121]],
27
- ['yellow', [229, 229, 16]],
28
- ['blue', [36, 114, 200]],
29
- ['magenta', [188, 63, 188]],
30
- ['cyan', [17, 168, 205]],
31
- ['white', [229, 229, 229]],
32
- ['gray', [102, 102, 102]],
33
- ['redBright', [241, 76, 76]],
34
- ['greenBright', [35, 209, 139]],
35
- ['yellowBright', [245, 245, 67]],
36
- ['blueBright', [59, 142, 234]],
37
- ['magentaBright', [214, 112, 214]],
38
- ['cyanBright', [41, 184, 219]],
39
- ['whiteBright', [255, 255, 255]],
40
- ];
41
- function hexToRgb(hex) {
42
- let h = hex.replace('#', '').trim();
43
- if (h.length === 3)
44
- h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];
45
- const n = Number.parseInt(h, 16);
46
- return [(n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff];
47
- }
48
- /** Nearest of the 16 ANSI colours (chalk name) to an arbitrary hex. */
49
- function nearestAnsi16(hex) {
50
- const [r, g, b] = hexToRgb(hex);
51
- let best = ANSI16[0][0];
52
- let bestDist = Infinity;
53
- for (const [name, [cr, cg, cb]] of ANSI16) {
54
- const d = (r - cr) ** 2 + (g - cg) ** 2 + (b - cb) ** 2;
55
- if (d < bestDist) {
56
- bestDist = d;
57
- best = name;
58
- }
59
- }
60
- return best;
61
- }
62
- /** Degrade a hex colour to the terminal's depth; `undefined` at level 0. */
63
- function degrade(hex, level) {
64
- if (level === 0)
65
- return undefined;
66
- if (level === 1)
67
- return nearestAnsi16(hex);
68
- return hex; // level 2/3: Ink/chalk downsamples the hex as needed
69
- }
70
- // ---------------------------------------------------------------------------
71
- // getTheme (memoized)
72
- // ---------------------------------------------------------------------------
73
- const cache = new Map();
74
- export function getTheme(name, caps) {
75
- const key = `${name}|${caps.colorLevel}|${caps.unicode}`;
76
- const hit = cache.get(key);
77
- if (hit)
78
- return hit;
79
- const palette = resolvePalette(name);
80
- const level = caps.colorLevel;
81
- const d = (hex) => degrade(hex, level);
82
- const theme = {
83
- name,
84
- symbols: pickGlyphs(caps),
85
- primary: d(palette.primary),
86
- accent: d(palette.accent),
87
- user: d(palette.user),
88
- assistant: d(palette.assistant),
89
- thinking: d(palette.thinking),
90
- toolPending: d(palette.toolPending),
91
- toolRunning: d(palette.toolRunning),
92
- toolDone: d(palette.toolDone),
93
- toolError: d(palette.toolError),
94
- noticeInfo: d(palette.noticeInfo),
95
- noticeWarn: d(palette.noticeWarn),
96
- noticeError: d(palette.noticeError),
97
- muted: d(palette.muted),
98
- border: d(palette.border),
99
- code: d(palette.code),
100
- focusBorder: d(palette.focusBorder),
101
- idleBorder: d(palette.idleBorder),
102
- hintFg: d(palette.hintFg),
103
- logoShadow: d(palette.logoShadow),
104
- selectionBg: d(palette.selectionBg),
105
- selectionFg: d(palette.selectionFg),
106
- gradient: level >= 2 ? [...palette.gradient] : [],
107
- gauge: {
108
- track: d(palette.gauge.track),
109
- low: d(palette.gauge.low),
110
- mid: d(palette.gauge.mid),
111
- high: d(palette.gauge.high),
112
- },
113
- diff: {
114
- add: d(palette.diff.add),
115
- remove: d(palette.diff.remove),
116
- meta: d(palette.diff.meta),
117
- context: d(palette.diff.context),
118
- },
119
- toast: {
120
- info: d(palette.toast.info),
121
- warn: d(palette.toast.warn),
122
- error: d(palette.toast.error),
123
- success: d(palette.toast.success),
124
- },
125
- chip: { fg: d(palette.chip.fg), bg: d(palette.chip.bg) },
126
- governAccent: level === 1 ? 'magenta' : d(palette.governAccent),
127
- };
128
- cache.set(key, theme);
129
- return theme;
130
- }
@@ -1,41 +0,0 @@
1
- import type { Entry, UsageTotal } from '../agent/reducer.js';
2
- import type { Glyphs } from './glyphs.js';
3
- export interface TranscriptTextOptions {
4
- /**
5
- * Glyph set for the terminal being replayed into. The exit replay lands in
6
- * the SAME terminal the TUI just left, so it degrades by the same rule; it
7
- * used to spell 11 Unicode literals of its own and wrote mojibake straight
8
- * into the user's normal buffer on a legacy console.
9
- */
10
- glyphs: Glyphs;
11
- usageTotal: UsageTotal;
12
- model: string;
13
- provider: string;
14
- elapsedMs: number;
15
- /** Entries beyond this count collapse into a single "… N omitted" line. */
16
- maxEntries?: number;
17
- /**
18
- * Entries the retain ring already removed from `ViewState`
19
- * (tui-render-performance L1 / K-6).
20
- *
21
- * A DIFFERENT LOSS FROM `maxEntries`, and both have to be reported: that one
22
- * omits the middle of a transcript this replay still holds in full, while this
23
- * one names entries the process no longer has. A replay that silently starts
24
- * mid-session is exactly the failure the retain ring would otherwise
25
- * introduce.
26
- */
27
- droppedEntries?: number;
28
- }
29
- /**
30
- * The three figures every session summary carries: turns, tokens, cost.
31
- *
32
- * One implementation for the exit replay and the native-scroll exit summary
33
- * (tui-native-terminal-scroll §4.8), so the two can never disagree.
34
- */
35
- export declare function formatSessionStats(entries: readonly Entry[], usageTotal: UsageTotal, g: Pick<Glyphs, 'arrowUp' | 'arrowDown'>): {
36
- turns: string;
37
- tokens: string;
38
- cost: string;
39
- };
40
- /** Render the whole session (summary line + entries) as plain text. */
41
- export declare function renderTranscriptText(entries: Entry[], opts: TranscriptTextOptions): string;
@@ -1,282 +0,0 @@
1
- import { formatCost, formatDuration, formatTokens, promptTokensOf } from '../agent/usage.js';
2
- import { formatRetryLine } from '../agent/retry-view.js';
3
- import { childStatus, outcomePhrase, rosterCounts, statusMarkerCell } from './team-status.js';
4
- import { expandTabs } from './display-tab.js';
5
- import { governanceCardLines } from './layout/governance-card.js';
6
- import { invocationCardLines } from './layout/invocation-card.js';
7
- const DEFAULT_MAX_ENTRIES = 200;
8
- const CONTINUATION_INDENT = ' ';
9
- const TOOL_INDENT = ' ';
10
- const MAX_ARG_CHARS = 60;
11
- /**
12
- * Prefix the first line with `marker`, indent the rest to line up under it.
13
- *
14
- * `expandTabs` RUNS BEFORE THE PREFIX IS ADDED, so a stored line lands on the
15
- * same columns the TUI drew it at. Without it this replay -- the only record
16
- * left once the alternate screen is torn down -- disagreed with the screen
17
- * about every TAB, because the terminal painted an eight-column stop under text
18
- * the composer had laid out at four.
19
- */
20
- function block(marker, text) {
21
- const lines = expandTabs(text.replace(/\r\n/g, '\n')).split('\n');
22
- const head = `${marker} ${lines[0] ?? ''}`.trimEnd();
23
- const rest = lines.slice(1).map((l) => `${CONTINUATION_INDENT}${l}`.trimEnd());
24
- return [head, ...rest];
25
- }
26
- /** A short, single-line rendering of the tool's arguments. */
27
- function argSummary(entry, glyphs) {
28
- const source = entry.args ?? safeParse(entry.argsRaw);
29
- if (!source)
30
- return '';
31
- const parts = [];
32
- for (const value of Object.values(source)) {
33
- if (typeof value === 'string')
34
- parts.push(value);
35
- else if (typeof value === 'number' || typeof value === 'boolean')
36
- parts.push(String(value));
37
- if (parts.length >= 2)
38
- break;
39
- }
40
- const joined = parts.join(' ').replace(/\s+/g, ' ').trim();
41
- if (joined.length === 0)
42
- return '';
43
- return joined.length > MAX_ARG_CHARS
44
- ? `${joined.slice(0, MAX_ARG_CHARS - 1)}${glyphs.ellipsis}`
45
- : joined;
46
- }
47
- function safeParse(raw) {
48
- if (!raw || raw.trim().length === 0)
49
- return null;
50
- try {
51
- const parsed = JSON.parse(raw);
52
- return parsed && typeof parsed === 'object' ? parsed : null;
53
- }
54
- catch {
55
- return null;
56
- }
57
- }
58
- /**
59
- * The replay's glyph for a service, MIRRORING `ServiceCard::serviceGlyph`.
60
- *
61
- * The two ladders have to agree, and the cheap-looking shortcut here — "ready or
62
- * running is a tick, everything else is an error" — disagrees on the two states
63
- * a user reaches ON PURPOSE: a service they stopped with `Ctrl+C`, and one that
64
- * exited cleanly. Marking either as a failure in the record the user is left
65
- * with after the alternate screen is torn down is a lie about their own action.
66
- *
67
- * Duplicated rather than imported, as every other case in this file duplicates
68
- * its card's ladder: this module is deliberately free of React and ink, and
69
- * `serviceGlyph` lives in a `.tsx`.
70
- */
71
- function serviceTextGlyph(status, exitCode, glyphs) {
72
- switch (status) {
73
- case 'ready':
74
- return glyphs.toolDone;
75
- case 'running':
76
- return glyphs.toolRunning;
77
- case 'starting':
78
- case 'stopped':
79
- return glyphs.toolPending;
80
- case 'exited':
81
- return exitCode === 0 ? glyphs.toolDone : glyphs.toolError;
82
- default:
83
- return glyphs.toolError;
84
- }
85
- }
86
- function renderEntry(entry, glyphs) {
87
- switch (entry.kind) {
88
- case 'queued':
89
- return block('Queued but never sent:', entry.text);
90
- case 'user':
91
- return entry.invocation
92
- ? [...block(glyphs.user, entry.text), ...invocationCardLines(entry.invocation)]
93
- : block(glyphs.user, entry.text);
94
- case 'assistant': {
95
- const suffix = entry.aborted ? ' (aborted)' : '';
96
- return block(glyphs.assistant, `${entry.text}${suffix}`);
97
- }
98
- case 'tool': {
99
- const glyph = entry.isError || entry.status === 'error' ? glyphs.toolError : glyphs.toolDone;
100
- const args = argSummary(entry, glyphs);
101
- const duration = entry.durationMs === undefined ? '' : ` (${entry.durationMs}ms)`;
102
- return [`${TOOL_INDENT}${glyph} ${entry.label || entry.name}${args ? ` ${args}` : ''}${duration}`];
103
- }
104
- case 'team': {
105
- // Same rows as `TeamCard`, without colour (team-subagents §6.3). A
106
- // dispatch is often the most expensive thing in a session, so leaving it
107
- // out of the plain-text replay would make the exported transcript
108
- // unaccountable for most of its own cost.
109
- // ONE COUNTING AUTHORITY (`team-status.ts`), so the replay cannot disagree with
110
- // the card it replays: `runs.length - ok` counted a cancelled child as a failed
111
- // one, and a still-working one as a failure (tui-subagent-double-roster E3/E8).
112
- // A cancellation therefore gets its own bucket instead of inflating `failed`.
113
- const counts = rosterCounts(entry.runs);
114
- const head = entry.active || (entry.aborted && entry.durationMs === undefined)
115
- ? 'interrupted'
116
- : `${entry.durationMs ?? 0}ms (${outcomePhrase(counts)})`;
117
- const lines = [
118
- `${TOOL_INDENT}team ${entry.runs.length} subagents ${head}`,
119
- ...entry.runs.map((run) => {
120
- // The same five-state judgement the card uses: only a real failure takes
121
- // the cross, a cancelled child takes the warning and a running one the
122
- // running marker. `statusMarkerCell`, NOT the bare glyph: the ASCII tier
123
- // spells `[ok]`, `[x]` and `!` at three widths, and a replay whose label
124
- // column shifts from row to row is unreadable.
125
- const glyph = statusMarkerCell(childStatus(run), glyphs);
126
- const detail = run.error ? ` ${run.error}` : '';
127
- return `${TOOL_INDENT}${CONTINUATION_INDENT}${glyph} ${run.label} ${run.description}${detail}`;
128
- }),
129
- ];
130
- return lines;
131
- }
132
- case 'retry': {
133
- // A turn that spent three minutes retrying is exactly the kind of cost an
134
- // exported transcript is supposed to account for — the same argument the
135
- // `team` case above makes in its own words. This file's `default: return []`
136
- // means the addition is a CHOICE rather than a compile requirement, and it is
137
- // worth making: without it a replay of a session that lost two minutes to a
138
- // 529 shows a gap and no reason for it.
139
- const glyph = entry.phase === 'exhausted' ? glyphs.error : glyphs.retry;
140
- return [
141
- `${TOOL_INDENT}${glyph} ${formatRetryLine(entry, glyphs, Date.now())}`,
142
- ];
143
- }
144
- case 'fast': {
145
- // Reviews are real spend and real advice, and an exported transcript that
146
- // omitted them would be unaccountable for both — the argument the `team`
147
- // and `retry` cases above each make in their own words.
148
- const glyph = entry.status === 'failed' ? glyphs.toolError : glyphs.toolDone;
149
- const duration = entry.durationMs === undefined ? '' : ` (${entry.durationMs}ms)`;
150
- const head = `${TOOL_INDENT}${glyph} fast review #${entry.reviewIndex} ${entry.model} ` +
151
- `turn ${entry.turn}${duration}`;
152
- if (entry.status === 'advice' && entry.text) {
153
- return [head, ...entry.text.split('\n').map((l) => `${TOOL_INDENT}${CONTINUATION_INDENT}${l}`)];
154
- }
155
- const detail = entry.detail ? `: ${entry.detail}` : '';
156
- return [`${head} ${entry.status}${detail}`];
157
- }
158
- case 'compaction': {
159
- // A compaction is real spend AND a real, permanent loss of history, and an
160
- // exported transcript that omitted it would be unaccountable for both —
161
- // the argument the `team`, `retry` and `fast` cases above each make in
162
- // their own words. It matters most here: this is the one entry kind whose
163
- // presence explains why the messages the reader is looking for are gone.
164
- const glyph = entry.applied ? glyphs.compaction : glyphs.toolError;
165
- const duration = entry.durationMs === undefined ? '' : ` (${entry.durationMs}ms)`;
166
- if (!entry.applied) {
167
- const why = entry.reason ? `: ${entry.reason}` : '';
168
- return [`${TOOL_INDENT}${glyph} context not compacted #${entry.index}${why}`];
169
- }
170
- const head = `${TOOL_INDENT}${glyph} context compacted #${entry.index} ` +
171
- `${entry.messagesBefore} ${glyphs.arrowRight} ${entry.messagesAfter} messages, ` +
172
- `${entry.tokensBefore} ${glyphs.arrowRight} ${entry.tokensAfter} tokens ` +
173
- `[${entry.mode}] ${entry.model}${duration}`;
174
- if (!entry.summary)
175
- return [head];
176
- return [
177
- head,
178
- ...entry.summary.split('\n').map((l) => `${TOOL_INDENT}${CONTINUATION_INDENT}${l}`),
179
- ];
180
- }
181
- case 'service': {
182
- // A service the agent started is real work with a real outcome, and an
183
- // exported transcript that omitted it would be unaccountable for both —
184
- // the argument the `team`, `retry`, `fast` and `compaction` cases above
185
- // each make in their own words. It matters more here than for any of them:
186
- // this replay is the user's ONLY record once the alternate screen is torn
187
- // down (`cli.tsx`'s exit snapshot), and a service card dropped from it
188
- // takes the URL the agent reported with it. This file's
189
- // `default: return []` means the addition is a CHOICE rather than a
190
- // compile requirement, which is exactly why it is easy to leave out
191
- // (P0-3).
192
- const glyph = serviceTextGlyph(entry.status, entry.exitCode, glyphs);
193
- const where = entry.url ? ` ${entry.url}` : '';
194
- const code = entry.exitCode === null || entry.exitCode === undefined
195
- ? ''
196
- : ` (exit code ${entry.exitCode})`;
197
- return [
198
- `${TOOL_INDENT}${glyph} service ${entry.serviceId} ${entry.command} ` +
199
- `${entry.status}${where}${code}`.trimEnd(),
200
- ];
201
- }
202
- case 'governance': {
203
- // A settlement card is the record of what a governed run decided and scored; an
204
- // exported transcript that omitted it would be unaccountable for the run (the
205
- // argument the `team`, `retry` and `fast` cases make in their own words). Same
206
- // lines as the card, without colour.
207
- const lines = governanceCardLines(entry.card, glyphs);
208
- return lines.map((line, index) => `${TOOL_INDENT}${index === 0 ? glyphs.teamAgent : ' '} ${line}`.trimEnd());
209
- }
210
- case 'notice': {
211
- const glyph = entry.level === 'error'
212
- ? glyphs.error
213
- : entry.level === 'warn'
214
- ? glyphs.warn
215
- : glyphs.info;
216
- return block(`${TOOL_INDENT}${glyph}`, entry.text);
217
- }
218
- default:
219
- return [];
220
- }
221
- }
222
- /**
223
- * The three figures every session summary carries: turns, tokens, cost.
224
- *
225
- * One implementation for the exit replay and the native-scroll exit summary
226
- * (tui-native-terminal-scroll §4.8), so the two can never disagree.
227
- */
228
- export function formatSessionStats(entries, usageTotal, g) {
229
- const turns = entries.filter((e) => e.kind === 'user').length;
230
- // THE SAME PROMPT-SIDE TOTAL THE STATUS BAR SHOWS (context-usage-gauge-accuracy
231
- // §3.6). This line is what a user compares against the bar they were watching a
232
- // second earlier, so a different unit here would look like the exit summary
233
- // losing tokens.
234
- const tokens = `${formatTokens(promptTokensOf(usageTotal))}${g.arrowUp} ${formatTokens(usageTotal.outputTokens)}${g.arrowDown}`;
235
- return {
236
- turns: `${turns} ${turns === 1 ? 'turn' : 'turns'}`,
237
- tokens,
238
- cost: formatCost(usageTotal.costUsd),
239
- };
240
- }
241
- /** Render the whole session (summary line + entries) as plain text. */
242
- export function renderTranscriptText(entries, opts) {
243
- const g = opts.glyphs;
244
- const stats = formatSessionStats(entries, opts.usageTotal, g);
245
- const summary = [
246
- 'aragon',
247
- `${opts.provider}:${opts.model}`,
248
- stats.turns,
249
- stats.tokens,
250
- stats.cost,
251
- formatDuration(Math.max(0, opts.elapsedMs)),
252
- ].join(` ${g.midDot} `);
253
- const max = opts.maxEntries ?? DEFAULT_MAX_ENTRIES;
254
- const lines = [summary];
255
- const dropped = opts.droppedEntries ?? 0;
256
- if (dropped > 0) {
257
- lines.push(`${g.ellipsis} ${dropped} earlier ${dropped === 1 ? 'entry' : 'entries'} dropped by ` +
258
- `transcriptRetain ${g.midDot} raise it or /save sooner`);
259
- }
260
- const historyCount = entries.filter((entry) => entry.kind !== 'queued').length;
261
- const omitted = max > 1 ? Math.max(0, historyCount - max) : 0;
262
- const head = Math.ceil(max / 2);
263
- const tailStart = historyCount - (max - head);
264
- let historyIndex = 0;
265
- let reported = false;
266
- for (const entry of entries) {
267
- if (entry.kind === 'queued') {
268
- lines.push(...renderEntry(entry, g));
269
- continue;
270
- }
271
- const index = historyIndex++;
272
- if (omitted > 0 && index >= head && index < tailStart) {
273
- if (!reported) {
274
- lines.push(`${g.ellipsis} ${omitted} entries omitted ${g.midDot} use /save before exiting`);
275
- reported = true;
276
- }
277
- continue;
278
- }
279
- lines.push(...renderEntry(entry, g));
280
- }
281
- return `${lines.join('\n')}\n`;
282
- }
@@ -1,31 +0,0 @@
1
- /**
2
- * The transcript height cache (tui-render-performance L3).
3
- *
4
- * Virtualisation needs a height for entries it is NOT mounting. Measured
5
- * heights are authoritative; entries that have never been on screen fall back to
6
- * `estimateEntryRows`, and both are memoised on the same `heightKey` so a
7
- * `cols` change or a content change invalidates them together (V-5).
8
- *
9
- * THE MAP LIVES IN A REF, NOT IN STATE, and the version counter is bumped at
10
- * most once per frame through a microtask and ONLY when a value actually
11
- * changed. K-2 is the failure this shape exists to prevent: a naive
12
- * measure -> setState -> re-measure store never converges, and the symptom is a
13
- * hung terminal rather than an error. In steady state — settled entries at a
14
- * fixed width — this produces zero extra renders.
15
- */
16
- import { type HeightKey } from './layout/virtual-window.js';
17
- export interface HeightStoreStats {
18
- measured: number;
19
- estimated: number;
20
- }
21
- export interface HeightStore {
22
- /** Bumped at most once per frame, and only when a measurement changed. */
23
- version: number;
24
- /** Measured rows, else the memoised estimate, computing it once if needed. */
25
- resolve: (key: HeightKey, estimate: () => number) => number;
26
- /** Called from `MeasuredEntry`'s layout effect. Idempotent per (key, value). */
27
- report: (key: HeightKey, rows: number) => void;
28
- stats: () => HeightStoreStats;
29
- clear: () => void;
30
- }
31
- export declare function useHeightStore(): HeightStore;
@@ -1,76 +0,0 @@
1
- /**
2
- * The transcript height cache (tui-render-performance L3).
3
- *
4
- * Virtualisation needs a height for entries it is NOT mounting. Measured
5
- * heights are authoritative; entries that have never been on screen fall back to
6
- * `estimateEntryRows`, and both are memoised on the same `heightKey` so a
7
- * `cols` change or a content change invalidates them together (V-5).
8
- *
9
- * THE MAP LIVES IN A REF, NOT IN STATE, and the version counter is bumped at
10
- * most once per frame through a microtask and ONLY when a value actually
11
- * changed. K-2 is the failure this shape exists to prevent: a naive
12
- * measure -> setState -> re-measure store never converges, and the symptom is a
13
- * hung terminal rather than an error. In steady state — settled entries at a
14
- * fixed width — this produces zero extra renders.
15
- */
16
- import { useCallback, useEffect, useRef, useState } from 'react';
17
- import { VIRTUAL_LIMITS } from './layout/virtual-window.js';
18
- /** Drop the oldest keys once a map passes the ceiling (insertion-ordered LRU). */
19
- function trim(map) {
20
- while (map.size > VIRTUAL_LIMITS.heightEntries) {
21
- const oldest = map.keys().next();
22
- if (oldest.done)
23
- break;
24
- map.delete(oldest.value);
25
- }
26
- }
27
- export function useHeightStore() {
28
- const measured = useRef(new Map());
29
- const estimated = useRef(new Map());
30
- const [version, setVersion] = useState(0);
31
- const scheduled = useRef(false);
32
- const mounted = useRef(true);
33
- useEffect(() => () => {
34
- mounted.current = false;
35
- }, []);
36
- const report = useCallback((key, rows) => {
37
- const value = Number.isFinite(rows) && rows > 0 ? Math.floor(rows) : 0;
38
- if (value <= 0)
39
- return;
40
- if (measured.current.get(key) === value)
41
- return;
42
- measured.current.set(key, value);
43
- trim(measured.current);
44
- // An estimate that has been superseded is dead weight; dropping it here is
45
- // what keeps `stats()` honest for `/perf`.
46
- estimated.current.delete(key);
47
- if (scheduled.current)
48
- return;
49
- scheduled.current = true;
50
- queueMicrotask(() => {
51
- scheduled.current = false;
52
- if (mounted.current)
53
- setVersion((v) => v + 1);
54
- });
55
- }, []);
56
- const resolve = useCallback((key, estimate) => {
57
- const hit = measured.current.get(key);
58
- if (hit !== undefined)
59
- return hit;
60
- const cached = estimated.current.get(key);
61
- if (cached !== undefined)
62
- return cached;
63
- const value = Math.max(1, Math.floor(estimate()));
64
- estimated.current.set(key, value);
65
- trim(estimated.current);
66
- return value;
67
- }, []);
68
- const stats = useCallback(() => ({ measured: measured.current.size, estimated: estimated.current.size }), []);
69
- const clear = useCallback(() => {
70
- measured.current.clear();
71
- estimated.current.clear();
72
- if (mounted.current)
73
- setVersion((v) => v + 1);
74
- }, []);
75
- return { version, resolve, report, stats, clear };
76
- }