@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,321 +0,0 @@
1
- /**
2
- * The shortcut drawer's geometry and row layout
3
- * (tui-shortcut-drawer-and-task-summary §4.5).
4
- *
5
- * ASCII ONLY: `src/ui/**` is inside the glyph scanner's scope, so every symbol
6
- * this module emits arrives as a `glyphs` field and is never spelled here.
7
- *
8
- * PURE AND TOTAL. No Ink, no clock, no terminal: the drawer component renders
9
- * what this returns, `OverlayFrame` slices the window this function DERIVED, and
10
- * `shortcut-panel-layout.test.ts` pins the arithmetic directly. That split is the
11
- * whole defence against P0-1, which was not a rendering bug: v1 hand-fixed the key
12
- * column at 21 cells, which left six cells for the keyword at 80 columns, so every
13
- * keyword was truncated to `promp...` while a "does not overflow" assertion stayed
14
- * green. The column is therefore DERIVED from the table, and a keyword that does
15
- * not fit makes its row STACK rather than be cut.
16
- *
17
- * THERE IS EXACTLY ONE WINDOW AUTHORITY: `cursor`. v1 took both `cursor` and
18
- * `scrollOffset`, which meant paging could leave the selected row - and the detail
19
- * line that belongs to it - off screen. Paging now moves the CURSOR by a page and
20
- * the window is the smallest one containing it.
21
- */
22
- import stringWidth from 'string-width';
23
- import { fitCells, padCells, wrapCells } from './cells.js';
24
- import { sliceWindow } from './overlay-window.js';
25
- import { SHORTCUT_GROUPS, widestKeysCells } from '../shortcuts.js';
26
- export const SHORTCUT_PANEL_LIMITS = {
27
- /** Below this the drawer is full width: a 30-cell bar on a 40-cell screen is noise. */
28
- minSplitCols: 64,
29
- /** Fraction of the terminal the drawer takes when it IS a drawer. */
30
- widthFraction: 0.34,
31
- minWidth: 30,
32
- maxWidth: 46,
33
- /** Rail (1 cell) + `paddingLeft` (1 cell) that `OverlayFrame` spends below 48 columns. */
34
- railCells: 2,
35
- /** Border (2 cells) + `paddingX` (2 cells) that `OverlayFrame` spends at or above 48. */
36
- boxCells: 4,
37
- /**
38
- * The key column is DERIVED: `min(longestKeys, ceil(listCells * 0.55))`.
39
- *
40
- * A hard 21 is what turned `prompt library` into `promp...` at 80 columns. The
41
- * share is a ceiling, not a target: a table of short keys gets a narrow key
42
- * column and the leftover width goes to the keyword.
43
- */
44
- keyColumnShare: 0.55,
45
- /** The keyword column must be at least this wide, or the row stacks. */
46
- keywordMinCells: 8,
47
- /** Hard ceiling for a keyword string; a longer one is a spec bug, not a width problem. */
48
- keywordMaxCells: 10,
49
- /** Gap between the key column and the keyword column. */
50
- keyGapCells: 1,
51
- /** Indent for the selected row's detail lines, and for a stacked keyword. */
52
- detailIndent: 2,
53
- /** Title + footer rows are chrome and are spent out of the row budget. */
54
- chromeRows: 2,
55
- /** The task section is capped so the key list always gets the majority of the panel. */
56
- taskMaxRows: 2,
57
- /**
58
- * ABOVE THIS BODY HEIGHT THE GROUP HEADERS GET THEIR OWN ROWS.
59
- *
60
- * Below it they are dropped entirely - not compressed into `---- GROUP ----`
61
- * separators, which was v2's rule and left FOUR entry rows visible on an
62
- * 80x24 terminal (title + task + rule + five separators = 9 of 13 body rows).
63
- * See `spec.md`'s `## 实施过程发现的方案缺陷` note 1: the ordering still runs
64
- * COMPOSE -> RUN -> PANELS -> SESSION -> VIEW, and the requirement ("list every
65
- * shortcut from top to bottom") is met by the entries themselves.
66
- */
67
- groupHeaderMinRows: 18,
68
- /** The longest detail line the selected row may grow to. */
69
- detailMaxRows: 2,
70
- };
71
- /**
72
- * The drawer's width in columns.
73
- *
74
- * `cols < 64` is FULL WIDTH on purpose: at 40 columns a right-aligned 30-cell bar
75
- * spends 10 of the user's columns on empty space. The clamp mirrors
76
- * `rail.ts::todoRailWidth` (same shape, same reason).
77
- */
78
- export function shortcutPanelWidth(cols) {
79
- const width = Number.isFinite(cols) ? Math.floor(cols) : 80;
80
- const safe = Math.max(0, width);
81
- if (safe < SHORTCUT_PANEL_LIMITS.minSplitCols)
82
- return safe;
83
- const fraction = Math.round(safe * SHORTCUT_PANEL_LIMITS.widthFraction);
84
- return Math.min(SHORTCUT_PANEL_LIMITS.maxWidth, Math.max(SHORTCUT_PANEL_LIMITS.minWidth, fraction));
85
- }
86
- /**
87
- * Cells the drawer may draw on INSIDE its frame.
88
- *
89
- * THE FORM IS DECIDED BY THE TERMINAL, exactly as `OverlayFrame` decides it
90
- * (`cols >= BORDERLESS_COLS`), so this function takes the same `cols` the frame
91
- * receives. Passing the panel's own width instead would make a 46-cell drawer on
92
- * a 200-column terminal fall back to the rail form for ever, because 46 < 48.
93
- */
94
- export function shortcutPanelContentCells(cols) {
95
- const width = shortcutPanelWidth(cols);
96
- const chrome = Math.max(0, Math.floor(cols)) >= 48
97
- ? SHORTCUT_PANEL_LIMITS.boxCells
98
- : SHORTCUT_PANEL_LIMITS.railCells;
99
- return Math.max(0, width - chrome);
100
- }
101
- /**
102
- * Derive the two columns (P0-1).
103
- *
104
- * `stacked` is a GLOBAL flag only when the keyword column is too narrow for any
105
- * keyword at all; otherwise stacking is decided per row, so one long binding
106
- * (`Shift+Up / Shift+Down`, 20 cells) does not cost the other thirty rows a line.
107
- */
108
- export function shortcutColumns(cols, entries, glyphs) {
109
- const width = shortcutPanelWidth(cols);
110
- const available = shortcutPanelContentCells(cols);
111
- // The cursor glyph owns one cell on the selected row, so it comes out of the
112
- // LIST's budget rather than out of the keyword's.
113
- const cursorCells = stringWidth(glyphs.cursor) > 0 ? 1 : 0;
114
- const listCells = Math.max(0, available - cursorCells);
115
- const longest = widestKeysCells(entries);
116
- const share = Math.ceil(listCells * SHORTCUT_PANEL_LIMITS.keyColumnShare);
117
- const keyCells = Math.min(longest, Math.max(0, share));
118
- const keywordCells = Math.max(0, listCells - keyCells - SHORTCUT_PANEL_LIMITS.keyGapCells);
119
- return {
120
- width,
121
- available,
122
- listCells,
123
- keyCells,
124
- keywordCells,
125
- stacked: keywordCells < SHORTCUT_PANEL_LIMITS.keywordMinCells,
126
- };
127
- }
128
- /** `12s ago` / `3m ago` / `1h ago`, without introducing a second clock. */
129
- function ageLabel(ageMs) {
130
- if (ageMs === null || !Number.isFinite(ageMs) || ageMs < 0)
131
- return '';
132
- const seconds = Math.floor(ageMs / 1000);
133
- if (seconds < 60)
134
- return `${seconds}s ago`;
135
- const minutes = Math.floor(seconds / 60);
136
- if (minutes < 60)
137
- return `${minutes}m ago`;
138
- return `${Math.floor(minutes / 60)}h ago`;
139
- }
140
- /** The task section's status line, or the reason there is none. */
141
- function taskStatusLine(task, glyphs) {
142
- if (!task.enabled)
143
- return 'task summary is off (config taskSummary.enabled)';
144
- if (task.pending)
145
- return 'summarizing' + ` ${glyphs.midDot} ` + 'r refresh';
146
- if (task.text === null) {
147
- const reason = task.reason === null ? '' : ` ${glyphs.midDot} ${task.reason}`;
148
- return `no summary yet${reason} ${glyphs.midDot} r refresh`;
149
- }
150
- const age = ageLabel(task.ageMs);
151
- const who = task.tone === 'fallback' ? 'fallback' : task.by;
152
- const parts = [who, age].filter((part) => part.length > 0);
153
- return `${parts.join(` ${glyphs.midDot} `)} ${glyphs.midDot} r refresh`;
154
- }
155
- /**
156
- * The footer, built by DROPPING clauses from the right (never by re-wording).
157
- *
158
- * `Esc close` is never dropped: it is the one thing a user must be able to find on
159
- * a terminal too narrow to explain anything else. The rest go in a fixed order so
160
- * the footer is stable across resizes instead of shuffling.
161
- */
162
- export function shortcutFooter(cols, glyphs, opts = { canRefresh: true }) {
163
- const available = shortcutPanelContentCells(cols);
164
- // SHORT SPELLINGS ON PURPOSE. The drawer is 30 cells wide at 80 columns and 46 at
165
- // most, so a footer that spelled `Up/Down select · PgUp/PgDn page · d details ·
166
- // r refresh · Esc close` (67 cells) would lose three clauses at EVERY width - the
167
- // ladder would never be exercised, only its last rung. These forms fit four of the
168
- // five at the maximum width and still keep the one that matters at the minimum.
169
- const clauses = [
170
- 'Up/Dn',
171
- 'PgUp/PgDn',
172
- 'd details',
173
- ...(opts.canRefresh ? ['r refresh'] : []),
174
- 'Esc close',
175
- ];
176
- // Drop order: the least essential clause first. `Esc close` is never dropped - on a
177
- // terminal too narrow to explain anything else, that is the one key a user must be
178
- // able to find.
179
- const droppable = ['r refresh', 'Up/Dn', 'PgUp/PgDn', 'd details'];
180
- const sep = ` ${glyphs.midDot} `;
181
- let kept = [...clauses];
182
- while (kept.length > 1 && stringWidth(kept.join(sep)) > available) {
183
- const victim = droppable.find((clause) => kept.includes(clause));
184
- if (victim === undefined)
185
- break;
186
- kept = kept.filter((clause) => clause !== victim);
187
- }
188
- return kept.join(sep);
189
- }
190
- /**
191
- * Build every row the drawer can show, and derive the window from the cursor.
192
- *
193
- * @param input.cols Terminal columns (the frame receives the same number).
194
- * @param input.rows Body rows inside the frame - `overlayBodyRows(maxRows, cols)`.
195
- * @param input.cursor Index into `input.entries`; clamped, never trusted.
196
- */
197
- export function buildShortcutRows(input) {
198
- const { glyphs } = input;
199
- const columns = shortcutColumns(input.cols, input.entries, glyphs);
200
- const rows = [];
201
- const push = (row) => { rows.push(row); };
202
- const wrapped = (text, cells, maxRows) => wrapCells(text, cells, maxRows, glyphs.ellipsis).lines;
203
- // --- title ---------------------------------------------------------------
204
- // NO TITLE ROW (deviation from appendix A's sketch, recorded in `spec.md`'s
205
- // implementation-issues note): `OverlayFrame` already draws `title` as chrome,
206
- // and the `details on|off` marker rides there instead - one string on a row
207
- // that is already paid for, rather than a whole body row spent on it.
208
- // --- task section (at most `taskMaxRows`) --------------------------------
209
- const statusText = () => fitCells(taskStatusLine(input.task, glyphs), columns.available, glyphs.ellipsis);
210
- if (!input.task.enabled) {
211
- push({ kind: 'task', text: statusText(), entryId: null, tone: 'dim' });
212
- }
213
- else if (input.task.text !== null) {
214
- for (const line of wrapped(input.task.text, columns.available, 1)) {
215
- push({
216
- kind: 'task',
217
- text: line,
218
- entryId: null,
219
- tone: input.task.tone === 'fallback' ? 'dim' : 'primary',
220
- });
221
- }
222
- if (input.rows >= SHORTCUT_PANEL_LIMITS.groupHeaderMinRows) {
223
- push({ kind: 'task', text: statusText(), entryId: null, tone: 'muted' });
224
- }
225
- }
226
- else {
227
- push({ kind: 'task', text: statusText(), entryId: null, tone: 'muted' });
228
- }
229
- // --- rule ----------------------------------------------------------------
230
- if (input.rows >= SHORTCUT_PANEL_LIMITS.groupHeaderMinRows) {
231
- push({
232
- kind: 'rule',
233
- text: glyphs.hrule.repeat(columns.available),
234
- entryId: null,
235
- tone: 'muted',
236
- });
237
- }
238
- // --- entries -------------------------------------------------------------
239
- const entries = input.entries;
240
- const total = entries.length;
241
- const cursor = total === 0 ? 0 : Math.min(total - 1, Math.max(0, Math.floor(input.cursor)));
242
- /** Indent shared by the detail lines and a stacked keyword. */
243
- const indent = ' '.repeat(SHORTCUT_PANEL_LIMITS.detailIndent);
244
- let cursorRow = 0;
245
- const groupHeaders = input.rows >= SHORTCUT_PANEL_LIMITS.groupHeaderMinRows;
246
- let currentGroup = '';
247
- entries.forEach((entry, index) => {
248
- const selected = index === cursor;
249
- if (groupHeaders && entry.group !== currentGroup) {
250
- currentGroup = entry.group;
251
- const title = SHORTCUT_GROUPS.find((group) => group.id === entry.group)?.title ?? '';
252
- push({
253
- kind: 'group',
254
- text: fitCells(title, columns.available, glyphs.ellipsis),
255
- entryId: null,
256
- tone: 'accent',
257
- });
258
- }
259
- const usable = input.entryAvailable ? input.entryAvailable(entry) : true;
260
- const tone = usable ? (selected ? 'primary' : 'muted') : 'dim';
261
- const lead = selected ? glyphs.cursor : ' ';
262
- if (selected)
263
- cursorRow = rows.length;
264
- const keyRoom = columns.keyCells;
265
- if (columns.stacked || stringWidth(entry.keys) > keyRoom) {
266
- push({
267
- kind: 'stacked',
268
- text: fitCells(`${lead}${entry.keys}`, columns.listCells, glyphs.ellipsis),
269
- entryId: entry.id,
270
- tone,
271
- });
272
- push({
273
- kind: 'keyword',
274
- text: indent
275
- + fitCells(entry.keyword, Math.max(0, columns.available - SHORTCUT_PANEL_LIMITS.detailIndent), glyphs.ellipsis),
276
- entryId: entry.id,
277
- tone: 'muted',
278
- });
279
- }
280
- else {
281
- const keyCell = padCells(`${lead}${entry.keys}`, 1 + keyRoom);
282
- const keyword = fitCells(entry.keyword, columns.keywordCells, glyphs.ellipsis);
283
- push({
284
- kind: 'entry',
285
- text: `${keyCell}${' '.repeat(SHORTCUT_PANEL_LIMITS.keyGapCells)}${keyword}`,
286
- entryId: entry.id,
287
- tone,
288
- });
289
- }
290
- if (!selected)
291
- return;
292
- // The detail line belongs to the selected row and is the reason the window is
293
- // derived from the cursor rather than from an independent offset (P1-7).
294
- const detailRoom = Math.max(0, columns.available - SHORTCUT_PANEL_LIMITS.detailIndent);
295
- // THE UNAVAILABILITY SENTENCE COMES FIRST, not last: the detail line is capped at
296
- // two rows, and a reason appended after a long explanation is the first thing the
297
- // cap removes - leaving a dim row with no explanation, which is the one outcome
298
- // this line exists to prevent.
299
- const detail = usable
300
- ? entry.detail
301
- : `Unavailable now - ${input.unavailableReason ?? 'not in this mode'}. ${entry.detail}`;
302
- for (const line of wrapped(detail, detailRoom, SHORTCUT_PANEL_LIMITS.detailMaxRows)) {
303
- push({ kind: 'detail', text: `${indent}${line}`, entryId: entry.id, tone: 'dim' });
304
- }
305
- });
306
- // --- the window ----------------------------------------------------------
307
- const height = Math.max(1, Math.floor(Number.isFinite(input.rows) ? input.rows : 1));
308
- // THE SMALLEST WINDOW CONTAINING THE CURSOR: the cursor sits on the last visible
309
- // row while scrolling down and the window never starts past it.
310
- const desired = Math.max(0, cursorRow - height + 1);
311
- const window = sliceWindow(rows.length, desired, height);
312
- return {
313
- rows,
314
- window,
315
- cursorRow,
316
- total: rows.length,
317
- hint: shortcutFooter(input.cols, glyphs, {
318
- canRefresh: input.task.enabled && !input.task.pending,
319
- }),
320
- };
321
- }
@@ -1,9 +0,0 @@
1
- import { type ActionHintInput } from '../interaction-hints.js';
2
- import { type StatusLinePlan, type StatusPrimaryInput } from './status-layout.js';
3
- export interface StatusDetailInput {
4
- status: StatusPrimaryInput;
5
- hints: ActionHintInput;
6
- model: string;
7
- provider: string;
8
- }
9
- export declare function planStatusDetail(input: StatusDetailInput): StatusLinePlan;
@@ -1,79 +0,0 @@
1
- import { formatCost, formatTokens, promptTokensOf } from '../../agent/usage.js';
2
- import { actionCandidates, clipStatusText, escapeClause } from '../interaction-hints.js';
3
- import { isGovernedModeValue, modeWord } from '../governance-status.js';
4
- import { statusField, statusLinePlan, validContext } from './status-layout.js';
5
- /**
6
- * Uppercase mode word for the details row, mirroring the primary row's field:
7
- * same vocabulary (`MODE_LABEL`), same `CUR>PENDING` deferred-switch shape.
8
- */
9
- function detailModeText(mode, pendingMode) {
10
- const word = (value) => modeWord(value, true) ?? value.toUpperCase();
11
- if (pendingMode)
12
- return `${word(mode || 'build')}>${word(pendingMode)}`;
13
- return word(mode || 'build');
14
- }
15
- export function planStatusDetail(input) {
16
- const { status, hints } = input;
17
- const budget = Math.max(0, Math.floor(status.columns) - 1);
18
- const escape = escapeClause({ ...hints, escapeAction: status.escapeAction });
19
- const reserved = [...(escape ? [statusField('escape', escape, 'warning')] : []),
20
- // THE TOGGLE HINT NAMES A TWO-KEY PATH NOW (tui-shortcut-drawer-and-task-summary
21
- // D-6). This row said `^G less` because `Ctrl+G` collapsed it directly; the key
22
- // opens the drawer instead, and `d` inside the drawer is what collapses this row.
23
- // Saying `^G less` would be a hint that does nothing.
24
- statusField('toggle', hints.overlay ? 'Details on' : '^G then d')];
25
- const fields = [];
26
- const add = (candidate) => {
27
- if (statusLinePlan([...fields, candidate, ...reserved]).cells <= budget)
28
- fields.push(candidate);
29
- };
30
- if (status.feedback) {
31
- const remaining = budget - statusLinePlan(reserved).cells - (reserved.length ? 3 : 0);
32
- const text = clipStatusText(status.feedback.text, Math.max(0, remaining));
33
- if (text)
34
- add(statusField('feedback', text, status.feedback.level === 'error' ? 'error'
35
- : status.feedback.level === 'warn' ? 'warning' : 'normal'));
36
- }
37
- for (const [index, action] of actionCandidates(hints).entries())
38
- add(statusField('action-' + index, action));
39
- if (status.pendingCount > 0)
40
- add(statusField('queue', 'Q' + status.pendingCount));
41
- if (status.servicesActive?.live)
42
- add(statusField('services', 'Svc' + status.servicesActive.live));
43
- if (status.mode || status.pendingMode)
44
- add(statusField('mode', detailModeText(status.mode, status.pendingMode), isGovernedModeValue(status.mode) || isGovernedModeValue(status.pendingMode) ? 'govern' : 'accent'));
45
- if (validContext(status.context)) {
46
- const approximate = status.context.source === 'estimate' || status.context.deltaTokens > 0 ? '~' : '';
47
- add(statusField('context', 'Context ' + approximate + formatTokens(status.context.occupied)
48
- + '/' + formatTokens(status.context.window) + ' tokens'));
49
- }
50
- else
51
- add(statusField('context', 'Context ? /context'));
52
- if (status.speedKnown)
53
- add(statusField('average', 'Avg: main output / run time'));
54
- add(statusField('usage', 'Session input ' + formatTokens(promptTokensOf(status.usageTotal))
55
- + ' output ' + formatTokens(status.usageTotal.outputTokens)));
56
- if (Number.isFinite(status.usageTotal.costUsd))
57
- add(statusField('cost', 'Cost ' + formatCost(status.usageTotal.costUsd) + ' est'));
58
- if (status.teamActive)
59
- add(statusField('team', 'Team ' + status.teamActive.running + '/' + status.teamActive.total));
60
- if (status.todoActive)
61
- add(statusField('todo', 'Todo ' + status.todoActive.done + '/' + status.todoActive.total));
62
- // AFTER `todo`, AND THE ORDER IS THE PRIORITY (D-12): `add()` only appends while
63
- // the whole row still fits, so a later field is dropped FIRST. `Todo 3/7` is the
64
- // more important of the two numbers, so it goes first and survives the narrower
65
- // terminal; `Accept 2/5` degrades before it.
66
- if (status.acceptanceActive) {
67
- const acceptance = status.acceptanceActive;
68
- add(statusField('acceptance', 'Accept ' + acceptance.checked + '/' + acceptance.total
69
- + (acceptance.failed > 0 ? ' !' + acceptance.failed : ''), acceptance.failed > 0 ? 'error' : 'normal'));
70
- }
71
- add(statusField('model', input.provider + ':' + input.model));
72
- if (status.fastActive)
73
- add(statusField('fast', 'Fast' + (status.fastActive.inFlight ? ' active' : '')));
74
- if (status.ecoRung)
75
- add(statusField('eco', 'Eco'));
76
- if (hints.updateAvailable)
77
- add(statusField('update', '/update'));
78
- return statusLinePlan([...fields, ...reserved]);
79
- }
@@ -1,140 +0,0 @@
1
- import type { UsageTotal } from '../../agent/reducer.js';
2
- import type { ContextUsageSnapshot } from '../../compaction/types.js';
3
- import type { EscapeAction, StatusFeedback } from '../status-feedback.js';
4
- export type RunPhase = 'idle' | 'starting' | 'waiting' | 'thinking' | 'generating' | 'preparing-tool' | 'tool';
5
- export interface StatusLayoutInput {
6
- columns: number;
7
- phase: RunPhase;
8
- pendingCount: number;
9
- context: ContextUsageSnapshot;
10
- usageTotal: UsageTotal;
11
- thinkingLevel: string;
12
- elapsedMs: number;
13
- tokPerSec: number;
14
- activeTool?: {
15
- name: string;
16
- toolCallId: string;
17
- } | null;
18
- /**
19
- * A bounded wait in flight (long-task-jobs §4.9).
20
- *
21
- * PRESENT ONLY WHILE `job_wait` IS THE ACTIVE TOOL, and it REPLACES the
22
- * `Running job_wait` label rather than joining it: "Waiting on t3 (up to 30s)"
23
- * is the state the user asked about (what, and how long at most), while the
24
- * tool name is an implementation detail of how the runtime is waiting.
25
- */
26
- wait?: {
27
- jobId: string;
28
- upToSeconds: number;
29
- elapsedSeconds?: number;
30
- };
31
- runOutcome?: 'none' | 'ended' | 'interrupted' | 'failed';
32
- spinner?: string;
33
- waitingForConfirmation?: boolean;
34
- stopping?: boolean;
35
- /**
36
- * Auto-compaction paused itself after repeated no-progress attempts
37
- * (context-compaction-never-fires C).
38
- *
39
- * A SEPARATE FIELD FROM `compacting`, and it renders as a SUFFIX on the context
40
- * gauge rather than as a phase word: the fact belongs next to the percentage it
41
- * explains ("Context 95% auto-paused"), and the phase slot must keep answering
42
- * "is the agent running".
43
- */
44
- compactionPaused?: boolean;
45
- compacting?: boolean;
46
- retryActive?: {
47
- attempt: number;
48
- max: number;
49
- secondsLeft: number;
50
- };
51
- /** Named on the primary row in EVERY mode - the §6.4 guarantee, restored. */
52
- mode?: string;
53
- pendingMode?: string | null;
54
- servicesActive?: {
55
- live: number;
56
- };
57
- /**
58
- * Forced team mode is ARMED, with the fan-out count it was armed with
59
- * (team-command-forced-dispatch §3.8 / D-9).
60
- *
61
- * THE ONLY PERSISTENTLY VISIBLE SIGNAL that `/team` happened. The directive is
62
- * one turn, the prompt block is invisible, and the panel only appears while a
63
- * dispatch runs - so without this chip the answer to "why is my agent
64
- * dispatching?" is "remember what you typed". It is read at RENDER time from
65
- * `controller.getForcedTeam()`, never mirrored into `ViewState`: a mirror is a
66
- * second copy that can disagree, the exact defect §2.4 is about.
67
- *
68
- * ABSENT means "not armed" and keeps every existing caller's plan BYTE-
69
- * IDENTICAL (the same discipline `reserveRight` records below).
70
- */
71
- forcedTeam?: {
72
- count: number;
73
- };
74
- teamActive?: {
75
- running: number;
76
- total: number;
77
- };
78
- todoActive?: {
79
- done: number;
80
- total: number;
81
- };
82
- /**
83
- * The acceptance counter (todo-acceptance-criteria §6.11).
84
- *
85
- * A FALLBACK, exactly like `todoActive`: present only when the rail is NOT already
86
- * reporting the number, because printing `2/5` twice in one row is the defect
87
- * RV-P2-4 records. Whether it is present is decided by `acceptanceChip()` in
88
- * `ui/layout/todo-layout.ts`, which owns "what did the rail actually draw".
89
- */
90
- acceptanceActive?: {
91
- checked: number;
92
- total: number;
93
- failed: number;
94
- };
95
- ecoRung?: number;
96
- fastActive?: {
97
- inFlight: boolean;
98
- };
99
- scrolledLines?: number;
100
- /**
101
- * Cells already spent at the RIGHT end of this same row
102
- * (tui-session-id-resume 3.10 / I-6).
103
- *
104
- * The session-id chip is not a layer above this row: it takes its cells out of
105
- * the SAME budget, because the row is measured rather than laid out and
106
- * anything overlapping it eats `phase` first. ABSENT MEANS 0, which is what
107
- * keeps every existing caller's plan byte-identical (I-6).
108
- */
109
- reserveRight?: number;
110
- }
111
- export interface StatusPrimaryInput extends StatusLayoutInput {
112
- feedback?: StatusFeedback;
113
- escapeAction?: EscapeAction;
114
- speedKnown: boolean;
115
- interruptPhase?: 'ready' | 'armed' | 'stopping';
116
- }
117
- export interface StatusField {
118
- id: string;
119
- text: string;
120
- cells: number;
121
- /**
122
- * 'accent' carries the mode word - the row's one always-on emphasis. 'govern' is the
123
- * same slot while the posture is GOVERN / PLAN+GOVERN (`governAccent`, its own hue).
124
- */
125
- tone: 'normal' | 'muted' | 'warning' | 'error' | 'accent' | 'govern';
126
- }
127
- export interface StatusLinePlan {
128
- fields: readonly StatusField[];
129
- separator: string;
130
- separatorCells: number;
131
- cells: number;
132
- }
133
- export declare function cleanStatusText(text: string): string;
134
- export declare function statusField(id: string, text: string, tone?: StatusField['tone']): StatusField;
135
- export declare function statusLinePlan(fields: readonly StatusField[], separator?: string): StatusLinePlan;
136
- export declare function phaseLabels(input: Pick<StatusLayoutInput, 'phase' | 'activeTool' | 'runOutcome' | 'waitingForConfirmation' | 'stopping' | 'compacting' | 'retryActive' | 'wait'>): readonly [string, string];
137
- export declare function validContext(context: ContextUsageSnapshot): boolean;
138
- export declare function shortDuration(ms: number): string;
139
- /** Every field survives each width rung; only the redraw carrier is outside this plan. */
140
- export declare function planPrimaryStatusFields(input: StatusPrimaryInput): StatusLinePlan;