@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,330 +0,0 @@
1
- /**
2
- * TEAM_LIMITS — the single authority on every bound this subsystem enforces
3
- * (team-subagents §3.5 / §3.6).
4
- *
5
- * ASCII ONLY: `src/team/**` is inside the glyph scanner's scope
6
- * (`glyphs.test.ts`), so no literal in this tree may hold a non-ASCII byte.
7
- *
8
- * TWO KINDS OF NUMBER LIVE HERE AND THEY ARE NOT INTERCHANGEABLE.
9
- *
10
- * - The `TEAM_LIMITS` entries below are STRUCTURAL: they describe what the
11
- * report format, the message channel and the panel can physically carry, and
12
- * a user has no business tuning them. They are constants.
13
- * - The six `team.*` config keys (`config/schema.ts`) are POLICY: how wide to
14
- * fan out, how long to wait. They are clamped, persisted and user-facing.
15
- *
16
- * `hardMaxSubagents` sits on the structural side ON PURPOSE even though it
17
- * bounds a config key: the requirement caps the fan-out at 10 (R-g), so a
18
- * hand-edited `config.json` must not be able to raise it. It is applied twice —
19
- * once in `clampTeamConfig` and once in `normalizeSubagentSpecs` — because a
20
- * clamp that only runs on the read path leaves a bad value on disk.
21
- *
22
- * BYTES, NOT CHARACTERS, for every report budget (D-8 / I-9). `ToolExecutor`
23
- * truncates combined tool text at 100 000 BYTES; a 24 000-character CJK report
24
- * is 72 000 bytes, so a character-denominated cap would let the executor chop
25
- * the report mid-section and take the failure count with it.
26
- */
27
- /**
28
- * The two factors of the dispatch-total look budget (R-P1-6), hoisted only so
29
- * `TEAM_LIMITS.overseerMaxLooksPerDispatch` can state their product without a
30
- * second copy of either number. Not for export: the authority is TEAM_LIMITS.
31
- */
32
- const HARD_MAX_SUBAGENTS = 10;
33
- const OVERSEER_MAX_LOOKS_PER_CHILD = 12;
34
- export const TEAM_LIMITS = {
35
- /**
36
- * The requirement's ceiling (R-g). Enforced in `clampTeamConfig` AND in
37
- * `normalizeSubagentSpecs`, so neither a hand-edited file nor a model asking
38
- * for thirty can exceed it.
39
- *
40
- * 10 IS THE CEILING, 8 IS THE DEFAULT (`DEFAULT_TEAM_CONFIG`): different
41
- * numbers on purpose (subagent-fanout D-1 / D-2). The default is a policy
42
- * choice the user may move in either direction from the settings screen; this
43
- * bound is what no user may move.
44
- */
45
- hardMaxSubagents: HARD_MAX_SUBAGENTS,
46
- // --- Spec normalization (§3.3.1) ---
47
- /** `SubagentSpec.description`, clamped (never rejected). */
48
- descriptionChars: 60,
49
- /** `SubagentSpec.prompt`, clamped. The child cannot see the conversation, so
50
- * this has to be generous enough to carry a whole brief. */
51
- promptChars: 8000,
52
- /**
53
- * The brief `/subagent <brief>` copies into its forced-directive turn
54
- * (subagent-fanout 3.5.4 / R-10). CHARACTERS, not bytes, because this bound
55
- * feeds a user-visible truncation marker rather than a wire budget: past it
56
- * the directive says `[brief truncated]` so a clipped instruction is never
57
- * mistaken for a complete one.
58
- */
59
- forcedBriefChars: 4000,
60
- /**
61
- * Parts `/subagent --parts a,b,c` may name BEFORE `maxSubagents` narrows them
62
- * (subagent-fanout 3.5.2 rule 3). The second, smaller ceiling is the policy
63
- * number and belongs to the command body; this one only bounds what one
64
- * argument can carry.
65
- */
66
- forcedPartsMax: 8,
67
- /** Slugified `SubagentSpec.label`. Long enough to be meaningful in the panel,
68
- * short enough that five of them fit one row of an 80-column terminal. */
69
- labelChars: 12,
70
- // --- Report budgeting (§3.7). BYTES. ---
71
- reportMaxBytes: 48_000,
72
- summaryMaxBytes: 6_000,
73
- /**
74
- * Floor a summary is trimmed TO, never below. A section trimmed to nothing is
75
- * indistinguishable from a child that reported nothing, which is exactly the
76
- * distinction the report exists to preserve.
77
- */
78
- summaryFloorBytes: 400,
79
- /** Deduped `write_file` / `edit_file` paths recorded per child (§3.4). */
80
- filesTouchedMax: 30,
81
- // --- The team bus (§3.6). The "bu neng tai pin fan" clause, in numbers. ---
82
- /** `team_send` calls one child may spend on a whole dispatch. */
83
- messagesPerAgent: 6,
84
- /** `team_send` calls the whole dispatch may spend. */
85
- messagesPerDispatch: 24,
86
- /** Minimum gap between one child's sends. */
87
- minSendIntervalMs: 15_000,
88
- /** Quota units a `to: "all"` broadcast costs. */
89
- broadcastCost: 2,
90
- subjectChars: 80,
91
- bodyChars: 800,
92
- /** `team_wait` timeout clamp, in seconds. */
93
- waitMinSeconds: 5,
94
- waitMaxSeconds: 120,
95
- waitDefaultSeconds: 30,
96
- /**
97
- * `agent_update` coalescing window (§5.2). Five children streaming tokens must
98
- * not push five React renders per token; phase transitions always pass.
99
- */
100
- agentUpdateThrottleMs: 120,
101
- /** Agent rows the live panel renders before collapsing to `+N more` (§6.1). */
102
- panelMaxRows: 5,
103
- /** Below this many terminal rows the panel collapses to its header line. */
104
- panelCollapseRows: 20,
105
- /** Below this many columns the status-bar readout degrades to `[3]` (D-20). */
106
- statusCompactCols: 100,
107
- // --- Live activity (team-live-activity F-1) ---
108
- /**
109
- * STORAGE ceiling for a prose activity tail (P0-1). The most a `SubagentRun`
110
- * may carry, NOT the width of the column: `TeamPanel.activityBudget(cols)`
111
- * derives the display budget from the terminal and is always <= this.
112
- */
113
- activityChars: 64,
114
- /**
115
- * Floor under `activityBudget`. Below roughly 46 columns the roster has bigger
116
- * problems than an elided activity line, and a column narrower than this shows
117
- * nothing but an ellipsis - at which point the phase word is more informative.
118
- */
119
- activityMinChars: 12,
120
- /** Rolling text buffer kept per child. The only per-token allocation. */
121
- activityTailChars: 160,
122
- /** Per picked tool argument (P1-4). A path or a command longer than this is
123
- * elided on capture, so a run can never carry more than a few hundred bytes
124
- * of argument however large the real call was. */
125
- activityArgChars: 120,
126
- /** At or above this many columns the activity line carries a full path or
127
- * command; below it, a basename or a program name. Mirrors `statusCompactCols`.
128
- * This chooses WHICH FACT to show; `activityBudget` chooses how much of it. */
129
- activityWideCols: 100,
130
- /**
131
- * Below this many columns the roster's activity cell gives way ENTIRELY
132
- * (tui-subagent-panel §4.2.2).
133
- *
134
- * STRUCTURAL, like everything else in this block: twelve characters of prose in
135
- * a 40-column terminal push the description column below its own twelve-column
136
- * floor, and "who is doing what" outranks "what they are writing right now" when
137
- * there is room for only one. That is why the cell returns 0 rather than
138
- * `activityMinChars` below this width.
139
- */
140
- activityDropCols: 56,
141
- // --- The Agents board (tui-subagent-panel §4.4 / §4.5) ---
142
- /**
143
- * Events kept per child in `SubagentRun.timeline` (§4.5.3). Twenty-four covers
144
- * a typical dispatch's complete tool sequence; ten children x 24 x 120 chars is
145
- * about 29 KB at peak, and the ring is EPHEMERAL - it never reaches a file.
146
- */
147
- timelineEntries: 24,
148
- /** Display clamp on one timeline line; the same order as `activityArgChars`. */
149
- timelineTextChars: 120,
150
- /**
151
- * Row ceiling of the Agents board's projection. The overlay scrolls, so this is
152
- * a memory bound rather than a fit: one row per fact and at most ten children
153
- * plus one detail section, which no healthy dispatch can reach.
154
- */
155
- boardMaxRows: 240,
156
- // --- Cold-start retry (team-live-activity F-4) ---
157
- /** Retries of a child that produced NOTHING. One, and not configurable: a
158
- * second retry doubles the worst-case latency of a failing dispatch and buys
159
- * nothing a re-dispatch by the lead would not buy better. */
160
- maxColdStartRetries: 1,
161
- retryBackoffMs: 2_000,
162
- // --- The dispatch supervisor (team-overseer / subagent-overseer-v2) ---
163
- /**
164
- * Wall-clock budget of everything one SINGLE inspection may carry (the
165
- * silence-triggered path). The digest holds run facts, the supervisor's own
166
- * memory and the tail of the child's live history; unbounded, one look at a
167
- * child that read five big files would make the "cheap" supervision call
168
- * cost more than the child (the argument FAST_LIMITS.digestMaxChars makes,
169
- * one level up).
170
- */
171
- overseerDigestBytes: 8_000,
172
- /** Clamp on a `nudge` guidance text. Advice, not a second brief. */
173
- overseerGuidanceChars: 1_200,
174
- /** Clamp on the decision `reason` recorded in the report. */
175
- overseerReasonChars: 200,
176
- /**
177
- * Per-child slice of a BATCH digest (D-3 / R-P2-5). 6.7x tighter than the
178
- * single-inspection budget above: a batch carries up to ten children in one
179
- * call, and memory plus the history tail are the first to give way (the
180
- * facts-first assembly order already puts them last).
181
- */
182
- overseerPerChildDigestBytes: 1_200,
183
- /** Whole-batch digest ceiling (D-3): 10 children x 1 200 B fits exactly. */
184
- overseerBatchDigestBytes: 12_000,
185
- /**
186
- * Output budget of ONE batch inspection (R-P0-1). The single-inspection path
187
- * keeps `FAST_LIMITS.reviewOutputTokens` (512); a batch must return up to
188
- * ten decision objects, and 512 tokens cannot physically hold ten x
189
- * (reason <= 200 + guidance <= 1200). A truncated batch reply fails
190
- * "first `[` to last `]`" parsing and degrades to all-wait - exactly the
191
- * failure this separate, larger budget exists to prevent.
192
- */
193
- overseerBatchOutputTokens: 2_048,
194
- /** Tighter `reason` clamp inside the batch protocol (R-P0-1). */
195
- overseerBatchReasonChars: 80,
196
- /** Tighter `guidance` clamp inside the batch protocol (R-P0-1). */
197
- overseerBatchGuidanceChars: 400,
198
- /**
199
- * LOOKS per child per dispatch (D-5). A look is cost, not mutation: every
200
- * inspection of a child - silence-triggered, cadence tick or post-mortem -
201
- * spends one, including a call that failed softly. Twelve with the cadence
202
- * ladder covers hours of healthy slow work; past the budget the supervisor
203
- * says so once (`trigger: 'quiet'`) and stops waking that child up.
204
- */
205
- overseerMaxLooksPerChild: 12,
206
- /**
207
- * LOOKS per dispatch, the fool-proof total (R-P1-6):
208
- * hardMaxSubagents x overseerMaxLooksPerChild = 120. A mathematical upper
209
- * bound, not a tuning knob - the per-child budget always binds first; this
210
- * one exists so a bug cannot loop calls forever. When it trips, the whole
211
- * MonitorLoop stops with one aggregate notice.
212
- */
213
- overseerMaxLooksPerDispatch: HARD_MAX_SUBAGENTS * OVERSEER_MAX_LOOKS_PER_CHILD,
214
- /**
215
- * NUDGES per child per dispatch (D-5). Advice is cheap but not free: a
216
- * supervisor that steers the same child forever is one that never decided.
217
- */
218
- overseerMaxNudgesPerChild: 3,
219
- /**
220
- * Rebuilds PER CHILD per dispatch. One: a replacement that also stalls dies
221
- * on its own watchdog rather than ping-ponging fresh children at a task the
222
- * supervisor already failed to rescue once.
223
- */
224
- overseerMaxReplacementsPerChild: 1,
225
- /**
226
- * Abandons PER CHILD per dispatch (D-5). One, so a supervisor that has
227
- * already given up on a brief cannot keep re-killing bodies of it.
228
- */
229
- overseerMaxAbandonsPerChild: 1,
230
- /**
231
- * Cadence ladder growth factor (D-2). Each no-action inspection schedules
232
- * the next `previous * ratio` out, so a healthy slow child is looked at
233
- * logarithmically in its run time rather than every five minutes.
234
- */
235
- overseerCadenceRatio: 1.6,
236
- /**
237
- * First cadence check when neither `team.overseerIntervalMs` nor
238
- * `team.subagentTimeoutMs` names one (the shipped defaults): the supervisor
239
- * still looks even when no ceiling was configured.
240
- */
241
- overseerDefaultCheckMs: 300_000,
242
- /** Clamp on a ladder step / model-chosen `nextCheckMs`, lower bound. */
243
- overseerNextCheckMinMs: 60_000,
244
- /** Clamp on a ladder step / model-chosen `nextCheckMs`, upper bound. */
245
- overseerNextCheckMaxMs: 900_000,
246
- /**
247
- * A child's OWN idle watchdog, multiplied by this while the supervisor is
248
- * active, so the soft silence inspection at `idleTimeoutMs` always precedes
249
- * the hard abort. The watchdog stays as the backstop for a child that
250
- * wedges past every inspection.
251
- */
252
- overseerWatchdogFactor: 4,
253
- };
254
- /**
255
- * The pseudo-label the runtime's AGGREGATE supervisor notices travel under
256
- * (subagent-overseer-v2 D-5 / R-P1-6): the dispatch-total look-budget notice
257
- * is one fact about the whole roster, not a row any child owns. RESERVED at
258
- * normalization (`normalizeSubagentSpecs` seeds `dedupeLabel` with it), so a
259
- * spec asking for the bare label `team` is handed `team-2` instead - the
260
- * report ledger and the exec stream can then never attribute an aggregate
261
- * notice to a real child, or swallow that child's own quiet note.
262
- */
263
- export const TEAM_AGGREGATE_LABEL = 'team';
264
- /**
265
- * The two comm tools, which are POLICY-EXEMPT inside a child (§3.11).
266
- *
267
- * They are not in the lead's registered tool list, so evaluating them against
268
- * the lead's `allowed-tools` ceiling would refuse them and dead-end the channel
269
- * — the same dead end `SKILL_TOOL_FLOOR` exists to prevent one level up.
270
- *
271
- * Deliberately NOT added to `HOST_TOOL_NAMES` (P2-5). That constant answers
272
- * "can a skill's `allowed-tools` declaration ever take effect?", and these two
273
- * are never registered on a lead — so a skill naming them genuinely IS
274
- * unenforceable, and `aragon skills doctor` reporting it as such is correct
275
- * rather than a gap.
276
- */
277
- export const TEAM_SUBAGENT_TOOL_NAMES = new Set(['team_send', 'team_wait']);
278
- /**
279
- * Bumped whenever the wording of either prompt block changes, so a behaviour
280
- * report can be tied to a block revision with one grep.
281
- */
282
- export const TEAM_BLOCK_VERSION = 'v3-2026-10';
283
- // ---------------------------------------------------------------------------
284
- // Forced team mode (`/team <brief>`, team-command-forced-dispatch §6.5).
285
- //
286
- // FOUR STRUCTURAL NUMBERS, here rather than in the modules that read them for
287
- // the reason this file's header records: none of them is a user preference, and
288
- // a `config.json` key for any of them would make "the model ignored the
289
- // instruction" tunable by the person the instruction exists to protect.
290
- // ---------------------------------------------------------------------------
291
- /**
292
- * The version string on `<forced_team_mode>`'s first line.
293
- *
294
- * The block's words are a CONTRACT with the model, so a behaviour report ("it
295
- * still did the work itself") has to be tieable to one revision. Kept beside
296
- * `TEAM_BLOCK_VERSION` rather than reusing it: the two blocks answer different
297
- * questions ("can dispatch" versus "must dispatch") and a shared number would
298
- * name neither revision.
299
- */
300
- export const FORCED_TEAM_BLOCK_VERSION = 'v1-2026-10';
301
- /**
302
- * Length ceiling of the `<forced_team_mode>` text.
303
- *
304
- * THE FIRST BLOCK LENGTH IN THIS SUBSYSTEM THAT A TEST ASSERTS: the `<team_mode>`
305
- * block's 1200 is a comment in `team/prompt.ts`, and unifying the two is a
306
- * separate small refactor (deliberately out of scope here). Looser than 1200
307
- * because this block is only ever paid for while the session is ARMED, and it
308
- * carries three layers of instruction rather than one.
309
- */
310
- export const FORCED_TEAM_BLOCK_MAX_CHARS = 1400;
311
- /**
312
- * Fallback nudges per user turn. ONE, and not configurable.
313
- *
314
- * The gate exists because the first two layers (the directive and the prompt
315
- * block) both depend on the model cooperating. A second nudge would double the
316
- * worst case of a model that is simply not going to dispatch - at N children per
317
- * attempt - and D-8's whole argument is that the mechanical layer must be
318
- * bounded by something other than the model's willingness.
319
- */
320
- export const FORCED_NUDGE_LIMIT = 1;
321
- /**
322
- * Grace window before the fallback nudge fires, in milliseconds.
323
- *
324
- * SAME ORDER AS THE TODO FOLLOW-THROUGH GRACE, for a structural reason rather
325
- * than a stylistic one: both continuations share ONE `followTimer` in `App`
326
- * (I-9), so "at most one armed continuation" is only explicable while the two
327
- * numbers stay in the same order of magnitude. **Changing todo's grace means
328
- * re-reading this constant.**
329
- */
330
- export const FORCED_NUDGE_GRACE_MS = 3000;
@@ -1,104 +0,0 @@
1
- /**
2
- * `resolveSubagentModel` — THE single authority on which model a team child
3
- * runs (subagent-model-and-question-controls §3.3).
4
- *
5
- * ASCII ONLY: `src/team/**` is inside the glyph scanner's scope.
6
- *
7
- * EVERY CONSUMER READS THE CHILD'S MODEL THROUGH THIS FUNCTION AND NOWHERE
8
- * ELSE — `createSubagent`, the `task` report header and the settings root row —
9
- * following the `resolveFastTier` precedent one directory over: three call
10
- * sites each recomputing "which model do children run on?" from raw
11
- * config keys is exactly how the report ends up naming a model the children
12
- * silently fell back from.
13
- *
14
- * IT IS RE-RUN ON EVERY DISPATCH AND EVERY RENDER, NOT ONCE (rule 8 / RV-3 of
15
- * the fast tier, inherited here): `team.model`, the fast tier and the profile
16
- * library are all LIVE keys a settings save (the `Subagent model` row), `/fast
17
- * off` or a kit can rewrite mid-session. A resolution captured at construction would be a
18
- * resolution describing a session that no longer exists.
19
- *
20
- * A CHILD IS NEVER LEFT WITHOUT A MODEL (D-4). Every failure mode — fast tier
21
- * off, profile deleted, profile key missing — degrades to the MAIN connection
22
- * with a `fallbackReason`, so a dispatch cannot fail because its model setting
23
- * went stale. The reason is disclosed, never swallowed: the report header and
24
- * the settings summary line both render it.
25
- */
26
- import type { ModelCost, ModelRef, ThinkingLevel, TokenUsage } from '@aragon-agent/core';
27
- import type { ModelProfile, ModelRole } from '../config/model-profiles.js';
28
- import type { CliConfig } from '../config/schema.js';
29
- /** Which model children run on. `main` is the default and the historical behavior. */
30
- export type SubagentModelMode = 'main' | 'fast' | 'profile';
31
- /** Why a non-main request degraded to the main model (D-4 disclosure). */
32
- export type SubagentFallbackReason =
33
- /** `team.model='fast'` but `resolveFastTier` is not ok (off, unconfigured, no key). */
34
- 'fast_unavailable'
35
- /** `modelProfileId` is absent from the library (deleted, or never existed). */
36
- | 'profile_missing'
37
- /** The entry exists but carries no key of its own and the shared layer has none. */
38
- | 'profile_no_key';
39
- /** In-memory resolution; recomputed per dispatch/render, never persisted (§6.3). */
40
- export interface SubagentModelResolution {
41
- /** The user's requested mode, verbatim from config (UI highlight reads this). */
42
- mode: SubagentModelMode;
43
- /** The mode actually in effect; `'main'` whenever a fallback fired. */
44
- effective: SubagentModelMode;
45
- /** The connection children will use. On fallback, exactly the main connection. */
46
- ref: ModelRef;
47
- /** main/profile take `config.thinkingLevel`; fast takes `config.fast.thinkingLevel`. */
48
- thinkingLevel: ThinkingLevel;
49
- /** The role controller key resolution uses: main/profile `'main'`, fast `'fast'`. */
50
- keyRole: ModelRole;
51
- /** The profile entry a `profile` request hit, dedicated key included; else null. */
52
- profile: ModelProfile | null;
53
- /** Present only when `effective !== mode`. */
54
- fallbackReason?: SubagentFallbackReason;
55
- }
56
- /** What `priceTeamUsage` needs from the controller: the lead's table and the lookup. */
57
- export interface TeamPriceBook {
58
- /** The lead's own price table (`main` mode prices at exactly this). */
59
- mainCost: ModelCost | undefined;
60
- isPriced: (ref: ModelRef) => boolean;
61
- costFor: (ref: ModelRef) => ModelCost | undefined;
62
- }
63
- /**
64
- * USD for one child `usage` event, at the model the children ACTUALLY ran.
65
- *
66
- * The status bar and the dispatch report must agree, so both price through the same
67
- * resolution: under the default `main` mode this is the lead's table (byte parity),
68
- * otherwise the fast / profile model's. A model no table prices contributes ZERO rather
69
- * than a fabricated figure (C-11 / RV-4), where the report says `pricing unknown`.
70
- */
71
- export declare function priceTeamUsage(resolution: SubagentModelResolution, usage: TokenUsage, book: TeamPriceBook): number;
72
- /** The `AgentController.hasApiKey` shape, injected so there is one key resolver. */
73
- export type HasApiKey = (providerId: string, role?: ModelRole) => boolean;
74
- /** The lead-layer key resolver `resolveSubagentKey` falls back to. */
75
- export type SharedKeyResolver = (providerId: string, role: ModelRole) => string | undefined;
76
- /**
77
- * Resolve the model every child of the NEXT dispatch will run on.
78
- *
79
- * Pure, synchronous, no IO — testable as a matrix over config fixtures.
80
- *
81
- * @param config The live effective config. Read fresh; never snapshot it.
82
- * @param hasKey `AgentController.hasApiKey`, which already resolves the
83
- * config-file key, the provider environment variable and the one-shot
84
- * `--api-key` override. Injected rather than reimplemented for the reason
85
- * `resolveFastTier` records: a second key resolver is a second answer to
86
- * "why does it say no key?".
87
- */
88
- export declare function resolveSubagentModel(config: CliConfig, hasKey: HasApiKey): SubagentModelResolution;
89
- /**
90
- * The key a CHILD resolves for a provider, profile-aware (§3.3 / I-4).
91
- *
92
- * A profile's dedicated key is visible ONLY here: it never reaches env,
93
- * `config.apiKeys` or a log line. While the resolution's profile is bound and
94
- * the provider matches it, the entry key takes priority over the shared layer;
95
- * every other provider (and every non-profile mode) resolves through the
96
- * lead's own resolver at `resolution.keyRole` — which is what keeps a `fast`
97
- * child entitled to the fast-role key and a `main` child to the main one.
98
- *
99
- * @param config The live config (carried for parity with the resolver pair).
100
- * @param resolution A fresh `resolveSubagentModel` output.
101
- * @param providerId The provider the child needs a key for.
102
- * @param shared The lead-layer resolver (`controller.resolveKey`).
103
- */
104
- export declare function resolveSubagentKey(config: CliConfig, resolution: SubagentModelResolution, providerId: string, shared: SharedKeyResolver): string | undefined;
@@ -1,150 +0,0 @@
1
- /**
2
- * `resolveSubagentModel` — THE single authority on which model a team child
3
- * runs (subagent-model-and-question-controls §3.3).
4
- *
5
- * ASCII ONLY: `src/team/**` is inside the glyph scanner's scope.
6
- *
7
- * EVERY CONSUMER READS THE CHILD'S MODEL THROUGH THIS FUNCTION AND NOWHERE
8
- * ELSE — `createSubagent`, the `task` report header and the settings root row —
9
- * following the `resolveFastTier` precedent one directory over: three call
10
- * sites each recomputing "which model do children run on?" from raw
11
- * config keys is exactly how the report ends up naming a model the children
12
- * silently fell back from.
13
- *
14
- * IT IS RE-RUN ON EVERY DISPATCH AND EVERY RENDER, NOT ONCE (rule 8 / RV-3 of
15
- * the fast tier, inherited here): `team.model`, the fast tier and the profile
16
- * library are all LIVE keys a settings save (the `Subagent model` row), `/fast
17
- * off` or a kit can rewrite mid-session. A resolution captured at construction would be a
18
- * resolution describing a session that no longer exists.
19
- *
20
- * A CHILD IS NEVER LEFT WITHOUT A MODEL (D-4). Every failure mode — fast tier
21
- * off, profile deleted, profile key missing — degrades to the MAIN connection
22
- * with a `fallbackReason`, so a dispatch cannot fail because its model setting
23
- * went stale. The reason is disclosed, never swallowed: the report header and
24
- * the settings summary line both render it.
25
- */
26
- import { computeCost } from '../agent/usage.js';
27
- import { resolveFastTier } from '../fast/resolve.js';
28
- /**
29
- * USD for one child `usage` event, at the model the children ACTUALLY ran.
30
- *
31
- * The status bar and the dispatch report must agree, so both price through the same
32
- * resolution: under the default `main` mode this is the lead's table (byte parity),
33
- * otherwise the fast / profile model's. A model no table prices contributes ZERO rather
34
- * than a fabricated figure (C-11 / RV-4), where the report says `pricing unknown`.
35
- */
36
- export function priceTeamUsage(resolution, usage, book) {
37
- if (resolution.effective === 'main')
38
- return computeCost(usage, book.mainCost);
39
- return book.isPriced(resolution.ref) ? computeCost(usage, book.costFor(resolution.ref)) : 0;
40
- }
41
- function mainRef(config) {
42
- return {
43
- providerId: config.provider,
44
- modelId: config.model,
45
- ...(config.baseUrl ? { baseUrl: config.baseUrl } : {}),
46
- };
47
- }
48
- function fallbackToMain(config, mode, fallbackReason) {
49
- // THE ALWAYS-USABLE ANSWER (D-4): whatever the user asked for that could not
50
- // resolve, the caller still gets a working connection — the same provider,
51
- // model, base URL and thinking level the lead itself runs on.
52
- return {
53
- mode,
54
- effective: 'main',
55
- ref: mainRef(config),
56
- thinkingLevel: config.thinkingLevel,
57
- keyRole: 'main',
58
- profile: null,
59
- fallbackReason,
60
- };
61
- }
62
- /**
63
- * Resolve the model every child of the NEXT dispatch will run on.
64
- *
65
- * Pure, synchronous, no IO — testable as a matrix over config fixtures.
66
- *
67
- * @param config The live effective config. Read fresh; never snapshot it.
68
- * @param hasKey `AgentController.hasApiKey`, which already resolves the
69
- * config-file key, the provider environment variable and the one-shot
70
- * `--api-key` override. Injected rather than reimplemented for the reason
71
- * `resolveFastTier` records: a second key resolver is a second answer to
72
- * "why does it say no key?".
73
- */
74
- export function resolveSubagentModel(config, hasKey) {
75
- // `clampTeamConfig` guarantees the enum on every read and write path, so the
76
- // default `'main'` here is belt-and-braces rather than a real branch.
77
- const mode = config.team.model ?? 'main';
78
- if (mode === 'fast') {
79
- const tier = resolveFastTier(config, hasKey);
80
- if (tier.ok) {
81
- return {
82
- mode,
83
- effective: 'fast',
84
- ref: tier.ref,
85
- thinkingLevel: config.fast.thinkingLevel,
86
- keyRole: 'fast',
87
- profile: null,
88
- };
89
- }
90
- return fallbackToMain(config, mode, 'fast_unavailable');
91
- }
92
- if (mode === 'profile') {
93
- // A missing library, a missing id and a dangling id are one outcome
94
- // (D-4): degrade to main and say so. Reference EXISTENCE is deliberately
95
- // not validated in `clampTeamConfig` — resolution is where it belongs.
96
- const id = config.team.modelProfileId;
97
- const entry = id
98
- ? config.modelProfiles?.entries.find((candidate) => candidate.id === id)
99
- : undefined;
100
- if (!entry)
101
- return fallbackToMain(config, mode, 'profile_missing');
102
- // The dedicated entry key wins; without one the shared layer must have a
103
- // key for the entry's provider, or the child could not authenticate at all.
104
- if (!entry.apiKey && !hasKey(entry.provider, 'main')) {
105
- return fallbackToMain(config, mode, 'profile_no_key');
106
- }
107
- return {
108
- mode,
109
- effective: 'profile',
110
- ref: {
111
- providerId: entry.provider,
112
- modelId: entry.model,
113
- ...(entry.baseUrl ? { baseUrl: entry.baseUrl } : {}),
114
- },
115
- thinkingLevel: config.thinkingLevel,
116
- keyRole: 'main',
117
- profile: entry,
118
- };
119
- }
120
- return {
121
- mode: 'main',
122
- effective: 'main',
123
- ref: mainRef(config),
124
- thinkingLevel: config.thinkingLevel,
125
- keyRole: 'main',
126
- profile: null,
127
- };
128
- }
129
- /**
130
- * The key a CHILD resolves for a provider, profile-aware (§3.3 / I-4).
131
- *
132
- * A profile's dedicated key is visible ONLY here: it never reaches env,
133
- * `config.apiKeys` or a log line. While the resolution's profile is bound and
134
- * the provider matches it, the entry key takes priority over the shared layer;
135
- * every other provider (and every non-profile mode) resolves through the
136
- * lead's own resolver at `resolution.keyRole` — which is what keeps a `fast`
137
- * child entitled to the fast-role key and a `main` child to the main one.
138
- *
139
- * @param config The live config (carried for parity with the resolver pair).
140
- * @param resolution A fresh `resolveSubagentModel` output.
141
- * @param providerId The provider the child needs a key for.
142
- * @param shared The lead-layer resolver (`controller.resolveKey`).
143
- */
144
- export function resolveSubagentKey(config, resolution, providerId, shared) {
145
- void config; // parity parameter: the pair reads one config, the key does not need it
146
- if (resolution.profile && providerId === resolution.ref.providerId) {
147
- return resolution.profile.apiKey ?? shared(providerId, 'main');
148
- }
149
- return shared(providerId, resolution.keyRole);
150
- }
@@ -1,48 +0,0 @@
1
- /**
2
- * `selectPanelRows` - which children the live roster shows (team-live-activity
3
- * F-2).
4
- *
5
- * ASCII ONLY: `src/team/**` is inside the glyph scanner's scope.
6
- *
7
- * THE DEFECT THIS REPLACES. `TeamPanel` took the first `panelMaxRows` runs by
8
- * ARRAY INDEX, and the slot pool hands out indices from a shared cursor in
9
- * order - so at `maxSubagents: 8, maxConcurrent: 3` the first five rows are the
10
- * five that finished first and everything still working sits behind `+3 more`.
11
- * The one thing the requirement asks the panel for - show that subagents are
12
- * running - is the one thing it stopped doing at the fan-out widths the
13
- * requirement explicitly permits.
14
- *
15
- * Pure: a function of a roster snapshot and a row cap, with no clock, no
16
- * terminal and no `Agent` anywhere near it.
17
- */
18
- import type { SubagentRun } from './types.js';
19
- export interface PanelRows {
20
- visible: SubagentRun[];
21
- hiddenTotal: number;
22
- hiddenRunning: number;
23
- }
24
- /**
25
- * Rank the roster so that what is VISIBLE is what is HAPPENING.
26
- *
27
- * Ordering inside each group is chosen for ROW STABILITY, which is the real
28
- * usability constraint here: the panel re-renders every 200 ms and a row that
29
- * changes position on each tick is unreadable.
30
- * - running: by `startedAt` ascending. `startedAt` changes exactly once in a
31
- * run's life outside of its first assignment - on a cold-start retry (F-4),
32
- * which re-stamps it (P2-4). A retried child therefore moves to the end of
33
- * the running group, once, at the moment it visibly restarts. That is the
34
- * correct reading of the ordering rule rather than an exception to it: the
35
- * group is ordered by "how long has this been going", and a retry resets
36
- * exactly that.
37
- * - queued: original order; that IS the order the pool will start them in.
38
- * - settled: most recently ended first, so the newest result is the one that
39
- * stays on screen as others complete.
40
- * A run changes position at most twice in its life - queued -> running ->
41
- * settled - and each move carries real information.
42
- *
43
- * The final tiebreak is the original index. `Array.prototype.sort` is stable in
44
- * every Node this package supports, so the tiebreak is not load-bearing; it is
45
- * here so the ordering is total and the test can assert it without depending on
46
- * that guarantee.
47
- */
48
- export declare function selectPanelRows(runs: SubagentRun[], max: number): PanelRows;