@aragon-agent/cli 0.6.46 → 0.6.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (775) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +80 -12
  3. package/dist/agent/coalesce.d.ts +5 -1
  4. package/dist/agent/coalesce.js +13 -0
  5. package/dist/agent/controller.d.ts +41 -20
  6. package/dist/agent/controller.js +68 -15
  7. package/dist/agent/conversation-reset.d.ts +1 -1
  8. package/dist/agent/governance-wiring.d.ts +6 -6
  9. package/dist/agent/governance-wiring.js +4 -4
  10. package/dist/agent/headless.d.ts +5 -5
  11. package/dist/agent/headless.js +4 -4
  12. package/dist/agent/job-notices.d.ts +1 -1
  13. package/dist/agent/job-notices.js +1 -1
  14. package/dist/agent/kit-apply.d.ts +3 -3
  15. package/dist/agent/kit-apply.js +3 -3
  16. package/dist/agent/model-profile-settings.d.ts +2 -2
  17. package/dist/agent/model-profile-settings.js +6 -6
  18. package/dist/agent/prompt-options.d.ts +1 -1
  19. package/dist/agent/system-prompt.d.ts +1 -1
  20. package/dist/agent/user-attention.d.ts +17 -0
  21. package/dist/agent/user-attention.js +32 -0
  22. package/dist/{ui → app}/App.d.ts +9 -9
  23. package/dist/{ui → app}/App.js +113 -79
  24. package/dist/{ui → app}/use-startup-notices.d.ts +1 -1
  25. package/dist/{ui → app}/use-startup-notices.js +2 -2
  26. package/dist/cli.js +31 -32
  27. package/dist/commands/agents-command.js +1 -1
  28. package/dist/commands/builtins.js +9 -9
  29. package/dist/commands/governance-command.js +2 -2
  30. package/dist/commands/governance-runs-table.js +1 -1
  31. package/dist/commands/kit-command.js +1 -1
  32. package/dist/commands/perf.d.ts +3 -3
  33. package/dist/commands/perf.js +1 -1
  34. package/dist/commands/registry.d.ts +8 -8
  35. package/dist/commands/skills.js +2 -2
  36. package/dist/commands/team-command.js +1 -1
  37. package/dist/compaction/archive.d.ts +1 -1
  38. package/dist/compaction/archive.js +1 -1
  39. package/dist/compaction/child.d.ts +3 -3
  40. package/dist/compaction/child.js +4 -4
  41. package/dist/compaction/command.js +5 -5
  42. package/dist/compaction/compactor.d.ts +6 -6
  43. package/dist/compaction/compactor.js +6 -6
  44. package/dist/compaction/context-command.js +1 -1
  45. package/dist/compaction/digest.js +1 -1
  46. package/dist/compaction/memory-input.js +1 -1
  47. package/dist/compaction/memory-validation.js +1 -1
  48. package/dist/compaction/memory.js +1 -1
  49. package/dist/compaction/summarize-call.js +1 -1
  50. package/dist/compaction/summary-prompt.js +1 -1
  51. package/dist/compaction/tail-budget.js +2 -2
  52. package/dist/compaction/wiring.d.ts +5 -5
  53. package/dist/compaction/wiring.js +2 -2
  54. package/dist/config/cli-commands.d.ts +1 -1
  55. package/dist/config/cli-commands.js +3 -3
  56. package/dist/config/env.d.ts +1 -1
  57. package/dist/config/env.js +4 -4
  58. package/dist/config/load.d.ts +2 -2
  59. package/dist/config/load.js +10 -31
  60. package/dist/config/migrate-state-out-of-config.js +1 -1
  61. package/dist/config/model-profile-store.d.ts +4 -54
  62. package/dist/config/model-profile-store.js +3 -3
  63. package/dist/config/prompt-history.js +1 -1
  64. package/dist/config/store.d.ts +2 -2
  65. package/dist/config/store.js +3 -3
  66. package/dist/diagnostics/doctor.js +4 -4
  67. package/dist/exec/bridge/decisions.d.ts +1 -1
  68. package/dist/exec/bridge/human-answers.d.ts +1 -1
  69. package/dist/exec/bridge/human-answers.js +1 -1
  70. package/dist/exec/bridge/protocol.d.ts +1 -1
  71. package/dist/exec/bridge/server.js +1 -1
  72. package/dist/exec/events.d.ts +2 -2
  73. package/dist/exec/index.d.ts +1 -1
  74. package/dist/exec/index.js +1 -1
  75. package/dist/exec/permission.js +1 -1
  76. package/dist/exec/runner.d.ts +3 -3
  77. package/dist/exec/runner.js +2 -2
  78. package/dist/exec/threads/runtime.js +1 -1
  79. package/dist/fast/digest.d.ts +1 -1
  80. package/dist/fast/digest.js +1 -1
  81. package/dist/fast/frames.d.ts +1 -1
  82. package/dist/fast/frames.js +1 -1
  83. package/dist/fast/prompt.d.ts +1 -1
  84. package/dist/fast/prompt.js +1 -1
  85. package/dist/fast/review-call.js +1 -1
  86. package/dist/fast/reviewer.d.ts +3 -3
  87. package/dist/fast/reviewer.js +1 -1
  88. package/dist/fast/summary-call.d.ts +3 -3
  89. package/dist/fast/summary-call.js +2 -2
  90. package/dist/fast/summary-prompt.d.ts +1 -1
  91. package/dist/fast/summary-prompt.js +1 -1
  92. package/dist/fast/wiring.d.ts +4 -4
  93. package/dist/fast/wiring.js +1 -1
  94. package/dist/governance/card-normalize.d.ts +1 -1
  95. package/dist/governance/copy.d.ts +1 -1
  96. package/dist/governance/copy.js +2 -2
  97. package/dist/governance/engine/artifact-persist.d.ts +1 -1
  98. package/dist/governance/engine/budget.d.ts +1 -1
  99. package/dist/governance/engine/budget.js +1 -1
  100. package/dist/governance/engine/cards.d.ts +1 -1
  101. package/dist/governance/engine/digest.js +1 -1
  102. package/dist/governance/engine/engine-core.d.ts +5 -5
  103. package/dist/governance/engine/engine-core.js +1 -1
  104. package/dist/governance/engine/engine.d.ts +1 -1
  105. package/dist/governance/engine/engine.js +1 -1
  106. package/dist/governance/engine/estimate.d.ts +1 -1
  107. package/dist/governance/engine/estimate.js +1 -1
  108. package/dist/governance/engine/inspector.js +2 -2
  109. package/dist/governance/engine/integration.d.ts +1 -1
  110. package/dist/governance/engine/lifecycle.d.ts +1 -1
  111. package/dist/governance/engine/lifecycle.js +1 -1
  112. package/dist/governance/engine/phase-members.d.ts +1 -1
  113. package/dist/governance/engine/phase-planner.d.ts +1 -1
  114. package/dist/governance/engine/phase-planner.js +1 -1
  115. package/dist/governance/engine/rebuild.d.ts +1 -1
  116. package/dist/governance/engine/report.d.ts +1 -1
  117. package/dist/governance/engine/report.js +1 -1
  118. package/dist/governance/engine/run-digest.d.ts +1 -1
  119. package/dist/governance/engine/spec-builder.d.ts +2 -2
  120. package/dist/governance/engine/spec-builder.js +2 -2
  121. package/dist/governance/engine/stage-runner.js +2 -2
  122. package/dist/governance/engine/start-input.d.ts +1 -1
  123. package/dist/governance/engine/start-input.js +1 -1
  124. package/dist/governance/engine/state-machine.d.ts +1 -1
  125. package/dist/governance/engine/state-machine.js +3 -3
  126. package/dist/governance/engine/submission-queries.d.ts +1 -1
  127. package/dist/governance/engine/submission-render.d.ts +1 -1
  128. package/dist/governance/engine/submissions.d.ts +1 -1
  129. package/dist/governance/engine/submissions.js +1 -1
  130. package/dist/governance/engine/visibility.d.ts +1 -1
  131. package/dist/governance/engine/visibility.js +1 -1
  132. package/dist/governance/posture-transition.d.ts +2 -2
  133. package/dist/governance/posture-transition.js +1 -1
  134. package/dist/governance/profiles.d.ts +1 -1
  135. package/dist/governance/prompts/orchestrator-block.d.ts +2 -2
  136. package/dist/governance/prompts/orchestrator-block.js +2 -2
  137. package/dist/governance/prompts/plan-addendum.d.ts +1 -1
  138. package/dist/governance/prompts/plan-addendum.js +1 -1
  139. package/dist/governance/prompts/role-blocks.d.ts +2 -2
  140. package/dist/governance/prompts/role-blocks.js +1 -1
  141. package/dist/governance/report-reader.js +1 -1
  142. package/dist/governance/roles.d.ts +1 -1
  143. package/dist/governance/rules/claims.d.ts +1 -1
  144. package/dist/governance/rules/claims.js +1 -1
  145. package/dist/governance/rules/elimination.d.ts +1 -1
  146. package/dist/governance/rules/elimination.js +1 -1
  147. package/dist/governance/rules/failure-analysis.d.ts +2 -2
  148. package/dist/governance/rules/failure-analysis.js +1 -1
  149. package/dist/governance/rules/ledger-replay.d.ts +1 -1
  150. package/dist/governance/rules/ledger-state.d.ts +1 -1
  151. package/dist/governance/rules/ledger-state.js +1 -1
  152. package/dist/governance/rules/ledger.d.ts +2 -2
  153. package/dist/governance/rules/ledger.js +2 -2
  154. package/dist/governance/rules/rca.d.ts +1 -1
  155. package/dist/governance/rules/rca.js +1 -1
  156. package/dist/governance/rules/settlement.d.ts +2 -2
  157. package/dist/governance/rules/settlement.js +2 -2
  158. package/dist/governance/rules/suspicion.d.ts +1 -1
  159. package/dist/governance/store/artifacts.d.ts +1 -1
  160. package/dist/governance/store/artifacts.js +1 -1
  161. package/dist/governance/store/events-log.d.ts +1 -1
  162. package/dist/governance/store/run-store.d.ts +1 -1
  163. package/dist/governance/store/run-store.js +1 -1
  164. package/dist/governance/store/scoreboard-export.d.ts +1 -1
  165. package/dist/governance/tools/child-tools.d.ts +1 -1
  166. package/dist/governance/tools/guard.d.ts +1 -1
  167. package/dist/governance/tools/guard.js +1 -1
  168. package/dist/governance/tools/inspector-tools.d.ts +2 -2
  169. package/dist/governance/tools/inspector-tools.js +2 -2
  170. package/dist/governance/tools/lead-tools.d.ts +1 -1
  171. package/dist/governance/tools/lead-tools.js +1 -1
  172. package/dist/governance/tools/normalize-util.js +1 -1
  173. package/dist/governance/tools/scan-incomplete.js +1 -1
  174. package/dist/governance/tools/shared-tools.d.ts +1 -1
  175. package/dist/governance/tools/shared-tools.js +1 -1
  176. package/dist/governance/tools/submit-normalizers.d.ts +1 -1
  177. package/dist/governance/tools/submit-normalizers.js +1 -1
  178. package/dist/governance/tools/submit-tools.d.ts +1 -1
  179. package/dist/logging/cli-commands.js +1 -1
  180. package/dist/logging/install.d.ts +1 -1
  181. package/dist/logging/install.js +3 -3
  182. package/dist/logging/logger.d.ts +2 -2
  183. package/dist/logging/logger.js +31 -2
  184. package/dist/proc/kill-tree.js +1 -1
  185. package/dist/proc/log-mirror.js +1 -1
  186. package/dist/proc/log-ring.js +2 -2
  187. package/dist/proc/notices.d.ts +1 -1
  188. package/dist/proc/notices.js +2 -2
  189. package/dist/proc/prompt.d.ts +1 -1
  190. package/dist/proc/prompt.js +8 -5
  191. package/dist/proc/readiness.js +1 -1
  192. package/dist/proc/supervisor.d.ts +1 -1
  193. package/dist/proc/supervisor.js +10 -4
  194. package/dist/proc/wait-plan.d.ts +39 -0
  195. package/dist/proc/wait-plan.js +77 -0
  196. package/dist/proc/wait.d.ts +37 -4
  197. package/dist/proc/wait.js +68 -5
  198. package/dist/prompts/command.d.ts +1 -1
  199. package/dist/prompts/command.js +1 -1
  200. package/dist/prompts/normalize.d.ts +1 -1
  201. package/dist/prompts/normalize.js +1 -1
  202. package/dist/prompts/resolve.d.ts +1 -1
  203. package/dist/prompts/store.d.ts +2 -12
  204. package/dist/prompts/store.js +6 -60
  205. package/dist/session/checkpoint.d.ts +2 -2
  206. package/dist/session/checkpoint.js +2 -0
  207. package/dist/session/clear-archive.d.ts +2 -2
  208. package/dist/session/persist.d.ts +2 -2
  209. package/dist/session/persist.js +20 -3
  210. package/dist/session/startup-session.d.ts +2 -2
  211. package/dist/session/validate-session.js +6 -3
  212. package/dist/skills/service.d.ts +2 -2
  213. package/dist/team/bus.d.ts +1 -1
  214. package/dist/team/bus.js +1 -1
  215. package/dist/team/child-reviewer.d.ts +2 -2
  216. package/dist/team/child-reviewer.js +1 -1
  217. package/dist/team/comm-tools.js +1 -1
  218. package/dist/team/dispatch-gate.js +1 -1
  219. package/dist/team/forced-dispatch.js +1 -1
  220. package/dist/team/forced-mode.d.ts +1 -1
  221. package/dist/team/forced-prompt.d.ts +1 -1
  222. package/dist/team/forced-prompt.js +1 -1
  223. package/dist/team/normalize.d.ts +1 -1
  224. package/dist/team/normalize.js +1 -1
  225. package/dist/team/overseer.d.ts +3 -3
  226. package/dist/team/overseer.js +3 -3
  227. package/dist/team/prompt.d.ts +1 -1
  228. package/dist/team/prompt.js +1 -1
  229. package/dist/team/report.d.ts +2 -2
  230. package/dist/team/report.js +2 -2
  231. package/dist/team/retry.d.ts +1 -1
  232. package/dist/team/retry.js +1 -1
  233. package/dist/team/runtime.d.ts +4 -4
  234. package/dist/team/runtime.js +2 -2
  235. package/dist/team/settled.d.ts +2 -2
  236. package/dist/team/subagent.d.ts +4 -4
  237. package/dist/team/subagent.js +5 -5
  238. package/dist/team/task-tool.d.ts +1 -1
  239. package/dist/team/task-tool.js +1 -1
  240. package/dist/todo/normalize.d.ts +1 -1
  241. package/dist/todo/normalize.js +1 -1
  242. package/dist/todo/prompt.d.ts +1 -1
  243. package/dist/todo/prompt.js +1 -1
  244. package/dist/todo/store.d.ts +1 -1
  245. package/dist/todo/store.js +2 -2
  246. package/dist/todo/todo-tool.d.ts +1 -1
  247. package/dist/todo/todo-tool.js +2 -2
  248. package/dist/tools/bash-tool.d.ts +1 -1
  249. package/dist/tools/bash-tool.js +2 -2
  250. package/dist/tools/diff.d.ts +1 -1
  251. package/dist/tools/diff.js +1 -1
  252. package/dist/tools/file-change-store.d.ts +1 -1
  253. package/dist/tools/fs-tools.d.ts +2 -2
  254. package/dist/tools/fs-tools.js +1 -1
  255. package/dist/tools/index.d.ts +3 -3
  256. package/dist/tools/index.js +1 -1
  257. package/dist/tools/job-tools.d.ts +14 -3
  258. package/dist/tools/job-tools.js +158 -35
  259. package/dist/tools/plan-tools.d.ts +1 -1
  260. package/dist/tools/plan-tools.js +1 -1
  261. package/dist/tools/proc-tools.d.ts +1 -1
  262. package/dist/tools/proc-tools.js +2 -2
  263. package/dist/update/classify-failure.d.ts +1 -1
  264. package/dist/update/install-lock.js +1 -1
  265. package/dist/update/install-source.d.ts +1 -1
  266. package/dist/update/installer.js +2 -2
  267. package/dist/update/npm-view.d.ts +1 -1
  268. package/dist/update/npm-view.js +1 -1
  269. package/dist/update/registry.d.ts +1 -1
  270. package/dist/update/registry.js +1 -1
  271. package/dist/update/service.d.ts +2 -2
  272. package/dist/update/service.js +2 -2
  273. package/package.json +7 -7
  274. package/dist/agent/agent-mode.d.ts +0 -108
  275. package/dist/agent/agent-mode.js +0 -121
  276. package/dist/agent/entry-limits.d.ts +0 -65
  277. package/dist/agent/entry-limits.js +0 -133
  278. package/dist/agent/governance-view.d.ts +0 -40
  279. package/dist/agent/governance-view.js +0 -40
  280. package/dist/agent/invocation-card.d.ts +0 -77
  281. package/dist/agent/invocation-card.js +0 -169
  282. package/dist/agent/model-probe-limits.d.ts +0 -39
  283. package/dist/agent/model-probe-limits.js +0 -25
  284. package/dist/agent/model-probe.d.ts +0 -104
  285. package/dist/agent/model-probe.js +0 -391
  286. package/dist/agent/queued-messages.d.ts +0 -23
  287. package/dist/agent/queued-messages.js +0 -49
  288. package/dist/agent/reducer.d.ts +0 -837
  289. package/dist/agent/reducer.js +0 -1617
  290. package/dist/agent/retry-view.d.ts +0 -68
  291. package/dist/agent/retry-view.js +0 -95
  292. package/dist/agent/usage.d.ts +0 -47
  293. package/dist/agent/usage.js +0 -84
  294. package/dist/compaction/limits.d.ts +0 -61
  295. package/dist/compaction/limits.js +0 -64
  296. package/dist/compaction/meter.d.ts +0 -276
  297. package/dist/compaction/meter.js +0 -512
  298. package/dist/compaction/pressure.d.ts +0 -163
  299. package/dist/compaction/pressure.js +0 -199
  300. package/dist/compaction/reason-text.d.ts +0 -36
  301. package/dist/compaction/reason-text.js +0 -78
  302. package/dist/compaction/types.d.ts +0 -360
  303. package/dist/compaction/types.js +0 -22
  304. package/dist/config/governance-config.d.ts +0 -125
  305. package/dist/config/governance-config.js +0 -164
  306. package/dist/config/kit-resolution.d.ts +0 -93
  307. package/dist/config/kit-resolution.js +0 -226
  308. package/dist/config/model-kits.d.ts +0 -225
  309. package/dist/config/model-kits.js +0 -302
  310. package/dist/config/model-profile-resolution.d.ts +0 -28
  311. package/dist/config/model-profile-resolution.js +0 -88
  312. package/dist/config/model-profiles.d.ts +0 -103
  313. package/dist/config/model-profiles.js +0 -188
  314. package/dist/config/schema.d.ts +0 -1645
  315. package/dist/config/schema.js +0 -1377
  316. package/dist/fast/limits.d.ts +0 -152
  317. package/dist/fast/limits.js +0 -152
  318. package/dist/fast/resolve.d.ts +0 -44
  319. package/dist/fast/resolve.js +0 -107
  320. package/dist/fast/task-summary-types.d.ts +0 -66
  321. package/dist/fast/task-summary-types.js +0 -17
  322. package/dist/fast/types.d.ts +0 -141
  323. package/dist/fast/types.js +0 -14
  324. package/dist/governance/governed-dispatch.d.ts +0 -19
  325. package/dist/governance/governed-dispatch.js +0 -17
  326. package/dist/governance/limits.d.ts +0 -107
  327. package/dist/governance/limits.js +0 -131
  328. package/dist/governance/posture.d.ts +0 -35
  329. package/dist/governance/posture.js +0 -59
  330. package/dist/governance/rules/events-table.d.ts +0 -46
  331. package/dist/governance/rules/events-table.js +0 -94
  332. package/dist/governance/types.d.ts +0 -661
  333. package/dist/governance/types.js +0 -27
  334. package/dist/input/control-sequences.d.ts +0 -71
  335. package/dist/input/control-sequences.js +0 -222
  336. package/dist/input/csiu-keys.d.ts +0 -66
  337. package/dist/input/csiu-keys.js +0 -181
  338. package/dist/input/cursor-report.d.ts +0 -61
  339. package/dist/input/cursor-report.js +0 -97
  340. package/dist/input/enter-sequences.d.ts +0 -64
  341. package/dist/input/enter-sequences.js +0 -153
  342. package/dist/input/interrupt-gesture.d.ts +0 -18
  343. package/dist/input/interrupt-gesture.js +0 -19
  344. package/dist/input/keyboard-enhancement.d.ts +0 -42
  345. package/dist/input/keyboard-enhancement.js +0 -65
  346. package/dist/input/keymap.d.ts +0 -20
  347. package/dist/input/keymap.js +0 -99
  348. package/dist/input/limits.d.ts +0 -118
  349. package/dist/input/limits.js +0 -109
  350. package/dist/input/mouse-events.d.ts +0 -87
  351. package/dist/input/mouse-events.js +0 -212
  352. package/dist/input/paste-parse.d.ts +0 -83
  353. package/dist/input/paste-parse.js +0 -107
  354. package/dist/input/pointer-router.d.ts +0 -11
  355. package/dist/input/pointer-router.js +0 -14
  356. package/dist/input/stdin-filter.d.ts +0 -112
  357. package/dist/input/stdin-filter.js +0 -657
  358. package/dist/input/win32-input-mode.d.ts +0 -61
  359. package/dist/input/win32-input-mode.js +0 -269
  360. package/dist/logging/levels.d.ts +0 -40
  361. package/dist/logging/levels.js +0 -59
  362. package/dist/logging/secret-registry.d.ts +0 -32
  363. package/dist/logging/secret-registry.js +0 -73
  364. package/dist/proc/limits.d.ts +0 -200
  365. package/dist/proc/limits.js +0 -207
  366. package/dist/proc/progress.d.ts +0 -40
  367. package/dist/proc/progress.js +0 -135
  368. package/dist/proc/types.d.ts +0 -263
  369. package/dist/proc/types.js +0 -15
  370. package/dist/prompts/copy.d.ts +0 -89
  371. package/dist/prompts/copy.js +0 -131
  372. package/dist/prompts/fill.d.ts +0 -51
  373. package/dist/prompts/fill.js +0 -46
  374. package/dist/prompts/limits.d.ts +0 -53
  375. package/dist/prompts/limits.js +0 -53
  376. package/dist/prompts/search.d.ts +0 -58
  377. package/dist/prompts/search.js +0 -146
  378. package/dist/prompts/types.d.ts +0 -204
  379. package/dist/prompts/types.js +0 -13
  380. package/dist/team/activity.d.ts +0 -67
  381. package/dist/team/activity.js +0 -130
  382. package/dist/team/limits.d.ts +0 -308
  383. package/dist/team/limits.js +0 -330
  384. package/dist/team/model.d.ts +0 -104
  385. package/dist/team/model.js +0 -150
  386. package/dist/team/panel-rows.d.ts +0 -48
  387. package/dist/team/panel-rows.js +0 -75
  388. package/dist/team/timeline.d.ts +0 -74
  389. package/dist/team/timeline.js +0 -101
  390. package/dist/team/types.d.ts +0 -354
  391. package/dist/team/types.js +0 -13
  392. package/dist/todo/acceptance.d.ts +0 -120
  393. package/dist/todo/acceptance.js +0 -399
  394. package/dist/todo/follow-through.d.ts +0 -138
  395. package/dist/todo/follow-through.js +0 -248
  396. package/dist/todo/limits.d.ts +0 -152
  397. package/dist/todo/limits.js +0 -152
  398. package/dist/todo/panel-rows.d.ts +0 -45
  399. package/dist/todo/panel-rows.js +0 -70
  400. package/dist/todo/plan-sections.d.ts +0 -60
  401. package/dist/todo/plan-sections.js +0 -108
  402. package/dist/todo/row-window.d.ts +0 -51
  403. package/dist/todo/row-window.js +0 -107
  404. package/dist/todo/types.d.ts +0 -124
  405. package/dist/todo/types.js +0 -12
  406. package/dist/tools/human-input.d.ts +0 -212
  407. package/dist/tools/human-input.js +0 -265
  408. package/dist/tools/patch.d.ts +0 -115
  409. package/dist/tools/patch.js +0 -453
  410. package/dist/tools/terminal-output.d.ts +0 -115
  411. package/dist/tools/terminal-output.js +0 -201
  412. package/dist/tools/tool-output-store.d.ts +0 -68
  413. package/dist/tools/tool-output-store.js +0 -102
  414. package/dist/ui/ActivityLine.d.ts +0 -26
  415. package/dist/ui/ActivityLine.js +0 -48
  416. package/dist/ui/AutocompletePopup.d.ts +0 -23
  417. package/dist/ui/AutocompletePopup.js +0 -17
  418. package/dist/ui/BottomStatusRow.d.ts +0 -10
  419. package/dist/ui/BottomStatusRow.js +0 -9
  420. package/dist/ui/Composer.d.ts +0 -115
  421. package/dist/ui/Composer.js +0 -64
  422. package/dist/ui/GovernancePanel.d.ts +0 -50
  423. package/dist/ui/GovernancePanel.js +0 -77
  424. package/dist/ui/GovernanceRun.d.ts +0 -18
  425. package/dist/ui/GovernanceRun.js +0 -11
  426. package/dist/ui/Header.d.ts +0 -48
  427. package/dist/ui/Header.js +0 -27
  428. package/dist/ui/Logo.d.ts +0 -32
  429. package/dist/ui/Logo.js +0 -65
  430. package/dist/ui/Markdown.d.ts +0 -29
  431. package/dist/ui/Markdown.js +0 -116
  432. package/dist/ui/PromptCaret.d.ts +0 -11
  433. package/dist/ui/PromptCaret.js +0 -31
  434. package/dist/ui/PromptInput.d.ts +0 -192
  435. package/dist/ui/PromptInput.js +0 -689
  436. package/dist/ui/QueuePanel.d.ts +0 -8
  437. package/dist/ui/QueuePanel.js +0 -9
  438. package/dist/ui/QueueStatusRow.d.ts +0 -24
  439. package/dist/ui/QueueStatusRow.js +0 -51
  440. package/dist/ui/ScrollbackShell.d.ts +0 -132
  441. package/dist/ui/ScrollbackShell.js +0 -26
  442. package/dist/ui/SessionOpener.d.ts +0 -30
  443. package/dist/ui/SessionOpener.js +0 -12
  444. package/dist/ui/StatusBar.d.ts +0 -129
  445. package/dist/ui/StatusBar.js +0 -61
  446. package/dist/ui/TeamPanel.d.ts +0 -76
  447. package/dist/ui/TeamPanel.js +0 -103
  448. package/dist/ui/ToastStack.d.ts +0 -8
  449. package/dist/ui/ToastStack.js +0 -31
  450. package/dist/ui/TodoPanel.d.ts +0 -52
  451. package/dist/ui/TodoPanel.js +0 -214
  452. package/dist/ui/Transcript.d.ts +0 -105
  453. package/dist/ui/Transcript.js +0 -251
  454. package/dist/ui/UpdateLine.d.ts +0 -44
  455. package/dist/ui/UpdateLine.js +0 -129
  456. package/dist/ui/activity-phrases.d.ts +0 -33
  457. package/dist/ui/activity-phrases.js +0 -50
  458. package/dist/ui/capabilities.d.ts +0 -27
  459. package/dist/ui/capabilities.js +0 -65
  460. package/dist/ui/clipboard-task.d.ts +0 -29
  461. package/dist/ui/clipboard-task.js +0 -66
  462. package/dist/ui/clipboard.d.ts +0 -31
  463. package/dist/ui/clipboard.js +0 -157
  464. package/dist/ui/color-runtime.d.ts +0 -5
  465. package/dist/ui/color-runtime.js +0 -29
  466. package/dist/ui/composer-input.d.ts +0 -38
  467. package/dist/ui/composer-input.js +0 -79
  468. package/dist/ui/composer-limits.d.ts +0 -30
  469. package/dist/ui/composer-limits.js +0 -45
  470. package/dist/ui/composer-rows.d.ts +0 -73
  471. package/dist/ui/composer-rows.js +0 -129
  472. package/dist/ui/console-bridge.d.ts +0 -19
  473. package/dist/ui/console-bridge.js +0 -52
  474. package/dist/ui/density.d.ts +0 -26
  475. package/dist/ui/density.js +0 -34
  476. package/dist/ui/display-tab.d.ts +0 -51
  477. package/dist/ui/display-tab.js +0 -82
  478. package/dist/ui/editor-navigation.d.ts +0 -55
  479. package/dist/ui/editor-navigation.js +0 -96
  480. package/dist/ui/editor-reducer.d.ts +0 -108
  481. package/dist/ui/editor-reducer.js +0 -187
  482. package/dist/ui/enter-frames.d.ts +0 -47
  483. package/dist/ui/enter-frames.js +0 -117
  484. package/dist/ui/entries/AssistantEntry.d.ts +0 -37
  485. package/dist/ui/entries/AssistantEntry.js +0 -43
  486. package/dist/ui/entries/CompactionCard.d.ts +0 -88
  487. package/dist/ui/entries/CompactionCard.js +0 -222
  488. package/dist/ui/entries/DiffView.d.ts +0 -61
  489. package/dist/ui/entries/DiffView.js +0 -103
  490. package/dist/ui/entries/EntryFrame.d.ts +0 -23
  491. package/dist/ui/entries/EntryFrame.js +0 -6
  492. package/dist/ui/entries/FastCard.d.ts +0 -53
  493. package/dist/ui/entries/FastCard.js +0 -105
  494. package/dist/ui/entries/GovernanceCard.d.ts +0 -30
  495. package/dist/ui/entries/GovernanceCard.js +0 -32
  496. package/dist/ui/entries/InvocationCard.d.ts +0 -20
  497. package/dist/ui/entries/InvocationCard.js +0 -32
  498. package/dist/ui/entries/QueuedEntry.d.ts +0 -27
  499. package/dist/ui/entries/QueuedEntry.js +0 -33
  500. package/dist/ui/entries/RetryCard.d.ts +0 -56
  501. package/dist/ui/entries/RetryCard.js +0 -60
  502. package/dist/ui/entries/ServiceCard.d.ts +0 -82
  503. package/dist/ui/entries/ServiceCard.js +0 -151
  504. package/dist/ui/entries/TeamCard.d.ts +0 -55
  505. package/dist/ui/entries/TeamCard.js +0 -94
  506. package/dist/ui/entries/TodoCard.d.ts +0 -54
  507. package/dist/ui/entries/TodoCard.js +0 -98
  508. package/dist/ui/entries/ToolCard.d.ts +0 -81
  509. package/dist/ui/entries/ToolCard.js +0 -160
  510. package/dist/ui/entries/ToolPreview.d.ts +0 -59
  511. package/dist/ui/entries/ToolPreview.js +0 -208
  512. package/dist/ui/entries/UserEntry.d.ts +0 -36
  513. package/dist/ui/entries/UserEntry.js +0 -57
  514. package/dist/ui/exit-snapshot.d.ts +0 -43
  515. package/dist/ui/exit-snapshot.js +0 -26
  516. package/dist/ui/frame-differ.d.ts +0 -166
  517. package/dist/ui/frame-differ.js +0 -354
  518. package/dist/ui/frame-observer.d.ts +0 -17
  519. package/dist/ui/frame-observer.js +0 -94
  520. package/dist/ui/frame-parser.d.ts +0 -7
  521. package/dist/ui/frame-parser.js +0 -18
  522. package/dist/ui/gauge.d.ts +0 -39
  523. package/dist/ui/gauge.js +0 -55
  524. package/dist/ui/glyphs.d.ts +0 -178
  525. package/dist/ui/glyphs.js +0 -165
  526. package/dist/ui/governance-copy.d.ts +0 -69
  527. package/dist/ui/governance-copy.js +0 -104
  528. package/dist/ui/governance-status.d.ts +0 -145
  529. package/dist/ui/governance-status.js +0 -326
  530. package/dist/ui/gradient.d.ts +0 -11
  531. package/dist/ui/gradient.js +0 -50
  532. package/dist/ui/ink-runtime.d.ts +0 -4
  533. package/dist/ui/ink-runtime.js +0 -51
  534. package/dist/ui/interaction-copy.d.ts +0 -82
  535. package/dist/ui/interaction-copy.js +0 -38
  536. package/dist/ui/interaction-hints.d.ts +0 -44
  537. package/dist/ui/interaction-hints.js +0 -97
  538. package/dist/ui/layout/AppShell.d.ts +0 -17
  539. package/dist/ui/layout/AppShell.js +0 -6
  540. package/dist/ui/layout/Gutter.d.ts +0 -67
  541. package/dist/ui/layout/Gutter.js +0 -42
  542. package/dist/ui/layout/MeasuredEntry.d.ts +0 -21
  543. package/dist/ui/layout/MeasuredEntry.js +0 -30
  544. package/dist/ui/layout/OverlayFrame.d.ts +0 -73
  545. package/dist/ui/layout/OverlayFrame.js +0 -110
  546. package/dist/ui/layout/ScrollIndicator.d.ts +0 -32
  547. package/dist/ui/layout/ScrollIndicator.js +0 -22
  548. package/dist/ui/layout/ScrollViewport.d.ts +0 -40
  549. package/dist/ui/layout/ScrollViewport.js +0 -222
  550. package/dist/ui/layout/agents-board.d.ts +0 -102
  551. package/dist/ui/layout/agents-board.js +0 -389
  552. package/dist/ui/layout/autocomplete.d.ts +0 -18
  553. package/dist/ui/layout/autocomplete.js +0 -26
  554. package/dist/ui/layout/budget.d.ts +0 -43
  555. package/dist/ui/layout/budget.js +0 -52
  556. package/dist/ui/layout/cells.d.ts +0 -61
  557. package/dist/ui/layout/cells.js +0 -156
  558. package/dist/ui/layout/document-layout.d.ts +0 -13
  559. package/dist/ui/layout/document-layout.js +0 -10
  560. package/dist/ui/layout/follow-state.d.ts +0 -138
  561. package/dist/ui/layout/follow-state.js +0 -148
  562. package/dist/ui/layout/frame.d.ts +0 -36
  563. package/dist/ui/layout/frame.js +0 -39
  564. package/dist/ui/layout/governance-board.d.ts +0 -121
  565. package/dist/ui/layout/governance-board.js +0 -382
  566. package/dist/ui/layout/governance-card.d.ts +0 -53
  567. package/dist/ui/layout/governance-card.js +0 -134
  568. package/dist/ui/layout/governance-chip.d.ts +0 -38
  569. package/dist/ui/layout/governance-chip.js +0 -64
  570. package/dist/ui/layout/governance-panel.d.ts +0 -85
  571. package/dist/ui/layout/governance-panel.js +0 -358
  572. package/dist/ui/layout/governance-roster.d.ts +0 -65
  573. package/dist/ui/layout/governance-roster.js +0 -275
  574. package/dist/ui/layout/header-hints.d.ts +0 -90
  575. package/dist/ui/layout/header-hints.js +0 -110
  576. package/dist/ui/layout/header-left.d.ts +0 -115
  577. package/dist/ui/layout/header-left.js +0 -206
  578. package/dist/ui/layout/invocation-card.d.ts +0 -41
  579. package/dist/ui/layout/invocation-card.js +0 -91
  580. package/dist/ui/layout/kit-chip.d.ts +0 -50
  581. package/dist/ui/layout/kit-chip.js +0 -81
  582. package/dist/ui/layout/overlay-window.d.ts +0 -43
  583. package/dist/ui/layout/overlay-window.js +0 -51
  584. package/dist/ui/layout/queue-layout.d.ts +0 -19
  585. package/dist/ui/layout/queue-layout.js +0 -26
  586. package/dist/ui/layout/rail.d.ts +0 -7
  587. package/dist/ui/layout/rail.js +0 -16
  588. package/dist/ui/layout/scroll-indicator.d.ts +0 -27
  589. package/dist/ui/layout/scroll-indicator.js +0 -36
  590. package/dist/ui/layout/scroll.d.ts +0 -37
  591. package/dist/ui/layout/scroll.js +0 -99
  592. package/dist/ui/layout/scrollbar-geometry.d.ts +0 -17
  593. package/dist/ui/layout/scrollbar-geometry.js +0 -13
  594. package/dist/ui/layout/session-chip.d.ts +0 -52
  595. package/dist/ui/layout/session-chip.js +0 -64
  596. package/dist/ui/layout/shortcut-panel-layout.d.ts +0 -191
  597. package/dist/ui/layout/shortcut-panel-layout.js +0 -321
  598. package/dist/ui/layout/status-detail-layout.d.ts +0 -9
  599. package/dist/ui/layout/status-detail-layout.js +0 -79
  600. package/dist/ui/layout/status-layout.d.ts +0 -139
  601. package/dist/ui/layout/status-layout.js +0 -253
  602. package/dist/ui/layout/task-summary-cell.d.ts +0 -61
  603. package/dist/ui/layout/task-summary-cell.js +0 -65
  604. package/dist/ui/layout/team-panel.d.ts +0 -18
  605. package/dist/ui/layout/team-panel.js +0 -25
  606. package/dist/ui/layout/team-row.d.ts +0 -139
  607. package/dist/ui/layout/team-row.js +0 -246
  608. package/dist/ui/layout/todo-layout.d.ts +0 -62
  609. package/dist/ui/layout/todo-layout.js +0 -102
  610. package/dist/ui/layout/useTerminalSize.d.ts +0 -13
  611. package/dist/ui/layout/useTerminalSize.js +0 -50
  612. package/dist/ui/layout/viewport-geometry.d.ts +0 -29
  613. package/dist/ui/layout/viewport-geometry.js +0 -28
  614. package/dist/ui/layout/virtual-window.d.ts +0 -112
  615. package/dist/ui/layout/virtual-window.js +0 -488
  616. package/dist/ui/layout/wrap-rows.d.ts +0 -26
  617. package/dist/ui/layout/wrap-rows.js +0 -88
  618. package/dist/ui/live-clamp.d.ts +0 -14
  619. package/dist/ui/live-clamp.js +0 -46
  620. package/dist/ui/markdown-blocks.d.ts +0 -107
  621. package/dist/ui/markdown-blocks.js +0 -240
  622. package/dist/ui/overlays/AgentsBoardOverlay.d.ts +0 -57
  623. package/dist/ui/overlays/AgentsBoardOverlay.js +0 -183
  624. package/dist/ui/overlays/ConfirmDialog.d.ts +0 -31
  625. package/dist/ui/overlays/ConfirmDialog.js +0 -44
  626. package/dist/ui/overlays/GovernanceBoardOverlay.d.ts +0 -41
  627. package/dist/ui/overlays/GovernanceBoardOverlay.js +0 -76
  628. package/dist/ui/overlays/GovernanceSettingsPage.d.ts +0 -48
  629. package/dist/ui/overlays/GovernanceSettingsPage.js +0 -93
  630. package/dist/ui/overlays/HelpOverlay.d.ts +0 -29
  631. package/dist/ui/overlays/HelpOverlay.js +0 -232
  632. package/dist/ui/overlays/KitEditor.d.ts +0 -23
  633. package/dist/ui/overlays/KitEditor.js +0 -101
  634. package/dist/ui/overlays/KitManager.d.ts +0 -23
  635. package/dist/ui/overlays/KitManager.js +0 -104
  636. package/dist/ui/overlays/KitPicker.d.ts +0 -49
  637. package/dist/ui/overlays/KitPicker.js +0 -58
  638. package/dist/ui/overlays/ModelDiscoveryList.d.ts +0 -23
  639. package/dist/ui/overlays/ModelDiscoveryList.js +0 -161
  640. package/dist/ui/overlays/ModelPicker.d.ts +0 -26
  641. package/dist/ui/overlays/ModelPicker.js +0 -63
  642. package/dist/ui/overlays/ModelProfileEditor.d.ts +0 -29
  643. package/dist/ui/overlays/ModelProfileEditor.js +0 -168
  644. package/dist/ui/overlays/ModelProfilePicker.d.ts +0 -48
  645. package/dist/ui/overlays/ModelProfilePicker.js +0 -231
  646. package/dist/ui/overlays/PlanReviewOverlay.d.ts +0 -51
  647. package/dist/ui/overlays/PlanReviewOverlay.js +0 -132
  648. package/dist/ui/overlays/PromptEditorPage.d.ts +0 -48
  649. package/dist/ui/overlays/PromptEditorPage.js +0 -227
  650. package/dist/ui/overlays/PromptLibraryOverlay.d.ts +0 -37
  651. package/dist/ui/overlays/PromptLibraryOverlay.js +0 -191
  652. package/dist/ui/overlays/PromptPicker.d.ts +0 -36
  653. package/dist/ui/overlays/PromptPicker.js +0 -129
  654. package/dist/ui/overlays/PromptTextArea.d.ts +0 -86
  655. package/dist/ui/overlays/PromptTextArea.js +0 -141
  656. package/dist/ui/overlays/QuestionOverlay.d.ts +0 -39
  657. package/dist/ui/overlays/QuestionOverlay.js +0 -258
  658. package/dist/ui/overlays/QueueOverlay.d.ts +0 -22
  659. package/dist/ui/overlays/QueueOverlay.js +0 -79
  660. package/dist/ui/overlays/SettingsScreen.d.ts +0 -228
  661. package/dist/ui/overlays/SettingsScreen.js +0 -1037
  662. package/dist/ui/overlays/ShortcutPanel.d.ts +0 -39
  663. package/dist/ui/overlays/ShortcutPanel.js +0 -106
  664. package/dist/ui/overlays/TeamFanoutPage.d.ts +0 -51
  665. package/dist/ui/overlays/TeamFanoutPage.js +0 -90
  666. package/dist/ui/overlays/governance-settings.d.ts +0 -79
  667. package/dist/ui/overlays/governance-settings.js +0 -140
  668. package/dist/ui/overlays/kit-picker-state.d.ts +0 -87
  669. package/dist/ui/overlays/kit-picker-state.js +0 -136
  670. package/dist/ui/overlays/kit-settings-state.d.ts +0 -129
  671. package/dist/ui/overlays/kit-settings-state.js +0 -268
  672. package/dist/ui/overlays/model-probe-view.d.ts +0 -128
  673. package/dist/ui/overlays/model-probe-view.js +0 -225
  674. package/dist/ui/overlays/model-profile-state.d.ts +0 -177
  675. package/dist/ui/overlays/model-profile-state.js +0 -301
  676. package/dist/ui/overlays/prompt-library-state.d.ts +0 -162
  677. package/dist/ui/overlays/prompt-library-state.js +0 -335
  678. package/dist/ui/overlays/prompt-picker-state.d.ts +0 -71
  679. package/dist/ui/overlays/prompt-picker-state.js +0 -98
  680. package/dist/ui/overlays/team-fanout-state.d.ts +0 -106
  681. package/dist/ui/overlays/team-fanout-state.js +0 -155
  682. package/dist/ui/overlays/use-model-probe.d.ts +0 -30
  683. package/dist/ui/overlays/use-model-probe.js +0 -109
  684. package/dist/ui/palettes.d.ts +0 -112
  685. package/dist/ui/palettes.js +0 -130
  686. package/dist/ui/paste-frames.d.ts +0 -91
  687. package/dist/ui/paste-frames.js +0 -117
  688. package/dist/ui/paste-tokens.d.ts +0 -90
  689. package/dist/ui/paste-tokens.js +0 -147
  690. package/dist/ui/render-cache.d.ts +0 -81
  691. package/dist/ui/render-cache.js +0 -196
  692. package/dist/ui/render-governor.d.ts +0 -54
  693. package/dist/ui/render-governor.js +0 -78
  694. package/dist/ui/run-metrics.d.ts +0 -23
  695. package/dist/ui/run-metrics.js +0 -27
  696. package/dist/ui/run-status-row.d.ts +0 -61
  697. package/dist/ui/run-status-row.js +0 -54
  698. package/dist/ui/screen.d.ts +0 -107
  699. package/dist/ui/screen.js +0 -234
  700. package/dist/ui/scrollback/LiveTail.d.ts +0 -115
  701. package/dist/ui/scrollback/LiveTail.js +0 -48
  702. package/dist/ui/scrollback/band.d.ts +0 -114
  703. package/dist/ui/scrollback/band.js +0 -143
  704. package/dist/ui/scrollback/budget.d.ts +0 -90
  705. package/dist/ui/scrollback/budget.js +0 -100
  706. package/dist/ui/scrollback/canvas.d.ts +0 -100
  707. package/dist/ui/scrollback/canvas.js +0 -114
  708. package/dist/ui/scrollback/cursor-probe.d.ts +0 -71
  709. package/dist/ui/scrollback/cursor-probe.js +0 -133
  710. package/dist/ui/scrollback/drain.d.ts +0 -32
  711. package/dist/ui/scrollback/drain.js +0 -64
  712. package/dist/ui/scrollback/exit-summary.d.ts +0 -23
  713. package/dist/ui/scrollback/exit-summary.js +0 -25
  714. package/dist/ui/scrollback/limits.d.ts +0 -98
  715. package/dist/ui/scrollback/limits.js +0 -98
  716. package/dist/ui/scrollback/live-preview.d.ts +0 -34
  717. package/dist/ui/scrollback/live-preview.js +0 -118
  718. package/dist/ui/scrollback/overflow-print.d.ts +0 -108
  719. package/dist/ui/scrollback/overflow-print.js +0 -120
  720. package/dist/ui/scrollback/renderer.d.ts +0 -48
  721. package/dist/ui/scrollback/renderer.js +0 -186
  722. package/dist/ui/scrollback/scrollback-writer.d.ts +0 -174
  723. package/dist/ui/scrollback/scrollback-writer.js +0 -648
  724. package/dist/ui/scrollback/settled-boundary.d.ts +0 -42
  725. package/dist/ui/scrollback/settled-boundary.js +0 -109
  726. package/dist/ui/scrollback/tail-anchor.d.ts +0 -71
  727. package/dist/ui/scrollback/tail-anchor.js +0 -79
  728. package/dist/ui/scrollback/tail-window.d.ts +0 -73
  729. package/dist/ui/scrollback/tail-window.js +0 -89
  730. package/dist/ui/scrollback/use-scrollback-view.d.ts +0 -139
  731. package/dist/ui/scrollback/use-scrollback-view.js +0 -601
  732. package/dist/ui/scrollback/writer-shapes.d.ts +0 -127
  733. package/dist/ui/scrollback/writer-shapes.js +0 -159
  734. package/dist/ui/scrollbar-controller.d.ts +0 -30
  735. package/dist/ui/scrollbar-controller.js +0 -124
  736. package/dist/ui/selection/highlight.d.ts +0 -39
  737. package/dist/ui/selection/highlight.js +0 -64
  738. package/dist/ui/selection/screen-mirror.d.ts +0 -24
  739. package/dist/ui/selection/screen-mirror.js +0 -35
  740. package/dist/ui/selection/selection-controller.d.ts +0 -104
  741. package/dist/ui/selection/selection-controller.js +0 -372
  742. package/dist/ui/selection/selection.d.ts +0 -90
  743. package/dist/ui/selection/selection.js +0 -223
  744. package/dist/ui/shortcuts.d.ts +0 -81
  745. package/dist/ui/shortcuts.js +0 -221
  746. package/dist/ui/status-feedback.d.ts +0 -35
  747. package/dist/ui/status-feedback.js +0 -38
  748. package/dist/ui/stdout-frame-writer.d.ts +0 -74
  749. package/dist/ui/stdout-frame-writer.js +0 -155
  750. package/dist/ui/team-status.d.ts +0 -166
  751. package/dist/ui/team-status.js +0 -252
  752. package/dist/ui/terminal-plan.d.ts +0 -52
  753. package/dist/ui/terminal-plan.js +0 -49
  754. package/dist/ui/theme.d.ts +0 -96
  755. package/dist/ui/theme.js +0 -130
  756. package/dist/ui/transcript-text.d.ts +0 -41
  757. package/dist/ui/transcript-text.js +0 -282
  758. package/dist/ui/use-height-store.d.ts +0 -31
  759. package/dist/ui/use-height-store.js +0 -76
  760. package/dist/ui/use-render-governor.d.ts +0 -39
  761. package/dist/ui/use-render-governor.js +0 -57
  762. package/dist/ui/use-wheel-routing.d.ts +0 -57
  763. package/dist/ui/use-wheel-routing.js +0 -152
  764. package/dist/ui/win-vt-force.d.ts +0 -136
  765. package/dist/ui/win-vt-force.js +0 -237
  766. package/dist/ui/win-vt-input.d.ts +0 -57
  767. package/dist/ui/win-vt-input.js +0 -62
  768. package/dist/update/limits.d.ts +0 -111
  769. package/dist/update/limits.js +0 -111
  770. package/dist/update/semver.d.ts +0 -89
  771. package/dist/update/semver.js +0 -295
  772. package/dist/update/types.d.ts +0 -169
  773. package/dist/update/types.js +0 -68
  774. /package/dist/{ui → app}/session-bridge.d.ts +0 -0
  775. /package/dist/{ui → app}/session-bridge.js +0 -0
