@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,222 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * CompactionCard — one context compaction in the transcript
4
- * (context-auto-compaction §6.3).
5
- *
6
- * ASCII ONLY: every glyph comes from `pickGlyphs`, INCLUDING THE ARROW. The mock
7
- * in the design shows `112 -> 9 messages`; that arrow is `glyphs.arrowRight`, the
8
- * one `StatusBar` already uses, not a literal — `ui/` is inside
9
- * `glyphs.test.ts::inScope`, so a literal here fails the scan (P2-7).
10
- *
11
- * EXPANDABLE, UNLIKE `FastCard`. A critique is already clamped to
12
- * `fast.reviewMaxChars` before it reaches its card, so there is nothing hidden
13
- * for Ctrl+O to reveal; a summary is up to `summaryMaxChars` and there genuinely
14
- * is more to see. That is why `App`'s Ctrl+O predicate had to learn about this
15
- * kind — without it the card renders a hint that does nothing and expands an
16
- * older tool card instead (C-15 / P1-8 / AC-21).
17
- *
18
- * EVERY STRING DESCRIBES THE HISTORY, NEVER THE SCREEN (§6.4 / P2-9).
19
- * `/clear screen` empties the transcript view but not `messages`, so this card
20
- * can legitimately report a message count the visible rows do not add up to.
21
- * Nothing here says "above" or "earlier in this transcript". `/clear` itself is
22
- * the conversation boundary now: it drops the history and this card with it.
23
- */
24
- import React from 'react';
25
- import { Box, Text } from 'ink';
26
- import Spinner from 'ink-spinner';
27
- import { pickGlyphs } from '../glyphs.js';
28
- import { railBorderProps } from '../layout/Gutter.js';
29
- import { formatDuration, formatTokens } from '../../agent/usage.js';
30
- import { COMPACTION_LIMITS } from '../../compaction/limits.js';
31
- import { compactionPhaseLabel, compactionReasonLine } from '../../compaction/reason-text.js';
32
- /**
33
- * The card's colour.
34
- *
35
- * `truncated` is a WARNING rather than the accent, because it is a real and
36
- * bounded data loss the user is entitled to notice; `applied: false` is an error
37
- * because the run is still at the occupancy that triggered it.
38
- */
39
- export function compactionCardColor(props, theme) {
40
- if (props.live)
41
- return theme.toolRunning;
42
- if (!props.applied)
43
- return theme.toolError;
44
- if (props.mode === 'truncated' || props.mode === 'relieved')
45
- return theme.noticeWarn;
46
- return theme.accent;
47
- }
48
- /** The one-line summary of what the compaction did, or why it did not. */
49
- function headline(props, arrow, dot) {
50
- const { index, live } = props;
51
- // The model is `''` when no summarizer resolves (no key for the provider), and
52
- // the separator has to go with it — a headline ending in a dangling ` - `
53
- // reads as a rendering fault rather than as the missing model it is.
54
- if (live) {
55
- // ELAPSED IN THE SAME POSITION `durationMs` TAKES ONCE SETTLED, so the number
56
- // does not jump across the line when the card settles. Between second 0 and
57
- // second 45 this was the only changing information on the card, and there was
58
- // none.
59
- const elapsed = props.elapsedMs === undefined ? '' : `${dot}${formatDuration(props.elapsedMs)}`;
60
- // THE STAGE, NOT JUST "COMPACTING" (never-fires C). Planning and digesting run
61
- // before any model call, and a user watching a card for twenty seconds cannot
62
- // tell "thinking hard" from "stuck in a gate" without it.
63
- const stage = props.phase === undefined ? '' : `${dot}${compactionPhaseLabel(props.phase)}`;
64
- return props.model
65
- ? `compacting context #${index}${dot}${props.model}${stage}${elapsed}`
66
- : `compacting context #${index}${stage}${elapsed}`;
67
- }
68
- if (!props.applied || props.tokensAfter >= props.tokensBefore) {
69
- // THE REASON IN WORDS (never-fires C). `digest_budget_exceeded: $.digest` was
70
- // a code the user could not act on; `compactionReasonLine` renders the same
71
- // fact as a clause plus, where there is one, the remedy.
72
- const why = props.reason ? `: ${compactionReasonLine(props.reason)}` : '';
73
- return `context not compacted #${index}${why}`;
74
- }
75
- const messages = `${props.messagesBefore} ${arrow} ${props.messagesAfter} messages`;
76
- const tokens = `${formatTokens(props.tokensBefore)} ${arrow} ${formatTokens(props.tokensAfter)} tokens`;
77
- const duration = props.durationMs === undefined ? '' : `${dot}${formatDuration(props.durationMs)}`;
78
- return `context compacted${dot}${messages}${dot}${tokens}${duration}`;
79
- }
80
- /**
81
- * The muted second line: how it was done, and with what.
82
- *
83
- * THE LIVE BRANCH NAMES THE ESCAPE (§3.6 / E-10). `AgentController.abort()` has
84
- * always called `this.compaction?.abort()` before `agent.abort()`, so Esc has
85
- * always cancelled an in-flight summarization - and no surface has ever said so
86
- * during the forty-five seconds it matters. The hint goes with the model for the
87
- * same reason the separator does: with no summarizer resolved there is no call to
88
- * cancel.
89
- *
90
- * THE `relieved` BRANCH COMES BEFORE `truncated`, AND IT EXISTS BECAUSE THE
91
- * `summarized` LINE WOULD OTHERWISE LIE. Relief drops no messages, so the
92
- * fall-through would render "summarized 0 messages with <model>" for a
93
- * compaction in which no model was called - in the rare, alarming case the user
94
- * most needs to read correctly.
95
- */
96
- function detailLine(props) {
97
- if (props.live) {
98
- // THE ESCAPE, NOT THE STAGE (never-fires C, as corrected in review): the live
99
- // headline already carries the stage, and a two-line card that names it twice
100
- // is the one-fact-one-surface rule this file keeps having to restore. With no
101
- // model resolved there is no call to cancel, so the whole line goes - the same
102
- // rule the settled branch applies.
103
- if (!props.model)
104
- return '';
105
- if (props.phase !== undefined)
106
- return 'esc to cancel';
107
- return `summarizing with ${props.model} - esc to cancel`;
108
- }
109
- if (!props.applied || props.tokensAfter >= props.tokensBefore)
110
- return 'History preserved.';
111
- const dropped = Math.max(0, props.messagesBefore - props.messagesAfter);
112
- if (props.mode === 'relieved') {
113
- const n = props.tailRelief?.messages ?? 0;
114
- return `clipped ${n} tool ${n === 1 ? 'result' : 'results'} in the retained turns - nothing could be dropped`;
115
- }
116
- if (props.mode === 'truncated') {
117
- return `dropped ${dropped} messages WITHOUT a summary - summarization failed`;
118
- }
119
- const via = props.trigger === 'overflow' ? ' after a context overflow' : '';
120
- return `summarized ${dropped} messages with ${props.model}${via}`;
121
- }
122
- /**
123
- * The relaxation disclosure (never-fires B).
124
- *
125
- * `planCompaction`'s second pass trades "the last N user turns are verbatim" for
126
- * "a cut exists at all". That trade must be readable, because the difference
127
- * between the two compactions is exactly what the user asked for: the tail is the
128
- * part they care most about keeping word for word.
129
- */
130
- function relaxedLine(props) {
131
- if (props.live || !props.applied || props.keepRelaxed !== true)
132
- return '';
133
- const turns = props.retainedTurns ?? 0;
134
- const wanted = props.keepRecentTurnsUsed;
135
- const messages = props.retainedMessages;
136
- // THE TAIL IS MESSAGES, NOT TURNS (review). The dominant relaxed shape is one
137
- // prompt plus a hundred tool calls, so `retainedTurns` is 0 while forty messages
138
- // were kept verbatim: a line reading "kept 0 recent turns" would report a total
139
- // loss that did not happen. Whenever the count is available it leads, and the
140
- // turn arithmetic follows as the explanation rather than as the headline.
141
- if (messages !== undefined && wanted !== undefined) {
142
- return `kept the last ${messages} messages - ${turns} of the ${wanted} requested turns, ` +
143
- 'since this run had too few user turns';
144
- }
145
- if (messages !== undefined)
146
- return `kept the last ${messages} messages verbatim`;
147
- return wanted === undefined
148
- ? `kept the last ${turns} turns - this run had too few user turns to keep more`
149
- : `kept ${turns} of the ${wanted} requested turns - this run had too few user turns`;
150
- }
151
- /**
152
- * The digest-elision disclosure (never-fires A1).
153
- *
154
- * The digest never rejects for length any more; it keeps the first and last
155
- * entries verbatim and elides the middle. The elided messages cannot be quoted by
156
- * the summarizer, so the card says so rather than presenting a summary as if it
157
- * had seen everything.
158
- */
159
- function elidedLine(props) {
160
- const n = props.elidedMessages ?? 0;
161
- if (props.live || n <= 0)
162
- return '';
163
- return `elided ${n} ${n === 1 ? 'message' : 'messages'} from the summary input - ` +
164
- 'the middle is summarized without them';
165
- }
166
- /**
167
- * The relief disclosure, on a settled card that ALSO summarized.
168
- *
169
- * A BOUNDED, ANNOUNCED DATA LOSS THE USER IS ENTITLED TO NOTICE, in the same
170
- * voice §6.4's honesty rules use for `truncated`. Suppressed on the `relieved`
171
- * card, where `detailLine` has already said it and a second line would be the
172
- * same sentence twice.
173
- */
174
- function reliefLine(props) {
175
- if (props.live || !props.applied || !props.tailRelief || props.mode === 'relieved')
176
- return '';
177
- const n = props.tailRelief.messages;
178
- return (`clipped ${n} tool ${n === 1 ? 'result' : 'results'} in the retained turns ` +
179
- `(${formatTokens(props.tailRelief.charsRemoved)} characters) - ` +
180
- 'the recent turns alone exceeded the window');
181
- }
182
- /**
183
- * Split the summary into rows.
184
- *
185
- * A ROW budget, not a character one: `summaryMaxChars` already bounded the text,
186
- * and this only decides how much of it the COLLAPSED card shows. Ink wraps the
187
- * rest.
188
- */
189
- function summaryRows(text, expanded) {
190
- const lines = text.split('\n').filter((l) => l.trim().length > 0);
191
- return expanded ? lines : lines.slice(0, COMPACTION_LIMITS.cardTextRows);
192
- }
193
- function CompactionCardImpl(props) {
194
- const { live, summary, expanded, reducedMotion, theme, caps } = props;
195
- const glyphs = pickGlyphs(caps);
196
- const color = compactionCardColor(props, theme);
197
- const dot = ` ${glyphs.midDot} `;
198
- const head = headline(props, glyphs.arrowRight, dot);
199
- const detail = detailLine(props);
200
- const relief = reliefLine(props);
201
- const relaxed = relaxedLine(props);
202
- const elided = elidedLine(props);
203
- const showMemory = props.memoryVersion !== 2 || expanded === true;
204
- const rows = summary && showMemory ? summaryRows(summary, expanded === true) : [];
205
- const totalRows = summary ? summary.split('\n').filter((l) => l.trim().length > 0).length : 0;
206
- const hidden = Math.max(0, totalRows - rows.length);
207
- // COLOUR TRACKS `live`, MOTION TRACKS `animate` — one headline, two separate
208
- // decisions, and the split is the one `FastCard` records at length: `App`
209
- // widens `reducedMotion` to "this frame does not animate here" for the whole of
210
- // every run, and folding the two together would grey out every live card for
211
- // the whole run, losing the status colour along with the motion.
212
- const animate = live && reducedMotion !== true && caps.unicode;
213
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: theme.accent, bold: true, children: props.trigger === 'manual' ? 'Manual compaction' : props.trigger === 'overflow'
214
- ? 'Overflow: threshold reached' : 'Automatic: threshold reached' }), _jsxs(Text, { color: live ? color : theme.muted, wrap: caps.unicode ? 'truncate' : 'wrap', children: [animate ? (_jsxs(_Fragment, { children: [_jsx(Spinner, { type: "dots" }), ' '] })) : live ? (`${glyphs.spinnerStill} `) : (''), head] })] }), props.memoryVersion === 2 && (_jsxs(Text, { color: theme.muted, children: ["Task memory v2", expanded ? '' : ' (ctrl+o to expand)'] })), detail.length > 0 && (_jsx(Box, { flexDirection: "column", flexShrink: 0, paddingLeft: 1, children: _jsx(Text, { color: color, wrap: caps.unicode ? 'truncate' : 'wrap', children: detail }) })), relief.length > 0 && (_jsx(Box, { flexDirection: "column", flexShrink: 0, paddingLeft: 1, children: _jsx(Text, { color: theme.noticeWarn, children: relief }) })), relaxed.length > 0 && (_jsx(Box, { flexDirection: "column", flexShrink: 0, paddingLeft: 1, children: _jsx(Text, { color: theme.muted, children: relaxed }) })), elided.length > 0 && (_jsx(Box, { flexDirection: "column", flexShrink: 0, paddingLeft: 1, children: _jsx(Text, { color: theme.muted, children: elided }) })), rows.length > 0 && (_jsxs(Box, { flexDirection: "column", flexShrink: 0, paddingLeft: 1, ...railBorderProps(glyphs.railVertical, theme.border), children: [rows.map((line, index) => (_jsx(Text, { color: theme.primary, children: line }, index))), hidden > 0 && (_jsxs(Text, { color: theme.muted, children: [glyphs.railEnd, " +", hidden, " more lines (ctrl+o to expand)"] })), hidden === 0 && expanded === true && totalRows > COMPACTION_LIMITS.cardTextRows && (_jsxs(Text, { color: theme.muted, children: [glyphs.railEnd, " ctrl+o to collapse"] }))] }))] }));
215
- }
216
- /**
217
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
218
- * `mapEntry` already preserves object identity for untouched entries, so the
219
- * props below are stable references on a settled card, and `theme` / `caps` are
220
- * `useMemo`d in `App.tsx` (I-L2-1).
221
- */
222
- export const CompactionCard = React.memo(CompactionCardImpl);
@@ -1,61 +0,0 @@
1
- /**
2
- * A `FilePatch` as a diff (agent-activity-presentation §3.4): a `+6 -5` summary,
3
- * then hunk-separated rows with a right-aligned line-number gutter, a `+`/`-`/
4
- * space sign column and `theme.diff` colors.
5
- *
6
- * `wrap="truncate"` ON EVERY ROW IS A CORRECTNESS REQUIREMENT, NOT A TASTE ONE.
7
- * `estimateEntryRows` computes a diff card's height by COUNTING rows, so a
8
- * wrapped patch line would occupy two rows while the estimate charged one — an
9
- * under-estimate, which `virtual-window.ts` names as the unsafe direction. One
10
- * patch line is one terminal row, always.
11
- *
12
- * No new keybinding and no new state: collapse rides on `expandedToolIds` and
13
- * the existing `Ctrl+O` handler, which targets the MOST RECENT tool card (P2-4).
14
- *
15
- * `caps` is deliberately NOT a prop. Every character this component emits is
16
- * ASCII — `+`, `-`, `@@`, digits — because `+` and `-` are the diff's own
17
- * vocabulary and `renderUnifiedDiff` already spells them literally. A glyph
18
- * lookup here would buy nothing and add a memo dependency.
19
- */
20
- import React from 'react';
21
- import type { Theme } from '../theme.js';
22
- import type { FilePatch, PatchLine } from '../../tools/patch.js';
23
- /**
24
- * Diff rows shown before collapse.
25
- *
26
- * Higher than the generic preview's 8 (D-11): a diff's rows are half as tall in
27
- * information terms, and 8 rows of a 3-context hunk is barely one change.
28
- * DUPLICATED AS A NUMBER in `virtual-window.ts`, matching what
29
- * `TOOL_COLLAPSED_LINES` already does and the comment that justifies it.
30
- */
31
- export declare const DIFF_COLLAPSED_LINES = 12;
32
- export interface DiffViewProps {
33
- patch: FilePatch;
34
- expanded?: boolean;
35
- theme: Theme;
36
- }
37
- /** One rendered row: a patch line, or the `@@` separator between two hunks. */
38
- interface DiffRow {
39
- kind: PatchLine['kind'] | 'meta';
40
- /** The gutter number, or `undefined` for a separator and the newline note. */
41
- num?: number;
42
- text: string;
43
- }
44
- /**
45
- * Flatten the hunks into rows, inserting one `@@` separator BETWEEN hunks and
46
- * none before the first.
47
- *
48
- * Exported for `diff-view.test.tsx`, and because the row count it produces is
49
- * the number `estimateEntryRows` reproduces arithmetically — the two must not
50
- * disagree.
51
- */
52
- export declare function diffRows(patch: FilePatch): DiffRow[];
53
- declare function DiffViewImpl({ patch, expanded, theme, }: DiffViewProps): React.ReactElement;
54
- /**
55
- * `React.memo` with the DEFAULT comparator, matching `ToolCard`'s boundary.
56
- * `patch` qualifies as a prop only because the reducer writes it ONCE at
57
- * `toolExecEnd` and never rebuilds it (P2-9); `theme` is `useMemo`d in `App.tsx`
58
- * (I-L2-1).
59
- */
60
- export declare const DiffView: React.MemoExoticComponent<typeof DiffViewImpl>;
61
- export {};
@@ -1,103 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * A `FilePatch` as a diff (agent-activity-presentation §3.4): a `+6 -5` summary,
4
- * then hunk-separated rows with a right-aligned line-number gutter, a `+`/`-`/
5
- * space sign column and `theme.diff` colors.
6
- *
7
- * `wrap="truncate"` ON EVERY ROW IS A CORRECTNESS REQUIREMENT, NOT A TASTE ONE.
8
- * `estimateEntryRows` computes a diff card's height by COUNTING rows, so a
9
- * wrapped patch line would occupy two rows while the estimate charged one — an
10
- * under-estimate, which `virtual-window.ts` names as the unsafe direction. One
11
- * patch line is one terminal row, always.
12
- *
13
- * No new keybinding and no new state: collapse rides on `expandedToolIds` and
14
- * the existing `Ctrl+O` handler, which targets the MOST RECENT tool card (P2-4).
15
- *
16
- * `caps` is deliberately NOT a prop. Every character this component emits is
17
- * ASCII — `+`, `-`, `@@`, digits — because `+` and `-` are the diff's own
18
- * vocabulary and `renderUnifiedDiff` already spells them literally. A glyph
19
- * lookup here would buy nothing and add a memo dependency.
20
- */
21
- import React from 'react';
22
- import { Box, Text } from 'ink';
23
- /**
24
- * Diff rows shown before collapse.
25
- *
26
- * Higher than the generic preview's 8 (D-11): a diff's rows are half as tall in
27
- * information terms, and 8 rows of a 3-context hunk is barely one change.
28
- * DUPLICATED AS A NUMBER in `virtual-window.ts`, matching what
29
- * `TOOL_COLLAPSED_LINES` already does and the comment that justifies it.
30
- */
31
- export const DIFF_COLLAPSED_LINES = 12;
32
- /** Gutter width bounds; three digits is the floor so narrow files still align. */
33
- const GUTTER_MIN = 3;
34
- const GUTTER_MAX = 6;
35
- /**
36
- * Flatten the hunks into rows, inserting one `@@` separator BETWEEN hunks and
37
- * none before the first.
38
- *
39
- * Exported for `diff-view.test.tsx`, and because the row count it produces is
40
- * the number `estimateEntryRows` reproduces arithmetically — the two must not
41
- * disagree.
42
- */
43
- export function diffRows(patch) {
44
- const rows = [];
45
- patch.hunks.forEach((hunk, index) => {
46
- if (index > 0) {
47
- rows.push({
48
- kind: 'meta',
49
- text: `@@ -${hunk.oldStart},${hunk.oldCount} +${hunk.newStart},${hunk.newCount} @@`,
50
- });
51
- }
52
- for (const line of hunk.lines) {
53
- rows.push({
54
- kind: line.kind,
55
- // An `add` shows its new number, a `del` its old, a `ctx` its new.
56
- ...(pickNumber(line) !== undefined ? { num: pickNumber(line) } : {}),
57
- text: line.text,
58
- });
59
- }
60
- });
61
- return rows;
62
- }
63
- function pickNumber(line) {
64
- return line.kind === 'del' ? line.oldLine : line.newLine ?? line.oldLine;
65
- }
66
- function signOf(kind) {
67
- if (kind === 'add')
68
- return '+';
69
- if (kind === 'del')
70
- return '-';
71
- return ' ';
72
- }
73
- function colorOf(kind, theme) {
74
- if (kind === 'add')
75
- return theme.diff.add;
76
- if (kind === 'del')
77
- return theme.diff.remove;
78
- if (kind === 'meta')
79
- return theme.diff.meta;
80
- return theme.diff.context;
81
- }
82
- function gutterWidth(rows) {
83
- let max = 0;
84
- for (const row of rows)
85
- if (row.num !== undefined && row.num > max)
86
- max = row.num;
87
- return Math.min(GUTTER_MAX, Math.max(GUTTER_MIN, String(max).length));
88
- }
89
- function DiffViewImpl({ patch, expanded, theme, }) {
90
- const rows = diffRows(patch);
91
- const ceiling = expanded ? rows.length : DIFF_COLLAPSED_LINES;
92
- const visible = ceiling >= rows.length ? rows : rows.slice(0, Math.max(0, ceiling));
93
- const hidden = rows.length - visible.length;
94
- const width = gutterWidth(rows);
95
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { wrap: "truncate", children: [_jsxs(Text, { color: theme.diff.add, children: ["+", patch.added] }), _jsx(Text, { color: theme.muted, children: " " }), _jsxs(Text, { color: theme.diff.remove, children: ["-", patch.removed] }), patch.truncated && _jsx(Text, { color: theme.muted, children: " (truncated)" }), patch.degraded && (_jsxs(Text, { color: theme.muted, children: [" old side not read: ", patch.degraded] }))] }), visible.map((row, i) => (_jsxs(Text, { wrap: "truncate", children: [_jsx(Text, { color: theme.muted, children: String(row.num ?? '').padStart(width) }), _jsxs(Text, { color: colorOf(row.kind, theme), children: [' ', signOf(row.kind), " ", row.text] })] }, i))), hidden > 0 ? (_jsxs(Text, { color: theme.muted, children: ["+", hidden, " ", hidden === 1 ? 'line' : 'lines', " (Ctrl+O)"] })) : (rows.length > DIFF_COLLAPSED_LINES && _jsx(Text, { color: theme.muted, children: "(Ctrl+O to collapse)" }))] }));
96
- }
97
- /**
98
- * `React.memo` with the DEFAULT comparator, matching `ToolCard`'s boundary.
99
- * `patch` qualifies as a prop only because the reducer writes it ONCE at
100
- * `toolExecEnd` and never rebuilds it (P2-9); `theme` is `useMemo`d in `App.tsx`
101
- * (I-L2-1).
102
- */
103
- export const DiffView = React.memo(DiffViewImpl);
@@ -1,23 +0,0 @@
1
- /**
2
- * EntryFrame (spec §4.3) — the single shell every transcript entry renders
3
- * inside, and the ONLY place entry spacing is applied.
4
- *
5
- * Keeping both the rail and the spacing here is what makes `density.ts` a real
6
- * policy rather than a suggestion: an entry component that also set its own
7
- * `marginTop` would silently double the gap at turn boundaries.
8
- */
9
- import React from 'react';
10
- export interface EntryFrameProps {
11
- /** Role marker shown on the entry's first row (may be a live spinner). */
12
- glyph: React.ReactNode;
13
- /** Rail / glyph colour — for tool cards this is the status colour (§5.3). */
14
- color?: string;
15
- /** Rail character drawn on the turn-boundary spacer row (`separation === 1`). */
16
- continuation: string;
17
- /** From `separationRows()`. Rendered as a rail stub, never a bare margin. */
18
- separation: 0 | 1;
19
- /** Muted colour for the spacer row so it recedes behind real content. */
20
- spacerColor?: string;
21
- children: React.ReactNode;
22
- }
23
- export declare function EntryFrame({ glyph, color, continuation, separation, spacerColor, children, }: EntryFrameProps): React.ReactElement;
@@ -1,6 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box } from 'ink';
3
- import { Gutter, RailSpacer } from '../layout/Gutter.js';
4
- export function EntryFrame({ glyph, color, continuation, separation, spacerColor, children, }) {
5
- return (_jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [separation === 1 && _jsx(RailSpacer, { continuation: continuation, color: spacerColor }), _jsx(Gutter, { glyph: glyph, color: color, children: children })] }));
6
- }
@@ -1,53 +0,0 @@
1
- /**
2
- * FastCard — one fast-model review in the transcript (fast-model-tier §6).
3
- *
4
- * ASCII ONLY: every glyph comes from `pickGlyphs`.
5
- *
6
- * SINGLE AND QUIET, NEVER MORE THAN SIX ROWS. It renders through the shared
7
- * `EntryFrame` supplied by `EntryView`, so a review reads as one more step in
8
- * the transcript rather than a second kind of object.
9
- *
10
- * COLLAPSED BY CONSTRUCTION rather than by an expand toggle: the critique is
11
- * already clamped to `fast.reviewMaxChars` before it ever reaches here, so there
12
- * is nothing hidden for a `Ctrl+O` to reveal.
13
- *
14
- * `ok`, `failed` and `dropped` each render ONE muted line. `ok` is the common
15
- * case and must stay visually cheap — a full card every few turns saying
16
- * "nothing to report" would be the feature's most annoying possible surface —
17
- * while `failed` and `dropped` exist so that "it did nothing" is never the
18
- * observable outcome (R-8).
19
- */
20
- import React from 'react';
21
- import type { Theme } from '../theme.js';
22
- import type { TermCapabilities } from '../capabilities.js';
23
- export type FastCardStatus = 'running' | 'ok' | 'advice' | 'empty' | 'failed' | 'dropped';
24
- export interface FastCardProps {
25
- reviewIndex: number;
26
- model: string;
27
- status: FastCardStatus;
28
- text?: string;
29
- detail?: string;
30
- turn: number;
31
- durationMs?: number;
32
- live: boolean;
33
- reducedMotion?: boolean;
34
- theme: Theme;
35
- caps: TermCapabilities;
36
- }
37
- /**
38
- * The card's colour.
39
- *
40
- * `advice` is the ACCENT rather than a warning colour: a second opinion is not
41
- * an error, and colouring it like one would teach the user to read every review
42
- * as something having gone wrong.
43
- */
44
- export declare function fastCardColor(status: FastCardStatus, theme: Theme): string | undefined;
45
- declare function FastCardImpl(props: FastCardProps): React.ReactElement;
46
- /**
47
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
48
- * `mapEntry` already preserves object identity for untouched entries, so the
49
- * props below are stable references on a settled card, and `theme` / `caps` are
50
- * `useMemo`d in `App.tsx` (I-L2-1).
51
- */
52
- export declare const FastCard: React.MemoExoticComponent<typeof FastCardImpl>;
53
- export {};
@@ -1,105 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * FastCard — one fast-model review in the transcript (fast-model-tier §6).
4
- *
5
- * ASCII ONLY: every glyph comes from `pickGlyphs`.
6
- *
7
- * SINGLE AND QUIET, NEVER MORE THAN SIX ROWS. It renders through the shared
8
- * `EntryFrame` supplied by `EntryView`, so a review reads as one more step in
9
- * the transcript rather than a second kind of object.
10
- *
11
- * COLLAPSED BY CONSTRUCTION rather than by an expand toggle: the critique is
12
- * already clamped to `fast.reviewMaxChars` before it ever reaches here, so there
13
- * is nothing hidden for a `Ctrl+O` to reveal.
14
- *
15
- * `ok`, `failed` and `dropped` each render ONE muted line. `ok` is the common
16
- * case and must stay visually cheap — a full card every few turns saying
17
- * "nothing to report" would be the feature's most annoying possible surface —
18
- * while `failed` and `dropped` exist so that "it did nothing" is never the
19
- * observable outcome (R-8).
20
- */
21
- import React from 'react';
22
- import { Box, Text } from 'ink';
23
- import Spinner from 'ink-spinner';
24
- import { pickGlyphs } from '../glyphs.js';
25
- import { railBorderProps } from '../layout/Gutter.js';
26
- import { formatDuration } from '../../agent/usage.js';
27
- import { FAST_LIMITS } from '../../fast/limits.js';
28
- /**
29
- * The card's colour.
30
- *
31
- * `advice` is the ACCENT rather than a warning colour: a second opinion is not
32
- * an error, and colouring it like one would teach the user to read every review
33
- * as something having gone wrong.
34
- */
35
- export function fastCardColor(status, theme) {
36
- if (status === 'running')
37
- return theme.toolRunning;
38
- if (status === 'advice')
39
- return theme.accent;
40
- if (status === 'failed')
41
- return theme.toolError;
42
- return theme.muted;
43
- }
44
- /** The one-line summary that follows the header on every non-advice status. */
45
- function statusLine(props) {
46
- switch (props.status) {
47
- case 'running':
48
- return 'reviewing...';
49
- case 'ok':
50
- return 'on track';
51
- case 'empty':
52
- return 'no answer';
53
- case 'failed':
54
- return props.detail ? `failed: ${props.detail}` : 'failed';
55
- case 'dropped':
56
- return props.detail ? `dropped: ${props.detail}` : 'dropped';
57
- default:
58
- return '';
59
- }
60
- }
61
- /**
62
- * Split the critique into at most `FAST_LIMITS.cardTextRows` lines.
63
- *
64
- * The clamp is a ROW budget, not a character one: `reviewMaxChars` already
65
- * bounded the text, and this only stops a critique with no whitespace at all
66
- * from turning into a wall on a narrow terminal. Ink wraps the rest.
67
- */
68
- function textRows(text) {
69
- const lines = text.split('\n').filter((l) => l.trim().length > 0);
70
- return lines.slice(0, FAST_LIMITS.cardTextRows);
71
- }
72
- function FastCardImpl(props) {
73
- const { reviewIndex, model, status, text, turn, durationMs, live, reducedMotion, theme, caps } = props;
74
- const glyphs = pickGlyphs(caps);
75
- const color = fastCardColor(status, theme);
76
- const duration = durationMs === undefined ? '' : ` ${glyphs.midDot} ${formatDuration(durationMs)}`;
77
- const head = `fast review #${reviewIndex} ${glyphs.midDot} ${model} ${glyphs.midDot} turn ${turn}${duration}`;
78
- const showBody = status === 'advice' && text !== undefined && text.trim().length > 0;
79
- // COLOUR TRACKS `live`, MOTION TRACKS `animate` — one headline, two separate
80
- // decisions (single-spinner-while-running C-1 / D-7).
81
- //
82
- // These used to be two whole `<Text>` elements, so the still branch also
83
- // demoted the head to `theme.muted`. That was harmless while stillness meant
84
- // "the user set reducedMotion", but `App` now widens the prop to "this frame
85
- // does not animate here" for the whole of every run — and under the old shape
86
- // that would have greyed out every live fast review for the whole run, losing
87
- // the status colour along with the motion.
88
- //
89
- // Three things are load-bearing and all three are silent if dropped: the
90
- // leading two-space gutter that separates the head from the bold `fast` label,
91
- // the single space after the marker (the still form bakes it into its template
92
- // string), and `head` itself. `wrap="truncate"` now applies to the animated
93
- // path too, which it did not before: it is what the still branch always did,
94
- // it is the behaviour this card has in every state that is now common, and an
95
- // unbounded wrap inside a one-row headline is the worse failure.
96
- const animate = live && !reducedMotion && caps.unicode;
97
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: theme.accent, bold: true, children: "fast" }), _jsxs(Text, { color: live ? color : theme.muted, wrap: "truncate", children: [' ', animate ? (_jsxs(_Fragment, { children: [_jsx(Spinner, { type: "dots" }), ' '] })) : live ? (`${glyphs.spinnerStill} `) : (''), head] })] }), showBody ? (_jsx(Box, { flexDirection: "column", flexShrink: 0, paddingLeft: 1, ...railBorderProps(glyphs.railVertical, theme.border), children: textRows(text).map((line, index) => (_jsx(Text, { color: theme.primary, children: line }, index))) })) : (_jsx(Box, { flexDirection: "column", flexShrink: 0, paddingLeft: 1, children: _jsx(Text, { color: color, wrap: "truncate", children: statusLine(props) }) }))] }));
98
- }
99
- /**
100
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
101
- * `mapEntry` already preserves object identity for untouched entries, so the
102
- * props below are stable references on a settled card, and `theme` / `caps` are
103
- * `useMemo`d in `App.tsx` (I-L2-1).
104
- */
105
- export const FastCard = React.memo(FastCardImpl);
@@ -1,30 +0,0 @@
1
- /**
2
- * GovernanceCard - the settlement card for a `kind: 'governance'` entry
3
- * (governance-mode section 10.4).
4
- *
5
- * ASCII ONLY: every glyph comes from `pickGlyphs`, through the layout.
6
- *
7
- * It renders inside the `EntryFrame` that `Transcript.tsx` supplies, so the left rail is
8
- * the card's frame - no second box drawn inside the rail. (The spec sketches a
9
- * rounded box; nested inside the gutter rail it would be two frames for one thing, and the
10
- * rail already carries the tone colour. Recorded as a deliberate deviation.)
11
- *
12
- * EVERY LINE TRUNCATES, none wraps, so the card's height is a function of its data alone
13
- * (`governanceCardRows`) and `virtual-window.ts::estimateEntryRows` is exact rather than an
14
- * upper bound. A narrow terminal therefore degrades by truncation to one plain line per
15
- * agent without any width-dependent branch here.
16
- */
17
- import React from 'react';
18
- import type { GovernanceCardData } from '../../governance/types.js';
19
- import type { Theme } from '../theme.js';
20
- import type { TermCapabilities } from '../capabilities.js';
21
- export interface GovernanceCardProps {
22
- card: GovernanceCardData;
23
- theme: Theme;
24
- caps: TermCapabilities;
25
- }
26
- /** The rail colour: the card's verdict, resolved like every other governance tone. */
27
- export declare function governanceCardColor(card: GovernanceCardData, theme: Theme): string | undefined;
28
- declare function GovernanceCardImpl({ card, theme, caps }: GovernanceCardProps): React.ReactElement;
29
- export declare const GovernanceCard: React.MemoExoticComponent<typeof GovernanceCardImpl>;
30
- export {};
@@ -1,32 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * GovernanceCard - the settlement card for a `kind: 'governance'` entry
4
- * (governance-mode section 10.4).
5
- *
6
- * ASCII ONLY: every glyph comes from `pickGlyphs`, through the layout.
7
- *
8
- * It renders inside the `EntryFrame` that `Transcript.tsx` supplies, so the left rail is
9
- * the card's frame - no second box drawn inside the rail. (The spec sketches a
10
- * rounded box; nested inside the gutter rail it would be two frames for one thing, and the
11
- * rail already carries the tone colour. Recorded as a deliberate deviation.)
12
- *
13
- * EVERY LINE TRUNCATES, none wraps, so the card's height is a function of its data alone
14
- * (`governanceCardRows`) and `virtual-window.ts::estimateEntryRows` is exact rather than an
15
- * upper bound. A narrow terminal therefore degrades by truncation to one plain line per
16
- * agent without any width-dependent branch here.
17
- */
18
- import React from 'react';
19
- import { Box, Text } from 'ink';
20
- import { pickGlyphs } from '../glyphs.js';
21
- import { toneColor } from '../governance-status.js';
22
- import { GovernanceLine, GovernanceRun } from '../GovernanceRun.js';
23
- import { buildGovernanceCardLayout, cardTone } from '../layout/governance-card.js';
24
- /** The rail colour: the card's verdict, resolved like every other governance tone. */
25
- export function governanceCardColor(card, theme) {
26
- return toneColor(cardTone(card), theme);
27
- }
28
- function GovernanceCardImpl({ card, theme, caps }) {
29
- const layout = buildGovernanceCardLayout(card, pickGlyphs(caps));
30
- return (_jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [_jsx(GovernanceLine, { segments: layout.title, theme: theme }), layout.headline && (_jsx(GovernanceLine, { segments: layout.headline, theme: theme })), layout.tableHeader && (_jsx(Text, { wrap: "truncate", children: layout.tableHeader.map((cell, index) => (_jsx(GovernanceRun, { segments: cell, theme: theme }, index))) })), layout.rows.map((row) => (_jsx(Text, { wrap: "truncate", children: row.cells.map((cell, index) => (_jsx(GovernanceRun, { segments: cell, theme: theme }, index))) }, row.key))), layout.notes && _jsx(GovernanceLine, { segments: layout.notes, theme: theme })] }));
31
- }
32
- export const GovernanceCard = React.memo(GovernanceCardImpl);