@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,136 +0,0 @@
1
- /**
2
- * The `ctrl+K` list, as a pure view model (agent-model-kits §4.6 / D-10).
3
- *
4
- * ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
5
- *
6
- * WHY THE ROWS ARE COMPUTED HERE AND NOT IN THE COMPONENT: three surfaces print
7
- * the same three connections (this list, the settings manager, `/kit list`).
8
- * One function produces them, so the wording of "the fast tier is off" cannot
9
- * differ between the key the user pressed and the command they typed.
10
- */
11
- import { kitSlotConnections } from '../../config/model-kits.js';
12
- import { CURRENT_SETUP_NAME } from '../../config/kit-resolution.js';
13
- function duplicateNames(kits) {
14
- const seen = new Set();
15
- const repeated = new Set();
16
- for (const kit of kits) {
17
- if (seen.has(kit.name))
18
- repeated.add(kit.name);
19
- seen.add(kit.name);
20
- }
21
- return repeated;
22
- }
23
- /** `provider:model` plus the endpoint clause shared by every surface. */
24
- export function connectionText(connection) {
25
- const endpoint = connection.baseUrl ? hostOf(connection.baseUrl) : 'default URL';
26
- return `${connection.provider}:${connection.model} ${endpoint}`;
27
- }
28
- function hostOf(baseUrl) {
29
- try {
30
- const url = new URL(baseUrl);
31
- return url.username || url.password || url.search || url.hash ? 'Invalid URL' : url.host;
32
- }
33
- catch {
34
- return 'Invalid URL';
35
- }
36
- }
37
- /**
38
- * Rows in a FIXED order: `Current setup` first, then the library's own order.
39
- *
40
- * The first row never moves (AC-24) - it is the only row that can always be
41
- * chosen, and a list whose "off" entry wanders with the data is a list a user
42
- * has to read every single time.
43
- */
44
- export function kitRows(input) {
45
- const kits = input.library?.kits ?? [];
46
- const repeated = duplicateNames(kits);
47
- const rows = [{
48
- id: null,
49
- label: `${input.active.source === 'none' ? '[In use] ' : ''}${CURRENT_SETUP_NAME}`,
50
- markers: { inUse: input.active.source === 'none', isDefault: false, modified: false },
51
- missing: [],
52
- }];
53
- for (const kit of kits) {
54
- const inUse = input.active.source !== 'none' && input.active.id === kit.id;
55
- const isDefault = (input.library?.defaultKitId ?? null) === kit.id;
56
- const modified = inUse && input.active.modified;
57
- const missing = inUse ? input.active.missingProfiles : [];
58
- // A DUPLICATE NAME gets its id prefix, exactly as the profile picker does:
59
- // two rows reading `Cheap` would make Enter a coin flip.
60
- const identity = repeated.has(kit.name) ? `#${kit.id.slice(0, 8)} ` : '';
61
- const markers = [inUse ? '[In use]' : '', isDefault ? '[Default]' : '']
62
- .filter(Boolean).join(' ');
63
- rows.push({
64
- id: kit.id,
65
- label: `${identity}${markers ? `${markers} ` : ''}${kit.name}${modified ? '~' : ''}`,
66
- markers: { inUse, isDefault, modified },
67
- missing,
68
- });
69
- }
70
- return rows;
71
- }
72
- function subagentText(config) {
73
- const mode = config.team?.model ?? 'main';
74
- if (mode === 'main')
75
- return 'same as main';
76
- if (mode === 'fast')
77
- return 'fast tier model';
78
- const id = config.team?.modelProfileId ?? null;
79
- const entry = id ? config.modelProfiles?.entries.find((item) => item.id === id) : undefined;
80
- return entry ? `profile ${entry.name}` : 'Profile missing';
81
- }
82
- /** The three lines under the focused row (§4.6). */
83
- export function kitDetail(input) {
84
- const { row, library, config } = input;
85
- const kit = row.id ? (library?.kits ?? []).find((item) => item.id === row.id) : undefined;
86
- if (!kit) {
87
- // `Current setup` describes the FILE's bindings - what the next process
88
- // would run - because that is exactly what choosing it restores.
89
- //
90
- // THE LIVE CONFIG IS THE WRONG SOURCE WHILE A SESSION KIT IS HELD: it mirrors
91
- // the kit (I-6), so this block would print the current values and thereby
92
- // promise that releasing the kit changes nothing. The first row is the only
93
- // row whose whole meaning is "what the file says", so it is the only one that
94
- // has to be read from the file.
95
- const file = input.diskConfig ?? config;
96
- const fast = file.fast.enabled
97
- ? `${file.fast.provider || file.provider}:${file.fast.model || '(not set)'}`
98
- : 'off';
99
- return [`main ${file.provider}:${file.model}`,
100
- `subagent ${subagentText(file)}`,
101
- `fast ${fast}`];
102
- }
103
- const connections = kitSlotConnections(library, kit);
104
- const mainLine = connections.main ? connectionText(connections.main) : 'Profile missing';
105
- const fastLine = kit.fastProfileId === null ? 'off (this kit turns the tier off)'
106
- : connections.fast ? `${connectionText(connections.fast)} tier on` : 'Profile missing';
107
- // THE SUBAGENT LINE REUSES THE SLOT'S OWN THREE-STATE VOCABULARY (`same as main`
108
- // / `fast tier` / a profile), so this block and the settings screen's subagent
109
- // row cannot say different things about the same kit.
110
- const subagentLine = kit.subagent.model === 'main' ? 'same as main'
111
- : kit.subagent.model === 'fast'
112
- ? (connections.fast ? 'fast tier' : 'fast tier (off - falls back to main)')
113
- : connections.subagent.name
114
- ? `profile ${connections.subagent.name} ${connections.subagent.provider}:${connections.subagent.model}` : 'Profile missing';
115
- return [`main ${mainLine}`, `subagent ${subagentLine}`, `fast ${fastLine}`];
116
- }
117
- /**
118
- * The footer. `busy` is a warning, never a reason to hide the list (§4.7).
119
- *
120
- * THE LAST CLAUSE IS D-7, VERBATIM: this overlay is a session-only surface, so it
121
- * says where the persistence actually lives. Without it the natural reading of
122
- * `Enter` is "make this my default", and D-7 exists to keep that action one
123
- * deliberate trip to `/settings` instead of one keystroke next to a browse key.
124
- * It is LAST so that a 40-column terminal clips the pointer, never the action.
125
- */
126
- export function kitPickHint(input) {
127
- if (!input.hasKits)
128
- return 'Esc close | Create a kit in /settings';
129
- if (input.busy) {
130
- return 'Enter use for this session (blocked while running) | Esc close'
131
- + ' | Set a default in /settings';
132
- }
133
- return 'Enter use for this session | Esc close | Set a default in /settings';
134
- }
135
- /** The one guidance row an empty library renders (AC-26). */
136
- export const NO_KITS_HINT = 'No kits yet. Create one in /settings (Settings > Kit pack).';
@@ -1,129 +0,0 @@
1
- /**
2
- * The settings screen's kit pages: manager rows, the editor draft, and the ONE
3
- * reducer that turns intents into draft mutations (agent-model-kits §4.5).
4
- *
5
- * ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
6
- *
7
- * TWO REDUCERS, ONE PAGE AXIS. `modelProfileReducer` owns the profile pages and
8
- * `kitReducer` owns kit data; both return the same `ModelProfileState`, so the
9
- * screen still has exactly one state object and one Save button. The alternative
10
- * - a second state machine inside `SettingsScreen.tsx`, which is already over the
11
- * 1000-line cap - is what this module exists to avoid.
12
- *
13
- * NOTHING HERE WRITES ANYTHING: every action mutates the transaction draft and
14
- * sets `dirty`. `Save` stays the only writer (F-7/F-10).
15
- */
16
- import type { KitSlot, AgentKit } from '../../config/model-kits.js';
17
- import type { ModelProfilesConfig } from '../../config/model-profiles.js';
18
- import type { SubagentModelMode } from '../../team/model.js';
19
- import type { ModelProfileState } from './model-profile-state.js';
20
- export interface KitDraft {
21
- /** `null` while creating; the delete confirmation reuses this field as its id. */
22
- id: string | null;
23
- name: string;
24
- mainProfileId: string;
25
- /** `null` = this kit turns the fast tier off (D-8). */
26
- fastProfileId: string | null;
27
- subagent: {
28
- model: SubagentModelMode;
29
- modelProfileId: string | null;
30
- };
31
- /** Which slot the profile picker is choosing for; `null` on the editor page. */
32
- slot: KitSlot | null;
33
- error?: string;
34
- /** The row the cursor jumps to when `error` is set (focus-lands-on-error). */
35
- field?: KitSlot | 'name';
36
- }
37
- export type KitAction = {
38
- type: 'kit-open';
39
- id: string | null;
40
- } | {
41
- type: 'kit-name';
42
- value: string;
43
- } | {
44
- type: 'kit-slot';
45
- slot: KitSlot;
46
- } | {
47
- type: 'kit-main';
48
- id: string | null;
49
- } | {
50
- type: 'kit-fast';
51
- id: string | null;
52
- } | {
53
- type: 'kit-subagent';
54
- model: SubagentModelMode;
55
- modelProfileId: string | null;
56
- } | {
57
- type: 'kit-save';
58
- } | {
59
- type: 'kit-cancel';
60
- } | {
61
- type: 'kit-duplicate';
62
- id: string;
63
- } | {
64
- type: 'kit-delete';
65
- id: string;
66
- } | {
67
- type: 'kit-confirm-delete';
68
- } | {
69
- type: 'kit-apply';
70
- id: string;
71
- } | {
72
- type: 'kit-default';
73
- id: string;
74
- };
75
- /** The library the transaction would save, with a read error falling back to empty. */
76
- export declare function draftLibrary(state: ModelProfileState): ModelProfilesConfig;
77
- export declare function findKitInState(state: ModelProfileState, id: string | null): AgentKit | undefined;
78
- /**
79
- * Open the editor on an existing kit, or on a PREFILLED new one (§4.10).
80
- *
81
- * THE FIRST KIT IS NEVER A BLANK FORM (D-13): it starts from the three bindings
82
- * this machine already runs, so "create a kit" is one rename and one Save. When
83
- * no Main profile is bound the kit starts with an empty main slot and Save
84
- * refuses - the picker's own `Create profile` action is where a profile is born,
85
- * which keeps this module free of the profile-creating code path.
86
- */
87
- export declare function openKitDraft(state: ModelProfileState, id: string | null): KitDraft;
88
- /** Every kit-page intent, applied to the ONE draft. */
89
- export declare function kitReducer(state: ModelProfileState, action: KitAction): ModelProfileState;
90
- /** One manager row: the label with its markers, plus the three-slot summary. */
91
- export interface KitManagerRow {
92
- id: string;
93
- label: string;
94
- summary: string;
95
- isDefault: boolean;
96
- inUse: boolean;
97
- }
98
- /** Rows in library order, each with the markers the picker also uses (§4.5). */
99
- export declare function kitManagerRows(state: ModelProfileState): KitManagerRow[];
100
- /**
101
- * The `Kit pack` root row's five states (§4.5 table, AC-27).
102
- *
103
- * READ FROM THE DRAFT, not from the live config: the row sits inside a
104
- * transaction, and showing the saved state under a pending selection is how a
105
- * settings screen lies to the user about what `Save` is going to do.
106
- */
107
- export declare function kitPackRow(state: ModelProfileState): string;
108
- /** Which of the three root rows must show the KIT's value, and under which name. */
109
- export interface HeldSlots {
110
- kitName: string | null;
111
- /** The slots the session kit still owns; `mainId`/`fastId` are only meaningful
112
- * for a slot in this list (`null` means "this kit turns the tier off"). */
113
- held: KitSlot[];
114
- mainId: string | null;
115
- fastId: string | null;
116
- subagent: {
117
- model: SubagentModelMode;
118
- modelProfileId: string | null;
119
- } | null;
120
- }
121
- /**
122
- * The held slots' EFFECTIVE values (RV-P0-2).
123
- *
124
- * WITHOUT THIS the root page shows the file's bindings while the header shows the
125
- * kit's, and the only conclusion available to the user is that one of them is
126
- * broken. `Enter` on any of these rows writes an explicit choice, which releases
127
- * that slot - so "what you see is what you change" stays true.
128
- */
129
- export declare function heldSlots(state: ModelProfileState): HeldSlots;
@@ -1,268 +0,0 @@
1
- /**
2
- * The settings screen's kit pages: manager rows, the editor draft, and the ONE
3
- * reducer that turns intents into draft mutations (agent-model-kits §4.5).
4
- *
5
- * ASCII ONLY - `src/ui/**` is inside `glyphs.test.ts::inScope`.
6
- *
7
- * TWO REDUCERS, ONE PAGE AXIS. `modelProfileReducer` owns the profile pages and
8
- * `kitReducer` owns kit data; both return the same `ModelProfileState`, so the
9
- * screen still has exactly one state object and one Save button. The alternative
10
- * - a second state machine inside `SettingsScreen.tsx`, which is already over the
11
- * 1000-line cap - is what this module exists to avoid.
12
- *
13
- * NOTHING HERE WRITES ANYTHING: every action mutates the transaction draft and
14
- * sets `dirty`. `Save` stays the only writer (F-7/F-10).
15
- */
16
- import { KIT_LIMITS, createAgentKit, duplicateAgentKit, findKit, kitCandidate, kitSlotConnections } from '../../config/model-kits.js';
17
- import { resolveActiveKit } from '../../config/kit-resolution.js';
18
- import { emptyModelProfiles } from '../../config/model-profiles.js';
19
- /** The library the transaction would save, with a read error falling back to empty. */
20
- export function draftLibrary(state) {
21
- return state.draft.profiles ?? emptyModelProfiles();
22
- }
23
- function kitsOf(state) { return draftLibrary(state).kits ?? []; }
24
- export function findKitInState(state, id) {
25
- return id ? findKit(draftLibrary(state), id) : undefined;
26
- }
27
- /**
28
- * Open the editor on an existing kit, or on a PREFILLED new one (§4.10).
29
- *
30
- * THE FIRST KIT IS NEVER A BLANK FORM (D-13): it starts from the three bindings
31
- * this machine already runs, so "create a kit" is one rename and one Save. When
32
- * no Main profile is bound the kit starts with an empty main slot and Save
33
- * refuses - the picker's own `Create profile` action is where a profile is born,
34
- * which keeps this module free of the profile-creating code path.
35
- */
36
- export function openKitDraft(state, id) {
37
- const existing = findKitInState(state, id);
38
- if (existing) {
39
- return { id: existing.id, name: existing.name, mainProfileId: existing.mainProfileId,
40
- fastProfileId: existing.fastProfileId,
41
- subagent: { ...existing.subagent }, slot: null };
42
- }
43
- const library = draftLibrary(state);
44
- const team = state.draft.baseline.team;
45
- return {
46
- id: null,
47
- name: `Kit ${kitsOf(state).length + 1}`,
48
- mainProfileId: library.mainId ?? '',
49
- // `fastId` alone is not enough: a tier that is switched OFF is off, and
50
- // prefilling its endpoint would silently turn it back on at the first Save.
51
- fastProfileId: state.draft.baseline.fast.enabled ? library.fastId ?? null : null,
52
- subagent: { model: team.model, modelProfileId: team.modelProfileId ?? null },
53
- slot: null,
54
- };
55
- }
56
- function withDraft(state, kitDraft) {
57
- return { ...state, kitDraft, error: undefined };
58
- }
59
- function saveKitDraft(state) {
60
- const kitDraft = state.kitDraft;
61
- if (!kitDraft)
62
- return state;
63
- const name = [...kitDraft.name.trim()];
64
- if (!name.length) {
65
- return withDraft(state, { ...kitDraft, error: 'Name: enter a name for this kit.',
66
- field: 'name' });
67
- }
68
- if (!kitDraft.mainProfileId) {
69
- return withDraft(state, { ...kitDraft, error: 'Main profile: choose a profile.',
70
- field: 'main' });
71
- }
72
- if (kitDraft.subagent.model === 'profile' && !kitDraft.subagent.modelProfileId) {
73
- return withDraft(state, { ...kitDraft, error: 'Subagent: choose a profile.',
74
- field: 'subagent' });
75
- }
76
- const library = draftLibrary(state);
77
- const kits = library.kits ?? [];
78
- const fields = { name: name.slice(0, KIT_LIMITS.nameMaxChars).join(''),
79
- mainProfileId: kitDraft.mainProfileId, fastProfileId: kitDraft.fastProfileId,
80
- subagent: { ...kitDraft.subagent } };
81
- let merged;
82
- if (kitDraft.id) {
83
- const existing = kits.find((kit) => kit.id === kitDraft.id);
84
- if (!existing)
85
- return { ...state, page: 'kits', kitDraft: undefined };
86
- merged = kits.map((kit) => (kit.id === kitDraft.id ? { ...existing, ...fields } : kit));
87
- }
88
- else {
89
- if (kits.length >= KIT_LIMITS.maxKits) {
90
- return withDraft(state, { ...kitDraft,
91
- error: `Maximum ${KIT_LIMITS.maxKits} kits. Delete an unused kit first.` });
92
- }
93
- merged = [...kits, createAgentKit(fields)];
94
- }
95
- return { ...state, page: 'kits', kitDraft: undefined, dirty: true,
96
- draft: { ...state.draft, profiles: { ...library, kits: merged } } };
97
- }
98
- /** Exit A: the kit's three slots become the draft's bindings (§4.2). */
99
- function applyKitToDraft(state, id, asDefault) {
100
- const library = draftLibrary(state);
101
- const kit = findKit(library, id);
102
- if (!kit)
103
- return state;
104
- const patch = kitCandidate({ library, kit, ...(asDefault ? { defaultKitId: kit.id } : {}) });
105
- return { ...state, dirty: true, page: 'kits', kitDraft: undefined,
106
- draft: { ...state.draft,
107
- profiles: patch.modelProfiles,
108
- patch: { ...state.draft.patch, team: patch.team,
109
- fast: { ...state.draft.patch.fast, ...patch.fast } },
110
- // I-13: a kit that turns the tier off must NOT project the fast role.
111
- activateRoles: [...new Set([...state.draft.activateRoles,
112
- 'main', ...(kit.fastProfileId === null ? [] : ['fast'])])],
113
- // The transaction now decides all three slots, so the session kit is done
114
- // (§4.3 row 4). Leaving it held would make the save ambiguous.
115
- sessionKit: null } };
116
- }
117
- function removeKit(state, id) {
118
- const library = draftLibrary(state);
119
- const remaining = (library.kits ?? []).filter((kit) => kit.id !== id);
120
- const released = state.draft.sessionKit?.id === id ? null : state.draft.sessionKit;
121
- return { ...state, page: 'kits', kitDraft: undefined, dirty: true,
122
- draft: { ...state.draft, sessionKit: released,
123
- profiles: { ...library, kits: remaining,
124
- defaultKitId: (library.defaultKitId ?? null) === id ? null : library.defaultKitId } } };
125
- }
126
- /** Every kit-page intent, applied to the ONE draft. */
127
- export function kitReducer(state, action) {
128
- const kitDraft = state.kitDraft;
129
- switch (action.type) {
130
- case 'kit-open':
131
- return { ...state, page: 'kit-edit', error: undefined,
132
- kitDraft: openKitDraft(state, action.id) };
133
- case 'kit-name':
134
- if (!kitDraft)
135
- return state;
136
- // Control characters are stripped at the boundary rather than refused: a
137
- // pasted name with a stray newline should become a name, not an error.
138
- return withDraft(state, { ...kitDraft,
139
- name: [...action.value.replace(/[\u0000-\u001f\u007f-\u009f]/g, ' ')]
140
- .slice(0, KIT_LIMITS.nameMaxChars).join(''), error: undefined });
141
- case 'kit-slot':
142
- return kitDraft ? { ...state, page: 'kit-slot',
143
- kitDraft: { ...kitDraft, slot: action.slot } } : state;
144
- case 'kit-main':
145
- return kitDraft ? { ...state, page: 'kit-edit',
146
- kitDraft: { ...kitDraft, mainProfileId: action.id ?? '', slot: null, error: undefined } }
147
- : state;
148
- case 'kit-fast':
149
- return kitDraft ? { ...state, page: 'kit-edit',
150
- kitDraft: { ...kitDraft, fastProfileId: action.id, slot: null, error: undefined } } : state;
151
- case 'kit-subagent':
152
- return kitDraft ? { ...state, page: 'kit-edit', kitDraft: { ...kitDraft,
153
- subagent: { model: action.model, modelProfileId: action.modelProfileId },
154
- slot: null, error: undefined } } : state;
155
- case 'kit-save': return saveKitDraft(state);
156
- case 'kit-cancel': return { ...state, page: 'kits', kitDraft: undefined, error: undefined };
157
- case 'kit-duplicate': {
158
- const library = draftLibrary(state);
159
- const original = findKit(library, action.id);
160
- if (!original || (library.kits ?? []).length >= KIT_LIMITS.maxKits)
161
- return state;
162
- return { ...state, page: 'kits', dirty: true, draft: { ...state.draft,
163
- profiles: { ...library,
164
- kits: [...(library.kits ?? []), duplicateAgentKit(original, library.kits ?? [])] } } };
165
- }
166
- case 'kit-delete': return { ...state, page: 'kit-delete',
167
- kitDraft: { ...(kitDraft ?? openKitDraft(state, action.id)), id: action.id } };
168
- case 'kit-confirm-delete': return kitDraft?.id ? removeKit(state, kitDraft.id) : state;
169
- case 'kit-apply': return applyKitToDraft(state, action.id, false);
170
- case 'kit-default': return applyKitToDraft(state, action.id, true);
171
- default: return state;
172
- }
173
- }
174
- function shortConnection(connection) {
175
- return connection ? `${connection.provider}:${connection.model}` : 'Profile missing';
176
- }
177
- function subagentSummary(connections, kit) {
178
- if (kit.subagent.model === 'main')
179
- return 'same as main';
180
- if (kit.subagent.model === 'fast')
181
- return 'fast tier';
182
- return connections.subagent.name ? `profile ${connections.subagent.name}` : 'Profile missing';
183
- }
184
- /** Rows in library order, each with the markers the picker also uses (§4.5). */
185
- export function kitManagerRows(state) {
186
- const library = draftLibrary(state);
187
- return (library.kits ?? []).map((kit) => {
188
- const connections = kitSlotConnections(library, kit);
189
- const isDefault = (library.defaultKitId ?? null) === kit.id;
190
- const inUse = state.draft.sessionKit?.id === kit.id;
191
- const markers = [isDefault ? '[Default]' : '', inUse ? '[In use]' : '']
192
- .filter(Boolean).join(' ');
193
- const fast = kit.fastProfileId === null ? 'off' : shortConnection(connections.fast);
194
- return {
195
- id: kit.id,
196
- label: `${markers ? `${markers} ` : ''}${kit.name}`,
197
- summary: [shortConnection(connections.main), fast, subagentSummary(connections, kit)]
198
- .join(' | '),
199
- isDefault,
200
- inUse,
201
- };
202
- });
203
- }
204
- /**
205
- * Whether the kit this transaction opened on had already drifted (§4.8).
206
- *
207
- * READ FROM `liveBaseline`, i.e. the config the screen was opened over, because
208
- * drift is a fact about the SESSION - the draft cannot change a connection
209
- * without releasing the slot, so there is nothing newer to look at.
210
- */
211
- function liveDrift(state, session) {
212
- // THE DRAFT'S `held`, NOT `liveBaseline.sessionKit`: the transaction may already
213
- // have given slots back, and the row has to describe THIS transaction.
214
- const live = resolveActiveKit({ ...state.draft.liveBaseline, sessionKit: session });
215
- return live.source === 'session' && live.modified;
216
- }
217
- /**
218
- * The `Kit pack` root row's five states (§4.5 table, AC-27).
219
- *
220
- * READ FROM THE DRAFT, not from the live config: the row sits inside a
221
- * transaction, and showing the saved state under a pending selection is how a
222
- * settings screen lies to the user about what `Save` is going to do.
223
- */
224
- export function kitPackRow(state) {
225
- const library = draftLibrary(state);
226
- const kits = library.kits ?? [];
227
- const session = state.draft.sessionKit;
228
- const sessionKit = session ? findKit(library, session.id) : undefined;
229
- const defaultKit = findKit(library, library.defaultKitId ?? null);
230
- const defaultClause = defaultKit ? ` (default: ${defaultKit.name})` : '';
231
- if (sessionKit && session) {
232
- const partial = session.held.length < 3;
233
- const held = partial ? `: ${session.held.join('+')}` : '';
234
- // THE SAME `~` THE CHIP SHOWS (D-12): dropping a slot is only ONE way to
235
- // drift. The other is a connection that `/model`, `/fast` or the settings
236
- // `Subagent model` row rewrote after the kit was applied, and a row that
237
- // stayed silent about that
238
- // would disagree with the status bar about the same session.
239
- const drift = liveDrift(state, session) ? '~' : '';
240
- return `${sessionKit.name} [session${held}]${drift}${defaultClause}`;
241
- }
242
- if (defaultKit)
243
- return `${defaultKit.name} [default]`;
244
- return kits.length ? 'Current setup' : 'Current setup (no kit yet)';
245
- }
246
- /**
247
- * The held slots' EFFECTIVE values (RV-P0-2).
248
- *
249
- * WITHOUT THIS the root page shows the file's bindings while the header shows the
250
- * kit's, and the only conclusion available to the user is that one of them is
251
- * broken. `Enter` on any of these rows writes an explicit choice, which releases
252
- * that slot - so "what you see is what you change" stays true.
253
- */
254
- export function heldSlots(state) {
255
- const session = state.draft.sessionKit;
256
- const kit = session ? findKitInState(state, session.id) : undefined;
257
- if (!session || !kit) {
258
- return { kitName: null, held: [], mainId: null, fastId: null, subagent: null };
259
- }
260
- const held = session.held;
261
- return {
262
- kitName: kit.name,
263
- held,
264
- mainId: held.includes('main') ? kit.mainProfileId : null,
265
- fastId: held.includes('fast') ? kit.fastProfileId : null,
266
- subagent: held.includes('subagent') ? { ...kit.subagent } : null,
267
- };
268
- }
@@ -1,128 +0,0 @@
1
- /**
2
- * The probe's VIEW MODEL (model-profile-connection-test §3.2 / §6.3).
3
- *
4
- * Pure functions only: the editor's row list, the result sentences, the candidate
5
- * ordering and the two number formatters. Rendering and input both read
6
- * `editorRows()`, so "which row am I on" has exactly one definition and inserting a
7
- * row can no longer shift `apiKey` off index 6 by arithmetic.
8
- *
9
- * ASCII ONLY (`ui/` is inside `glyphs.test.ts::inScope`).
10
- */
11
- import type { ProbeOutcome, ProbeTarget, ModelCandidate, DiscoveryOutcome, ModelProbe } from '../../agent/model-probe.js';
12
- import type { ProfileEditorDraft } from './model-profile-state.js';
13
- export declare const EDITOR_FIELDS: readonly ["name", "provider", "model", "contextWindow", "baseUrl", "credentialMode", "apiKey"];
14
- export type EditorField = typeof EDITOR_FIELDS[number];
15
- export declare const EDITOR_LABELS: string[];
16
- export type EditorAction = 'retain' | 'test' | 'discover' | 'apply' | 'cancel';
17
- export type EditorRow = {
18
- kind: 'field';
19
- field: EditorField;
20
- label: string;
21
- value: string;
22
- } | {
23
- kind: 'action';
24
- action: EditorAction;
25
- label: string;
26
- value: string;
27
- } | {
28
- kind: 'note';
29
- label: string;
30
- muted: true;
31
- } | {
32
- kind: 'result';
33
- label: string;
34
- tone: 'ok' | 'fail' | 'muted';
35
- };
36
- /** What the current target's probe looks like to a renderer (editor surface). */
37
- export type ProbeView = {
38
- kind: 'idle';
39
- reason: 'no_result' | 'no_key' | 'unavailable';
40
- } | {
41
- kind: 'testing';
42
- } | {
43
- kind: 'result';
44
- outcome: ProbeOutcome;
45
- };
46
- /** The list page's own surface: a discovery is a page, not a result row. */
47
- export type DiscoveryView = {
48
- kind: 'idle';
49
- } | {
50
- kind: 'discovering';
51
- } | {
52
- kind: 'discovery';
53
- outcome: DiscoveryOutcome;
54
- };
55
- /**
56
- * The hook's two INDEPENDENT slots, declared here so this module stays React-free.
57
- *
58
- * They are separate on purpose: a test outcome and a discovered list describe the
59
- * same connection but answer different questions, and a single slot would make
60
- * "run a test, then open the list, then come back" lose the verdict (AC-27).
61
- */
62
- export type ProbeTestPhase = {
63
- phase: 'idle';
64
- } | {
65
- phase: 'testing';
66
- targetId: string;
67
- } | {
68
- phase: 'tested';
69
- outcome: ProbeOutcome;
70
- };
71
- export type ProbeDiscoveryPhase = {
72
- phase: 'idle';
73
- } | {
74
- phase: 'discovering';
75
- connectionId: string;
76
- } | {
77
- phase: 'discovered';
78
- outcome: DiscoveryOutcome;
79
- };
80
- export interface ProbeViews {
81
- test: ProbeView;
82
- discovery: DiscoveryView;
83
- }
84
- /** Whether pressing a probe action can produce anything at all (AC-12 / AC-15). */
85
- export declare function canProbe(view: ProbeView): boolean;
86
- /**
87
- * Filter both slots down to what the CURRENT target may honestly claim (§4.6).
88
- *
89
- * A `OK 812 ms` that describes a model the user has since edited is worse than no
90
- * result at all, so a fingerprint mismatch degrades to `idle` - no effect, no
91
- * reset call, no cross-page synchronisation.
92
- */
93
- export declare function visibleProbeViews(test: ProbeTestPhase, discovery: ProbeDiscoveryPhase, target: ProbeTarget, probe?: ModelProbe): ProbeViews;
94
- /** The exact target a draft would use - the resolved key included (§4.2.1). */
95
- export declare function editorProbeTarget(editor: ProfileEditorDraft, apiKeys: Record<string, string | undefined>): ProbeTarget;
96
- /** `812 ms` / `1.4 s` - one decimal only once a second has passed. */
97
- export declare function latencyLabel(ms: number): string;
98
- /** `128K` / `1M` / `auto` - `auto` when the vendor did not report a window. */
99
- export declare function windowLabel(window?: number): string;
100
- /**
101
- * Clean and order a discovered list: one row per id, and the model the draft
102
- * already names first, so "which one am I on" is answerable without scrolling.
103
- */
104
- export declare function rankCandidates(models: readonly ModelCandidate[], currentModel: string): ModelCandidate[];
105
- /** At most TWO rows: the verdict, then what to do about it (§3.1 / D-11). */
106
- export declare function probeLines(view: ProbeView, target: ProbeTarget): string[];
107
- /** Colour for the result rows; the status WORDS carry the meaning without colour. */
108
- export declare function probeTone(view: ProbeView): 'ok' | 'fail' | 'muted';
109
- export interface EditorRowsInput {
110
- editor: ProfileEditorDraft;
111
- retain: boolean;
112
- probe: ProbeView;
113
- target: ProbeTarget;
114
- /** The `Window applies ...` honesty line for a Fast-only entry (§3.2 / RV-P1-7). */
115
- fastOnly?: boolean;
116
- }
117
- /** THE single source of the editor's rows - fields, actions, notes AND results. */
118
- export declare function editorRows(input: EditorRowsInput): EditorRow[];
119
- /** Rows the cursor can land on; index arithmetic now derives from the row model. */
120
- export declare function isFocusable(row: EditorRow): boolean;
121
- /** The focusable rows, in order - the index space `useProfileScroll` follows. */
122
- export declare function focusableRows(rows: readonly EditorRow[]): EditorRow[];
123
- /** Result rows currently on screen, so the viewport can be widened to include them. */
124
- export declare function resultRowCount(rows: readonly EditorRow[]): number;
125
- /** Longest id shown in one list row, inside the 40-column budget. */
126
- export declare const LIST_ID_CHARS = 28;
127
- /** A model's one-line name, bounded by `maxNameChars`. */
128
- export declare function clipName(name: string): string;