@aragon-agent/cli 0.6.46 → 0.6.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (775) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +80 -12
  3. package/dist/agent/coalesce.d.ts +5 -1
  4. package/dist/agent/coalesce.js +13 -0
  5. package/dist/agent/controller.d.ts +41 -20
  6. package/dist/agent/controller.js +68 -15
  7. package/dist/agent/conversation-reset.d.ts +1 -1
  8. package/dist/agent/governance-wiring.d.ts +6 -6
  9. package/dist/agent/governance-wiring.js +4 -4
  10. package/dist/agent/headless.d.ts +5 -5
  11. package/dist/agent/headless.js +4 -4
  12. package/dist/agent/job-notices.d.ts +1 -1
  13. package/dist/agent/job-notices.js +1 -1
  14. package/dist/agent/kit-apply.d.ts +3 -3
  15. package/dist/agent/kit-apply.js +3 -3
  16. package/dist/agent/model-profile-settings.d.ts +2 -2
  17. package/dist/agent/model-profile-settings.js +6 -6
  18. package/dist/agent/prompt-options.d.ts +1 -1
  19. package/dist/agent/system-prompt.d.ts +1 -1
  20. package/dist/agent/user-attention.d.ts +17 -0
  21. package/dist/agent/user-attention.js +32 -0
  22. package/dist/{ui → app}/App.d.ts +9 -9
  23. package/dist/{ui → app}/App.js +113 -79
  24. package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
  25. package/dist/{ui → app}/use-startup-notices.js +2 -2
  26. package/dist/cli.js +31 -32
  27. package/dist/commands/agents-command.js +1 -1
  28. package/dist/commands/builtins.js +9 -9
  29. package/dist/commands/governance-command.js +2 -2
  30. package/dist/commands/governance-runs-table.js +1 -1
  31. package/dist/commands/kit-command.js +1 -1
  32. package/dist/commands/perf.d.ts +3 -3
  33. package/dist/commands/perf.js +1 -1
  34. package/dist/commands/registry.d.ts +8 -8
  35. package/dist/commands/skills.js +2 -2
  36. package/dist/commands/team-command.js +1 -1
  37. package/dist/compaction/archive.d.ts +1 -1
  38. package/dist/compaction/archive.js +1 -1
  39. package/dist/compaction/child.d.ts +3 -3
  40. package/dist/compaction/child.js +4 -4
  41. package/dist/compaction/command.js +5 -5
  42. package/dist/compaction/compactor.d.ts +6 -6
  43. package/dist/compaction/compactor.js +6 -6
  44. package/dist/compaction/context-command.js +1 -1
  45. package/dist/compaction/digest.js +1 -1
  46. package/dist/compaction/memory-input.js +1 -1
  47. package/dist/compaction/memory-validation.js +1 -1
  48. package/dist/compaction/memory.js +1 -1
  49. package/dist/compaction/summarize-call.js +1 -1
  50. package/dist/compaction/summary-prompt.js +1 -1
  51. package/dist/compaction/tail-budget.js +2 -2
  52. package/dist/compaction/wiring.d.ts +5 -5
  53. package/dist/compaction/wiring.js +2 -2
  54. package/dist/config/cli-commands.d.ts +1 -1
  55. package/dist/config/cli-commands.js +3 -3
  56. package/dist/config/env.d.ts +1 -1
  57. package/dist/config/env.js +4 -4
  58. package/dist/config/load.d.ts +2 -2
  59. package/dist/config/load.js +10 -31
  60. package/dist/config/migrate-state-out-of-config.js +1 -1
  61. package/dist/config/model-profile-store.d.ts +4 -54
  62. package/dist/config/model-profile-store.js +3 -3
  63. package/dist/config/prompt-history.js +1 -1
  64. package/dist/config/store.d.ts +2 -2
  65. package/dist/config/store.js +3 -3
  66. package/dist/diagnostics/doctor.js +4 -4
  67. package/dist/exec/bridge/decisions.d.ts +1 -1
  68. package/dist/exec/bridge/human-answers.d.ts +1 -1
  69. package/dist/exec/bridge/human-answers.js +1 -1
  70. package/dist/exec/bridge/protocol.d.ts +1 -1
  71. package/dist/exec/bridge/server.js +1 -1
  72. package/dist/exec/events.d.ts +2 -2
  73. package/dist/exec/index.d.ts +1 -1
  74. package/dist/exec/index.js +1 -1
  75. package/dist/exec/permission.js +1 -1
  76. package/dist/exec/runner.d.ts +3 -3
  77. package/dist/exec/runner.js +2 -2
  78. package/dist/exec/threads/runtime.js +1 -1
  79. package/dist/fast/digest.d.ts +1 -1
  80. package/dist/fast/digest.js +1 -1
  81. package/dist/fast/frames.d.ts +1 -1
  82. package/dist/fast/frames.js +1 -1
  83. package/dist/fast/prompt.d.ts +1 -1
  84. package/dist/fast/prompt.js +1 -1
  85. package/dist/fast/review-call.js +1 -1
  86. package/dist/fast/reviewer.d.ts +3 -3
  87. package/dist/fast/reviewer.js +1 -1
  88. package/dist/fast/summary-call.d.ts +3 -3
  89. package/dist/fast/summary-call.js +2 -2
  90. package/dist/fast/summary-prompt.d.ts +1 -1
  91. package/dist/fast/summary-prompt.js +1 -1
  92. package/dist/fast/wiring.d.ts +4 -4
  93. package/dist/fast/wiring.js +1 -1
  94. package/dist/governance/card-normalize.d.ts +1 -1
  95. package/dist/governance/copy.d.ts +1 -1
  96. package/dist/governance/copy.js +2 -2
  97. package/dist/governance/engine/artifact-persist.d.ts +1 -1
  98. package/dist/governance/engine/budget.d.ts +1 -1
  99. package/dist/governance/engine/budget.js +1 -1
  100. package/dist/governance/engine/cards.d.ts +1 -1
  101. package/dist/governance/engine/digest.js +1 -1
  102. package/dist/governance/engine/engine-core.d.ts +5 -5
  103. package/dist/governance/engine/engine-core.js +1 -1
  104. package/dist/governance/engine/engine.d.ts +1 -1
  105. package/dist/governance/engine/engine.js +1 -1
  106. package/dist/governance/engine/estimate.d.ts +1 -1
  107. package/dist/governance/engine/estimate.js +1 -1
  108. package/dist/governance/engine/inspector.js +2 -2
  109. package/dist/governance/engine/integration.d.ts +1 -1
  110. package/dist/governance/engine/lifecycle.d.ts +1 -1
  111. package/dist/governance/engine/lifecycle.js +1 -1
  112. package/dist/governance/engine/phase-members.d.ts +1 -1
  113. package/dist/governance/engine/phase-planner.d.ts +1 -1
  114. package/dist/governance/engine/phase-planner.js +1 -1
  115. package/dist/governance/engine/rebuild.d.ts +1 -1
  116. package/dist/governance/engine/report.d.ts +1 -1
  117. package/dist/governance/engine/report.js +1 -1
  118. package/dist/governance/engine/run-digest.d.ts +1 -1
  119. package/dist/governance/engine/spec-builder.d.ts +2 -2
  120. package/dist/governance/engine/spec-builder.js +2 -2
  121. package/dist/governance/engine/stage-runner.js +2 -2
  122. package/dist/governance/engine/start-input.d.ts +1 -1
  123. package/dist/governance/engine/start-input.js +1 -1
  124. package/dist/governance/engine/state-machine.d.ts +1 -1
  125. package/dist/governance/engine/state-machine.js +3 -3
  126. package/dist/governance/engine/submission-queries.d.ts +1 -1
  127. package/dist/governance/engine/submission-render.d.ts +1 -1
  128. package/dist/governance/engine/submissions.d.ts +1 -1
  129. package/dist/governance/engine/submissions.js +1 -1
  130. package/dist/governance/engine/visibility.d.ts +1 -1
  131. package/dist/governance/engine/visibility.js +1 -1
  132. package/dist/governance/posture-transition.d.ts +2 -2
  133. package/dist/governance/posture-transition.js +1 -1
  134. package/dist/governance/profiles.d.ts +1 -1
  135. package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
  136. package/dist/governance/prompts/orchestrator-block.js +2 -2
  137. package/dist/governance/prompts/plan-addendum.d.ts +1 -1
  138. package/dist/governance/prompts/plan-addendum.js +1 -1
  139. package/dist/governance/prompts/role-blocks.d.ts +2 -2
  140. package/dist/governance/prompts/role-blocks.js +1 -1
  141. package/dist/governance/report-reader.js +1 -1
  142. package/dist/governance/roles.d.ts +1 -1
  143. package/dist/governance/rules/claims.d.ts +1 -1
  144. package/dist/governance/rules/claims.js +1 -1
  145. package/dist/governance/rules/elimination.d.ts +1 -1
  146. package/dist/governance/rules/elimination.js +1 -1
  147. package/dist/governance/rules/failure-analysis.d.ts +2 -2
  148. package/dist/governance/rules/failure-analysis.js +1 -1
  149. package/dist/governance/rules/ledger-replay.d.ts +1 -1
  150. package/dist/governance/rules/ledger-state.d.ts +1 -1
  151. package/dist/governance/rules/ledger-state.js +1 -1
  152. package/dist/governance/rules/ledger.d.ts +2 -2
  153. package/dist/governance/rules/ledger.js +2 -2
  154. package/dist/governance/rules/rca.d.ts +1 -1
  155. package/dist/governance/rules/rca.js +1 -1
  156. package/dist/governance/rules/settlement.d.ts +2 -2
  157. package/dist/governance/rules/settlement.js +2 -2
  158. package/dist/governance/rules/suspicion.d.ts +1 -1
  159. package/dist/governance/store/artifacts.d.ts +1 -1
  160. package/dist/governance/store/artifacts.js +1 -1
  161. package/dist/governance/store/events-log.d.ts +1 -1
  162. package/dist/governance/store/run-store.d.ts +1 -1
  163. package/dist/governance/store/run-store.js +1 -1
  164. package/dist/governance/store/scoreboard-export.d.ts +1 -1
  165. package/dist/governance/tools/child-tools.d.ts +1 -1
  166. package/dist/governance/tools/guard.d.ts +1 -1
  167. package/dist/governance/tools/guard.js +1 -1
  168. package/dist/governance/tools/inspector-tools.d.ts +2 -2
  169. package/dist/governance/tools/inspector-tools.js +2 -2
  170. package/dist/governance/tools/lead-tools.d.ts +1 -1
  171. package/dist/governance/tools/lead-tools.js +1 -1
  172. package/dist/governance/tools/normalize-util.js +1 -1
  173. package/dist/governance/tools/scan-incomplete.js +1 -1
  174. package/dist/governance/tools/shared-tools.d.ts +1 -1
  175. package/dist/governance/tools/shared-tools.js +1 -1
  176. package/dist/governance/tools/submit-normalizers.d.ts +1 -1
  177. package/dist/governance/tools/submit-normalizers.js +1 -1
  178. package/dist/governance/tools/submit-tools.d.ts +1 -1
  179. package/dist/logging/cli-commands.js +1 -1
  180. package/dist/logging/install.d.ts +1 -1
  181. package/dist/logging/install.js +3 -3
  182. package/dist/logging/logger.d.ts +2 -2
  183. package/dist/logging/logger.js +31 -2
  184. package/dist/proc/kill-tree.js +1 -1
  185. package/dist/proc/log-mirror.js +1 -1
  186. package/dist/proc/log-ring.js +2 -2
  187. package/dist/proc/notices.d.ts +1 -1
  188. package/dist/proc/notices.js +2 -2
  189. package/dist/proc/prompt.d.ts +1 -1
  190. package/dist/proc/prompt.js +8 -5
  191. package/dist/proc/readiness.js +1 -1
  192. package/dist/proc/supervisor.d.ts +1 -1
  193. package/dist/proc/supervisor.js +10 -4
  194. package/dist/proc/wait-plan.d.ts +39 -0
  195. package/dist/proc/wait-plan.js +77 -0
  196. package/dist/proc/wait.d.ts +37 -4
  197. package/dist/proc/wait.js +68 -5
  198. package/dist/prompts/command.d.ts +1 -1
  199. package/dist/prompts/command.js +1 -1
  200. package/dist/prompts/normalize.d.ts +1 -1
  201. package/dist/prompts/normalize.js +1 -1
  202. package/dist/prompts/resolve.d.ts +1 -1
  203. package/dist/prompts/store.d.ts +2 -12
  204. package/dist/prompts/store.js +6 -60
  205. package/dist/session/checkpoint.d.ts +2 -2
  206. package/dist/session/checkpoint.js +2 -0
  207. package/dist/session/clear-archive.d.ts +2 -2
  208. package/dist/session/persist.d.ts +2 -2
  209. package/dist/session/persist.js +20 -3
  210. package/dist/session/startup-session.d.ts +2 -2
  211. package/dist/session/validate-session.js +6 -3
  212. package/dist/skills/service.d.ts +2 -2
  213. package/dist/team/bus.d.ts +1 -1
  214. package/dist/team/bus.js +1 -1
  215. package/dist/team/child-reviewer.d.ts +2 -2
  216. package/dist/team/child-reviewer.js +1 -1
  217. package/dist/team/comm-tools.js +1 -1
  218. package/dist/team/dispatch-gate.js +1 -1
  219. package/dist/team/forced-dispatch.js +1 -1
  220. package/dist/team/forced-mode.d.ts +1 -1
  221. package/dist/team/forced-prompt.d.ts +1 -1
  222. package/dist/team/forced-prompt.js +1 -1
  223. package/dist/team/normalize.d.ts +1 -1
  224. package/dist/team/normalize.js +1 -1
  225. package/dist/team/overseer.d.ts +3 -3
  226. package/dist/team/overseer.js +3 -3
  227. package/dist/team/prompt.d.ts +1 -1
  228. package/dist/team/prompt.js +1 -1
  229. package/dist/team/report.d.ts +2 -2
  230. package/dist/team/report.js +2 -2
  231. package/dist/team/retry.d.ts +1 -1
  232. package/dist/team/retry.js +1 -1
  233. package/dist/team/runtime.d.ts +4 -4
  234. package/dist/team/runtime.js +2 -2
  235. package/dist/team/settled.d.ts +2 -2
  236. package/dist/team/subagent.d.ts +4 -4
  237. package/dist/team/subagent.js +5 -5
  238. package/dist/team/task-tool.d.ts +1 -1
  239. package/dist/team/task-tool.js +1 -1
  240. package/dist/todo/normalize.d.ts +1 -1
  241. package/dist/todo/normalize.js +1 -1
  242. package/dist/todo/prompt.d.ts +1 -1
  243. package/dist/todo/prompt.js +1 -1
  244. package/dist/todo/store.d.ts +1 -1
  245. package/dist/todo/store.js +2 -2
  246. package/dist/todo/todo-tool.d.ts +1 -1
  247. package/dist/todo/todo-tool.js +2 -2
  248. package/dist/tools/bash-tool.d.ts +1 -1
  249. package/dist/tools/bash-tool.js +2 -2
  250. package/dist/tools/diff.d.ts +1 -1
  251. package/dist/tools/diff.js +1 -1
  252. package/dist/tools/file-change-store.d.ts +1 -1
  253. package/dist/tools/fs-tools.d.ts +2 -2
  254. package/dist/tools/fs-tools.js +1 -1
  255. package/dist/tools/index.d.ts +3 -3
  256. package/dist/tools/index.js +1 -1
  257. package/dist/tools/job-tools.d.ts +14 -3
  258. package/dist/tools/job-tools.js +158 -35
  259. package/dist/tools/plan-tools.d.ts +1 -1
  260. package/dist/tools/plan-tools.js +1 -1
  261. package/dist/tools/proc-tools.d.ts +1 -1
  262. package/dist/tools/proc-tools.js +2 -2
  263. package/dist/update/classify-failure.d.ts +1 -1
  264. package/dist/update/install-lock.js +1 -1
  265. package/dist/update/install-source.d.ts +1 -1
  266. package/dist/update/installer.js +2 -2
  267. package/dist/update/npm-view.d.ts +1 -1
  268. package/dist/update/npm-view.js +1 -1
  269. package/dist/update/registry.d.ts +1 -1
  270. package/dist/update/registry.js +1 -1
  271. package/dist/update/service.d.ts +2 -2
  272. package/dist/update/service.js +2 -2
  273. package/package.json +7 -7
  274. package/dist/agent/agent-mode.d.ts +0 -108
  275. package/dist/agent/agent-mode.js +0 -121
  276. package/dist/agent/entry-limits.d.ts +0 -65
  277. package/dist/agent/entry-limits.js +0 -133
  278. package/dist/agent/governance-view.d.ts +0 -40
  279. package/dist/agent/governance-view.js +0 -40
  280. package/dist/agent/invocation-card.d.ts +0 -77
  281. package/dist/agent/invocation-card.js +0 -169
  282. package/dist/agent/model-probe-limits.d.ts +0 -39
  283. package/dist/agent/model-probe-limits.js +0 -25
  284. package/dist/agent/model-probe.d.ts +0 -104
  285. package/dist/agent/model-probe.js +0 -391
  286. package/dist/agent/queued-messages.d.ts +0 -23
  287. package/dist/agent/queued-messages.js +0 -49
  288. package/dist/agent/reducer.d.ts +0 -837
  289. package/dist/agent/reducer.js +0 -1617
  290. package/dist/agent/retry-view.d.ts +0 -68
  291. package/dist/agent/retry-view.js +0 -95
  292. package/dist/agent/usage.d.ts +0 -47
  293. package/dist/agent/usage.js +0 -84
  294. package/dist/compaction/limits.d.ts +0 -61
  295. package/dist/compaction/limits.js +0 -64
  296. package/dist/compaction/meter.d.ts +0 -276
  297. package/dist/compaction/meter.js +0 -512
  298. package/dist/compaction/pressure.d.ts +0 -163
  299. package/dist/compaction/pressure.js +0 -199
  300. package/dist/compaction/reason-text.d.ts +0 -36
  301. package/dist/compaction/reason-text.js +0 -78
  302. package/dist/compaction/types.d.ts +0 -360
  303. package/dist/compaction/types.js +0 -22
  304. package/dist/config/governance-config.d.ts +0 -125
  305. package/dist/config/governance-config.js +0 -164
  306. package/dist/config/kit-resolution.d.ts +0 -93
  307. package/dist/config/kit-resolution.js +0 -226
  308. package/dist/config/model-kits.d.ts +0 -225
  309. package/dist/config/model-kits.js +0 -302
  310. package/dist/config/model-profile-resolution.d.ts +0 -28
  311. package/dist/config/model-profile-resolution.js +0 -88
  312. package/dist/config/model-profiles.d.ts +0 -103
  313. package/dist/config/model-profiles.js +0 -188
  314. package/dist/config/schema.d.ts +0 -1645
  315. package/dist/config/schema.js +0 -1377
  316. package/dist/fast/limits.d.ts +0 -152
  317. package/dist/fast/limits.js +0 -152
  318. package/dist/fast/resolve.d.ts +0 -44
  319. package/dist/fast/resolve.js +0 -107
  320. package/dist/fast/task-summary-types.d.ts +0 -66
  321. package/dist/fast/task-summary-types.js +0 -17
  322. package/dist/fast/types.d.ts +0 -141
  323. package/dist/fast/types.js +0 -14
  324. package/dist/governance/governed-dispatch.d.ts +0 -19
  325. package/dist/governance/governed-dispatch.js +0 -17
  326. package/dist/governance/limits.d.ts +0 -107
  327. package/dist/governance/limits.js +0 -131
  328. package/dist/governance/posture.d.ts +0 -35
  329. package/dist/governance/posture.js +0 -59
  330. package/dist/governance/rules/events-table.d.ts +0 -46
  331. package/dist/governance/rules/events-table.js +0 -94
  332. package/dist/governance/types.d.ts +0 -661
  333. package/dist/governance/types.js +0 -27
  334. package/dist/input/control-sequences.d.ts +0 -71
  335. package/dist/input/control-sequences.js +0 -222
  336. package/dist/input/csiu-keys.d.ts +0 -66
  337. package/dist/input/csiu-keys.js +0 -181
  338. package/dist/input/cursor-report.d.ts +0 -61
  339. package/dist/input/cursor-report.js +0 -97
  340. package/dist/input/enter-sequences.d.ts +0 -64
  341. package/dist/input/enter-sequences.js +0 -153
  342. package/dist/input/interrupt-gesture.d.ts +0 -18
  343. package/dist/input/interrupt-gesture.js +0 -19
  344. package/dist/input/keyboard-enhancement.d.ts +0 -42
  345. package/dist/input/keyboard-enhancement.js +0 -65
  346. package/dist/input/keymap.d.ts +0 -20
  347. package/dist/input/keymap.js +0 -99
  348. package/dist/input/limits.d.ts +0 -118
  349. package/dist/input/limits.js +0 -109
  350. package/dist/input/mouse-events.d.ts +0 -87
  351. package/dist/input/mouse-events.js +0 -212
  352. package/dist/input/paste-parse.d.ts +0 -83
  353. package/dist/input/paste-parse.js +0 -107
  354. package/dist/input/pointer-router.d.ts +0 -11
  355. package/dist/input/pointer-router.js +0 -14
  356. package/dist/input/stdin-filter.d.ts +0 -112
  357. package/dist/input/stdin-filter.js +0 -657
  358. package/dist/input/win32-input-mode.d.ts +0 -61
  359. package/dist/input/win32-input-mode.js +0 -269
  360. package/dist/logging/levels.d.ts +0 -40
  361. package/dist/logging/levels.js +0 -59
  362. package/dist/logging/secret-registry.d.ts +0 -32
  363. package/dist/logging/secret-registry.js +0 -73
  364. package/dist/proc/limits.d.ts +0 -200
  365. package/dist/proc/limits.js +0 -207
  366. package/dist/proc/progress.d.ts +0 -40
  367. package/dist/proc/progress.js +0 -135
  368. package/dist/proc/types.d.ts +0 -263
  369. package/dist/proc/types.js +0 -15
  370. package/dist/prompts/copy.d.ts +0 -89
  371. package/dist/prompts/copy.js +0 -131
  372. package/dist/prompts/fill.d.ts +0 -51
  373. package/dist/prompts/fill.js +0 -46
  374. package/dist/prompts/limits.d.ts +0 -53
  375. package/dist/prompts/limits.js +0 -53
  376. package/dist/prompts/search.d.ts +0 -58
  377. package/dist/prompts/search.js +0 -146
  378. package/dist/prompts/types.d.ts +0 -204
  379. package/dist/prompts/types.js +0 -13
  380. package/dist/team/activity.d.ts +0 -67
  381. package/dist/team/activity.js +0 -130
  382. package/dist/team/limits.d.ts +0 -308
  383. package/dist/team/limits.js +0 -330
  384. package/dist/team/model.d.ts +0 -104
  385. package/dist/team/model.js +0 -150
  386. package/dist/team/panel-rows.d.ts +0 -48
  387. package/dist/team/panel-rows.js +0 -75
  388. package/dist/team/timeline.d.ts +0 -74
  389. package/dist/team/timeline.js +0 -101
  390. package/dist/team/types.d.ts +0 -354
  391. package/dist/team/types.js +0 -13
  392. package/dist/todo/acceptance.d.ts +0 -120
  393. package/dist/todo/acceptance.js +0 -399
  394. package/dist/todo/follow-through.d.ts +0 -138
  395. package/dist/todo/follow-through.js +0 -248
  396. package/dist/todo/limits.d.ts +0 -152
  397. package/dist/todo/limits.js +0 -152
  398. package/dist/todo/panel-rows.d.ts +0 -45
  399. package/dist/todo/panel-rows.js +0 -70
  400. package/dist/todo/plan-sections.d.ts +0 -60
  401. package/dist/todo/plan-sections.js +0 -108
  402. package/dist/todo/row-window.d.ts +0 -51
  403. package/dist/todo/row-window.js +0 -107
  404. package/dist/todo/types.d.ts +0 -124
  405. package/dist/todo/types.js +0 -12
  406. package/dist/tools/human-input.d.ts +0 -212
  407. package/dist/tools/human-input.js +0 -265
  408. package/dist/tools/patch.d.ts +0 -115
  409. package/dist/tools/patch.js +0 -453
  410. package/dist/tools/terminal-output.d.ts +0 -115
  411. package/dist/tools/terminal-output.js +0 -201
  412. package/dist/tools/tool-output-store.d.ts +0 -68
  413. package/dist/tools/tool-output-store.js +0 -102
  414. package/dist/ui/ActivityLine.d.ts +0 -26
  415. package/dist/ui/ActivityLine.js +0 -48
  416. package/dist/ui/AutocompletePopup.d.ts +0 -23
  417. package/dist/ui/AutocompletePopup.js +0 -17
  418. package/dist/ui/BottomStatusRow.d.ts +0 -10
  419. package/dist/ui/BottomStatusRow.js +0 -9
  420. package/dist/ui/Composer.d.ts +0 -115
  421. package/dist/ui/Composer.js +0 -64
  422. package/dist/ui/GovernancePanel.d.ts +0 -50
  423. package/dist/ui/GovernancePanel.js +0 -77
  424. package/dist/ui/GovernanceRun.d.ts +0 -18
  425. package/dist/ui/GovernanceRun.js +0 -11
  426. package/dist/ui/Header.d.ts +0 -48
  427. package/dist/ui/Header.js +0 -27
  428. package/dist/ui/Logo.d.ts +0 -32
  429. package/dist/ui/Logo.js +0 -65
  430. package/dist/ui/Markdown.d.ts +0 -29
  431. package/dist/ui/Markdown.js +0 -116
  432. package/dist/ui/PromptCaret.d.ts +0 -11
  433. package/dist/ui/PromptCaret.js +0 -31
  434. package/dist/ui/PromptInput.d.ts +0 -192
  435. package/dist/ui/PromptInput.js +0 -689
  436. package/dist/ui/QueuePanel.d.ts +0 -8
  437. package/dist/ui/QueuePanel.js +0 -9
  438. package/dist/ui/QueueStatusRow.d.ts +0 -24
  439. package/dist/ui/QueueStatusRow.js +0 -51
  440. package/dist/ui/ScrollbackShell.d.ts +0 -132
  441. package/dist/ui/ScrollbackShell.js +0 -26
  442. package/dist/ui/SessionOpener.d.ts +0 -30
  443. package/dist/ui/SessionOpener.js +0 -12
  444. package/dist/ui/StatusBar.d.ts +0 -129
  445. package/dist/ui/StatusBar.js +0 -61
  446. package/dist/ui/TeamPanel.d.ts +0 -76
  447. package/dist/ui/TeamPanel.js +0 -103
  448. package/dist/ui/ToastStack.d.ts +0 -8
  449. package/dist/ui/ToastStack.js +0 -31
  450. package/dist/ui/TodoPanel.d.ts +0 -52
  451. package/dist/ui/TodoPanel.js +0 -214
  452. package/dist/ui/Transcript.d.ts +0 -105
  453. package/dist/ui/Transcript.js +0 -251
  454. package/dist/ui/UpdateLine.d.ts +0 -44
  455. package/dist/ui/UpdateLine.js +0 -129
  456. package/dist/ui/activity-phrases.d.ts +0 -33
  457. package/dist/ui/activity-phrases.js +0 -50
  458. package/dist/ui/capabilities.d.ts +0 -27
  459. package/dist/ui/capabilities.js +0 -65
  460. package/dist/ui/clipboard-task.d.ts +0 -29
  461. package/dist/ui/clipboard-task.js +0 -66
  462. package/dist/ui/clipboard.d.ts +0 -31
  463. package/dist/ui/clipboard.js +0 -157
  464. package/dist/ui/color-runtime.d.ts +0 -5
  465. package/dist/ui/color-runtime.js +0 -29
  466. package/dist/ui/composer-input.d.ts +0 -38
  467. package/dist/ui/composer-input.js +0 -79
  468. package/dist/ui/composer-limits.d.ts +0 -30
  469. package/dist/ui/composer-limits.js +0 -45
  470. package/dist/ui/composer-rows.d.ts +0 -73
  471. package/dist/ui/composer-rows.js +0 -129
  472. package/dist/ui/console-bridge.d.ts +0 -19
  473. package/dist/ui/console-bridge.js +0 -52
  474. package/dist/ui/density.d.ts +0 -26
  475. package/dist/ui/density.js +0 -34
  476. package/dist/ui/display-tab.d.ts +0 -51
  477. package/dist/ui/display-tab.js +0 -82
  478. package/dist/ui/editor-navigation.d.ts +0 -55
  479. package/dist/ui/editor-navigation.js +0 -96
  480. package/dist/ui/editor-reducer.d.ts +0 -108
  481. package/dist/ui/editor-reducer.js +0 -187
  482. package/dist/ui/enter-frames.d.ts +0 -47
  483. package/dist/ui/enter-frames.js +0 -117
  484. package/dist/ui/entries/AssistantEntry.d.ts +0 -37
  485. package/dist/ui/entries/AssistantEntry.js +0 -43
  486. package/dist/ui/entries/CompactionCard.d.ts +0 -88
  487. package/dist/ui/entries/CompactionCard.js +0 -222
  488. package/dist/ui/entries/DiffView.d.ts +0 -61
  489. package/dist/ui/entries/DiffView.js +0 -103
  490. package/dist/ui/entries/EntryFrame.d.ts +0 -23
  491. package/dist/ui/entries/EntryFrame.js +0 -6
  492. package/dist/ui/entries/FastCard.d.ts +0 -53
  493. package/dist/ui/entries/FastCard.js +0 -105
  494. package/dist/ui/entries/GovernanceCard.d.ts +0 -30
  495. package/dist/ui/entries/GovernanceCard.js +0 -32
  496. package/dist/ui/entries/InvocationCard.d.ts +0 -20
  497. package/dist/ui/entries/InvocationCard.js +0 -32
  498. package/dist/ui/entries/QueuedEntry.d.ts +0 -27
  499. package/dist/ui/entries/QueuedEntry.js +0 -33
  500. package/dist/ui/entries/RetryCard.d.ts +0 -56
  501. package/dist/ui/entries/RetryCard.js +0 -60
  502. package/dist/ui/entries/ServiceCard.d.ts +0 -82
  503. package/dist/ui/entries/ServiceCard.js +0 -151
  504. package/dist/ui/entries/TeamCard.d.ts +0 -55
  505. package/dist/ui/entries/TeamCard.js +0 -94
  506. package/dist/ui/entries/TodoCard.d.ts +0 -54
  507. package/dist/ui/entries/TodoCard.js +0 -98
  508. package/dist/ui/entries/ToolCard.d.ts +0 -81
  509. package/dist/ui/entries/ToolCard.js +0 -160
  510. package/dist/ui/entries/ToolPreview.d.ts +0 -59
  511. package/dist/ui/entries/ToolPreview.js +0 -208
  512. package/dist/ui/entries/UserEntry.d.ts +0 -36
  513. package/dist/ui/entries/UserEntry.js +0 -57
  514. package/dist/ui/exit-snapshot.d.ts +0 -43
  515. package/dist/ui/exit-snapshot.js +0 -26
  516. package/dist/ui/frame-differ.d.ts +0 -166
  517. package/dist/ui/frame-differ.js +0 -354
  518. package/dist/ui/frame-observer.d.ts +0 -17
  519. package/dist/ui/frame-observer.js +0 -94
  520. package/dist/ui/frame-parser.d.ts +0 -7
  521. package/dist/ui/frame-parser.js +0 -18
  522. package/dist/ui/gauge.d.ts +0 -39
  523. package/dist/ui/gauge.js +0 -55
  524. package/dist/ui/glyphs.d.ts +0 -178
  525. package/dist/ui/glyphs.js +0 -165
  526. package/dist/ui/governance-copy.d.ts +0 -69
  527. package/dist/ui/governance-copy.js +0 -104
  528. package/dist/ui/governance-status.d.ts +0 -145
  529. package/dist/ui/governance-status.js +0 -326
  530. package/dist/ui/gradient.d.ts +0 -11
  531. package/dist/ui/gradient.js +0 -50
  532. package/dist/ui/ink-runtime.d.ts +0 -4
  533. package/dist/ui/ink-runtime.js +0 -51
  534. package/dist/ui/interaction-copy.d.ts +0 -82
  535. package/dist/ui/interaction-copy.js +0 -38
  536. package/dist/ui/interaction-hints.d.ts +0 -44
  537. package/dist/ui/interaction-hints.js +0 -97
  538. package/dist/ui/layout/AppShell.d.ts +0 -17
  539. package/dist/ui/layout/AppShell.js +0 -6
  540. package/dist/ui/layout/Gutter.d.ts +0 -67
  541. package/dist/ui/layout/Gutter.js +0 -42
  542. package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
  543. package/dist/ui/layout/MeasuredEntry.js +0 -30
  544. package/dist/ui/layout/OverlayFrame.d.ts +0 -73
  545. package/dist/ui/layout/OverlayFrame.js +0 -110
  546. package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
  547. package/dist/ui/layout/ScrollIndicator.js +0 -22
  548. package/dist/ui/layout/ScrollViewport.d.ts +0 -40
  549. package/dist/ui/layout/ScrollViewport.js +0 -222
  550. package/dist/ui/layout/agents-board.d.ts +0 -102
  551. package/dist/ui/layout/agents-board.js +0 -389
  552. package/dist/ui/layout/autocomplete.d.ts +0 -18
  553. package/dist/ui/layout/autocomplete.js +0 -26
  554. package/dist/ui/layout/budget.d.ts +0 -43
  555. package/dist/ui/layout/budget.js +0 -52
  556. package/dist/ui/layout/cells.d.ts +0 -61
  557. package/dist/ui/layout/cells.js +0 -156
  558. package/dist/ui/layout/document-layout.d.ts +0 -13
  559. package/dist/ui/layout/document-layout.js +0 -10
  560. package/dist/ui/layout/follow-state.d.ts +0 -138
  561. package/dist/ui/layout/follow-state.js +0 -148
  562. package/dist/ui/layout/frame.d.ts +0 -36
  563. package/dist/ui/layout/frame.js +0 -39
  564. package/dist/ui/layout/governance-board.d.ts +0 -121
  565. package/dist/ui/layout/governance-board.js +0 -382
  566. package/dist/ui/layout/governance-card.d.ts +0 -53
  567. package/dist/ui/layout/governance-card.js +0 -134
  568. package/dist/ui/layout/governance-chip.d.ts +0 -38
  569. package/dist/ui/layout/governance-chip.js +0 -64
  570. package/dist/ui/layout/governance-panel.d.ts +0 -85
  571. package/dist/ui/layout/governance-panel.js +0 -358
  572. package/dist/ui/layout/governance-roster.d.ts +0 -65
  573. package/dist/ui/layout/governance-roster.js +0 -275
  574. package/dist/ui/layout/header-hints.d.ts +0 -90
  575. package/dist/ui/layout/header-hints.js +0 -110
  576. package/dist/ui/layout/header-left.d.ts +0 -115
  577. package/dist/ui/layout/header-left.js +0 -206
  578. package/dist/ui/layout/invocation-card.d.ts +0 -41
  579. package/dist/ui/layout/invocation-card.js +0 -91
  580. package/dist/ui/layout/kit-chip.d.ts +0 -50
  581. package/dist/ui/layout/kit-chip.js +0 -81
  582. package/dist/ui/layout/overlay-window.d.ts +0 -43
  583. package/dist/ui/layout/overlay-window.js +0 -51
  584. package/dist/ui/layout/queue-layout.d.ts +0 -19
  585. package/dist/ui/layout/queue-layout.js +0 -26
  586. package/dist/ui/layout/rail.d.ts +0 -7
  587. package/dist/ui/layout/rail.js +0 -16
  588. package/dist/ui/layout/scroll-indicator.d.ts +0 -27
  589. package/dist/ui/layout/scroll-indicator.js +0 -36
  590. package/dist/ui/layout/scroll.d.ts +0 -37
  591. package/dist/ui/layout/scroll.js +0 -99
  592. package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
  593. package/dist/ui/layout/scrollbar-geometry.js +0 -13
  594. package/dist/ui/layout/session-chip.d.ts +0 -52
  595. package/dist/ui/layout/session-chip.js +0 -64
  596. package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
  597. package/dist/ui/layout/shortcut-panel-layout.js +0 -321
  598. package/dist/ui/layout/status-detail-layout.d.ts +0 -9
  599. package/dist/ui/layout/status-detail-layout.js +0 -79
  600. package/dist/ui/layout/status-layout.d.ts +0 -139
  601. package/dist/ui/layout/status-layout.js +0 -253
  602. package/dist/ui/layout/task-summary-cell.d.ts +0 -61
  603. package/dist/ui/layout/task-summary-cell.js +0 -65
  604. package/dist/ui/layout/team-panel.d.ts +0 -18
  605. package/dist/ui/layout/team-panel.js +0 -25
  606. package/dist/ui/layout/team-row.d.ts +0 -139
  607. package/dist/ui/layout/team-row.js +0 -246
  608. package/dist/ui/layout/todo-layout.d.ts +0 -62
  609. package/dist/ui/layout/todo-layout.js +0 -102
  610. package/dist/ui/layout/useTerminalSize.d.ts +0 -13
  611. package/dist/ui/layout/useTerminalSize.js +0 -50
  612. package/dist/ui/layout/viewport-geometry.d.ts +0 -29
  613. package/dist/ui/layout/viewport-geometry.js +0 -28
  614. package/dist/ui/layout/virtual-window.d.ts +0 -112
  615. package/dist/ui/layout/virtual-window.js +0 -488
  616. package/dist/ui/layout/wrap-rows.d.ts +0 -26
  617. package/dist/ui/layout/wrap-rows.js +0 -88
  618. package/dist/ui/live-clamp.d.ts +0 -14
  619. package/dist/ui/live-clamp.js +0 -46
  620. package/dist/ui/markdown-blocks.d.ts +0 -107
  621. package/dist/ui/markdown-blocks.js +0 -240
  622. package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
  623. package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
  624. package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
  625. package/dist/ui/overlays/ConfirmDialog.js +0 -44
  626. package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
  627. package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
  628. package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
  629. package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
  630. package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
  631. package/dist/ui/overlays/HelpOverlay.js +0 -232
  632. package/dist/ui/overlays/KitEditor.d.ts +0 -23
  633. package/dist/ui/overlays/KitEditor.js +0 -101
  634. package/dist/ui/overlays/KitManager.d.ts +0 -23
  635. package/dist/ui/overlays/KitManager.js +0 -104
  636. package/dist/ui/overlays/KitPicker.d.ts +0 -49
  637. package/dist/ui/overlays/KitPicker.js +0 -58
  638. package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
  639. package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
  640. package/dist/ui/overlays/ModelPicker.d.ts +0 -26
  641. package/dist/ui/overlays/ModelPicker.js +0 -63
  642. package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
  643. package/dist/ui/overlays/ModelProfileEditor.js +0 -168
  644. package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
  645. package/dist/ui/overlays/ModelProfilePicker.js +0 -231
  646. package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
  647. package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
  648. package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
  649. package/dist/ui/overlays/PromptEditorPage.js +0 -227
  650. package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
  651. package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
  652. package/dist/ui/overlays/PromptPicker.d.ts +0 -36
  653. package/dist/ui/overlays/PromptPicker.js +0 -129
  654. package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
  655. package/dist/ui/overlays/PromptTextArea.js +0 -141
  656. package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
  657. package/dist/ui/overlays/QuestionOverlay.js +0 -258
  658. package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
  659. package/dist/ui/overlays/QueueOverlay.js +0 -79
  660. package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
  661. package/dist/ui/overlays/SettingsScreen.js +0 -1037
  662. package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
  663. package/dist/ui/overlays/ShortcutPanel.js +0 -106
  664. package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
  665. package/dist/ui/overlays/TeamFanoutPage.js +0 -90
  666. package/dist/ui/overlays/governance-settings.d.ts +0 -79
  667. package/dist/ui/overlays/governance-settings.js +0 -140
  668. package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
  669. package/dist/ui/overlays/kit-picker-state.js +0 -136
  670. package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
  671. package/dist/ui/overlays/kit-settings-state.js +0 -268
  672. package/dist/ui/overlays/model-probe-view.d.ts +0 -128
  673. package/dist/ui/overlays/model-probe-view.js +0 -225
  674. package/dist/ui/overlays/model-profile-state.d.ts +0 -177
  675. package/dist/ui/overlays/model-profile-state.js +0 -301
  676. package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
  677. package/dist/ui/overlays/prompt-library-state.js +0 -335
  678. package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
  679. package/dist/ui/overlays/prompt-picker-state.js +0 -98
  680. package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
  681. package/dist/ui/overlays/team-fanout-state.js +0 -155
  682. package/dist/ui/overlays/use-model-probe.d.ts +0 -30
  683. package/dist/ui/overlays/use-model-probe.js +0 -109
  684. package/dist/ui/palettes.d.ts +0 -112
  685. package/dist/ui/palettes.js +0 -130
  686. package/dist/ui/paste-frames.d.ts +0 -91
  687. package/dist/ui/paste-frames.js +0 -117
  688. package/dist/ui/paste-tokens.d.ts +0 -90
  689. package/dist/ui/paste-tokens.js +0 -147
  690. package/dist/ui/render-cache.d.ts +0 -81
  691. package/dist/ui/render-cache.js +0 -196
  692. package/dist/ui/render-governor.d.ts +0 -54
  693. package/dist/ui/render-governor.js +0 -78
  694. package/dist/ui/run-metrics.d.ts +0 -23
  695. package/dist/ui/run-metrics.js +0 -27
  696. package/dist/ui/run-status-row.d.ts +0 -61
  697. package/dist/ui/run-status-row.js +0 -54
  698. package/dist/ui/screen.d.ts +0 -107
  699. package/dist/ui/screen.js +0 -234
  700. package/dist/ui/scrollback/LiveTail.d.ts +0 -115
  701. package/dist/ui/scrollback/LiveTail.js +0 -48
  702. package/dist/ui/scrollback/band.d.ts +0 -114
  703. package/dist/ui/scrollback/band.js +0 -143
  704. package/dist/ui/scrollback/budget.d.ts +0 -90
  705. package/dist/ui/scrollback/budget.js +0 -100
  706. package/dist/ui/scrollback/canvas.d.ts +0 -100
  707. package/dist/ui/scrollback/canvas.js +0 -114
  708. package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
  709. package/dist/ui/scrollback/cursor-probe.js +0 -133
  710. package/dist/ui/scrollback/drain.d.ts +0 -32
  711. package/dist/ui/scrollback/drain.js +0 -64
  712. package/dist/ui/scrollback/exit-summary.d.ts +0 -23
  713. package/dist/ui/scrollback/exit-summary.js +0 -25
  714. package/dist/ui/scrollback/limits.d.ts +0 -98
  715. package/dist/ui/scrollback/limits.js +0 -98
  716. package/dist/ui/scrollback/live-preview.d.ts +0 -34
  717. package/dist/ui/scrollback/live-preview.js +0 -118
  718. package/dist/ui/scrollback/overflow-print.d.ts +0 -108
  719. package/dist/ui/scrollback/overflow-print.js +0 -120
  720. package/dist/ui/scrollback/renderer.d.ts +0 -48
  721. package/dist/ui/scrollback/renderer.js +0 -186
  722. package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
  723. package/dist/ui/scrollback/scrollback-writer.js +0 -648
  724. package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
  725. package/dist/ui/scrollback/settled-boundary.js +0 -109
  726. package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
  727. package/dist/ui/scrollback/tail-anchor.js +0 -79
  728. package/dist/ui/scrollback/tail-window.d.ts +0 -73
  729. package/dist/ui/scrollback/tail-window.js +0 -89
  730. package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
  731. package/dist/ui/scrollback/use-scrollback-view.js +0 -601
  732. package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
  733. package/dist/ui/scrollback/writer-shapes.js +0 -159
  734. package/dist/ui/scrollbar-controller.d.ts +0 -30
  735. package/dist/ui/scrollbar-controller.js +0 -124
  736. package/dist/ui/selection/highlight.d.ts +0 -39
  737. package/dist/ui/selection/highlight.js +0 -64
  738. package/dist/ui/selection/screen-mirror.d.ts +0 -24
  739. package/dist/ui/selection/screen-mirror.js +0 -35
  740. package/dist/ui/selection/selection-controller.d.ts +0 -104
  741. package/dist/ui/selection/selection-controller.js +0 -372
  742. package/dist/ui/selection/selection.d.ts +0 -90
  743. package/dist/ui/selection/selection.js +0 -223
  744. package/dist/ui/shortcuts.d.ts +0 -81
  745. package/dist/ui/shortcuts.js +0 -221
  746. package/dist/ui/status-feedback.d.ts +0 -35
  747. package/dist/ui/status-feedback.js +0 -38
  748. package/dist/ui/stdout-frame-writer.d.ts +0 -74
  749. package/dist/ui/stdout-frame-writer.js +0 -155
  750. package/dist/ui/team-status.d.ts +0 -166
  751. package/dist/ui/team-status.js +0 -252
  752. package/dist/ui/terminal-plan.d.ts +0 -52
  753. package/dist/ui/terminal-plan.js +0 -49
  754. package/dist/ui/theme.d.ts +0 -96
  755. package/dist/ui/theme.js +0 -130
  756. package/dist/ui/transcript-text.d.ts +0 -41
  757. package/dist/ui/transcript-text.js +0 -282
  758. package/dist/ui/use-height-store.d.ts +0 -31
  759. package/dist/ui/use-height-store.js +0 -76
  760. package/dist/ui/use-render-governor.d.ts +0 -39
  761. package/dist/ui/use-render-governor.js +0 -57
  762. package/dist/ui/use-wheel-routing.d.ts +0 -57
  763. package/dist/ui/use-wheel-routing.js +0 -152
  764. package/dist/ui/win-vt-force.d.ts +0 -136
  765. package/dist/ui/win-vt-force.js +0 -237
  766. package/dist/ui/win-vt-input.d.ts +0 -57
  767. package/dist/ui/win-vt-input.js +0 -62
  768. package/dist/update/limits.d.ts +0 -111
  769. package/dist/update/limits.js +0 -111
  770. package/dist/update/semver.d.ts +0 -89
  771. package/dist/update/semver.js +0 -295
  772. package/dist/update/types.d.ts +0 -169
  773. package/dist/update/types.js +0 -68
  774. /package/dist/{ui → app}/session-bridge.d.ts +0 -0
  775. /package/dist/{ui → app}/session-bridge.js +0 -0
