@aragon-agent/cli 0.6.47 → 0.6.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (775) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +27 -6
  3. package/dist/agent/coalesce.d.ts +1 -1
  4. package/dist/agent/controller.d.ts +21 -21
  5. package/dist/agent/controller.js +13 -13
  6. package/dist/agent/conversation-reset.d.ts +1 -1
  7. package/dist/agent/governance-wiring.d.ts +6 -6
  8. package/dist/agent/governance-wiring.js +4 -4
  9. package/dist/agent/headless.d.ts +5 -5
  10. package/dist/agent/headless.js +4 -4
  11. package/dist/agent/job-notices.d.ts +1 -1
  12. package/dist/agent/job-notices.js +1 -1
  13. package/dist/agent/kit-apply.d.ts +3 -3
  14. package/dist/agent/kit-apply.js +3 -3
  15. package/dist/agent/model-profile-settings.d.ts +2 -2
  16. package/dist/agent/model-profile-settings.js +6 -6
  17. package/dist/agent/prompt-options.d.ts +1 -1
  18. package/dist/agent/system-prompt.d.ts +1 -1
  19. package/dist/{ui → app}/App.d.ts +9 -9
  20. package/dist/{ui → app}/App.js +79 -79
  21. package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
  22. package/dist/{ui → app}/use-startup-notices.js +2 -2
  23. package/dist/cli.js +29 -29
  24. package/dist/commands/agents-command.js +1 -1
  25. package/dist/commands/builtins.js +9 -9
  26. package/dist/commands/governance-command.js +2 -2
  27. package/dist/commands/governance-runs-table.js +1 -1
  28. package/dist/commands/kit-command.js +1 -1
  29. package/dist/commands/perf.d.ts +3 -3
  30. package/dist/commands/perf.js +1 -1
  31. package/dist/commands/registry.d.ts +8 -8
  32. package/dist/commands/skills.js +2 -2
  33. package/dist/commands/team-command.js +1 -1
  34. package/dist/compaction/archive.d.ts +1 -1
  35. package/dist/compaction/archive.js +1 -1
  36. package/dist/compaction/child.d.ts +3 -3
  37. package/dist/compaction/child.js +4 -4
  38. package/dist/compaction/command.js +5 -5
  39. package/dist/compaction/compactor.d.ts +6 -6
  40. package/dist/compaction/compactor.js +6 -6
  41. package/dist/compaction/context-command.js +1 -1
  42. package/dist/compaction/digest.js +1 -1
  43. package/dist/compaction/memory-input.js +1 -1
  44. package/dist/compaction/memory-validation.js +1 -1
  45. package/dist/compaction/memory.js +1 -1
  46. package/dist/compaction/summarize-call.js +1 -1
  47. package/dist/compaction/summary-prompt.js +1 -1
  48. package/dist/compaction/tail-budget.js +2 -2
  49. package/dist/compaction/wiring.d.ts +5 -5
  50. package/dist/compaction/wiring.js +2 -2
  51. package/dist/config/cli-commands.d.ts +1 -1
  52. package/dist/config/cli-commands.js +3 -3
  53. package/dist/config/env.d.ts +1 -1
  54. package/dist/config/env.js +4 -4
  55. package/dist/config/load.d.ts +2 -2
  56. package/dist/config/load.js +6 -6
  57. package/dist/config/migrate-state-out-of-config.js +1 -1
  58. package/dist/config/model-profile-store.d.ts +4 -54
  59. package/dist/config/model-profile-store.js +3 -3
  60. package/dist/config/prompt-history.js +1 -1
  61. package/dist/config/store.d.ts +2 -2
  62. package/dist/config/store.js +3 -3
  63. package/dist/diagnostics/doctor.js +4 -4
  64. package/dist/exec/bridge/decisions.d.ts +1 -1
  65. package/dist/exec/bridge/human-answers.d.ts +1 -1
  66. package/dist/exec/bridge/human-answers.js +1 -1
  67. package/dist/exec/bridge/protocol.d.ts +1 -1
  68. package/dist/exec/bridge/server.js +1 -1
  69. package/dist/exec/events.d.ts +2 -2
  70. package/dist/exec/index.d.ts +1 -1
  71. package/dist/exec/index.js +1 -1
  72. package/dist/exec/permission.js +1 -1
  73. package/dist/exec/runner.d.ts +3 -3
  74. package/dist/exec/runner.js +2 -2
  75. package/dist/exec/threads/runtime.js +1 -1
  76. package/dist/fast/digest.d.ts +1 -1
  77. package/dist/fast/digest.js +1 -1
  78. package/dist/fast/frames.d.ts +1 -1
  79. package/dist/fast/frames.js +1 -1
  80. package/dist/fast/prompt.d.ts +1 -1
  81. package/dist/fast/prompt.js +1 -1
  82. package/dist/fast/review-call.js +1 -1
  83. package/dist/fast/reviewer.d.ts +3 -3
  84. package/dist/fast/reviewer.js +1 -1
  85. package/dist/fast/summary-call.d.ts +3 -3
  86. package/dist/fast/summary-call.js +2 -2
  87. package/dist/fast/summary-prompt.d.ts +1 -1
  88. package/dist/fast/summary-prompt.js +1 -1
  89. package/dist/fast/wiring.d.ts +4 -4
  90. package/dist/fast/wiring.js +1 -1
  91. package/dist/governance/card-normalize.d.ts +1 -1
  92. package/dist/governance/copy.d.ts +1 -1
  93. package/dist/governance/copy.js +2 -2
  94. package/dist/governance/engine/artifact-persist.d.ts +1 -1
  95. package/dist/governance/engine/budget.d.ts +1 -1
  96. package/dist/governance/engine/budget.js +1 -1
  97. package/dist/governance/engine/cards.d.ts +1 -1
  98. package/dist/governance/engine/digest.js +1 -1
  99. package/dist/governance/engine/engine-core.d.ts +5 -5
  100. package/dist/governance/engine/engine-core.js +1 -1
  101. package/dist/governance/engine/engine.d.ts +1 -1
  102. package/dist/governance/engine/engine.js +1 -1
  103. package/dist/governance/engine/estimate.d.ts +1 -1
  104. package/dist/governance/engine/estimate.js +1 -1
  105. package/dist/governance/engine/inspector.js +2 -2
  106. package/dist/governance/engine/integration.d.ts +1 -1
  107. package/dist/governance/engine/lifecycle.d.ts +1 -1
  108. package/dist/governance/engine/lifecycle.js +1 -1
  109. package/dist/governance/engine/phase-members.d.ts +1 -1
  110. package/dist/governance/engine/phase-planner.d.ts +1 -1
  111. package/dist/governance/engine/phase-planner.js +1 -1
  112. package/dist/governance/engine/rebuild.d.ts +1 -1
  113. package/dist/governance/engine/report.d.ts +1 -1
  114. package/dist/governance/engine/report.js +1 -1
  115. package/dist/governance/engine/run-digest.d.ts +1 -1
  116. package/dist/governance/engine/spec-builder.d.ts +2 -2
  117. package/dist/governance/engine/spec-builder.js +2 -2
  118. package/dist/governance/engine/stage-runner.js +2 -2
  119. package/dist/governance/engine/start-input.d.ts +1 -1
  120. package/dist/governance/engine/start-input.js +1 -1
  121. package/dist/governance/engine/state-machine.d.ts +1 -1
  122. package/dist/governance/engine/state-machine.js +3 -3
  123. package/dist/governance/engine/submission-queries.d.ts +1 -1
  124. package/dist/governance/engine/submission-render.d.ts +1 -1
  125. package/dist/governance/engine/submissions.d.ts +1 -1
  126. package/dist/governance/engine/submissions.js +1 -1
  127. package/dist/governance/engine/visibility.d.ts +1 -1
  128. package/dist/governance/engine/visibility.js +1 -1
  129. package/dist/governance/posture-transition.d.ts +2 -2
  130. package/dist/governance/posture-transition.js +1 -1
  131. package/dist/governance/profiles.d.ts +1 -1
  132. package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
  133. package/dist/governance/prompts/orchestrator-block.js +2 -2
  134. package/dist/governance/prompts/plan-addendum.d.ts +1 -1
  135. package/dist/governance/prompts/plan-addendum.js +1 -1
  136. package/dist/governance/prompts/role-blocks.d.ts +2 -2
  137. package/dist/governance/prompts/role-blocks.js +1 -1
  138. package/dist/governance/report-reader.js +1 -1
  139. package/dist/governance/roles.d.ts +1 -1
  140. package/dist/governance/rules/claims.d.ts +1 -1
  141. package/dist/governance/rules/claims.js +1 -1
  142. package/dist/governance/rules/elimination.d.ts +1 -1
  143. package/dist/governance/rules/elimination.js +1 -1
  144. package/dist/governance/rules/failure-analysis.d.ts +2 -2
  145. package/dist/governance/rules/failure-analysis.js +1 -1
  146. package/dist/governance/rules/ledger-replay.d.ts +1 -1
  147. package/dist/governance/rules/ledger-state.d.ts +1 -1
  148. package/dist/governance/rules/ledger-state.js +1 -1
  149. package/dist/governance/rules/ledger.d.ts +2 -2
  150. package/dist/governance/rules/ledger.js +2 -2
  151. package/dist/governance/rules/rca.d.ts +1 -1
  152. package/dist/governance/rules/rca.js +1 -1
  153. package/dist/governance/rules/settlement.d.ts +2 -2
  154. package/dist/governance/rules/settlement.js +2 -2
  155. package/dist/governance/rules/suspicion.d.ts +1 -1
  156. package/dist/governance/store/artifacts.d.ts +1 -1
  157. package/dist/governance/store/artifacts.js +1 -1
  158. package/dist/governance/store/events-log.d.ts +1 -1
  159. package/dist/governance/store/run-store.d.ts +1 -1
  160. package/dist/governance/store/run-store.js +1 -1
  161. package/dist/governance/store/scoreboard-export.d.ts +1 -1
  162. package/dist/governance/tools/child-tools.d.ts +1 -1
  163. package/dist/governance/tools/guard.d.ts +1 -1
  164. package/dist/governance/tools/guard.js +1 -1
  165. package/dist/governance/tools/inspector-tools.d.ts +2 -2
  166. package/dist/governance/tools/inspector-tools.js +2 -2
  167. package/dist/governance/tools/lead-tools.d.ts +1 -1
  168. package/dist/governance/tools/lead-tools.js +1 -1
  169. package/dist/governance/tools/normalize-util.js +1 -1
  170. package/dist/governance/tools/scan-incomplete.js +1 -1
  171. package/dist/governance/tools/shared-tools.d.ts +1 -1
  172. package/dist/governance/tools/shared-tools.js +1 -1
  173. package/dist/governance/tools/submit-normalizers.d.ts +1 -1
  174. package/dist/governance/tools/submit-normalizers.js +1 -1
  175. package/dist/governance/tools/submit-tools.d.ts +1 -1
  176. package/dist/logging/cli-commands.js +1 -1
  177. package/dist/logging/install.d.ts +1 -1
  178. package/dist/logging/install.js +3 -3
  179. package/dist/logging/logger.d.ts +2 -2
  180. package/dist/logging/logger.js +31 -2
  181. package/dist/proc/kill-tree.js +1 -1
  182. package/dist/proc/log-mirror.js +1 -1
  183. package/dist/proc/log-ring.js +2 -2
  184. package/dist/proc/notices.d.ts +1 -1
  185. package/dist/proc/notices.js +2 -2
  186. package/dist/proc/prompt.d.ts +1 -1
  187. package/dist/proc/prompt.js +1 -1
  188. package/dist/proc/readiness.js +1 -1
  189. package/dist/proc/supervisor.d.ts +1 -1
  190. package/dist/proc/supervisor.js +3 -3
  191. package/dist/proc/wait.d.ts +1 -1
  192. package/dist/proc/wait.js +1 -1
  193. package/dist/prompts/command.d.ts +1 -1
  194. package/dist/prompts/command.js +1 -1
  195. package/dist/prompts/normalize.d.ts +1 -1
  196. package/dist/prompts/normalize.js +1 -1
  197. package/dist/prompts/resolve.d.ts +1 -1
  198. package/dist/prompts/store.d.ts +2 -12
  199. package/dist/prompts/store.js +6 -60
  200. package/dist/session/checkpoint.d.ts +2 -2
  201. package/dist/session/clear-archive.d.ts +2 -2
  202. package/dist/session/persist.d.ts +2 -2
  203. package/dist/session/persist.js +1 -1
  204. package/dist/session/startup-session.d.ts +2 -2
  205. package/dist/session/validate-session.js +3 -3
  206. package/dist/skills/service.d.ts +2 -2
  207. package/dist/team/bus.d.ts +1 -1
  208. package/dist/team/bus.js +1 -1
  209. package/dist/team/child-reviewer.d.ts +2 -2
  210. package/dist/team/child-reviewer.js +1 -1
  211. package/dist/team/comm-tools.js +1 -1
  212. package/dist/team/dispatch-gate.js +1 -1
  213. package/dist/team/forced-dispatch.js +1 -1
  214. package/dist/team/forced-mode.d.ts +1 -1
  215. package/dist/team/forced-prompt.d.ts +1 -1
  216. package/dist/team/forced-prompt.js +1 -1
  217. package/dist/team/normalize.d.ts +1 -1
  218. package/dist/team/normalize.js +1 -1
  219. package/dist/team/overseer.d.ts +3 -3
  220. package/dist/team/overseer.js +3 -3
  221. package/dist/team/prompt.d.ts +1 -1
  222. package/dist/team/prompt.js +1 -1
  223. package/dist/team/report.d.ts +2 -2
  224. package/dist/team/report.js +2 -2
  225. package/dist/team/retry.d.ts +1 -1
  226. package/dist/team/retry.js +1 -1
  227. package/dist/team/runtime.d.ts +4 -4
  228. package/dist/team/runtime.js +2 -2
  229. package/dist/team/settled.d.ts +2 -2
  230. package/dist/team/subagent.d.ts +4 -4
  231. package/dist/team/subagent.js +5 -5
  232. package/dist/team/task-tool.d.ts +1 -1
  233. package/dist/team/task-tool.js +1 -1
  234. package/dist/todo/normalize.d.ts +1 -1
  235. package/dist/todo/normalize.js +1 -1
  236. package/dist/todo/prompt.d.ts +1 -1
  237. package/dist/todo/prompt.js +1 -1
  238. package/dist/todo/store.d.ts +1 -1
  239. package/dist/todo/store.js +2 -2
  240. package/dist/todo/todo-tool.d.ts +1 -1
  241. package/dist/todo/todo-tool.js +2 -2
  242. package/dist/tools/bash-tool.d.ts +1 -1
  243. package/dist/tools/bash-tool.js +2 -2
  244. package/dist/tools/diff.d.ts +1 -1
  245. package/dist/tools/diff.js +1 -1
  246. package/dist/tools/file-change-store.d.ts +1 -1
  247. package/dist/tools/fs-tools.d.ts +2 -2
  248. package/dist/tools/fs-tools.js +1 -1
  249. package/dist/tools/index.d.ts +3 -3
  250. package/dist/tools/index.js +1 -1
  251. package/dist/tools/job-tools.d.ts +2 -2
  252. package/dist/tools/job-tools.js +4 -4
  253. package/dist/tools/plan-tools.d.ts +1 -1
  254. package/dist/tools/plan-tools.js +1 -1
  255. package/dist/tools/proc-tools.d.ts +1 -1
  256. package/dist/tools/proc-tools.js +2 -2
  257. package/dist/update/classify-failure.d.ts +1 -1
  258. package/dist/update/install-lock.js +1 -1
  259. package/dist/update/install-source.d.ts +1 -1
  260. package/dist/update/installer.js +2 -2
  261. package/dist/update/npm-view.d.ts +1 -1
  262. package/dist/update/npm-view.js +1 -1
  263. package/dist/update/registry.d.ts +1 -1
  264. package/dist/update/registry.js +1 -1
  265. package/dist/update/service.d.ts +2 -2
  266. package/dist/update/service.js +2 -2
  267. package/package.json +7 -7
  268. package/dist/agent/agent-mode.d.ts +0 -108
  269. package/dist/agent/agent-mode.js +0 -121
  270. package/dist/agent/entry-limits.d.ts +0 -65
  271. package/dist/agent/entry-limits.js +0 -133
  272. package/dist/agent/governance-view.d.ts +0 -40
  273. package/dist/agent/governance-view.js +0 -40
  274. package/dist/agent/invocation-card.d.ts +0 -77
  275. package/dist/agent/invocation-card.js +0 -169
  276. package/dist/agent/model-probe-limits.d.ts +0 -39
  277. package/dist/agent/model-probe-limits.js +0 -25
  278. package/dist/agent/model-probe.d.ts +0 -104
  279. package/dist/agent/model-probe.js +0 -391
  280. package/dist/agent/queued-messages.d.ts +0 -23
  281. package/dist/agent/queued-messages.js +0 -49
  282. package/dist/agent/reducer.d.ts +0 -857
  283. package/dist/agent/reducer.js +0 -1646
  284. package/dist/agent/retry-view.d.ts +0 -68
  285. package/dist/agent/retry-view.js +0 -95
  286. package/dist/agent/usage.d.ts +0 -47
  287. package/dist/agent/usage.js +0 -84
  288. package/dist/compaction/limits.d.ts +0 -61
  289. package/dist/compaction/limits.js +0 -64
  290. package/dist/compaction/meter.d.ts +0 -276
  291. package/dist/compaction/meter.js +0 -512
  292. package/dist/compaction/pressure.d.ts +0 -163
  293. package/dist/compaction/pressure.js +0 -199
  294. package/dist/compaction/reason-text.d.ts +0 -36
  295. package/dist/compaction/reason-text.js +0 -78
  296. package/dist/compaction/types.d.ts +0 -360
  297. package/dist/compaction/types.js +0 -22
  298. package/dist/config/governance-config.d.ts +0 -125
  299. package/dist/config/governance-config.js +0 -164
  300. package/dist/config/kit-resolution.d.ts +0 -93
  301. package/dist/config/kit-resolution.js +0 -226
  302. package/dist/config/model-kits.d.ts +0 -225
  303. package/dist/config/model-kits.js +0 -302
  304. package/dist/config/model-profile-resolution.d.ts +0 -28
  305. package/dist/config/model-profile-resolution.js +0 -88
  306. package/dist/config/model-profiles.d.ts +0 -103
  307. package/dist/config/model-profiles.js +0 -188
  308. package/dist/config/schema.d.ts +0 -1645
  309. package/dist/config/schema.js +0 -1383
  310. package/dist/fast/limits.d.ts +0 -152
  311. package/dist/fast/limits.js +0 -152
  312. package/dist/fast/resolve.d.ts +0 -44
  313. package/dist/fast/resolve.js +0 -107
  314. package/dist/fast/task-summary-types.d.ts +0 -66
  315. package/dist/fast/task-summary-types.js +0 -17
  316. package/dist/fast/types.d.ts +0 -141
  317. package/dist/fast/types.js +0 -14
  318. package/dist/governance/governed-dispatch.d.ts +0 -19
  319. package/dist/governance/governed-dispatch.js +0 -17
  320. package/dist/governance/limits.d.ts +0 -107
  321. package/dist/governance/limits.js +0 -131
  322. package/dist/governance/posture.d.ts +0 -35
  323. package/dist/governance/posture.js +0 -59
  324. package/dist/governance/rules/events-table.d.ts +0 -46
  325. package/dist/governance/rules/events-table.js +0 -94
  326. package/dist/governance/types.d.ts +0 -661
  327. package/dist/governance/types.js +0 -27
  328. package/dist/input/control-sequences.d.ts +0 -71
  329. package/dist/input/control-sequences.js +0 -222
  330. package/dist/input/csiu-keys.d.ts +0 -66
  331. package/dist/input/csiu-keys.js +0 -181
  332. package/dist/input/cursor-report.d.ts +0 -61
  333. package/dist/input/cursor-report.js +0 -97
  334. package/dist/input/enter-sequences.d.ts +0 -64
  335. package/dist/input/enter-sequences.js +0 -153
  336. package/dist/input/interrupt-gesture.d.ts +0 -18
  337. package/dist/input/interrupt-gesture.js +0 -19
  338. package/dist/input/keyboard-enhancement.d.ts +0 -42
  339. package/dist/input/keyboard-enhancement.js +0 -65
  340. package/dist/input/keymap.d.ts +0 -20
  341. package/dist/input/keymap.js +0 -99
  342. package/dist/input/limits.d.ts +0 -118
  343. package/dist/input/limits.js +0 -109
  344. package/dist/input/mouse-events.d.ts +0 -87
  345. package/dist/input/mouse-events.js +0 -212
  346. package/dist/input/paste-parse.d.ts +0 -83
  347. package/dist/input/paste-parse.js +0 -107
  348. package/dist/input/pointer-router.d.ts +0 -11
  349. package/dist/input/pointer-router.js +0 -14
  350. package/dist/input/stdin-filter.d.ts +0 -112
  351. package/dist/input/stdin-filter.js +0 -657
  352. package/dist/input/win32-input-mode.d.ts +0 -61
  353. package/dist/input/win32-input-mode.js +0 -269
  354. package/dist/logging/levels.d.ts +0 -40
  355. package/dist/logging/levels.js +0 -59
  356. package/dist/logging/secret-registry.d.ts +0 -32
  357. package/dist/logging/secret-registry.js +0 -73
  358. package/dist/proc/limits.d.ts +0 -214
  359. package/dist/proc/limits.js +0 -221
  360. package/dist/proc/progress.d.ts +0 -47
  361. package/dist/proc/progress.js +0 -163
  362. package/dist/proc/types.d.ts +0 -269
  363. package/dist/proc/types.js +0 -15
  364. package/dist/proc/wait-view.d.ts +0 -65
  365. package/dist/proc/wait-view.js +0 -66
  366. package/dist/prompts/copy.d.ts +0 -89
  367. package/dist/prompts/copy.js +0 -131
  368. package/dist/prompts/fill.d.ts +0 -51
  369. package/dist/prompts/fill.js +0 -46
  370. package/dist/prompts/limits.d.ts +0 -53
  371. package/dist/prompts/limits.js +0 -53
  372. package/dist/prompts/search.d.ts +0 -58
  373. package/dist/prompts/search.js +0 -146
  374. package/dist/prompts/types.d.ts +0 -204
  375. package/dist/prompts/types.js +0 -13
  376. package/dist/team/activity.d.ts +0 -67
  377. package/dist/team/activity.js +0 -130
  378. package/dist/team/limits.d.ts +0 -308
  379. package/dist/team/limits.js +0 -330
  380. package/dist/team/model.d.ts +0 -104
  381. package/dist/team/model.js +0 -150
  382. package/dist/team/panel-rows.d.ts +0 -48
  383. package/dist/team/panel-rows.js +0 -75
  384. package/dist/team/timeline.d.ts +0 -74
  385. package/dist/team/timeline.js +0 -101
  386. package/dist/team/types.d.ts +0 -354
  387. package/dist/team/types.js +0 -13
  388. package/dist/todo/acceptance.d.ts +0 -120
  389. package/dist/todo/acceptance.js +0 -399
  390. package/dist/todo/follow-through.d.ts +0 -138
  391. package/dist/todo/follow-through.js +0 -248
  392. package/dist/todo/limits.d.ts +0 -152
  393. package/dist/todo/limits.js +0 -152
  394. package/dist/todo/panel-rows.d.ts +0 -45
  395. package/dist/todo/panel-rows.js +0 -70
  396. package/dist/todo/plan-sections.d.ts +0 -60
  397. package/dist/todo/plan-sections.js +0 -108
  398. package/dist/todo/row-window.d.ts +0 -51
  399. package/dist/todo/row-window.js +0 -107
  400. package/dist/todo/types.d.ts +0 -124
  401. package/dist/todo/types.js +0 -12
  402. package/dist/tools/human-input.d.ts +0 -212
  403. package/dist/tools/human-input.js +0 -265
  404. package/dist/tools/patch.d.ts +0 -115
  405. package/dist/tools/patch.js +0 -453
  406. package/dist/tools/terminal-output.d.ts +0 -115
  407. package/dist/tools/terminal-output.js +0 -201
  408. package/dist/tools/tool-output-store.d.ts +0 -68
  409. package/dist/tools/tool-output-store.js +0 -102
  410. package/dist/ui/ActivityLine.d.ts +0 -26
  411. package/dist/ui/ActivityLine.js +0 -51
  412. package/dist/ui/AutocompletePopup.d.ts +0 -23
  413. package/dist/ui/AutocompletePopup.js +0 -17
  414. package/dist/ui/BottomStatusRow.d.ts +0 -10
  415. package/dist/ui/BottomStatusRow.js +0 -9
  416. package/dist/ui/Composer.d.ts +0 -115
  417. package/dist/ui/Composer.js +0 -64
  418. package/dist/ui/GovernancePanel.d.ts +0 -50
  419. package/dist/ui/GovernancePanel.js +0 -77
  420. package/dist/ui/GovernanceRun.d.ts +0 -18
  421. package/dist/ui/GovernanceRun.js +0 -11
  422. package/dist/ui/Header.d.ts +0 -48
  423. package/dist/ui/Header.js +0 -27
  424. package/dist/ui/Logo.d.ts +0 -32
  425. package/dist/ui/Logo.js +0 -65
  426. package/dist/ui/Markdown.d.ts +0 -29
  427. package/dist/ui/Markdown.js +0 -116
  428. package/dist/ui/PromptCaret.d.ts +0 -11
  429. package/dist/ui/PromptCaret.js +0 -31
  430. package/dist/ui/PromptInput.d.ts +0 -192
  431. package/dist/ui/PromptInput.js +0 -689
  432. package/dist/ui/QueuePanel.d.ts +0 -8
  433. package/dist/ui/QueuePanel.js +0 -9
  434. package/dist/ui/QueueStatusRow.d.ts +0 -24
  435. package/dist/ui/QueueStatusRow.js +0 -51
  436. package/dist/ui/ScrollbackShell.d.ts +0 -132
  437. package/dist/ui/ScrollbackShell.js +0 -26
  438. package/dist/ui/SessionOpener.d.ts +0 -30
  439. package/dist/ui/SessionOpener.js +0 -12
  440. package/dist/ui/StatusBar.d.ts +0 -130
  441. package/dist/ui/StatusBar.js +0 -61
  442. package/dist/ui/TeamPanel.d.ts +0 -76
  443. package/dist/ui/TeamPanel.js +0 -103
  444. package/dist/ui/ToastStack.d.ts +0 -8
  445. package/dist/ui/ToastStack.js +0 -31
  446. package/dist/ui/TodoPanel.d.ts +0 -52
  447. package/dist/ui/TodoPanel.js +0 -214
  448. package/dist/ui/Transcript.d.ts +0 -105
  449. package/dist/ui/Transcript.js +0 -258
  450. package/dist/ui/UpdateLine.d.ts +0 -44
  451. package/dist/ui/UpdateLine.js +0 -129
  452. package/dist/ui/activity-phrases.d.ts +0 -33
  453. package/dist/ui/activity-phrases.js +0 -50
  454. package/dist/ui/capabilities.d.ts +0 -27
  455. package/dist/ui/capabilities.js +0 -65
  456. package/dist/ui/clipboard-task.d.ts +0 -29
  457. package/dist/ui/clipboard-task.js +0 -66
  458. package/dist/ui/clipboard.d.ts +0 -31
  459. package/dist/ui/clipboard.js +0 -157
  460. package/dist/ui/color-runtime.d.ts +0 -5
  461. package/dist/ui/color-runtime.js +0 -29
  462. package/dist/ui/composer-input.d.ts +0 -38
  463. package/dist/ui/composer-input.js +0 -79
  464. package/dist/ui/composer-limits.d.ts +0 -30
  465. package/dist/ui/composer-limits.js +0 -45
  466. package/dist/ui/composer-rows.d.ts +0 -73
  467. package/dist/ui/composer-rows.js +0 -129
  468. package/dist/ui/console-bridge.d.ts +0 -19
  469. package/dist/ui/console-bridge.js +0 -52
  470. package/dist/ui/density.d.ts +0 -26
  471. package/dist/ui/density.js +0 -34
  472. package/dist/ui/display-tab.d.ts +0 -51
  473. package/dist/ui/display-tab.js +0 -82
  474. package/dist/ui/editor-navigation.d.ts +0 -55
  475. package/dist/ui/editor-navigation.js +0 -96
  476. package/dist/ui/editor-reducer.d.ts +0 -108
  477. package/dist/ui/editor-reducer.js +0 -187
  478. package/dist/ui/enter-frames.d.ts +0 -47
  479. package/dist/ui/enter-frames.js +0 -117
  480. package/dist/ui/entries/AssistantEntry.d.ts +0 -37
  481. package/dist/ui/entries/AssistantEntry.js +0 -43
  482. package/dist/ui/entries/CompactionCard.d.ts +0 -88
  483. package/dist/ui/entries/CompactionCard.js +0 -222
  484. package/dist/ui/entries/DiffView.d.ts +0 -61
  485. package/dist/ui/entries/DiffView.js +0 -103
  486. package/dist/ui/entries/EntryFrame.d.ts +0 -23
  487. package/dist/ui/entries/EntryFrame.js +0 -6
  488. package/dist/ui/entries/FastCard.d.ts +0 -53
  489. package/dist/ui/entries/FastCard.js +0 -105
  490. package/dist/ui/entries/GovernanceCard.d.ts +0 -30
  491. package/dist/ui/entries/GovernanceCard.js +0 -32
  492. package/dist/ui/entries/InvocationCard.d.ts +0 -20
  493. package/dist/ui/entries/InvocationCard.js +0 -32
  494. package/dist/ui/entries/QueuedEntry.d.ts +0 -27
  495. package/dist/ui/entries/QueuedEntry.js +0 -33
  496. package/dist/ui/entries/RetryCard.d.ts +0 -56
  497. package/dist/ui/entries/RetryCard.js +0 -60
  498. package/dist/ui/entries/ServiceCard.d.ts +0 -82
  499. package/dist/ui/entries/ServiceCard.js +0 -151
  500. package/dist/ui/entries/TeamCard.d.ts +0 -55
  501. package/dist/ui/entries/TeamCard.js +0 -94
  502. package/dist/ui/entries/TodoCard.d.ts +0 -54
  503. package/dist/ui/entries/TodoCard.js +0 -98
  504. package/dist/ui/entries/ToolCard.d.ts +0 -81
  505. package/dist/ui/entries/ToolCard.js +0 -169
  506. package/dist/ui/entries/ToolPreview.d.ts +0 -59
  507. package/dist/ui/entries/ToolPreview.js +0 -208
  508. package/dist/ui/entries/UserEntry.d.ts +0 -36
  509. package/dist/ui/entries/UserEntry.js +0 -57
  510. package/dist/ui/entries/WaitCard.d.ts +0 -37
  511. package/dist/ui/entries/WaitCard.js +0 -92
  512. package/dist/ui/exit-snapshot.d.ts +0 -43
  513. package/dist/ui/exit-snapshot.js +0 -26
  514. package/dist/ui/frame-differ.d.ts +0 -166
  515. package/dist/ui/frame-differ.js +0 -354
  516. package/dist/ui/frame-observer.d.ts +0 -17
  517. package/dist/ui/frame-observer.js +0 -94
  518. package/dist/ui/frame-parser.d.ts +0 -7
  519. package/dist/ui/frame-parser.js +0 -18
  520. package/dist/ui/gauge.d.ts +0 -39
  521. package/dist/ui/gauge.js +0 -55
  522. package/dist/ui/glyphs.d.ts +0 -178
  523. package/dist/ui/glyphs.js +0 -165
  524. package/dist/ui/governance-copy.d.ts +0 -69
  525. package/dist/ui/governance-copy.js +0 -104
  526. package/dist/ui/governance-status.d.ts +0 -145
  527. package/dist/ui/governance-status.js +0 -326
  528. package/dist/ui/gradient.d.ts +0 -11
  529. package/dist/ui/gradient.js +0 -50
  530. package/dist/ui/ink-runtime.d.ts +0 -4
  531. package/dist/ui/ink-runtime.js +0 -51
  532. package/dist/ui/interaction-copy.d.ts +0 -84
  533. package/dist/ui/interaction-copy.js +0 -41
  534. package/dist/ui/interaction-hints.d.ts +0 -44
  535. package/dist/ui/interaction-hints.js +0 -97
  536. package/dist/ui/layout/AppShell.d.ts +0 -17
  537. package/dist/ui/layout/AppShell.js +0 -6
  538. package/dist/ui/layout/Gutter.d.ts +0 -67
  539. package/dist/ui/layout/Gutter.js +0 -42
  540. package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
  541. package/dist/ui/layout/MeasuredEntry.js +0 -30
  542. package/dist/ui/layout/OverlayFrame.d.ts +0 -73
  543. package/dist/ui/layout/OverlayFrame.js +0 -110
  544. package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
  545. package/dist/ui/layout/ScrollIndicator.js +0 -22
  546. package/dist/ui/layout/ScrollViewport.d.ts +0 -40
  547. package/dist/ui/layout/ScrollViewport.js +0 -222
  548. package/dist/ui/layout/agents-board.d.ts +0 -102
  549. package/dist/ui/layout/agents-board.js +0 -389
  550. package/dist/ui/layout/autocomplete.d.ts +0 -18
  551. package/dist/ui/layout/autocomplete.js +0 -26
  552. package/dist/ui/layout/budget.d.ts +0 -43
  553. package/dist/ui/layout/budget.js +0 -52
  554. package/dist/ui/layout/cells.d.ts +0 -61
  555. package/dist/ui/layout/cells.js +0 -156
  556. package/dist/ui/layout/document-layout.d.ts +0 -13
  557. package/dist/ui/layout/document-layout.js +0 -10
  558. package/dist/ui/layout/follow-state.d.ts +0 -138
  559. package/dist/ui/layout/follow-state.js +0 -148
  560. package/dist/ui/layout/frame.d.ts +0 -36
  561. package/dist/ui/layout/frame.js +0 -39
  562. package/dist/ui/layout/governance-board.d.ts +0 -121
  563. package/dist/ui/layout/governance-board.js +0 -382
  564. package/dist/ui/layout/governance-card.d.ts +0 -53
  565. package/dist/ui/layout/governance-card.js +0 -134
  566. package/dist/ui/layout/governance-chip.d.ts +0 -38
  567. package/dist/ui/layout/governance-chip.js +0 -64
  568. package/dist/ui/layout/governance-panel.d.ts +0 -85
  569. package/dist/ui/layout/governance-panel.js +0 -358
  570. package/dist/ui/layout/governance-roster.d.ts +0 -65
  571. package/dist/ui/layout/governance-roster.js +0 -275
  572. package/dist/ui/layout/header-hints.d.ts +0 -90
  573. package/dist/ui/layout/header-hints.js +0 -110
  574. package/dist/ui/layout/header-left.d.ts +0 -115
  575. package/dist/ui/layout/header-left.js +0 -206
  576. package/dist/ui/layout/invocation-card.d.ts +0 -41
  577. package/dist/ui/layout/invocation-card.js +0 -91
  578. package/dist/ui/layout/kit-chip.d.ts +0 -50
  579. package/dist/ui/layout/kit-chip.js +0 -81
  580. package/dist/ui/layout/overlay-window.d.ts +0 -43
  581. package/dist/ui/layout/overlay-window.js +0 -51
  582. package/dist/ui/layout/queue-layout.d.ts +0 -19
  583. package/dist/ui/layout/queue-layout.js +0 -26
  584. package/dist/ui/layout/rail.d.ts +0 -7
  585. package/dist/ui/layout/rail.js +0 -16
  586. package/dist/ui/layout/scroll-indicator.d.ts +0 -27
  587. package/dist/ui/layout/scroll-indicator.js +0 -36
  588. package/dist/ui/layout/scroll.d.ts +0 -37
  589. package/dist/ui/layout/scroll.js +0 -99
  590. package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
  591. package/dist/ui/layout/scrollbar-geometry.js +0 -13
  592. package/dist/ui/layout/session-chip.d.ts +0 -52
  593. package/dist/ui/layout/session-chip.js +0 -64
  594. package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
  595. package/dist/ui/layout/shortcut-panel-layout.js +0 -321
  596. package/dist/ui/layout/status-detail-layout.d.ts +0 -9
  597. package/dist/ui/layout/status-detail-layout.js +0 -79
  598. package/dist/ui/layout/status-layout.d.ts +0 -140
  599. package/dist/ui/layout/status-layout.js +0 -262
  600. package/dist/ui/layout/task-summary-cell.d.ts +0 -61
  601. package/dist/ui/layout/task-summary-cell.js +0 -65
  602. package/dist/ui/layout/team-panel.d.ts +0 -18
  603. package/dist/ui/layout/team-panel.js +0 -25
  604. package/dist/ui/layout/team-row.d.ts +0 -139
  605. package/dist/ui/layout/team-row.js +0 -246
  606. package/dist/ui/layout/todo-layout.d.ts +0 -62
  607. package/dist/ui/layout/todo-layout.js +0 -102
  608. package/dist/ui/layout/useTerminalSize.d.ts +0 -13
  609. package/dist/ui/layout/useTerminalSize.js +0 -50
  610. package/dist/ui/layout/viewport-geometry.d.ts +0 -29
  611. package/dist/ui/layout/viewport-geometry.js +0 -28
  612. package/dist/ui/layout/virtual-window.d.ts +0 -112
  613. package/dist/ui/layout/virtual-window.js +0 -494
  614. package/dist/ui/layout/wait-bar.d.ts +0 -34
  615. package/dist/ui/layout/wait-bar.js +0 -48
  616. package/dist/ui/layout/wrap-rows.d.ts +0 -26
  617. package/dist/ui/layout/wrap-rows.js +0 -88
  618. package/dist/ui/live-clamp.d.ts +0 -14
  619. package/dist/ui/live-clamp.js +0 -46
  620. package/dist/ui/markdown-blocks.d.ts +0 -107
  621. package/dist/ui/markdown-blocks.js +0 -240
  622. package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
  623. package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
  624. package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
  625. package/dist/ui/overlays/ConfirmDialog.js +0 -44
  626. package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
  627. package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
  628. package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
  629. package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
  630. package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
  631. package/dist/ui/overlays/HelpOverlay.js +0 -232
  632. package/dist/ui/overlays/KitEditor.d.ts +0 -23
  633. package/dist/ui/overlays/KitEditor.js +0 -101
  634. package/dist/ui/overlays/KitManager.d.ts +0 -23
  635. package/dist/ui/overlays/KitManager.js +0 -104
  636. package/dist/ui/overlays/KitPicker.d.ts +0 -49
  637. package/dist/ui/overlays/KitPicker.js +0 -58
  638. package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
  639. package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
  640. package/dist/ui/overlays/ModelPicker.d.ts +0 -26
  641. package/dist/ui/overlays/ModelPicker.js +0 -63
  642. package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
  643. package/dist/ui/overlays/ModelProfileEditor.js +0 -168
  644. package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
  645. package/dist/ui/overlays/ModelProfilePicker.js +0 -231
  646. package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
  647. package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
  648. package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
  649. package/dist/ui/overlays/PromptEditorPage.js +0 -227
  650. package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
  651. package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
  652. package/dist/ui/overlays/PromptPicker.d.ts +0 -36
  653. package/dist/ui/overlays/PromptPicker.js +0 -129
  654. package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
  655. package/dist/ui/overlays/PromptTextArea.js +0 -141
  656. package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
  657. package/dist/ui/overlays/QuestionOverlay.js +0 -258
  658. package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
  659. package/dist/ui/overlays/QueueOverlay.js +0 -79
  660. package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
  661. package/dist/ui/overlays/SettingsScreen.js +0 -1037
  662. package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
  663. package/dist/ui/overlays/ShortcutPanel.js +0 -106
  664. package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
  665. package/dist/ui/overlays/TeamFanoutPage.js +0 -90
  666. package/dist/ui/overlays/governance-settings.d.ts +0 -79
  667. package/dist/ui/overlays/governance-settings.js +0 -140
  668. package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
  669. package/dist/ui/overlays/kit-picker-state.js +0 -136
  670. package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
  671. package/dist/ui/overlays/kit-settings-state.js +0 -268
  672. package/dist/ui/overlays/model-probe-view.d.ts +0 -128
  673. package/dist/ui/overlays/model-probe-view.js +0 -225
  674. package/dist/ui/overlays/model-profile-state.d.ts +0 -177
  675. package/dist/ui/overlays/model-profile-state.js +0 -301
  676. package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
  677. package/dist/ui/overlays/prompt-library-state.js +0 -335
  678. package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
  679. package/dist/ui/overlays/prompt-picker-state.js +0 -98
  680. package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
  681. package/dist/ui/overlays/team-fanout-state.js +0 -155
  682. package/dist/ui/overlays/use-model-probe.d.ts +0 -30
  683. package/dist/ui/overlays/use-model-probe.js +0 -109
  684. package/dist/ui/palettes.d.ts +0 -112
  685. package/dist/ui/palettes.js +0 -130
  686. package/dist/ui/paste-frames.d.ts +0 -91
  687. package/dist/ui/paste-frames.js +0 -117
  688. package/dist/ui/paste-tokens.d.ts +0 -90
  689. package/dist/ui/paste-tokens.js +0 -147
  690. package/dist/ui/render-cache.d.ts +0 -81
  691. package/dist/ui/render-cache.js +0 -196
  692. package/dist/ui/render-governor.d.ts +0 -54
  693. package/dist/ui/render-governor.js +0 -78
  694. package/dist/ui/run-metrics.d.ts +0 -23
  695. package/dist/ui/run-metrics.js +0 -27
  696. package/dist/ui/run-status-row.d.ts +0 -63
  697. package/dist/ui/run-status-row.js +0 -54
  698. package/dist/ui/screen.d.ts +0 -107
  699. package/dist/ui/screen.js +0 -234
  700. package/dist/ui/scrollback/LiveTail.d.ts +0 -115
  701. package/dist/ui/scrollback/LiveTail.js +0 -48
  702. package/dist/ui/scrollback/band.d.ts +0 -114
  703. package/dist/ui/scrollback/band.js +0 -143
  704. package/dist/ui/scrollback/budget.d.ts +0 -90
  705. package/dist/ui/scrollback/budget.js +0 -100
  706. package/dist/ui/scrollback/canvas.d.ts +0 -100
  707. package/dist/ui/scrollback/canvas.js +0 -114
  708. package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
  709. package/dist/ui/scrollback/cursor-probe.js +0 -133
  710. package/dist/ui/scrollback/drain.d.ts +0 -32
  711. package/dist/ui/scrollback/drain.js +0 -64
  712. package/dist/ui/scrollback/exit-summary.d.ts +0 -23
  713. package/dist/ui/scrollback/exit-summary.js +0 -25
  714. package/dist/ui/scrollback/limits.d.ts +0 -98
  715. package/dist/ui/scrollback/limits.js +0 -98
  716. package/dist/ui/scrollback/live-preview.d.ts +0 -34
  717. package/dist/ui/scrollback/live-preview.js +0 -130
  718. package/dist/ui/scrollback/overflow-print.d.ts +0 -108
  719. package/dist/ui/scrollback/overflow-print.js +0 -120
  720. package/dist/ui/scrollback/renderer.d.ts +0 -48
  721. package/dist/ui/scrollback/renderer.js +0 -186
  722. package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
  723. package/dist/ui/scrollback/scrollback-writer.js +0 -648
  724. package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
  725. package/dist/ui/scrollback/settled-boundary.js +0 -109
  726. package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
  727. package/dist/ui/scrollback/tail-anchor.js +0 -79
  728. package/dist/ui/scrollback/tail-window.d.ts +0 -73
  729. package/dist/ui/scrollback/tail-window.js +0 -89
  730. package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
  731. package/dist/ui/scrollback/use-scrollback-view.js +0 -601
  732. package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
  733. package/dist/ui/scrollback/writer-shapes.js +0 -159
  734. package/dist/ui/scrollbar-controller.d.ts +0 -30
  735. package/dist/ui/scrollbar-controller.js +0 -124
  736. package/dist/ui/selection/highlight.d.ts +0 -39
  737. package/dist/ui/selection/highlight.js +0 -64
  738. package/dist/ui/selection/screen-mirror.d.ts +0 -24
  739. package/dist/ui/selection/screen-mirror.js +0 -35
  740. package/dist/ui/selection/selection-controller.d.ts +0 -104
  741. package/dist/ui/selection/selection-controller.js +0 -372
  742. package/dist/ui/selection/selection.d.ts +0 -90
  743. package/dist/ui/selection/selection.js +0 -223
  744. package/dist/ui/shortcuts.d.ts +0 -81
  745. package/dist/ui/shortcuts.js +0 -221
  746. package/dist/ui/status-feedback.d.ts +0 -35
  747. package/dist/ui/status-feedback.js +0 -38
  748. package/dist/ui/stdout-frame-writer.d.ts +0 -74
  749. package/dist/ui/stdout-frame-writer.js +0 -155
  750. package/dist/ui/team-status.d.ts +0 -166
  751. package/dist/ui/team-status.js +0 -252
  752. package/dist/ui/terminal-plan.d.ts +0 -52
  753. package/dist/ui/terminal-plan.js +0 -49
  754. package/dist/ui/theme.d.ts +0 -96
  755. package/dist/ui/theme.js +0 -130
  756. package/dist/ui/transcript-text.d.ts +0 -41
  757. package/dist/ui/transcript-text.js +0 -282
  758. package/dist/ui/use-height-store.d.ts +0 -31
  759. package/dist/ui/use-height-store.js +0 -76
  760. package/dist/ui/use-render-governor.d.ts +0 -39
  761. package/dist/ui/use-render-governor.js +0 -57
  762. package/dist/ui/use-wheel-routing.d.ts +0 -57
  763. package/dist/ui/use-wheel-routing.js +0 -152
  764. package/dist/ui/win-vt-force.d.ts +0 -136
  765. package/dist/ui/win-vt-force.js +0 -237
  766. package/dist/ui/win-vt-input.d.ts +0 -57
  767. package/dist/ui/win-vt-input.js +0 -62
  768. package/dist/update/limits.d.ts +0 -111
  769. package/dist/update/limits.js +0 -111
  770. package/dist/update/semver.d.ts +0 -89
  771. package/dist/update/semver.js +0 -295
  772. package/dist/update/types.d.ts +0 -169
  773. package/dist/update/types.js +0 -68
  774. /package/dist/{ui → app}/session-bridge.d.ts +0 -0
  775. /package/dist/{ui → app}/session-bridge.js +0 -0