@@ -1,200 +0,0 @@
1
- /**
2
- * PROC_LIMITS — the single authority on every structural bound the process
3
- * supervisor enforces (background-service-supervision §6).
4
- *
5
- * ASCII ONLY: `src/proc/**` is inside the glyph scanner's scope
6
- * (`glyphs.test.ts::inScope`), whose hardcoded directory regex this feature
7
- * extends. A NEW TREE IS INVISIBLE TO THAT SCAN UNTIL IT IS NAMED THERE, and a
8
- * guard rail that silently stops guarding is worse than no guard rail — this
9
- * package has now paid for that edit eleven times.
10
- *
11
- * TWO KINDS OF NUMBER, AND THEY ARE NOT INTERCHANGEABLE — the distinction
12
- * `TODO_LIMITS` and `TEAM_LIMITS` each record at length:
13
- *
14
- * - Everything below is STRUCTURAL: how many rows a tail can physically carry,
15
- * how many children one session may hold, how long a kill may take before it
16
- * stops being a kill. A user has no business tuning them, so they are
17
- * constants.
18
- * - The four `bash.*` config keys (`config/schema.ts`) are POLICY: register the
19
- * tools at all, let the classifier fire, how long a launch may block the
20
- * turn, how long to wait for readiness. They are clamped, persisted and
21
- * user-facing.
22
- */
23
- export declare const PROC_LIMITS: {
24
- /**
25
- * Rows the per-service ring retains.
26
- *
27
- * DELIBERATELY A DIFFERENT NUMBER FROM `cardTailRows` BELOW, and from
28
- * `LIVE_TAIL_ROWS` (8) in `tools/tool-output-store.ts`. They bound unrelated
29
- * things — what `bash_output` can page back through, versus what one card
30
- * draws — and a shared literal is how a later edit collapses two bounds into
31
- * one.
32
- */
33
- readonly serviceTailRows: 200;
34
- /** Rows a snapshot (and therefore a card) carries. */
35
- readonly cardTailRows: 8;
36
- /**
37
- * JOB RECORDS one session may hold — services AND tasks share the number.
38
- *
39
- * NAMED `maxJobs`, NOT `maxServices` (long-task-jobs D-7). A constant that
40
- * counts two kinds of job while being called `maxServices` is the next edit's
41
- * bug: the limit and its refusal message would go on saying "service" while
42
- * the model is holding a training run.
43
- *
44
- * Eviction only ever removes a record in a TERMINAL state
45
- * (`exited | failed | stopped`). When all 16 are live `start()` refuses and
46
- * names the oldest ids rather than evicting: evicting a live record would
47
- * orphan a running server that nothing can any longer name or stop.
48
- */
49
- readonly maxJobs: 16;
50
- /**
51
- * How long `bash` waits after `'exit'` for the stdio streams to close before
52
- * settling anyway.
53
- *
54
- * This number IS defence 1. `'close'` fires only once every stream is closed,
55
- * and a detached grandchild that inherited the pipe keeps it open after the
56
- * shell is long gone — so a tool that settles on `'close'` alone has a path
57
- * that never settles at all.
58
- *
59
- * IT IS A BOUND, NOT A VERDICT. Expiry says "stop waiting"; it does NOT say
60
- * the pipe was held, and the note is only printed when the streams are
61
- * observed still open at that moment (`proc/output-streams.ts` records the
62
- * release-gate failure a timer-based verdict caused). The ordinary path does
63
- * not even reach this bound: two ended streams after `'exit'` settle the call
64
- * with the byte-identical body, one notification earlier.
65
- */
66
- readonly drainMs: 250;
67
- /**
68
- * How long an aborted/timed-out `bash` waits after the kill before settling
69
- * WHETHER OR NOT the child ever reported exit.
70
- *
71
- * A pending promise after an abort is the bug; a possibly-premature result is
72
- * not.
73
- */
74
- readonly killGraceMs: 2000;
75
- /** Readiness port probe interval. */
76
- readonly probeIntervalMs: 500;
77
- /** Socket timeout for one readiness probe. */
78
- readonly probeSocketTimeoutMs: 1000;
79
- /**
80
- * Output-event coalescing window inside the supervisor.
81
- *
82
- * At the SOURCE rather than in the view, because the same event is also
83
- * consumed by `/bg` and by `bash_output`. A webpack build emitting thousands
84
- * of lines a second must not become thousands of React renders.
85
- */
86
- readonly outputCoalesceMs: 100;
87
- /** `SIGTERM` -> `SIGKILL` escalation window for a graceful stop. */
88
- readonly stopGraceMs: 3000;
89
- /**
90
- * How long to KEEP ASKING whether the `SIGKILL` actually landed before
91
- * declaring the job `stopped`.
92
- *
93
- * THIS NUMBER IS NOT A GUESS ABOUT THE PLATFORM. `killTree` spawns `taskkill`,
94
- * which is a process of its own: a Windows tree kill of a shell plus its node
95
- * child measures ~0.8 s on the reference machine (while starting `cmd` costs
96
- * 50 ms), so the fixed 250 ms this used to allow expired first and `stop()`
97
- * reported `stopped` with the child still running - AC-18 caught exactly that.
98
- * The wait stays BOUNDED against the opposite failure (a promise that never
99
- * resolves); at this deadline the record keeps the honest `killIncomplete`
100
- * flag instead.
101
- */
102
- readonly killVerifyMs: 2000;
103
- /** Liveness poll interval while waiting for a `SIGKILL` to land. */
104
- readonly killVerifyPollMs: 50;
105
- /**
106
- * How long ONE synchronous tree kill (`killTreeSync`) may take.
107
- *
108
- * MEASURED, NOT GUESSED. A `taskkill /pid <shell> /t /f` of a shell plus its
109
- * node child takes 1027-1058 ms on the reference machine on an IDLE host (five
110
- * samples, 2026-10-23), so the old 2000 ms was 1.9x the honest cost and the
111
- * 2026-10-23 release run - where the whole suite took 340 s against the usual
112
- * 200-240 s - is comfortably inside the range where a single tree kill exceeds
113
- * it. Crossing it is not a slow kill, it is NO kill: `spawnSync` kills
114
- * `taskkill` itself at the deadline and the tree keeps running (verified: a
115
- * 150 ms budget left the child alive 1.5 s later, `ETIMEDOUT` / `status null`).
116
- *
117
- * 5000 ms is ~5x the measured cost. It is a CEILING and not a cost: a tree that
118
- * dies in the usual second still returns in that second. The worst case is
119
- * `maxJobs` (16) trees at the ceiling on an exit hook, which is why this is not
120
- * any larger - the reaper prefers a reported miss to an exit that never ends,
121
- * and the miss is now reported (`ProcRecord.killIncomplete`).
122
- */
123
- readonly killTreeSyncTimeoutMs: 5000;
124
- /** Below this many terminal columns the status chip degrades to `[N]`. */
125
- readonly statusCompactCols: 92;
126
- /**
127
- * Rows of new output one `job_wait` result carries, in addition to its status,
128
- * progress, cursor, `[note]`/`[stalled]` and `[next]` lines.
129
- *
130
- * THE NUMBER IS THE FEATURE. One wait must cost ~150 tokens, not the ~6k a
131
- * 200-row tail costs - that economy is the whole reason `job_wait` exists
132
- * instead of a seventh `bash_output` poll.
133
- */
134
- readonly waitTailRows: 6;
135
- /** Seconds a single wait may block, as a STRUCTURAL floor and ceiling (`jobs.waitSeconds` is clamped into this range). */
136
- readonly waitMinSeconds: 5;
137
- readonly waitMaxSeconds: 60;
138
- /**
139
- * Characters one extracted progress line may occupy.
140
- *
141
- * Also the width the card's progress row is assumed to take, which is why
142
- * `ui/layout/virtual-window.ts` can count it as exactly one row.
143
- */
144
- readonly waitProgressChars: 80;
145
- /**
146
- * Rows `extractProgress` scans, from the tail, before giving up.
147
- *
148
- * Eight because a tqdm bar plus its ETA plus the loss line above it is the
149
- * realistic worst case, and because a wider window is how a stale `100%` from
150
- * an earlier phase wins over the live one.
151
- */
152
- readonly progressScanRows: 8;
153
- /** Notices one `<job_notices>` block may render. Bounded so the block stays ~8 lines. */
154
- readonly maxNotices: 8;
155
- /** Log rows a failed job's notice carries. Two: the message and the frame above it. */
156
- readonly noticeTailRows: 2;
157
- /** Rows `job_list` prints before it collapses the rest into `+N more`. */
158
- readonly listRows: 8;
159
- /**
160
- * Consecutive waits with no new row and no progress change before the
161
- * `[guard]` line is prepended (R-3).
162
- *
163
- * A HINT, NEVER A REFUSAL: the seventh wait still waits. Refusing would take
164
- * the decision away from the model at exactly the point where it has the most
165
- * context.
166
- */
167
- readonly maxConsecutiveWaits: 6;
168
- /** Bytes one mirrored job log may occupy before it stops appending. */
169
- readonly logMirrorMaxBytes: 2000000;
170
- /** Coalescing window for the log mirror's appends (<=4 writes/second). */
171
- readonly mirrorFlushMs: 250;
172
- /** Session directories the mirror keeps, newest by mtime. */
173
- readonly mirrorRetainDirs: 5;
174
- };
175
- /**
176
- * Bumped whenever the wording of the `<background_services>` block changes, so a
177
- * behaviour report can be tied to a block revision with one grep.
178
- */
179
- export declare const BACKGROUND_SERVICES_BLOCK_VERSION = "v1";
180
- /**
181
- * The same discipline for the `<background_jobs>` block. A SEPARATE CONSTANT,
182
- * not a bump of the one above: the two blocks are spliced by different flags
183
- * (`bash.background` and `jobs.enabled`), so one version number covering both
184
- * would make "which block changed" unanswerable from a report.
185
- */
186
- export declare const JOBS_BLOCK_VERSION = "v1-2026-10";
187
- /**
188
- * Head-room a single wait leaves below the tool ceiling (I-4).
189
- *
190
- * `jobs.waitSeconds * 1000 + JOB_WAIT_MARGIN_MS <= toolTimeoutMs` is the whole
191
- * reason a wait never needs to pause the idle watchdog (D-3): a 60 s wait inside
192
- * a 180 s tool call in a 210 s idle window cannot be mistaken for a hang.
193
- *
194
- * IT LIVES HERE RATHER THAN IN `config/schema.ts`, where the design document put
195
- * it, because the TOOL layer needs the same number for its call-time convergence
196
- * (AC-14) and nothing in `tools/` may import `config/` - a tool takes its policy
197
- * through closures. One constant, two readers, no second copy to drift. Recorded
198
- * in `docs/plans/long-task-jobs/spec.md` under `## 实施过程发现的方案缺陷` (I-2).
199
- */
200
- export declare const JOB_WAIT_MARGIN_MS = 30000;
@@ -1,207 +0,0 @@
1
- /**
2
- * PROC_LIMITS — the single authority on every structural bound the process
3
- * supervisor enforces (background-service-supervision §6).
4
- *
5
- * ASCII ONLY: `src/proc/**` is inside the glyph scanner's scope
6
- * (`glyphs.test.ts::inScope`), whose hardcoded directory regex this feature
7
- * extends. A NEW TREE IS INVISIBLE TO THAT SCAN UNTIL IT IS NAMED THERE, and a
8
- * guard rail that silently stops guarding is worse than no guard rail — this
9
- * package has now paid for that edit eleven times.
10
- *
11
- * TWO KINDS OF NUMBER, AND THEY ARE NOT INTERCHANGEABLE — the distinction
12
- * `TODO_LIMITS` and `TEAM_LIMITS` each record at length:
13
- *
14
- * - Everything below is STRUCTURAL: how many rows a tail can physically carry,
15
- * how many children one session may hold, how long a kill may take before it
16
- * stops being a kill. A user has no business tuning them, so they are
17
- * constants.
18
- * - The four `bash.*` config keys (`config/schema.ts`) are POLICY: register the
19
- * tools at all, let the classifier fire, how long a launch may block the
20
- * turn, how long to wait for readiness. They are clamped, persisted and
21
- * user-facing.
22
- */
23
- export const PROC_LIMITS = {
24
- /**
25
- * Rows the per-service ring retains.
26
- *
27
- * DELIBERATELY A DIFFERENT NUMBER FROM `cardTailRows` BELOW, and from
28
- * `LIVE_TAIL_ROWS` (8) in `tools/tool-output-store.ts`. They bound unrelated
29
- * things — what `bash_output` can page back through, versus what one card
30
- * draws — and a shared literal is how a later edit collapses two bounds into
31
- * one.
32
- */
33
- serviceTailRows: 200,
34
- /** Rows a snapshot (and therefore a card) carries. */
35
- cardTailRows: 8,
36
- /**
37
- * JOB RECORDS one session may hold — services AND tasks share the number.
38
- *
39
- * NAMED `maxJobs`, NOT `maxServices` (long-task-jobs D-7). A constant that
40
- * counts two kinds of job while being called `maxServices` is the next edit's
41
- * bug: the limit and its refusal message would go on saying "service" while
42
- * the model is holding a training run.
43
- *
44
- * Eviction only ever removes a record in a TERMINAL state
45
- * (`exited | failed | stopped`). When all 16 are live `start()` refuses and
46
- * names the oldest ids rather than evicting: evicting a live record would
47
- * orphan a running server that nothing can any longer name or stop.
48
- */
49
- maxJobs: 16,
50
- /**
51
- * How long `bash` waits after `'exit'` for the stdio streams to close before
52
- * settling anyway.
53
- *
54
- * This number IS defence 1. `'close'` fires only once every stream is closed,
55
- * and a detached grandchild that inherited the pipe keeps it open after the
56
- * shell is long gone — so a tool that settles on `'close'` alone has a path
57
- * that never settles at all.
58
- *
59
- * IT IS A BOUND, NOT A VERDICT. Expiry says "stop waiting"; it does NOT say
60
- * the pipe was held, and the note is only printed when the streams are
61
- * observed still open at that moment (`proc/output-streams.ts` records the
62
- * release-gate failure a timer-based verdict caused). The ordinary path does
63
- * not even reach this bound: two ended streams after `'exit'` settle the call
64
- * with the byte-identical body, one notification earlier.
65
- */
66
- drainMs: 250,
67
- /**
68
- * How long an aborted/timed-out `bash` waits after the kill before settling
69
- * WHETHER OR NOT the child ever reported exit.
70
- *
71
- * A pending promise after an abort is the bug; a possibly-premature result is
72
- * not.
73
- */
74
- killGraceMs: 2000,
75
- /** Readiness port probe interval. */
76
- probeIntervalMs: 500,
77
- /** Socket timeout for one readiness probe. */
78
- probeSocketTimeoutMs: 1000,
79
- /**
80
- * Output-event coalescing window inside the supervisor.
81
- *
82
- * At the SOURCE rather than in the view, because the same event is also
83
- * consumed by `/bg` and by `bash_output`. A webpack build emitting thousands
84
- * of lines a second must not become thousands of React renders.
85
- */
86
- outputCoalesceMs: 100,
87
- /** `SIGTERM` -> `SIGKILL` escalation window for a graceful stop. */
88
- stopGraceMs: 3000,
89
- /**
90
- * How long to KEEP ASKING whether the `SIGKILL` actually landed before
91
- * declaring the job `stopped`.
92
- *
93
- * THIS NUMBER IS NOT A GUESS ABOUT THE PLATFORM. `killTree` spawns `taskkill`,
94
- * which is a process of its own: a Windows tree kill of a shell plus its node
95
- * child measures ~0.8 s on the reference machine (while starting `cmd` costs
96
- * 50 ms), so the fixed 250 ms this used to allow expired first and `stop()`
97
- * reported `stopped` with the child still running - AC-18 caught exactly that.
98
- * The wait stays BOUNDED against the opposite failure (a promise that never
99
- * resolves); at this deadline the record keeps the honest `killIncomplete`
100
- * flag instead.
101
- */
102
- killVerifyMs: 2000,
103
- /** Liveness poll interval while waiting for a `SIGKILL` to land. */
104
- killVerifyPollMs: 50,
105
- /**
106
- * How long ONE synchronous tree kill (`killTreeSync`) may take.
107
- *
108
- * MEASURED, NOT GUESSED. A `taskkill /pid <shell> /t /f` of a shell plus its
109
- * node child takes 1027-1058 ms on the reference machine on an IDLE host (five
110
- * samples, 2026-10-23), so the old 2000 ms was 1.9x the honest cost and the
111
- * 2026-10-23 release run - where the whole suite took 340 s against the usual
112
- * 200-240 s - is comfortably inside the range where a single tree kill exceeds
113
- * it. Crossing it is not a slow kill, it is NO kill: `spawnSync` kills
114
- * `taskkill` itself at the deadline and the tree keeps running (verified: a
115
- * 150 ms budget left the child alive 1.5 s later, `ETIMEDOUT` / `status null`).
116
- *
117
- * 5000 ms is ~5x the measured cost. It is a CEILING and not a cost: a tree that
118
- * dies in the usual second still returns in that second. The worst case is
119
- * `maxJobs` (16) trees at the ceiling on an exit hook, which is why this is not
120
- * any larger - the reaper prefers a reported miss to an exit that never ends,
121
- * and the miss is now reported (`ProcRecord.killIncomplete`).
122
- */
123
- killTreeSyncTimeoutMs: 5000,
124
- /** Below this many terminal columns the status chip degrades to `[N]`. */
125
- statusCompactCols: 92,
126
- // --- long-task-jobs: bounded waiting, progress, notices, log mirror --------
127
- //
128
- // EVERY ONE OF THESE IS STRUCTURAL, not policy. The user-tunable knobs are the
129
- // five `jobs.*` keys in `config/schema.ts` (how many seconds to wait, when
130
- // silence becomes `[stalled]`, whether to mirror the log, whether notices may
131
- // steer). What a result can PHYSICALLY carry lives here, for the reason this
132
- // file's header records at length.
133
- /**
134
- * Rows of new output one `job_wait` result carries, in addition to its status,
135
- * progress, cursor, `[note]`/`[stalled]` and `[next]` lines.
136
- *
137
- * THE NUMBER IS THE FEATURE. One wait must cost ~150 tokens, not the ~6k a
138
- * 200-row tail costs - that economy is the whole reason `job_wait` exists
139
- * instead of a seventh `bash_output` poll.
140
- */
141
- waitTailRows: 6,
142
- /** Seconds a single wait may block, as a STRUCTURAL floor and ceiling (`jobs.waitSeconds` is clamped into this range). */
143
- waitMinSeconds: 5,
144
- waitMaxSeconds: 60,
145
- /**
146
- * Characters one extracted progress line may occupy.
147
- *
148
- * Also the width the card's progress row is assumed to take, which is why
149
- * `ui/layout/virtual-window.ts` can count it as exactly one row.
150
- */
151
- waitProgressChars: 80,
152
- /**
153
- * Rows `extractProgress` scans, from the tail, before giving up.
154
- *
155
- * Eight because a tqdm bar plus its ETA plus the loss line above it is the
156
- * realistic worst case, and because a wider window is how a stale `100%` from
157
- * an earlier phase wins over the live one.
158
- */
159
- progressScanRows: 8,
160
- /** Notices one `<job_notices>` block may render. Bounded so the block stays ~8 lines. */
161
- maxNotices: 8,
162
- /** Log rows a failed job's notice carries. Two: the message and the frame above it. */
163
- noticeTailRows: 2,
164
- /** Rows `job_list` prints before it collapses the rest into `+N more`. */
165
- listRows: 8,
166
- /**
167
- * Consecutive waits with no new row and no progress change before the
168
- * `[guard]` line is prepended (R-3).
169
- *
170
- * A HINT, NEVER A REFUSAL: the seventh wait still waits. Refusing would take
171
- * the decision away from the model at exactly the point where it has the most
172
- * context.
173
- */
174
- maxConsecutiveWaits: 6,
175
- /** Bytes one mirrored job log may occupy before it stops appending. */
176
- logMirrorMaxBytes: 2_000_000,
177
- /** Coalescing window for the log mirror's appends (<=4 writes/second). */
178
- mirrorFlushMs: 250,
179
- /** Session directories the mirror keeps, newest by mtime. */
180
- mirrorRetainDirs: 5,
181
- };
182
- /**
183
- * Bumped whenever the wording of the `<background_services>` block changes, so a
184
- * behaviour report can be tied to a block revision with one grep.
185
- */
186
- export const BACKGROUND_SERVICES_BLOCK_VERSION = 'v1';
187
- /**
188
- * The same discipline for the `<background_jobs>` block. A SEPARATE CONSTANT,
189
- * not a bump of the one above: the two blocks are spliced by different flags
190
- * (`bash.background` and `jobs.enabled`), so one version number covering both
191
- * would make "which block changed" unanswerable from a report.
192
- */
193
- export const JOBS_BLOCK_VERSION = 'v1-2026-10';
194
- /**
195
- * Head-room a single wait leaves below the tool ceiling (I-4).
196
- *
197
- * `jobs.waitSeconds * 1000 + JOB_WAIT_MARGIN_MS <= toolTimeoutMs` is the whole
198
- * reason a wait never needs to pause the idle watchdog (D-3): a 60 s wait inside
199
- * a 180 s tool call in a 210 s idle window cannot be mistaken for a hang.
200
- *
201
- * IT LIVES HERE RATHER THAN IN `config/schema.ts`, where the design document put
202
- * it, because the TOOL layer needs the same number for its call-time convergence
203
- * (AC-14) and nothing in `tools/` may import `config/` - a tool takes its policy
204
- * through closures. One constant, two readers, no second copy to drift. Recorded
205
- * in `docs/plans/long-task-jobs/spec.md` under `## 实施过程发现的方案缺陷` (I-2).
206
- */
207
- export const JOB_WAIT_MARGIN_MS = 30_000;
@@ -1,40 +0,0 @@
1
- /**
2
- * Progress extraction for a long-running job (long-task-jobs §4.5).
3
- *
4
- * ASCII ONLY: `src/proc/**` is inside the glyph scanner's scope.
5
- *
6
- * PURE: no IO, no clock, no process. That is what lets `progress.test.ts`
7
- * enumerate the whole table, and it is why the cost of a progress line is one
8
- * function call inside an already-coalesced output tick rather than a second
9
- * subscription to the child's stdio.
10
- *
11
- * THE POINT IS EXTRACTION, NOT TRANSPORT. The alternative - handing the model
12
- * the last 200 rows so it can notice the `47%` itself - costs 4k-8k tokens per
13
- * check and buries the one number that matters. Here the ring keeps the rows and
14
- * the model gets `47%`.
15
- *
16
- * NOTHING DECIDES ANYTHING FROM THIS (R-4). Progress is a REPORT. `status`,
17
- * `exitCode` and `signal` are the only things a job's outcome is ever read from,
18
- * so a false `100%` in `[100%] built target foo` costs one confusing word rather
19
- * than a wrong conclusion.
20
- */
21
- export type ProgressKind = 'percent' | 'ratio' | 'epoch' | 'bytes' | 'text';
22
- export interface JobProgress {
23
- /** Already clipped to `PROC_LIMITS.waitProgressChars`. */
24
- text: string;
25
- kind: ProgressKind;
26
- /** `carry` = the not-yet-newline-terminated line, where every progress bar lives. */
27
- source: 'row' | 'carry';
28
- /** Index into the scanned window; `-1` for the carry line. Diagnostics and tests only. */
29
- rowIndex: number;
30
- }
31
- /**
32
- * Extract one line of progress from the tail of a job's output.
33
- *
34
- * `rows` is the scan window (the caller passes at most
35
- * `PROC_LIMITS.progressScanRows`); `carry` is the not-yet-terminated line, which
36
- * is where a `\r`-rewritten bar keeps its whole life. Returns `undefined` when
37
- * nothing but decoration has been printed - an honest "there is no progress to
38
- * show", which the callers render as absence rather than as a fake `0%`.
39
- */
40
- export declare function extractProgress(rows: readonly string[], carry: string): JobProgress | undefined;
@@ -1,135 +0,0 @@
1
- /**
2
- * Progress extraction for a long-running job (long-task-jobs §4.5).
3
- *
4
- * ASCII ONLY: `src/proc/**` is inside the glyph scanner's scope.
5
- *
6
- * PURE: no IO, no clock, no process. That is what lets `progress.test.ts`
7
- * enumerate the whole table, and it is why the cost of a progress line is one
8
- * function call inside an already-coalesced output tick rather than a second
9
- * subscription to the child's stdio.
10
- *
11
- * THE POINT IS EXTRACTION, NOT TRANSPORT. The alternative - handing the model
12
- * the last 200 rows so it can notice the `47%` itself - costs 4k-8k tokens per
13
- * check and buries the one number that matters. Here the ring keeps the rows and
14
- * the model gets `47%`.
15
- *
16
- * NOTHING DECIDES ANYTHING FROM THIS (R-4). Progress is a REPORT. `status`,
17
- * `exitCode` and `signal` are the only things a job's outcome is ever read from,
18
- * so a false `100%` in `[100%] built target foo` costs one confusing word rather
19
- * than a wrong conclusion.
20
- */
21
- import { PROC_LIMITS } from './limits.js';
22
- /**
23
- * The ordered table (first match wins PER ROW, newest row scanned first).
24
- *
25
- * BYTES SITS ABOVE THE GENERIC RATIO, and that rewrites the order the design
26
- * document lists. `1.2/3.4 GiB` satisfies the generic ratio pattern as `2/3`
27
- * (the digits either side of the slash, with `.` a word boundary), so a table
28
- * that tried `\d+/\d+` first would report every download as `2/3`. The document's
29
- * constraint - ordered, anchored, single-line, no backtracking blowup - is kept;
30
- * only the relative order of those two rows changed. Recorded in
31
- * `docs/plans/long-task-jobs/spec.md` under `## 实施过程发现的方案缺陷` (I-1).
32
- */
33
- const PERCENT = /(\d{1,3}(?:\.\d+)?)\s*%/;
34
- const EPOCH_STEP = /\b(epoch|step)\s+(\d{1,7})\s*\/\s*(\d{1,7})/i;
35
- const BYTES = /(\d+(?:\.\d+)?)\s*(GiB|MiB|KiB|GB|MB|KB|gb|mb|kb|gib|mib)?\s*\/\s*(\d+(?:\.\d+)?)\s*(GiB|MiB|KiB|GB|MB|KB|gb|mb|kb|gib|mib)/;
36
- const RATIO = /[\[(]?\b(\d{1,7})\s*\/\s*(\d{1,7})\b[\])]?/;
37
- const ETA = /ETA[^0-9]{0,4}([0-9:]+[a-z]*)/i;
38
- /** A row that is decoration, not information: `...`, `|`, `-`, `===`, a bare path separator. */
39
- const NOISE = /^[\s.\-_=|\\/+*#>~]+$/;
40
- /** Clip to the one-line budget, ASCII ellipsis, never mid-surrogate. */
41
- function clip(text, limit = PROC_LIMITS.waitProgressChars) {
42
- // VERTICAL whitespace only is collapsed: a stray `\r` or `\n` would break the
43
- // one-row contract, while the DOUBLE SPACE before `ETA` is how the row is meant
44
- // to read (`47% ETA 13m`) and collapsing it would make the table's rendering
45
- // depend on which function ran last.
46
- const flat = text.replace(/[\r\n\t]+/g, ' ').trim();
47
- if (flat.length <= limit)
48
- return flat;
49
- return `${flat.slice(0, Math.max(0, limit - 3)).trimEnd()}...`;
50
- }
51
- /**
52
- * The structured signals for one line, in table order.
53
- *
54
- * ORDER WITHIN A LINE IS THE TABLE'S ORDER; the caller decides which LINE wins
55
- * (newest first), because a live `47%` must beat a stale `100%` from the phase
56
- * above it.
57
- */
58
- function signalsOf(line) {
59
- const percent = PERCENT.exec(line);
60
- if (percent?.[1])
61
- return { text: `${percent[1]}%`, kind: 'percent' };
62
- const epoch = EPOCH_STEP.exec(line);
63
- if (epoch?.[1] && epoch[2] !== undefined && epoch[3] !== undefined) {
64
- return { text: `${epoch[1].toLowerCase()} ${epoch[2]}/${epoch[3]}`, kind: 'epoch' };
65
- }
66
- const bytes = BYTES.exec(line);
67
- if (bytes?.[1] && bytes[3]) {
68
- // Normalised to the TOTAL's unit, which is the one the user's own command
69
- // printed: `1.2/3.4 GiB` reads, `1.2 GiB/3.4 GiB` is noise. The numerator's
70
- // unit is optional because the common form writes it once, at the end.
71
- return { text: `${bytes[1]}/${bytes[3]} ${bytes[4]}`, kind: 'bytes' };
72
- }
73
- const ratio = RATIO.exec(line);
74
- if (ratio?.[1] && ratio[2] !== undefined) {
75
- return { text: `${ratio[1]}/${ratio[2]}`, kind: 'ratio' };
76
- }
77
- return undefined;
78
- }
79
- /** Append the ETA once, when the window names one. */
80
- function withEta(signal, window) {
81
- if (signal.text.includes('ETA'))
82
- return signal;
83
- for (const line of window) {
84
- const eta = ETA.exec(line);
85
- if (eta?.[1])
86
- return { text: `${signal.text} ETA ${eta[1]}`, kind: signal.kind };
87
- }
88
- return signal;
89
- }
90
- /**
91
- * Extract one line of progress from the tail of a job's output.
92
- *
93
- * `rows` is the scan window (the caller passes at most
94
- * `PROC_LIMITS.progressScanRows`); `carry` is the not-yet-terminated line, which
95
- * is where a `\r`-rewritten bar keeps its whole life. Returns `undefined` when
96
- * nothing but decoration has been printed - an honest "there is no progress to
97
- * show", which the callers render as absence rather than as a fake `0%`.
98
- */
99
- export function extractProgress(rows, carry) {
100
- const displayCarry = carry.trim();
101
- // NEWEST FIRST, INSIDE ONE WINDOW. The carry line is the newest of all by
102
- // definition, so it is tested before every completed row.
103
- const candidates = [];
104
- if (displayCarry.length > 0 && !NOISE.test(displayCarry)) {
105
- candidates.push({ line: displayCarry, source: 'carry', rowIndex: -1 });
106
- }
107
- for (let i = rows.length - 1; i >= 0; i -= 1) {
108
- const line = rows[i] ?? '';
109
- if (line.trim().length === 0 || NOISE.test(line))
110
- continue;
111
- candidates.push({ line, source: 'row', rowIndex: i });
112
- }
113
- const window = candidates.map((c) => c.line);
114
- for (const candidate of candidates) {
115
- const signal = signalsOf(candidate.line);
116
- if (!signal)
117
- continue;
118
- return {
119
- text: clip(withEta(signal, window).text),
120
- kind: signal.kind,
121
- source: candidate.source,
122
- rowIndex: candidate.rowIndex,
123
- };
124
- }
125
- // Fallback: the newest line that at least says something.
126
- const last = candidates[0];
127
- if (!last)
128
- return undefined;
129
- return {
130
- text: clip(last.line),
131
- kind: 'text',
132
- source: last.source,
133
- rowIndex: last.rowIndex,
134
- };
135
- }