@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,20 +0,0 @@
1
- /**
2
- * Render a `user` entry that carries an invocation card (tui-invocation-cards).
3
- *
4
- * Like `UserEntry`, this renders CONTENT only: the role glyph, rail and spacing belong
5
- * to `EntryFrame`, so the card stays "the user's turn" for density, turn counting and
6
- * the settled boundary. The header text comes from `invocationHeaderSegments` and is
7
- * never assembled here (RV-10); the row count it implies is `invocationCardRows`.
8
- */
9
- import React from 'react';
10
- import type { Theme } from '../theme.js';
11
- import type { TermCapabilities } from '../capabilities.js';
12
- import type { InvocationCard as InvocationCardData } from '../../agent/invocation-card.js';
13
- declare function InvocationCardImpl({ card, theme, caps, }: {
14
- card: InvocationCardData;
15
- theme: Theme;
16
- caps: TermCapabilities;
17
- }): React.ReactElement;
18
- /** Default comparator: `mapEntry` preserves identity for untouched entries (L2 / R3). */
19
- export declare const InvocationCard: React.MemoExoticComponent<typeof InvocationCardImpl>;
20
- export {};
@@ -1,32 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * Render a `user` entry that carries an invocation card (tui-invocation-cards).
4
- *
5
- * Like `UserEntry`, this renders CONTENT only: the role glyph, rail and spacing belong
6
- * to `EntryFrame`, so the card stays "the user's turn" for density, turn counting and
7
- * the settled boundary. The header text comes from `invocationHeaderSegments` and is
8
- * never assembled here (RV-10); the row count it implies is `invocationCardRows`.
9
- */
10
- import React from 'react';
11
- import { Box, Text } from 'ink';
12
- import { pickGlyphs } from '../glyphs.js';
13
- import { invocationHeaderSegments, invocationHiddenText, invocationInputText, } from '../layout/invocation-card.js';
14
- import { GUTTER_WIDTH } from '../layout/Gutter.js';
15
- import { useTerminalSize } from '../layout/useTerminalSize.js';
16
- import { fitCells } from '../layout/cells.js';
17
- function toneColor(tone, theme) {
18
- if (tone === 'label')
19
- return theme.accent;
20
- if (tone === 'name')
21
- return theme.user;
22
- return theme.muted;
23
- }
24
- function InvocationCardImpl({ card, theme, caps, }) {
25
- const glyphs = pickGlyphs(caps);
26
- const { cols } = useTerminalSize();
27
- const usable = Math.max(1, cols - GUTTER_WIDTH);
28
- const header = invocationHeaderSegments(card, glyphs, usable);
29
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { wrap: "truncate", children: header.map((part, index) => (_jsx(Text, { color: toneColor(part.tone, theme), bold: part.bold, children: part.text }, index))) }), card.input !== '' && _jsx(Text, { color: theme.user, children: invocationInputText(card) }), card.inputHidden > 0 && (_jsx(Text, { color: theme.muted, wrap: "truncate", children: invocationHiddenText(card, glyphs) })), card.note !== undefined && card.note !== '' && (_jsx(Text, { color: theme.muted, wrap: "truncate", children: fitCells(card.note, usable, glyphs.ellipsis) }))] }));
30
- }
31
- /** Default comparator: `mapEntry` preserves identity for untouched entries (L2 / R3). */
32
- export const InvocationCard = React.memo(InvocationCardImpl);
@@ -1,27 +0,0 @@
1
- /**
2
- * Render a queued steering message (tui-shift-enter-copy-queue 5.4).
3
- *
4
- * ONE ROW, ALWAYS. `wrap="truncate"` -- the run-status-row width policy, for
5
- * the height-estimate reason DiffView learned the hard way: a queued message
6
- * can be arbitrarily long, and an entry whose wrapped height disagrees with its
7
- * estimate is exactly the one the virtual window never re-measures.
8
- *
9
- * The glyph and the rail belong to `EntryFrame`, exactly as for every other
10
- * entry; this component renders content only.
11
- */
12
- import React from 'react';
13
- import type { Theme } from '../theme.js';
14
- import type { TermCapabilities } from '../capabilities.js';
15
- declare function QueuedEntryImpl({ text, theme, caps, }: {
16
- text: string;
17
- theme: Theme;
18
- caps: TermCapabilities;
19
- }): React.ReactElement;
20
- /**
21
- * `React.memo` with the DEFAULT comparator, like every sibling entry card: the
22
- * reducer rebuilds the entry object only when it changes, and a `queued` entry
23
- * changes exactly twice -- once when appended, once when it is rewritten into a
24
- * `user` entry and stops being this component's problem.
25
- */
26
- export declare const QueuedEntry: React.MemoExoticComponent<typeof QueuedEntryImpl>;
27
- export {};
@@ -1,33 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * Render a queued steering message (tui-shift-enter-copy-queue 5.4).
4
- *
5
- * ONE ROW, ALWAYS. `wrap="truncate"` -- the run-status-row width policy, for
6
- * the height-estimate reason DiffView learned the hard way: a queued message
7
- * can be arbitrarily long, and an entry whose wrapped height disagrees with its
8
- * estimate is exactly the one the virtual window never re-measures.
9
- *
10
- * The glyph and the rail belong to `EntryFrame`, exactly as for every other
11
- * entry; this component renders content only.
12
- */
13
- import React from 'react';
14
- import { Text } from 'ink';
15
- import { pickGlyphs } from '../glyphs.js';
16
- import { expandTabs } from '../display-tab.js';
17
- function QueuedEntryImpl({ text, theme, caps, }) {
18
- const glyphs = pickGlyphs(caps);
19
- const lines = text.split('\n');
20
- // Same reason as `UserEntry`: a queued draft is a draft, so its TABs must
21
- // occupy the columns the composer showed them at.
22
- const first = expandTabs(lines[0] ?? '');
23
- const extra = lines.length - 1;
24
- const suffix = extra > 0 ? ` ${glyphs.ellipsis}+${extra} line${extra === 1 ? '' : 's'}` : '';
25
- return (_jsx(Text, { wrap: "truncate", color: theme.muted, children: `Queue: ${first}${suffix}` }));
26
- }
27
- /**
28
- * `React.memo` with the DEFAULT comparator, like every sibling entry card: the
29
- * reducer rebuilds the entry object only when it changes, and a `queued` entry
30
- * changes exactly twice -- once when appended, once when it is rewritten into a
31
- * `user` entry and stops being this component's problem.
32
- */
33
- export const QueuedEntry = React.memo(QueuedEntryImpl);
@@ -1,56 +0,0 @@
1
- /**
2
- * RetryCard — the one-line retry entry (llm-api-retry-backoff §6.5).
3
- *
4
- * ASCII ONLY: every glyph comes from `pickGlyphs`, and the line itself is built by
5
- * the pure `formatRetryLine` in `agent/retry-view.ts` so it can be asserted
6
- * without a terminal.
7
- *
8
- * ONE LINE. ALWAYS ONE LINE. Ten retries rendered as ten notices would bury the
9
- * transcript in the one moment the user most needs it legible, so this card is
10
- * rewritten in place for the whole turn and settles into a single row of history.
11
- * Amber while in flight, muted once recovered, red once the ladder is exhausted.
12
- */
13
- import React from 'react';
14
- import type { Theme } from '../theme.js';
15
- import type { TermCapabilities } from '../capabilities.js';
16
- import { type RetryPhase } from '../../agent/retry-view.js';
17
- export interface RetryCardProps {
18
- attempt: number;
19
- maxRetries: number;
20
- errorType: string;
21
- phase: RetryPhase;
22
- resumeAt?: number;
23
- totalRetries?: number;
24
- elapsedMs?: number;
25
- /**
26
- * `Date.now()` at render, injected so the component stays testable.
27
- *
28
- * The countdown is recomputed from `resumeAt - now` on every frame; `App` runs a
29
- * 1 Hz tick ONLY while the phase is `waiting`, so an idle session has no timer.
30
- */
31
- now: number;
32
- /**
33
- * Whether Esc would actually be felt. `App` passes `true` only for an
34
- * interactive session, because the hint has to be the truth: the wait is
35
- * signal-aware in `withRetry`, so Esc lands within a frame — but there is no Esc
36
- * in headless mode to promise.
37
- */
38
- interactive?: boolean;
39
- reducedMotion?: boolean;
40
- theme: Theme;
41
- caps: TermCapabilities;
42
- }
43
- /**
44
- * The card's tone. `exhausted` is the only failure: an `interrupted` card records
45
- * a user decision, and colouring that red would blame them for it.
46
- */
47
- export declare function retryCardColor(phase: RetryPhase, theme: Theme): string | undefined;
48
- declare function RetryCardImpl(props: RetryCardProps): React.ReactElement;
49
- /**
50
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
51
- * `mapEntry` preserves object identity for untouched entries, and `theme` / `caps`
52
- * are `useMemo`d in `App.tsx` (I-L2-1). `now` changes once a second while the card
53
- * is waiting, which is exactly when it must re-render.
54
- */
55
- export declare const RetryCard: React.MemoExoticComponent<typeof RetryCardImpl>;
56
- export {};
@@ -1,60 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * RetryCard — the one-line retry entry (llm-api-retry-backoff §6.5).
4
- *
5
- * ASCII ONLY: every glyph comes from `pickGlyphs`, and the line itself is built by
6
- * the pure `formatRetryLine` in `agent/retry-view.ts` so it can be asserted
7
- * without a terminal.
8
- *
9
- * ONE LINE. ALWAYS ONE LINE. Ten retries rendered as ten notices would bury the
10
- * transcript in the one moment the user most needs it legible, so this card is
11
- * rewritten in place for the whole turn and settles into a single row of history.
12
- * Amber while in flight, muted once recovered, red once the ladder is exhausted.
13
- */
14
- import React from 'react';
15
- import { Box, Text } from 'ink';
16
- import Spinner from 'ink-spinner';
17
- import { pickGlyphs } from '../glyphs.js';
18
- import { formatRetryLine } from '../../agent/retry-view.js';
19
- /**
20
- * The card's tone. `exhausted` is the only failure: an `interrupted` card records
21
- * a user decision, and colouring that red would blame them for it.
22
- */
23
- export function retryCardColor(phase, theme) {
24
- if (phase === 'waiting' || phase === 'retrying')
25
- return theme.noticeWarn;
26
- if (phase === 'exhausted')
27
- return theme.noticeError;
28
- return theme.muted;
29
- }
30
- function RetryCardImpl(props) {
31
- const { attempt, maxRetries, errorType, phase, resumeAt, totalRetries, elapsedMs, now,
32
- // DEFAULTS TO TRUE: reaching this component means a TUI is mounted, and the
33
- // TUI always binds Esc to abort. The prop exists so headless-shaped callers
34
- // and the render tests can assert the suppressed form.
35
- interactive = true, reducedMotion, theme, caps, } = props;
36
- const glyphs = pickGlyphs(caps);
37
- const color = retryCardColor(phase, theme);
38
- const inFlight = phase === 'waiting' || phase === 'retrying';
39
- const line = formatRetryLine({
40
- attempt,
41
- maxRetries,
42
- errorType,
43
- phase,
44
- ...(resumeAt !== undefined ? { resumeAt } : {}),
45
- ...(totalRetries !== undefined ? { totalRetries } : {}),
46
- ...(elapsedMs !== undefined ? { elapsedMs } : {}),
47
- }, glyphs, now);
48
- // REDUCED MOTION SUPPRESSES THE SPINNER AND KEEPS THE COUNTDOWN. A frozen number
49
- // is not calmer, it is broken: reduced motion is about animation, and a
50
- // countdown is information.
51
- const animate = inFlight && !reducedMotion && caps.unicode;
52
- return (_jsxs(Box, { flexDirection: "row", children: [animate ? (_jsxs(Text, { color: color, children: [_jsx(Spinner, { type: "dots" }), ' '] })) : null, _jsx(Text, { color: color, wrap: "truncate", children: line }), phase === 'waiting' && interactive && (_jsxs(Text, { color: theme.muted, children: [' ', "Esc to cancel"] }))] }));
53
- }
54
- /**
55
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
56
- * `mapEntry` preserves object identity for untouched entries, and `theme` / `caps`
57
- * are `useMemo`d in `App.tsx` (I-L2-1). `now` changes once a second while the card
58
- * is waiting, which is exactly when it must re-render.
59
- */
60
- export const RetryCard = React.memo(RetryCardImpl);
@@ -1,82 +0,0 @@
1
- /**
2
- * ServiceCard — one supervised background service in the transcript
3
- * (background-service-supervision §3.8).
4
- *
5
- * ASCII ONLY: every glyph comes from `pickGlyphs`. `ui/` is inside
6
- * `glyphs.test.ts::inScope`, so a literal here fails the scan.
7
- *
8
- * NO ANIMATED SPINNER, IN ANY STATE (D-14 / P2-7). That is STRICTER than
9
- * `single-spinner-while-running` D-1, which suppresses animation only while the
10
- * activity line is mounted — and a service can sit at `starting` while the agent
11
- * is IDLE, where D-1's "one owner on screen" argument does not reach because
12
- * there is no owner on screen. A card that animated only when the agent happened
13
- * to be idle would be the worst of both. It uses `glyphs.spinnerStill`
14
- * throughout and still accepts `reducedMotion` for consistency with
15
- * `EntryView`'s comparator.
16
- *
17
- * TWO SHAPES, ONE COMPONENT. `terminal: true` is the one-row record a service's
18
- * exit appends (D-11); everything else is the live card. They share a component
19
- * because they share a colour ladder and a status vocabulary, and splitting them
20
- * would be two places to keep those in step.
21
- */
22
- import React from 'react';
23
- import type { Theme } from '../theme.js';
24
- import type { TermCapabilities } from '../capabilities.js';
25
- import { pickGlyphs } from '../glyphs.js';
26
- import type { JobKind, ServiceStatus } from '../../proc/types.js';
27
- export interface ServiceCardProps {
28
- serviceId: string;
29
- /** `service` or `task`: NOUN ONLY, never a rename of the entry kind (I-2). */
30
- jobKind?: JobKind;
31
- command: string;
32
- status: ServiceStatus;
33
- url?: string;
34
- port?: number;
35
- exitCode: number | null;
36
- startedAt: number;
37
- readyAt?: number;
38
- endedAt?: number;
39
- rows: readonly string[];
40
- /** The one-row record a terminal transition appends. */
41
- terminal?: boolean;
42
- killIncomplete?: boolean;
43
- expanded?: boolean;
44
- /** The extracted progress line, one row, already clipped by the supervisor. */
45
- progress?: string;
46
- /** Silence past `jobs.stallSeconds` - a muted badge, never an action. */
47
- stalled?: boolean;
48
- /** When output last arrived; with `nowSec` it renders `no output 6m02s`. */
49
- lastOutputAt?: number;
50
- /**
51
- * The transcript's 1 Hz clock (D-8).
52
- *
53
- * ONE CLOCK FOR EVERYTHING. A per-card `setInterval` would be one timer per job,
54
- * and the transcript's comparator already includes `nowSec`, so the live elapsed
55
- * figure and the `no output` figure update for free.
56
- */
57
- nowSec?: number;
58
- /** Accepted for comparator consistency; this card never animates (D-14). */
59
- reducedMotion?: boolean;
60
- theme: Theme;
61
- caps: TermCapabilities;
62
- }
63
- /**
64
- * The card's colour.
65
- *
66
- * `running` is `toolRunning` rather than the accent: it is alive and listening
67
- * on nothing, which is a real third state and not a lesser `ready`. A clean
68
- * `exited(0)` is muted, because a command that finished on purpose is not a
69
- * failure.
70
- */
71
- export declare function serviceCardColor(props: Pick<ServiceCardProps, 'status' | 'exitCode'>, theme: Theme): string | undefined;
72
- /** The status glyph, by the same ladder as the colour. */
73
- export declare function serviceGlyph(props: Pick<ServiceCardProps, 'status' | 'exitCode'>, glyphs: ReturnType<typeof pickGlyphs>): string;
74
- declare function ServiceCardImpl(props: ServiceCardProps): React.ReactElement;
75
- /**
76
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
77
- * `mapEntry` already preserves object identity for untouched entries, so the
78
- * props below are stable references on a settled card, and `theme` / `caps` are
79
- * `useMemo`d in `App.tsx` (I-L2-1).
80
- */
81
- export declare const ServiceCard: React.MemoExoticComponent<typeof ServiceCardImpl>;
82
- export {};
@@ -1,151 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * ServiceCard — one supervised background service in the transcript
4
- * (background-service-supervision §3.8).
5
- *
6
- * ASCII ONLY: every glyph comes from `pickGlyphs`. `ui/` is inside
7
- * `glyphs.test.ts::inScope`, so a literal here fails the scan.
8
- *
9
- * NO ANIMATED SPINNER, IN ANY STATE (D-14 / P2-7). That is STRICTER than
10
- * `single-spinner-while-running` D-1, which suppresses animation only while the
11
- * activity line is mounted — and a service can sit at `starting` while the agent
12
- * is IDLE, where D-1's "one owner on screen" argument does not reach because
13
- * there is no owner on screen. A card that animated only when the agent happened
14
- * to be idle would be the worst of both. It uses `glyphs.spinnerStill`
15
- * throughout and still accepts `reducedMotion` for consistency with
16
- * `EntryView`'s comparator.
17
- *
18
- * TWO SHAPES, ONE COMPONENT. `terminal: true` is the one-row record a service's
19
- * exit appends (D-11); everything else is the live card. They share a component
20
- * because they share a colour ladder and a status vocabulary, and splitting them
21
- * would be two places to keep those in step.
22
- */
23
- import React from 'react';
24
- import { Box, Text } from 'ink';
25
- import { pickGlyphs } from '../glyphs.js';
26
- import { railBorderProps } from '../layout/Gutter.js';
27
- import { formatDuration } from '../../agent/usage.js';
28
- /** Tail rows the collapsed card draws. Mirrored as a NUMBER in `virtual-window.ts`. */
29
- const COLLAPSED_TAIL_ROWS = 2;
30
- /** Tail rows the expanded card draws — the snapshot's own cap. */
31
- const EXPANDED_TAIL_ROWS = 8;
32
- /**
33
- * The card's colour.
34
- *
35
- * `running` is `toolRunning` rather than the accent: it is alive and listening
36
- * on nothing, which is a real third state and not a lesser `ready`. A clean
37
- * `exited(0)` is muted, because a command that finished on purpose is not a
38
- * failure.
39
- */
40
- export function serviceCardColor(props, theme) {
41
- switch (props.status) {
42
- case 'starting':
43
- return theme.muted;
44
- case 'ready':
45
- return theme.accent;
46
- case 'running':
47
- return theme.toolRunning;
48
- case 'failed':
49
- return theme.toolError;
50
- case 'exited':
51
- return props.exitCode === 0 ? theme.muted : theme.toolError;
52
- case 'stopped':
53
- return theme.muted;
54
- default:
55
- return theme.muted;
56
- }
57
- }
58
- /** The status glyph, by the same ladder as the colour. */
59
- export function serviceGlyph(props, glyphs) {
60
- switch (props.status) {
61
- case 'starting':
62
- return glyphs.toolPending;
63
- case 'ready':
64
- return glyphs.toolDone;
65
- case 'running':
66
- return glyphs.toolRunning;
67
- case 'failed':
68
- return glyphs.toolError;
69
- case 'exited':
70
- return props.exitCode === 0 ? glyphs.toolDone : glyphs.toolError;
71
- case 'stopped':
72
- return glyphs.toolPending;
73
- default:
74
- return glyphs.toolPending;
75
- }
76
- }
77
- /** The right-hand status clause: what happened, and how long it took. */
78
- function statusClause(props, dot) {
79
- const { status, exitCode, startedAt, readyAt, endedAt } = props;
80
- if (status === 'ready') {
81
- const took = readyAt === undefined ? '' : `${dot}${formatDuration(readyAt - startedAt)}`;
82
- return `ready${took}`;
83
- }
84
- // A LIVE JOB SHOWS ITS ELAPSED TIME (D-8), because a task's whole story is
85
- // "how long has this been going". The number comes from the transcript's 1 Hz
86
- // `nowSec`; without it the card falls back to the spawn time and reads `0ms`,
87
- // which is honest about never having been ticked rather than wrong about it.
88
- if (status === 'running') {
89
- // NO CLOCK, NO FIGURE. Falling back to `startedAt` would print `0ms` on every
90
- // settled frame, which reads as "it just started" - a wrong number rather than
91
- // an absent one.
92
- if (props.nowSec === undefined)
93
- return 'running';
94
- const elapsed = Math.max(0, props.nowSec * 1000 - startedAt);
95
- return `running${dot}${formatDuration(elapsed)}`;
96
- }
97
- if (status === 'starting')
98
- return 'starting';
99
- const lived = endedAt === undefined ? '' : `${dot}${formatDuration(endedAt - startedAt)}`;
100
- if (status === 'stopped')
101
- return `stopped${lived}`;
102
- if (status === 'failed')
103
- return `failed${lived}`;
104
- return `exited${exitCode === null ? '' : ` code ${exitCode}`}${lived}`;
105
- }
106
- /**
107
- * The progress row, or `undefined` when there is nothing to draw.
108
- *
109
- * STALLED OUTRANKS PROGRESS: "no output for 6m" is the more urgent of the two
110
- * facts, and drawing both would cost a second row the height estimator does not
111
- * know about. The `no output` figure needs `nowSec`; without it the badge is
112
- * omitted rather than printed with a wrong number.
113
- */
114
- function progressRow(props) {
115
- if (props.stalled === true) {
116
- if (props.nowSec === undefined || props.lastOutputAt === undefined) {
117
- return { text: 'no output', stalled: true };
118
- }
119
- const quiet = Math.max(0, props.nowSec * 1000 - props.lastOutputAt);
120
- return { text: `no output ${formatDuration(quiet)}`, stalled: true };
121
- }
122
- if (props.progress)
123
- return { text: props.progress, stalled: false };
124
- return undefined;
125
- }
126
- function ServiceCardImpl(props) {
127
- const { serviceId, command, url, rows, expanded, terminal, theme, caps } = props;
128
- const glyphs = pickGlyphs(caps);
129
- const color = serviceCardColor(props, theme);
130
- const dot = ` ${glyphs.midDot} `;
131
- const clause = statusClause(props, dot);
132
- // THE NOUN, NOT THE KIND: `task t1` and `service s1` are the same component
133
- // drawing two kinds of job, and every id keeps its existing prefix (I-2).
134
- const noun = props.jobKind === 'task' ? 'task' : 'service';
135
- // THE TERMINAL RECORD IS ONE ROW, ALWAYS. It is a SECOND event at a SECOND
136
- // time — the only thing `<Static>` permits once the live card is printed — so
137
- // it names what happened and nothing else (D-11).
138
- if (terminal) {
139
- return (_jsx(Box, { flexDirection: "row", children: _jsxs(Text, { color: color, wrap: "truncate", children: [noun, " ", serviceId, " ", clause, props.killIncomplete ? ' (may have left a detached child)' : ''] }) }));
140
- }
141
- const shown = rows.slice(-(expanded ? EXPANDED_TAIL_ROWS : COLLAPSED_TAIL_ROWS));
142
- const progress = progressRow(props);
143
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: theme.accent, bold: true, children: [noun, " ", serviceId] }), _jsxs(Text, { color: theme.muted, wrap: "truncate", children: [' ', command] }), _jsxs(Text, { color: color, wrap: "truncate", children: [dot, clause] })] }), progress !== undefined && (_jsx(Box, { flexDirection: "row", flexShrink: 0, paddingLeft: 1, children: _jsx(Text, { color: progress.stalled ? theme.noticeWarn : theme.muted, wrap: "truncate", children: progress.stalled ? progress.text : `[progress] ${progress.text}` }) })), url !== undefined && (_jsxs(Box, { flexDirection: "row", flexShrink: 0, paddingLeft: 1, children: [_jsx(Text, { color: theme.primary, children: url }), _jsxs(Text, { color: theme.muted, children: [dot, "ctrl+c stop", dot, "ctrl+o log"] })] })), shown.length > 0 && (_jsx(Box, { flexDirection: "column", flexShrink: 0, paddingLeft: 1, ...railBorderProps(glyphs.railVertical, theme.border), children: shown.map((line, index) => (_jsx(Text, { color: theme.muted, wrap: "truncate", children: line }, index))) }))] }));
144
- }
145
- /**
146
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
147
- * `mapEntry` already preserves object identity for untouched entries, so the
148
- * props below are stable references on a settled card, and `theme` / `caps` are
149
- * `useMemo`d in `App.tsx` (I-L2-1).
150
- */
151
- export const ServiceCard = React.memo(ServiceCardImpl);
@@ -1,55 +0,0 @@
1
- /**
2
- * TeamCard — the settled-dispatch transcript entry (team-subagents §6.3).
3
- *
4
- * ASCII ONLY: every glyph comes from `pickGlyphs`.
5
- *
6
- * The panel is EPHEMERAL and this card is the HISTORY. It renders like a
7
- * `ToolCard` — same `EntryFrame` supplied by `EntryView`, same left rail for the
8
- * expanded body — so a dispatch reads as one more step in the transcript rather
9
- * than a second kind of object.
10
- *
11
- * `Ctrl+O` expands it to the per-agent summaries, which is why `App.tsx`'s
12
- * Ctrl+O finder had to widen from `kind === 'tool'` to `tool || team`.
13
- */
14
- import React from 'react';
15
- import type { Theme } from '../theme.js';
16
- import type { TermCapabilities } from '../capabilities.js';
17
- import type { SubagentRun } from '../../team/types.js';
18
- import { type RosterCounts } from '../team-status.js';
19
- export interface TeamCardProps {
20
- requested: number;
21
- runs: SubagentRun[];
22
- aborted: boolean;
23
- durationMs?: number;
24
- active: boolean;
25
- expanded?: boolean;
26
- reducedMotion?: boolean;
27
- theme: Theme;
28
- caps: TermCapabilities;
29
- /**
30
- * Wall-clock seconds, set only while the dispatch is live (`nowSecFor`). WITHOUT
31
- * IT a running child's elapsed time came from `(endedAt ?? 0) - startedAt` - a
32
- * negative number clamped to `0ms`, the readout that contradicted the roster
33
- * beside it (A-1 / E4).
34
- */
35
- nowSec?: number;
36
- }
37
- /**
38
- * The card's aggregate colour.
39
- *
40
- * FAILURES DOMINATE, THEN A CANCELLATION, THEN A DISPATCH THAT NEVER SETTLED.
41
- * The old version asked `runs.some((r) => !isOk(r))`, so an entry whose children
42
- * were still working - and one the user had cancelled - was painted `toolError`
43
- * (A-1 / E8). `RosterCounts` is passed IN rather than recomputed, so this colour
44
- * and the headline cannot disagree inside one card.
45
- */
46
- export declare function teamCardColor(counts: RosterCounts, active: boolean, aborted: boolean, theme: Theme): string | undefined;
47
- declare function TeamCardImpl(props: TeamCardProps): React.ReactElement;
48
- /**
49
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
50
- * `mapEntry` already preserves object identity for untouched entries, so the
51
- * array props below are stable references on a settled card, and `theme` /
52
- * `caps` are `useMemo`d in `App.tsx` (I-L2-1).
53
- */
54
- export declare const TeamCard: React.MemoExoticComponent<typeof TeamCardImpl>;
55
- export {};
@@ -1,94 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * TeamCard — the settled-dispatch transcript entry (team-subagents §6.3).
4
- *
5
- * ASCII ONLY: every glyph comes from `pickGlyphs`.
6
- *
7
- * The panel is EPHEMERAL and this card is the HISTORY. It renders like a
8
- * `ToolCard` — same `EntryFrame` supplied by `EntryView`, same left rail for the
9
- * expanded body — so a dispatch reads as one more step in the transcript rather
10
- * than a second kind of object.
11
- *
12
- * `Ctrl+O` expands it to the per-agent summaries, which is why `App.tsx`'s
13
- * Ctrl+O finder had to widen from `kind === 'tool'` to `tool || team`.
14
- */
15
- import React from 'react';
16
- import { Box, Text } from 'ink';
17
- import Spinner from 'ink-spinner';
18
- import { pickGlyphs } from '../glyphs.js';
19
- import { railBorderProps } from '../layout/Gutter.js';
20
- import { formatDuration } from '../../agent/usage.js';
21
- import { childElapsedMs, childStatus, outcomePhrase, rosterCounts, statusColor, statusMarkerCell, } from '../team-status.js';
22
- /**
23
- * The card's aggregate colour.
24
- *
25
- * FAILURES DOMINATE, THEN A CANCELLATION, THEN A DISPATCH THAT NEVER SETTLED.
26
- * The old version asked `runs.some((r) => !isOk(r))`, so an entry whose children
27
- * were still working - and one the user had cancelled - was painted `toolError`
28
- * (A-1 / E8). `RosterCounts` is passed IN rather than recomputed, so this colour
29
- * and the headline cannot disagree inside one card.
30
- */
31
- export function teamCardColor(counts, active, aborted, theme) {
32
- if (active)
33
- return theme.toolRunning;
34
- if (counts.failed > 0)
35
- return theme.toolError;
36
- if (aborted || counts.aborted > 0 || counts.queued > 0 || counts.running > 0) {
37
- return theme.noticeWarn;
38
- }
39
- return theme.toolDone;
40
- }
41
- /** `nowSec` is seconds (`App`'s 1 Hz clock); a card measures in milliseconds. */
42
- function liveClockMs(nowSec) {
43
- return nowSec === undefined ? Date.now() : nowSec * 1000;
44
- }
45
- /**
46
- * The elapsed column for one child: a MEASUREMENT, or an empty cell.
47
- *
48
- * `liveNow` is defined only while the dispatch is live, and that distinction is the
49
- * whole point. A child restored by `/resume` keeps its `startedAt` and has no
50
- * `endedAt` - `session/persist.ts` settles the ENTRY, it does not invent an end time
51
- * for the run - so a figure computed against `Date.now()` would claim hours of work
52
- * that never happened, next to an `interrupted (session resumed)` headline that says
53
- * the opposite. An unmeasurable duration is left blank instead.
54
- */
55
- function elapsedCell(run, liveNow) {
56
- const end = run.endedAt ?? liveNow;
57
- if (run.startedAt === undefined || end === undefined)
58
- return '';
59
- return formatDuration(childElapsedMs(run, end));
60
- }
61
- function TeamCardImpl(props) {
62
- const { requested, runs, aborted, durationMs, active, expanded, reducedMotion, theme, caps } = props;
63
- const glyphs = pickGlyphs(caps);
64
- // ONE COUNTING AUTHORITY (A-1): `ok`/`failed` used to be `isOk(...)` and
65
- // `runs.length - ok`, which counted a cancelled child - and a still-working one -
66
- // as a failed one (E3 / E8).
67
- const counts = rosterCounts(runs);
68
- const color = teamCardColor(counts, active, aborted, theme);
69
- // A CLOCK ONLY WHILE THE DISPATCH IS LIVE: a settled card has nothing left to time,
70
- // and a clock in the settled path is how a resumed dispatch came to read like a run
71
- // that is still going (`elapsedCell`).
72
- const liveNow = active ? liveClockMs(props.nowSec) : undefined;
73
- // A dispatch entry restored from `/resume` is settled and aborted but has no
74
- // duration: nothing measured it, because the process it belonged to is gone.
75
- // Saying so plainly beats rendering `0.0s (0 ok, 3 failed)`, which reads like
76
- // a dispatch that ran and lost (§5.3 / P1-5).
77
- const interrupted = !active && aborted && durationMs === undefined;
78
- const headline = interrupted
79
- ? 'interrupted (session resumed)'
80
- : active
81
- ? `${counts.queued + counts.running} running`
82
- : `${formatDuration(durationMs ?? 0)} (${outcomePhrase(counts)})`;
83
- const count = `${runs.length} ${runs.length === 1 ? 'subagent' : 'subagents'}`;
84
- const dropped = requested > runs.length ? ` (${runs.length} of ${requested} requested)` : '';
85
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: theme.accent, bold: true, children: "team" }), _jsxs(Text, { color: theme.muted, children: [' ', count, dropped, ' '] }), active && !reducedMotion && caps.unicode ? (_jsxs(Text, { color: color, children: [_jsx(Spinner, { type: "dots" }), " ", headline] })) : (_jsxs(Text, { color: color, children: [active ? `${glyphs.spinnerStill} ` : '', headline] }))] }), _jsxs(Box, { flexDirection: "column", flexShrink: 0, paddingLeft: 1, ...railBorderProps(glyphs.railVertical, theme.border), children: [runs.map((run) => (_jsxs(Text, { wrap: "truncate", children: [_jsx(Text, { color: statusColor(childStatus(run), theme), children: statusMarkerCell(childStatus(run), glyphs) }), _jsxs(Text, { color: theme.primary, children: [' ', run.label.padEnd(8).slice(0, 8)] }), _jsxs(Text, { color: theme.muted, children: [' ', run.description, ' ', elapsedCell(run, liveNow), ` ${run.turns} turns`, run.filesTouched.length > 0 ? ` ${run.filesTouched.length} files` : '', run.error ? ` ${run.error}` : ''] }), run.retry && (_jsxs(Text, { color: theme.noticeWarn, bold: true, children: [' ', "retry ", run.retry.attempt, "/", run.retry.maxRetries] }))] }, run.label))), expanded &&
86
- runs.map((run) => (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: theme.accent, children: [run.label, " ", glyphs.midDot, " ", run.description] }), _jsx(Text, { color: theme.muted, children: run.summary ?? '(no summary)' })] }, `s-${run.label}`))), !expanded && !active && runs.length > 0 && (_jsxs(Text, { color: theme.muted, children: ["+", runs.length, " ", runs.length === 1 ? 'summary' : 'summaries', " (Ctrl+O)"] })), expanded && _jsx(Text, { color: theme.muted, children: "(Ctrl+O to collapse)" })] })] }));
87
- }
88
- /**
89
- * `React.memo` with the DEFAULT comparator (tui-render-performance L2 / R3).
90
- * `mapEntry` already preserves object identity for untouched entries, so the
91
- * array props below are stable references on a settled card, and `theme` /
92
- * `caps` are `useMemo`d in `App.tsx` (I-L2-1).
93
- */
94
- export const TeamCard = React.memo(TeamCardImpl);