@@ -1,382 +0,0 @@
1
- /**
2
- * The `/gov board` overlay's model and geometry (governance-mode section 10.5): the tab
3
- * model, the data adapters, the row builders and the scroll arithmetic - every decision
4
- * the overlay makes, in pure code.
5
- *
6
- * Pure and total: no Ink, no clock (`now` is not even needed: rows carry sequence
7
- * numbers, not times), no I/O. ASCII ONLY.
8
- *
9
- * TWO DATA SOURCES, ONE SHAPE. The live `GovernanceSnapshot` knows the roster and the
10
- * ticker; the work-package matrix, the full ledger and the claims live in `RunState` /
11
- * `LedgerState`. `GovernanceBoardData` is the UI's own flat projection of all of it, with
12
- * two builders: `boardDataFromSnapshot` (what the renderer always has) and
13
- * `boardDataFromRun` (what the wiring can supply). A board built from the snapshot alone
14
- * still reads correctly - the tabs it cannot fill say so instead of going blank.
15
- *
16
- * EVERY ROW IS ONE TERMINAL ROW. Rows are `Segment[]` rendered `wrap="truncate"`, so
17
- * scrolling is arithmetic on a list length (`sliceWindow`), never a re-measure.
18
- */
19
- import { govChildStatus, labelTag, scoreText, scoreToneKey, segment, signedDeltaText, sortRoster, statusTone, } from '../governance-status.js';
20
- import { BOARD_EMPTY, BOARD_TAB_LABEL, ROLE_LABEL, STATE_WORD, WORKING_VERB, replacedByText, } from '../governance-copy.js';
21
- import { statusMarkerCell } from '../team-status.js';
22
- import { cellWidth, fitCells, padCells } from './cells.js';
23
- import { sliceWindow } from './overlay-window.js';
24
- export const BOARD_TABS = ['roster', 'work', 'ledger', 'claims'];
25
- /** Terminals narrower than this get the single-column form with a `1/4` pager. */
26
- export const BOARD_NARROW_COLS = 80;
27
- /** Recent ledger lines shown under each identity on the roster tab (spec 10.5). */
28
- export const BOARD_RECENT_PER_AGENT = 5;
29
- /** Ledger rows kept in the projection, newest first. */
30
- export const BOARD_LEDGER_MAX = 200;
31
- /** The tab `delta` steps away, wrapping at both ends. */
32
- export function stepTab(tab, delta) {
33
- const index = BOARD_TABS.indexOf(tab);
34
- const size = BOARD_TABS.length;
35
- return BOARD_TABS[(((index + delta) % size) + size) % size];
36
- }
37
- export function tabIndex(tab) {
38
- return BOARD_TABS.indexOf(tab);
39
- }
40
- /** What the renderer always has: the live snapshot. WPs and claims stay empty. */
41
- export function boardDataFromSnapshot(snapshot, boardPath = null) {
42
- const ledger = [...snapshot.recent]
43
- .sort((a, b) => b.at - a.at)
44
- .map((row, index) => ({
45
- seq: snapshot.recent.length - index,
46
- agentId: row.agentId,
47
- code: row.code,
48
- delta: row.delta,
49
- provisional: row.provisional,
50
- by: '',
51
- reason: row.reason,
52
- evidence: '',
53
- capped: false,
54
- }));
55
- return { snapshot, workPackages: [], ledger, claims: [], boardPath };
56
- }
57
- function workPackageRow(wp) {
58
- return {
59
- id: wp.id,
60
- title: wp.title,
61
- status: wp.status,
62
- reworkCount: wp.reworkCount,
63
- assignee: wp.assignee ?? '',
64
- reviewer: wp.reviewer ?? '',
65
- tester: wp.tester ?? '',
66
- fileCount: wp.files.length,
67
- blockedAt: wp.blockedAt ?? '',
68
- };
69
- }
70
- function claimRow(claim) {
71
- return {
72
- id: claim.id,
73
- kind: 'claim',
74
- status: claim.status,
75
- detail: claim.kind,
76
- subject: `${claim.raisedBy} -> ${claim.against} (${claim.wpId})`,
77
- text: claim.rulingText ?? claim.justification,
78
- };
79
- }
80
- function escalationRow(esc) {
81
- return {
82
- id: esc.id,
83
- kind: 'escalation',
84
- status: esc.status,
85
- detail: esc.kind,
86
- subject: esc.wpId ?? (esc.phase === undefined ? '' : `phase ${esc.phase + 1}`),
87
- text: esc.ruling ?? esc.topic,
88
- };
89
- }
90
- function ledgerRows(ledger) {
91
- const rows = [];
92
- for (const agent of Object.values(ledger.agents)) {
93
- for (const entry of agent.history) {
94
- rows.push({
95
- seq: entry.seq,
96
- agentId: agent.id,
97
- code: entry.code,
98
- delta: entry.delta,
99
- provisional: entry.settlement === 'provisional',
100
- by: entry.by,
101
- reason: entry.reason,
102
- evidence: entry.evidence ?? '',
103
- capped: entry.capped !== undefined,
104
- });
105
- }
106
- }
107
- return rows.sort((a, b) => b.seq - a.seq).slice(0, BOARD_LEDGER_MAX);
108
- }
109
- /** The full projection, for a wiring that can read the run and the ledger. */
110
- export function boardDataFromRun(input) {
111
- const { snapshot, run, ledger } = input;
112
- return {
113
- snapshot,
114
- workPackages: run.wpOrder
115
- .map((id) => run.workPackages[id])
116
- .filter((wp) => wp !== undefined)
117
- .map(workPackageRow),
118
- ledger: ledgerRows(ledger),
119
- claims: [...run.claims.map(claimRow), ...run.escalations.map(escalationRow)],
120
- boardPath: input.boardPath ?? null,
121
- };
122
- }
123
- function boardLine(key, segments) {
124
- return { key, segments };
125
- }
126
- function emptyLine(text) {
127
- return [boardLine('empty', [segment(text, 'muted')])];
128
- }
129
- function head(key, text) {
130
- return boardLine(key, [segment(text, 'muted')]);
131
- }
132
- function agentState(row) {
133
- return row.state === 'working' ? WORKING_VERB[row.role] : STATE_WORD[row.state];
134
- }
135
- function recentLines(data, agentId) {
136
- return data.ledger
137
- .filter((row) => row.agentId === agentId)
138
- .slice(0, BOARD_RECENT_PER_AGENT)
139
- .map((row) => boardLine(`${agentId}:r${row.seq}`, [
140
- segment(' ', 'muted'),
141
- segment(padCells(signedDeltaText(row.delta, row.provisional), 7), row.delta >= 0 ? 'ok' : 'error'),
142
- segment(padCells(row.code, 5), 'muted'),
143
- segment(row.reason.replace(/\s+/g, ' '), 'text'),
144
- ...(row.capped ? [segment(` [capped]`, 'warn')] : []),
145
- ]));
146
- }
147
- function rosterIdentityLine(row, glyphs, narrow) {
148
- const status = govChildStatus(row.state);
149
- const tone = statusTone(status);
150
- const score = row.confirmed === null ? '-' : scoreText(row.confirmed);
151
- const prov = row.provisional > 0 ? `+${row.provisional}P` : '';
152
- const tag = labelTag(row.label);
153
- const marker = ` ${statusMarkerCell(status, glyphs)} `;
154
- if (narrow) {
155
- return boardLine(row.id, [
156
- segment(marker, tone),
157
- segment(padCells(row.id, 9), 'primary'),
158
- segment(padCells(ROLE_LABEL[row.role], 5), 'muted'),
159
- segment(padCells(score, 5), scoreToneKey(row.label), true),
160
- segment(prov, 'muted'),
161
- ...(tag === '' ? [] : [segment(` ${tag}`, scoreToneKey(row.label), true)]),
162
- ]);
163
- }
164
- const state = row.state === 'eliminated' ? replacedByText(row.replacedBy) : agentState(row);
165
- return boardLine(row.id, [
166
- segment(marker, tone),
167
- segment(padCells(row.id, 10), 'primary'),
168
- segment(padCells(ROLE_LABEL[row.role], 6), 'muted'),
169
- segment(padCells(`g${row.generation}`, 4), 'muted'),
170
- segment(padCells(score, 6), scoreToneKey(row.label), true),
171
- segment(padCells(prov, 7), 'muted'),
172
- segment(padCells(tag, 8), scoreToneKey(row.label), true),
173
- segment(padCells(state, 22), tone),
174
- segment(row.wpId ?? '-', 'text'),
175
- ]);
176
- }
177
- function rosterRows(data, glyphs, narrow) {
178
- const roster = sortRoster(data.snapshot.roster);
179
- if (roster.length === 0)
180
- return emptyLine(BOARD_EMPTY.roster);
181
- const lines = narrow
182
- ? []
183
- : [head('h', ' id role gen score prov label state work')];
184
- for (const row of roster) {
185
- lines.push(rosterIdentityLine(row, glyphs, narrow));
186
- lines.push(...recentLines(data, row.id));
187
- }
188
- return lines;
189
- }
190
- const WP_TONE = {
191
- pending: 'pending',
192
- dev_running: 'running',
193
- awaiting_review: 'pending',
194
- review_running: 'running',
195
- awaiting_test: 'pending',
196
- test_running: 'running',
197
- rework: 'warn',
198
- tested_ok: 'ok',
199
- integrated: 'ok',
200
- blocked: 'error',
201
- dropped: 'muted',
202
- };
203
- function workRows(data, narrow) {
204
- if (data.workPackages.length === 0)
205
- return emptyLine(BOARD_EMPTY.work);
206
- const lines = narrow
207
- ? []
208
- : [head('h', 'wp status rw dev rev test files title')];
209
- for (const wp of data.workPackages) {
210
- const status = wp.blockedAt === '' ? wp.status : `${wp.status}@${wp.blockedAt}`;
211
- if (narrow) {
212
- lines.push(boardLine(wp.id, [
213
- segment(padCells(wp.id, 12), 'primary'),
214
- segment(status, WP_TONE[wp.status]),
215
- ...(wp.reworkCount > 0 ? [segment(` rw${wp.reworkCount}`, 'warn')] : []),
216
- ]));
217
- lines.push(boardLine(`${wp.id}:t`, [segment(` ${wp.title}`, 'muted')]));
218
- continue;
219
- }
220
- lines.push(boardLine(wp.id, [
221
- segment(padCells(wp.id, 12), 'primary'),
222
- segment(padCells(status, 18), WP_TONE[wp.status]),
223
- segment(padCells(String(wp.reworkCount), 4), wp.reworkCount > 0 ? 'warn' : 'muted'),
224
- segment(padCells(wp.assignee || '-', 9), 'text'),
225
- segment(padCells(wp.reviewer || '-', 9), 'text'),
226
- segment(padCells(wp.tester || '-', 9), 'text'),
227
- segment(padCells(String(wp.fileCount), 7), 'muted'),
228
- segment(wp.title, 'muted'),
229
- ]));
230
- }
231
- return lines;
232
- }
233
- function ledgerBoardRows(data, narrow) {
234
- if (data.ledger.length === 0)
235
- return emptyLine(BOARD_EMPTY.ledger);
236
- const lines = narrow
237
- ? []
238
- : [head('h', '# agent delta code by reason')];
239
- for (const row of data.ledger) {
240
- const tone = row.delta >= 0 ? 'ok' : 'error';
241
- const amount = signedDeltaText(row.delta, row.provisional);
242
- const reason = row.reason.replace(/\s+/g, ' ');
243
- const cap = row.capped ? [segment(' [capped]', 'warn')] : [];
244
- if (narrow) {
245
- lines.push(boardLine(`l${row.seq}:${row.agentId}`, [
246
- segment(padCells(row.agentId, 9), 'primary'),
247
- segment(padCells(amount, 7), tone),
248
- segment(padCells(row.code, 5), 'muted'),
249
- segment(reason, 'text'),
250
- ...cap,
251
- ]));
252
- }
253
- else {
254
- lines.push(boardLine(`l${row.seq}:${row.agentId}`, [
255
- segment(padCells(String(row.seq), 7), 'muted'),
256
- segment(padCells(row.agentId, 10), 'primary'),
257
- segment(padCells(amount, 8), tone),
258
- segment(padCells(row.code, 6), 'muted'),
259
- segment(padCells(row.by, 19), 'muted'),
260
- segment(reason, 'text'),
261
- ...cap,
262
- ]));
263
- }
264
- if (row.evidence !== '') {
265
- lines.push(boardLine(`l${row.seq}:${row.agentId}:e`, [
266
- segment(` evidence: ${row.evidence.replace(/\s+/g, ' ')}`, 'muted'),
267
- ]));
268
- }
269
- }
270
- return lines;
271
- }
272
- function claimsRows(data, narrow) {
273
- if (data.claims.length === 0)
274
- return emptyLine(BOARD_EMPTY.claims);
275
- const lines = [];
276
- for (const claim of data.claims) {
277
- const open = claim.status === 'open';
278
- lines.push(boardLine(claim.id, [
279
- segment(padCells(claim.id, 8), 'primary'),
280
- segment(padCells(claim.status, 10), open ? 'warn' : 'ok', open),
281
- ...(narrow ? [] : [segment(padCells(claim.detail, 20), 'muted')]),
282
- segment(claim.subject, 'text'),
283
- ]));
284
- if (claim.text !== '') {
285
- lines.push(boardLine(`${claim.id}:t`, [
286
- segment(` ${claim.text.replace(/\s+/g, ' ')}`, 'muted'),
287
- ]));
288
- }
289
- }
290
- return lines;
291
- }
292
- function tabCount(tab, data) {
293
- switch (tab) {
294
- case 'roster':
295
- return data.snapshot.roster.length;
296
- case 'work':
297
- return data.workPackages.length;
298
- case 'ledger':
299
- return data.ledger.length;
300
- case 'claims':
301
- return data.claims.filter((claim) => claim.status === 'open').length;
302
- }
303
- }
304
- export function buildTabStrip(tab, data, narrow, glyphs) {
305
- if (narrow) {
306
- const pager = `${tabIndex(tab) + 1}/${BOARD_TABS.length}`;
307
- return {
308
- pager,
309
- segments: [
310
- segment(`${glyphs.arrowLeft} `, 'muted'),
311
- segment(BOARD_TAB_LABEL[tab], 'govern', true),
312
- segment(` ${pager} ${glyphs.arrowRight}`, 'muted'),
313
- ],
314
- };
315
- }
316
- const segments = [];
317
- BOARD_TABS.forEach((candidate, index) => {
318
- if (index > 0)
319
- segments.push(segment(` ${glyphs.midDot} `, 'border'));
320
- const active = candidate === tab;
321
- const count = tabCount(candidate, data);
322
- segments.push(segment(`${active ? glyphs.cursor : ' '}${BOARD_TAB_LABEL[candidate]}`, active ? 'govern' : 'muted', active));
323
- if (count > 0)
324
- segments.push(segment(` ${count}`, active ? 'text' : 'hint'));
325
- });
326
- return { segments, pager: '' };
327
- }
328
- const NO_RUN_LINES = [boardLine('norun', [segment(BOARD_EMPTY.noRun, 'muted')])];
329
- export function buildGovernanceBoardLayout(input) {
330
- const { tab, data, glyphs } = input;
331
- const narrow = input.cols < BOARD_NARROW_COLS;
332
- if (data === null) {
333
- const strip = { segments: [segment(BOARD_TAB_LABEL[tab], 'govern', true)], pager: '' };
334
- return { narrow, tabStrip: strip, lines: NO_RUN_LINES };
335
- }
336
- const tabStrip = buildTabStrip(tab, data, narrow, glyphs);
337
- switch (tab) {
338
- case 'roster':
339
- return { narrow, tabStrip, lines: rosterRows(data, glyphs, narrow) };
340
- case 'work':
341
- return { narrow, tabStrip, lines: workRows(data, narrow) };
342
- case 'ledger':
343
- return { narrow, tabStrip, lines: ledgerBoardRows(data, narrow) };
344
- case 'claims':
345
- return { narrow, tabStrip, lines: claimsRows(data, narrow) };
346
- }
347
- }
348
- // ---------------------------------------------------------------------------
349
- // Scroll windowing
350
- // ---------------------------------------------------------------------------
351
- /** Body rows left for content once the tab strip has taken one of the frame's rows. */
352
- export function boardBodyRows(frameBodyRows) {
353
- return Math.max(1, Math.floor(frameBodyRows) - 1);
354
- }
355
- export function boardWindow(total, offset, height) {
356
- return sliceWindow(total, offset, height);
357
- }
358
- /** Position text for the footer, e.g. `3-14/40`; '' when everything fits. */
359
- export function boardPosition(window, glyphs) {
360
- if (window.visible >= window.total)
361
- return '';
362
- const up = window.start > 0 ? glyphs.arrowUp : ' ';
363
- const down = window.start + window.visible < window.total ? glyphs.arrowDown : ' ';
364
- return `${up}${down} ${window.start + 1}-${window.start + window.visible}/${window.total}`;
365
- }
366
- /** Footer hint, shortened to the width the frame can print on one row. */
367
- export function boardHint(cols, glyphs) {
368
- const dot = ` ${glyphs.midDot} `;
369
- const full = [
370
- `${glyphs.arrowLeft}/${glyphs.arrowRight} tab`,
371
- `${glyphs.arrowUp}/${glyphs.arrowDown} PgUp/PgDn scroll`,
372
- 'e copy path',
373
- 'Esc close',
374
- ];
375
- for (let size = full.length; size >= 1; size -= 1) {
376
- const kept = size === full.length ? full : [...full.slice(0, size - 1), full[full.length - 1]];
377
- const text = kept.join(dot);
378
- if (cellWidth(text) <= cols)
379
- return text;
380
- }
381
- return fitCells('Esc close', Math.max(0, cols), glyphs.ellipsis);
382
- }
@@ -1,53 +0,0 @@
1
- /**
2
- * The settlement card's layout (governance-mode section 10.4): what a
3
- * `kind: 'governance'` transcript entry says, as pure data, plus the plain-text export
4
- * of the same card.
5
- *
6
- * Pure and total. ASCII ONLY.
7
- *
8
- * WIDTH-INDEPENDENT ON PURPOSE. A transcript entry is measured by two parties that must
9
- * agree - `virtual-window.ts::estimateEntryRows` and the Ink tree - and neither is handed
10
- * the terminal width for a card (`EntryView` has no `cols`). Every line here is
11
- * single-row and rendered `wrap="truncate"`, so the card's HEIGHT is a function of the
12
- * data alone (`governanceCardRows`) and the estimate is exact rather than an upper bound.
13
- * The spec's "narrow terminal -> one plain line per agent" falls out for free: the table
14
- * is only a fixed prefix (id, role, confirmed) and an elastic delta, so truncation at 40
15
- * columns leaves exactly `dev1 DEV 115 +15P->...`.
16
- */
17
- import type { GovernanceCardData } from '../../governance/types.js';
18
- import type { Glyphs } from '../glyphs.js';
19
- import { type Segment, type Tone } from '../governance-status.js';
20
- export interface CardTableRow {
21
- key: string;
22
- cells: Segment[][];
23
- }
24
- export interface GovernanceCardLayout {
25
- /** Rail / headline tone for the whole card. */
26
- tone: Tone;
27
- title: Segment[];
28
- headline: Segment[] | null;
29
- /** Fixed prefix widths: id, role, confirmed. The delta cell is elastic. */
30
- widths: [number, number, number];
31
- tableHeader: Segment[][] | null;
32
- rows: CardTableRow[];
33
- notes: Segment[] | null;
34
- height: number;
35
- }
36
- export declare function cardTone(card: GovernanceCardData): Tone;
37
- /**
38
- * Colour the signed tokens of a delta text: `+15P->C D1 +10 D12 -20 D5`. Gains read in
39
- * the success tone, losses in the error tone, event codes stay muted. The spelling comes
40
- * from the engine (`deltaText`), this only paints it.
41
- */
42
- export declare function colorizeDelta(text: string): Segment[];
43
- export declare function buildGovernanceCardLayout(card: GovernanceCardData, glyphs: Glyphs): GovernanceCardLayout;
44
- /**
45
- * The card's row count, from the data alone: title, headline, table header + one row per
46
- * agent, notes. Exact (not an upper bound) because every line truncates instead of wrapping.
47
- */
48
- export declare function governanceCardRows(card: GovernanceCardData): number;
49
- /**
50
- * The card as plain lines for `/export` and `/save` (no colour, ASCII-safe through
51
- * `glyphs`). The caller indents them; the text matches what the card prints.
52
- */
53
- export declare function governanceCardLines(card: GovernanceCardData, glyphs: Glyphs): string[];
@@ -1,134 +0,0 @@
1
- /**
2
- * The settlement card's layout (governance-mode section 10.4): what a
3
- * `kind: 'governance'` transcript entry says, as pure data, plus the plain-text export
4
- * of the same card.
5
- *
6
- * Pure and total. ASCII ONLY.
7
- *
8
- * WIDTH-INDEPENDENT ON PURPOSE. A transcript entry is measured by two parties that must
9
- * agree - `virtual-window.ts::estimateEntryRows` and the Ink tree - and neither is handed
10
- * the terminal width for a card (`EntryView` has no `cols`). Every line here is
11
- * single-row and rendered `wrap="truncate"`, so the card's HEIGHT is a function of the
12
- * data alone (`governanceCardRows`) and the estimate is exact rather than an upper bound.
13
- * The spec's "narrow terminal -> one plain line per agent" falls out for free: the table
14
- * is only a fixed prefix (id, role, confirmed) and an elastic delta, so truncation at 40
15
- * columns leaves exactly `dev1 DEV 115 +15P->...`.
16
- */
17
- import { segment } from '../governance-status.js';
18
- import { CARD_COLUMNS, CARD_TITLE } from '../governance-copy.js';
19
- import { cellWidth, padCells } from './cells.js';
20
- const TONE_OF_CARD = {
21
- ok: 'ok',
22
- warn: 'warn',
23
- error: 'error',
24
- info: 'govern',
25
- };
26
- export function cardTone(card) {
27
- return TONE_OF_CARD[card.tone];
28
- }
29
- /** The glyph in front of the headline: what the card's verdict looks like at a glance. */
30
- function toneGlyph(tone, glyphs) {
31
- switch (tone) {
32
- case 'ok':
33
- return glyphs.check;
34
- case 'warn':
35
- return glyphs.warn;
36
- case 'error':
37
- return glyphs.times;
38
- case 'info':
39
- return glyphs.bullet;
40
- }
41
- }
42
- /**
43
- * Colour the signed tokens of a delta text: `+15P->C D1 +10 D12 -20 D5`. Gains read in
44
- * the success tone, losses in the error tone, event codes stay muted. The spelling comes
45
- * from the engine (`deltaText`), this only paints it.
46
- */
47
- export function colorizeDelta(text) {
48
- return text
49
- .split(/(\s+)/)
50
- .filter((part) => part !== '')
51
- .map((part) => {
52
- if (/^\+\d/.test(part))
53
- return segment(part, 'ok');
54
- if (/^-\d/.test(part))
55
- return segment(part, 'error');
56
- return segment(part, 'muted');
57
- });
58
- }
59
- function titleText(card, glyphs) {
60
- const detail = card.title.trim();
61
- if (detail === '')
62
- return CARD_TITLE;
63
- return /^governance\b/i.test(detail) ? detail : `${CARD_TITLE} ${glyphs.midDot} ${detail}`;
64
- }
65
- const ID_MIN = 6;
66
- const ID_MAX = 14;
67
- const ROLE_CELLS = 6;
68
- const CONFIRMED_CELLS = 11;
69
- export function buildGovernanceCardLayout(card, glyphs) {
70
- const tone = cardTone(card);
71
- const idCells = Math.min(ID_MAX, Math.max(ID_MIN, ...card.rows.map((row) => cellWidth(row.id) + 2)));
72
- const headlineText = card.headline.trim();
73
- const rows = card.rows.map((row, index) => ({
74
- key: `${row.id}:${index}`,
75
- cells: [
76
- [segment(padCells(row.id, idCells), 'primary')],
77
- [segment(padCells(row.role, ROLE_CELLS), 'muted')],
78
- [segment(padCells(row.confirmed === null ? '-' : String(Math.round(row.confirmed)), CONFIRMED_CELLS), 'text', true)],
79
- colorizeDelta(row.deltaText),
80
- ],
81
- }));
82
- const tableHeader = rows.length === 0
83
- ? null
84
- : [
85
- [segment(padCells(CARD_COLUMNS.id, idCells), 'muted')],
86
- [segment(padCells(CARD_COLUMNS.role, ROLE_CELLS), 'muted')],
87
- [segment(padCells(CARD_COLUMNS.confirmed, CONFIRMED_CELLS), 'muted')],
88
- [segment(CARD_COLUMNS.delta, 'muted')],
89
- ];
90
- const notes = card.notes.length === 0
91
- ? null
92
- : [segment(`notes: ${card.notes.join('; ')}`, 'muted')];
93
- return {
94
- tone,
95
- title: [segment(titleText(card, glyphs), 'govern', true)],
96
- headline: headlineText === ''
97
- ? null
98
- : [segment(`${toneGlyph(card.tone, glyphs)} `, tone, true), segment(headlineText, 'text')],
99
- widths: [idCells, ROLE_CELLS, CONFIRMED_CELLS],
100
- tableHeader,
101
- rows,
102
- notes,
103
- height: governanceCardRows(card),
104
- };
105
- }
106
- /**
107
- * The card's row count, from the data alone: title, headline, table header + one row per
108
- * agent, notes. Exact (not an upper bound) because every line truncates instead of wrapping.
109
- */
110
- export function governanceCardRows(card) {
111
- return 1
112
- + Number(card.headline.trim() !== '')
113
- + (card.rows.length > 0 ? 1 + card.rows.length : 0)
114
- + Number(card.notes.length > 0);
115
- }
116
- /**
117
- * The card as plain lines for `/export` and `/save` (no colour, ASCII-safe through
118
- * `glyphs`). The caller indents them; the text matches what the card prints.
119
- */
120
- export function governanceCardLines(card, glyphs) {
121
- const layout = buildGovernanceCardLayout(card, glyphs);
122
- const flat = (segments) => segments.map((s) => s.text).join('');
123
- const lines = [flat(layout.title)];
124
- if (layout.headline)
125
- lines.push(flat(layout.headline));
126
- if (layout.tableHeader) {
127
- lines.push(layout.tableHeader.map(flat).join('').trimEnd());
128
- for (const row of layout.rows)
129
- lines.push(row.cells.map(flat).join('').trimEnd());
130
- }
131
- if (layout.notes)
132
- lines.push(flat(layout.notes));
133
- return lines;
134
- }
@@ -1,38 +0,0 @@
1
- /**
2
- * The status bar's governance chip: pure width planning, no JSX
3
- * (governance-mode section 10.2).
4
- *
5
- * ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
6
- *
7
- * SAME SHAPE AS `kit-chip.ts` / `session-chip.ts`, for the same reason: the status row is
8
- * measured cell by cell, and a chip appended "just to the right" eats `phase`, the one
9
- * field a user needs mid-run. The chip therefore competes for the SAME budget as every
10
- * other field: it takes the longest rung that still leaves the left half its floor.
11
- *
12
- * THE LADDER (spec 10.2): `GOV p2/3 REVIEW` -> `GOV p2/3` -> `GOV`. A paused run reads
13
- * `GOV paused`, one with a `/gov pause` still pending `GOV pausing` (warn tone: the stop is
14
- * coming), an escalated one `GOV ! escalated` (warn tone - it is the run asking for
15
- * the user), and a budget at or past 80% appends ` $` at every rung where there is room,
16
- * because the hint is worth more than the stage name when space is short.
17
- */
18
- import type { GovernanceSnapshot } from '../../governance/types.js';
19
- import { type Tone } from '../governance-status.js';
20
- export declare const GOVERNANCE_CHIP_LIMITS: {
21
- /** Blank cells between the chip and the field run. */
22
- readonly gapCells: 2;
23
- /** The floor the left half must keep; the same 34 the session and kit chips use. */
24
- readonly minStatusCells: 34;
25
- };
26
- export interface GovernanceChipPlan {
27
- visible: boolean;
28
- text: string;
29
- cells: number;
30
- gap: number;
31
- tone: Tone;
32
- }
33
- export interface GovernanceChipInput {
34
- columns: number;
35
- snapshot?: GovernanceSnapshot | null | undefined;
36
- }
37
- /** Plan the chip for `columns` and this session's live run snapshot. */
38
- export declare function planGovernanceChip(input: GovernanceChipInput): GovernanceChipPlan;
@@ -1,64 +0,0 @@
1
- /**
2
- * The status bar's governance chip: pure width planning, no JSX
3
- * (governance-mode section 10.2).
4
- *
5
- * ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
6
- *
7
- * SAME SHAPE AS `kit-chip.ts` / `session-chip.ts`, for the same reason: the status row is
8
- * measured cell by cell, and a chip appended "just to the right" eats `phase`, the one
9
- * field a user needs mid-run. The chip therefore competes for the SAME budget as every
10
- * other field: it takes the longest rung that still leaves the left half its floor.
11
- *
12
- * THE LADDER (spec 10.2): `GOV p2/3 REVIEW` -> `GOV p2/3` -> `GOV`. A paused run reads
13
- * `GOV paused`, one with a `/gov pause` still pending `GOV pausing` (warn tone: the stop is
14
- * coming), an escalated one `GOV ! escalated` (warn tone - it is the run asking for
15
- * the user), and a budget at or past 80% appends ` $` at every rung where there is room,
16
- * because the hint is worth more than the stage name when space is short.
17
- */
18
- import { budgetState, isFinishedRun, isPausePending, activeStepKey, } from '../governance-status.js';
19
- import { PIPELINE_LABEL, STATUS_WORD, phaseText } from '../governance-copy.js';
20
- export const GOVERNANCE_CHIP_LIMITS = {
21
- /** Blank cells between the chip and the field run. */
22
- gapCells: 2,
23
- /** The floor the left half must keep; the same 34 the session and kit chips use. */
24
- minStatusCells: 34,
25
- };
26
- const HIDDEN = { visible: false, text: '', cells: 0, gap: 0, tone: 'muted' };
27
- /** Candidate texts, longest first. ASCII `!` is the escalation mark in both glyph tiers. */
28
- function rungs(snapshot) {
29
- const budget = budgetState(snapshot);
30
- const hint = budget === 'warn' || budget === 'over' ? ' $' : '';
31
- if (isPausePending(snapshot)) {
32
- return [`GOV ${STATUS_WORD.pausing}${hint}`, `GOV${hint}`];
33
- }
34
- if (snapshot.status === 'paused')
35
- return [`GOV paused${hint}`, `GOV${hint}`];
36
- if (snapshot.status === 'escalated') {
37
- return [`GOV ! escalated${hint}`, `GOV !${hint}`, 'GOV !'];
38
- }
39
- const phase = phaseText(snapshot.phase, snapshot.phaseCount);
40
- const stage = activeStepKey(snapshot);
41
- const named = stage === null ? phase : `${phase} ${PIPELINE_LABEL[stage]}`;
42
- return [`GOV ${named}${hint}`, `GOV ${phase}${hint}`, `GOV${hint}`, 'GOV'];
43
- }
44
- function chipTone(snapshot) {
45
- if (snapshot.status === 'escalated' || budgetState(snapshot) === 'over')
46
- return 'warn';
47
- if (isPausePending(snapshot))
48
- return 'warn';
49
- return snapshot.status === 'paused' ? 'muted' : 'govern';
50
- }
51
- /** Plan the chip for `columns` and this session's live run snapshot. */
52
- export function planGovernanceChip(input) {
53
- const snapshot = input.snapshot;
54
- if (!snapshot || isFinishedRun(snapshot.status))
55
- return HIDDEN;
56
- const columns = Number.isFinite(input.columns) ? Math.floor(input.columns) : 0;
57
- const gap = GOVERNANCE_CHIP_LIMITS.gapCells;
58
- for (const text of rungs(snapshot)) {
59
- if (columns - (text.length + gap) >= GOVERNANCE_CHIP_LIMITS.minStatusCells) {
60
- return { visible: true, text, cells: text.length, gap, tone: chipTone(snapshot) };
61
- }
62
- }
63
- return HIDDEN;
64
- }