@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,107 +0,0 @@
1
- /**
2
- * Markdown parsing layer (spec §4.7). Pure and React-free so the grammar can be
3
- * unit-tested without rendering anything. `string-width` is the only import and
4
- * it is a pure function of its argument, so the module stays side-effect free.
5
- *
6
- * Scope is deliberately small — this is not CommonMark. It covers what a coding
7
- * agent's answers actually contain: fenced code, headings, lists, quotes, rules,
8
- * tables, and inline emphasis / code / strikethrough.
9
- */
10
- /** Heading levels are rendered with three distinct weights, not one (§4.7). */
11
- export interface HeadingBlock {
12
- kind: 'heading';
13
- level: 1 | 2 | 3 | 4 | 5 | 6;
14
- text: string;
15
- }
16
- export interface RuleBlock {
17
- kind: 'rule';
18
- }
19
- /** Column alignment carried by a table's `|---|:--:|` divider row. */
20
- export type Align = 'left' | 'right' | 'center';
21
- export interface TableBlock {
22
- kind: 'table';
23
- /** Already column-aligned; render as plain monospace rows. */
24
- rows: string[][];
25
- align: Align[];
26
- }
27
- export declare function parseHeading(line: string): HeadingBlock | null;
28
- export declare function isRule(line: string): boolean;
29
- /** Split one `| a | b |` row into trimmed cells. Returns null if not a row. */
30
- export declare function parseTableRow(line: string): string[] | null;
31
- /** Is this the `|---|:--:|` divider that makes the preceding row a header? */
32
- export declare function isTableDivider(line: string): boolean;
33
- export declare function tableAlignments(dividerLine: string): TableBlock['align'];
34
- /**
35
- * How the table is drawn. Both characters are injected by the renderer from
36
- * `pickGlyphs(caps)` because this file is inside the ASCII-only scan
37
- * (`glyphs.test.ts::inScope`): a Unicode box-drawing literal here would fail
38
- * that guard.
39
- */
40
- export interface TableFormatOptions {
41
- /** Drawn between cells; `Markdown.tsx` passes `glyphs.railVertical`. */
42
- separator?: string;
43
- /** Repeated to a column's padded width; `Markdown.tsx` passes `glyphs.hrule`. */
44
- rule?: string;
45
- }
46
- /**
47
- * Pad a parsed table into fixed-width columns and draw the header rule.
48
- *
49
- * Returns `[header, divider, ...bodyRows]`, one string per rendered row, so
50
- * index 0 is always the header and index 1 always the divider. The divider is
51
- * rendered rather than swallowed because the parser consumes the source
52
- * `|---|` row to read alignment: without it, a `--no-color` terminal showed a
53
- * table as unseparated prose (bold is dropped at colour level 0, and the old
54
- * two-space join gave no column boundary either).
55
- *
56
- * Padding is by DISPLAY columns, not `String.length`: a CJK cell is one code
57
- * unit but two terminal columns, so `.length` misaligned every such table.
58
- */
59
- export declare function formatTable(rows: string[][], align: TableBlock['align'], options?: TableFormatOptions): string[];
60
- /**
61
- * One parsed top-level block.
62
- *
63
- * `line` is deliberately UNPARSED: heading / rule / quote / bullet detection is
64
- * a handful of regexes over one short string and is done at render time, where
65
- * the theme and the glyph set live. Caching a themed element instead would make
66
- * `/theme` a no-op until the cache evicted (K-5).
67
- */
68
- export type MdBlock = {
69
- kind: 'code';
70
- code: string;
71
- lang: string;
72
- } | {
73
- kind: 'table';
74
- rows: string[][];
75
- align: Align[];
76
- } | {
77
- kind: 'line';
78
- text: string;
79
- };
80
- /** Split a document into fenced code, pipe tables, and everything else. */
81
- export declare function parseMarkdownBlocks(text: string): MdBlock[];
82
- export type InlineSpan = {
83
- kind: 'text';
84
- text: string;
85
- } | {
86
- kind: 'code';
87
- text: string;
88
- } | {
89
- kind: 'bold';
90
- text: string;
91
- } | {
92
- kind: 'italic';
93
- text: string;
94
- } | {
95
- kind: 'strike';
96
- text: string;
97
- };
98
- /**
99
- * Two passes, and that ordering is the fix (§4.7).
100
- *
101
- * The old single regex alternated `code | bold | italic` at the same level, so
102
- * `**bold with `code` inside**` matched neither branch cleanly and rendered as
103
- * literal asterisks. Splitting code out FIRST — and never looking for emphasis
104
- * inside a code span — resolves both cases: emphasis around code now works, and
105
- * asterisks inside code stay literal, which is what a shell snippet needs.
106
- */
107
- export declare function parseInline(text: string): InlineSpan[];
@@ -1,240 +0,0 @@
1
- /**
2
- * Markdown parsing layer (spec §4.7). Pure and React-free so the grammar can be
3
- * unit-tested without rendering anything. `string-width` is the only import and
4
- * it is a pure function of its argument, so the module stays side-effect free.
5
- *
6
- * Scope is deliberately small — this is not CommonMark. It covers what a coding
7
- * agent's answers actually contain: fenced code, headings, lists, quotes, rules,
8
- * tables, and inline emphasis / code / strikethrough.
9
- */
10
- import stringWidth from 'string-width';
11
- const HEADING_RE = /^(#{1,6})\s+(.*)$/;
12
- /** `---`, `***` or `___`, three or more, nothing else on the line. */
13
- const RULE_RE = /^(?:-{3,}|\*{3,}|_{3,})$/;
14
- const TABLE_ROW_RE = /^\s*\|(.+)\|\s*$/;
15
- const TABLE_DIVIDER_CELL_RE = /^:?-{1,}:?$/;
16
- export function parseHeading(line) {
17
- const m = HEADING_RE.exec(line);
18
- if (!m)
19
- return null;
20
- return { kind: 'heading', level: m[1].length, text: m[2] ?? '' };
21
- }
22
- export function isRule(line) {
23
- return RULE_RE.test(line.trim());
24
- }
25
- /** Split one `| a | b |` row into trimmed cells. Returns null if not a row. */
26
- export function parseTableRow(line) {
27
- const m = TABLE_ROW_RE.exec(line);
28
- if (!m)
29
- return null;
30
- return m[1].split('|').map((c) => c.trim());
31
- }
32
- /** Is this the `|---|:--:|` divider that makes the preceding row a header? */
33
- export function isTableDivider(line) {
34
- const cells = parseTableRow(line);
35
- if (!cells || cells.length === 0)
36
- return false;
37
- return cells.every((c) => TABLE_DIVIDER_CELL_RE.test(c));
38
- }
39
- export function tableAlignments(dividerLine) {
40
- const cells = parseTableRow(dividerLine) ?? [];
41
- return cells.map((c) => {
42
- const left = c.startsWith(':');
43
- const right = c.endsWith(':');
44
- if (left && right)
45
- return 'center';
46
- if (right)
47
- return 'right';
48
- return 'left';
49
- });
50
- }
51
- /** Default column separator: pure ASCII, so this module holds no glyph literal. */
52
- const DEFAULT_TABLE_SEPARATOR = '|';
53
- /** Default header rule: pure ASCII for the same reason. */
54
- const DEFAULT_TABLE_RULE = '-';
55
- /** One space either side of the separator, so a boundary is unmistakable. */
56
- const TABLE_CELL_GAP = ' ';
57
- /**
58
- * Pad a parsed table into fixed-width columns and draw the header rule.
59
- *
60
- * Returns `[header, divider, ...bodyRows]`, one string per rendered row, so
61
- * index 0 is always the header and index 1 always the divider. The divider is
62
- * rendered rather than swallowed because the parser consumes the source
63
- * `|---|` row to read alignment: without it, a `--no-color` terminal showed a
64
- * table as unseparated prose (bold is dropped at colour level 0, and the old
65
- * two-space join gave no column boundary either).
66
- *
67
- * Padding is by DISPLAY columns, not `String.length`: a CJK cell is one code
68
- * unit but two terminal columns, so `.length` misaligned every such table.
69
- */
70
- export function formatTable(rows, align, options = {}) {
71
- const separator = options.separator ?? DEFAULT_TABLE_SEPARATOR;
72
- const rule = options.rule ?? DEFAULT_TABLE_RULE;
73
- const colCount = Math.max(...rows.map((r) => r.length), 0);
74
- const widths = [];
75
- for (let c = 0; c < colCount; c += 1) {
76
- widths[c] = Math.max(...rows.map((r) => displayColumns(r[c] ?? '')), 0);
77
- }
78
- const gap = `${TABLE_CELL_GAP}${separator}${TABLE_CELL_GAP}`;
79
- const body = rows.map((row) => padRow(row, widths, align).join(gap).trimEnd());
80
- if (body.length === 0)
81
- return [];
82
- const divider = widths.map((w) => rule.repeat(w)).join(gap).trimEnd();
83
- return [body[0], divider, ...body.slice(1)];
84
- }
85
- function padRow(row, widths, align) {
86
- return row.map((cell, c) => padCell(cell, widths[c] ?? 0, align[c] ?? 'left'));
87
- }
88
- function padCell(cell, width, align) {
89
- const pad = width - displayColumns(cell);
90
- if (pad <= 0)
91
- return cell;
92
- const filler = ' '.repeat(pad);
93
- if (align === 'right')
94
- return filler + cell;
95
- if (align === 'center') {
96
- const left = Math.floor(pad / 2);
97
- return `${' '.repeat(left)}${cell}${' '.repeat(pad - left)}`;
98
- }
99
- return cell + filler;
100
- }
101
- /**
102
- * Printable ASCII with no TAB: one code unit is one cell, so the width table is
103
- * not consulted at all.
104
- *
105
- * The same load-bearing fast path `virtual-window.displayColumns` carries, and for
106
- * the same reason: `stringWidth` strips ANSI and walks the East-Asian width table
107
- * per code point, while this runs once per CELL of every table row on every frame.
108
- * Table cells are overwhelmingly ASCII, so the branch is taken almost always -
109
- * and when it is not, the table is CJK and the table is exactly what must be used.
110
- */
111
- const PLAIN_ASCII = /^[\x20-\x7e]*$/;
112
- /** Terminal columns occupied by `text` (wide glyphs count two). */
113
- function displayColumns(text) {
114
- return PLAIN_ASCII.test(text) ? text.length : stringWidth(text);
115
- }
116
- /**
117
- * An opening fence is three or more backticks plus an optional info string.
118
- *
119
- * The old `(\w*)` info group was too narrow for real answers: ```c++ and
120
- * ```objective-c did not open a block at all, so the body degraded to prose and
121
- * the closing fence was then swallowed as a new empty code block. A backtick is
122
- * the one character CommonMark forbids in an info string; everything else is
123
- * accepted here and the language is simply the FIRST token.
124
- */
125
- const FENCE_OPEN_RE = /^(`{3,})[ \t]*([^`]*)$/;
126
- /** A closing fence carries backticks only — no info string. */
127
- const FENCE_CLOSE_RE = /^(`{3,})[ \t]*$/;
128
- function parseFenceOpen(line) {
129
- const m = FENCE_OPEN_RE.exec(line);
130
- if (!m)
131
- return null;
132
- const info = (m[2] ?? '').trim();
133
- return { count: m[1].length, lang: info.split(/\s+/)[0] ?? '' };
134
- }
135
- /** Backtick count of a line that could close a fence; 0 when it could not. */
136
- function closingFenceLength(line) {
137
- const m = FENCE_CLOSE_RE.exec(line);
138
- return m ? m[1].length : 0;
139
- }
140
- /**
141
- * Collect a fence body starting after the opening fence.
142
- *
143
- * A closer must carry AT LEAST as many backticks as its opener, so a
144
- * four-backtick block may contain ``` lines — that is how a nested markdown
145
- * example survives. A shorter run is content, not the end of the block.
146
- */
147
- function readFenceBody(lines, openIndex, openCount) {
148
- const body = [];
149
- let i = openIndex + 1;
150
- while (i < lines.length) {
151
- if (closingFenceLength((lines[i] ?? '').trim()) >= openCount) {
152
- return { code: body.join('\n'), next: i + 1 };
153
- }
154
- body.push(lines[i] ?? '');
155
- i += 1;
156
- }
157
- return { code: body.join('\n'), next: i };
158
- }
159
- /** Split a document into fenced code, pipe tables, and everything else. */
160
- export function parseMarkdownBlocks(text) {
161
- // CRLF-safe: a bare `split('\n')` left a '\r' on every code line, which then
162
- // reached the highlighter and the display-width maths.
163
- const lines = text.split(/\r?\n/);
164
- const blocks = [];
165
- let i = 0;
166
- while (i < lines.length) {
167
- const line = lines[i] ?? '';
168
- const fence = parseFenceOpen(line.trim());
169
- if (fence) {
170
- const { code, next } = readFenceBody(lines, i, fence.count);
171
- blocks.push({ kind: 'code', code, lang: fence.lang });
172
- i = next;
173
- continue;
174
- }
175
- // A pipe row followed by a divider row starts a table; consume the run.
176
- const headerCells = parseTableRow(line);
177
- if (headerCells && i + 1 < lines.length && isTableDivider(lines[i + 1] ?? '')) {
178
- const align = tableAlignments(lines[i + 1] ?? '');
179
- const rows = [headerCells];
180
- i += 2;
181
- while (i < lines.length) {
182
- const cells = parseTableRow(lines[i] ?? '');
183
- if (!cells)
184
- break;
185
- rows.push(cells);
186
- i += 1;
187
- }
188
- blocks.push({ kind: 'table', rows, align });
189
- continue;
190
- }
191
- blocks.push({ kind: 'line', text: line });
192
- i += 1;
193
- }
194
- return blocks;
195
- }
196
- const CODE_RE = /`[^`]+`/g;
197
- const EMPHASIS_RE = /(\*\*[^*]+\*\*|~~[^~]+~~|\*[^*]+\*)/g;
198
- /**
199
- * Two passes, and that ordering is the fix (§4.7).
200
- *
201
- * The old single regex alternated `code | bold | italic` at the same level, so
202
- * `**bold with `code` inside**` matched neither branch cleanly and rendered as
203
- * literal asterisks. Splitting code out FIRST — and never looking for emphasis
204
- * inside a code span — resolves both cases: emphasis around code now works, and
205
- * asterisks inside code stay literal, which is what a shell snippet needs.
206
- */
207
- export function parseInline(text) {
208
- const spans = [];
209
- let last = 0;
210
- let m;
211
- CODE_RE.lastIndex = 0;
212
- while ((m = CODE_RE.exec(text)) !== null) {
213
- if (m.index > last)
214
- pushEmphasis(spans, text.slice(last, m.index));
215
- spans.push({ kind: 'code', text: m[0].slice(1, -1) });
216
- last = m.index + m[0].length;
217
- }
218
- if (last < text.length)
219
- pushEmphasis(spans, text.slice(last));
220
- return spans;
221
- }
222
- function pushEmphasis(out, text) {
223
- let last = 0;
224
- let m;
225
- EMPHASIS_RE.lastIndex = 0;
226
- while ((m = EMPHASIS_RE.exec(text)) !== null) {
227
- if (m.index > last)
228
- out.push({ kind: 'text', text: text.slice(last, m.index) });
229
- const token = m[0];
230
- if (token.startsWith('**'))
231
- out.push({ kind: 'bold', text: token.slice(2, -2) });
232
- else if (token.startsWith('~~'))
233
- out.push({ kind: 'strike', text: token.slice(2, -2) });
234
- else
235
- out.push({ kind: 'italic', text: token.slice(1, -1) });
236
- last = m.index + token.length;
237
- }
238
- if (last < text.length)
239
- out.push({ kind: 'text', text: text.slice(last) });
240
- }
@@ -1,57 +0,0 @@
1
- /**
2
- * AgentsBoardOverlay — the read-only detail board behind `Ctrl+B` / `/agents`
3
- * (tui-subagent-panel §4.4 / §6.3).
4
- *
5
- * READ-ONLY IS THE SAFETY BOUNDARY (§2.2). Nothing here nudges, kills or re-dispatches
6
- * a child, and no new `TeamEvent` member was introduced to feed it: a board that can
7
- * only read can never kill a healthy child, which is the whole reason this is a
8
- * second surface rather than a control panel.
9
- *
10
- * ONE SCREEN, CONTROLLED MODE. `OverlayFrame`'s controlled form already owns paging,
11
- * the position indicator and the narrow-terminal degradation, and `helpRows` /
12
- * `projectQueueRows` are the precedent. A second pane would mean a second horizontal
13
- * budget inside Ink for a benefit the board's 2-up field rows already deliver.
14
- *
15
- * IT DOES NOT GO BLANK WHEN THE DISPATCH ENDS (D-9). `state.team` becomes `null` the
16
- * frame the dispatch settles, and a reader would lose the child they were reading
17
- * about at the exact moment they wanted the post-mortem. The last live snapshot is
18
- * therefore FROZEN (a copy, held in a ref) and keeps rendering with a
19
- * `dispatch ended` row; a board opened AFTER the dispatch has ended builds from the
20
- * transcript's settled `team` entry instead (`resolveBoardSource`), which is where the
21
- * `result` section earns its place - the error is the one fact that is never stripped.
22
- *
23
- * NO `ink-spinner` HERE (D-13): `spinner-census.test.ts` pins the exact list of files
24
- * that mount an animated spinner, and this is a reading surface, not an animation.
25
- * The panel is where motion belongs.
26
- *
27
- * AND NO MOTION PROP (v2 implementation note, appended to the spec's
28
- * "implementation findings"). Because nothing here animates, a motion flag would be a
29
- * prop with no consumer - and worse, the same census counts how many times `App.tsx`
30
- * hands the RAW motion flag to a child and asserts the count is EXACTLY ONE, so passing
31
- * it from the board's branch would break a shipped guard rail for no gain.
32
- *
33
- * ASCII ONLY: every symbol comes through `glyphs`.
34
- */
35
- import React from 'react';
36
- import type { Entry } from '../../agent/reducer.js';
37
- import type { Theme } from '../theme.js';
38
- import type { TermCapabilities } from '../capabilities.js';
39
- import type { TeamSnapshot } from '../../team/types.js';
40
- export interface AgentsBoardOverlayProps {
41
- /** The live snapshot; `null` once the dispatch has settled. */
42
- team: TeamSnapshot | null;
43
- /** The transcript, for the settled fallback (D-9 path 4). */
44
- entries: readonly Entry[];
45
- /** Overlay content width (`App`'s `viewCols`). */
46
- cols: number;
47
- maxRows: number;
48
- scrollOffset: number;
49
- onScrollClamp: (offset: number) => void;
50
- isActive: boolean;
51
- native: boolean;
52
- theme: Theme;
53
- caps: TermCapabilities;
54
- /** Injectable clock, so the board's tests do not depend on wall time. */
55
- now?: number;
56
- }
57
- export declare function AgentsBoardOverlay({ team, entries, cols, maxRows, scrollOffset, onScrollClamp, isActive, native, theme, caps, now, }: AgentsBoardOverlayProps): React.ReactElement;
@@ -1,183 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * AgentsBoardOverlay — the read-only detail board behind `Ctrl+B` / `/agents`
4
- * (tui-subagent-panel §4.4 / §6.3).
5
- *
6
- * READ-ONLY IS THE SAFETY BOUNDARY (§2.2). Nothing here nudges, kills or re-dispatches
7
- * a child, and no new `TeamEvent` member was introduced to feed it: a board that can
8
- * only read can never kill a healthy child, which is the whole reason this is a
9
- * second surface rather than a control panel.
10
- *
11
- * ONE SCREEN, CONTROLLED MODE. `OverlayFrame`'s controlled form already owns paging,
12
- * the position indicator and the narrow-terminal degradation, and `helpRows` /
13
- * `projectQueueRows` are the precedent. A second pane would mean a second horizontal
14
- * budget inside Ink for a benefit the board's 2-up field rows already deliver.
15
- *
16
- * IT DOES NOT GO BLANK WHEN THE DISPATCH ENDS (D-9). `state.team` becomes `null` the
17
- * frame the dispatch settles, and a reader would lose the child they were reading
18
- * about at the exact moment they wanted the post-mortem. The last live snapshot is
19
- * therefore FROZEN (a copy, held in a ref) and keeps rendering with a
20
- * `dispatch ended` row; a board opened AFTER the dispatch has ended builds from the
21
- * transcript's settled `team` entry instead (`resolveBoardSource`), which is where the
22
- * `result` section earns its place - the error is the one fact that is never stripped.
23
- *
24
- * NO `ink-spinner` HERE (D-13): `spinner-census.test.ts` pins the exact list of files
25
- * that mount an animated spinner, and this is a reading surface, not an animation.
26
- * The panel is where motion belongs.
27
- *
28
- * AND NO MOTION PROP (v2 implementation note, appended to the spec's
29
- * "implementation findings"). Because nothing here animates, a motion flag would be a
30
- * prop with no consumer - and worse, the same census counts how many times `App.tsx`
31
- * hands the RAW motion flag to a child and asserts the count is EXACTLY ONE, so passing
32
- * it from the board's branch would break a shipped guard rail for no gain.
33
- *
34
- * ASCII ONLY: every symbol comes through `glyphs`.
35
- */
36
- import { useCallback, useEffect, useRef, useState } from 'react';
37
- import { Text, useInput } from 'ink';
38
- import { pickGlyphs } from '../glyphs.js';
39
- import { OverlayFrame } from '../layout/OverlayFrame.js';
40
- import { buildAgentBoardRows, resolveBoardSource, resolveSelection, } from '../layout/agents-board.js';
41
- /** `OverlayFrame`'s own breakpoint, mirrored so the chrome estimate cannot drift. */
42
- const FRAME_BORDERLESS_COLS = 48;
43
- /**
44
- * Close a frozen live snapshot: the dispatch it described has ended.
45
- *
46
- * `durationMs` is derived from the LAST frame the snapshot was live, so the board's
47
- * summary shows the dispatch's real total instead of a clock that keeps running against
48
- * a dispatch nobody can see any more. When the snapshot never had a `startedAt` there is
49
- * nothing to derive and the field stays absent - the LIVE-ONLY rule turns that into an
50
- * empty clock cell rather than an invented number (§4.4.2).
51
- */
52
- function settleFrozen(frozen) {
53
- const { source, at } = frozen;
54
- const total = source.startedAt === undefined ? undefined : Math.max(0, at - source.startedAt);
55
- return {
56
- ...source,
57
- active: false,
58
- ...(total !== undefined ? { durationMs: total } : {}),
59
- };
60
- }
61
- /** Palette slot -> theme colour. One place, so a tone can never be spelled twice. */
62
- function toneColor(tone, theme) {
63
- switch (tone) {
64
- case 'accent':
65
- return theme.accent;
66
- case 'primary':
67
- return theme.primary;
68
- case 'muted':
69
- return theme.muted;
70
- case 'warn':
71
- return theme.noticeWarn;
72
- case 'error':
73
- return theme.noticeError;
74
- case 'done':
75
- return theme.toolDone;
76
- case 'hint':
77
- return theme.hintFg;
78
- }
79
- }
80
- export function AgentsBoardOverlay({ team, entries, cols, maxRows, scrollOffset, onScrollClamp, isActive, native, theme, caps, now, }) {
81
- const glyphs = pickGlyphs(caps);
82
- const at = now ?? Date.now();
83
- const [selectedLabel, setSelectedLabel] = useState(null);
84
- /**
85
- * THE FROZEN SNAPSHOT (D-9), plus the clock reading it was frozen at.
86
- *
87
- * A ref rather than state on purpose: it is written from an effect that must not
88
- * trigger a render of its own, and reading it during the render that FIRST sees
89
- * `team === null` is what keeps the board from blinking empty for one frame. The
90
- * timestamp is kept WITH the snapshot because a frozen live source still says
91
- * `active: true` - it was live when it was copied - and a board that kept believing
92
- * that would never show its `dispatch ended` row nor stop its clock.
93
- */
94
- const frozen = useRef(null);
95
- const live = team === null ? null : resolveBoardSource({ team, entries });
96
- useEffect(() => {
97
- if (live !== null)
98
- frozen.current = { source: live, at };
99
- }, [live, at]);
100
- // PRIORITY: live > frozen > the most recent settled entry (§4.4.5). The frozen copy
101
- // only ever takes over on the frame the live snapshot disappears, and a NEW dispatch
102
- // overwrites it on its own first frame, so the two paths cannot both be active.
103
- //
104
- // A FROZEN SOURCE IS SETTLED, and it is closed here rather than at the moment of
105
- // copying: `active: false` is what draws `dispatch ended` (task AC-17), and taking
106
- // `durationMs` from the freeze instant stops the clock at the dispatch's real end
107
- // instead of letting it count up forever from a snapshot that no longer exists.
108
- const frozenSource = frozen.current === null ? null : settleFrozen(frozen.current);
109
- const source = live ?? frozenSource ?? resolveBoardSource({ team: null, entries });
110
- const selected = source === null ? null : resolveSelection(source.runs, selectedLabel);
111
- /**
112
- * UP/DOWN MOVES THE CHILD CURSOR, and a change of child RESETS the scroll.
113
- *
114
- * `agents` deliberately does NOT join `App`'s row-scroll set (`help | plan | queue`):
115
- * the same trade `settings` makes with its field cursor, where Up/Down is worth more
116
- * as navigation than as a six-row scroll. `PgUp` / `PgDn` / the wheel still page the
117
- * board through `App`'s `controlled` set, so no reading gesture is lost.
118
- */
119
- const move = useCallback((delta) => {
120
- const runs = source?.runs ?? [];
121
- if (runs.length === 0)
122
- return;
123
- const current = resolveSelection(runs, selectedLabel);
124
- const index = current === null ? -1 : runs.findIndex((run) => run.label === current.label);
125
- const next = runs[Math.min(runs.length - 1, Math.max(0, index + delta))];
126
- if (next === undefined || next.label === current?.label)
127
- return;
128
- setSelectedLabel(next.label);
129
- // The documented semantic of this port is "the offset should now be 0" (§6.3).
130
- onScrollClamp(0);
131
- }, [onScrollClamp, selectedLabel, source]);
132
- useInput((_input, key) => {
133
- if (!isActive)
134
- return;
135
- if (key.upArrow)
136
- move(-1);
137
- else if (key.downArrow)
138
- move(1);
139
- }, { isActive });
140
- // THE FRAME'S CHROME IS NOT FREE (v2 implementation note). `cols` arrives as the
141
- // overlay's FRAME width (`App`'s `viewCols`), and `OverlayFrame` spends 4 of those
142
- // columns on its border plus `paddingX={1}` (2 in the narrow rail form, which drops
143
- // the right border and the right padding). A board laid out against the frame width
144
- // therefore has its LAST four columns eaten by Ink's truncation - which lands exactly
145
- // on the right-anchored figures this board exists to align. `helpRows` gets away with
146
- // it because its rows are prose; these are a table.
147
- const contentCols = Math.max(1, cols - (cols >= FRAME_BORDERLESS_COLS ? 4 : 2));
148
- const rows = source === null
149
- ? [{
150
- key: 'empty',
151
- kind: 'hint',
152
- text: 'No subagent dispatch yet.',
153
- tone: 'muted',
154
- }]
155
- : buildAgentBoardRows({
156
- source,
157
- cols: contentCols,
158
- now: at,
159
- selectedLabel: selected?.label ?? null,
160
- glyphs,
161
- native,
162
- });
163
- // The `dispatch ended` banner is a ROW rather than a title swap: the title is the
164
- // frame's own ("Agents"), and replacing it would hide which screen the reader is on.
165
- const endedRow = source !== null && !source.active
166
- ? [{
167
- key: 'ended',
168
- kind: 'hint',
169
- text: `dispatch ended ${glyphs.midDot} Esc to close`,
170
- tone: 'warn',
171
- }]
172
- : [];
173
- const elements = [...endedRow, ...rows].map((row) => (_jsx(Text, { wrap: "truncate", color: toneColor(row.tone, theme), ...(row.kind === 'section' ? { bold: true } : {}), children: row.text }, row.key)));
174
- // THE HINT SHRINKS WITH THE FRAME. `OverlayFrame` prints the hint as one unwrapped
175
- // row, so a 41-column hint inside a 30-column frame makes the FRAME 41 wide - the
176
- // board would overflow the terminal and take the overlay's border with it.
177
- const hint = contentCols >= 60
178
- ? `Esc close ${glyphs.midDot} Up/Down child ${glyphs.midDot} PgUp/PgDn scroll`
179
- : contentCols >= 30
180
- ? `Esc close ${glyphs.midDot} Up/Down child`
181
- : 'Esc close';
182
- return (_jsx(OverlayFrame, { title: "Agents", hint: hint, maxRows: maxRows, cols: cols, rows: elements, scrollOffset: scrollOffset, onScrollClamp: onScrollClamp, theme: theme, caps: caps }));
183
- }
@@ -1,31 +0,0 @@
1
- /**
2
- * Confirm dialog — Yes/No gate for `confirmTools` mode. Resolves the pending
3
- * tool-execution promise (spec §3.6). `y` = approve; `n`/Enter/Esc = reject
4
- * (Enter follows the safe default shown by the capital N in the "(y/N)" prompt,
5
- * since this gates mutating tools like write_file/edit_file/bash).
6
- */
7
- import React from 'react';
8
- import type { Theme } from '../theme.js';
9
- import type { TermCapabilities } from '../capabilities.js';
10
- export interface ConfirmState {
11
- summary: string;
12
- resolve: (approved: boolean) => void;
13
- }
14
- interface ConfirmDialogProps {
15
- isActive?: boolean;
16
- state: ConfirmState;
17
- maxRows: number;
18
- cols: number;
19
- theme: Theme;
20
- caps: TermCapabilities;
21
- onClose: () => void;
22
- }
23
- /**
24
- * Self-managed (mode B) and deliberately without a position indicator: five
25
- * rows do not need scrolling, and `state.summary` may itself be multi-line, so
26
- * element slicing would be meaningless here. The frame is used purely so the
27
- * title and border match the other three overlays; the existing `useInput` is
28
- * untouched.
29
- */
30
- export declare function ConfirmDialog({ state, isActive, maxRows, cols, theme, caps, onClose, }: ConfirmDialogProps): React.ReactElement;
31
- export {};
@@ -1,44 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * Confirm dialog — Yes/No gate for `confirmTools` mode. Resolves the pending
4
- * tool-execution promise (spec §3.6). `y` = approve; `n`/Enter/Esc = reject
5
- * (Enter follows the safe default shown by the capital N in the "(y/N)" prompt,
6
- * since this gates mutating tools like write_file/edit_file/bash).
7
- */
8
- import { useState } from 'react';
9
- import { Text, useInput } from 'ink';
10
- import { pickGlyphs } from '../glyphs.js';
11
- import { wrapToRows } from '../layout/wrap-rows.js';
12
- import { OverlayFrame } from '../layout/OverlayFrame.js';
13
- /**
14
- * Self-managed (mode B) and deliberately without a position indicator: five
15
- * rows do not need scrolling, and `state.summary` may itself be multi-line, so
16
- * element slicing would be meaningless here. The frame is used purely so the
17
- * title and border match the other three overlays; the existing `useInput` is
18
- * untouched.
19
- */
20
- export function ConfirmDialog({ state, isActive = true, maxRows, cols, theme, caps, onClose, }) {
21
- const glyphs = pickGlyphs(caps);
22
- const [offset, setOffset] = useState(0);
23
- useInput((input, key) => {
24
- if (!isActive)
25
- return;
26
- if (key.pageUp || key.upArrow) {
27
- setOffset(n => Math.max(0, n - 1));
28
- return;
29
- }
30
- if (key.pageDown || key.downArrow) {
31
- setOffset(n => n + 1);
32
- return;
33
- }
34
- if (input === 'y' || input === 'Y') {
35
- state.resolve(true);
36
- onClose();
37
- }
38
- else if (input === 'n' || input === 'N' || key.return || key.escape) {
39
- state.resolve(false);
40
- onClose();
41
- }
42
- });
43
- return (_jsx(OverlayFrame, { title: "Confirm action", hint: "y approve | n/Enter/Esc reject | PgDn", maxRows: maxRows, cols: cols, theme: theme, caps: caps, scrollOffset: offset, onScrollClamp: setOffset, rows: wrapToRows(state.summary, Math.max(1, cols - 4)).map((line, index) => _jsx(Text, { wrap: "truncate", color: theme.assistant, children: line || ' ' }, index)) }));
44
- }