@@ -1,335 +0,0 @@
1
- /**
2
- * The prompt manager's state machine and view models (quick-prompt-library §4.4).
3
- *
4
- * ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`. Every sentence the
5
- * user reads comes from `prompts/copy.ts`; nothing in this file may hold a literal
6
- * non-ASCII byte.
7
- *
8
- * WHY A PURE REDUCER AND NOT `useState` INSIDE THE COMPONENT: the page stack has two
9
- * transitions that are easy to get wrong and impossible to see on screen - "the
10
- * second Esc discards, the first does not" and "the intent is consumed exactly
11
- * once" - and both are assertions, not screenshots. Everything below can be driven
12
- * from a test with no Ink mounted.
13
- */
14
- import { PROMPT_LIMITS } from '../../prompts/limits.js';
15
- import { parsePromptTags, validatePromptDraft } from '../../prompts/store.js';
16
- // The list's read-only preview is the ONE place `wrapToRows` belongs: it is a prose
17
- // wrapper, so it would destroy the caret-to-cell mapping in an editable field
18
- // (D-11), and there is no caret here.
19
- import { wrapToRows } from '../layout/wrap-rows.js';
20
- /** The six rows `Tab` cycles on the editor page, in visual order. */
21
- export const PROMPT_EDITOR_FIELDS = [
22
- 'title', 'content', 'description', 'tags', 'save', 'cancel',
23
- ];
24
- /** A new, empty draft. `id: null` is what makes `Save` a create rather than an update. */
25
- export const EMPTY_PROMPT_DRAFT = {
26
- id: null,
27
- title: '',
28
- content: '',
29
- description: '',
30
- tags: '',
31
- favorite: false,
32
- };
33
- export const INITIAL_PROMPT_LIBRARY_STATE = {
34
- page: 'list',
35
- index: 0,
36
- focusId: null,
37
- draft: EMPTY_PROMPT_DRAFT,
38
- baseline: null,
39
- escArmed: false,
40
- pendingDeleteId: null,
41
- error: null,
42
- errorField: null,
43
- consumedIntentNonce: 0,
44
- };
45
- /** The editable projection of a stored entry. */
46
- export function draftFromEntry(entry) {
47
- return {
48
- id: entry.id,
49
- title: entry.title,
50
- content: entry.content,
51
- description: entry.description ?? '',
52
- tags: (entry.tags ?? []).join(' '),
53
- favorite: entry.favorite === true,
54
- };
55
- }
56
- /** A create draft seeded from a command (`/prompts add title :: body`). */
57
- export function seededDraft(seed) {
58
- return {
59
- ...EMPTY_PROMPT_DRAFT,
60
- title: seed?.title ?? '',
61
- content: seed?.content ?? '',
62
- };
63
- }
64
- /** Structural equality is enough: every field is a string or a boolean. */
65
- export function draftIsDirty(draft, baseline) {
66
- if (baseline === null) {
67
- return draft.title.length > 0 || draft.content.length > 0
68
- || draft.description.length > 0 || draft.tags.length > 0;
69
- }
70
- return draft.title !== baseline.title || draft.content !== baseline.content
71
- || draft.description !== baseline.description || draft.tags !== baseline.tags
72
- || draft.favorite !== baseline.favorite;
73
- }
74
- /**
75
- * Validate a draft and turn it into what the store accepts (D-12).
76
- *
77
- * THE VALIDATOR IS `store.ts`'S, not a second copy here: the sentence the editor
78
- * shows and the rule the write applies have to be the same rule, or a user can be
79
- * told a title is fine by the form and refused by the store.
80
- */
81
- export function finishPromptEditor(draft) {
82
- return validatePromptDraft({
83
- title: draft.title,
84
- content: draft.content,
85
- description: draft.description,
86
- tags: parsePromptTags(draft.tags),
87
- favorite: draft.favorite,
88
- });
89
- }
90
- /** Index of the first focusable row, for a refusal that named a field. */
91
- export function fieldIndex(field) {
92
- if (field === null)
93
- return 0;
94
- const at = PROMPT_EDITOR_FIELDS.indexOf(field);
95
- return at < 0 ? 0 : at;
96
- }
97
- function enterEditor(state, draft, baseline) {
98
- return {
99
- ...state,
100
- page: 'editor',
101
- draft,
102
- baseline,
103
- escArmed: false,
104
- error: null,
105
- errorField: null,
106
- };
107
- }
108
- /**
109
- * The reducer.
110
- *
111
- * `init` is the ONLY action that can jump straight to the editor or the delete page:
112
- * that is what makes `/prompts edit 2` land where it should (D-21). The intent's
113
- * nonce is stored as `consumedIntentNonce` by the component before dispatching, so a
114
- * replayed intent is a no-op at the component, not a second edit here.
115
- */
116
- export function promptLibraryReducer(state, action, library) {
117
- switch (action.type) {
118
- case 'init': {
119
- if (action.nonce <= state.consumedIntentNonce)
120
- return state;
121
- const consumed = { ...state, consumedIntentNonce: action.nonce };
122
- const entry = action.entry;
123
- if (entry.kind === 'create') {
124
- return enterEditor(consumed, seededDraft(entry.seed), null);
125
- }
126
- if (entry.kind === 'edit') {
127
- const found = action.library.prompts.find((prompt) => prompt.id === entry.id);
128
- if (!found)
129
- return { ...consumed, page: 'list', focusId: null };
130
- const draft = draftFromEntry(found);
131
- return enterEditor(consumed, draft, { ...draft });
132
- }
133
- if (entry.kind === 'delete') {
134
- const found = action.library.prompts.find((prompt) => prompt.id === entry.id);
135
- if (!found)
136
- return { ...consumed, page: 'list', focusId: null };
137
- return { ...consumed, page: 'delete', pendingDeleteId: entry.id };
138
- }
139
- return { ...consumed, page: 'list', focusId: entry.focusId ?? null, index: 0 };
140
- }
141
- case 'list':
142
- return {
143
- ...state,
144
- page: 'list',
145
- focusId: action.focusId ?? state.focusId,
146
- escArmed: false,
147
- pendingDeleteId: null,
148
- error: null,
149
- errorField: null,
150
- };
151
- case 'focus':
152
- return { ...state, index: Math.max(0, Math.floor(action.index)) };
153
- case 'create':
154
- return enterEditor(state, seededDraft(action.seed), null);
155
- case 'edit': {
156
- const found = action.library.prompts.find((prompt) => prompt.id === action.id);
157
- if (!found)
158
- return { ...state, page: 'list', error: 'not_found' };
159
- const draft = draftFromEntry(found);
160
- return enterEditor(state, draft, { ...draft });
161
- }
162
- case 'delete':
163
- return { ...state, page: 'delete', pendingDeleteId: action.id };
164
- case 'draft':
165
- return { ...state, draft: { ...state.draft, ...action.patch }, escArmed: false };
166
- case 'commit':
167
- return {
168
- ...state,
169
- page: 'list',
170
- focusId: action.id,
171
- baseline: null,
172
- escArmed: false,
173
- error: null,
174
- errorField: null,
175
- draft: EMPTY_PROMPT_DRAFT,
176
- };
177
- case 'failed':
178
- return { ...state, error: action.code, errorField: action.field ?? null };
179
- case 'esc': {
180
- if (state.page !== 'editor')
181
- return { ...state, page: 'list', pendingDeleteId: null };
182
- // A CLEAN EDITOR CLOSES ON THE FIRST Esc. A dirty one asks once, and the answer
183
- // has to be a second Esc rather than a modal: losing a body typed into a
184
- // multi-line field because one key was pressed is the failure this guards.
185
- if (!draftIsDirty(state.draft, state.baseline)) {
186
- return { ...state, page: 'list', baseline: null, draft: EMPTY_PROMPT_DRAFT };
187
- }
188
- if (state.escArmed) {
189
- return {
190
- ...state, page: 'list', baseline: null, escArmed: false, draft: EMPTY_PROMPT_DRAFT,
191
- };
192
- }
193
- return { ...state, escArmed: true };
194
- }
195
- case 'cancelled':
196
- return { ...state, page: 'list', baseline: null, escArmed: false, draft: EMPTY_PROMPT_DRAFT };
197
- }
198
- }
199
- /** `1.2k` for anything a fixed-width column cannot show in full. */
200
- export function formatCount(count) {
201
- if (count < 1000)
202
- return String(count);
203
- return `${(count / 1000).toFixed(1)}k`;
204
- }
205
- /** `3d ago` / `2h ago` / `just now`. Deliberately coarse: it is a hint, not a clock. */
206
- export function formatAgo(timestamp, now) {
207
- if (timestamp === undefined || timestamp <= 0)
208
- return 'never';
209
- const seconds = Math.max(0, Math.floor((now - timestamp) / 1000));
210
- if (seconds < 60)
211
- return 'just now';
212
- const minutes = Math.floor(seconds / 60);
213
- if (minutes < 60)
214
- return `${minutes}m ago`;
215
- const hours = Math.floor(minutes / 60);
216
- if (hours < 24)
217
- return `${hours}h ago`;
218
- return `${Math.floor(hours / 24)}d ago`;
219
- }
220
- /**
221
- * The list, one row per entry, in the library's own order.
222
- *
223
- * DUPLICATE TITLES GET AN ID PREFIX (I-2), exactly as `kit-picker-state.ts` does for
224
- * duplicate kit names: two rows reading the same words make `Enter` a coin flip.
225
- */
226
- export function libraryRows(library) {
227
- const seen = new Map();
228
- for (const prompt of library.prompts) {
229
- seen.set(prompt.title, (seen.get(prompt.title) ?? 0) + 1);
230
- }
231
- return library.prompts.map((prompt) => {
232
- const duplicate = (seen.get(prompt.title) ?? 0) > 1;
233
- const identity = duplicate ? `#${prompt.id.slice(0, 8)} ` : '';
234
- const marks = [];
235
- if (prompt.favorite === true)
236
- marks.push('[fav]');
237
- const tags = prompt.tags ?? [];
238
- for (const tag of tags.slice(0, 2))
239
- marks.push(`#${tag}`);
240
- if (tags.length > 2)
241
- marks.push(`+#${tags.length - 2}`);
242
- marks.push(`${formatCount([...prompt.content].length)}c`);
243
- if (prompt.useCount > 0)
244
- marks.push(`${formatCount(prompt.useCount)}x`);
245
- return {
246
- id: prompt.id,
247
- label: `${identity}${prompt.title} ${marks.join(' ')}`,
248
- markers: {
249
- favorite: prompt.favorite === true,
250
- hasTags: tags.length > 0,
251
- uses: prompt.useCount,
252
- },
253
- chars: [...prompt.content].length,
254
- };
255
- });
256
- }
257
- /**
258
- * The detail block under the list: at most `detailMaxLines` rows, fixed shape.
259
- *
260
- * FIXED, because `OverlayFrame`'s window is shared with the list (D-16): a body that
261
- * participated in row height would squeeze six prompts into two visible rows. The
262
- * full text has exactly one home, and it is the editor.
263
- */
264
- export function libraryDetail(row, library, cols, now = Date.now()) {
265
- if (!row)
266
- return [];
267
- const prompt = library.prompts.find((entry) => entry.id === row.id);
268
- if (!prompt)
269
- return [];
270
- const tags = (prompt.tags ?? []).map((tag) => `#${tag}`).join(' ');
271
- const facts = [
272
- `${formatCount(row.chars)} chars`,
273
- `${prompt.useCount} uses`,
274
- formatAgo(prompt.lastUsedAt, now),
275
- prompt.favorite === true ? '[fav]' : '',
276
- ].filter(Boolean).join(' ');
277
- const body = prompt.content.split('\n').slice(0, PROMPT_LIMITS.detailPreviewLines).join('\n');
278
- const preview = wrapToRows(body, Math.max(8, cols - 8))
279
- .slice(0, PROMPT_LIMITS.detailPreviewLines);
280
- return [prompt.title, ...(tags.length > 0 ? [tags] : []), facts, ...preview]
281
- .slice(0, PROMPT_LIMITS.detailMaxLines);
282
- }
283
- /**
284
- * The list page's footer.
285
- *
286
- * THE LAST CLAUSE IS ALWAYS THE WAY OUT (§9.5): a narrow terminal clips from the
287
- * left, so the reader always keeps `Esc close`. The reorder keys are named here
288
- * rather than in the row above it because they are the one affordance a user cannot
289
- * discover by pressing a key they already know.
290
- */
291
- export function libraryHint(state, count) {
292
- if (state.page === 'delete')
293
- return 'Enter delete | Esc cancel';
294
- if (state.page === 'editor')
295
- return editorHint(state);
296
- if (count === 0)
297
- return 'a create your first prompt | Esc close';
298
- return 'Enter edit | a new | d delete | f favorite | ^up/^dn reorder | Esc close';
299
- }
300
- function editorHint(state) {
301
- if (state.escArmed)
302
- return 'Esc again discards the draft | Tab next field';
303
- return 'Tab next field | Ctrl+S save | Esc close';
304
- }
305
- /** The delete page's four lines: what it is, how big, and what it costs. */
306
- export function deleteDetail(library, id) {
307
- const prompt = library.prompts.find((entry) => entry.id === id);
308
- if (!prompt)
309
- return [];
310
- return [
311
- prompt.title,
312
- `${[...prompt.content].length} chars, ${prompt.content.split('\n').length} lines`,
313
- 'This cannot be undone.',
314
- 'Enter or y deletes it; Esc or n keeps it.',
315
- ];
316
- }
317
- /**
318
- * The draft as the store accepts it.
319
- *
320
- * THE TAGS FIELD IS PARSED HERE, ONCE, and nowhere else: the editor edits a raw
321
- * string, the store validates a `string[]`, and a second parser between them is how
322
- * `a,b` and `a b` come to mean different things depending on which surface saved it.
323
- */
324
- export function draftToInput(draft) {
325
- const input = {
326
- title: draft.title,
327
- content: draft.content,
328
- tags: parsePromptTags(draft.tags),
329
- favorite: draft.favorite,
330
- };
331
- const description = draft.description.trim();
332
- if (description.length > 0)
333
- input.description = description;
334
- return input;
335
- }
@@ -1,71 +0,0 @@
1
- /**
2
- * The prompt picker's view model (quick-prompt-library §4.5).
3
- *
4
- * ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
5
- *
6
- * THE ROWS ARE COMPUTED OUTSIDE THE COMPONENT for the reason `kit-picker-state.ts`
7
- * records one surface over: the same library is rendered by two overlays and by
8
- * `/prompts list`, and three independent row builders is how "the manager says four
9
- * entries and the picker says five" becomes possible without a single failing test.
10
- */
11
- import type { PromptLibrary, PromptSortView } from '../../prompts/types.js';
12
- export interface PromptPickerRow {
13
- id: string;
14
- /** 1-based position in the CURRENT view, i.e. the number `1`-`9` addresses. */
15
- index: number;
16
- title: string;
17
- tags: string[];
18
- favorite: boolean;
19
- }
20
- export interface PromptPickerInput {
21
- library: PromptLibrary;
22
- query: string;
23
- view: PromptSortView;
24
- }
25
- /**
26
- * Filter the library and number the result.
27
- *
28
- * THE VIEW IS APPLIED FIRST, THEN THE FILTER: searching inside `recent` must return
29
- * the recent order, not the manual one. Reversing the two would make `Ctrl+S` appear
30
- * to do nothing whenever a query is active - which is exactly when the user is
31
- * looking at the footer to see whether it worked.
32
- */
33
- export declare function pickerRows(input: PromptPickerInput): PromptPickerRow[];
34
- /**
35
- * The block under the list: at most four rows, and never the whole body.
36
- *
37
- * The picker exists to CHOOSE. The full text belongs to the editor, and printing it
38
- * here would push the chosen row off the frame that has to show it.
39
- */
40
- export declare function pickerDetail(row: PromptPickerRow | undefined, library: PromptLibrary, now?: number): string[];
41
- /**
42
- * The empty-library guidance (AC-23).
43
- *
44
- * IT NAMES TWO WAYS OUT, because the picker is reachable from two directions: the
45
- * user who typed `/prompts` on an empty library can press `a` here, and the user who
46
- * does not want to type can press `Ctrl+P` later. Naming only one of them leaves the
47
- * other audience pressing a key that does nothing.
48
- */
49
- export declare const NO_PROMPTS_HINT = "No prompts yet. Press Ctrl+P to create one, or a to add one here.";
50
- /**
51
- * The footer, ordered by WHICH PATH SURVIVES ON THE WORST TERMINAL (§9.11).
52
- *
53
- * `Enter fill` comes before `^Enter fill & send` because a terminal without keyboard
54
- * enhancement delivers `Ctrl+Enter` as a plain `Enter`: the reader who works left to
55
- * right must meet the path that always works first. `tab manage` sits after the two
56
- * fill actions for the same reason - it is navigation, not the point of the screen.
57
- */
58
- export declare function pickerHint(input: {
59
- count: number;
60
- query: string;
61
- view: PromptSortView;
62
- }): string;
63
- /**
64
- * The `1`-`9` shortcut, or `null`.
65
- *
66
- * A DIGIT IS ONLY A SHORTCUT WHILE THE QUERY IS EMPTY. Otherwise `3` is the third
67
- * character of what the user is searching for, and stealing it would make numeric
68
- * queries impossible to type - so the guard is the emptiness of the query, not the
69
- * shape of the key.
70
- */
71
- export declare function pickerDigitTarget(rows: readonly PromptPickerRow[], input: string): string | null;
@@ -1,98 +0,0 @@
1
- /**
2
- * The prompt picker's view model (quick-prompt-library §4.5).
3
- *
4
- * ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
5
- *
6
- * THE ROWS ARE COMPUTED OUTSIDE THE COMPONENT for the reason `kit-picker-state.ts`
7
- * records one surface over: the same library is rendered by two overlays and by
8
- * `/prompts list`, and three independent row builders is how "the manager says four
9
- * entries and the picker says five" becomes possible without a single failing test.
10
- */
11
- import { PROMPT_PICKER_LIMITS } from '../../prompts/limits.js';
12
- import { searchPrompts, viewOrder } from '../../prompts/search.js';
13
- import { formatAgo, formatCount } from './prompt-library-state.js';
14
- /**
15
- * Filter the library and number the result.
16
- *
17
- * THE VIEW IS APPLIED FIRST, THEN THE FILTER: searching inside `recent` must return
18
- * the recent order, not the manual one. Reversing the two would make `Ctrl+S` appear
19
- * to do nothing whenever a query is active - which is exactly when the user is
20
- * looking at the footer to see whether it worked.
21
- */
22
- export function pickerRows(input) {
23
- const ordered = viewOrder(input.library.prompts, input.view);
24
- return searchPrompts(ordered, input.query).map(({ prompt }, at) => ({
25
- id: prompt.id,
26
- index: at + 1,
27
- title: prompt.title,
28
- tags: prompt.tags ?? [],
29
- favorite: prompt.favorite === true,
30
- }));
31
- }
32
- /**
33
- * The block under the list: at most four rows, and never the whole body.
34
- *
35
- * The picker exists to CHOOSE. The full text belongs to the editor, and printing it
36
- * here would push the chosen row off the frame that has to show it.
37
- */
38
- export function pickerDetail(row, library, now = Date.now()) {
39
- if (!row)
40
- return [];
41
- const prompt = library.prompts.find((entry) => entry.id === row.id);
42
- if (!prompt)
43
- return [];
44
- const lines = [
45
- `${formatCount([...prompt.content].length)} chars, `
46
- + `${prompt.content.split('\n').length} lines, ${formatAgo(prompt.lastUsedAt, now)}`,
47
- ];
48
- if ((prompt.tags ?? []).length > 0)
49
- lines.push((prompt.tags ?? []).map((t) => `#${t}`).join(' '));
50
- const firstLine = prompt.content.split('\n')[0] ?? '';
51
- if (firstLine.length > 0)
52
- lines.push(firstLine);
53
- if (prompt.description !== undefined)
54
- lines.push(prompt.description);
55
- return lines.slice(0, PROMPT_PICKER_LIMITS.detailMaxLines);
56
- }
57
- /**
58
- * The empty-library guidance (AC-23).
59
- *
60
- * IT NAMES TWO WAYS OUT, because the picker is reachable from two directions: the
61
- * user who typed `/prompts` on an empty library can press `a` here, and the user who
62
- * does not want to type can press `Ctrl+P` later. Naming only one of them leaves the
63
- * other audience pressing a key that does nothing.
64
- */
65
- export const NO_PROMPTS_HINT = 'No prompts yet. Press Ctrl+P to create one, or a to add one here.';
66
- /**
67
- * The footer, ordered by WHICH PATH SURVIVES ON THE WORST TERMINAL (§9.11).
68
- *
69
- * `Enter fill` comes before `^Enter fill & send` because a terminal without keyboard
70
- * enhancement delivers `Ctrl+Enter` as a plain `Enter`: the reader who works left to
71
- * right must meet the path that always works first. `tab manage` sits after the two
72
- * fill actions for the same reason - it is navigation, not the point of the screen.
73
- */
74
- export function pickerHint(input) {
75
- if (input.count === 0) {
76
- return input.query.length > 0
77
- ? 'No match | Backspace to widen | Esc close'
78
- : `${NO_PROMPTS_HINT} Esc close`;
79
- }
80
- return 'Enter fill | ^Enter fill & send | 1-9 pick | '
81
- + `^S sort: ${input.view} | tab manage | Esc close`;
82
- }
83
- /**
84
- * The `1`-`9` shortcut, or `null`.
85
- *
86
- * A DIGIT IS ONLY A SHORTCUT WHILE THE QUERY IS EMPTY. Otherwise `3` is the third
87
- * character of what the user is searching for, and stealing it would make numeric
88
- * queries impossible to type - so the guard is the emptiness of the query, not the
89
- * shape of the key.
90
- */
91
- export function pickerDigitTarget(rows, input) {
92
- if (input.length !== 1)
93
- return null;
94
- const digit = input.charCodeAt(0) - 48;
95
- if (digit < 1 || digit > PROMPT_PICKER_LIMITS.quickDigits)
96
- return null;
97
- return rows[digit - 1]?.id ?? null;
98
- }
@@ -1,106 +0,0 @@
1
- /**
2
- * Settings > Team: the pure half of the page (subagent-fanout 3.4.2, extended by
3
- * team-command-forced-dispatch §3.9).
4
- *
5
- * ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
6
- *
7
- * THE PAGE WRITES FOUR KEYS AND CANNOT BE MADE TO WRITE A FIFTH (D-17 / R-P0-1).
8
- * `TeamFanoutPatch` is `Pick<TeamConfig, 'enabled' | 'maxSubagents' |
9
- * 'maxConcurrent' | 'overseer'>`, and `stepFanoutValue` returns
10
- * `Partial<TeamFanoutPatch>`: a width adjustment therefore CANNOT carry `model`
11
- * or `modelProfileId` into `draft.patch.team`. That matters because
12
- * `releasedSlots` reads those two keys as "the user re-decided the subagent
13
- * slot", so a page that returned the whole section would silently release the
14
- * model a session kit had just installed - and no test would notice, because
15
- * every value on screen would still be right.
16
- *
17
- * FOUR KEYS BECAUSE `enabled` MOVED HERE (team-command-forced-dispatch D-3): the
18
- * team switch used to be reachable only as `/team on|off`, which also wrote
19
- * `config.json`. The switch belongs on the same page as width, concurrency and
20
- * supervision - they are four faces of one decision - and `/team` is now the ACT
21
- * ("arm this session"), never a configuration write (I-4).
22
- *
23
- * EVERYTHING HERE IS A PURE FUNCTION over the draft. The page owns exactly one
24
- * piece of state (its cursor); values come from the reducer, which is the same
25
- * discipline the rest of this screen follows.
26
- */
27
- import type { TeamConfig } from '../../config/schema.js';
28
- import type { ModelSettingsDraft } from '../../config/model-profile-store.js';
29
- export type TeamFanoutField = 'enabled' | 'maxSubagents' | 'maxConcurrent' | 'overseer';
30
- /**
31
- * THE ONLY KEYS THIS PAGE MAY WRITE (R-P0-1).
32
- *
33
- * Not `Partial<TeamConfig>`: a fragment that could carry `model` would make a
34
- * width adjustment read as a model decision at save time.
35
- */
36
- export type TeamFanoutPatch = Pick<TeamConfig, 'enabled' | 'maxSubagents' | 'maxConcurrent' | 'overseer'>;
37
- export interface TeamFanoutRow {
38
- field: TeamFanoutField;
39
- label: string;
40
- /** The value as the page prints it (`'8'` / `'on'`). */
41
- value: string;
42
- /** One line, <= 60 columns: WHY this number, not a restatement of the label. */
43
- hint: string;
44
- }
45
- export interface TeamFanoutView {
46
- /** Exactly four, in the fixed order the cursor indexes. */
47
- rows: TeamFanoutRow[];
48
- error?: string;
49
- }
50
- /**
51
- * The CLAMPED team section this draft would save (R-P0-2), for display only.
52
- *
53
- * THE CLAMP IS NOT COSMETIC. Without it a patch carrying only
54
- * `maxSubagents: 6` renders "6 per dispatch, 8 at once" on top of an 8-wide
55
- * baseline, while `mergePersistedConfig` clamps the same patch to 6/6 on the way
56
- * to disk - so the screen and the file disagree, and every arrow key makes the
57
- * user reconcile them by hand.
58
- */
59
- export declare function teamFanoutValues(draft: ModelSettingsDraft): TeamConfig;
60
- /**
61
- * The PATCH FRAGMENT for one arrow press, clamped exactly like `clampTeamConfig`.
62
- *
63
- * `current` must be the value the screen actually shows (`teamFanoutValues`), so
64
- * a step always starts from a number the user can see.
65
- *
66
- * NO WRAPAROUND: a form control is not a ring, and `Left` at 1 jumping to 10
67
- * would be a way to widen a dispatch while trying to narrow it.
68
- *
69
- * EVERY MEMBER IS HANDLED EXPLICITLY AND THE TAIL IS `never` (P0-1). The old
70
- * body was three `if`s with the `maxSubagents` branch as the FALLTHROUGH, so
71
- * adding `'enabled'` to the union compiled cleanly and made the new `Team mode`
72
- * row adjust `Max subagents` instead - every number on screen self-consistent,
73
- * no test red, and the user's intent to switch the team OFF arrived as a wider
74
- * fan-out. The `never` assignment below turns that class of mistake into a
75
- * compile error, which is the only place it can be caught cheaply.
76
- */
77
- export declare function stepFanoutValue(current: TeamConfig, field: TeamFanoutField, delta: -1 | 1): Partial<TeamFanoutPatch>;
78
- /**
79
- * The page's four rows, in cursor order.
80
- *
81
- * `Team mode` IS FIRST because it is the premise of the other three: with `task`
82
- * out of the tool list there is no width to configure and no supervisor to run,
83
- * and a page that listed the numbers first would invite the user to tune a
84
- * capability they had switched off.
85
- *
86
- * TWO HINTS CARRY A CONDITION THE DESIGN OWNS RATHER THAN DECORATION (R-1 / C-2):
87
- * the default pool is 8, which is 8 simultaneous streams against one API key, and
88
- * the honest mitigation for an HTTP 429 storm is "lower this number" - said HERE,
89
- * where the number is, not only in a risk table nobody reads.
90
- *
91
- * `teamRegistered === false` (a `--no-team` session) changes TWO things on the
92
- * `enabled` row and nothing else: `on (next launch)` because the tool array is
93
- * immutable (I-7), and a hint that says why. Absent means "not disclosed",
94
- * which every existing fixture relies on.
95
- */
96
- export declare function fanoutRows(team: TeamConfig, teamRegistered?: boolean): TeamFanoutRow[];
97
- /**
98
- * The one-line summary the settings root row prints for this page.
99
- *
100
- * `off - no subagents` rather than the numbers, because with the capability off
101
- * the numbers describe nothing the user can spend. This replaced
102
- * `fanoutSummary()` outright instead of living beside it: two summary functions
103
- * over one page is two authorities for one line, and the root row would sooner or
104
- * later disagree with the page it summarises.
105
- */
106
- export declare function teamSummary(team: TeamConfig): string;