@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,301 +0,0 @@
1
- import { randomUUID } from 'node:crypto';
2
- import { emptyModelProfiles, duplicateModelProfile, normalizeModelProfiles, validateModelProfiles } from '../../config/model-profiles.js';
3
- import { parseContextWindowInput } from '../../config/schema.js';
4
- import { stepFanoutValue, teamFanoutValues } from './team-fanout-state.js';
5
- import { draftGovernance, stepGovernanceSetting } from './governance-settings.js';
6
- /** The picker's built-in `Fast tier model` row; never a profile id on disk. */
7
- export const SUBAGENT_FAST_ROW_ID = '__fast__';
8
- /** Keep the original secret separate from the empty replacement field. */
9
- export function createProfileEditor(profile) {
10
- return { original: { ...profile }, name: profile.name, provider: profile.provider,
11
- model: profile.model, baseUrl: profile.baseUrl ?? '', apiKey: '',
12
- contextWindow: profile.contextWindow === null ? '' : String(profile.contextWindow),
13
- credentialMode: profile.apiKey ? 'keep' : 'shared', endpointChanged: false };
14
- }
15
- /** Validate locally before merging the child form into the root transaction. */
16
- export function finishProfileEditor(editor) {
17
- // STRICT IN THE UI, TOLERANT ON DISK (§6.5 / invariant 4): a typo is refused
18
- // here with an inline error and the focus jump its `field` enables; it never
19
- // reaches the draft. The message prefix matches the editor's LABELS row.
20
- const window = parseContextWindowInput(editor.contextWindow);
21
- if (window.kind === 'invalid') {
22
- return { error: 'Context window: use a number or auto.', field: 'contextWindow' };
23
- }
24
- const profile = { id: editor.original.id, name: editor.name.trim(),
25
- provider: editor.provider, model: editor.model.trim(), baseUrl: editor.baseUrl.trim() || null,
26
- apiKey: editor.credentialMode === 'keep' ? editor.original.apiKey
27
- : editor.credentialMode === 'replace' ? editor.apiKey.trim() : null,
28
- contextWindow: window.kind === 'auto' ? null : window.value };
29
- const library = { ...emptyModelProfiles(), entries: [profile] };
30
- const issue = validateModelProfiles(library)[0];
31
- if (issue)
32
- return { error: issue.message, field: issue.path.split('.').at(-1) };
33
- return { profile: normalizeModelProfiles(library).entries[0] };
34
- }
35
- /** Make an isolated root draft; opening the screen never mutates live config. */
36
- export function createModelProfileState(draft) {
37
- const copy = structuredClone(draft);
38
- if (validateModelProfiles(copy.profiles).length
39
- || validateModelProfiles(copy.baseline.modelProfiles).length) {
40
- copy.profiles = undefined;
41
- copy.readError = 'invalid_profiles';
42
- }
43
- return { draft: copy, page: 'root', role: 'main', returnPage: 'manager',
44
- bindNew: false, dirty: false };
45
- }
46
- /** The kits whose three slots name `id`, for the delete confirmation (D-9). */
47
- export function kitsUsingProfile(profiles, id) {
48
- return (profiles?.kits ?? []).filter((kit) => kit.mainProfileId === id
49
- || kit.fastProfileId === id
50
- || (kit.subagent.model === 'profile' && kit.subagent.modelProfileId === id));
51
- }
52
- /**
53
- * Drop `slot` from the session kit (§4.3 row 2 / AC-38).
54
- *
55
- * THE DRAFT IS NARROWED HERE, NOT ONLY AT SAVE TIME. `releasedSlots` already
56
- * strips the same slot from the transaction before it commits, but the ROOT PAGE
57
- * paints the kit's effective value for every HELD slot - so without this line a
58
- * user picks a profile and the row keeps showing the one they just replaced,
59
- * which is the most confusing thing a settings screen can do. Releasing the last
60
- * slot ends the kit: `held: []` is not a state any surface can render.
61
- */
62
- function releaseHeldSlot(draft, slot) {
63
- const current = draft.sessionKit;
64
- if (!current || !current.held.includes(slot))
65
- return draft;
66
- const held = current.held.filter((item) => item !== slot);
67
- return { ...draft, sessionKit: held.length ? { id: current.id, held } : null };
68
- }
69
- /** Describe references using text so ASCII and no-color modes remain usable. */
70
- export function profileUsers(profiles, id, subagentProfileId) {
71
- // THE KITS ARE REFERENCES TOO (D-9 / RV-P2-6): "Main + kit "Deep work"" is what
72
- // makes the confirmation honest, because deleting this entry also deletes that
73
- // kit. The empty case must stay empty - a leading ` + ` is what a naive
74
- // `join` after an unconditional push produces.
75
- return [profiles?.mainId === id ? 'Main' : '', profiles?.fastId === id ? 'Fast' : '',
76
- subagentProfileId === id ? 'Subagent' : '',
77
- ...kitsUsingProfile(profiles, id).map((kit) => `kit "${kit.name}"`)]
78
- .filter(Boolean).join(' + ');
79
- }
80
- /**
81
- * The team section a draft would save: the patch first, then the disk baseline
82
- * (subagent-model §3.6). The explicit-`undefined` test is what makes an
83
- * explicit `null` in the patch win over the baseline - `??` would fold it away.
84
- */
85
- export function draftTeam(draft) {
86
- const patch = draft.patch.team;
87
- const baseline = draft.baseline.team;
88
- return {
89
- model: patch?.model !== undefined ? patch.model : baseline?.model ?? 'main',
90
- modelProfileId: patch?.modelProfileId !== undefined ? patch.modelProfileId
91
- : baseline?.modelProfileId ?? null,
92
- };
93
- }
94
- /** The profile id the draft's team section binds, for reference checks (3.7). */
95
- export function draftSubagentProfileId(draft) {
96
- return draftTeam(draft).model === 'profile' ? draftTeam(draft).modelProfileId : null;
97
- }
98
- /** The projected picker selection for the subagent role (6.2). */
99
- export function subagentSelectedId(draft) {
100
- const team = draftTeam(draft);
101
- if (team.model === 'profile')
102
- return team.modelProfileId;
103
- return team.model === 'fast' ? SUBAGENT_FAST_ROW_ID : null;
104
- }
105
- export function subagentModelSummary(input) {
106
- if (input.mode === 'main')
107
- return `Same as main (${input.mainConnection})`;
108
- if (input.mode === 'fast') {
109
- return input.fastConnection
110
- ? `Fast tier (${input.fastConnection})`
111
- : 'Fast tier (off - falls back to main)';
112
- }
113
- const entry = input.modelProfileId
114
- ? input.profiles?.entries.find((candidate) => candidate.id === input.modelProfileId)
115
- : undefined;
116
- if (!entry)
117
- return 'Profile missing - falls back to main';
118
- const missing = !entry.apiKey && !input.hasKey(entry.provider);
119
- return `${entry.name} ${entry.provider}:${entry.model}${missing ? ' [Missing API key]' : ''}`;
120
- }
121
- /** Adopt persisted fields only, resolving the old fast inheritance once. */
122
- export function createCustomProfile(draft, role) {
123
- const file = draft.baseline;
124
- const provider = (role === 'fast' ? file.fast?.provider : undefined)
125
- || file.provider || 'anthropic';
126
- const model = role === 'fast' ? file.fast?.model ?? '' : file.model ?? '';
127
- const baseUrl = role === 'fast' && !model ? null
128
- : (role === 'fast' ? file.fast?.baseUrl
129
- || (provider === (file.provider || 'anthropic') ? file.baseUrl : null)
130
- : file.baseUrl) || null;
131
- return { id: randomUUID(), name: '', provider, model, baseUrl,
132
- apiKey: role === 'fast' && !model ? null : file.apiKeys?.[provider] || null,
133
- // Carry the user's existing top-level correction into the first profile
134
- // (§6.5): binding an AUTO profile would otherwise silently retire it
135
- // (tradeoff B's migration risk, mitigated exactly here).
136
- contextWindow: file.contextWindow ?? null };
137
- }
138
- function editField(state, action) {
139
- if (!state.editor)
140
- return state;
141
- const editor = { ...state.editor, [action.field]: action.value };
142
- if (action.field === 'provider' || action.field === 'baseUrl') {
143
- editor.apiKey = '';
144
- editor.credentialMode = 'shared';
145
- editor.endpointChanged = true;
146
- }
147
- if (action.field === 'credentialMode' && action.value !== 'replace')
148
- editor.apiKey = '';
149
- return { ...state, editor, error: undefined };
150
- }
151
- function mergeEditor(state) {
152
- if (!state.editor)
153
- return state;
154
- const result = finishProfileEditor(state.editor);
155
- if (!result.profile)
156
- return { ...state, error: result.error };
157
- const library = state.draft.profiles ?? emptyModelProfiles();
158
- const exists = library.entries.some((entry) => entry.id === result.profile.id);
159
- if (!exists && library.entries.length >= 200)
160
- return { ...state,
161
- error: 'Maximum 200 profiles. Delete an unused profile first.' };
162
- const profiles = { ...library, entries: exists
163
- ? library.entries.map((entry) => entry.id === result.profile.id ? result.profile : entry)
164
- : [...library.entries, result.profile] };
165
- const merged = { ...state, draft: { ...state.draft, profiles }, dirty: true,
166
- editor: undefined, page: state.returnPage, error: undefined };
167
- return state.bindNew ? modelProfileReducer(merged, { type: 'select', role: state.role, id: result.profile.id }) : merged;
168
- }
169
- /** All child actions modify only the root draft; persistence belongs to Save. */
170
- export function modelProfileReducer(state, action) {
171
- const library = state.draft.profiles ?? emptyModelProfiles();
172
- switch (action.type) {
173
- case 'reload': return createModelProfileState(action.draft);
174
- case 'page': return { ...state, page: action.page, role: action.role ?? state.role,
175
- error: undefined };
176
- case 'select': {
177
- // THE SUBAGENT BRANCH (D-5): selection writes the DRAFT's team patch -
178
- // `profiles` and `activateRoles` are untouched, because 'subagent' is a
179
- // picker-only role with no `${role}Id` library key (6.2). Save is the
180
- // one place the patch ever reaches disk (I-5).
181
- if (action.role === 'subagent') {
182
- const team = action.id === null
183
- ? { model: 'main', modelProfileId: null }
184
- : action.id === SUBAGENT_FAST_ROW_ID
185
- ? { model: 'fast', modelProfileId: null }
186
- : { model: 'profile', modelProfileId: action.id };
187
- return { ...state, page: 'root', dirty: true, error: undefined,
188
- draft: releaseHeldSlot({ ...state.draft,
189
- patch: { ...state.draft.patch, team } }, 'subagent') };
190
- }
191
- // `'binding'` NEVER REACHES THIS REDUCER: a kit slot's choice is applied
192
- // by `kitReducer` (`kit-main` / `kit-fast`), because the value belongs to
193
- // an editor draft rather than to a `${role}Id` library key. Returning the
194
- // state unchanged is the honest answer to an impossible action.
195
- if (action.role === 'binding')
196
- return state;
197
- return { ...state, page: 'root', dirty: true, error: undefined,
198
- draft: releaseHeldSlot({ ...state.draft,
199
- profiles: { ...library, [`${action.role}Id`]: action.id },
200
- activateRoles: [...new Set([...state.draft.activateRoles, action.role])] }, action.role) };
201
- }
202
- case 'edit': return { ...state, editor: createProfileEditor(action.profile), page: 'editor',
203
- // A PROFILE BORN IN A KIT SLOT RETURNS TO THAT SLOT (§4.5): the picker's
204
- // `Create profile` action is the only way to invent one and it is offered on
205
- // the kit's slot chooser - landing in the profile MANAGER there would
206
- // abandon the half-built kit behind a page the user never asked for.
207
- returnPage: state.page === 'picker' || state.page === 'kit-slot'
208
- ? state.page : 'manager',
209
- bindNew: action.bindNew ?? false, error: undefined };
210
- case 'editor-field': return editField(state, action);
211
- case 'retain-key': return state.editor?.original.apiKey ? { ...state,
212
- editor: { ...state.editor, credentialMode: 'keep', apiKey: '' } } : state;
213
- case 'merge-editor': return mergeEditor(state);
214
- case 'choose-model': {
215
- // Legal ONLY from the list page (§7). `editor-field` would do the same thing,
216
- // but routing the list page through the generic field action would also let a
217
- // future `editField` side effect (key reset, endpoint flag) fire on a choice
218
- // that never touched the endpoint.
219
- if (!state.editor || state.page !== 'models')
220
- return state;
221
- return { ...state, page: 'editor', error: undefined,
222
- editor: { ...state.editor, model: action.model } };
223
- }
224
- case 'cancel-editor': return { ...state, editor: undefined, page: state.returnPage,
225
- error: undefined };
226
- case 'team-fanout': {
227
- // THE FRAGMENT IS THE ONLY THING WRITTEN (D-17 / R-P0-1). `stepFanoutValue`
228
- // returns `Partial<TeamFanoutPatch>`, so `model` and `modelProfileId` - the
229
- // two keys `releasedSlots` reads as "the user re-decided the subagent slot" -
230
- // cannot enter the patch from here. `teamFanoutValues` is the CLAMPED view
231
- // (R-P0-2), so a step starts from the number the user is looking at.
232
- const step = stepFanoutValue(teamFanoutValues(state.draft), action.field, action.delta);
233
- return { ...state, dirty: true, error: undefined,
234
- draft: { ...state.draft,
235
- patch: { ...state.draft.patch, team: { ...state.draft.patch.team, ...step } } } };
236
- }
237
- case 'governance-step': {
238
- // THE FRAGMENT IS THE ONLY THING WRITTEN, as for `team-fanout`: `stepGovernanceSetting`
239
- // returns exactly one key, clamped, from the value the screen is showing
240
- // (`draftGovernance`), so a step can never drag a second key into the patch.
241
- const step = stepGovernanceSetting(draftGovernance(state.draft), action.key, action.delta);
242
- return { ...state, dirty: true, error: undefined,
243
- draft: { ...state.draft, patch: { ...state.draft.patch,
244
- governance: { ...state.draft.patch.governance, ...step } } } };
245
- }
246
- case 'duplicate': {
247
- if (library.entries.length >= 200)
248
- return { ...state,
249
- error: 'Maximum 200 profiles. Delete an unused profile first.' };
250
- const original = library.entries.find((entry) => entry.id === action.id);
251
- return original ? { ...state, dirty: true, draft: { ...state.draft,
252
- profiles: { ...library, entries: [...library.entries, duplicateModelProfile(original)] } } }
253
- : state;
254
- }
255
- case 'delete': {
256
- // UNBIND-AND-DELETE (D-6): being referenced no longer refuses the flow.
257
- // The references - subagent included - are computed here, shown on the
258
- // confirm page, and cleared by `confirm-delete` inside the draft.
259
- const users = profileUsers(library, action.id, draftSubagentProfileId(state.draft));
260
- return { ...state, page: 'delete-confirm', deleteId: action.id,
261
- deleteUsers: users, error: undefined };
262
- }
263
- case 'confirm-delete': {
264
- const id = state.deleteId;
265
- if (!id)
266
- return state;
267
- // THE DRAFT-SIDE UNBIND: Main/Fast bindings pointing at the entry are
268
- // nulled here (not refused) and the subagent binding resets to main
269
- // when it named THIS entry. `removeModelProfile`'s throw stays as the
270
- // bottom-line defense - the UI has already unbound, so it cannot fire
271
- // on this path.
272
- //
273
- // AND THE KITS GO WITH IT (agent-model-kits D-9 / I-8): a kit naming a
274
- // deleted profile can neither be applied nor repaired from any screen, so
275
- // leaving it behind would be leaving a permanent error. The confirmation
276
- // page has already named them, so this is the action the user agreed to.
277
- const doomed = kitsUsingProfile(library, id);
278
- const defaultKitKept = doomed.some((kit) => kit.id === (library.defaultKitId ?? null))
279
- ? null : library.defaultKitId;
280
- const sessionReleased = doomed.some((kit) => kit.id === state.draft.sessionKit?.id)
281
- ? null : state.draft.sessionKit;
282
- const profiles = {
283
- ...library,
284
- mainId: library.mainId === id ? null : library.mainId,
285
- fastId: library.fastId === id ? null : library.fastId,
286
- entries: library.entries.filter((entry) => entry.id !== id),
287
- kits: (library.kits ?? []).filter((kit) => !doomed.includes(kit)),
288
- defaultKitId: defaultKitKept,
289
- };
290
- const teamReset = draftSubagentProfileId(state.draft) === id
291
- ? { team: { model: 'main', modelProfileId: null } }
292
- : {};
293
- return { ...state, page: 'manager', dirty: true,
294
- draft: { ...state.draft, profiles, sessionKit: sessionReleased,
295
- patch: { ...state.draft.patch, ...teamReset } },
296
- deleteId: undefined, deleteUsers: undefined,
297
- // No orphan editor for a deleted entry (3.7).
298
- editor: state.editor?.original.id === id ? undefined : state.editor };
299
- }
300
- }
301
- }
@@ -1,162 +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 type { PromptDraftInput, PromptDraftVerdict, PromptEditorDraft, PromptLibrary, PromptLibraryEntry, PromptWriteError, QuickPrompt } from '../../prompts/types.js';
15
- export type PromptLibraryPage = 'list' | 'editor' | 'delete';
16
- /** The six rows `Tab` cycles on the editor page, in visual order. */
17
- export declare const PROMPT_EDITOR_FIELDS: readonly ["title", "content", "description", "tags", "save", "cancel"];
18
- export type PromptEditorField = (typeof PROMPT_EDITOR_FIELDS)[number];
19
- export interface PromptLibraryState {
20
- page: PromptLibraryPage;
21
- /** Focus index on the list page (clamped by the view). */
22
- index: number;
23
- /**
24
- * Id the focus should land on when the list is next drawn.
25
- *
26
- * BY ID, NEVER BY POSITION: a create appends and an edit does not move the entry,
27
- * but a delete shifts every row after it, and "focus row 3" would then point at a
28
- * different prompt than the one the user was working on.
29
- */
30
- focusId: string | null;
31
- draft: PromptEditorDraft;
32
- /** The entry the draft was seeded from, so `dirty` is a comparison, not a guess. */
33
- baseline: PromptEditorDraft | null;
34
- /** The first Esc on a dirty editor arms the discard; any edit disarms it. */
35
- escArmed: boolean;
36
- pendingDeleteId: string | null;
37
- error: PromptWriteError | null;
38
- /** The row that should own focus after a refusal (D-12). */
39
- errorField: PromptEditorField | null;
40
- /** Highest intent nonce this overlay has acted on (I-8). */
41
- consumedIntentNonce: number;
42
- }
43
- export type PromptLibraryAction = {
44
- type: 'init';
45
- entry: PromptLibraryEntry;
46
- library: PromptLibrary;
47
- nonce: number;
48
- } | {
49
- type: 'list';
50
- focusId?: string;
51
- } | {
52
- type: 'focus';
53
- index: number;
54
- } | {
55
- type: 'create';
56
- seed?: {
57
- title?: string;
58
- content?: string;
59
- };
60
- } | {
61
- type: 'edit';
62
- id: string;
63
- library: PromptLibrary;
64
- } | {
65
- type: 'delete';
66
- id: string;
67
- } | {
68
- type: 'draft';
69
- patch: Partial<PromptEditorDraft>;
70
- } | {
71
- type: 'commit';
72
- id: string | null;
73
- } | {
74
- type: 'failed';
75
- code: PromptWriteError;
76
- field?: PromptEditorField;
77
- } | {
78
- type: 'esc';
79
- } | {
80
- type: 'cancelled';
81
- };
82
- /** A new, empty draft. `id: null` is what makes `Save` a create rather than an update. */
83
- export declare const EMPTY_PROMPT_DRAFT: PromptEditorDraft;
84
- export declare const INITIAL_PROMPT_LIBRARY_STATE: PromptLibraryState;
85
- /** The editable projection of a stored entry. */
86
- export declare function draftFromEntry(entry: QuickPrompt): PromptEditorDraft;
87
- /** A create draft seeded from a command (`/prompts add title :: body`). */
88
- export declare function seededDraft(seed?: {
89
- title?: string;
90
- content?: string;
91
- }): PromptEditorDraft;
92
- /** Structural equality is enough: every field is a string or a boolean. */
93
- export declare function draftIsDirty(draft: PromptEditorDraft, baseline: PromptEditorDraft | null): boolean;
94
- /**
95
- * Validate a draft and turn it into what the store accepts (D-12).
96
- *
97
- * THE VALIDATOR IS `store.ts`'S, not a second copy here: the sentence the editor
98
- * shows and the rule the write applies have to be the same rule, or a user can be
99
- * told a title is fine by the form and refused by the store.
100
- */
101
- export declare function finishPromptEditor(draft: PromptEditorDraft): PromptDraftVerdict;
102
- /** Index of the first focusable row, for a refusal that named a field. */
103
- export declare function fieldIndex(field: PromptEditorField | null): number;
104
- /**
105
- * The reducer.
106
- *
107
- * `init` is the ONLY action that can jump straight to the editor or the delete page:
108
- * that is what makes `/prompts edit 2` land where it should (D-21). The intent's
109
- * nonce is stored as `consumedIntentNonce` by the component before dispatching, so a
110
- * replayed intent is a no-op at the component, not a second edit here.
111
- */
112
- export declare function promptLibraryReducer(state: PromptLibraryState, action: PromptLibraryAction, library: PromptLibrary): PromptLibraryState;
113
- export interface PromptLibraryRow {
114
- id: string;
115
- /** One-line render text: the title plus its markers. The caret is the component's. */
116
- label: string;
117
- markers: {
118
- favorite: boolean;
119
- hasTags: boolean;
120
- uses: number;
121
- };
122
- /** Body length in code points; the detail block and the delete page share it. */
123
- chars: number;
124
- }
125
- /** `1.2k` for anything a fixed-width column cannot show in full. */
126
- export declare function formatCount(count: number): string;
127
- /** `3d ago` / `2h ago` / `just now`. Deliberately coarse: it is a hint, not a clock. */
128
- export declare function formatAgo(timestamp: number | undefined, now: number): string;
129
- /**
130
- * The list, one row per entry, in the library's own order.
131
- *
132
- * DUPLICATE TITLES GET AN ID PREFIX (I-2), exactly as `kit-picker-state.ts` does for
133
- * duplicate kit names: two rows reading the same words make `Enter` a coin flip.
134
- */
135
- export declare function libraryRows(library: PromptLibrary): PromptLibraryRow[];
136
- /**
137
- * The detail block under the list: at most `detailMaxLines` rows, fixed shape.
138
- *
139
- * FIXED, because `OverlayFrame`'s window is shared with the list (D-16): a body that
140
- * participated in row height would squeeze six prompts into two visible rows. The
141
- * full text has exactly one home, and it is the editor.
142
- */
143
- export declare function libraryDetail(row: PromptLibraryRow | undefined, library: PromptLibrary, cols: number, now?: number): string[];
144
- /**
145
- * The list page's footer.
146
- *
147
- * THE LAST CLAUSE IS ALWAYS THE WAY OUT (§9.5): a narrow terminal clips from the
148
- * left, so the reader always keeps `Esc close`. The reorder keys are named here
149
- * rather than in the row above it because they are the one affordance a user cannot
150
- * discover by pressing a key they already know.
151
- */
152
- export declare function libraryHint(state: PromptLibraryState, count: number): string;
153
- /** The delete page's four lines: what it is, how big, and what it costs. */
154
- export declare function deleteDetail(library: PromptLibrary, id: string | null): string[];
155
- /**
156
- * The draft as the store accepts it.
157
- *
158
- * THE TAGS FIELD IS PARSED HERE, ONCE, and nowhere else: the editor edits a raw
159
- * string, the store validates a `string[]`, and a second parser between them is how
160
- * `a,b` and `a b` come to mean different things depending on which surface saved it.
161
- */
162
- export declare function draftToInput(draft: PromptEditorDraft): PromptDraftInput;