@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,237 +0,0 @@
1
- /**
2
- * Turn `ENABLE_VIRTUAL_TERMINAL_INPUT` on for THIS console, from outside Node
3
- * (shift-tab-mode-toggle-still-dead-on-windows, C1-M1).
4
- *
5
- * ASCII ONLY - this tree is inside the glyph scanner's scope.
6
- *
7
- * `win-vt-input.ts` answers "will this console ever deliver `CSI Z`?". This
8
- * module answers "can we MAKE it deliver one?", and the measured answer is yes.
9
- * The bit is a property of the console input buffer, not of Node, so any process
10
- * attached to the same console can set it - and libuv's pre-22.17 translator
11
- * forwards whatever characters the console generates, `ESC` `[` `Z` included.
12
- * On Node 20.19.0, in one run, one injected `Shift+Tab` went from `09` to
13
- * `1b 5b 5a` the instant an outside process OR-ed `0x0200` in (analysis section
14
- * 3.2; raw probe data under `docs/diagnoses/.../repro/`).
15
- *
16
- * Node ships no FFI, so the outside process is `powershell.exe` calling
17
- * `SetConsoleMode` through P/Invoke. Measured cost end to end: 722 ms, roughly
18
- * 280 ms of process start plus 300 ms of `Add-Type` compiling C# at run time
19
- * (analysis section 3.4). That is the whole price of not adding a native
20
- * dependency, and it is paid ONCE, only on an affected Windows console.
21
- *
22
- * THREE TRAPS ARE ENCODED HERE, all of them measured rather than imagined:
23
- *
24
- * 1. `windowsHide: true` maps to `CREATE_NO_WINDOW`, which hands the child its
25
- * OWN console. The helper then reads, sets and reports success against a
26
- * console nobody is typing into: exit code 0, `SetConsoleMode` true, log
27
- * clean, and no effect whatsoever - indistinguishable from "the fix was
28
- * never written" (analysis section 3.5). Hence `windowsHide: false`.
29
- * 2. The helper must open `CONIN$` with `CreateFileW`, never
30
- * `GetStdHandle(STD_INPUT_HANDLE)`: it is spawned with stdin `ignore`, so
31
- * its standard input is `NUL`. Sharing the real stdin instead is not an
32
- * option - that handle is being reconfigured underneath it.
33
- * 3. The `before` mode is the ONLY signal that distinguishes trap 1 from
34
- * success, so the helper reports it and `decideVtForceOutcome` checks it.
35
- * The check is a POSITIVE bitmask ("is this console already in raw mode"),
36
- * not `before !== 0x01F7`: that number is one machine's default and varies
37
- * with QuickEdit, with the host, and with a user who already turned VT input
38
- * on. A magic-number comparison passes silently on the first machine whose
39
- * default happens to differ, which puts trap 1 straight back (review R-3).
40
- *
41
- * WHAT UNDOES IT: `setRawMode(false)`. libuv rewrites the whole console mode on
42
- * every raw-mode transition and its pre-22.17 path does not know about this bit,
43
- * so one transition clears it (analysis section 3.3). That is why the caller
44
- * must raise raw mode BEFORE calling this, and it is also the entire restore
45
- * path - the bit outlives the process otherwise, and neither Windows nor the
46
- * console clears it (analysis section 3.5b).
47
- *
48
- * FAILURE IS ALWAYS GRACEFUL. Constrained Language Mode disables `Add-Type`
49
- * outright, and enterprise fleets ship it by policy - exactly the "another PC"
50
- * population this bug is about. Every failure returns `ok: false` with a reason
51
- * for the log and nothing else happens; the alternate mode-toggle key
52
- * (`MODE_TOGGLE_KEYS.fallback`) is the rung below that needs none of this.
53
- */
54
- import { spawnSync } from 'node:child_process';
55
- import { existsSync } from 'node:fs';
56
- import { join } from 'node:path';
57
- import process from 'node:process';
58
- /** Console input mode bits (`consoleapi.h`). */
59
- export const ENABLE_PROCESSED_INPUT = 0x0001;
60
- export const ENABLE_LINE_INPUT = 0x0002;
61
- export const ENABLE_ECHO_INPUT = 0x0004;
62
- export const ENABLE_WINDOW_INPUT = 0x0008;
63
- export const ENABLE_VIRTUAL_TERMINAL_INPUT = 0x0200;
64
- /**
65
- * The three bits a cooked console has and a raw one does not.
66
- *
67
- * This is the fingerprint of "libuv has already put this console in raw mode",
68
- * and it is what tells the two measured samples apart: `0x0008` (the CLI's own
69
- * console, raw) versus `0x01F7` (a fresh `CREATE_NO_WINDOW` console, cooked).
70
- */
71
- export const COOKED_INPUT_BITS = ENABLE_PROCESSED_INPUT | ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT;
72
- export function isRawConsoleMode(mode) {
73
- return (mode & COOKED_INPUT_BITS) === 0;
74
- }
75
- /**
76
- * The PowerShell side, as a string.
77
- *
78
- * A LITERAL HERE-STRING (`@'` ... `'@`) around the C# so PowerShell expands
79
- * nothing inside it, and `'CONIN$'` in single quotes for the same reason - the
80
- * `$` is part of the device name, not a variable.
81
- *
82
- * Shipped inline rather than as a `.ps1` next to the build output, and that is a
83
- * capability difference rather than tidiness: ExecutionPolicy blocks script
84
- * FILES and does not apply to `-EncodedCommand`, so a locked-down machine - the
85
- * population this bug keeps landing on - can still run it. It also removes the
86
- * "where did my file go after packaging" class of failure entirely.
87
- */
88
- export function buildHelperScript() {
89
- return [
90
- "$ErrorActionPreference = 'Stop'",
91
- 'try {',
92
- ' Add-Type -TypeDefinition @' + "'",
93
- 'using System;',
94
- 'using System.Runtime.InteropServices;',
95
- 'public static class AragonVtInput {',
96
- ' [DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Unicode)]',
97
- ' public static extern IntPtr CreateFileW(string name, uint access, uint share,',
98
- ' IntPtr sec, uint disp, uint flags, IntPtr tmpl);',
99
- ' [DllImport("kernel32.dll", SetLastError=true)]',
100
- ' public static extern bool GetConsoleMode(IntPtr h, out uint mode);',
101
- ' [DllImport("kernel32.dll", SetLastError=true)]',
102
- ' public static extern bool SetConsoleMode(IntPtr h, uint mode);',
103
- '}',
104
- "'" + '@',
105
- '} catch { Write-Output "error=addtype"; exit 3 }',
106
- // GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_EXISTING.
107
- //
108
- // DECIMAL, NOT `0xC0000000`. Windows PowerShell 5.1 - which is what
109
- // `resolvePowerShellExe` finds, on every machine - parses a hex literal with
110
- // the high bit set as a SIGNED Int32, so `[uint32]0xC0000000` throws
111
- // "Cannot convert value -1073741824" before `CreateFileW` is ever reached.
112
- // With `$ErrorActionPreference = 'Stop'` that is a terminating error outside
113
- // the `try`, so the helper dies with no `before=` line and the whole feature
114
- // degrades to `no_before` on 100% of consoles - working code, never once
115
- // executed. Round 2's own probe helper carries the same comment.
116
- "$h = [AragonVtInput]::CreateFileW('CONIN$', ([uint32]2147483648 -bor [uint32]1073741824)," +
117
- ' [uint32]3, [IntPtr]::Zero, [uint32]3, [uint32]0, [IntPtr]::Zero)',
118
- 'if ($h -eq [IntPtr]::Zero -or $h.ToInt64() -eq -1) { Write-Output "error=conin"; exit 4 }',
119
- '$before = [uint32]0',
120
- 'if (-not [AragonVtInput]::GetConsoleMode($h, [ref]$before)) {',
121
- ' Write-Output "error=getmode"; exit 5',
122
- '}',
123
- 'Write-Output ("before=0x{0:X4}" -f $before)',
124
- 'if (-not [AragonVtInput]::SetConsoleMode($h, ($before -bor 0x0200))) {',
125
- ' Write-Output "error=setmode"; exit 6',
126
- '}',
127
- '$after = [uint32]0',
128
- 'if (-not [AragonVtInput]::GetConsoleMode($h, [ref]$after)) {',
129
- ' Write-Output "error=recheck"; exit 7',
130
- '}',
131
- 'Write-Output ("after=0x{0:X4}" -f $after)',
132
- 'exit 0',
133
- ].join('\n');
134
- }
135
- /** `-EncodedCommand` takes base64 of UTF-16LE, which needs no shell quoting. */
136
- export function encodePowerShellCommand(script) {
137
- return Buffer.from(script, 'utf16le').toString('base64');
138
- }
139
- /**
140
- * Prefer the absolute path so a sanitized or hijacked `PATH` cannot decide what
141
- * runs; fall back to the bare name, which is still better than not trying.
142
- */
143
- export function resolvePowerShellExe(env = process.env) {
144
- const root = env.SystemRoot ?? env.windir;
145
- if (root) {
146
- const abs = join(root, 'System32', 'WindowsPowerShell', 'v1.0', 'powershell.exe');
147
- if (existsSync(abs))
148
- return abs;
149
- }
150
- return 'powershell.exe';
151
- }
152
- /** Pull `before=` / `after=` back out of the helper's stdout. */
153
- export function parseConsoleModes(stdout) {
154
- const read = (label) => {
155
- const m = new RegExp(`^${label}=0x([0-9a-fA-F]+)\\s*$`, 'm').exec(stdout);
156
- if (!m)
157
- return undefined;
158
- const n = Number.parseInt(m[1] ?? '', 16);
159
- return Number.isFinite(n) ? n : undefined;
160
- };
161
- const before = read('before');
162
- const after = read('after');
163
- return { ...(before !== undefined ? { before } : {}), ...(after !== undefined ? { after } : {}) };
164
- }
165
- /**
166
- * PURE, and the reason this feature is testable without a Windows box: every
167
- * interesting outcome - including the `0x01F7` wrong-console trap that returns
168
- * exit code 0 - is decided here from two strings and a number.
169
- */
170
- export function decideVtForceOutcome(run) {
171
- const { before, after } = parseConsoleModes(run.stdout);
172
- const carry = before !== undefined ? { before } : {};
173
- if (run.status !== 0) {
174
- const note = (run.stdout.trim() || run.stderr?.trim() || '').split('\n')[0] ?? '';
175
- return { ok: false, reason: 'helper_failed', detail: `exit=${run.status} ${note}`, ...carry };
176
- }
177
- if (before === undefined)
178
- return { ok: false, reason: 'no_before' };
179
- // Trap 1. Exit code and API return value both said success; only this tells us
180
- // the helper was talking to a different console than the one being typed into.
181
- if (!isRawConsoleMode(before))
182
- return { ok: false, reason: 'wrong_console', before };
183
- if (after === undefined || (after & ENABLE_VIRTUAL_TERMINAL_INPUT) === 0) {
184
- // Old conhosts accept `SetConsoleMode` and drop bits they do not implement,
185
- // so the re-read is not paranoia - it is the only proof (analysis 3.9).
186
- return { ok: false, reason: 'bit_not_set', before, ...(after !== undefined ? { after } : {}) };
187
- }
188
- return { ok: true, before, after };
189
- }
190
- /**
191
- * Set the bit on the console this process is attached to.
192
- *
193
- * SYNCHRONOUS on purpose. The caller has to know the answer before it decides
194
- * whether the mouse can report and whether to warn the user, and at the one
195
- * moment this runs - after raw mode is up, before Ink renders - there is nothing
196
- * else for the event loop to do. An async version would buy nothing and would
197
- * spread the ordering across two files.
198
- *
199
- * NEVER THROWS.
200
- */
201
- export function forceWindowsVtInput(opts = {}) {
202
- const platform = opts.platform ?? process.platform;
203
- if (platform !== 'win32')
204
- return { ok: false, reason: 'not_windows' };
205
- const exe = resolvePowerShellExe();
206
- const args = [
207
- '-NoProfile',
208
- '-NonInteractive',
209
- '-NoLogo',
210
- '-EncodedCommand',
211
- encodePowerShellCommand(buildHelperScript()),
212
- ];
213
- try {
214
- const run = opts.run ?? defaultRun(opts.timeoutMs ?? 5000);
215
- return decideVtForceOutcome(run(exe, args));
216
- }
217
- catch (err) {
218
- return { ok: false, reason: 'spawn_failed', detail: err.message };
219
- }
220
- }
221
- function defaultRun(timeoutMs) {
222
- return (exe, args) => {
223
- const r = spawnSync(exe, args, {
224
- // stdin `ignore` is trap 2's premise: the helper must not share the handle
225
- // whose mode is being rewritten. stdout/stderr are pipes because `before`
226
- // has to come back - a log file would be a second failure surface.
227
- stdio: ['ignore', 'pipe', 'pipe'],
228
- // TRAP 1. Do not "tidy" this to `true`; see the module header.
229
- windowsHide: false,
230
- timeout: timeoutMs,
231
- encoding: 'utf-8',
232
- });
233
- if (r.error)
234
- throw r.error;
235
- return { status: r.status, stdout: r.stdout ?? '', stderr: r.stderr ?? '' };
236
- };
237
- }
@@ -1,57 +0,0 @@
1
- /**
2
- * Will this console ever deliver `CSI Z` and SGR mouse reports?
3
- * (shift-tab-and-mouse-wheel-dead-on-some-terminals, F1')
4
- *
5
- * ASCII ONLY - this tree is inside the glyph scanner's scope.
6
- *
7
- * On Windows the answer is decided by NODE, not by the terminal emulator and not
8
- * by anything this package writes. `Shift+Tab` and SGR mouse reporting both
9
- * exist only while the console input handle has `ENABLE_VIRTUAL_TERMINAL_INPUT`
10
- * set, and Node only sets it from v22.17.0 / v24.2.0 onward, where
11
- * `SetRawMode` switched from `UV_TTY_MODE_RAW` to `UV_TTY_MODE_RAW_VT`
12
- * (`nodejs/node` `src/tty_wrap.cc`). Before that libuv translates console input
13
- * records into ANSI itself, and that translation
14
- *
15
- * - has no `VK_TAB` entry, and takes the character branch for it because
16
- * `uChar.UnicodeChar` is 0x09, where SHIFT_PRESSED is never read. So
17
- * `Shift+Tab` arrives as a PLAIN TAB, byte-identical to `Tab`;
18
- * - `continue`s past every record that is not a `KEY_EVENT`, so a mouse
19
- * report cannot reach the process at all.
20
- *
21
- * Measured rather than reasoned: injecting the same keystrokes into the same
22
- * console, Node 20.19.0 yields `09` for `Shift+Tab` and Node 22.18.0 yields
23
- * `1b 5b 5a`; console mode samples `0x0008` and `0x0208` respectively. The full
24
- * probe data is in `docs/diagnoses/shift-tab-and-mouse-wheel-dead-on-some-terminals/`.
25
- *
26
- * PURE: the platform and the version are arguments, so the whole table is
27
- * testable without a Windows box and without a second Node install.
28
- */
29
- /**
30
- * The versions whose `setRawMode(true)` reaches `UV_TTY_MODE_RAW_VT`.
31
- *
32
- * `<23` IS LOAD-BEARING: 23.x branched before the change landed and never got
33
- * it, and 24.0/24.1 did not have it either - the fix reached the 24 line only in
34
- * 24.2.0. A range of `>=22.17.0` alone would call both of those supported.
35
- *
36
- * A TYPO HERE DISABLES THE WHOLE GATE SILENTLY, because `satisfiesNodeRange`
37
- * fails open: a clause it cannot parse makes the range unknown and the answer
38
- * `true`. `win-vt-input.test.ts` pins concrete version strings against concrete
39
- * booleans for exactly that reason - it is the only guard this constant has.
40
- */
41
- export declare const WINDOWS_VT_INPUT_NODE_RANGE = ">=22.17.0 <23 || >=24.2.0";
42
- /**
43
- * `false` only for the combination that is known to swallow both inputs:
44
- * `win32` running a Node outside `WINDOWS_VT_INPUT_NODE_RANGE`.
45
- *
46
- * FAILS OPEN, deliberately, in both directions (inherited from
47
- * `satisfiesNodeRange`, whose own reasoning is written down at its definition):
48
- * a version string that cannot be parsed is assumed supported. Guessing wrong
49
- * that way costs nothing beyond today's behaviour; guessing wrong the other way
50
- * would turn the mouse off on a machine where it works, which is a regression
51
- * this bug does not justify risking.
52
- *
53
- * Every non-Windows platform is `true` unconditionally. macOS and Linux go
54
- * through a real pty, where the terminal - not Node - encodes the keys, so no
55
- * version of Node has ever been able to affect this.
56
- */
57
- export declare function supportsWindowsVtInput(platform: string, nodeVersion: string): boolean;
@@ -1,62 +0,0 @@
1
- /**
2
- * Will this console ever deliver `CSI Z` and SGR mouse reports?
3
- * (shift-tab-and-mouse-wheel-dead-on-some-terminals, F1')
4
- *
5
- * ASCII ONLY - this tree is inside the glyph scanner's scope.
6
- *
7
- * On Windows the answer is decided by NODE, not by the terminal emulator and not
8
- * by anything this package writes. `Shift+Tab` and SGR mouse reporting both
9
- * exist only while the console input handle has `ENABLE_VIRTUAL_TERMINAL_INPUT`
10
- * set, and Node only sets it from v22.17.0 / v24.2.0 onward, where
11
- * `SetRawMode` switched from `UV_TTY_MODE_RAW` to `UV_TTY_MODE_RAW_VT`
12
- * (`nodejs/node` `src/tty_wrap.cc`). Before that libuv translates console input
13
- * records into ANSI itself, and that translation
14
- *
15
- * - has no `VK_TAB` entry, and takes the character branch for it because
16
- * `uChar.UnicodeChar` is 0x09, where SHIFT_PRESSED is never read. So
17
- * `Shift+Tab` arrives as a PLAIN TAB, byte-identical to `Tab`;
18
- * - `continue`s past every record that is not a `KEY_EVENT`, so a mouse
19
- * report cannot reach the process at all.
20
- *
21
- * Measured rather than reasoned: injecting the same keystrokes into the same
22
- * console, Node 20.19.0 yields `09` for `Shift+Tab` and Node 22.18.0 yields
23
- * `1b 5b 5a`; console mode samples `0x0008` and `0x0208` respectively. The full
24
- * probe data is in `docs/diagnoses/shift-tab-and-mouse-wheel-dead-on-some-terminals/`.
25
- *
26
- * PURE: the platform and the version are arguments, so the whole table is
27
- * testable without a Windows box and without a second Node install.
28
- */
29
- import { satisfiesNodeRange } from '../update/semver.js';
30
- /**
31
- * The versions whose `setRawMode(true)` reaches `UV_TTY_MODE_RAW_VT`.
32
- *
33
- * `<23` IS LOAD-BEARING: 23.x branched before the change landed and never got
34
- * it, and 24.0/24.1 did not have it either - the fix reached the 24 line only in
35
- * 24.2.0. A range of `>=22.17.0` alone would call both of those supported.
36
- *
37
- * A TYPO HERE DISABLES THE WHOLE GATE SILENTLY, because `satisfiesNodeRange`
38
- * fails open: a clause it cannot parse makes the range unknown and the answer
39
- * `true`. `win-vt-input.test.ts` pins concrete version strings against concrete
40
- * booleans for exactly that reason - it is the only guard this constant has.
41
- */
42
- export const WINDOWS_VT_INPUT_NODE_RANGE = '>=22.17.0 <23 || >=24.2.0';
43
- /**
44
- * `false` only for the combination that is known to swallow both inputs:
45
- * `win32` running a Node outside `WINDOWS_VT_INPUT_NODE_RANGE`.
46
- *
47
- * FAILS OPEN, deliberately, in both directions (inherited from
48
- * `satisfiesNodeRange`, whose own reasoning is written down at its definition):
49
- * a version string that cannot be parsed is assumed supported. Guessing wrong
50
- * that way costs nothing beyond today's behaviour; guessing wrong the other way
51
- * would turn the mouse off on a machine where it works, which is a regression
52
- * this bug does not justify risking.
53
- *
54
- * Every non-Windows platform is `true` unconditionally. macOS and Linux go
55
- * through a real pty, where the terminal - not Node - encodes the keys, so no
56
- * version of Node has ever been able to affect this.
57
- */
58
- export function supportsWindowsVtInput(platform, nodeVersion) {
59
- if (platform !== 'win32')
60
- return true;
61
- return satisfiesNodeRange(WINDOWS_VT_INPUT_NODE_RANGE, nodeVersion);
62
- }
@@ -1,111 +0,0 @@
1
- /**
2
- * UPDATE_LIMITS - the single authority on every structural bound the updater
3
- * enforces (cli-auto-update section 5.4).
4
- *
5
- * ASCII ONLY: `src/update/**` is inside the glyph scanner's scope
6
- * (`glyphs.test.ts`), so no literal in this tree may hold a non-ASCII byte. The
7
- * regex there is a hardcoded directory list, which is why adding this tree and
8
- * adding `update` to that list are the SAME change (C-2 / AC-18) - a scanner
9
- * that silently stops scanning is worse than no scanner.
10
- *
11
- * TWO KINDS OF NUMBER, AND THEY ARE NOT INTERCHANGEABLE - the distinction
12
- * `TEAM_LIMITS`, `TODO_LIMITS` and `FAST_LIMITS` all state:
13
- *
14
- * - The entries below are STRUCTURAL. They describe what a background check, a
15
- * detached install and a one-row readout can physically carry. A user has no
16
- * business tuning them.
17
- * - The four `update.*` keys in `config/schema.ts` are POLICY: whether to
18
- * install at all, how often to ask, which registry, which dist-tag. Those are
19
- * clamped, persisted and user-facing.
20
- *
21
- * NOTHING HERE IS IMPORTED AT RUNTIME BY `cli.tsx` (AC-1). This module and
22
- * `types.ts` are pure, dependency-free and side-effect-free; every other module
23
- * in this tree is reached only through the dynamic `import()` in section 3.8.
24
- */
25
- export declare const UPDATE_LIMITS: {
26
- /** Never contend with first paint. */
27
- readonly startupDelayMs: 3000;
28
- /**
29
- * A background check has nobody waiting on it.
30
- *
31
- * Below `fetch-source.ts`'s `HTTP_TIMEOUT_MS` (15 s) ON PURPOSE: that one
32
- * bounds a download a human typed a command for, this one bounds a request the
33
- * user never asked for and must never notice.
34
- */
35
- readonly checkTimeoutMs: 8000;
36
- /**
37
- * Wall-clock budget for the `installing` PHASE and the lock's staleness
38
- * refresh - NEVER FOR THE CHILD (U-5 / P1-5).
39
- *
40
- * It decides when the UI stops saying "updating" and when a lock is treated as
41
- * abandoned. It is deliberately NOT `execFile`'s `timeout`, which stays `0`:
42
- * wiring it there makes Node `SIGTERM` npm mid-write - the broken global
43
- * installation U-3 and D-10 exist to prevent - and it would fire on exactly
44
- * the slow links where a five-minute install is the correct outcome.
45
- */
46
- readonly installTimeoutMs: 300000;
47
- /** The `/latest` document is ~2 KB; this is the C-8 ceiling, not a target. */
48
- readonly manifestMaxBytes: number;
49
- /** Matches `fetch-source.ts`'s `MAX_REDIRECTS`. */
50
- readonly maxRedirects: 3;
51
- /**
52
- * Longer than `skills`' 60 s, and the difference is the point: the holder here
53
- * is an npm install on a cold cache, not a file rename.
54
- */
55
- readonly lockTtlMs: 600000;
56
- /** First retry after a failed check or install. */
57
- readonly backoffBaseMs: 1800000;
58
- /** Ceiling of the exponential. */
59
- readonly backoffMaxMs: 86400000;
60
- /**
61
- * Consecutive failures before the row says anything at all (D-7).
62
- *
63
- * Below this the failure is silent, because silence is the requirement and an
64
- * unactionable recurring warning is the standard way updaters become hated.
65
- */
66
- readonly failuresBeforeNotice: 3;
67
- /** Thundering-herd spread on the check interval (D-12). */
68
- readonly jitterRatio: 0.15;
69
- /**
70
- * Bounded, redacted npm error tail, read from the install LOG FILE (U-5).
71
- *
72
- * There is a tail to read at all only because the child writes to a real file
73
- * descriptor rather than to `'ignore'`; a pipe would have died with the parent
74
- * and broken D-10.
75
- */
76
- readonly stderrTailChars: 500;
77
- /**
78
- * Below this many columns the update line renders its short form (section 6.2).
79
- *
80
- * DELIBERATELY NOT `FAST_LIMITS.statusCompactCols`' 100 (`fast/limits.ts`).
81
- * That number governs a multi-part status chip competing with the context
82
- * gauge for the same row; this one governs a single short clause that owns its
83
- * row outright. Two numbers about two different things - do not unify them.
84
- */
85
- readonly statusCompactCols: 60;
86
- /**
87
- * Non-zero exits of a version WE installed before it is rolled back
88
- * (cli-auto-update-hardening section 7.2 / D-30).
89
- *
90
- * Tested against the count of PREVIOUS launches, so `2` means "the third
91
- * launch rolls back". One crash can be transient - a machine that ran out of
92
- * memory once, or whose session file was corrupt, gets a second chance at the
93
- * release it just installed. Two is a pattern.
94
- *
95
- * NOTHING ELSE IN THIS TABLE BOUNDS THE ROLLBACK. There is deliberately no
96
- * `bootGuardMaxAgeMs`: the guard is armed only while `autoInstalledVersion`
97
- * equals the RUNNING version, so "a machine offline for a year" is a machine
98
- * still running the version we installed, and rolling it back to
99
- * `lastGoodVersion` is exactly as correct on day 400 as on day 1 (P1-3).
100
- */
101
- readonly crashesBeforeRollback: 2;
102
- /**
103
- * Bound on the `npm view` fallback probe (H3).
104
- *
105
- * SAFE HERE AND FORBIDDEN FOR THE INSTALLER (C-20). A killed `npm view` has
106
- * written nothing; a killed `npm install -g` leaves a broken global
107
- * installation, which is why `installTimeoutMs` above bounds the PHASE and
108
- * never the child.
109
- */
110
- readonly npmViewTimeoutMs: 10000;
111
- };
@@ -1,111 +0,0 @@
1
- /**
2
- * UPDATE_LIMITS - the single authority on every structural bound the updater
3
- * enforces (cli-auto-update section 5.4).
4
- *
5
- * ASCII ONLY: `src/update/**` is inside the glyph scanner's scope
6
- * (`glyphs.test.ts`), so no literal in this tree may hold a non-ASCII byte. The
7
- * regex there is a hardcoded directory list, which is why adding this tree and
8
- * adding `update` to that list are the SAME change (C-2 / AC-18) - a scanner
9
- * that silently stops scanning is worse than no scanner.
10
- *
11
- * TWO KINDS OF NUMBER, AND THEY ARE NOT INTERCHANGEABLE - the distinction
12
- * `TEAM_LIMITS`, `TODO_LIMITS` and `FAST_LIMITS` all state:
13
- *
14
- * - The entries below are STRUCTURAL. They describe what a background check, a
15
- * detached install and a one-row readout can physically carry. A user has no
16
- * business tuning them.
17
- * - The four `update.*` keys in `config/schema.ts` are POLICY: whether to
18
- * install at all, how often to ask, which registry, which dist-tag. Those are
19
- * clamped, persisted and user-facing.
20
- *
21
- * NOTHING HERE IS IMPORTED AT RUNTIME BY `cli.tsx` (AC-1). This module and
22
- * `types.ts` are pure, dependency-free and side-effect-free; every other module
23
- * in this tree is reached only through the dynamic `import()` in section 3.8.
24
- */
25
- export const UPDATE_LIMITS = {
26
- /** Never contend with first paint. */
27
- startupDelayMs: 3_000,
28
- /**
29
- * A background check has nobody waiting on it.
30
- *
31
- * Below `fetch-source.ts`'s `HTTP_TIMEOUT_MS` (15 s) ON PURPOSE: that one
32
- * bounds a download a human typed a command for, this one bounds a request the
33
- * user never asked for and must never notice.
34
- */
35
- checkTimeoutMs: 8_000,
36
- /**
37
- * Wall-clock budget for the `installing` PHASE and the lock's staleness
38
- * refresh - NEVER FOR THE CHILD (U-5 / P1-5).
39
- *
40
- * It decides when the UI stops saying "updating" and when a lock is treated as
41
- * abandoned. It is deliberately NOT `execFile`'s `timeout`, which stays `0`:
42
- * wiring it there makes Node `SIGTERM` npm mid-write - the broken global
43
- * installation U-3 and D-10 exist to prevent - and it would fire on exactly
44
- * the slow links where a five-minute install is the correct outcome.
45
- */
46
- installTimeoutMs: 300_000,
47
- /** The `/latest` document is ~2 KB; this is the C-8 ceiling, not a target. */
48
- manifestMaxBytes: 256 * 1024,
49
- /** Matches `fetch-source.ts`'s `MAX_REDIRECTS`. */
50
- maxRedirects: 3,
51
- /**
52
- * Longer than `skills`' 60 s, and the difference is the point: the holder here
53
- * is an npm install on a cold cache, not a file rename.
54
- */
55
- lockTtlMs: 600_000,
56
- /** First retry after a failed check or install. */
57
- backoffBaseMs: 1_800_000,
58
- /** Ceiling of the exponential. */
59
- backoffMaxMs: 86_400_000,
60
- /**
61
- * Consecutive failures before the row says anything at all (D-7).
62
- *
63
- * Below this the failure is silent, because silence is the requirement and an
64
- * unactionable recurring warning is the standard way updaters become hated.
65
- */
66
- failuresBeforeNotice: 3,
67
- /** Thundering-herd spread on the check interval (D-12). */
68
- jitterRatio: 0.15,
69
- /**
70
- * Bounded, redacted npm error tail, read from the install LOG FILE (U-5).
71
- *
72
- * There is a tail to read at all only because the child writes to a real file
73
- * descriptor rather than to `'ignore'`; a pipe would have died with the parent
74
- * and broken D-10.
75
- */
76
- stderrTailChars: 500,
77
- /**
78
- * Below this many columns the update line renders its short form (section 6.2).
79
- *
80
- * DELIBERATELY NOT `FAST_LIMITS.statusCompactCols`' 100 (`fast/limits.ts`).
81
- * That number governs a multi-part status chip competing with the context
82
- * gauge for the same row; this one governs a single short clause that owns its
83
- * row outright. Two numbers about two different things - do not unify them.
84
- */
85
- statusCompactCols: 60,
86
- /**
87
- * Non-zero exits of a version WE installed before it is rolled back
88
- * (cli-auto-update-hardening section 7.2 / D-30).
89
- *
90
- * Tested against the count of PREVIOUS launches, so `2` means "the third
91
- * launch rolls back". One crash can be transient - a machine that ran out of
92
- * memory once, or whose session file was corrupt, gets a second chance at the
93
- * release it just installed. Two is a pattern.
94
- *
95
- * NOTHING ELSE IN THIS TABLE BOUNDS THE ROLLBACK. There is deliberately no
96
- * `bootGuardMaxAgeMs`: the guard is armed only while `autoInstalledVersion`
97
- * equals the RUNNING version, so "a machine offline for a year" is a machine
98
- * still running the version we installed, and rolling it back to
99
- * `lastGoodVersion` is exactly as correct on day 400 as on day 1 (P1-3).
100
- */
101
- crashesBeforeRollback: 2,
102
- /**
103
- * Bound on the `npm view` fallback probe (H3).
104
- *
105
- * SAFE HERE AND FORBIDDEN FOR THE INSTALLER (C-20). A killed `npm view` has
106
- * written nothing; a killed `npm install -g` leaves a broken global
107
- * installation, which is why `installTimeoutMs` above bounds the PHASE and
108
- * never the child.
109
- */
110
- npmViewTimeoutMs: 10_000,
111
- };
@@ -1,89 +0,0 @@
1
- /**
2
- * Semver comparison and the update decision (cli-auto-update section 3.4).
3
- *
4
- * ASCII ONLY - this tree is inside the glyph scanner's scope (C-2 / C-3).
5
- *
6
- * HAND-WRITTEN AND NOT `semver`. The package has no such dependency
7
- * (`package.json`), and this feature needs three questions answered - "is B
8
- * newer than A", "is B a prerelease", "does this Node satisfy that range" - on a
9
- * document the registry writes and npm itself only warns about. Adding a
10
- * transitive dependency to an auto-updater, of all things, is the one place the
11
- * supply-chain argument in R-1 cuts hardest.
12
- *
13
- * PURE: no I/O, no clock, no process. Every function here is total and none of
14
- * them throws.
15
- */
16
- import type { LatestManifest } from './types.js';
17
- /**
18
- * The form a version must have before it is interpolated into `npm install`'s
19
- * argv (section 3.5 / AC-24).
20
- *
21
- * ANCHORED AND WITHOUT `v`: a registry that answered `"1.0.0; rm -rf /"` must
22
- * never reach `execFile`. With `shell: false` this is not an injection surface
23
- * to begin with, but the rejection is what makes that claim checkable rather
24
- * than reasoned, and it also satisfies `fetch-source.ts` rule 3 (no leading `-`)
25
- * by construction.
26
- */
27
- export declare const STRICT_VERSION_RE: RegExp;
28
- export interface Semver {
29
- major: number;
30
- minor: number;
31
- patch: number;
32
- /** Dot-separated prerelease identifiers, or `[]` for a release. */
33
- prerelease: string[];
34
- }
35
- /** Parse a semver string, or `null` when it is not one. Never throws. */
36
- export declare function parseSemver(raw: unknown): Semver | null;
37
- export declare function isPrerelease(raw: string): boolean;
38
- /**
39
- * `-1 | 0 | 1`. An UNPARSEABLE version sorts BELOW a parseable one and equal to
40
- * another unparseable one, so a garbage registry answer can never read as newer
41
- * than what is installed.
42
- */
43
- export declare function compareSemver(a: string, b: string): number;
44
- /**
45
- * Does `nodeVersion` satisfy `engines.node`?
46
- *
47
- * FAILS OPEN, and that is a decision rather than an oversight (D-15). Handled
48
- * forms are `>=X`, `>=X.Y.Z`, `>X`, `<X`, `<=X`, `=X`, `^X`, `~X`, `X.x`, and
49
- * `||`-joined unions of those, with space-separated clauses inside a union
50
- * ANDed together. Anything this cannot parse returns `true`, matching npm's own
51
- * default of warning rather than refusing.
52
- *
53
- * Failing CLOSED here would mean a syntax we did not anticipate silently freezes
54
- * every user's updates forever, with no message and no way to find out - the
55
- * worse of the two errors by a wide margin. A range we DID understand and that
56
- * genuinely excludes this Node yields `false`, and the caller turns that into a
57
- * `node-too-old` notice so the user is told to upgrade Node rather than left
58
- * wondering.
59
- */
60
- export declare function satisfiesNodeRange(range: string | undefined, nodeVersion: string): boolean;
61
- export type UpdateAction = 'install' | 'notify' | 'none';
62
- export interface UpdateDecision {
63
- action: UpdateAction;
64
- reason: 'up-to-date' | 'prerelease' | 'deprecated' | 'node-too-old' | 'skipped' | 'newer-available';
65
- }
66
- export interface DecideUpdateInput {
67
- /** The version this process is running. */
68
- local: string;
69
- manifest: Pick<LatestManifest, 'version' | 'engines' | 'deprecated'>;
70
- /** `process.versions.node`, injected so the decision is testable offline. */
71
- nodeVersion: string;
72
- /** `state.skippedVersion`; `''` when the user has skipped nothing. */
73
- skippedVersion: string;
74
- }
75
- /**
76
- * Should we install, merely report, or say nothing? (section 3.4)
77
- *
78
- * ORDER IS SEMANTIC. `up-to-date` is answered first because it is the
79
- * overwhelmingly common case and the cheapest; `skipped` comes before the
80
- * quality gates so a user who typed `/update skip` is not told about a
81
- * prerelease they already declined. Only a range we UNDERSTOOD and that excludes
82
- * this Node produces `notify`; every other rejection is silent (`none`).
83
- *
84
- * The SOURCE and the MODE are deliberately NOT inputs here. This function
85
- * answers "is that version worth having"; whether this machine may install it is
86
- * the service's question, and folding the two would make a pure decision depend
87
- * on the filesystem.
88
- */
89
- export declare function decideUpdate(input: DecideUpdateInput): UpdateDecision;