@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,214 +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
- /**
136
- * Seconds a single wait may block, as a STRUCTURAL floor and ceiling (`jobs.waitSeconds` is clamped into this range).
137
- *
138
- * THE ONE AUTHORITY FOR THE CEILING (extended-job-wait I-2): the executor
139
- * override (`JOB_WAIT_TOOL_CEILING_MS`), `WAIT_SECONDS_RANGE.max`, the tool
140
- * description and the prompt block all derive from, or are asserted equal to,
141
- * `waitMaxSeconds`. Changing it here and missing another reader is how a wait
142
- * is silently cut short by a layer nobody remembered.
143
- */
144
- readonly waitMinSeconds: 5;
145
- readonly waitMaxSeconds: 1200;
146
- /**
147
- * Cadence of the in-wait heartbeat, in ms.
148
- *
149
- * ONE HZ because the reader needs "a few seconds ago" precision, not a stream:
150
- * subscribing to the supervisor's 100 ms output coalescing would mean ~12000
151
- * pointless view updates across a 20-minute wait. The same beat also carries the
152
- * wall-clock deadline re-check (see `proc/wait.ts`).
153
- */
154
- readonly waitHeartbeatMs: 1000;
155
- /**
156
- * Characters one extracted progress line may occupy.
157
- *
158
- * Also the width the card's progress row is assumed to take, which is why
159
- * `ui/layout/virtual-window.ts` can count it as exactly one row.
160
- */
161
- readonly waitProgressChars: 80;
162
- /**
163
- * Rows `extractProgress` scans, from the tail, before giving up.
164
- *
165
- * Eight because a tqdm bar plus its ETA plus the loss line above it is the
166
- * realistic worst case, and because a wider window is how a stale `100%` from
167
- * an earlier phase wins over the live one.
168
- */
169
- readonly progressScanRows: 8;
170
- /** Notices one `<job_notices>` block may render. Bounded so the block stays ~8 lines. */
171
- readonly maxNotices: 8;
172
- /** Log rows a failed job's notice carries. Two: the message and the frame above it. */
173
- readonly noticeTailRows: 2;
174
- /** Rows `job_list` prints before it collapses the rest into `+N more`. */
175
- readonly listRows: 8;
176
- /**
177
- * Consecutive waits with no new row and no progress change before the
178
- * `[guard]` line is prepended (R-3).
179
- *
180
- * A HINT, NEVER A REFUSAL: the seventh wait still waits. Refusing would take
181
- * the decision away from the model at exactly the point where it has the most
182
- * context.
183
- */
184
- readonly maxConsecutiveWaits: 6;
185
- /** Bytes one mirrored job log may occupy before it stops appending. */
186
- readonly logMirrorMaxBytes: 2000000;
187
- /** Coalescing window for the log mirror's appends (<=4 writes/second). */
188
- readonly mirrorFlushMs: 250;
189
- /** Session directories the mirror keeps, newest by mtime. */
190
- readonly mirrorRetainDirs: 5;
191
- };
192
- /**
193
- * Bumped whenever the wording of the `<background_services>` block changes, so a
194
- * behaviour report can be tied to a block revision with one grep.
195
- */
196
- export declare const BACKGROUND_SERVICES_BLOCK_VERSION = "v1";
197
- /**
198
- * The same discipline for the `<background_jobs>` block. A SEPARATE CONSTANT,
199
- * not a bump of the one above: the two blocks are spliced by different flags
200
- * (`bash.background` and `jobs.enabled`), so one version number covering both
201
- * would make "which block changed" unanswerable from a report.
202
- */
203
- export declare const JOBS_BLOCK_VERSION = "v2-2026-10";
204
- /**
205
- * Head-room the executor's own `job_wait` timer leaves above the longest wait.
206
- *
207
- * It is a SECOND, INDEPENDENT clock, not a coupling to `toolTimeoutMs`
208
- * (extended-job-wait I-4'): the idle watchdog is paused for the whole wait, so
209
- * when `waitForJob` itself misbehaves this is the only thing left that can end
210
- * the call. `toolTimeoutMs` no longer constrains a wait at all.
211
- */
212
- export declare const JOB_WAIT_MARGIN_MS = 30000;
213
- /** The executor ceiling for `job_wait`: the longest wait plus its margin (1230 s). */
214
- export declare const JOB_WAIT_TOOL_CEILING_MS: number;
@@ -1,221 +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
- /**
143
- * Seconds a single wait may block, as a STRUCTURAL floor and ceiling (`jobs.waitSeconds` is clamped into this range).
144
- *
145
- * THE ONE AUTHORITY FOR THE CEILING (extended-job-wait I-2): the executor
146
- * override (`JOB_WAIT_TOOL_CEILING_MS`), `WAIT_SECONDS_RANGE.max`, the tool
147
- * description and the prompt block all derive from, or are asserted equal to,
148
- * `waitMaxSeconds`. Changing it here and missing another reader is how a wait
149
- * is silently cut short by a layer nobody remembered.
150
- */
151
- waitMinSeconds: 5,
152
- waitMaxSeconds: 1200,
153
- /**
154
- * Cadence of the in-wait heartbeat, in ms.
155
- *
156
- * ONE HZ because the reader needs "a few seconds ago" precision, not a stream:
157
- * subscribing to the supervisor's 100 ms output coalescing would mean ~12000
158
- * pointless view updates across a 20-minute wait. The same beat also carries the
159
- * wall-clock deadline re-check (see `proc/wait.ts`).
160
- */
161
- waitHeartbeatMs: 1000,
162
- /**
163
- * Characters one extracted progress line may occupy.
164
- *
165
- * Also the width the card's progress row is assumed to take, which is why
166
- * `ui/layout/virtual-window.ts` can count it as exactly one row.
167
- */
168
- waitProgressChars: 80,
169
- /**
170
- * Rows `extractProgress` scans, from the tail, before giving up.
171
- *
172
- * Eight because a tqdm bar plus its ETA plus the loss line above it is the
173
- * realistic worst case, and because a wider window is how a stale `100%` from
174
- * an earlier phase wins over the live one.
175
- */
176
- progressScanRows: 8,
177
- /** Notices one `<job_notices>` block may render. Bounded so the block stays ~8 lines. */
178
- maxNotices: 8,
179
- /** Log rows a failed job's notice carries. Two: the message and the frame above it. */
180
- noticeTailRows: 2,
181
- /** Rows `job_list` prints before it collapses the rest into `+N more`. */
182
- listRows: 8,
183
- /**
184
- * Consecutive waits with no new row and no progress change before the
185
- * `[guard]` line is prepended (R-3).
186
- *
187
- * A HINT, NEVER A REFUSAL: the seventh wait still waits. Refusing would take
188
- * the decision away from the model at exactly the point where it has the most
189
- * context.
190
- */
191
- maxConsecutiveWaits: 6,
192
- /** Bytes one mirrored job log may occupy before it stops appending. */
193
- logMirrorMaxBytes: 2_000_000,
194
- /** Coalescing window for the log mirror's appends (<=4 writes/second). */
195
- mirrorFlushMs: 250,
196
- /** Session directories the mirror keeps, newest by mtime. */
197
- mirrorRetainDirs: 5,
198
- };
199
- /**
200
- * Bumped whenever the wording of the `<background_services>` block changes, so a
201
- * behaviour report can be tied to a block revision with one grep.
202
- */
203
- export const BACKGROUND_SERVICES_BLOCK_VERSION = 'v1';
204
- /**
205
- * The same discipline for the `<background_jobs>` block. A SEPARATE CONSTANT,
206
- * not a bump of the one above: the two blocks are spliced by different flags
207
- * (`bash.background` and `jobs.enabled`), so one version number covering both
208
- * would make "which block changed" unanswerable from a report.
209
- */
210
- export const JOBS_BLOCK_VERSION = 'v2-2026-10';
211
- /**
212
- * Head-room the executor's own `job_wait` timer leaves above the longest wait.
213
- *
214
- * It is a SECOND, INDEPENDENT clock, not a coupling to `toolTimeoutMs`
215
- * (extended-job-wait I-4'): the idle watchdog is paused for the whole wait, so
216
- * when `waitForJob` itself misbehaves this is the only thing left that can end
217
- * the call. `toolTimeoutMs` no longer constrains a wait at all.
218
- */
219
- export const JOB_WAIT_MARGIN_MS = 30_000;
220
- /** The executor ceiling for `job_wait`: the longest wait plus its margin (1230 s). */
221
- export const JOB_WAIT_TOOL_CEILING_MS = PROC_LIMITS.waitMaxSeconds * 1000 + JOB_WAIT_MARGIN_MS;
@@ -1,47 +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
- * 0..1 completion when the text carries a usable ratio, else `null`.
32
- *
33
- * A REPORT FOR THE PROGRESS BAR ONLY (extended-job-wait I-12): it never decides
34
- * `status`, `[done]` or the spin guard.
35
- */
36
- fraction: number | null;
37
- }
38
- /**
39
- * Extract one line of progress from the tail of a job's output.
40
- *
41
- * `rows` is the scan window (the caller passes at most
42
- * `PROC_LIMITS.progressScanRows`); `carry` is the not-yet-terminated line, which
43
- * is where a `\r`-rewritten bar keeps its whole life. Returns `undefined` when
44
- * nothing but decoration has been printed - an honest "there is no progress to
45
- * show", which the callers render as absence rather than as a fake `0%`.
46
- */
47
- export declare function extractProgress(rows: readonly string[], carry: string): JobProgress | undefined;
@@ -1,163 +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][0-9a-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
- /** `cur / total` as a fraction, or `null` when the total says nothing (`0/0`). */
52
- function ratioFraction(current, total) {
53
- if (!Number.isFinite(current) || !Number.isFinite(total) || total <= 0)
54
- return null;
55
- return Math.min(1, Math.max(0, current / total));
56
- }
57
- /**
58
- * The structured signals for one line, in table order.
59
- *
60
- * ORDER WITHIN A LINE IS THE TABLE'S ORDER; the caller decides which LINE wins
61
- * (newest first), because a live `47%` must beat a stale `100%` from the phase
62
- * above it.
63
- */
64
- function signalsOf(line) {
65
- const percent = PERCENT.exec(line);
66
- if (percent?.[1]) {
67
- return {
68
- text: `${percent[1]}%`,
69
- kind: 'percent',
70
- fraction: ratioFraction(Number(percent[1]), 100),
71
- };
72
- }
73
- const epoch = EPOCH_STEP.exec(line);
74
- if (epoch?.[1] && epoch[2] !== undefined && epoch[3] !== undefined) {
75
- return {
76
- text: `${epoch[1].toLowerCase()} ${epoch[2]}/${epoch[3]}`,
77
- kind: 'epoch',
78
- fraction: ratioFraction(Number(epoch[2]), Number(epoch[3])),
79
- };
80
- }
81
- const bytes = BYTES.exec(line);
82
- if (bytes?.[1] && bytes[3]) {
83
- // Normalised to the TOTAL's unit, which is the one the user's own command
84
- // printed: `1.2/3.4 GiB` reads, `1.2 GiB/3.4 GiB` is noise. The numerator's
85
- // unit is optional because the common form writes it once, at the end.
86
- // TWO UNITS THAT DIFFER ARE NOT COMPARED (no unit conversion): `512 MiB/3 GiB`
87
- // would need a table, and a wrong bar is worse than an honest absence.
88
- const sameUnit = !bytes[2] || bytes[2].toLowerCase() === bytes[4]?.toLowerCase();
89
- return {
90
- text: `${bytes[1]}/${bytes[3]} ${bytes[4]}`,
91
- kind: 'bytes',
92
- fraction: sameUnit ? ratioFraction(Number(bytes[1]), Number(bytes[3])) : null,
93
- };
94
- }
95
- const ratio = RATIO.exec(line);
96
- if (ratio?.[1] && ratio[2] !== undefined) {
97
- return {
98
- text: `${ratio[1]}/${ratio[2]}`,
99
- kind: 'ratio',
100
- fraction: ratioFraction(Number(ratio[1]), Number(ratio[2])),
101
- };
102
- }
103
- return undefined;
104
- }
105
- /** Append the ETA once, when the window names one. */
106
- function withEta(signal, window) {
107
- if (signal.text.includes('ETA'))
108
- return signal;
109
- for (const line of window) {
110
- const eta = ETA.exec(line);
111
- if (eta?.[1])
112
- return { ...signal, text: `${signal.text} ETA ${eta[1]}` };
113
- }
114
- return signal;
115
- }
116
- /**
117
- * Extract one line of progress from the tail of a job's output.
118
- *
119
- * `rows` is the scan window (the caller passes at most
120
- * `PROC_LIMITS.progressScanRows`); `carry` is the not-yet-terminated line, which
121
- * is where a `\r`-rewritten bar keeps its whole life. Returns `undefined` when
122
- * nothing but decoration has been printed - an honest "there is no progress to
123
- * show", which the callers render as absence rather than as a fake `0%`.
124
- */
125
- export function extractProgress(rows, carry) {
126
- const displayCarry = carry.trim();
127
- // NEWEST FIRST, INSIDE ONE WINDOW. The carry line is the newest of all by
128
- // definition, so it is tested before every completed row.
129
- const candidates = [];
130
- if (displayCarry.length > 0 && !NOISE.test(displayCarry)) {
131
- candidates.push({ line: displayCarry, source: 'carry', rowIndex: -1 });
132
- }
133
- for (let i = rows.length - 1; i >= 0; i -= 1) {
134
- const line = rows[i] ?? '';
135
- if (line.trim().length === 0 || NOISE.test(line))
136
- continue;
137
- candidates.push({ line, source: 'row', rowIndex: i });
138
- }
139
- const window = candidates.map((c) => c.line);
140
- for (const candidate of candidates) {
141
- const signal = signalsOf(candidate.line);
142
- if (!signal)
143
- continue;
144
- return {
145
- text: clip(withEta(signal, window).text),
146
- kind: signal.kind,
147
- source: candidate.source,
148
- rowIndex: candidate.rowIndex,
149
- fraction: signal.fraction,
150
- };
151
- }
152
- // Fallback: the newest line that at least says something.
153
- const last = candidates[0];
154
- if (!last)
155
- return undefined;
156
- return {
157
- text: clip(last.line),
158
- kind: 'text',
159
- source: last.source,
160
- rowIndex: last.rowIndex,
161
- fraction: null,
162
- };
163
- }